Parse.js 11 KB

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