"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ParseUser = _interopRequireDefault(require("./ParseUser")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Copyright (c) 2015-present, Parse, LLC. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @flow-weak */ const uuidv4 = require('uuid/v4'); /*:: import type { RequestOptions } from './RESTController';*/ let registered = false; /** * Provides utility functions for working with Anonymously logged-in users.
* Anonymous users have some unique characteristics: * * @class Parse.AnonymousUtils * @static */ const AnonymousUtils = { /** * Gets whether the user has their account linked to anonymous user. * * @method isLinked * @name Parse.AnonymousUtils.isLinked * @param {Parse.User} user User to check for. * The user must be logged in on this device. * @return {Boolean} true if the user has their account * linked to an anonymous user. * @static */ isLinked(user /*: ParseUser*/ ) { const provider = this._getAuthProvider(); return user._isLinked(provider.getAuthType()); }, /** * Logs in a user Anonymously. * * @method logIn * @name Parse.AnonymousUtils.logIn * @param {Object} options MasterKey / SessionToken. * @returns {Promise} * @static */ logIn(options /*:: ?: RequestOptions*/ ) { const provider = this._getAuthProvider(); return _ParseUser.default._logInWith(provider.getAuthType(), provider.getAuthData(), options); }, /** * Links Anonymous User to an existing PFUser. * * @method link * @name Parse.AnonymousUtils.link * @param {Parse.User} user User to link. This must be the current user. * @param {Object} options MasterKey / SessionToken. * @returns {Promise} * @static */ link(user /*: ParseUser*/ , options /*:: ?: RequestOptions*/ ) { const provider = this._getAuthProvider(); return user._linkWith(provider.getAuthType(), provider.getAuthData(), options); }, _getAuthProvider() { const provider = { restoreAuthentication() { return true; }, getAuthType() { return 'anonymous'; }, getAuthData() { return { authData: { id: uuidv4() } }; } }; if (!registered) { _ParseUser.default._registerAuthenticationProvider(provider); registered = true; } return provider; } }; var _default = AnonymousUtils; exports.default = _default;