Parse.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  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. * Contains all Parse API classes and functions.
  56. *
  57. * @static
  58. * @global
  59. * @class
  60. * @hideconstructor
  61. */
  62. const 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(applicationId /*: string*/, javaScriptKey /*: string*/) {
  72. Parse._initialize(applicationId, javaScriptKey);
  73. },
  74. _initialize(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(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(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() {
  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 (...args) {
  257. return _CoreManager.default.getRESTController().request.apply(null, args);
  258. };
  259. Parse._ajax = function (...args) {
  260. return _CoreManager.default.getRESTController().ajax.apply(null, args);
  261. };
  262. // We attempt to match the signatures of the legacy versions of these methods
  263. Parse._decode = function (_, value) {
  264. return (0, _decode.default)(value);
  265. };
  266. Parse._encode = function (value, _, disallowObjects) {
  267. return (0, _encode.default)(value, disallowObjects);
  268. };
  269. Parse._getInstallationId = function () {
  270. return _CoreManager.default.getInstallationController().currentInstallationId();
  271. };
  272. /**
  273. * Enable pinning in your application.
  274. * This must be called after `Parse.initialize` in your application.
  275. *
  276. * @param [polling] Allow pinging the server /health endpoint. Default true
  277. * @param [ms] Milliseconds to ping the server. Default 2000ms
  278. * @static
  279. */
  280. Parse.enableLocalDatastore = function (polling = true, ms /*: number*/ = 2000) {
  281. if (!Parse.applicationId) {
  282. console.log("'enableLocalDataStore' must be called after 'initialize'");
  283. return;
  284. }
  285. if (!Parse.LocalDatastore.isEnabled) {
  286. Parse.LocalDatastore.isEnabled = true;
  287. if (polling) {
  288. _EventuallyQueue.default.poll(ms);
  289. }
  290. }
  291. };
  292. /**
  293. * Flag that indicates whether Local Datastore is enabled.
  294. *
  295. * @static
  296. * @returns {boolean}
  297. */
  298. Parse.isLocalDatastoreEnabled = function () {
  299. return Parse.LocalDatastore.isEnabled;
  300. };
  301. /**
  302. * Gets all contents from Local Datastore
  303. *
  304. * <pre>
  305. * await Parse.dumpLocalDatastore();
  306. * </pre>
  307. *
  308. * @static
  309. * @returns {object}
  310. */
  311. Parse.dumpLocalDatastore = function () {
  312. if (!Parse.LocalDatastore.isEnabled) {
  313. console.log('Parse.enableLocalDatastore() must be called first'); // eslint-disable-line no-console
  314. return Promise.resolve({});
  315. } else {
  316. return Parse.LocalDatastore._getAllContents();
  317. }
  318. };
  319. /**
  320. * Enable the current user encryption.
  321. * This must be called before login any user.
  322. *
  323. * @static
  324. */
  325. Parse.enableEncryptedUser = function () {
  326. Parse.encryptedUser = true;
  327. };
  328. /**
  329. * Flag that indicates whether Encrypted User is enabled.
  330. *
  331. * @static
  332. * @returns {boolean}
  333. */
  334. Parse.isEncryptedUserEnabled = function () {
  335. return Parse.encryptedUser;
  336. };
  337. _CoreManager.default.setCryptoController(_CryptoController.default);
  338. _CoreManager.default.setInstallationController(_InstallationController.default);
  339. _CoreManager.default.setRESTController(_RESTController.default);
  340. Parse.initialize = Parse._initialize;
  341. Parse.Cloud = Parse.Cloud || {};
  342. Parse.Cloud.useMasterKey = function () {
  343. _CoreManager.default.set('USE_MASTER_KEY', true);
  344. };
  345. Parse.Hooks = require('./ParseHooks');
  346. // For legacy requires, of the form `var Parse = require('parse').Parse`
  347. Parse.Parse = Parse;
  348. module.exports = Parse;