"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 _ParseUser = _interopRequireDefault(require("./ParseUser")); /** * @flow-weak */ /*:: import type { RequestOptions } from './RESTController';*/ var uuidv4 = require('./uuid'); var registered = false; /** * Provides utility functions for working with Anonymously logged-in users.
* Anonymous users have some unique characteristics: * * * @class Parse.AnonymousUtils * @static */ var 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: function (user /*: ParseUser*/) { var 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: function (options /*:: ?: RequestOptions*/) /*: Promise*/{ var 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: function (user /*: ParseUser*/, options /*:: ?: RequestOptions*/) /*: Promise*/{ var 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: function () /*: boolean*/{ return registered; }, _getAuthProvider: function () { var provider = { restoreAuthentication: function () { return true; }, getAuthType: function () { return 'anonymous'; }, getAuthData: function () { return { authData: { id: uuidv4() } }; } }; if (!registered) { _ParseUser.default._registerAuthenticationProvider(provider); registered = true; } return provider; } }; var _default = AnonymousUtils; exports.default = _default;