parse
Version:
Parse JavaScript SDK
401 lines (399 loc) • 14.2 kB
JavaScript
;
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
var _decode = _interopRequireDefault(require("./decode"));
var _encode = _interopRequireDefault(require("./encode"));
var _CryptoController = _interopRequireDefault(require("./CryptoController"));
var _EventuallyQueue = _interopRequireDefault(require("./EventuallyQueue"));
var _IndexedDBStorageController = _interopRequireDefault(require("./IndexedDBStorageController"));
var _InstallationController = _interopRequireDefault(require("./InstallationController"));
var ParseOp = _interopRequireWildcard(require("./ParseOp"));
var _RESTController = _interopRequireDefault(require("./RESTController"));
var _ParseACL = _interopRequireDefault(require("./ParseACL"));
var Analytics = _interopRequireWildcard(require("./Analytics"));
var _AnonymousUtils = _interopRequireDefault(require("./AnonymousUtils"));
var Cloud = _interopRequireWildcard(require("./Cloud"));
var _ParseCLP = _interopRequireDefault(require("./ParseCLP"));
var _CoreManager = _interopRequireDefault(require("./CoreManager"));
var _EventEmitter = _interopRequireDefault(require("./EventEmitter"));
var _ParseConfig = _interopRequireDefault(require("./ParseConfig"));
var _ParseError = _interopRequireDefault(require("./ParseError"));
var _FacebookUtils = _interopRequireDefault(require("./FacebookUtils"));
var _ParseFile = _interopRequireDefault(require("./ParseFile"));
var Hooks = _interopRequireWildcard(require("./ParseHooks"));
var _ParseGeoPoint = _interopRequireDefault(require("./ParseGeoPoint"));
var _ParsePolygon = _interopRequireDefault(require("./ParsePolygon"));
var _ParseInstallation = _interopRequireDefault(require("./ParseInstallation"));
var _LocalDatastore = _interopRequireDefault(require("./LocalDatastore"));
var _ParseObject = _interopRequireDefault(require("./ParseObject"));
var Push = _interopRequireWildcard(require("./Push"));
var _ParseQuery = _interopRequireDefault(require("./ParseQuery"));
var _ParseRelation = _interopRequireDefault(require("./ParseRelation"));
var _ParseRole = _interopRequireDefault(require("./ParseRole"));
var _ParseSchema = _interopRequireDefault(require("./ParseSchema"));
var _ParseSession = _interopRequireDefault(require("./ParseSession"));
var _Storage = _interopRequireDefault(require("./Storage"));
var _ParseUser = _interopRequireDefault(require("./ParseUser"));
var _ParseLiveQuery = _interopRequireDefault(require("./ParseLiveQuery"));
var _LiveQueryClient = _interopRequireDefault(require("./LiveQueryClient"));
var _LocalDatastoreController = _interopRequireDefault(require("./LocalDatastoreController"));
var _StorageController = _interopRequireDefault(require("./StorageController"));
var _WebSocketController = _interopRequireDefault(require("./WebSocketController"));
function _interopRequireWildcard(e, t) {
if ("function" == typeof _WeakMap) var r = new _WeakMap(),
n = new _WeakMap();
return (_interopRequireWildcard = function (e, t) {
if (!t && e && e.__esModule) return e;
var o,
i,
f = {
__proto__: null,
default: e
};
if (null === e || "object" != typeof e && "function" != typeof e) return f;
if (o = t ? n : r) {
if (o.has(e)) return o.get(e);
o.set(e, f);
}
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
return f;
})(e, t);
}
const Parse = {
ACL: _ParseACL.default,
Analytics,
AnonymousUtils: _AnonymousUtils.default,
Cloud,
CLP: _ParseCLP.default,
CoreManager: _CoreManager.default,
Config: _ParseConfig.default,
Error: _ParseError.default,
FacebookUtils: _FacebookUtils.default,
File: _ParseFile.default,
GeoPoint: _ParseGeoPoint.default,
Polygon: _ParsePolygon.default,
Installation: _ParseInstallation.default,
LocalDatastore: _LocalDatastore.default,
Object: _ParseObject.default,
Op: {
Set: ParseOp.SetOp,
Unset: ParseOp.UnsetOp,
Increment: ParseOp.IncrementOp,
Add: ParseOp.AddOp,
Remove: ParseOp.RemoveOp,
AddUnique: ParseOp.AddUniqueOp,
Relation: ParseOp.RelationOp
},
Push,
Query: _ParseQuery.default,
Relation: _ParseRelation.default,
Role: _ParseRole.default,
Schema: _ParseSchema.default,
Session: _ParseSession.default,
Storage: _Storage.default,
User: _ParseUser.default,
LiveQueryClient: _LiveQueryClient.default,
IndexedDB: undefined,
Hooks: undefined,
Parse: undefined,
/**
* @property {EventuallyQueue} Parse.EventuallyQueue
* @static
*/
set EventuallyQueue(queue) {
_CoreManager.default.setEventuallyQueue(queue);
},
get EventuallyQueue() {
return _CoreManager.default.getEventuallyQueue();
},
/**
* Call this method first to set up your authentication tokens for Parse.
*
* @param {string} applicationId Your Parse Application ID.
* @param {string} [javaScriptKey] Your Parse JavaScript Key (Not needed for parse-server)
* @param {string} [masterKey] Your Parse Master Key. (Node.js only!)
* @static
*/
initialize(applicationId, javaScriptKey) {
if ("browser" === 'browser' && _CoreManager.default.get('IS_NODE') && !process.env.SERVER_RENDERING) {
console.log("It looks like you're using the browser version of the SDK in a " + "node.js environment. You should require('parse/node') instead.");
}
Parse._initialize(applicationId, javaScriptKey);
},
_initialize(applicationId, javaScriptKey, masterKey, maintenanceKey) {
_CoreManager.default.set('APPLICATION_ID', applicationId);
_CoreManager.default.set('JAVASCRIPT_KEY', javaScriptKey);
_CoreManager.default.set('MAINTENANCE_KEY', maintenanceKey);
_CoreManager.default.set('MASTER_KEY', masterKey);
_CoreManager.default.set('USE_MASTER_KEY', false);
_CoreManager.default.setIfNeeded('EventEmitter', _EventEmitter.default);
_CoreManager.default.setIfNeeded('LiveQuery', new _ParseLiveQuery.default());
_CoreManager.default.setIfNeeded('CryptoController', _CryptoController.default);
_CoreManager.default.setIfNeeded('EventuallyQueue', _EventuallyQueue.default);
_CoreManager.default.setIfNeeded('InstallationController', _InstallationController.default);
_CoreManager.default.setIfNeeded('LocalDatastoreController', _LocalDatastoreController.default);
_CoreManager.default.setIfNeeded('StorageController', _StorageController.default);
_CoreManager.default.setIfNeeded('WebSocketController', _WebSocketController.default);
Parse.IndexedDB = _CoreManager.default.setIfNeeded('IndexedDBStorageController', _IndexedDBStorageController.default);
},
/**
* Call this method to set your AsyncStorage engine
* Starting Parse@1.11, the ParseSDK do not provide a React AsyncStorage as the ReactNative module
* is not provided at a stable path and changes over versions.
*
* @param {AsyncStorage} storage a react native async storage.
* @static
*/
setAsyncStorage(storage) {
_CoreManager.default.setAsyncStorage(storage);
},
/**
* Call this method to set your LocalDatastoreStorage engine
* If using React-Native use {@link Parse.setAsyncStorage Parse.setAsyncStorage()}
*
* @param {LocalDatastoreController} controller a data storage.
* @static
*/
setLocalDatastoreController(controller) {
_CoreManager.default.setLocalDatastoreController(controller);
},
/**
* Returns information regarding the current server's health
*
* @returns {Promise}
* @static
*/
getServerHealth() {
return _CoreManager.default.getRESTController().request('GET', 'health');
},
/**
* @property {string} Parse.applicationId
* @static
*/
set applicationId(value) {
_CoreManager.default.set('APPLICATION_ID', value);
},
get applicationId() {
return _CoreManager.default.get('APPLICATION_ID');
},
/**
* @property {string} Parse.javaScriptKey
* @static
*/
set javaScriptKey(value) {
_CoreManager.default.set('JAVASCRIPT_KEY', value);
},
get javaScriptKey() {
return _CoreManager.default.get('JAVASCRIPT_KEY');
},
/**
* @property {string} Parse.masterKey
* @static
*/
set masterKey(value) {
_CoreManager.default.set('MASTER_KEY', value);
},
get masterKey() {
return _CoreManager.default.get('MASTER_KEY');
},
/**
* @property {string} Parse.maintenanceKey
* @static
*/
set maintenanceKey(value) {
_CoreManager.default.set('MAINTENANCE_KEY', value);
},
get maintenanceKey() {
return _CoreManager.default.get('MAINTENANCE_KEY');
},
/**
* @property {string} Parse.serverURL
* @static
*/
set serverURL(value) {
_CoreManager.default.set('SERVER_URL', value);
},
get serverURL() {
return _CoreManager.default.get('SERVER_URL');
},
/**
* @property {ParseLiveQuery} Parse.LiveQuery
* @static
*/
set LiveQuery(liveQuery) {
_CoreManager.default.setLiveQuery(liveQuery);
},
get LiveQuery() {
return _CoreManager.default.getLiveQuery();
},
/**
* @property {string} Parse.liveQueryServerURL
* @static
*/
set liveQueryServerURL(value) {
_CoreManager.default.set('LIVEQUERY_SERVER_URL', value);
},
get liveQueryServerURL() {
return _CoreManager.default.get('LIVEQUERY_SERVER_URL');
},
/**
* @property {boolean} Parse.encryptedUser
* @static
*/
set encryptedUser(value) {
_CoreManager.default.set('ENCRYPTED_USER', value);
},
get encryptedUser() {
return _CoreManager.default.get('ENCRYPTED_USER');
},
/**
* @property {string} Parse.secret
* @static
*/
set secret(value) {
_CoreManager.default.set('ENCRYPTED_KEY', value);
},
get secret() {
return _CoreManager.default.get('ENCRYPTED_KEY');
},
/**
* @property {boolean} Parse.idempotency
* @static
*/
set idempotency(value) {
_CoreManager.default.set('IDEMPOTENCY', value);
},
get idempotency() {
return _CoreManager.default.get('IDEMPOTENCY');
},
/**
* @property {boolean} Parse.allowCustomObjectId
* @static
*/
set allowCustomObjectId(value) {
_CoreManager.default.set('ALLOW_CUSTOM_OBJECT_ID', value);
},
get allowCustomObjectId() {
return _CoreManager.default.get('ALLOW_CUSTOM_OBJECT_ID');
},
/**
* Setting this property to `true` enables enhanced logging for `Parse.Object`
* in Node.js environments. Specifically, it will log:
*
* ```
* ParseObject: className: <CLASS_NAME>, id: <OBJECT_ID>
* Attributes: <OBJECT_ATTRIBUTES>
* ```
*
* @warning This should not be enabled in production environments as this may
* expose sensitive information in server logs.
*
* @property {boolean} Parse.nodeLogging
* @static
*/
set nodeLogging(value) {
_CoreManager.default.set('NODE_LOGGING', value);
},
get nodeLogging() {
return _CoreManager.default.get('NODE_LOGGING');
},
_request() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _CoreManager.default.getRESTController().request.apply(null, args);
},
_ajax() {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return _CoreManager.default.getRESTController().ajax.apply(null, args);
},
// We attempt to match the signatures of the legacy versions of these methods
_decode(_, value) {
return (0, _decode.default)(value);
},
_encode(value, _, disallowObjects) {
return (0, _encode.default)(value, disallowObjects);
},
_getInstallationId() {
return _CoreManager.default.getInstallationController().currentInstallationId();
},
/**
* Enable pinning in your application.
* This must be called after `Parse.initialize` in your application.
*
* @param [polling] Allow pinging the server /health endpoint. Default true
* @param [ms] Milliseconds to ping the server. Default 2000ms
* @static
*/
enableLocalDatastore(polling, ms) {
if (!this.applicationId) {
console.log("'enableLocalDataStore' must be called after 'initialize'");
return;
}
if (!this.LocalDatastore.isEnabled) {
this.LocalDatastore.isEnabled = true;
if (polling || typeof polling === 'undefined') {
_CoreManager.default.getEventuallyQueue().poll(ms || 2000);
}
}
},
/**
* Flag that indicates whether Local Datastore is enabled.
*
* @static
* @returns {boolean}
*/
isLocalDatastoreEnabled() {
return this.LocalDatastore.isEnabled;
},
/**
* Gets all contents from Local Datastore
*
* <pre>
* await Parse.dumpLocalDatastore();
* </pre>
*
* @static
* @returns {object}
*/
dumpLocalDatastore() {
if (!this.LocalDatastore.isEnabled) {
console.log('Parse.enableLocalDatastore() must be called first');
return _promise.default.resolve({});
} else {
return Parse.LocalDatastore._getAllContents();
}
},
/**
* Enable the current user encryption.
* This must be called before login any user.
*
* @static
*/
enableEncryptedUser() {
this.encryptedUser = true;
},
/**
* Flag that indicates whether Encrypted User is enabled.
*
* @static
* @returns {boolean}
*/
isEncryptedUserEnabled() {
return this.encryptedUser;
}
};
_CoreManager.default.setRESTController(_RESTController.default);
globalThis.Parse = Parse;
// For legacy requires, of the form `var Parse = require('parse').Parse`
Parse.Parse = Parse;
var _default = exports.default = Parse;