@aws-amplify/api-graphql 4.0.22 → 4.0.23

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 (106) hide show
  1. package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js +40 -31
  2. package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  3. package/dist/cjs/internals/APIClient.js +34 -19
  4. package/dist/cjs/internals/APIClient.js.map +1 -1
  5. package/dist/cjs/internals/InternalGraphQLAPI.js +10 -9
  6. package/dist/cjs/internals/InternalGraphQLAPI.js.map +1 -1
  7. package/dist/cjs/internals/generateClient.js +4 -1
  8. package/dist/cjs/internals/generateClient.js.map +1 -1
  9. package/dist/cjs/internals/generateCustomOperationsProperty.js +6 -1
  10. package/dist/cjs/internals/generateCustomOperationsProperty.js.map +1 -1
  11. package/dist/cjs/internals/operations/custom.js +90 -7
  12. package/dist/cjs/internals/operations/custom.js.map +1 -1
  13. package/dist/cjs/internals/operations/list.js +1 -1
  14. package/dist/cjs/internals/operations/list.js.map +1 -1
  15. package/dist/cjs/internals/server/generateClientWithAmplifyInstance.js +1 -1
  16. package/dist/cjs/internals/server/generateClientWithAmplifyInstance.js.map +1 -1
  17. package/dist/cjs/internals/server/generateModelsProperty.js +1 -1
  18. package/dist/cjs/internals/server/generateModelsProperty.js.map +1 -1
  19. package/dist/cjs/internals/v6.js +0 -2
  20. package/dist/cjs/internals/v6.js.map +1 -1
  21. package/dist/cjs/utils/errors/repackageAuthError.js +1 -1
  22. package/dist/cjs/utils/errors/repackageAuthError.js.map +1 -1
  23. package/dist/cjs/utils/resolveOwnerFields.js +3 -0
  24. package/dist/cjs/utils/resolveOwnerFields.js.map +1 -1
  25. package/dist/esm/GraphQLAPI.d.ts +2 -2
  26. package/dist/esm/GraphQLAPI.mjs.map +1 -1
  27. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +8 -8
  28. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs +40 -31
  29. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs.map +1 -1
  30. package/dist/esm/internals/APIClient.d.ts +5 -6
  31. package/dist/esm/internals/APIClient.mjs +34 -19
  32. package/dist/esm/internals/APIClient.mjs.map +1 -1
  33. package/dist/esm/internals/InternalGraphQLAPI.d.ts +1 -1
  34. package/dist/esm/internals/InternalGraphQLAPI.mjs +10 -9
  35. package/dist/esm/internals/InternalGraphQLAPI.mjs.map +1 -1
  36. package/dist/esm/internals/generateClient.mjs +5 -2
  37. package/dist/esm/internals/generateClient.mjs.map +1 -1
  38. package/dist/esm/internals/generateCustomOperationsProperty.d.ts +4 -3
  39. package/dist/esm/internals/generateCustomOperationsProperty.mjs +5 -1
  40. package/dist/esm/internals/generateCustomOperationsProperty.mjs.map +1 -1
  41. package/dist/esm/internals/operations/custom.d.ts +6 -3
  42. package/dist/esm/internals/operations/custom.mjs +90 -7
  43. package/dist/esm/internals/operations/custom.mjs.map +1 -1
  44. package/dist/esm/internals/operations/get.d.ts +1 -1
  45. package/dist/esm/internals/operations/get.mjs.map +1 -1
  46. package/dist/esm/internals/operations/indexQuery.d.ts +3 -3
  47. package/dist/esm/internals/operations/indexQuery.mjs.map +1 -1
  48. package/dist/esm/internals/operations/list.d.ts +1 -1
  49. package/dist/esm/internals/operations/list.mjs +1 -1
  50. package/dist/esm/internals/operations/list.mjs.map +1 -1
  51. package/dist/esm/internals/operations/subscription.d.ts +1 -1
  52. package/dist/esm/internals/operations/subscription.mjs.map +1 -1
  53. package/dist/esm/internals/server/generateClientWithAmplifyInstance.d.ts +1 -1
  54. package/dist/esm/internals/server/generateClientWithAmplifyInstance.mjs +1 -1
  55. package/dist/esm/internals/server/generateClientWithAmplifyInstance.mjs.map +1 -1
  56. package/dist/esm/internals/server/generateModelsProperty.d.ts +3 -3
  57. package/dist/esm/internals/server/generateModelsProperty.mjs +1 -1
  58. package/dist/esm/internals/server/generateModelsProperty.mjs.map +1 -1
  59. package/dist/esm/internals/types.d.ts +2 -2
  60. package/dist/esm/internals/utils/clientProperties/generateModelsProperty.d.ts +2 -2
  61. package/dist/esm/internals/v6.d.ts +1 -1
  62. package/dist/esm/internals/v6.mjs +0 -2
  63. package/dist/esm/internals/v6.mjs.map +1 -1
  64. package/dist/esm/types/index.d.ts +34 -35
  65. package/dist/esm/utils/ConnectionStateMonitor.d.ts +2 -2
  66. package/dist/esm/utils/ConnectionStateMonitor.mjs.map +1 -1
  67. package/dist/esm/utils/ReachabilityMonitor/index.native.mjs.map +1 -1
  68. package/dist/esm/utils/errors/repackageAuthError.d.ts +2 -2
  69. package/dist/esm/utils/errors/repackageAuthError.mjs +1 -1
  70. package/dist/esm/utils/errors/repackageAuthError.mjs.map +1 -1
  71. package/dist/esm/utils/findIndexByFields.d.ts +1 -1
  72. package/dist/esm/utils/resolveOwnerFields.mjs +3 -0
  73. package/dist/esm/utils/resolveOwnerFields.mjs.map +1 -1
  74. package/package.json +8 -7
  75. package/src/GraphQLAPI.ts +4 -3
  76. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +84 -64
  77. package/src/internals/APIClient.ts +83 -58
  78. package/src/internals/InternalGraphQLAPI.ts +26 -30
  79. package/src/internals/clientUtils.ts +1 -1
  80. package/src/internals/generateClient.ts +23 -10
  81. package/src/internals/generateCustomOperationsProperty.ts +31 -8
  82. package/src/internals/operations/custom.ts +159 -32
  83. package/src/internals/operations/get.ts +9 -8
  84. package/src/internals/operations/indexQuery.ts +12 -11
  85. package/src/internals/operations/list.ts +11 -15
  86. package/src/internals/operations/observeQuery.ts +3 -1
  87. package/src/internals/operations/subscription.ts +12 -10
  88. package/src/internals/server/generateClientWithAmplifyInstance.ts +7 -7
  89. package/src/internals/server/generateModelsProperty.ts +12 -6
  90. package/src/internals/types.ts +2 -2
  91. package/src/internals/utils/clientProperties/generateEnumsProperty.ts +7 -6
  92. package/src/internals/utils/clientProperties/generateModelsProperty.ts +8 -7
  93. package/src/internals/v6.ts +6 -4
  94. package/src/server/generateClient.ts +4 -1
  95. package/src/types/PubSub.ts +1 -0
  96. package/src/types/index.ts +51 -47
  97. package/src/utils/ConnectionStateMonitor.ts +8 -3
  98. package/src/utils/ReachabilityMonitor/index.native.ts +1 -1
  99. package/src/utils/ReachabilityMonitor/index.ts +1 -0
  100. package/src/utils/ReconnectionMonitor.ts +1 -0
  101. package/src/utils/errors/repackageAuthError.ts +6 -7
  102. package/src/utils/findIndexByFields.ts +1 -1
  103. package/src/utils/resolveConfig.ts +1 -0
  104. package/src/utils/resolveLibraryOptions.ts +1 -0
  105. package/src/utils/resolveOwnerFields.ts +16 -7
  106. package/src/utils/resolvePKFields.ts +1 -0
@@ -3,25 +3,26 @@
3
3
  import { Observable, SubscriptionLike } from 'rxjs';
4
4
  import { GraphQLError } from 'graphql';
5
5
  import {
6
- Hub,
7
- fetchAuthSession,
8
6
  ConsoleLogger,
7
+ Hub,
9
8
  HubPayload,
9
+ fetchAuthSession,
10
10
  } from '@aws-amplify/core';
11
11
  import { signRequest } from '@aws-amplify/core/internals/aws-client-utils';
12
12
  import {
13
- base64Encoder,
14
- GraphQLAuthMode,
13
+ AmplifyUrl,
15
14
  CustomUserAgentDetails,
15
+ DocumentType,
16
+ GraphQLAuthMode,
16
17
  NonRetryableError,
17
18
  USER_AGENT_HEADER,
19
+ amplifyUuid,
20
+ base64Encoder,
18
21
  getAmplifyUserAgent,
19
22
  isNonRetryableError,
20
23
  jitteredExponentialRetry,
21
- DocumentType,
22
- amplifyUuid,
23
- AmplifyUrl,
24
24
  } from '@aws-amplify/core/internals/utils';
25
+ import { CustomHeaders, RequestOptions } from '@aws-amplify/data-schema-types';
25
26
 
26
27
  import {
27
28
  CONTROL_MSG,
@@ -32,25 +33,24 @@ import {
32
33
  AMPLIFY_SYMBOL,
33
34
  AWS_APPSYNC_REALTIME_HEADERS,
34
35
  CONNECTION_INIT_TIMEOUT,
35
- DEFAULT_KEEP_ALIVE_TIMEOUT,
36
+ CONNECTION_STATE_CHANGE,
36
37
  DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT,
38
+ DEFAULT_KEEP_ALIVE_TIMEOUT,
37
39
  MAX_DELAY_MS,
38
40
  MESSAGE_TYPES,
39
41
  NON_RETRYABLE_CODES,
40
42
  SOCKET_STATUS,
41
43
  START_ACK_TIMEOUT,
42
44
  SUBSCRIPTION_STATUS,
43
- CONNECTION_STATE_CHANGE,
44
45
  } from '../constants';
45
46
  import {
46
- ConnectionStateMonitor,
47
47
  CONNECTION_CHANGE,
48
+ ConnectionStateMonitor,
48
49
  } from '../../utils/ConnectionStateMonitor';
49
50
  import {
50
51
  ReconnectEvent,
51
52
  ReconnectionMonitor,
52
53
  } from '../../utils/ReconnectionMonitor';
53
- import { CustomHeaders, RequestOptions } from '@aws-amplify/data-schema-types';
54
54
 
55
55
  const logger = new ConsoleLogger('AWSAppSyncRealTimeProvider');
56
56
 
@@ -58,38 +58,38 @@ const dispatchApiEvent = (payload: HubPayload) => {
58
58
  Hub.dispatch('api', payload, 'PubSub', AMPLIFY_SYMBOL);
59
59
  };
60
60
 
61
- export type ObserverQuery = {
61
+ export interface ObserverQuery {
62
62
  observer: PubSubContentObserver;
63
63
  query: string;
64
64
  variables: Record<string, DocumentType>;
65
65
  subscriptionState: SUBSCRIPTION_STATUS;
66
- subscriptionReadyCallback?: Function;
67
- subscriptionFailedCallback?: Function;
66
+ subscriptionReadyCallback?(): void;
67
+ subscriptionFailedCallback?(reason?: any): void;
68
68
  startAckTimeoutId?: ReturnType<typeof setTimeout>;
69
- };
69
+ }
70
70
 
71
71
  const standardDomainPattern =
72
- /^https:\/\/\w{26}\.appsync\-api\.\w{2}(?:(?:\-\w{2,})+)\-\d\.amazonaws.com(?:\.cn)?\/graphql$/i;
72
+ /^https:\/\/\w{26}\.appsync-api\.\w{2}(?:(?:-\w{2,})+)-\d\.amazonaws.com(?:\.cn)?\/graphql$/i;
73
73
 
74
74
  const customDomainPath = '/realtime';
75
75
 
76
- type DataObject = {
76
+ interface DataObject extends Record<string, unknown> {
77
77
  data: Record<string, unknown>;
78
- };
78
+ }
79
79
 
80
- type DataPayload = {
80
+ interface DataPayload {
81
81
  id: string;
82
82
  payload: DataObject;
83
83
  type: string;
84
- };
84
+ }
85
85
 
86
- type ParsedMessagePayload = {
86
+ interface ParsedMessagePayload {
87
87
  type: string;
88
88
  payload: {
89
89
  connectionTimeoutMs: number;
90
90
  errors?: [{ errorType: string; errorCode: number }];
91
91
  };
92
- };
92
+ }
93
93
 
94
94
  export interface AWSAppSyncRealTimeProviderOptions {
95
95
  appSyncGraphqlEndpoint?: string;
@@ -98,7 +98,7 @@ export interface AWSAppSyncRealTimeProviderOptions {
98
98
  variables?: Record<string, DocumentType>;
99
99
  apiKey?: string;
100
100
  region?: string;
101
- libraryConfigHeaders?: () => {} | (() => Promise<{}>);
101
+ libraryConfigHeaders?(): Promise<Record<string, unknown> | Headers>;
102
102
  additionalHeaders?: CustomHeaders;
103
103
  additionalCustomHeaders?: Record<string, string>;
104
104
  authToken?: string;
@@ -117,14 +117,14 @@ export class AWSAppSyncRealTimeProvider {
117
117
  private keepAliveTimeoutId?: ReturnType<typeof setTimeout>;
118
118
  private keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;
119
119
  private keepAliveAlertTimeoutId?: ReturnType<typeof setTimeout>;
120
- private subscriptionObserverMap: Map<string, ObserverQuery> = new Map();
121
- private promiseArray: Array<{ res: Function; rej: Function }> = [];
120
+ private subscriptionObserverMap = new Map<string, ObserverQuery>();
121
+ private promiseArray: { res(): void; rej(reason?: any): void }[] = [];
122
122
  private connectionState: ConnectionState | undefined;
123
123
  private readonly connectionStateMonitor = new ConnectionStateMonitor();
124
124
  private readonly reconnectionMonitor = new ReconnectionMonitor();
125
125
  private connectionStateMonitorSubscription: SubscriptionLike;
126
126
 
127
- constructor(options: AWSAppSyncRealTimeProviderOptions = {}) {
127
+ constructor() {
128
128
  // Monitor the connection state and pass changes along to Hub
129
129
  this.connectionStateMonitorSubscription =
130
130
  this.connectionStateMonitor.connectionStateObservable.subscribe(
@@ -253,12 +253,12 @@ export class AWSAppSyncRealTimeProvider {
253
253
  }
254
254
  };
255
255
 
256
- let reconnectSubscription: SubscriptionLike;
257
-
258
256
  // Add an observable to the reconnection list to manage reconnection for this subscription
259
- reconnectSubscription = new Observable(observer => {
260
- this.reconnectionMonitor.addObserver(observer);
261
- }).subscribe(() => {
257
+ const reconnectSubscription = new Observable(
258
+ reconnectSubscriptionObserver => {
259
+ this.reconnectionMonitor.addObserver(reconnectSubscriptionObserver);
260
+ },
261
+ ).subscribe(() => {
262
262
  startSubscription();
263
263
  });
264
264
 
@@ -397,6 +397,7 @@ export class AWSAppSyncRealTimeProvider {
397
397
  });
398
398
  } catch (err: any) {
399
399
  this._logStartSubscriptionError(subscriptionId, observer, err);
400
+
400
401
  return;
401
402
  }
402
403
 
@@ -416,7 +417,7 @@ export class AWSAppSyncRealTimeProvider {
416
417
  subscriptionReadyCallback,
417
418
  subscriptionFailedCallback,
418
419
  startAckTimeoutId: setTimeout(() => {
419
- this._timeoutStartSubscriptionAck.call(this, subscriptionId);
420
+ this._timeoutStartSubscriptionAck(subscriptionId);
420
421
  }, START_ACK_TIMEOUT),
421
422
  });
422
423
  if (this.awsRealTimeSocket) {
@@ -433,9 +434,7 @@ export class AWSAppSyncRealTimeProvider {
433
434
  logger.debug({ err });
434
435
  const message = String(err.message ?? '');
435
436
  // Resolving to give the state observer time to propogate the update
436
- Promise.resolve(
437
- this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED),
438
- );
437
+ this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
439
438
 
440
439
  // Capture the error only when the network didn't cause disruption
441
440
  if (
@@ -474,16 +473,20 @@ export class AWSAppSyncRealTimeProvider {
474
473
  const { subscriptionState } = subscriptionObserver;
475
474
  // This in case unsubscribe is invoked before sending start subscription message
476
475
  if (subscriptionState === SUBSCRIPTION_STATUS.PENDING) {
477
- return new Promise((res, rej) => {
478
- const { observer, subscriptionState, variables, query } =
479
- subscriptionObserver;
476
+ return new Promise<void>((resolve, reject) => {
477
+ const {
478
+ observer,
479
+ subscriptionState: observedSubscriptionState,
480
+ variables,
481
+ query,
482
+ } = subscriptionObserver;
480
483
  this.subscriptionObserverMap.set(subscriptionId, {
481
484
  observer,
482
- subscriptionState,
485
+ subscriptionState: observedSubscriptionState,
483
486
  variables,
484
487
  query,
485
- subscriptionReadyCallback: res,
486
- subscriptionFailedCallback: rej,
488
+ subscriptionReadyCallback: resolve,
489
+ subscriptionFailedCallback: reject,
487
490
  });
488
491
  });
489
492
  }
@@ -526,6 +529,7 @@ export class AWSAppSyncRealTimeProvider {
526
529
 
527
530
  if (!this.awsRealTimeSocket) {
528
531
  this.socketStatus = SOCKET_STATUS.CLOSED;
532
+
529
533
  return;
530
534
  }
531
535
 
@@ -582,6 +586,7 @@ export class AWSAppSyncRealTimeProvider {
582
586
  } else {
583
587
  logger.debug(`observer not found for id: ${id}`);
584
588
  }
589
+
585
590
  return;
586
591
  }
587
592
 
@@ -621,14 +626,14 @@ export class AWSAppSyncRealTimeProvider {
621
626
  if (this.keepAliveTimeoutId) clearTimeout(this.keepAliveTimeoutId);
622
627
  if (this.keepAliveAlertTimeoutId)
623
628
  clearTimeout(this.keepAliveAlertTimeoutId);
624
- this.keepAliveTimeoutId = setTimeout(
625
- () => this._errorDisconnect(CONTROL_MSG.TIMEOUT_DISCONNECT),
626
- this.keepAliveTimeout,
627
- );
629
+ this.keepAliveTimeoutId = setTimeout(() => {
630
+ this._errorDisconnect(CONTROL_MSG.TIMEOUT_DISCONNECT);
631
+ }, this.keepAliveTimeout);
628
632
  this.keepAliveAlertTimeoutId = setTimeout(() => {
629
633
  this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE_MISSED);
630
634
  }, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT);
631
635
  this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE);
636
+
632
637
  return;
633
638
  }
634
639
 
@@ -712,8 +717,11 @@ export class AWSAppSyncRealTimeProvider {
712
717
  if (this.socketStatus === SOCKET_STATUS.READY) {
713
718
  return;
714
719
  }
715
- return new Promise(async (res, rej) => {
716
- this.promiseArray.push({ res, rej });
720
+
721
+ // TODO(Eslint): refactor to now use async function as the promise executor
722
+ // eslint-disable-next-line no-async-promise-executor
723
+ return new Promise<void>(async (resolve, reject) => {
724
+ this.promiseArray.push({ res: resolve, rej: reject });
717
725
 
718
726
  if (this.socketStatus === SOCKET_STATUS.CLOSED) {
719
727
  try {
@@ -765,7 +773,9 @@ export class AWSAppSyncRealTimeProvider {
765
773
  this.promiseArray = [];
766
774
  } catch (err) {
767
775
  logger.debug('Connection exited with', err);
768
- this.promiseArray.forEach(({ rej }) => rej(err));
776
+ this.promiseArray.forEach(({ rej }) => {
777
+ rej(err);
778
+ });
769
779
  this.promiseArray = [];
770
780
  if (
771
781
  this.awsRealTimeSocket &&
@@ -795,23 +805,24 @@ export class AWSAppSyncRealTimeProvider {
795
805
  // Step 1: connect websocket
796
806
  try {
797
807
  await (() => {
798
- return new Promise<void>((res, rej) => {
808
+ return new Promise<void>((resolve, reject) => {
799
809
  const newSocket = this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws');
800
810
  newSocket.onerror = () => {
801
811
  logger.debug(`WebSocket connection error`);
802
812
  };
803
813
  newSocket.onclose = () => {
804
- rej(new Error('Connection handshake error'));
814
+ reject(new Error('Connection handshake error'));
805
815
  };
806
816
  newSocket.onopen = () => {
807
817
  this.awsRealTimeSocket = newSocket;
808
- return res();
818
+
819
+ resolve();
809
820
  };
810
821
  });
811
822
  })();
812
823
  // Step 2: wait for ack from AWS AppSyncReaTime after sending init
813
824
  await (() => {
814
- return new Promise((res, rej) => {
825
+ return new Promise((resolve, reject) => {
815
826
  if (this.awsRealTimeSocket) {
816
827
  let ackOk = false;
817
828
  this.awsRealTimeSocket.onerror = error => {
@@ -819,7 +830,7 @@ export class AWSAppSyncRealTimeProvider {
819
830
  };
820
831
  this.awsRealTimeSocket.onclose = event => {
821
832
  logger.debug(`WebSocket closed ${event.reason}`);
822
- rej(new Error(JSON.stringify(event)));
833
+ reject(new Error(JSON.stringify(event)));
823
834
  };
824
835
 
825
836
  this.awsRealTimeSocket.onmessage = (message: MessageEvent) => {
@@ -851,7 +862,8 @@ export class AWSAppSyncRealTimeProvider {
851
862
  this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);
852
863
  };
853
864
  }
854
- res('Cool, connected to AWS AppSyncRealTime');
865
+ resolve('Cool, connected to AWS AppSyncRealTime');
866
+
855
867
  return;
856
868
  }
857
869
 
@@ -862,7 +874,9 @@ export class AWSAppSyncRealTimeProvider {
862
874
  } = {},
863
875
  } = data;
864
876
 
865
- rej({ errorType, errorCode });
877
+ // TODO(Eslint): refactor to reject an Error object instead of a plain object
878
+ // eslint-disable-next-line prefer-promise-reject-errors
879
+ reject({ errorType, errorCode });
866
880
  }
867
881
  };
868
882
 
@@ -871,12 +885,12 @@ export class AWSAppSyncRealTimeProvider {
871
885
  };
872
886
  this.awsRealTimeSocket.send(JSON.stringify(gqlInit));
873
887
 
874
- const checkAckOk = (ackOk: boolean) => {
875
- if (!ackOk) {
888
+ const checkAckOk = (targetAckOk: boolean) => {
889
+ if (!targetAckOk) {
876
890
  this.connectionStateMonitor.record(
877
891
  CONNECTION_CHANGE.CONNECTION_FAILED,
878
892
  );
879
- rej(
893
+ reject(
880
894
  new Error(
881
895
  `Connection timeout: ack from AWSAppSyncRealTime was not received after ${CONNECTION_INIT_TIMEOUT} ms`,
882
896
  ),
@@ -884,7 +898,9 @@ export class AWSAppSyncRealTimeProvider {
884
898
  }
885
899
  };
886
900
 
887
- setTimeout(() => checkAckOk(ackOk), CONNECTION_INIT_TIMEOUT);
901
+ setTimeout(() => {
902
+ checkAckOk(ackOk);
903
+ }, CONNECTION_INIT_TIMEOUT);
888
904
  }
889
905
  });
890
906
  })();
@@ -916,7 +932,9 @@ export class AWSAppSyncRealTimeProvider {
916
932
  Record<string, unknown> | undefined
917
933
  > {
918
934
  const headerHandler: {
919
- [key in GraphQLAuthMode]: (arg0: AWSAppSyncRealTimeAuthInput) => {};
935
+ [key in GraphQLAuthMode]: (
936
+ arg0: AWSAppSyncRealTimeAuthInput,
937
+ ) => Promise<Record<string, unknown>> | Record<string, unknown>;
920
938
  } = {
921
939
  apiKey: this._awsRealTimeApiKeyHeader.bind(this),
922
940
  iam: this._awsRealTimeIAMHeader.bind(this),
@@ -928,6 +946,7 @@ export class AWSAppSyncRealTimeProvider {
928
946
 
929
947
  if (!authenticationType || !headerHandler[authenticationType]) {
930
948
  logger.debug(`Authentication type ${authenticationType} not supported`);
949
+
931
950
  return undefined;
932
951
  } else {
933
952
  const handler = headerHandler[authenticationType];
@@ -969,7 +988,7 @@ export class AWSAppSyncRealTimeProvider {
969
988
  host,
970
989
  }: AWSAppSyncRealTimeAuthInput) {
971
990
  const dt = new Date();
972
- const dtStr = dt.toISOString().replace(/[:\-]|\.\d{3}/g, '');
991
+ const dtStr = dt.toISOString().replace(/[:-]|\.\d{3}/g, '');
973
992
 
974
993
  return {
975
994
  host,
@@ -998,7 +1017,7 @@ export class AWSAppSyncRealTimeProvider {
998
1017
  headers: { ...AWS_APPSYNC_REALTIME_HEADERS },
999
1018
  };
1000
1019
 
1001
- const signed_params = signRequest(
1020
+ const signedParams = signRequest(
1002
1021
  {
1003
1022
  headers: request.headers,
1004
1023
  method: request.method,
@@ -1012,7 +1031,8 @@ export class AWSAppSyncRealTimeProvider {
1012
1031
  signingService: endpointInfo.service,
1013
1032
  },
1014
1033
  );
1015
- return signed_params.headers;
1034
+
1035
+ return signedParams.headers;
1016
1036
  }
1017
1037
 
1018
1038
  private _customAuthHeader({
@@ -1024,7 +1044,7 @@ export class AWSAppSyncRealTimeProvider {
1024
1044
  * the headers that are returned by that function will already have been
1025
1045
  * provided before this function is called.
1026
1046
  */
1027
- if (!additionalCustomHeaders?.['Authorization']) {
1047
+ if (!additionalCustomHeaders?.Authorization) {
1028
1048
  throw new Error('No auth token specified');
1029
1049
  }
1030
1050