Parse.js 13 KB

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