@trycourier/react-provider 5.1.3-internal.657026c.0 → 6.0.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 (40) hide show
  1. package/dist/hooks/use-courier-actions.js +96 -11
  2. package/dist/hooks/use-courier.js +2 -1
  3. package/dist/hooks/use-is-online.js +39 -0
  4. package/dist/index.js +20 -36
  5. package/dist/types.js +1 -21
  6. package/package.json +8 -7
  7. package/typings/hooks/use-courier-actions.d.ts +1 -13
  8. package/typings/hooks/use-courier-actions.d.ts.map +1 -1
  9. package/typings/hooks/use-courier.d.ts +1 -1
  10. package/typings/hooks/use-courier.d.ts.map +1 -1
  11. package/typings/hooks/use-is-online.d.ts +3 -0
  12. package/typings/hooks/use-is-online.d.ts.map +1 -0
  13. package/typings/index.d.ts +2 -5
  14. package/typings/index.d.ts.map +1 -1
  15. package/typings/types.d.ts +22 -64
  16. package/typings/types.d.ts.map +1 -1
  17. package/dist/hooks/use-transport.js +0 -82
  18. package/dist/lib/index.js +0 -19
  19. package/dist/transports/base.js +0 -94
  20. package/dist/transports/courier/index.js +0 -147
  21. package/dist/transports/courier/types.js +0 -1
  22. package/dist/transports/index.js +0 -31
  23. package/dist/transports/types.js +0 -0
  24. package/dist/ws.js +0 -304
  25. package/typings/hooks/use-transport.d.ts +0 -13
  26. package/typings/hooks/use-transport.d.ts.map +0 -1
  27. package/typings/lib/index.d.ts +0 -2
  28. package/typings/lib/index.d.ts.map +0 -1
  29. package/typings/transports/base.d.ts +0 -27
  30. package/typings/transports/base.d.ts.map +0 -1
  31. package/typings/transports/courier/index.d.ts +0 -26
  32. package/typings/transports/courier/index.d.ts.map +0 -1
  33. package/typings/transports/courier/types.d.ts +0 -10
  34. package/typings/transports/courier/types.d.ts.map +0 -1
  35. package/typings/transports/index.d.ts +0 -3
  36. package/typings/transports/index.d.ts.map +0 -1
  37. package/typings/transports/types.d.ts +0 -50
  38. package/typings/transports/types.d.ts.map +0 -1
  39. package/typings/ws.d.ts +0 -46
  40. package/typings/ws.d.ts.map +0 -1
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _react = require("react");
11
-
12
- var _transports = require("../transports");
13
-
14
- var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
15
-
16
- var useTransport = function useTransport(_ref) {
17
- var tenantId = _ref.tenantId,
18
- authorization = _ref.authorization,
19
- clientSourceId = _ref.clientSourceId,
20
- clientKey = _ref.clientKey,
21
- transport = _ref.transport,
22
- userSignature = _ref.userSignature,
23
- wsOptions = _ref.wsOptions;
24
- var transportRef = (0, _react.useRef)();
25
- var newTransport = (0, _react.useMemo)(function () {
26
- var _transportRef$current;
27
-
28
- if (transport) {
29
- return transport;
30
- }
31
-
32
- if (authorization && transportRef !== null && transportRef !== void 0 && (_transportRef$current = transportRef.current) !== null && _transportRef$current !== void 0 && _transportRef$current.authorization && transportRef !== null && transportRef !== void 0 && transportRef.current.transport) {
33
- var _transportRef$current2;
34
-
35
- var oldDecodedAuth = (0, _jwtDecode["default"])(transportRef === null || transportRef === void 0 ? void 0 : (_transportRef$current2 = transportRef.current) === null || _transportRef$current2 === void 0 ? void 0 : _transportRef$current2.authorization);
36
- var newDecodedAuth = (0, _jwtDecode["default"])(authorization);
37
-
38
- if (oldDecodedAuth.scope === newDecodedAuth.scope && oldDecodedAuth.tenantId === newDecodedAuth.tenantId) {
39
- transportRef.current.transport.renewSession(authorization);
40
- return transportRef.current.transport;
41
- }
42
- }
43
-
44
- if (!clientKey && !authorization) {
45
- if (undefined !== "production") {
46
- console.warn("Courier: Missing ClientKey or Authorization");
47
- }
48
-
49
- return;
50
- }
51
-
52
- if (!clientSourceId) {
53
- if (undefined !== "production") {
54
- console.warn("Courier: Missing ClientSourceId");
55
- }
56
-
57
- return;
58
- }
59
-
60
- var newTransport = new _transports.CourierTransport({
61
- tenantId: tenantId,
62
- authorization: authorization,
63
- clientSourceId: clientSourceId,
64
- clientKey: clientKey,
65
- userSignature: userSignature,
66
- wsOptions: wsOptions
67
- }); // keep track of the transport so we don't reconnect when we don't have to
68
-
69
- if (authorization) {
70
- transportRef.current = {
71
- authorization: authorization,
72
- transport: newTransport
73
- };
74
- }
75
-
76
- return newTransport;
77
- }, [tenantId, authorization, clientKey, transport, userSignature, wsOptions]);
78
- return newTransport;
79
- };
80
-
81
- var _default = useTransport;
82
- exports["default"] = _default;
package/dist/lib/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getDateDiff = void 0;
7
-
8
- var getDateDiff = function getDateDiff(date) {
9
- if (!date) {
10
- return;
11
- }
12
-
13
- var now = new Date().getTime();
14
- var dateDiff = now - date; // if datediff is 0, return 1 so we can do "!datediff"
15
-
16
- return Math.max(dateDiff, 1);
17
- };
18
-
19
- exports.getDateDiff = getDateDiff;
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Transport = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
15
-
16
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
-
18
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
-
20
- var ListenerType;
21
-
22
- (function (ListenerType) {
23
- ListenerType["message"] = "message";
24
- ListenerType["event"] = "event";
25
- })(ListenerType || (ListenerType = {}));
26
-
27
- var Transport = function Transport() {
28
- var _this = this;
29
-
30
- (0, _classCallCheck2["default"])(this, Transport);
31
-
32
- this.emit = function (courierEvent) {
33
- var _courierEvent$type;
34
-
35
- var eventType = (_courierEvent$type = courierEvent.type) !== null && _courierEvent$type !== void 0 ? _courierEvent$type : "message";
36
- var listeners = _this.listeners[eventType];
37
-
38
- if (!listeners.length) {
39
- console.warn("No Listeners Registered");
40
- return;
41
- }
42
-
43
- var _iterator = _createForOfIteratorHelper(listeners),
44
- _step;
45
-
46
- try {
47
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
48
- var listener = _step.value.listener;
49
- listener(courierEvent);
50
- }
51
- } catch (err) {
52
- _iterator.e(err);
53
- } finally {
54
- _iterator.f();
55
- }
56
- };
57
-
58
- this.listen = function (listener) {
59
- var _listener$type;
60
-
61
- var didReplaceListener = false;
62
- var eventType = (_listener$type = listener.type) !== null && _listener$type !== void 0 ? _listener$type : "message";
63
- var listeners = _this.listeners[eventType];
64
- listeners = listeners.map(function (l) {
65
- if (l.id === listener.id) {
66
- didReplaceListener = true;
67
- return listener;
68
- }
69
-
70
- return l;
71
- });
72
-
73
- if (didReplaceListener) {
74
- _this.listeners[eventType] = listeners;
75
- return;
76
- }
77
-
78
- _this.listeners[eventType] = [].concat((0, _toConsumableArray2["default"])(_this.listeners[eventType]), [listener]);
79
- };
80
-
81
- this.intercept = function (cb) {
82
- _this.interceptor = cb;
83
- };
84
-
85
- this.listeners = {
86
- message: [],
87
- event: []
88
- };
89
- this.interceptor = undefined;
90
- }
91
- /** Callback for emitted events */
92
- ;
93
-
94
- exports.Transport = Transport;
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.CourierTransport = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _ws = require("../../ws");
23
-
24
- var _base = require("../base");
25
-
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
-
30
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
31
-
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
-
34
- var CourierTransport = /*#__PURE__*/function (_Transport) {
35
- (0, _inherits2["default"])(CourierTransport, _Transport);
36
-
37
- var _super = _createSuper(CourierTransport);
38
-
39
- function CourierTransport(options) {
40
- var _options$wsOptions;
41
-
42
- var _this;
43
-
44
- (0, _classCallCheck2["default"])(this, CourierTransport);
45
- _this = _super.call(this);
46
-
47
- if (!options.clientKey && !options.authorization) {
48
- throw new Error("Missing Authorization");
49
- }
50
-
51
- _this.authorization = options.authorization;
52
- _this.clientSourceId = options.clientSourceId;
53
- _this.clientKey = options.clientKey;
54
- _this.userSignature = options.userSignature;
55
- _this.ws = new _ws.WS({
56
- tenantId: options.tenantId,
57
- authorization: options.authorization,
58
- clientSourceId: options.clientSourceId,
59
- clientKey: options.clientKey,
60
- options: options.wsOptions,
61
- userSignature: options.userSignature
62
- });
63
-
64
- _this.ws.connect();
65
-
66
- if ((_options$wsOptions = options.wsOptions) !== null && _options$wsOptions !== void 0 && _options$wsOptions.onReconnect) {
67
- var _options$wsOptions2;
68
-
69
- _this.ws.onReconnection({
70
- id: "propReconnect",
71
- callback: (_options$wsOptions2 = options.wsOptions) === null || _options$wsOptions2 === void 0 ? void 0 : _options$wsOptions2.onReconnect
72
- });
73
- }
74
-
75
- return _this;
76
- }
77
-
78
- (0, _createClass2["default"])(CourierTransport, [{
79
- key: "closeConnection",
80
- value: function closeConnection() {
81
- this.ws.close();
82
- }
83
- }, {
84
- key: "connect",
85
- value: function connect() {
86
- this.ws.connect();
87
- }
88
- }, {
89
- key: "keepAlive",
90
- value: function keepAlive() {
91
- this.ws.send({
92
- action: "keepAlive"
93
- });
94
- }
95
- }, {
96
- key: "send",
97
- value: function send(message) {
98
- this.ws.send(_objectSpread(_objectSpread({}, message), {}, {
99
- data: _objectSpread(_objectSpread({}, message.data), {}, {
100
- clientKey: this.clientKey
101
- })
102
- }));
103
- }
104
- }, {
105
- key: "subscribe",
106
- value: function subscribe(channel, event) {
107
- var _this2 = this;
108
-
109
- this.ws.subscribe(channel, event !== null && event !== void 0 ? event : "*", function (_ref) {
110
- var _courierEvent$type;
111
-
112
- var courierEvent = _ref.data;
113
-
114
- if (_this2.interceptor) {
115
- courierEvent = _this2.interceptor(courierEvent);
116
- }
117
-
118
- if (!courierEvent) {
119
- return;
120
- }
121
-
122
- _this2.emit({
123
- type: (_courierEvent$type = courierEvent.type) !== null && _courierEvent$type !== void 0 ? _courierEvent$type : "message",
124
- data: courierEvent
125
- });
126
- });
127
- }
128
- }, {
129
- key: "unsubscribe",
130
- value: function unsubscribe(channel, event) {
131
- this.ws.unsubscribe(channel, event !== null && event !== void 0 ? event : "*");
132
- }
133
- }, {
134
- key: "onReconnection",
135
- value: function onReconnection(handler) {
136
- this.ws.onReconnection(handler);
137
- }
138
- }, {
139
- key: "renewSession",
140
- value: function renewSession(token) {
141
- this.ws.renewSession(token);
142
- }
143
- }]);
144
- return CourierTransport;
145
- }(_base.Transport);
146
-
147
- exports.CourierTransport = CourierTransport;
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _courier = require("./courier");
8
-
9
- Object.keys(_courier).forEach(function (key) {
10
- if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _courier[key]) return;
12
- Object.defineProperty(exports, key, {
13
- enumerable: true,
14
- get: function get() {
15
- return _courier[key];
16
- }
17
- });
18
- });
19
-
20
- var _base = require("./base");
21
-
22
- Object.keys(_base).forEach(function (key) {
23
- if (key === "default" || key === "__esModule") return;
24
- if (key in exports && exports[key] === _base[key]) return;
25
- Object.defineProperty(exports, key, {
26
- enumerable: true,
27
- get: function get() {
28
- return _base[key];
29
- }
30
- });
31
- });
File without changes
package/dist/ws.js DELETED
@@ -1,304 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.WS = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _reconnectingWebsocket = _interopRequireDefault(require("reconnecting-websocket"));
19
-
20
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21
-
22
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
-
24
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
-
26
- var SUBSCRIPTION_VERSION = 5;
27
-
28
- var WS = /*#__PURE__*/function () {
29
- function WS(_ref) {
30
- var tenantId = _ref.tenantId,
31
- authorization = _ref.authorization,
32
- clientKey = _ref.clientKey,
33
- options = _ref.options,
34
- clientSourceId = _ref.clientSourceId,
35
- userSignature = _ref.userSignature;
36
- (0, _classCallCheck2["default"])(this, WS);
37
- this.tenantId = tenantId;
38
- this.connectionCount = 0;
39
- this.authorization = authorization;
40
- this.messageCallback = null;
41
- this.connection = undefined;
42
- this.connected = false;
43
- this.url = (options === null || options === void 0 ? void 0 : options.url) || "" || "wss://realtime.courier.com";
44
- this.clientSourceId = clientSourceId;
45
- this.clientKey = clientKey;
46
- this.userSignature = userSignature;
47
- this.subscriptions = [];
48
- this.onReconnectionHandlers = [];
49
- this.connectionTimeout = options === null || options === void 0 ? void 0 : options.connectionTimeout;
50
- this.onError = options === null || options === void 0 ? void 0 : options.onError;
51
- this.onClose = options === null || options === void 0 ? void 0 : options.onClose;
52
- }
53
-
54
- (0, _createClass2["default"])(WS, [{
55
- key: "close",
56
- value: function close() {
57
- if (!this.connected || !this.connection) {
58
- return;
59
- }
60
-
61
- this.connection.close();
62
- }
63
- }, {
64
- key: "getUrl",
65
- value: function getUrl() {
66
- return "".concat(this.url, "/?").concat(this.authorization ? "auth=".concat(this.authorization) : "clientKey=".concat(this.clientKey));
67
- }
68
- }, {
69
- key: "connect",
70
- value: function connect() {
71
- this.connection = new _reconnectingWebsocket["default"](this.getUrl.bind(this), [], {
72
- connectionTimeout: this.connectionTimeout
73
- });
74
- this.connection.onopen = this._onOpen.bind(this);
75
- this.connection.onclose = this._onClose.bind(this);
76
- this.connection.onerror = this._onError.bind(this);
77
- this.connection.onmessage = this._onMessage.bind(this);
78
- }
79
- }, {
80
- key: "_onError",
81
- value: function _onError(event) {
82
- var _this$connection;
83
-
84
- if (this.onError) {
85
- this.onError(event);
86
- } else {
87
- console.error("Error Connecting to Courier Push");
88
- }
89
-
90
- (_this$connection = this.connection) === null || _this$connection === void 0 ? void 0 : _this$connection.close();
91
- }
92
- }, {
93
- key: "_onClose",
94
- value: function _onClose() {
95
- this.connected = false;
96
-
97
- if (this.onClose) {
98
- this.onClose();
99
- }
100
- }
101
- }, {
102
- key: "_onOpen",
103
- value: function _onOpen() {
104
- this.connected = true;
105
- this.connectionCount++;
106
-
107
- if (this.connectionCount > 1) {
108
- var _iterator = _createForOfIteratorHelper(this.onReconnectionHandlers),
109
- _step;
110
-
111
- try {
112
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
113
- var reconnectHandler = _step.value;
114
- reconnectHandler.callback();
115
- }
116
- } catch (err) {
117
- _iterator.e(err);
118
- } finally {
119
- _iterator.f();
120
- }
121
- }
122
-
123
- var _iterator2 = _createForOfIteratorHelper(this.subscriptions),
124
- _step2;
125
-
126
- try {
127
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
128
- var sub = _step2.value;
129
- this.send({
130
- action: "subscribe",
131
- data: {
132
- // [HACK] map tenantId to accountId in order to keep this backwards compatible
133
- accountId: this.tenantId,
134
- channel: sub.channel,
135
- clientSourceId: this.clientSourceId,
136
- clientKey: this.clientKey,
137
- event: sub.event,
138
- userSignature: this.userSignature,
139
- version: SUBSCRIPTION_VERSION
140
- }
141
- });
142
- }
143
- } catch (err) {
144
- _iterator2.e(err);
145
- } finally {
146
- _iterator2.f();
147
- }
148
- }
149
- }, {
150
- key: "_onMessage",
151
- value: function _onMessage(_ref2) {
152
- var data = _ref2.data;
153
- var message;
154
-
155
- try {
156
- message = JSON.parse(data);
157
- } catch (_unused) {
158
- console.error("Error Parsing Courier Message");
159
- return;
160
- }
161
-
162
- if (message.error) {
163
- console.error(message.error);
164
- return;
165
- }
166
-
167
- var _iterator3 = _createForOfIteratorHelper(this.subscriptions),
168
- _step3;
169
-
170
- try {
171
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
172
- var _message, _message$type;
173
-
174
- var sub = _step3.value;
175
-
176
- if (sub.event !== "*" && sub.event !== ((_message = message) === null || _message === void 0 ? void 0 : _message.event)) {
177
- continue;
178
- }
179
-
180
- sub.callback({
181
- type: (_message$type = message.type) !== null && _message$type !== void 0 ? _message$type : "message",
182
- data: message
183
- });
184
- }
185
- } catch (err) {
186
- _iterator3.e(err);
187
- } finally {
188
- _iterator3.f();
189
- }
190
- }
191
- }, {
192
- key: "subscribe",
193
- value: function () {
194
- var _subscribe = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(channel, event, callback) {
195
- return _regenerator["default"].wrap(function _callee$(_context) {
196
- while (1) {
197
- switch (_context.prev = _context.next) {
198
- case 0:
199
- this.subscriptions.push({
200
- channel: channel,
201
- event: event,
202
- callback: callback
203
- });
204
-
205
- if (this.connected) {
206
- this.send({
207
- action: "subscribe",
208
- data: {
209
- // [HACK] map tenantId to accountId in order to keep this backwards compatible
210
- accountId: this.tenantId,
211
- channel: channel,
212
- clientKey: this.clientKey,
213
- clientSourceId: this.clientSourceId,
214
- event: event,
215
- userSignature: this.userSignature,
216
- version: SUBSCRIPTION_VERSION
217
- }
218
- });
219
- }
220
-
221
- case 2:
222
- case "end":
223
- return _context.stop();
224
- }
225
- }
226
- }, _callee, this);
227
- }));
228
-
229
- function subscribe(_x, _x2, _x3) {
230
- return _subscribe.apply(this, arguments);
231
- }
232
-
233
- return subscribe;
234
- }()
235
- }, {
236
- key: "send",
237
- value: function send(message) {
238
- if (!this.connected || !this.connection) {
239
- console.warn("WS Not Connected");
240
- return;
241
- }
242
-
243
- this.connection.send(JSON.stringify(message));
244
- }
245
- }, {
246
- key: "unsubscribe",
247
- value: function unsubscribe(channel, event) {
248
- this.subscriptions = this.subscriptions.filter(function (sub) {
249
- return !(sub.channel === channel && sub.event === event);
250
- });
251
- this.send({
252
- action: "unsubscribe",
253
- data: {
254
- channel: channel,
255
- clientKey: this.clientKey,
256
- event: event,
257
- userSignature: this.userSignature,
258
- version: SUBSCRIPTION_VERSION
259
- }
260
- });
261
- }
262
- }, {
263
- key: "renewSession",
264
- value: function renewSession(newAuthorization) {
265
- this.authorization = newAuthorization;
266
-
267
- if (!this.connected || !this.connection) {
268
- this.connect();
269
- return;
270
- }
271
-
272
- this.send({
273
- action: "renewSession",
274
- data: {
275
- auth: newAuthorization,
276
- version: SUBSCRIPTION_VERSION
277
- }
278
- });
279
- }
280
- }, {
281
- key: "onReconnection",
282
- value: function onReconnection(handler) {
283
- if (this.onReconnectionHandlers.find(function (h) {
284
- return h.id === handler.id;
285
- })) {
286
- var _this$onReconnectionH;
287
-
288
- this.onReconnectionHandlers = (_this$onReconnectionH = this.onReconnectionHandlers) === null || _this$onReconnectionH === void 0 ? void 0 : _this$onReconnectionH.map(function (h) {
289
- if (h.id === handler.id) {
290
- return handler;
291
- }
292
-
293
- return h;
294
- });
295
- return;
296
- }
297
-
298
- this.onReconnectionHandlers.push(handler);
299
- }
300
- }]);
301
- return WS;
302
- }();
303
-
304
- exports.WS = WS;