"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 }; } /** * @flow-weak */ /*:: import type { RequestOptions } from './RESTController';*/ const uuidv4 = require('./uuid'); 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. * * @function isLinked * @name Parse.AnonymousUtils.isLinked * @param {Parse.User} user User to check for. * The user must be logged in on this device. * @returns {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. * * @function logIn * @name Parse.AnonymousUtils.logIn * @param {object} options MasterKey / SessionToken. * @returns {Promise} Logged in user * @static */ logIn(options /*:: ?: RequestOptions*/) /*: Promise*/{ const provider = this._getAuthProvider(); return _ParseUser.default.logInWith(provider.getAuthType(), provider.getAuthData(), options); }, /** * Links Anonymous User to an existing PFUser. * * @function 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} Linked with User * @static */ link(user /*: ParseUser*/, options /*:: ?: RequestOptions*/) /*: Promise*/{ const provider = this._getAuthProvider(); return user.linkWith(provider.getAuthType(), provider.getAuthData(), options); }, /** * Returns true if Authentication Provider has been registered for use. * * @function isRegistered * @name Parse.AnonymousUtils.isRegistered * @returns {boolean} * @static */ isRegistered() /*: boolean*/{ return registered; }, _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;