Parse.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  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 _InstallationController = _interopRequireDefault(require("./InstallationController"));
  7. var ParseOp = _interopRequireWildcard(require("./ParseOp"));
  8. var _RESTController = _interopRequireDefault(require("./RESTController"));
  9. var _MoralisWeb = _interopRequireDefault(require("./MoralisWeb3"));
  10. var _ethers = require("ethers");
  11. var _filterConsole = require("./filterConsole");
  12. function _getRequireWildcardCache(nodeInterop) {
  13. if (typeof WeakMap !== "function") return null;
  14. var cacheBabelInterop = new WeakMap();
  15. var cacheNodeInterop = new WeakMap();
  16. return (_getRequireWildcardCache = function (nodeInterop) {
  17. return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  18. })(nodeInterop);
  19. }
  20. function _interopRequireWildcard(obj, nodeInterop) {
  21. if (!nodeInterop && obj && obj.__esModule) {
  22. return obj;
  23. }
  24. if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
  25. return {
  26. default: obj
  27. };
  28. }
  29. var cache = _getRequireWildcardCache(nodeInterop);
  30. if (cache && cache.has(obj)) {
  31. return cache.get(obj);
  32. }
  33. var newObj = {};
  34. var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
  35. for (var key in obj) {
  36. if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
  37. var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
  38. if (desc && (desc.get || desc.set)) {
  39. Object.defineProperty(newObj, key, desc);
  40. } else {
  41. newObj[key] = obj[key];
  42. }
  43. }
  44. }
  45. newObj.default = obj;
  46. if (cache) {
  47. cache.set(obj, newObj);
  48. }
  49. return newObj;
  50. }
  51. function _interopRequireDefault(obj) {
  52. return obj && obj.__esModule ? obj : {
  53. default: obj
  54. };
  55. }
  56. /* eslint-disable no-console */
  57. /**
  58. * Copyright (c) 2015-present, Parse, LLC.
  59. * All rights reserved.
  60. *
  61. * This source code is licensed under the BSD-style license found in the
  62. * LICENSE file in the root directory of this source tree. An additional grant
  63. * of patent rights can be found in the PATENTS file in the same directory.
  64. */
  65. const {
  66. checkForSdkUpdates,
  67. trackEvent,
  68. TrackingEventName,
  69. getSubdomain
  70. } = require('./utils');
  71. /**
  72. * Contains all Moralis API classes and functions.
  73. *
  74. * @static
  75. * @global
  76. * @class
  77. * @hideconstructor
  78. */
  79. class Moralis extends _MoralisWeb.default {
  80. /**
  81. * Call this method to initialize all moralis instances (Moralis, Web3Api, plugins).
  82. *
  83. * @param {object} options Your Moralis Application ID and Server URL. Moralis.start({serverUrl,appId})
  84. * @static
  85. */
  86. static async start(options) {
  87. const {
  88. appId,
  89. serverUrl,
  90. plugins,
  91. javascriptKey,
  92. masterKey,
  93. moralisSecret
  94. } = options;
  95. let apiKey;
  96. let trackOptions;
  97. // Node environment
  98. if (moralisSecret) {
  99. this.moralisSecret = moralisSecret;
  100. const {
  101. web3ApiKey,
  102. speedyNodeApiKey
  103. } = await this.getApiKeys(moralisSecret);
  104. apiKey = web3ApiKey;
  105. this.speedyNodeApiKey = speedyNodeApiKey;
  106. }
  107. this.initialize(appId, javascriptKey, masterKey);
  108. this.serverURL = serverUrl;
  109. this.Web3API.initialize({
  110. serverUrl,
  111. apiKey,
  112. Moralis
  113. });
  114. this.SolanaAPI.initialize({
  115. serverUrl,
  116. apiKey,
  117. Moralis
  118. });
  119. if (appId && serverUrl) {
  120. trackOptions = {
  121. subdomain: getSubdomain(serverUrl),
  122. sdk_type: 'javascript',
  123. sdk_version: "1.5.9",
  124. sdk_enviroment: "node",
  125. appId: appId
  126. };
  127. await this.initPlugins(plugins);
  128. } else {
  129. trackOptions = {
  130. sdk_type: 'javascript',
  131. sdk_version: "1.5.9",
  132. sdk_enviroment: "node"
  133. };
  134. } // Check if SDK is updated
  135. checkForSdkUpdates(); // Track start function call
  136. trackEvent(TrackingEventName.START_FUNCTION, serverUrl ? getSubdomain(serverUrl) : null, trackOptions);
  137. }
  138. /**
  139. * Call this method to get apiKeys using moralis secret.
  140. *
  141. * @param {string} moralisSecret Your MoralisSecret
  142. * @static
  143. */
  144. static async getApiKeys(moralisSecret) {
  145. try {
  146. const RESTController = _CoreManager.default.getRESTController();
  147. const response = await RESTController.ajax('GET', 'https://admin.moralis.io/api/publics/apiKeys', null, {
  148. 'moralis-secret': moralisSecret,
  149. Accept: 'application/json',
  150. 'Content-Type': 'application/json'
  151. });
  152. return response.response.result;
  153. } catch (error) {
  154. throw new Error(`Could not fetch keys with moralisSecret`);
  155. }
  156. }
  157. /**
  158. * Call this method first to set up your authentication tokens for Moralis.
  159. *
  160. * @param {string} applicationId Your Moralis Application ID.
  161. * @param {string} [javaScriptKey] Your Moralis JavaScript Key (Not needed for moralis-server)
  162. * @param {string} [masterKey] Your Moralis Master Key. (Node.js only!)
  163. * @static
  164. */
  165. static initialize(applicationId
  166. /*: string*/
  167. , javaScriptKey
  168. /*: string*/
  169. ) {
  170. Moralis._initialize(applicationId, javaScriptKey);
  171. }
  172. static _initialize(applicationId
  173. /*: string*/
  174. , javaScriptKey
  175. /*: string*/
  176. , masterKey
  177. /*: string*/
  178. ) {
  179. _CoreManager.default.set('APPLICATION_ID', applicationId);
  180. _CoreManager.default.set('JAVASCRIPT_KEY', javaScriptKey);
  181. _CoreManager.default.set('MASTER_KEY', masterKey);
  182. _CoreManager.default.set('USE_MASTER_KEY', false);
  183. }
  184. /**
  185. * Call this method to set your AsyncStorage engine
  186. * Starting Parse@1.11, the ParseSDK do not provide a React AsyncStorage as the ReactNative module
  187. * is not provided at a stable path and changes over versions.
  188. *
  189. * @param {AsyncStorage} storage a react native async storage.
  190. * @static
  191. */
  192. static setAsyncStorage(storage
  193. /*: any*/
  194. ) {
  195. _CoreManager.default.setAsyncStorage(storage);
  196. }
  197. /**
  198. * Call this method to set your LocalDatastoreStorage engine
  199. * If using React-Native use {@link Moralis.setAsyncStorage Moralis.setAsyncStorage()}
  200. *
  201. * @param {LocalDatastoreController} controller a data storage.
  202. * @static
  203. */
  204. static setLocalDatastoreController(controller
  205. /*: any*/
  206. ) {
  207. _CoreManager.default.setLocalDatastoreController(controller);
  208. }
  209. /**
  210. * @member {string} Moralis.applicationId
  211. * @static
  212. */
  213. static set applicationId(value) {
  214. _CoreManager.default.set('APPLICATION_ID', value);
  215. }
  216. static get applicationId() {
  217. return _CoreManager.default.get('APPLICATION_ID');
  218. }
  219. /**
  220. * @member {string} Moralis.javaScriptKey
  221. * @static
  222. */
  223. static set javaScriptKey(value) {
  224. _CoreManager.default.set('JAVASCRIPT_KEY', value);
  225. }
  226. static get javaScriptKey() {
  227. return _CoreManager.default.get('JAVASCRIPT_KEY');
  228. }
  229. /**
  230. * @member {string} Moralis.masterKey
  231. * @static
  232. */
  233. static set masterKey(value) {
  234. _CoreManager.default.set('MASTER_KEY', value);
  235. }
  236. static get masterKey() {
  237. return _CoreManager.default.get('MASTER_KEY');
  238. }
  239. /**
  240. * @member {string} Moralis.serverURL
  241. * @static
  242. */
  243. static set serverURL(value) {
  244. _CoreManager.default.set('SERVER_URL', value);
  245. }
  246. static get serverURL() {
  247. return _CoreManager.default.get('SERVER_URL');
  248. }
  249. /**
  250. * @member {string} Moralis.serverAuthToken
  251. * @static
  252. */
  253. static set serverAuthToken(value) {
  254. _CoreManager.default.set('SERVER_AUTH_TOKEN', value);
  255. }
  256. static get serverAuthToken() {
  257. return _CoreManager.default.get('SERVER_AUTH_TOKEN');
  258. }
  259. /**
  260. * @member {string} Moralis.serverAuthType
  261. * @static
  262. */
  263. static set serverAuthType(value) {
  264. _CoreManager.default.set('SERVER_AUTH_TYPE', value);
  265. }
  266. static get serverAuthType() {
  267. return _CoreManager.default.get('SERVER_AUTH_TYPE');
  268. }
  269. /**
  270. * @member {string} Moralis.liveQueryServerURL
  271. * @static
  272. */
  273. static set liveQueryServerURL(value) {
  274. _CoreManager.default.set('LIVEQUERY_SERVER_URL', value);
  275. }
  276. static get liveQueryServerURL() {
  277. return _CoreManager.default.get('LIVEQUERY_SERVER_URL');
  278. }
  279. /**
  280. * @member {string} Moralis.encryptedUser
  281. * @static
  282. */
  283. static set encryptedUser(value) {
  284. _CoreManager.default.set('ENCRYPTED_USER', value);
  285. }
  286. static get encryptedUser() {
  287. return _CoreManager.default.get('ENCRYPTED_USER');
  288. }
  289. /**
  290. * @member {string} Moralis.secret
  291. * @static
  292. */
  293. static set secret(value) {
  294. _CoreManager.default.set('ENCRYPTED_KEY', value);
  295. }
  296. static get secret() {
  297. return _CoreManager.default.get('ENCRYPTED_KEY');
  298. }
  299. /**
  300. * @member {boolean} Moralis.idempotency
  301. * @static
  302. */
  303. static set idempotency(value) {
  304. _CoreManager.default.set('IDEMPOTENCY', value);
  305. }
  306. static get idempotency() {
  307. return _CoreManager.default.get('IDEMPOTENCY');
  308. }
  309. }
  310. Moralis.ACL = require('./ParseACL').default;
  311. Moralis.Analytics = require('./Analytics');
  312. Moralis.AnonymousUtils = require('./AnonymousUtils').default;
  313. Moralis.Cloud = require('./Cloud');
  314. Moralis.CLP = require('./ParseCLP').default;
  315. Moralis.CoreManager = require('./CoreManager');
  316. Moralis.Config = require('./ParseConfig').default;
  317. Moralis.Error = require('./ParseError').default;
  318. Moralis.FacebookUtils = require('./FacebookUtils').default;
  319. Moralis.File = require('./ParseFile').default;
  320. Moralis.GeoPoint = require('./ParseGeoPoint').default;
  321. Moralis.Polygon = require('./ParsePolygon').default;
  322. Moralis.Installation = require('./ParseInstallation').default;
  323. Moralis.LocalDatastore = require('./LocalDatastore');
  324. Moralis.Object = require('./ParseObject').default;
  325. Moralis.Op = {
  326. Set: ParseOp.SetOp,
  327. Unset: ParseOp.UnsetOp,
  328. Increment: ParseOp.IncrementOp,
  329. Add: ParseOp.AddOp,
  330. Remove: ParseOp.RemoveOp,
  331. AddUnique: ParseOp.AddUniqueOp,
  332. Relation: ParseOp.RelationOp
  333. };
  334. Moralis.Web3API = require('./MoralisWeb3Api').default;
  335. Moralis.SolanaAPI = require('./MoralisSolanaApi').default;
  336. Moralis.Push = require('./Push');
  337. Moralis.Query = require('./ParseQuery').default;
  338. Moralis.Relation = require('./ParseRelation').default;
  339. Moralis.Role = require('./ParseRole').default;
  340. Moralis.Schema = require('./ParseSchema').default;
  341. Moralis.Session = require('./ParseSession').default;
  342. Moralis.Storage = require('./Storage');
  343. Moralis.User = require('./ParseUser').default;
  344. Moralis.LiveQuery = require('./ParseLiveQuery').default;
  345. Moralis.LiveQueryClient = require('./LiveQueryClient').default;
  346. Moralis.Web3 = Moralis;
  347. Moralis.Units = require('./UnitConvert'); // Moralis.Web3 = require('./MoralisWeb3').default;
  348. Moralis.Elrond = require('./MoralisErd').default;
  349. Moralis.Erd = Moralis.Elrond;
  350. Moralis.Dot = require('./MoralisDot').default;
  351. Moralis.UI = require('./MoralisUI').default;
  352. Moralis.Chains = require('./Chains').default;
  353. Moralis.AbstractWeb3Connector = require('./Web3Connector/AbstractWeb3Connector').default;
  354. (0, _filterConsole.filterConsole)();
  355. Moralis._request = function (...args) {
  356. return _CoreManager.default.getRESTController().request.apply(null, args);
  357. };
  358. Moralis._ajax = function (...args) {
  359. return _CoreManager.default.getRESTController().ajax.apply(null, args);
  360. }; // We attempt to match the signatures of the legacy versions of these methods
  361. Moralis._decode = function (_, value) {
  362. return (0, _decode.default)(value);
  363. };
  364. Moralis._encode = function (value, _, disallowObjects) {
  365. return (0, _encode.default)(value, disallowObjects);
  366. };
  367. Moralis._getInstallationId = function () {
  368. return _CoreManager.default.getInstallationController().currentInstallationId();
  369. };
  370. /**
  371. * Enable pinning in your application.
  372. * This must be called before your application can use pinning.
  373. *
  374. * @static
  375. */
  376. Moralis.enableLocalDatastore = function () {
  377. Moralis.LocalDatastore.isEnabled = true;
  378. };
  379. /**
  380. * Flag that indicates whether Local Datastore is enabled.
  381. *
  382. * @static
  383. * @returns {boolean}
  384. */
  385. Moralis.isLocalDatastoreEnabled = function () {
  386. return Moralis.LocalDatastore.isEnabled;
  387. };
  388. /**
  389. * Gets all contents from Local Datastore
  390. *
  391. * <pre>
  392. * await Moralis.dumpLocalDatastore();
  393. * </pre>
  394. *
  395. * @static
  396. * @returns {object}
  397. */
  398. Moralis.dumpLocalDatastore = function () {
  399. if (!Moralis.LocalDatastore.isEnabled) {
  400. console.log('Moralis.enableLocalDatastore() must be called first'); // eslint-disable-line no-console
  401. return Promise.resolve({});
  402. }
  403. return Moralis.LocalDatastore._getAllContents();
  404. };
  405. /**
  406. * Enable the current user encryption.
  407. * This must be called before login any user.
  408. *
  409. * @static
  410. */
  411. Moralis.enableEncryptedUser = function () {
  412. Moralis.encryptedUser = true;
  413. };
  414. /**
  415. * Flag that indicates whether Encrypted User is enabled.
  416. *
  417. * @static
  418. * @returns {boolean}
  419. */
  420. Moralis.isEncryptedUserEnabled = function () {
  421. return Moralis.encryptedUser;
  422. };
  423. _CoreManager.default.setCryptoController(_CryptoController.default);
  424. _CoreManager.default.setInstallationController(_InstallationController.default);
  425. _CoreManager.default.setRESTController(_RESTController.default);
  426. Moralis.initialize = Moralis._initialize;
  427. Moralis.Cloud = Moralis.Cloud || {};
  428. Moralis.Cloud.useMasterKey = function () {
  429. _CoreManager.default.set('USE_MASTER_KEY', true);
  430. };
  431. Moralis.Hooks = require('./ParseHooks'); // For legacy requires, of the form `var Moralis = require('moralis').Moralis`
  432. Moralis.Moralis = Moralis;
  433. module.exports = Moralis;