| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | 
							- "use strict";
 
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
 
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
 
- _Object$defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports.default = void 0;
 
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
 
- var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
 
- var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
 
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
 
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
 
- var _EventEmitter = _interopRequireDefault(require("./EventEmitter"));
 
- var _LiveQueryClient = _interopRequireDefault(require("./LiveQueryClient"));
 
- var _CoreManager = _interopRequireDefault(require("./CoreManager"));
 
- /**
 
-  * @flow
 
-  */
 
- function getLiveQueryClient() /*: LiveQueryClient*/{
 
-   return _CoreManager.default.getLiveQueryController().getDefaultLiveQueryClient();
 
- }
 
- /**
 
-  * We expose three events to help you monitor the status of the WebSocket connection:
 
-  *
 
-  * <p>Open - When we establish the WebSocket connection to the LiveQuery server, you'll get this event.
 
-  *
 
-  * <pre>
 
-  * Parse.LiveQuery.on('open', () => {
 
-  *
 
-  * });</pre></p>
 
-  *
 
-  * <p>Close - When we lose the WebSocket connection to the LiveQuery server, you'll get this event.
 
-  *
 
-  * <pre>
 
-  * Parse.LiveQuery.on('close', () => {
 
-  *
 
-  * });</pre></p>
 
-  *
 
-  * <p>Error - When some network error or LiveQuery server error happens, you'll get this event.
 
-  *
 
-  * <pre>
 
-  * Parse.LiveQuery.on('error', (error) => {
 
-  *
 
-  * });</pre></p>
 
-  *
 
-  * @class Parse.LiveQuery
 
-  * @static
 
-  */
 
- var LiveQuery = new _EventEmitter.default();
 
- /**
 
-  * After open is called, the LiveQuery will try to send a connect request
 
-  * to the LiveQuery server.
 
-  */
 
- LiveQuery.open = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
 
-   var liveQueryClient;
 
-   return _regenerator.default.wrap(function (_context) {
 
-     while (1) switch (_context.prev = _context.next) {
 
-       case 0:
 
-         _context.next = 2;
 
-         return getLiveQueryClient();
 
-       case 2:
 
-         liveQueryClient = _context.sent;
 
-         liveQueryClient.open();
 
-       case 4:
 
-       case "end":
 
-         return _context.stop();
 
-     }
 
-   }, _callee);
 
- }));
 
- /**
 
-  * When you're done using LiveQuery, you can call Parse.LiveQuery.close().
 
-  * This function will close the WebSocket connection to the LiveQuery server,
 
-  * cancel the auto reconnect, and unsubscribe all subscriptions based on it.
 
-  * If you call query.subscribe() after this, we'll create a new WebSocket
 
-  * connection to the LiveQuery server.
 
-  */
 
- LiveQuery.close = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
 
-   var liveQueryClient;
 
-   return _regenerator.default.wrap(function (_context2) {
 
-     while (1) switch (_context2.prev = _context2.next) {
 
-       case 0:
 
-         _context2.next = 2;
 
-         return getLiveQueryClient();
 
-       case 2:
 
-         liveQueryClient = _context2.sent;
 
-         liveQueryClient.close();
 
-       case 4:
 
-       case "end":
 
-         return _context2.stop();
 
-     }
 
-   }, _callee2);
 
- }));
 
- // Register a default onError callback to make sure we do not crash on error
 
- LiveQuery.on('error', function () {});
 
- var _default = LiveQuery;
 
- exports.default = _default;
 
- var defaultLiveQueryClient;
 
- var DefaultLiveQueryController = {
 
-   setDefaultLiveQueryClient: function (liveQueryClient /*: LiveQueryClient*/) {
 
-     defaultLiveQueryClient = liveQueryClient;
 
-   },
 
-   getDefaultLiveQueryClient: function () /*: Promise<LiveQueryClient>*/{
 
-     return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
 
-       var _yield$Promise$all, _yield$Promise$all2, currentUser, installationId, sessionToken, liveQueryServerURL, serverURL, protocol, host, applicationId, javascriptKey, masterKey;
 
-       return _regenerator.default.wrap(function (_context3) {
 
-         while (1) switch (_context3.prev = _context3.next) {
 
-           case 0:
 
-             if (!defaultLiveQueryClient) {
 
-               _context3.next = 2;
 
-               break;
 
-             }
 
-             return _context3.abrupt("return", defaultLiveQueryClient);
 
-           case 2:
 
-             _context3.next = 4;
 
-             return _promise.default.all([_CoreManager.default.getUserController().currentUserAsync(), _CoreManager.default.getInstallationController().currentInstallationId()]);
 
-           case 4:
 
-             _yield$Promise$all = _context3.sent;
 
-             _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
 
-             currentUser = _yield$Promise$all2[0];
 
-             installationId = _yield$Promise$all2[1];
 
-             sessionToken = currentUser ? currentUser.getSessionToken() : undefined;
 
-             liveQueryServerURL = _CoreManager.default.get('LIVEQUERY_SERVER_URL');
 
-             if (!(liveQueryServerURL && (0, _indexOf.default)(liveQueryServerURL).call(liveQueryServerURL, 'ws') !== 0)) {
 
-               _context3.next = 12;
 
-               break;
 
-             }
 
-             throw new Error('You need to set a proper Parse LiveQuery server url before using LiveQueryClient');
 
-           case 12:
 
-             // If we can not find Parse.liveQueryServerURL, we try to extract it from Parse.serverURL
 
-             if (!liveQueryServerURL) {
 
-               serverURL = _CoreManager.default.get('SERVER_URL');
 
-               protocol = (0, _indexOf.default)(serverURL).call(serverURL, 'https') === 0 ? 'wss://' : 'ws://';
 
-               host = serverURL.replace(/^https?:\/\//, '');
 
-               liveQueryServerURL = protocol + host;
 
-               _CoreManager.default.set('LIVEQUERY_SERVER_URL', liveQueryServerURL);
 
-             }
 
-             applicationId = _CoreManager.default.get('APPLICATION_ID');
 
-             javascriptKey = _CoreManager.default.get('JAVASCRIPT_KEY');
 
-             masterKey = _CoreManager.default.get('MASTER_KEY');
 
-             defaultLiveQueryClient = new _LiveQueryClient.default({
 
-               applicationId: applicationId,
 
-               serverURL: liveQueryServerURL,
 
-               javascriptKey: javascriptKey,
 
-               masterKey: masterKey,
 
-               sessionToken: sessionToken,
 
-               installationId: installationId
 
-             });
 
-             defaultLiveQueryClient.on('error', function (error) {
 
-               LiveQuery.emit('error', error);
 
-             });
 
-             defaultLiveQueryClient.on('open', function () {
 
-               LiveQuery.emit('open');
 
-             });
 
-             defaultLiveQueryClient.on('close', function () {
 
-               LiveQuery.emit('close');
 
-             });
 
-             return _context3.abrupt("return", defaultLiveQueryClient);
 
-           case 21:
 
-           case "end":
 
-             return _context3.stop();
 
-         }
 
-       }, _callee3);
 
-     }))();
 
-   },
 
-   _clearCachedDefaultClient: function () {
 
-     defaultLiveQueryClient = null;
 
-   }
 
- };
 
- _CoreManager.default.setLiveQueryController(DefaultLiveQueryController);
 
 
  |