Parse.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. "use strict";
  2. var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
  3. var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
  4. var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
  5. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  6. var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
  7. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  8. var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
  9. var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
  10. var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
  11. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
  12. var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
  13. var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
  14. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
  15. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
  16. var _decode = _interopRequireDefault(require("./decode"));
  17. var _encode = _interopRequireDefault(require("./encode"));
  18. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  19. var _CryptoController = _interopRequireDefault(require("./CryptoController"));
  20. var _InstallationController = _interopRequireDefault(require("./InstallationController"));
  21. var ParseOp = _interopRequireWildcard(require("./ParseOp"));
  22. var _RESTController2 = _interopRequireDefault(require("./RESTController"));
  23. var _MoralisWeb2 = _interopRequireDefault(require("./MoralisWeb3"));
  24. var _ethers = require("ethers");
  25. var _filterConsole = require("./filterConsole");
  26. function _getRequireWildcardCache(nodeInterop) {
  27. if (typeof _WeakMap !== "function") return null;
  28. var cacheBabelInterop = new _WeakMap();
  29. var cacheNodeInterop = new _WeakMap();
  30. return (_getRequireWildcardCache = function (nodeInterop) {
  31. return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  32. })(nodeInterop);
  33. }
  34. function _interopRequireWildcard(obj, nodeInterop) {
  35. if (!nodeInterop && obj && obj.__esModule) {
  36. return obj;
  37. }
  38. if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
  39. return {
  40. default: obj
  41. };
  42. }
  43. var cache = _getRequireWildcardCache(nodeInterop);
  44. if (cache && cache.has(obj)) {
  45. return cache.get(obj);
  46. }
  47. var newObj = {};
  48. for (var key in obj) {
  49. if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
  50. var desc = _Object$defineProperty && _Object$getOwnPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;
  51. if (desc && (desc.get || desc.set)) {
  52. _Object$defineProperty(newObj, key, desc);
  53. } else {
  54. newObj[key] = obj[key];
  55. }
  56. }
  57. }
  58. newObj.default = obj;
  59. if (cache) {
  60. cache.set(obj, newObj);
  61. }
  62. return newObj;
  63. }
  64. function _createSuper(Derived) {
  65. var hasNativeReflectConstruct = _isNativeReflectConstruct();
  66. return function () {
  67. var Super = (0, _getPrototypeOf2.default)(Derived),
  68. result;
  69. if (hasNativeReflectConstruct) {
  70. var NewTarget = (0, _getPrototypeOf2.default)(this).constructor;
  71. result = _Reflect$construct(Super, arguments, NewTarget);
  72. } else {
  73. result = Super.apply(this, arguments);
  74. }
  75. return (0, _possibleConstructorReturn2.default)(this, result);
  76. };
  77. }
  78. function _isNativeReflectConstruct() {
  79. if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  80. if (_Reflect$construct.sham) return false;
  81. if (typeof Proxy === "function") return true;
  82. try {
  83. Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
  84. return true;
  85. } catch (e) {
  86. return false;
  87. }
  88. }
  89. var _require = require('./utils'),
  90. checkForSdkUpdates = _require.checkForSdkUpdates,
  91. trackEvent = _require.trackEvent,
  92. TrackingEventName = _require.TrackingEventName,
  93. getSubdomain = _require.getSubdomain;
  94. /**
  95. * Contains all Moralis API classes and functions.
  96. *
  97. * @static
  98. * @global
  99. * @class
  100. * @hideconstructor
  101. */
  102. var Moralis = /*#__PURE__*/function (_MoralisWeb) {
  103. (0, _inherits2.default)(Moralis, _MoralisWeb);
  104. var _super = _createSuper(Moralis);
  105. function Moralis() {
  106. (0, _classCallCheck2.default)(this, Moralis);
  107. return _super.apply(this, arguments);
  108. }
  109. (0, _createClass2.default)(Moralis, null, [{
  110. key: "start",
  111. value:
  112. /**
  113. * Call this method to initialize all moralis instances (Moralis, Web3Api, plugins).
  114. *
  115. * @param {object} options Your Moralis Application ID and Server URL. Moralis.start({serverUrl,appId})
  116. * @static
  117. */
  118. function () {
  119. var _start = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(options) {
  120. var appId, serverUrl, plugins, javascriptKey, masterKey, moralisSecret, apiKey, trackOptions, _yield$this$getApiKey, web3ApiKey, speedyNodeApiKey;
  121. return _regenerator.default.wrap(function (_context) {
  122. while (1) {
  123. switch (_context.prev = _context.next) {
  124. case 0:
  125. appId = options.appId, serverUrl = options.serverUrl, plugins = options.plugins, javascriptKey = options.javascriptKey, masterKey = options.masterKey, moralisSecret = options.moralisSecret;
  126. if (serverUrl) {
  127. _context.next = 4;
  128. break;
  129. }
  130. throw new Error("Moralis.start failed: serverUrl is required");
  131. case 4:
  132. if (appId) {
  133. _context.next = 6;
  134. break;
  135. }
  136. throw new Error("Moralis.start failed: appId is required");
  137. case 6:
  138. if (moralisSecret) {
  139. console.warn('Moralis.start warning: Using moralisSecret on the browser enviroment reveals critical information.');
  140. }
  141. _context.next = 18;
  142. break;
  143. case 9:
  144. if (!moralisSecret) {
  145. _context.next = 18;
  146. break;
  147. }
  148. this.moralisSecret = moralisSecret;
  149. _context.next = 13;
  150. return this.getApiKeys(moralisSecret);
  151. case 13:
  152. _yield$this$getApiKey = _context.sent;
  153. web3ApiKey = _yield$this$getApiKey.web3ApiKey;
  154. speedyNodeApiKey = _yield$this$getApiKey.speedyNodeApiKey;
  155. apiKey = web3ApiKey;
  156. this.speedyNodeApiKey = speedyNodeApiKey;
  157. case 18:
  158. this.initialize(appId, javascriptKey, masterKey);
  159. this.serverURL = serverUrl;
  160. this.Web3API.initialize({
  161. serverUrl: serverUrl,
  162. apiKey: apiKey,
  163. Moralis: Moralis
  164. });
  165. this.SolanaAPI.initialize({
  166. serverUrl: serverUrl,
  167. apiKey: apiKey,
  168. Moralis: Moralis
  169. });
  170. if (!(appId && serverUrl)) {
  171. _context.next = 28;
  172. break;
  173. }
  174. trackOptions = {
  175. subdomain: getSubdomain(serverUrl),
  176. sdk_type: 'javascript',
  177. sdk_version: "1.5.9",
  178. sdk_enviroment: "browser",
  179. appId: appId
  180. };
  181. _context.next = 26;
  182. return this.initPlugins(plugins);
  183. case 26:
  184. _context.next = 29;
  185. break;
  186. case 28:
  187. trackOptions = {
  188. sdk_type: 'javascript',
  189. sdk_version: "1.5.9",
  190. sdk_enviroment: "browser"
  191. };
  192. case 29:
  193. // Check if SDK is updated
  194. checkForSdkUpdates(); // Track start function call
  195. trackEvent(TrackingEventName.START_FUNCTION, serverUrl ? getSubdomain(serverUrl) : null, trackOptions);
  196. case 31:
  197. case "end":
  198. return _context.stop();
  199. }
  200. }
  201. }, _callee, this);
  202. }));
  203. return function () {
  204. return _start.apply(this, arguments);
  205. };
  206. }()
  207. /**
  208. * Call this method to get apiKeys using moralis secret.
  209. *
  210. * @param {string} moralisSecret Your MoralisSecret
  211. * @static
  212. */
  213. }, {
  214. key: "getApiKeys",
  215. value: function () {
  216. var _getApiKeys = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(moralisSecret) {
  217. var _RESTController, response;
  218. return _regenerator.default.wrap(function (_context2) {
  219. while (1) {
  220. switch (_context2.prev = _context2.next) {
  221. case 0:
  222. _context2.prev = 0;
  223. _RESTController = _CoreManager.default.getRESTController();
  224. _context2.next = 4;
  225. return _RESTController.ajax('GET', 'https://admin.moralis.io/api/publics/apiKeys', null, {
  226. 'moralis-secret': moralisSecret,
  227. Accept: 'application/json',
  228. 'Content-Type': 'application/json'
  229. });
  230. case 4:
  231. response = _context2.sent;
  232. return _context2.abrupt("return", response.response.result);
  233. case 8:
  234. _context2.prev = 8;
  235. _context2.t0 = _context2["catch"](0);
  236. throw new Error("Could not fetch keys with moralisSecret");
  237. case 11:
  238. case "end":
  239. return _context2.stop();
  240. }
  241. }
  242. }, _callee2, null, [[0, 8]]);
  243. }));
  244. return function () {
  245. return _getApiKeys.apply(this, arguments);
  246. };
  247. }()
  248. /**
  249. * Call this method first to set up your authentication tokens for Moralis.
  250. *
  251. * @param {string} applicationId Your Moralis Application ID.
  252. * @param {string} [javaScriptKey] Your Moralis JavaScript Key (Not needed for moralis-server)
  253. * @param {string} [masterKey] Your Moralis Master Key. (Node.js only!)
  254. * @static
  255. */
  256. }, {
  257. key: "initialize",
  258. value: function (applicationId
  259. /*: string*/
  260. , javaScriptKey
  261. /*: string*/
  262. ) {
  263. if ("browser" === 'browser' && _CoreManager.default.get('IS_NODE') && !process.env.SERVER_RENDERING) {
  264. /* eslint-disable no-console */
  265. 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.");
  266. /* eslint-enable no-console */
  267. }
  268. Moralis._initialize(applicationId, javaScriptKey);
  269. }
  270. }, {
  271. key: "_initialize",
  272. value: function (applicationId
  273. /*: string*/
  274. , javaScriptKey
  275. /*: string*/
  276. , masterKey
  277. /*: string*/
  278. ) {
  279. _CoreManager.default.set('APPLICATION_ID', applicationId);
  280. _CoreManager.default.set('JAVASCRIPT_KEY', javaScriptKey);
  281. _CoreManager.default.set('MASTER_KEY', masterKey);
  282. _CoreManager.default.set('USE_MASTER_KEY', false);
  283. }
  284. /**
  285. * Call this method to set your AsyncStorage engine
  286. * Starting Parse@1.11, the ParseSDK do not provide a React AsyncStorage as the ReactNative module
  287. * is not provided at a stable path and changes over versions.
  288. *
  289. * @param {AsyncStorage} storage a react native async storage.
  290. * @static
  291. */
  292. }, {
  293. key: "setAsyncStorage",
  294. value: function (storage
  295. /*: any*/
  296. ) {
  297. _CoreManager.default.setAsyncStorage(storage);
  298. }
  299. /**
  300. * Call this method to set your LocalDatastoreStorage engine
  301. * If using React-Native use {@link Moralis.setAsyncStorage Moralis.setAsyncStorage()}
  302. *
  303. * @param {LocalDatastoreController} controller a data storage.
  304. * @static
  305. */
  306. }, {
  307. key: "setLocalDatastoreController",
  308. value: function (controller
  309. /*: any*/
  310. ) {
  311. _CoreManager.default.setLocalDatastoreController(controller);
  312. }
  313. /**
  314. * @member {string} Moralis.applicationId
  315. * @static
  316. */
  317. }, {
  318. key: "applicationId",
  319. get: function () {
  320. return _CoreManager.default.get('APPLICATION_ID');
  321. }
  322. /**
  323. * @member {string} Moralis.javaScriptKey
  324. * @static
  325. */
  326. ,
  327. set: function (value) {
  328. _CoreManager.default.set('APPLICATION_ID', value);
  329. }
  330. }, {
  331. key: "javaScriptKey",
  332. get: function () {
  333. return _CoreManager.default.get('JAVASCRIPT_KEY');
  334. }
  335. /**
  336. * @member {string} Moralis.masterKey
  337. * @static
  338. */
  339. ,
  340. set: function (value) {
  341. _CoreManager.default.set('JAVASCRIPT_KEY', value);
  342. }
  343. }, {
  344. key: "masterKey",
  345. get: function () {
  346. return _CoreManager.default.get('MASTER_KEY');
  347. }
  348. /**
  349. * @member {string} Moralis.serverURL
  350. * @static
  351. */
  352. ,
  353. set: function (value) {
  354. _CoreManager.default.set('MASTER_KEY', value);
  355. }
  356. }, {
  357. key: "serverURL",
  358. get: function () {
  359. return _CoreManager.default.get('SERVER_URL');
  360. }
  361. /**
  362. * @member {string} Moralis.serverAuthToken
  363. * @static
  364. */
  365. ,
  366. set: function (value) {
  367. _CoreManager.default.set('SERVER_URL', value);
  368. }
  369. }, {
  370. key: "serverAuthToken",
  371. get: function () {
  372. return _CoreManager.default.get('SERVER_AUTH_TOKEN');
  373. }
  374. /**
  375. * @member {string} Moralis.serverAuthType
  376. * @static
  377. */
  378. ,
  379. set: function (value) {
  380. _CoreManager.default.set('SERVER_AUTH_TOKEN', value);
  381. }
  382. }, {
  383. key: "serverAuthType",
  384. get: function () {
  385. return _CoreManager.default.get('SERVER_AUTH_TYPE');
  386. }
  387. /**
  388. * @member {string} Moralis.liveQueryServerURL
  389. * @static
  390. */
  391. ,
  392. set: function (value) {
  393. _CoreManager.default.set('SERVER_AUTH_TYPE', value);
  394. }
  395. }, {
  396. key: "liveQueryServerURL",
  397. get: function () {
  398. return _CoreManager.default.get('LIVEQUERY_SERVER_URL');
  399. }
  400. /**
  401. * @member {string} Moralis.encryptedUser
  402. * @static
  403. */
  404. ,
  405. set: function (value) {
  406. _CoreManager.default.set('LIVEQUERY_SERVER_URL', value);
  407. }
  408. }, {
  409. key: "encryptedUser",
  410. get: function () {
  411. return _CoreManager.default.get('ENCRYPTED_USER');
  412. }
  413. /**
  414. * @member {string} Moralis.secret
  415. * @static
  416. */
  417. ,
  418. set: function (value) {
  419. _CoreManager.default.set('ENCRYPTED_USER', value);
  420. }
  421. }, {
  422. key: "secret",
  423. get: function () {
  424. return _CoreManager.default.get('ENCRYPTED_KEY');
  425. }
  426. /**
  427. * @member {boolean} Moralis.idempotency
  428. * @static
  429. */
  430. ,
  431. set: function (value) {
  432. _CoreManager.default.set('ENCRYPTED_KEY', value);
  433. }
  434. }, {
  435. key: "idempotency",
  436. get: function () {
  437. return _CoreManager.default.get('IDEMPOTENCY');
  438. },
  439. set: function (value) {
  440. _CoreManager.default.set('IDEMPOTENCY', value);
  441. }
  442. }]);
  443. return Moralis;
  444. }(_MoralisWeb2.default);
  445. Moralis.ACL = require('./ParseACL').default;
  446. Moralis.Analytics = require('./Analytics');
  447. Moralis.AnonymousUtils = require('./AnonymousUtils').default;
  448. Moralis.Cloud = require('./Cloud');
  449. Moralis.CLP = require('./ParseCLP').default;
  450. Moralis.CoreManager = require('./CoreManager');
  451. Moralis.Config = require('./ParseConfig').default;
  452. Moralis.Error = require('./ParseError').default;
  453. Moralis.FacebookUtils = require('./FacebookUtils').default;
  454. Moralis.File = require('./ParseFile').default;
  455. Moralis.GeoPoint = require('./ParseGeoPoint').default;
  456. Moralis.Polygon = require('./ParsePolygon').default;
  457. Moralis.Installation = require('./ParseInstallation').default;
  458. Moralis.LocalDatastore = require('./LocalDatastore');
  459. Moralis.Object = require('./ParseObject').default;
  460. Moralis.Op = {
  461. Set: ParseOp.SetOp,
  462. Unset: ParseOp.UnsetOp,
  463. Increment: ParseOp.IncrementOp,
  464. Add: ParseOp.AddOp,
  465. Remove: ParseOp.RemoveOp,
  466. AddUnique: ParseOp.AddUniqueOp,
  467. Relation: ParseOp.RelationOp
  468. };
  469. Moralis.Web3API = require('./MoralisWeb3Api').default;
  470. Moralis.SolanaAPI = require('./MoralisSolanaApi').default;
  471. Moralis.Push = require('./Push');
  472. Moralis.Query = require('./ParseQuery').default;
  473. Moralis.Relation = require('./ParseRelation').default;
  474. Moralis.Role = require('./ParseRole').default;
  475. Moralis.Schema = require('./ParseSchema').default;
  476. Moralis.Session = require('./ParseSession').default;
  477. Moralis.Storage = require('./Storage');
  478. Moralis.User = require('./ParseUser').default;
  479. Moralis.LiveQuery = require('./ParseLiveQuery').default;
  480. Moralis.LiveQueryClient = require('./LiveQueryClient').default;
  481. Moralis.Web3 = Moralis;
  482. Moralis.Units = require('./UnitConvert'); // Moralis.Web3 = require('./MoralisWeb3').default;
  483. Moralis.Elrond = require('./MoralisErd').default;
  484. Moralis.Erd = Moralis.Elrond;
  485. Moralis.Dot = require('./MoralisDot').default;
  486. Moralis.UI = require('./MoralisUI').default;
  487. Moralis.Chains = require('./Chains').default;
  488. Moralis.AbstractWeb3Connector = require('./Web3Connector/AbstractWeb3Connector').default;
  489. (0, _filterConsole.filterConsole)();
  490. Moralis._request = function () {
  491. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  492. args[_key] = arguments[_key];
  493. }
  494. return _CoreManager.default.getRESTController().request.apply(null, args);
  495. };
  496. Moralis._ajax = function () {
  497. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  498. args[_key2] = arguments[_key2];
  499. }
  500. return _CoreManager.default.getRESTController().ajax.apply(null, args);
  501. }; // We attempt to match the signatures of the legacy versions of these methods
  502. Moralis._decode = function (_, value) {
  503. return (0, _decode.default)(value);
  504. };
  505. Moralis._encode = function (value, _, disallowObjects) {
  506. return (0, _encode.default)(value, disallowObjects);
  507. };
  508. Moralis._getInstallationId = function () {
  509. return _CoreManager.default.getInstallationController().currentInstallationId();
  510. };
  511. /**
  512. * Enable pinning in your application.
  513. * This must be called before your application can use pinning.
  514. *
  515. * @static
  516. */
  517. Moralis.enableLocalDatastore = function () {
  518. Moralis.LocalDatastore.isEnabled = true;
  519. };
  520. /**
  521. * Flag that indicates whether Local Datastore is enabled.
  522. *
  523. * @static
  524. * @returns {boolean}
  525. */
  526. Moralis.isLocalDatastoreEnabled = function () {
  527. return Moralis.LocalDatastore.isEnabled;
  528. };
  529. /**
  530. * Gets all contents from Local Datastore
  531. *
  532. * <pre>
  533. * await Moralis.dumpLocalDatastore();
  534. * </pre>
  535. *
  536. * @static
  537. * @returns {object}
  538. */
  539. Moralis.dumpLocalDatastore = function () {
  540. if (!Moralis.LocalDatastore.isEnabled) {
  541. console.log('Moralis.enableLocalDatastore() must be called first'); // eslint-disable-line no-console
  542. return _promise.default.resolve({});
  543. }
  544. return Moralis.LocalDatastore._getAllContents();
  545. };
  546. /**
  547. * Enable the current user encryption.
  548. * This must be called before login any user.
  549. *
  550. * @static
  551. */
  552. Moralis.enableEncryptedUser = function () {
  553. Moralis.encryptedUser = true;
  554. };
  555. /**
  556. * Flag that indicates whether Encrypted User is enabled.
  557. *
  558. * @static
  559. * @returns {boolean}
  560. */
  561. Moralis.isEncryptedUserEnabled = function () {
  562. return Moralis.encryptedUser;
  563. };
  564. _CoreManager.default.setCryptoController(_CryptoController.default);
  565. _CoreManager.default.setInstallationController(_InstallationController.default);
  566. _CoreManager.default.setRESTController(_RESTController2.default);
  567. // For legacy requires, of the form `var Moralis = require('moralis').Moralis`
  568. Moralis.Moralis = Moralis;
  569. module.exports = Moralis;