@aws-amplify/pubsub 5.0.16 → 5.0.17-unstable-v5.6
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.
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +9 -8
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +19 -14
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/lib/Providers/AWSIotProvider.d.ts +1 -1
- package/lib/Providers/AWSIotProvider.js +1 -1
- package/lib/Providers/AWSIotProvider.js.map +1 -1
- package/lib/Providers/MqttOverWSProvider.d.ts +29 -12
- package/lib/Providers/MqttOverWSProvider.js +9 -11
- package/lib/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib/Providers/PubSubProvider.d.ts +8 -7
- package/lib/Providers/PubSubProvider.js +0 -2
- package/lib/Providers/PubSubProvider.js.map +1 -1
- package/lib/Providers/index.d.ts +0 -1
- package/lib/Providers/index.js +0 -2
- package/lib/Providers/index.js.map +1 -1
- package/lib/PubSub.d.ts +9 -3
- package/lib/PubSub.js +4 -2
- package/lib/PubSub.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/types/Provider.d.ts +7 -3
- package/lib/types/PubSub.d.ts +3 -0
- package/lib/types/PubSub.js +0 -2
- package/lib/types/PubSub.js.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +3 -2
- package/lib/types/index.js.map +1 -1
- package/lib/utils/ConnectionStateMonitor.js.map +1 -1
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +9 -8
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +20 -15
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/lib-esm/Providers/AWSIotProvider.d.ts +1 -1
- package/lib-esm/Providers/AWSIotProvider.js +1 -1
- package/lib-esm/Providers/AWSIotProvider.js.map +1 -1
- package/lib-esm/Providers/MqttOverWSProvider.d.ts +29 -12
- package/lib-esm/Providers/MqttOverWSProvider.js +10 -12
- package/lib-esm/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib-esm/Providers/PubSubProvider.d.ts +8 -7
- package/lib-esm/Providers/PubSubProvider.js +0 -2
- package/lib-esm/Providers/PubSubProvider.js.map +1 -1
- package/lib-esm/Providers/index.d.ts +0 -1
- package/lib-esm/Providers/index.js +0 -1
- package/lib-esm/Providers/index.js.map +1 -1
- package/lib-esm/PubSub.d.ts +9 -3
- package/lib-esm/PubSub.js +4 -2
- package/lib-esm/PubSub.js.map +1 -1
- package/lib-esm/index.d.ts +1 -1
- package/lib-esm/index.js +1 -1
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/types/Provider.d.ts +7 -3
- package/lib-esm/types/PubSub.d.ts +3 -0
- package/lib-esm/types/PubSub.js +0 -2
- package/lib-esm/types/PubSub.js.map +1 -1
- package/lib-esm/types/index.d.ts +1 -1
- package/lib-esm/types/index.js +1 -1
- package/lib-esm/types/index.js.map +1 -1
- package/lib-esm/utils/ConnectionStateMonitor.js.map +1 -1
- package/package.json +7 -8
- package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +79 -29
- package/src/Providers/AWSIotProvider.ts +2 -2
- package/src/Providers/MqttOverWSProvider.ts +67 -32
- package/src/Providers/PubSubProvider.ts +13 -10
- package/src/Providers/index.ts +0 -1
- package/src/PubSub.ts +16 -8
- package/src/index.ts +0 -1
- package/src/types/Provider.ts +11 -3
- package/src/types/PubSub.ts +5 -0
- package/src/types/index.ts +1 -1
- package/src/utils/ConnectionStateMonitor.ts +0 -1
- package/lib/Providers/AWSAppSyncProvider.d.ts +0 -21
- package/lib/Providers/AWSAppSyncProvider.js +0 -210
- package/lib/Providers/AWSAppSyncProvider.js.map +0 -1
- package/lib-esm/Providers/AWSAppSyncProvider.d.ts +0 -21
- package/lib-esm/Providers/AWSAppSyncProvider.js +0 -208
- package/lib-esm/Providers/AWSAppSyncProvider.js.map +0 -1
- package/src/Providers/AWSAppSyncProvider.ts +0 -194
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
var zen_observable_ts_1 = tslib_1.__importDefault(require("zen-observable-ts"));
|
|
5
|
-
var core_1 = require("@aws-amplify/core");
|
|
6
|
-
var MqttOverWSProvider_1 = require("./MqttOverWSProvider");
|
|
7
|
-
var logger = new core_1.ConsoleLogger('AWSAppSyncProvider');
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider
|
|
10
|
-
*/
|
|
11
|
-
var AWSAppSyncProvider = /** @class */ (function (_super) {
|
|
12
|
-
tslib_1.__extends(AWSAppSyncProvider, _super);
|
|
13
|
-
function AWSAppSyncProvider() {
|
|
14
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
15
|
-
_this._topicClient = new Map();
|
|
16
|
-
_this._topicAlias = new Map();
|
|
17
|
-
return _this;
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(AWSAppSyncProvider.prototype, "endpoint", {
|
|
20
|
-
get: function () {
|
|
21
|
-
throw new Error('Not supported');
|
|
22
|
-
},
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true
|
|
25
|
-
});
|
|
26
|
-
AWSAppSyncProvider.prototype.getProviderName = function () {
|
|
27
|
-
return 'AWSAppSyncProvider';
|
|
28
|
-
};
|
|
29
|
-
AWSAppSyncProvider.prototype.publish = function (topics, msg, options) {
|
|
30
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
31
|
-
return tslib_1.__generator(this, function (_a) {
|
|
32
|
-
throw new Error('Operation not supported');
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
AWSAppSyncProvider.prototype._cleanUp = function (clientId) {
|
|
37
|
-
var _this = this;
|
|
38
|
-
var topicsForClient = Array.from(this._topicClient.entries())
|
|
39
|
-
.filter(function (_a) {
|
|
40
|
-
var _b = tslib_1.__read(_a, 2), c = _b[1];
|
|
41
|
-
return c.clientId === clientId;
|
|
42
|
-
})
|
|
43
|
-
.map(function (_a) {
|
|
44
|
-
var _b = tslib_1.__read(_a, 1), t = _b[0];
|
|
45
|
-
return t;
|
|
46
|
-
});
|
|
47
|
-
topicsForClient.forEach(function (t) { return _this._cleanUpForTopic(t); });
|
|
48
|
-
};
|
|
49
|
-
AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) {
|
|
50
|
-
this._topicClient.delete(topic);
|
|
51
|
-
this._topicAlias.delete(topic);
|
|
52
|
-
};
|
|
53
|
-
AWSAppSyncProvider.prototype.onDisconnect = function (_a) {
|
|
54
|
-
var _this = this;
|
|
55
|
-
var clientId = _a.clientId, errorCode = _a.errorCode, args = tslib_1.__rest(_a, ["clientId", "errorCode"]);
|
|
56
|
-
if (errorCode !== 0) {
|
|
57
|
-
var topicsForClient = Array.from(this._topicClient.entries())
|
|
58
|
-
.filter(function (_a) {
|
|
59
|
-
var _b = tslib_1.__read(_a, 2), c = _b[1];
|
|
60
|
-
return c.clientId === clientId;
|
|
61
|
-
})
|
|
62
|
-
.map(function (_a) {
|
|
63
|
-
var _b = tslib_1.__read(_a, 1), t = _b[0];
|
|
64
|
-
return t;
|
|
65
|
-
});
|
|
66
|
-
topicsForClient.forEach(function (topic) {
|
|
67
|
-
if (_this._topicObservers.has(topic)) {
|
|
68
|
-
_this._topicObservers.get(topic).forEach(function (obs) {
|
|
69
|
-
if (!obs.closed) {
|
|
70
|
-
obs.error(args);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
_this._topicObservers.delete(topic);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
this._cleanUp(clientId);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
AWSAppSyncProvider.prototype.disconnect = function (clientId) {
|
|
80
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
81
|
-
var client;
|
|
82
|
-
return tslib_1.__generator(this, function (_a) {
|
|
83
|
-
switch (_a.label) {
|
|
84
|
-
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })];
|
|
85
|
-
case 1:
|
|
86
|
-
client = _a.sent();
|
|
87
|
-
return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)];
|
|
88
|
-
case 2:
|
|
89
|
-
_a.sent();
|
|
90
|
-
this._cleanUp(clientId);
|
|
91
|
-
return [2 /*return*/];
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
AWSAppSyncProvider.prototype.subscribe = function (topics, options) {
|
|
97
|
-
var _this = this;
|
|
98
|
-
if (options === void 0) { options = {}; }
|
|
99
|
-
var result = new zen_observable_ts_1.default(function (observer) {
|
|
100
|
-
var targetTopics = [].concat(topics);
|
|
101
|
-
logger.debug('Subscribing to topic(s)', targetTopics.join(','));
|
|
102
|
-
(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
103
|
-
var _a, mqttConnections, newSubscriptions, newAliases, map;
|
|
104
|
-
var _this = this;
|
|
105
|
-
return tslib_1.__generator(this, function (_b) {
|
|
106
|
-
switch (_b.label) {
|
|
107
|
-
case 0:
|
|
108
|
-
// Add these topics to map
|
|
109
|
-
targetTopics.forEach(function (t) {
|
|
110
|
-
if (!_this._topicObservers.has(t)) {
|
|
111
|
-
_this._topicObservers.set(t, new Set());
|
|
112
|
-
}
|
|
113
|
-
_this._topicObservers.get(t).add(observer);
|
|
114
|
-
});
|
|
115
|
-
_a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions;
|
|
116
|
-
newAliases = Object.entries(newSubscriptions).map(function (_a) {
|
|
117
|
-
var _b = tslib_1.__read(_a, 2), alias = _b[0], v = _b[1];
|
|
118
|
-
return [v.topic, alias];
|
|
119
|
-
});
|
|
120
|
-
// Merge new aliases with old ones
|
|
121
|
-
this._topicAlias = new Map(tslib_1.__spread(Array.from(this._topicAlias.entries()), newAliases));
|
|
122
|
-
map = Object.entries(targetTopics.reduce(function (acc, elem) {
|
|
123
|
-
var connectionInfoForTopic = mqttConnections.find(function (c) { return c.topics.indexOf(elem) > -1; });
|
|
124
|
-
if (connectionInfoForTopic) {
|
|
125
|
-
var clientId = connectionInfoForTopic.client, url = connectionInfoForTopic.url;
|
|
126
|
-
if (!acc[clientId]) {
|
|
127
|
-
acc[clientId] = {
|
|
128
|
-
url: url,
|
|
129
|
-
topics: new Set(),
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
acc[clientId].topics.add(elem);
|
|
133
|
-
}
|
|
134
|
-
return acc;
|
|
135
|
-
}, {}));
|
|
136
|
-
// reconnect everything we have in the map
|
|
137
|
-
return [4 /*yield*/, Promise.all(map.map(function (_a) {
|
|
138
|
-
var _b = tslib_1.__read(_a, 2), clientId = _b[0], _c = _b[1], url = _c.url, topics = _c.topics;
|
|
139
|
-
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
140
|
-
var client, err_1;
|
|
141
|
-
var _this = this;
|
|
142
|
-
return tslib_1.__generator(this, function (_d) {
|
|
143
|
-
switch (_d.label) {
|
|
144
|
-
case 0:
|
|
145
|
-
client = null;
|
|
146
|
-
_d.label = 1;
|
|
147
|
-
case 1:
|
|
148
|
-
_d.trys.push([1, 3, , 4]);
|
|
149
|
-
return [4 /*yield*/, this.connect(clientId, {
|
|
150
|
-
clientId: clientId,
|
|
151
|
-
url: url,
|
|
152
|
-
})];
|
|
153
|
-
case 2:
|
|
154
|
-
client = _d.sent();
|
|
155
|
-
return [3 /*break*/, 4];
|
|
156
|
-
case 3:
|
|
157
|
-
err_1 = _d.sent();
|
|
158
|
-
observer.error({ message: 'Failed to connect', error: err_1 });
|
|
159
|
-
observer.complete();
|
|
160
|
-
return [2 /*return*/, undefined];
|
|
161
|
-
case 4:
|
|
162
|
-
// subscribe to all topics for this client
|
|
163
|
-
// store topic-client mapping
|
|
164
|
-
topics.forEach(function (topic) {
|
|
165
|
-
if (client.isConnected()) {
|
|
166
|
-
client.subscribe(topic);
|
|
167
|
-
_this._topicClient.set(topic, client);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
return [2 /*return*/, client];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
}))];
|
|
175
|
-
case 1:
|
|
176
|
-
// reconnect everything we have in the map
|
|
177
|
-
_b.sent();
|
|
178
|
-
return [2 /*return*/];
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}); })();
|
|
182
|
-
return function () {
|
|
183
|
-
logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));
|
|
184
|
-
targetTopics.forEach(function (t) {
|
|
185
|
-
var client = _this._topicClient.get(t);
|
|
186
|
-
if (client && client.isConnected()) {
|
|
187
|
-
client.unsubscribe(t);
|
|
188
|
-
_this._topicClient.delete(t);
|
|
189
|
-
if (!Array.from(_this._topicClient.values()).some(function (c) { return c === client; })) {
|
|
190
|
-
_this.disconnect(client.clientId);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
_this._topicObservers.delete(t);
|
|
194
|
-
});
|
|
195
|
-
};
|
|
196
|
-
});
|
|
197
|
-
return zen_observable_ts_1.default.from(result).map(function (value) {
|
|
198
|
-
var topic = _this.getTopicForValue(value);
|
|
199
|
-
var alias = _this._topicAlias.get(topic);
|
|
200
|
-
value.data = Object.entries(value.data).reduce(function (obj, _a) {
|
|
201
|
-
var _b = tslib_1.__read(_a, 2), origKey = _b[0], val = _b[1];
|
|
202
|
-
return ((obj[(alias || origKey)] = val), obj);
|
|
203
|
-
}, {});
|
|
204
|
-
return value;
|
|
205
|
-
});
|
|
206
|
-
};
|
|
207
|
-
return AWSAppSyncProvider;
|
|
208
|
-
}(MqttOverWSProvider_1.MqttOverWSProvider));
|
|
209
|
-
exports.AWSAppSyncProvider = AWSAppSyncProvider;
|
|
210
|
-
//# sourceMappingURL=AWSAppSyncProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AWSAppSyncProvider.js","sourceRoot":"","sources":["../../src/Providers/AWSAppSyncProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import Observable from 'zen-observable-ts';
|
|
2
|
-
import { MqttOverWSProvider } from './MqttOverWSProvider';
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider
|
|
5
|
-
*/
|
|
6
|
-
export declare class AWSAppSyncProvider extends MqttOverWSProvider {
|
|
7
|
-
protected get endpoint(): void;
|
|
8
|
-
getProviderName(): string;
|
|
9
|
-
publish(topics: string[] | string, msg: any, options?: any): Promise<void>;
|
|
10
|
-
private _cleanUp;
|
|
11
|
-
private _cleanUpForTopic;
|
|
12
|
-
onDisconnect({ clientId, errorCode, ...args }: {
|
|
13
|
-
[x: string]: any;
|
|
14
|
-
clientId: any;
|
|
15
|
-
errorCode: any;
|
|
16
|
-
}): void;
|
|
17
|
-
private _topicClient;
|
|
18
|
-
private _topicAlias;
|
|
19
|
-
protected disconnect(clientId: string): Promise<void>;
|
|
20
|
-
subscribe(topics: string[] | string, options?: any): Observable<any>;
|
|
21
|
-
}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __extends, __generator, __read, __rest, __spread } from "tslib";
|
|
2
|
-
import Observable from 'zen-observable-ts';
|
|
3
|
-
import { ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
4
|
-
import { MqttOverWSProvider } from './MqttOverWSProvider';
|
|
5
|
-
var logger = new Logger('AWSAppSyncProvider');
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider
|
|
8
|
-
*/
|
|
9
|
-
var AWSAppSyncProvider = /** @class */ (function (_super) {
|
|
10
|
-
__extends(AWSAppSyncProvider, _super);
|
|
11
|
-
function AWSAppSyncProvider() {
|
|
12
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
13
|
-
_this._topicClient = new Map();
|
|
14
|
-
_this._topicAlias = new Map();
|
|
15
|
-
return _this;
|
|
16
|
-
}
|
|
17
|
-
Object.defineProperty(AWSAppSyncProvider.prototype, "endpoint", {
|
|
18
|
-
get: function () {
|
|
19
|
-
throw new Error('Not supported');
|
|
20
|
-
},
|
|
21
|
-
enumerable: true,
|
|
22
|
-
configurable: true
|
|
23
|
-
});
|
|
24
|
-
AWSAppSyncProvider.prototype.getProviderName = function () {
|
|
25
|
-
return 'AWSAppSyncProvider';
|
|
26
|
-
};
|
|
27
|
-
AWSAppSyncProvider.prototype.publish = function (topics, msg, options) {
|
|
28
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
29
|
-
return __generator(this, function (_a) {
|
|
30
|
-
throw new Error('Operation not supported');
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
AWSAppSyncProvider.prototype._cleanUp = function (clientId) {
|
|
35
|
-
var _this = this;
|
|
36
|
-
var topicsForClient = Array.from(this._topicClient.entries())
|
|
37
|
-
.filter(function (_a) {
|
|
38
|
-
var _b = __read(_a, 2), c = _b[1];
|
|
39
|
-
return c.clientId === clientId;
|
|
40
|
-
})
|
|
41
|
-
.map(function (_a) {
|
|
42
|
-
var _b = __read(_a, 1), t = _b[0];
|
|
43
|
-
return t;
|
|
44
|
-
});
|
|
45
|
-
topicsForClient.forEach(function (t) { return _this._cleanUpForTopic(t); });
|
|
46
|
-
};
|
|
47
|
-
AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) {
|
|
48
|
-
this._topicClient.delete(topic);
|
|
49
|
-
this._topicAlias.delete(topic);
|
|
50
|
-
};
|
|
51
|
-
AWSAppSyncProvider.prototype.onDisconnect = function (_a) {
|
|
52
|
-
var _this = this;
|
|
53
|
-
var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, ["clientId", "errorCode"]);
|
|
54
|
-
if (errorCode !== 0) {
|
|
55
|
-
var topicsForClient = Array.from(this._topicClient.entries())
|
|
56
|
-
.filter(function (_a) {
|
|
57
|
-
var _b = __read(_a, 2), c = _b[1];
|
|
58
|
-
return c.clientId === clientId;
|
|
59
|
-
})
|
|
60
|
-
.map(function (_a) {
|
|
61
|
-
var _b = __read(_a, 1), t = _b[0];
|
|
62
|
-
return t;
|
|
63
|
-
});
|
|
64
|
-
topicsForClient.forEach(function (topic) {
|
|
65
|
-
if (_this._topicObservers.has(topic)) {
|
|
66
|
-
_this._topicObservers.get(topic).forEach(function (obs) {
|
|
67
|
-
if (!obs.closed) {
|
|
68
|
-
obs.error(args);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
_this._topicObservers.delete(topic);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
this._cleanUp(clientId);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
AWSAppSyncProvider.prototype.disconnect = function (clientId) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
-
var client;
|
|
80
|
-
return __generator(this, function (_a) {
|
|
81
|
-
switch (_a.label) {
|
|
82
|
-
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })];
|
|
83
|
-
case 1:
|
|
84
|
-
client = _a.sent();
|
|
85
|
-
return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)];
|
|
86
|
-
case 2:
|
|
87
|
-
_a.sent();
|
|
88
|
-
this._cleanUp(clientId);
|
|
89
|
-
return [2 /*return*/];
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
AWSAppSyncProvider.prototype.subscribe = function (topics, options) {
|
|
95
|
-
var _this = this;
|
|
96
|
-
if (options === void 0) { options = {}; }
|
|
97
|
-
var result = new Observable(function (observer) {
|
|
98
|
-
var targetTopics = [].concat(topics);
|
|
99
|
-
logger.debug('Subscribing to topic(s)', targetTopics.join(','));
|
|
100
|
-
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
101
|
-
var _a, mqttConnections, newSubscriptions, newAliases, map;
|
|
102
|
-
var _this = this;
|
|
103
|
-
return __generator(this, function (_b) {
|
|
104
|
-
switch (_b.label) {
|
|
105
|
-
case 0:
|
|
106
|
-
// Add these topics to map
|
|
107
|
-
targetTopics.forEach(function (t) {
|
|
108
|
-
if (!_this._topicObservers.has(t)) {
|
|
109
|
-
_this._topicObservers.set(t, new Set());
|
|
110
|
-
}
|
|
111
|
-
_this._topicObservers.get(t).add(observer);
|
|
112
|
-
});
|
|
113
|
-
_a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions;
|
|
114
|
-
newAliases = Object.entries(newSubscriptions).map(function (_a) {
|
|
115
|
-
var _b = __read(_a, 2), alias = _b[0], v = _b[1];
|
|
116
|
-
return [v.topic, alias];
|
|
117
|
-
});
|
|
118
|
-
// Merge new aliases with old ones
|
|
119
|
-
this._topicAlias = new Map(__spread(Array.from(this._topicAlias.entries()), newAliases));
|
|
120
|
-
map = Object.entries(targetTopics.reduce(function (acc, elem) {
|
|
121
|
-
var connectionInfoForTopic = mqttConnections.find(function (c) { return c.topics.indexOf(elem) > -1; });
|
|
122
|
-
if (connectionInfoForTopic) {
|
|
123
|
-
var clientId = connectionInfoForTopic.client, url = connectionInfoForTopic.url;
|
|
124
|
-
if (!acc[clientId]) {
|
|
125
|
-
acc[clientId] = {
|
|
126
|
-
url: url,
|
|
127
|
-
topics: new Set(),
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
acc[clientId].topics.add(elem);
|
|
131
|
-
}
|
|
132
|
-
return acc;
|
|
133
|
-
}, {}));
|
|
134
|
-
// reconnect everything we have in the map
|
|
135
|
-
return [4 /*yield*/, Promise.all(map.map(function (_a) {
|
|
136
|
-
var _b = __read(_a, 2), clientId = _b[0], _c = _b[1], url = _c.url, topics = _c.topics;
|
|
137
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
138
|
-
var client, err_1;
|
|
139
|
-
var _this = this;
|
|
140
|
-
return __generator(this, function (_d) {
|
|
141
|
-
switch (_d.label) {
|
|
142
|
-
case 0:
|
|
143
|
-
client = null;
|
|
144
|
-
_d.label = 1;
|
|
145
|
-
case 1:
|
|
146
|
-
_d.trys.push([1, 3, , 4]);
|
|
147
|
-
return [4 /*yield*/, this.connect(clientId, {
|
|
148
|
-
clientId: clientId,
|
|
149
|
-
url: url,
|
|
150
|
-
})];
|
|
151
|
-
case 2:
|
|
152
|
-
client = _d.sent();
|
|
153
|
-
return [3 /*break*/, 4];
|
|
154
|
-
case 3:
|
|
155
|
-
err_1 = _d.sent();
|
|
156
|
-
observer.error({ message: 'Failed to connect', error: err_1 });
|
|
157
|
-
observer.complete();
|
|
158
|
-
return [2 /*return*/, undefined];
|
|
159
|
-
case 4:
|
|
160
|
-
// subscribe to all topics for this client
|
|
161
|
-
// store topic-client mapping
|
|
162
|
-
topics.forEach(function (topic) {
|
|
163
|
-
if (client.isConnected()) {
|
|
164
|
-
client.subscribe(topic);
|
|
165
|
-
_this._topicClient.set(topic, client);
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
return [2 /*return*/, client];
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
}))];
|
|
173
|
-
case 1:
|
|
174
|
-
// reconnect everything we have in the map
|
|
175
|
-
_b.sent();
|
|
176
|
-
return [2 /*return*/];
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}); })();
|
|
180
|
-
return function () {
|
|
181
|
-
logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));
|
|
182
|
-
targetTopics.forEach(function (t) {
|
|
183
|
-
var client = _this._topicClient.get(t);
|
|
184
|
-
if (client && client.isConnected()) {
|
|
185
|
-
client.unsubscribe(t);
|
|
186
|
-
_this._topicClient.delete(t);
|
|
187
|
-
if (!Array.from(_this._topicClient.values()).some(function (c) { return c === client; })) {
|
|
188
|
-
_this.disconnect(client.clientId);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
_this._topicObservers.delete(t);
|
|
192
|
-
});
|
|
193
|
-
};
|
|
194
|
-
});
|
|
195
|
-
return Observable.from(result).map(function (value) {
|
|
196
|
-
var topic = _this.getTopicForValue(value);
|
|
197
|
-
var alias = _this._topicAlias.get(topic);
|
|
198
|
-
value.data = Object.entries(value.data).reduce(function (obj, _a) {
|
|
199
|
-
var _b = __read(_a, 2), origKey = _b[0], val = _b[1];
|
|
200
|
-
return ((obj[(alias || origKey)] = val), obj);
|
|
201
|
-
}, {});
|
|
202
|
-
return value;
|
|
203
|
-
});
|
|
204
|
-
};
|
|
205
|
-
return AWSAppSyncProvider;
|
|
206
|
-
}(MqttOverWSProvider));
|
|
207
|
-
export { AWSAppSyncProvider };
|
|
208
|
-
//# sourceMappingURL=AWSAppSyncProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AWSAppSyncProvider.js","sourceRoot":"","sources":["../../src/Providers/AWSAppSyncProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
}
|