@beiguancyc/parse-server 9.10.0-ruixiang.4 → 9.10.6-ruixiang.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +5 -0
  2. package/lib/Adapters/Auth/AuthAdapter.js +3 -3
  3. package/lib/Adapters/Auth/index.js +83 -23
  4. package/lib/Adapters/Auth/ldap.js +13 -2
  5. package/lib/Adapters/Auth/mfa.js +4 -3
  6. package/lib/Adapters/Cache/LRUCache.js +26 -2
  7. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +9 -2
  8. package/lib/Adapters/Storage/Mongo/MongoTransform.js +6 -3
  9. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +6 -4
  10. package/lib/Adapters/Storage/StorageAdapter.js +1 -1
  11. package/lib/Auth.js +16 -7
  12. package/lib/Config.js +14 -5
  13. package/lib/Controllers/DatabaseController.js +74 -23
  14. package/lib/Controllers/FilesController.js +28 -24
  15. package/lib/Controllers/SchemaController.js +8 -2
  16. package/lib/Controllers/UserController.js +52 -37
  17. package/lib/Deprecator/Deprecations.js +5 -1
  18. package/lib/GraphQL/ParseGraphQLSchema.js +4 -4
  19. package/lib/GraphQL/ParseGraphQLServer.js +83 -22
  20. package/lib/LiveQuery/ParseLiveQueryServer.js +108 -7
  21. package/lib/LiveQuery/QueryTools.js +31 -60
  22. package/lib/Options/Definitions.js +14 -8
  23. package/lib/Options/docs.js +9 -8
  24. package/lib/Options/index.js +1 -1
  25. package/lib/ParseServer.js +2 -1
  26. package/lib/PromiseRouter.js +2 -19
  27. package/lib/RestQuery.js +28 -5
  28. package/lib/RestWrite.js +628 -57
  29. package/lib/Routers/SessionsRouter.js +5 -1
  30. package/lib/Routers/UsersRouter.js +9 -2
  31. package/lib/SharedRest.js +7 -1
  32. package/lib/Utils.js +17 -1
  33. package/lib/batch.js +3 -2
  34. package/lib/cloud-code/Parse.Cloud.js +4 -2
  35. package/lib/middlewares.js +36 -3
  36. package/lib/triggers.js +7 -7
  37. package/package.json +20 -33
  38. package/types/Options/index.d.ts +1 -0
  39. package/lib/ClientSDK.js +0 -39
@@ -7,11 +7,16 @@ exports.default = exports.LRUCache = void 0;
7
7
  var _lruCache = require("lru-cache");
8
8
  var _defaults = _interopRequireDefault(require("../../defaults"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const isValidTTL = ttl => typeof ttl === 'number' && Number.isFinite(ttl) && ttl > 0;
11
+
12
+ // `lru-cache` expresses "never expires" as a TTL of zero.
13
+ const NO_EXPIRY = 0;
10
14
  class LRUCache {
11
15
  constructor({
12
16
  ttl = _defaults.default.cacheTTL,
13
17
  maxSize = _defaults.default.cacheMaxSize
14
18
  }) {
19
+ this.ttl = ttl;
15
20
  this.cache = new _lruCache.LRUCache({
16
21
  max: maxSize,
17
22
  ttl
@@ -21,7 +26,26 @@ class LRUCache {
21
26
  return this.cache.get(key) || null;
22
27
  }
23
28
  put(key, value, ttl = this.ttl) {
24
- this.cache.set(key, value, ttl);
29
+ // `lru-cache` takes the per-entry TTL as a property of an options object.
30
+ // Passed positionally it is silently discarded, leaving the entry on the
31
+ // cache-wide TTL.
32
+ //
33
+ // A TTL of `Infinity` means "never expires", matching `RedisCacheAdapter`,
34
+ // and is translated to the zero that `lru-cache` uses for that. `Infinity`
35
+ // is not forwarded as-is because Node cannot express it as a timer
36
+ // duration: under `ttlAutopurge` it emits a `TimeoutOverflowWarning` and
37
+ // clamps the timer to 1ms, so the purge timer re-fires every millisecond.
38
+ // Any other TTL that is not a positive, finite number is forwarded as
39
+ // `undefined`, which is how the library expresses "use the cache-wide TTL".
40
+ let entryTTL;
41
+ if (ttl === Infinity) {
42
+ entryTTL = NO_EXPIRY;
43
+ } else if (isValidTTL(ttl)) {
44
+ entryTTL = ttl;
45
+ }
46
+ this.cache.set(key, value, {
47
+ ttl: entryTTL
48
+ });
25
49
  }
26
50
  del(key) {
27
51
  this.cache.delete(key);
@@ -32,4 +56,4 @@ class LRUCache {
32
56
  }
33
57
  exports.LRUCache = LRUCache;
34
58
  var _default = exports.default = LRUCache;
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbHJ1Q2FjaGUiLCJyZXF1aXJlIiwiX2RlZmF1bHRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkxSVUNhY2hlIiwiY29uc3RydWN0b3IiLCJ0dGwiLCJkZWZhdWx0cyIsImNhY2hlVFRMIiwibWF4U2l6ZSIsImNhY2hlTWF4U2l6ZSIsImNhY2hlIiwiTFJVIiwibWF4IiwiZ2V0Iiwia2V5IiwicHV0IiwidmFsdWUiLCJzZXQiLCJkZWwiLCJkZWxldGUiLCJjbGVhciIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9MUlVDYWNoZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMUlVDYWNoZSBhcyBMUlUgfSBmcm9tICdscnUtY2FjaGUnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uLy4uL2RlZmF1bHRzJztcblxuZXhwb3J0IGNsYXNzIExSVUNhY2hlIHtcbiAgY29uc3RydWN0b3IoeyB0dGwgPSBkZWZhdWx0cy5jYWNoZVRUTCwgbWF4U2l6ZSA9IGRlZmF1bHRzLmNhY2hlTWF4U2l6ZSB9KSB7XG4gICAgdGhpcy5jYWNoZSA9IG5ldyBMUlUoe1xuICAgICAgbWF4OiBtYXhTaXplLFxuICAgICAgdHRsLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0KGtleSkge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChrZXkpIHx8IG51bGw7XG4gIH1cblxuICBwdXQoa2V5LCB2YWx1ZSwgdHRsID0gdGhpcy50dGwpIHtcbiAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlLCB0dGwpO1xuICB9XG5cbiAgZGVsKGtleSkge1xuICAgIHRoaXMuY2FjaGUuZGVsZXRlKGtleSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTFJVQ2FjaGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFzQyxTQUFBRSx1QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUUvQixNQUFNRyxRQUFRLENBQUM7RUFDcEJDLFdBQVdBLENBQUM7SUFBRUMsR0FBRyxHQUFHQyxpQkFBUSxDQUFDQyxRQUFRO0lBQUVDLE9BQU8sR0FBR0YsaUJBQVEsQ0FBQ0c7RUFBYSxDQUFDLEVBQUU7SUFDeEUsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSUMsa0JBQUcsQ0FBQztNQUNuQkMsR0FBRyxFQUFFSixPQUFPO01BQ1pIO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7RUFFQVEsR0FBR0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ1AsT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0csR0FBRyxDQUFDQyxHQUFHLENBQUMsSUFBSSxJQUFJO0VBQ3BDO0VBRUFDLEdBQUdBLENBQUNELEdBQUcsRUFBRUUsS0FBSyxFQUFFWCxHQUFHLEdBQUcsSUFBSSxDQUFDQSxHQUFHLEVBQUU7SUFDOUIsSUFBSSxDQUFDSyxLQUFLLENBQUNPLEdBQUcsQ0FBQ0gsR0FBRyxFQUFFRSxLQUFLLEVBQUVYLEdBQUcsQ0FBQztFQUNqQztFQUVBYSxHQUFHQSxDQUFDSixHQUFHLEVBQUU7SUFDUCxJQUFJLENBQUNKLEtBQUssQ0FBQ1MsTUFBTSxDQUFDTCxHQUFHLENBQUM7RUFDeEI7RUFFQU0sS0FBS0EsQ0FBQSxFQUFHO0lBQ04sSUFBSSxDQUFDVixLQUFLLENBQUNVLEtBQUssQ0FBQyxDQUFDO0VBQ3BCO0FBQ0Y7QUFBQ0MsT0FBQSxDQUFBbEIsUUFBQSxHQUFBQSxRQUFBO0FBQUEsSUFBQW1CLFFBQUEsR0FBQUQsT0FBQSxDQUFBbkIsT0FBQSxHQUVjQyxRQUFRIiwiaWdub3JlTGlzdCI6W119
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbHJ1Q2FjaGUiLCJyZXF1aXJlIiwiX2RlZmF1bHRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImlzVmFsaWRUVEwiLCJ0dGwiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIk5PX0VYUElSWSIsIkxSVUNhY2hlIiwiY29uc3RydWN0b3IiLCJkZWZhdWx0cyIsImNhY2hlVFRMIiwibWF4U2l6ZSIsImNhY2hlTWF4U2l6ZSIsImNhY2hlIiwiTFJVIiwibWF4IiwiZ2V0Iiwia2V5IiwicHV0IiwidmFsdWUiLCJlbnRyeVRUTCIsIkluZmluaXR5Iiwic2V0IiwiZGVsIiwiZGVsZXRlIiwiY2xlYXIiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvQ2FjaGUvTFJVQ2FjaGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTFJVQ2FjaGUgYXMgTFJVIH0gZnJvbSAnbHJ1LWNhY2hlJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuLi8uLi9kZWZhdWx0cyc7XG5cbmNvbnN0IGlzVmFsaWRUVEwgPSB0dGwgPT4gdHlwZW9mIHR0bCA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKHR0bCkgJiYgdHRsID4gMDtcblxuLy8gYGxydS1jYWNoZWAgZXhwcmVzc2VzIFwibmV2ZXIgZXhwaXJlc1wiIGFzIGEgVFRMIG9mIHplcm8uXG5jb25zdCBOT19FWFBJUlkgPSAwO1xuXG5leHBvcnQgY2xhc3MgTFJVQ2FjaGUge1xuICBjb25zdHJ1Y3Rvcih7IHR0bCA9IGRlZmF1bHRzLmNhY2hlVFRMLCBtYXhTaXplID0gZGVmYXVsdHMuY2FjaGVNYXhTaXplIH0pIHtcbiAgICB0aGlzLnR0bCA9IHR0bDtcbiAgICB0aGlzLmNhY2hlID0gbmV3IExSVSh7XG4gICAgICBtYXg6IG1heFNpemUsXG4gICAgICB0dGwsXG4gICAgfSk7XG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGtleSkgfHwgbnVsbDtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwgPSB0aGlzLnR0bCkge1xuICAgIC8vIGBscnUtY2FjaGVgIHRha2VzIHRoZSBwZXItZW50cnkgVFRMIGFzIGEgcHJvcGVydHkgb2YgYW4gb3B0aW9ucyBvYmplY3QuXG4gICAgLy8gUGFzc2VkIHBvc2l0aW9uYWxseSBpdCBpcyBzaWxlbnRseSBkaXNjYXJkZWQsIGxlYXZpbmcgdGhlIGVudHJ5IG9uIHRoZVxuICAgIC8vIGNhY2hlLXdpZGUgVFRMLlxuICAgIC8vXG4gICAgLy8gQSBUVEwgb2YgYEluZmluaXR5YCBtZWFucyBcIm5ldmVyIGV4cGlyZXNcIiwgbWF0Y2hpbmcgYFJlZGlzQ2FjaGVBZGFwdGVyYCxcbiAgICAvLyBhbmQgaXMgdHJhbnNsYXRlZCB0byB0aGUgemVybyB0aGF0IGBscnUtY2FjaGVgIHVzZXMgZm9yIHRoYXQuIGBJbmZpbml0eWBcbiAgICAvLyBpcyBub3QgZm9yd2FyZGVkIGFzLWlzIGJlY2F1c2UgTm9kZSBjYW5ub3QgZXhwcmVzcyBpdCBhcyBhIHRpbWVyXG4gICAgLy8gZHVyYXRpb246IHVuZGVyIGB0dGxBdXRvcHVyZ2VgIGl0IGVtaXRzIGEgYFRpbWVvdXRPdmVyZmxvd1dhcm5pbmdgIGFuZFxuICAgIC8vIGNsYW1wcyB0aGUgdGltZXIgdG8gMW1zLCBzbyB0aGUgcHVyZ2UgdGltZXIgcmUtZmlyZXMgZXZlcnkgbWlsbGlzZWNvbmQuXG4gICAgLy8gQW55IG90aGVyIFRUTCB0aGF0IGlzIG5vdCBhIHBvc2l0aXZlLCBmaW5pdGUgbnVtYmVyIGlzIGZvcndhcmRlZCBhc1xuICAgIC8vIGB1bmRlZmluZWRgLCB3aGljaCBpcyBob3cgdGhlIGxpYnJhcnkgZXhwcmVzc2VzIFwidXNlIHRoZSBjYWNoZS13aWRlIFRUTFwiLlxuICAgIGxldCBlbnRyeVRUTDtcbiAgICBpZiAodHRsID09PSBJbmZpbml0eSkge1xuICAgICAgZW50cnlUVEwgPSBOT19FWFBJUlk7XG4gICAgfSBlbHNlIGlmIChpc1ZhbGlkVFRMKHR0bCkpIHtcbiAgICAgIGVudHJ5VFRMID0gdHRsO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlLCB7IHR0bDogZW50cnlUVEwgfSk7XG4gIH1cblxuICBkZWwoa2V5KSB7XG4gICAgdGhpcy5jYWNoZS5kZWxldGUoa2V5KTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMUlVDYWNoZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQXNDLFNBQUFFLHVCQUFBQyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXRDLE1BQU1HLFVBQVUsR0FBR0MsR0FBRyxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLElBQUlDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixHQUFHLENBQUMsSUFBSUEsR0FBRyxHQUFHLENBQUM7O0FBRXBGO0FBQ0EsTUFBTUcsU0FBUyxHQUFHLENBQUM7QUFFWixNQUFNQyxRQUFRLENBQUM7RUFDcEJDLFdBQVdBLENBQUM7SUFBRUwsR0FBRyxHQUFHTSxpQkFBUSxDQUFDQyxRQUFRO0lBQUVDLE9BQU8sR0FBR0YsaUJBQVEsQ0FBQ0c7RUFBYSxDQUFDLEVBQUU7SUFDeEUsSUFBSSxDQUFDVCxHQUFHLEdBQUdBLEdBQUc7SUFDZCxJQUFJLENBQUNVLEtBQUssR0FBRyxJQUFJQyxrQkFBRyxDQUFDO01BQ25CQyxHQUFHLEVBQUVKLE9BQU87TUFDWlI7SUFDRixDQUFDLENBQUM7RUFDSjtFQUVBYSxHQUFHQSxDQUFDQyxHQUFHLEVBQUU7SUFDUCxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDRyxHQUFHLENBQUNDLEdBQUcsQ0FBQyxJQUFJLElBQUk7RUFDcEM7RUFFQUMsR0FBR0EsQ0FBQ0QsR0FBRyxFQUFFRSxLQUFLLEVBQUVoQixHQUFHLEdBQUcsSUFBSSxDQUFDQSxHQUFHLEVBQUU7SUFDOUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBLElBQUlpQixRQUFRO0lBQ1osSUFBSWpCLEdBQUcsS0FBS2tCLFFBQVEsRUFBRTtNQUNwQkQsUUFBUSxHQUFHZCxTQUFTO0lBQ3RCLENBQUMsTUFBTSxJQUFJSixVQUFVLENBQUNDLEdBQUcsQ0FBQyxFQUFFO01BQzFCaUIsUUFBUSxHQUFHakIsR0FBRztJQUNoQjtJQUNBLElBQUksQ0FBQ1UsS0FBSyxDQUFDUyxHQUFHLENBQUNMLEdBQUcsRUFBRUUsS0FBSyxFQUFFO01BQUVoQixHQUFHLEVBQUVpQjtJQUFTLENBQUMsQ0FBQztFQUMvQztFQUVBRyxHQUFHQSxDQUFDTixHQUFHLEVBQUU7SUFDUCxJQUFJLENBQUNKLEtBQUssQ0FBQ1csTUFBTSxDQUFDUCxHQUFHLENBQUM7RUFDeEI7RUFFQVEsS0FBS0EsQ0FBQSxFQUFHO0lBQ04sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUssQ0FBQyxDQUFDO0VBQ3BCO0FBQ0Y7QUFBQ0MsT0FBQSxDQUFBbkIsUUFBQSxHQUFBQSxRQUFBO0FBQUEsSUFBQW9CLFFBQUEsR0FBQUQsT0FBQSxDQUFBekIsT0FBQSxHQUVjTSxRQUFRIiwiaWdub3JlTGlzdCI6W119