"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ParseUser = _interopRequireDefault(require("./ParseUser")); /** * 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 */ var uuidv4 = require('uuid/v4'); /*:: import type { RequestOptions } from './RESTController';*/ 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. * * @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: function (user /*: ParseUser*/ ) { var 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: function (options /*:: ?: RequestOptions*/ ) { var 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: function (user /*: ParseUser*/ , options /*:: ?: RequestOptions*/ ) { var provider = this._getAuthProvider(); return user._linkWith(provider.getAuthType(), provider.getAuthData(), options); }, _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;