Parse.js 11 KB

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