Parse.js 12 KB

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