Parse.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. "use strict";
  2. var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
  3. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  4. var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
  5. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  6. _Object$defineProperty(exports, "__esModule", {
  7. value: true
  8. });
  9. exports.default = void 0;
  10. var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
  11. var _decode2 = _interopRequireDefault(require("./decode"));
  12. var _encode2 = _interopRequireDefault(require("./encode"));
  13. var _CryptoController = _interopRequireDefault(require("./CryptoController"));
  14. var _EventuallyQueue = _interopRequireDefault(require("./EventuallyQueue"));
  15. var _IndexedDBStorageController = _interopRequireDefault(require("./IndexedDBStorageController"));
  16. var _InstallationController = _interopRequireDefault(require("./InstallationController"));
  17. var ParseOp = _interopRequireWildcard(require("./ParseOp"));
  18. var _RESTController = _interopRequireDefault(require("./RESTController"));
  19. var _ParseACL = _interopRequireDefault(require("./ParseACL"));
  20. var Analytics = _interopRequireWildcard(require("./Analytics"));
  21. var _AnonymousUtils = _interopRequireDefault(require("./AnonymousUtils"));
  22. var Cloud = _interopRequireWildcard(require("./Cloud"));
  23. var _ParseCLP = _interopRequireDefault(require("./ParseCLP"));
  24. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  25. var _EventEmitter = _interopRequireDefault(require("./EventEmitter"));
  26. var _ParseConfig = _interopRequireDefault(require("./ParseConfig"));
  27. var _ParseError = _interopRequireDefault(require("./ParseError"));
  28. var _FacebookUtils = _interopRequireDefault(require("./FacebookUtils"));
  29. var _ParseFile = _interopRequireDefault(require("./ParseFile"));
  30. var Hooks = _interopRequireWildcard(require("./ParseHooks"));
  31. var _ParseGeoPoint = _interopRequireDefault(require("./ParseGeoPoint"));
  32. var _ParsePolygon = _interopRequireDefault(require("./ParsePolygon"));
  33. var _ParseInstallation = _interopRequireDefault(require("./ParseInstallation"));
  34. var _LocalDatastore = _interopRequireDefault(require("./LocalDatastore"));
  35. var _ParseObject = _interopRequireDefault(require("./ParseObject"));
  36. var Push = _interopRequireWildcard(require("./Push"));
  37. var _ParseQuery = _interopRequireDefault(require("./ParseQuery"));
  38. var _ParseRelation = _interopRequireDefault(require("./ParseRelation"));
  39. var _ParseRole = _interopRequireDefault(require("./ParseRole"));
  40. var _ParseSchema = _interopRequireDefault(require("./ParseSchema"));
  41. var _ParseSession = _interopRequireDefault(require("./ParseSession"));
  42. var _Storage = _interopRequireDefault(require("./Storage"));
  43. var _ParseUser = _interopRequireDefault(require("./ParseUser"));
  44. var _ParseLiveQuery = _interopRequireDefault(require("./ParseLiveQuery"));
  45. var _LiveQueryClient = _interopRequireDefault(require("./LiveQueryClient"));
  46. var _LocalDatastoreController = _interopRequireDefault(require("./LocalDatastoreController"));
  47. var _StorageController = _interopRequireDefault(require("./StorageController"));
  48. var _WebSocketController = _interopRequireDefault(require("./WebSocketController"));
  49. function _getRequireWildcardCache(e) {
  50. if ("function" != typeof _WeakMap) return null;
  51. var r = new _WeakMap(),
  52. t = new _WeakMap();
  53. return (_getRequireWildcardCache = function (e) {
  54. return e ? t : r;
  55. })(e);
  56. }
  57. function _interopRequireWildcard(e, r) {
  58. if (!r && e && e.__esModule) return e;
  59. if (null === e || "object" != typeof e && "function" != typeof e) return {
  60. default: e
  61. };
  62. var t = _getRequireWildcardCache(r);
  63. if (t && t.has(e)) return t.get(e);
  64. var n = {
  65. __proto__: null
  66. };
  67. for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
  68. var i = _Object$defineProperty && _Object$getOwnPropertyDescriptor ? _Object$getOwnPropertyDescriptor(e, u) : null;
  69. i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u];
  70. }
  71. return n.default = e, t && t.set(e, n), n;
  72. }
  73. /**
  74. * Contains all Parse API classes and functions.
  75. *
  76. * @static
  77. * @global
  78. * @class
  79. * @hideconstructor
  80. */
  81. const Parse = {
  82. ACL: _ParseACL.default,
  83. Analytics: Analytics,
  84. AnonymousUtils: _AnonymousUtils.default,
  85. Cloud: Cloud,
  86. CLP: _ParseCLP.default,
  87. CoreManager: _CoreManager.default,
  88. Config: _ParseConfig.default,
  89. Error: _ParseError.default,
  90. FacebookUtils: _FacebookUtils.default,
  91. File: _ParseFile.default,
  92. GeoPoint: _ParseGeoPoint.default,
  93. Polygon: _ParsePolygon.default,
  94. Installation: _ParseInstallation.default,
  95. LocalDatastore: _LocalDatastore.default,
  96. Object: _ParseObject.default,
  97. Op: {
  98. Set: ParseOp.SetOp,
  99. Unset: ParseOp.UnsetOp,
  100. Increment: ParseOp.IncrementOp,
  101. Add: ParseOp.AddOp,
  102. Remove: ParseOp.RemoveOp,
  103. AddUnique: ParseOp.AddUniqueOp,
  104. Relation: ParseOp.RelationOp
  105. },
  106. Push: Push,
  107. Query: _ParseQuery.default,
  108. Relation: _ParseRelation.default,
  109. Role: _ParseRole.default,
  110. Schema: _ParseSchema.default,
  111. Session: _ParseSession.default,
  112. Storage: _Storage.default,
  113. User: _ParseUser.default,
  114. LiveQueryClient: _LiveQueryClient.default,
  115. IndexedDB: undefined,
  116. Hooks: undefined,
  117. Parse: undefined,
  118. /**
  119. * @member {EventuallyQueue} Parse.EventuallyQueue
  120. * @static
  121. */
  122. set EventuallyQueue(queue) {
  123. _CoreManager.default.setEventuallyQueue(queue);
  124. },
  125. get EventuallyQueue() {
  126. return _CoreManager.default.getEventuallyQueue();
  127. },
  128. /**
  129. * Call this method first to set up your authentication tokens for Parse.
  130. *
  131. * @param {string} applicationId Your Parse Application ID.
  132. * @param {string} [javaScriptKey] Your Parse JavaScript Key (Not needed for parse-server)
  133. * @param {string} [masterKey] Your Parse Master Key. (Node.js only!)
  134. * @static
  135. */
  136. initialize(applicationId, javaScriptKey) {
  137. if ("browser" === 'browser' && _CoreManager.default.get('IS_NODE') && !process.env.SERVER_RENDERING) {
  138. /* eslint-disable no-console */
  139. 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.");
  140. /* eslint-enable no-console */
  141. }
  142. Parse._initialize(applicationId, javaScriptKey);
  143. },
  144. _initialize(applicationId, javaScriptKey, masterKey) {
  145. _CoreManager.default.set('APPLICATION_ID', applicationId);
  146. _CoreManager.default.set('JAVASCRIPT_KEY', javaScriptKey);
  147. _CoreManager.default.set('MASTER_KEY', masterKey);
  148. _CoreManager.default.set('USE_MASTER_KEY', false);
  149. _CoreManager.default.setIfNeeded('EventEmitter', _EventEmitter.default);
  150. _CoreManager.default.setIfNeeded('LiveQuery', new _ParseLiveQuery.default());
  151. _CoreManager.default.setIfNeeded('CryptoController', _CryptoController.default);
  152. _CoreManager.default.setIfNeeded('EventuallyQueue', _EventuallyQueue.default);
  153. _CoreManager.default.setIfNeeded('InstallationController', _InstallationController.default);
  154. _CoreManager.default.setIfNeeded('LocalDatastoreController', _LocalDatastoreController.default);
  155. _CoreManager.default.setIfNeeded('StorageController', _StorageController.default);
  156. _CoreManager.default.setIfNeeded('WebSocketController', _WebSocketController.default);
  157. Parse.IndexedDB = _CoreManager.default.setIfNeeded('IndexedDBStorageController', _IndexedDBStorageController.default);
  158. },
  159. /**
  160. * Call this method to set your AsyncStorage engine
  161. * Starting Parse@1.11, the ParseSDK do not provide a React AsyncStorage as the ReactNative module
  162. * is not provided at a stable path and changes over versions.
  163. *
  164. * @param {AsyncStorage} storage a react native async storage.
  165. * @static
  166. */
  167. setAsyncStorage(storage) {
  168. _CoreManager.default.setAsyncStorage(storage);
  169. },
  170. /**
  171. * Call this method to set your LocalDatastoreStorage engine
  172. * If using React-Native use {@link Parse.setAsyncStorage Parse.setAsyncStorage()}
  173. *
  174. * @param {LocalDatastoreController} controller a data storage.
  175. * @static
  176. */
  177. setLocalDatastoreController(controller) {
  178. _CoreManager.default.setLocalDatastoreController(controller);
  179. },
  180. /**
  181. * Returns information regarding the current server's health
  182. *
  183. * @returns {Promise}
  184. * @static
  185. */
  186. getServerHealth() {
  187. return _CoreManager.default.getRESTController().request('GET', 'health');
  188. },
  189. /**
  190. * @member {string} Parse.applicationId
  191. * @static
  192. */
  193. set applicationId(value) {
  194. _CoreManager.default.set('APPLICATION_ID', value);
  195. },
  196. get applicationId() {
  197. return _CoreManager.default.get('APPLICATION_ID');
  198. },
  199. /**
  200. * @member {string} Parse.javaScriptKey
  201. * @static
  202. */
  203. set javaScriptKey(value) {
  204. _CoreManager.default.set('JAVASCRIPT_KEY', value);
  205. },
  206. get javaScriptKey() {
  207. return _CoreManager.default.get('JAVASCRIPT_KEY');
  208. },
  209. /**
  210. * @member {string} Parse.masterKey
  211. * @static
  212. */
  213. set masterKey(value) {
  214. _CoreManager.default.set('MASTER_KEY', value);
  215. },
  216. get masterKey() {
  217. return _CoreManager.default.get('MASTER_KEY');
  218. },
  219. /**
  220. * @member {string} Parse.serverURL
  221. * @static
  222. */
  223. set serverURL(value) {
  224. _CoreManager.default.set('SERVER_URL', value);
  225. },
  226. get serverURL() {
  227. return _CoreManager.default.get('SERVER_URL');
  228. },
  229. /**
  230. * @member {string} Parse.serverAuthToken
  231. * @static
  232. */
  233. set serverAuthToken(value) {
  234. _CoreManager.default.set('SERVER_AUTH_TOKEN', value);
  235. },
  236. get serverAuthToken() {
  237. return _CoreManager.default.get('SERVER_AUTH_TOKEN');
  238. },
  239. /**
  240. * @member {string} Parse.serverAuthType
  241. * @static
  242. */
  243. set serverAuthType(value) {
  244. _CoreManager.default.set('SERVER_AUTH_TYPE', value);
  245. },
  246. get serverAuthType() {
  247. return _CoreManager.default.get('SERVER_AUTH_TYPE');
  248. },
  249. /**
  250. * @member {ParseLiveQuery} Parse.LiveQuery
  251. * @static
  252. */
  253. set LiveQuery(liveQuery) {
  254. _CoreManager.default.setLiveQuery(liveQuery);
  255. },
  256. get LiveQuery() {
  257. return _CoreManager.default.getLiveQuery();
  258. },
  259. /**
  260. * @member {string} Parse.liveQueryServerURL
  261. * @static
  262. */
  263. set liveQueryServerURL(value) {
  264. _CoreManager.default.set('LIVEQUERY_SERVER_URL', value);
  265. },
  266. get liveQueryServerURL() {
  267. return _CoreManager.default.get('LIVEQUERY_SERVER_URL');
  268. },
  269. /**
  270. * @member {boolean} Parse.encryptedUser
  271. * @static
  272. */
  273. set encryptedUser(value) {
  274. _CoreManager.default.set('ENCRYPTED_USER', value);
  275. },
  276. get encryptedUser() {
  277. return _CoreManager.default.get('ENCRYPTED_USER');
  278. },
  279. /**
  280. * @member {string} Parse.secret
  281. * @static
  282. */
  283. set secret(value) {
  284. _CoreManager.default.set('ENCRYPTED_KEY', value);
  285. },
  286. get secret() {
  287. return _CoreManager.default.get('ENCRYPTED_KEY');
  288. },
  289. /**
  290. * @member {boolean} Parse.idempotency
  291. * @static
  292. */
  293. set idempotency(value) {
  294. _CoreManager.default.set('IDEMPOTENCY', value);
  295. },
  296. get idempotency() {
  297. return _CoreManager.default.get('IDEMPOTENCY');
  298. },
  299. /**
  300. * @member {boolean} Parse.allowCustomObjectId
  301. * @static
  302. */
  303. set allowCustomObjectId(value) {
  304. _CoreManager.default.set('ALLOW_CUSTOM_OBJECT_ID', value);
  305. },
  306. get allowCustomObjectId() {
  307. return _CoreManager.default.get('ALLOW_CUSTOM_OBJECT_ID');
  308. },
  309. _request() {
  310. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  311. args[_key] = arguments[_key];
  312. }
  313. return _CoreManager.default.getRESTController().request.apply(null, args);
  314. },
  315. _ajax() {
  316. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  317. args[_key2] = arguments[_key2];
  318. }
  319. return _CoreManager.default.getRESTController().ajax.apply(null, args);
  320. },
  321. // We attempt to match the signatures of the legacy versions of these methods
  322. _decode(_, value) {
  323. return (0, _decode2.default)(value);
  324. },
  325. _encode(value, _, disallowObjects) {
  326. return (0, _encode2.default)(value, disallowObjects);
  327. },
  328. _getInstallationId() {
  329. return _CoreManager.default.getInstallationController().currentInstallationId();
  330. },
  331. /**
  332. * Enable pinning in your application.
  333. * This must be called after `Parse.initialize` in your application.
  334. *
  335. * @param [polling] Allow pinging the server /health endpoint. Default true
  336. * @param [ms] Milliseconds to ping the server. Default 2000ms
  337. * @static
  338. */
  339. enableLocalDatastore() {
  340. let polling = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  341. let ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
  342. if (!this.applicationId) {
  343. console.log("'enableLocalDataStore' must be called after 'initialize'");
  344. return;
  345. }
  346. if (!this.LocalDatastore.isEnabled) {
  347. this.LocalDatastore.isEnabled = true;
  348. if (polling) {
  349. _CoreManager.default.getEventuallyQueue().poll(ms);
  350. }
  351. }
  352. },
  353. /**
  354. * Flag that indicates whether Local Datastore is enabled.
  355. *
  356. * @static
  357. * @returns {boolean}
  358. */
  359. isLocalDatastoreEnabled() {
  360. return this.LocalDatastore.isEnabled;
  361. },
  362. /**
  363. * Gets all contents from Local Datastore
  364. *
  365. * <pre>
  366. * await Parse.dumpLocalDatastore();
  367. * </pre>
  368. *
  369. * @static
  370. * @returns {object}
  371. */
  372. dumpLocalDatastore() {
  373. if (!this.LocalDatastore.isEnabled) {
  374. console.log('Parse.enableLocalDatastore() must be called first'); // eslint-disable-line no-console
  375. return _promise.default.resolve({});
  376. } else {
  377. return Parse.LocalDatastore._getAllContents();
  378. }
  379. },
  380. /**
  381. * Enable the current user encryption.
  382. * This must be called before login any user.
  383. *
  384. * @static
  385. */
  386. enableEncryptedUser() {
  387. this.encryptedUser = true;
  388. },
  389. /**
  390. * Flag that indicates whether Encrypted User is enabled.
  391. *
  392. * @static
  393. * @returns {boolean}
  394. */
  395. isEncryptedUserEnabled() {
  396. return this.encryptedUser;
  397. }
  398. };
  399. _CoreManager.default.setRESTController(_RESTController.default);
  400. // For legacy requires, of the form `var Parse = require('parse').Parse`
  401. Parse.Parse = Parse;
  402. module.exports = Parse;
  403. var _default = exports.default = Parse;