| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.default = void 0;var _EventEmitter = _interopRequireDefault(require("./EventEmitter"));var _LiveQueryClient = _interopRequireDefault(require("./LiveQueryClient"));var _CoreManager = _interopRequireDefault(require("./CoreManager"));function _interopRequireDefault(obj) {  return obj && obj.__esModule ? obj : {    default: obj  };}/** * @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 */const LiveQuery = new _EventEmitter.default();/** * After open is called, the LiveQuery will try to send a connect request * to the LiveQuery server. */LiveQuery.open = async () => {  const liveQueryClient = await getLiveQueryClient();  liveQueryClient.open();};/** * 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 = async () => {  const liveQueryClient = await getLiveQueryClient();  liveQueryClient.close();};// Register a default onError callback to make sure we do not crash on errorLiveQuery.on('error', () => {});var _default = LiveQuery;exports.default = _default;let defaultLiveQueryClient;const DefaultLiveQueryController = {  setDefaultLiveQueryClient(liveQueryClient /*: LiveQueryClient*/) {    defaultLiveQueryClient = liveQueryClient;  },  async getDefaultLiveQueryClient() /*: Promise<LiveQueryClient>*/{    if (defaultLiveQueryClient) {      return defaultLiveQueryClient;    }    const [currentUser, installationId] = await Promise.all([_CoreManager.default.getUserController().currentUserAsync(), _CoreManager.default.getInstallationController().currentInstallationId()]);    const sessionToken = currentUser ? currentUser.getSessionToken() : undefined;    let liveQueryServerURL = _CoreManager.default.get('LIVEQUERY_SERVER_URL');    if (liveQueryServerURL && liveQueryServerURL.indexOf('ws') !== 0) {      throw new Error('You need to set a proper Parse LiveQuery server url before using LiveQueryClient');    }    // If we can not find Parse.liveQueryServerURL, we try to extract it from Parse.serverURL    if (!liveQueryServerURL) {      const serverURL = _CoreManager.default.get('SERVER_URL');      const protocol = serverURL.indexOf('https') === 0 ? 'wss://' : 'ws://';      const host = serverURL.replace(/^https?:\/\//, '');      liveQueryServerURL = protocol + host;      _CoreManager.default.set('LIVEQUERY_SERVER_URL', liveQueryServerURL);    }    const applicationId = _CoreManager.default.get('APPLICATION_ID');    const javascriptKey = _CoreManager.default.get('JAVASCRIPT_KEY');    const masterKey = _CoreManager.default.get('MASTER_KEY');    defaultLiveQueryClient = new _LiveQueryClient.default({      applicationId,      serverURL: liveQueryServerURL,      javascriptKey,      masterKey,      sessionToken,      installationId    });    defaultLiveQueryClient.on('error', error => {      LiveQuery.emit('error', error);    });    defaultLiveQueryClient.on('open', () => {      LiveQuery.emit('open');    });    defaultLiveQueryClient.on('close', () => {      LiveQuery.emit('close');    });    return defaultLiveQueryClient;  },  _clearCachedDefaultClient() {    defaultLiveQueryClient = null;  }};_CoreManager.default.setLiveQueryController(DefaultLiveQueryController);
 |