@aws-amplify/pubsub 5.0.12 → 5.0.13-push-notification-dryrun.43

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 (78) hide show
  1. package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +9 -8
  2. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +19 -14
  3. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  4. package/lib/Providers/AWSIotProvider.d.ts +1 -1
  5. package/lib/Providers/AWSIotProvider.js +1 -1
  6. package/lib/Providers/AWSIotProvider.js.map +1 -1
  7. package/lib/Providers/MqttOverWSProvider.d.ts +29 -12
  8. package/lib/Providers/MqttOverWSProvider.js +9 -10
  9. package/lib/Providers/MqttOverWSProvider.js.map +1 -1
  10. package/lib/Providers/PubSubProvider.d.ts +8 -7
  11. package/lib/Providers/PubSubProvider.js +0 -2
  12. package/lib/Providers/PubSubProvider.js.map +1 -1
  13. package/lib/Providers/index.d.ts +0 -1
  14. package/lib/Providers/index.js +0 -2
  15. package/lib/Providers/index.js.map +1 -1
  16. package/lib/PubSub.d.ts +9 -3
  17. package/lib/PubSub.js +4 -2
  18. package/lib/PubSub.js.map +1 -1
  19. package/lib/index.d.ts +1 -1
  20. package/lib/index.js +0 -1
  21. package/lib/index.js.map +1 -1
  22. package/lib/types/Provider.d.ts +7 -3
  23. package/lib/types/PubSub.d.ts +3 -0
  24. package/lib/types/PubSub.js +0 -2
  25. package/lib/types/PubSub.js.map +1 -1
  26. package/lib/types/index.d.ts +1 -1
  27. package/lib/types/index.js +3 -2
  28. package/lib/types/index.js.map +1 -1
  29. package/lib/utils/ConnectionStateMonitor.js.map +1 -1
  30. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +9 -8
  31. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +20 -15
  32. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  33. package/lib-esm/Providers/AWSIotProvider.d.ts +1 -1
  34. package/lib-esm/Providers/AWSIotProvider.js +1 -1
  35. package/lib-esm/Providers/AWSIotProvider.js.map +1 -1
  36. package/lib-esm/Providers/MqttOverWSProvider.d.ts +29 -12
  37. package/lib-esm/Providers/MqttOverWSProvider.js +10 -11
  38. package/lib-esm/Providers/MqttOverWSProvider.js.map +1 -1
  39. package/lib-esm/Providers/PubSubProvider.d.ts +8 -7
  40. package/lib-esm/Providers/PubSubProvider.js +0 -2
  41. package/lib-esm/Providers/PubSubProvider.js.map +1 -1
  42. package/lib-esm/Providers/index.d.ts +0 -1
  43. package/lib-esm/Providers/index.js +0 -1
  44. package/lib-esm/Providers/index.js.map +1 -1
  45. package/lib-esm/PubSub.d.ts +9 -3
  46. package/lib-esm/PubSub.js +4 -2
  47. package/lib-esm/PubSub.js.map +1 -1
  48. package/lib-esm/index.d.ts +1 -1
  49. package/lib-esm/index.js +1 -1
  50. package/lib-esm/index.js.map +1 -1
  51. package/lib-esm/types/Provider.d.ts +7 -3
  52. package/lib-esm/types/PubSub.d.ts +3 -0
  53. package/lib-esm/types/PubSub.js +0 -2
  54. package/lib-esm/types/PubSub.js.map +1 -1
  55. package/lib-esm/types/index.d.ts +1 -1
  56. package/lib-esm/types/index.js +1 -1
  57. package/lib-esm/types/index.js.map +1 -1
  58. package/lib-esm/utils/ConnectionStateMonitor.js.map +1 -1
  59. package/package.json +9 -9
  60. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +79 -29
  61. package/src/Providers/AWSIotProvider.ts +2 -2
  62. package/src/Providers/MqttOverWSProvider.ts +67 -31
  63. package/src/Providers/PubSubProvider.ts +13 -10
  64. package/src/Providers/index.ts +0 -1
  65. package/src/PubSub.ts +16 -8
  66. package/src/index.ts +0 -1
  67. package/src/types/Provider.ts +11 -3
  68. package/src/types/PubSub.ts +5 -0
  69. package/src/types/index.ts +1 -1
  70. package/src/utils/ConnectionStateMonitor.ts +0 -1
  71. package/CHANGELOG.md +0 -1269
  72. package/lib/Providers/AWSAppSyncProvider.d.ts +0 -21
  73. package/lib/Providers/AWSAppSyncProvider.js +0 -210
  74. package/lib/Providers/AWSAppSyncProvider.js.map +0 -1
  75. package/lib-esm/Providers/AWSAppSyncProvider.d.ts +0 -21
  76. package/lib-esm/Providers/AWSAppSyncProvider.js +0 -208
  77. package/lib-esm/Providers/AWSAppSyncProvider.js.map +0 -1
  78. package/src/Providers/AWSAppSyncProvider.ts +0 -194
@@ -1,194 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { Client } from 'paho-mqtt';
4
- import Observable from 'zen-observable-ts';
5
- import { ConsoleLogger as Logger } from '@aws-amplify/core';
6
-
7
- import { MqttOverWSProvider } from './MqttOverWSProvider';
8
-
9
- const logger = new Logger('AWSAppSyncProvider');
10
-
11
- /**
12
- * @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider
13
- */
14
- export class AWSAppSyncProvider extends MqttOverWSProvider {
15
- protected get endpoint() {
16
- throw new Error('Not supported');
17
- }
18
-
19
- getProviderName() {
20
- return 'AWSAppSyncProvider';
21
- }
22
-
23
- public async publish(topics: string[] | string, msg: any, options?: any) {
24
- throw new Error('Operation not supported');
25
- }
26
-
27
- private _cleanUp(clientId: string) {
28
- const topicsForClient = Array.from(this._topicClient.entries())
29
- .filter(([, c]) => c.clientId === clientId)
30
- .map(([t]) => t);
31
-
32
- topicsForClient.forEach(t => this._cleanUpForTopic(t));
33
- }
34
-
35
- private _cleanUpForTopic(topic) {
36
- this._topicClient.delete(topic);
37
- this._topicAlias.delete(topic);
38
- }
39
-
40
- public onDisconnect({ clientId, errorCode, ...args }) {
41
- if (errorCode !== 0) {
42
- const topicsForClient = Array.from(this._topicClient.entries())
43
- .filter(([, c]) => c.clientId === clientId)
44
- .map(([t]) => t);
45
-
46
- topicsForClient.forEach(topic => {
47
- if (this._topicObservers.has(topic)) {
48
- this._topicObservers.get(topic).forEach(obs => {
49
- if (!obs.closed) {
50
- obs.error(args);
51
- }
52
- });
53
-
54
- this._topicObservers.delete(topic);
55
- }
56
- });
57
-
58
- this._cleanUp(clientId);
59
- }
60
- }
61
-
62
- private _topicClient: Map<string, Client> = new Map();
63
-
64
- private _topicAlias: Map<string, string> = new Map();
65
-
66
- protected async disconnect(clientId: string): Promise<void> {
67
- const client = await this.clientsQueue.get(clientId, () => null);
68
-
69
- await super.disconnect(clientId);
70
-
71
- this._cleanUp(clientId);
72
- }
73
-
74
- subscribe(topics: string[] | string, options: any = {}): Observable<any> {
75
- const result = new Observable<any>(observer => {
76
- const targetTopics = ([] as string[]).concat(topics);
77
- logger.debug('Subscribing to topic(s)', targetTopics.join(','));
78
-
79
- (async () => {
80
- // Add these topics to map
81
- targetTopics.forEach(t => {
82
- if (!this._topicObservers.has(t)) {
83
- this._topicObservers.set(t, new Set());
84
- }
85
-
86
- this._topicObservers.get(t).add(observer);
87
- });
88
-
89
- const { mqttConnections = [], newSubscriptions } = options;
90
-
91
- // creates a map of {"topic": "alias"}
92
- const newAliases = Object.entries(newSubscriptions).map(
93
- ([alias, v]: [string, { topic: string }]) => [v.topic, alias]
94
- );
95
-
96
- // Merge new aliases with old ones
97
- this._topicAlias = new Map([
98
- ...Array.from(this._topicAlias.entries()),
99
- ...(newAliases as [string, string][]),
100
- ]);
101
-
102
- // group by urls
103
- const map: [string, { url: string; topics: Set<string> }][] =
104
- Object.entries(
105
- targetTopics.reduce((acc, elem) => {
106
- const connectionInfoForTopic = mqttConnections.find(
107
- c => c.topics.indexOf(elem) > -1
108
- );
109
-
110
- if (connectionInfoForTopic) {
111
- const { client: clientId, url } = connectionInfoForTopic;
112
-
113
- if (!acc[clientId]) {
114
- acc[clientId] = {
115
- url,
116
- topics: new Set(),
117
- };
118
- }
119
-
120
- acc[clientId].topics.add(elem);
121
- }
122
-
123
- return acc;
124
- }, {})
125
- );
126
-
127
- // reconnect everything we have in the map
128
- await Promise.all(
129
- map.map(async ([clientId, { url, topics }]) => {
130
- // connect to new client
131
- let client = null;
132
- try {
133
- client = await this.connect(clientId, {
134
- clientId,
135
- url,
136
- });
137
- } catch (err) {
138
- observer.error({ message: 'Failed to connect', error: err });
139
- observer.complete();
140
- return undefined;
141
- }
142
-
143
- // subscribe to all topics for this client
144
- // store topic-client mapping
145
- topics.forEach(topic => {
146
- if (client.isConnected()) {
147
- client.subscribe(topic);
148
-
149
- this._topicClient.set(topic, client);
150
- }
151
- });
152
-
153
- return client;
154
- })
155
- );
156
- })();
157
-
158
- return () => {
159
- logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));
160
-
161
- targetTopics.forEach(t => {
162
- const client = this._topicClient.get(t);
163
-
164
- if (client && client.isConnected()) {
165
- client.unsubscribe(t);
166
- this._topicClient.delete(t);
167
-
168
- if (
169
- !Array.from(this._topicClient.values()).some(c => c === client)
170
- ) {
171
- this.disconnect(client.clientId);
172
- }
173
- }
174
-
175
- this._topicObservers.delete(t);
176
- });
177
- };
178
- });
179
-
180
- return Observable.from(result).map(value => {
181
- const topic = this.getTopicForValue(value);
182
- const alias = this._topicAlias.get(topic);
183
-
184
- value.data = Object.entries(value.data).reduce(
185
- (obj, [origKey, val]) => (
186
- (obj[(alias || origKey) as string] = val), obj
187
- ),
188
- {}
189
- );
190
-
191
- return value;
192
- });
193
- }
194
- }