"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:
*
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;