parse-server 9.6.0-alpha.49 → 9.6.0-alpha.50

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.
@@ -28,38 +28,7 @@ class AccountLockout {
28
28
  }
29
29
 
30
30
  /**
31
- * check if the _failed_login_count field has been set
32
- */
33
- _isFailedLoginCountSet() {
34
- const query = {
35
- username: this._user.username,
36
- _failed_login_count: {
37
- $exists: true
38
- }
39
- };
40
- return this._config.database.find('_User', query).then(users => {
41
- if (Array.isArray(users) && users.length > 0) {
42
- return true;
43
- } else {
44
- return false;
45
- }
46
- });
47
- }
48
-
49
- /**
50
- * if _failed_login_count is NOT set then set it to 0
51
- * else do nothing
52
- */
53
- _initFailedLoginCount() {
54
- return this._isFailedLoginCountSet().then(failedLoginCountIsSet => {
55
- if (!failedLoginCountIsSet) {
56
- return this._setFailedLoginCount(0);
57
- }
58
- });
59
- }
60
-
61
- /**
62
- * increment _failed_login_count by 1
31
+ * increment _failed_login_count by 1 and return the updated document
63
32
  */
64
33
  _incrementFailedLoginCount() {
65
34
  const query = {
@@ -123,17 +92,20 @@ class AccountLockout {
123
92
  }
124
93
 
125
94
  /**
126
- * set and/or increment _failed_login_count
127
- * if _failed_login_count > threshold
128
- * set the _account_lockout_expires_at to current_time + accountPolicy.duration
129
- * else
130
- * do nothing
95
+ * Atomically increment _failed_login_count and enforce lockout threshold.
96
+ * Uses the atomic increment result to determine the exact post-increment
97
+ * count, eliminating the TOCTOU race between checking and updating.
131
98
  */
132
99
  _handleFailedLoginAttempt() {
133
- return this._initFailedLoginCount().then(() => {
134
- return this._incrementFailedLoginCount();
135
- }).then(() => {
136
- return this._setLockoutExpiration();
100
+ return this._incrementFailedLoginCount().then(result => {
101
+ const count = result._failed_login_count;
102
+ if (count >= this._config.accountLockout.threshold) {
103
+ return this._setLockoutExpiration().then(() => {
104
+ if (count > this._config.accountLockout.threshold) {
105
+ throw new _node.default.Error(_node.default.Error.OBJECT_NOT_FOUND, 'Your account is locked due to multiple failed login attempts. Please try again after ' + this._config.accountLockout.duration + ' minute(s)');
106
+ }
107
+ });
108
+ }
137
109
  });
138
110
  }
139
111
 
@@ -174,4 +146,4 @@ class AccountLockout {
174
146
  }
175
147
  exports.AccountLockout = AccountLockout;
176
148
  var _default = exports.default = AccountLockout;
177
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQWNjb3VudExvY2tvdXQiLCJjb25zdHJ1Y3RvciIsInVzZXIiLCJjb25maWciLCJfdXNlciIsIl9jb25maWciLCJfc2V0RmFpbGVkTG9naW5Db3VudCIsInZhbHVlIiwicXVlcnkiLCJ1c2VybmFtZSIsInVwZGF0ZUZpZWxkcyIsIl9mYWlsZWRfbG9naW5fY291bnQiLCJkYXRhYmFzZSIsInVwZGF0ZSIsIl9pc0ZhaWxlZExvZ2luQ291bnRTZXQiLCIkZXhpc3RzIiwiZmluZCIsInRoZW4iLCJ1c2VycyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIl9pbml0RmFpbGVkTG9naW5Db3VudCIsImZhaWxlZExvZ2luQ291bnRJc1NldCIsIl9pbmNyZW1lbnRGYWlsZWRMb2dpbkNvdW50IiwiX19vcCIsImFtb3VudCIsIl9zZXRMb2Nrb3V0RXhwaXJhdGlvbiIsIiRndGUiLCJhY2NvdW50TG9ja291dCIsInRocmVzaG9sZCIsIm5vdyIsIkRhdGUiLCJfYWNjb3VudF9sb2Nrb3V0X2V4cGlyZXNfYXQiLCJQYXJzZSIsIl9lbmNvZGUiLCJnZXRUaW1lIiwiZHVyYXRpb24iLCJjYXRjaCIsImVyciIsImNvZGUiLCJtZXNzYWdlIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiX25vdExvY2tlZCIsIiRndCIsIl9oYW5kbGVGYWlsZWRMb2dpbkF0dGVtcHQiLCJoYW5kbGVMb2dpbkF0dGVtcHQiLCJsb2dpblN1Y2Nlc3NmdWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInVubG9ja0FjY291bnQiLCJ1bmxvY2tPblBhc3N3b3JkUmVzZXQiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvQWNjb3VudExvY2tvdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBBY2NvdW50IExvY2tvdXQgUG9saWN5IHNldHRpbmdzLlxuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuXG5leHBvcnQgY2xhc3MgQWNjb3VudExvY2tvdXQge1xuICBjb25zdHJ1Y3Rvcih1c2VyLCBjb25maWcpIHtcbiAgICB0aGlzLl91c2VyID0gdXNlcjtcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogc2V0IF9mYWlsZWRfbG9naW5fY291bnQgdG8gdmFsdWVcbiAgICovXG4gIF9zZXRGYWlsZWRMb2dpbkNvdW50KHZhbHVlKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICB1c2VybmFtZTogdGhpcy5fdXNlci51c2VybmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRzID0ge1xuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogdmFsdWUsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIHRoZSBfZmFpbGVkX2xvZ2luX2NvdW50IGZpZWxkIGhhcyBiZWVuIHNldFxuICAgKi9cbiAgX2lzRmFpbGVkTG9naW5Db3VudFNldCgpIHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lLFxuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyAkZXhpc3RzOiB0cnVlIH0sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UuZmluZCgnX1VzZXInLCBxdWVyeSkudGhlbih1c2VycyA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VycykgJiYgdXNlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZiBfZmFpbGVkX2xvZ2luX2NvdW50IGlzIE5PVCBzZXQgdGhlbiBzZXQgaXQgdG8gMFxuICAgKiBlbHNlIGRvIG5vdGhpbmdcbiAgICovXG4gIF9pbml0RmFpbGVkTG9naW5Db3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNGYWlsZWRMb2dpbkNvdW50U2V0KCkudGhlbihmYWlsZWRMb2dpbkNvdW50SXNTZXQgPT4ge1xuICAgICAgaWYgKCFmYWlsZWRMb2dpbkNvdW50SXNTZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldEZhaWxlZExvZ2luQ291bnQoMCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogaW5jcmVtZW50IF9mYWlsZWRfbG9naW5fY291bnQgYnkgMVxuICAgKi9cbiAgX2luY3JlbWVudEZhaWxlZExvZ2luQ291bnQoKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICB1c2VybmFtZTogdGhpcy5fdXNlci51c2VybmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRzID0ge1xuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyBfX29wOiAnSW5jcmVtZW50JywgYW1vdW50OiAxIH0sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGlmIHRoZSBmYWlsZWQgbG9naW4gY291bnQgaXMgZ3JlYXRlciB0aGFuIHRoZSB0aHJlc2hvbGRcbiAgICogdGhlbiBzZXRzIGxvY2tvdXQgZXhwaXJhdGlvbiB0byAnY3VycmVudHRpbWUgKyBhY2NvdW50UG9saWN5LmR1cmF0aW9uJywgaS5lLiwgYWNjb3VudCBpcyBsb2NrZWQgb3V0IGZvciB0aGUgbmV4dCAnYWNjb3VudFBvbGljeS5kdXJhdGlvbicgbWludXRlc1xuICAgKiBlbHNlIGRvIG5vdGhpbmdcbiAgICovXG4gIF9zZXRMb2Nrb3V0RXhwaXJhdGlvbigpIHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lLFxuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyAkZ3RlOiB0aGlzLl9jb25maWcuYWNjb3VudExvY2tvdXQudGhyZXNob2xkIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZHMgPSB7XG4gICAgICBfYWNjb3VudF9sb2Nrb3V0X2V4cGlyZXNfYXQ6IFBhcnNlLl9lbmNvZGUoXG4gICAgICAgIG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyB0aGlzLl9jb25maWcuYWNjb3VudExvY2tvdXQuZHVyYXRpb24gKiA2MCAqIDEwMDApXG4gICAgICApLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmRhdGFiYXNlLnVwZGF0ZSgnX1VzZXInLCBxdWVyeSwgdXBkYXRlRmllbGRzKS5jYXRjaChlcnIgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBlcnIgJiZcbiAgICAgICAgZXJyLmNvZGUgJiZcbiAgICAgICAgZXJyLm1lc3NhZ2UgJiZcbiAgICAgICAgZXJyLmNvZGUgPT09IFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQgJiZcbiAgICAgICAgZXJyLm1lc3NhZ2UgPT09ICdPYmplY3Qgbm90IGZvdW5kLidcbiAgICAgICkge1xuICAgICAgICByZXR1cm47IC8vIG5vdGhpbmcgdG8gdXBkYXRlIHNvIHdlIGFyZSBnb29kXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7IC8vIHVua25vd24gZXJyb3JcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZiBfYWNjb3VudF9sb2Nrb3V0X2V4cGlyZXNfYXQgPiBjdXJyZW50X3RpbWUgYW5kIF9mYWlsZWRfbG9naW5fY291bnQgPiB0aHJlc2hvbGRcbiAgICogICByZWplY3Qgd2l0aCBhY2NvdW50IGxvY2tlZCBlcnJvclxuICAgKiBlbHNlXG4gICAqICAgcmVzb2x2ZVxuICAgKi9cbiAgX25vdExvY2tlZCgpIHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lLFxuICAgICAgX2FjY291bnRfbG9ja291dF9leHBpcmVzX2F0OiB7ICRndDogUGFyc2UuX2VuY29kZShuZXcgRGF0ZSgpKSB9LFxuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyAkZ3RlOiB0aGlzLl9jb25maWcuYWNjb3VudExvY2tvdXQudGhyZXNob2xkIH0sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UuZmluZCgnX1VzZXInLCBxdWVyeSkudGhlbih1c2VycyA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VycykgJiYgdXNlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgICAgICAnWW91ciBhY2NvdW50IGlzIGxvY2tlZCBkdWUgdG8gbXVsdGlwbGUgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLiBQbGVhc2UgdHJ5IGFnYWluIGFmdGVyICcgK1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0LmR1cmF0aW9uICtcbiAgICAgICAgICAgICcgbWludXRlKHMpJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNldCBhbmQvb3IgaW5jcmVtZW50IF9mYWlsZWRfbG9naW5fY291bnRcbiAgICogaWYgX2ZhaWxlZF9sb2dpbl9jb3VudCA+IHRocmVzaG9sZFxuICAgKiAgIHNldCB0aGUgX2FjY291bnRfbG9ja291dF9leHBpcmVzX2F0IHRvIGN1cnJlbnRfdGltZSArIGFjY291bnRQb2xpY3kuZHVyYXRpb25cbiAgICogZWxzZVxuICAgKiAgIGRvIG5vdGhpbmdcbiAgICovXG4gIF9oYW5kbGVGYWlsZWRMb2dpbkF0dGVtcHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luaXRGYWlsZWRMb2dpbkNvdW50KClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY3JlbWVudEZhaWxlZExvZ2luQ291bnQoKTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXRMb2Nrb3V0RXhwaXJhdGlvbigpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogaGFuZGxlIGxvZ2luIGF0dGVtcHQgaWYgdGhlIEFjY291bnQgTG9ja291dCBQb2xpY3kgaXMgZW5hYmxlZFxuICAgKi9cbiAgaGFuZGxlTG9naW5BdHRlbXB0KGxvZ2luU3VjY2Vzc2Z1bCkge1xuICAgIGlmICghdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ub3RMb2NrZWQoKS50aGVuKCgpID0+IHtcbiAgICAgIGlmIChsb2dpblN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldEZhaWxlZExvZ2luQ291bnQoMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFuZGxlRmFpbGVkTG9naW5BdHRlbXB0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYWNjb3VudCBsb2Nrb3V0LlxuICAgKi9cbiAgdW5sb2NrQWNjb3VudCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5hY2NvdW50TG9ja291dCB8fCAhdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0LnVubG9ja09uUGFzc3dvcmRSZXNldCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmRhdGFiYXNlLnVwZGF0ZShcbiAgICAgICdfVXNlcicsXG4gICAgICB7IHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lIH0sXG4gICAgICB7XG4gICAgICAgIF9mYWlsZWRfbG9naW5fY291bnQ6IHsgX19vcDogJ0RlbGV0ZScgfSxcbiAgICAgICAgX2FjY291bnRfbG9ja291dF9leHBpcmVzX2F0OiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBY2NvdW50TG9ja291dDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQStCLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRC9COztBQUdPLE1BQU1HLGNBQWMsQ0FBQztFQUMxQkMsV0FBV0EsQ0FBQ0MsSUFBSSxFQUFFQyxNQUFNLEVBQUU7SUFDeEIsSUFBSSxDQUFDQyxLQUFLLEdBQUdGLElBQUk7SUFDakIsSUFBSSxDQUFDRyxPQUFPLEdBQUdGLE1BQU07RUFDdkI7O0VBRUE7QUFDRjtBQUNBO0VBQ0VHLG9CQUFvQkEsQ0FBQ0MsS0FBSyxFQUFFO0lBQzFCLE1BQU1DLEtBQUssR0FBRztNQUNaQyxRQUFRLEVBQUUsSUFBSSxDQUFDTCxLQUFLLENBQUNLO0lBQ3ZCLENBQUM7SUFFRCxNQUFNQyxZQUFZLEdBQUc7TUFDbkJDLG1CQUFtQixFQUFFSjtJQUN2QixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUNGLE9BQU8sQ0FBQ08sUUFBUSxDQUFDQyxNQUFNLENBQUMsT0FBTyxFQUFFTCxLQUFLLEVBQUVFLFlBQVksQ0FBQztFQUNuRTs7RUFFQTtBQUNGO0FBQ0E7RUFDRUksc0JBQXNCQSxDQUFBLEVBQUc7SUFDdkIsTUFBTU4sS0FBSyxHQUFHO01BQ1pDLFFBQVEsRUFB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
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQWNjb3VudExvY2tvdXQiLCJjb25zdHJ1Y3RvciIsInVzZXIiLCJjb25maWciLCJfdXNlciIsIl9jb25maWciLCJfc2V0RmFpbGVkTG9naW5Db3VudCIsInZhbHVlIiwicXVlcnkiLCJ1c2VybmFtZSIsInVwZGF0ZUZpZWxkcyIsIl9mYWlsZWRfbG9naW5fY291bnQiLCJkYXRhYmFzZSIsInVwZGF0ZSIsIl9pbmNyZW1lbnRGYWlsZWRMb2dpbkNvdW50IiwiX19vcCIsImFtb3VudCIsIl9zZXRMb2Nrb3V0RXhwaXJhdGlvbiIsIiRndGUiLCJhY2NvdW50TG9ja291dCIsInRocmVzaG9sZCIsIm5vdyIsIkRhdGUiLCJfYWNjb3VudF9sb2Nrb3V0X2V4cGlyZXNfYXQiLCJQYXJzZSIsIl9lbmNvZGUiLCJnZXRUaW1lIiwiZHVyYXRpb24iLCJjYXRjaCIsImVyciIsImNvZGUiLCJtZXNzYWdlIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiX25vdExvY2tlZCIsIiRndCIsImZpbmQiLCJ0aGVuIiwidXNlcnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJfaGFuZGxlRmFpbGVkTG9naW5BdHRlbXB0IiwicmVzdWx0IiwiY291bnQiLCJoYW5kbGVMb2dpbkF0dGVtcHQiLCJsb2dpblN1Y2Nlc3NmdWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInVubG9ja0FjY291bnQiLCJ1bmxvY2tPblBhc3N3b3JkUmVzZXQiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvQWNjb3VudExvY2tvdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBBY2NvdW50IExvY2tvdXQgUG9saWN5IHNldHRpbmdzLlxuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuXG5leHBvcnQgY2xhc3MgQWNjb3VudExvY2tvdXQge1xuICBjb25zdHJ1Y3Rvcih1c2VyLCBjb25maWcpIHtcbiAgICB0aGlzLl91c2VyID0gdXNlcjtcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogc2V0IF9mYWlsZWRfbG9naW5fY291bnQgdG8gdmFsdWVcbiAgICovXG4gIF9zZXRGYWlsZWRMb2dpbkNvdW50KHZhbHVlKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICB1c2VybmFtZTogdGhpcy5fdXNlci51c2VybmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRzID0ge1xuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogdmFsdWUsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGluY3JlbWVudCBfZmFpbGVkX2xvZ2luX2NvdW50IGJ5IDEgYW5kIHJldHVybiB0aGUgdXBkYXRlZCBkb2N1bWVudFxuICAgKi9cbiAgX2luY3JlbWVudEZhaWxlZExvZ2luQ291bnQoKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICB1c2VybmFtZTogdGhpcy5fdXNlci51c2VybmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRzID0ge1xuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyBfX29wOiAnSW5jcmVtZW50JywgYW1vdW50OiAxIH0sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGlmIHRoZSBmYWlsZWQgbG9naW4gY291bnQgaXMgZ3JlYXRlciB0aGFuIHRoZSB0aHJlc2hvbGRcbiAgICogdGhlbiBzZXRzIGxvY2tvdXQgZXhwaXJhdGlvbiB0byAnY3VycmVudHRpbWUgKyBhY2NvdW50UG9saWN5LmR1cmF0aW9uJywgaS5lLiwgYWNjb3VudCBpcyBsb2NrZWQgb3V0IGZvciB0aGUgbmV4dCAnYWNjb3VudFBvbGljeS5kdXJhdGlvbicgbWludXRlc1xuICAgKiBlbHNlIGRvIG5vdGhpbmdcbiAgICovXG4gIF9zZXRMb2Nrb3V0RXhwaXJhdGlvbigpIHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lLFxuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyAkZ3RlOiB0aGlzLl9jb25maWcuYWNjb3VudExvY2tvdXQudGhyZXNob2xkIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZHMgPSB7XG4gICAgICBfYWNjb3VudF9sb2Nrb3V0X2V4cGlyZXNfYXQ6IFBhcnNlLl9lbmNvZGUoXG4gICAgICAgIG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyB0aGlzLl9jb25maWcuYWNjb3VudExvY2tvdXQuZHVyYXRpb24gKiA2MCAqIDEwMDApXG4gICAgICApLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmRhdGFiYXNlLnVwZGF0ZSgnX1VzZXInLCBxdWVyeSwgdXBkYXRlRmllbGRzKS5jYXRjaChlcnIgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBlcnIgJiZcbiAgICAgICAgZXJyLmNvZGUgJiZcbiAgICAgICAgZXJyLm1lc3NhZ2UgJiZcbiAgICAgICAgZXJyLmNvZGUgPT09IFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQgJiZcbiAgICAgICAgZXJyLm1lc3NhZ2UgPT09ICdPYmplY3Qgbm90IGZvdW5kLidcbiAgICAgICkge1xuICAgICAgICByZXR1cm47IC8vIG5vdGhpbmcgdG8gdXBkYXRlIHNvIHdlIGFyZSBnb29kXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7IC8vIHVua25vd24gZXJyb3JcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZiBfYWNjb3VudF9sb2Nrb3V0X2V4cGlyZXNfYXQgPiBjdXJyZW50X3RpbWUgYW5kIF9mYWlsZWRfbG9naW5fY291bnQgPiB0aHJlc2hvbGRcbiAgICogICByZWplY3Qgd2l0aCBhY2NvdW50IGxvY2tlZCBlcnJvclxuICAgKiBlbHNlXG4gICAqICAgcmVzb2x2ZVxuICAgKi9cbiAgX25vdExvY2tlZCgpIHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lLFxuICAgICAgX2FjY291bnRfbG9ja291dF9leHBpcmVzX2F0OiB7ICRndDogUGFyc2UuX2VuY29kZShuZXcgRGF0ZSgpKSB9LFxuICAgICAgX2ZhaWxlZF9sb2dpbl9jb3VudDogeyAkZ3RlOiB0aGlzLl9jb25maWcuYWNjb3VudExvY2tvdXQudGhyZXNob2xkIH0sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGF0YWJhc2UuZmluZCgnX1VzZXInLCBxdWVyeSkudGhlbih1c2VycyA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VycykgJiYgdXNlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgICAgICAnWW91ciBhY2NvdW50IGlzIGxvY2tlZCBkdWUgdG8gbXVsdGlwbGUgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLiBQbGVhc2UgdHJ5IGFnYWluIGFmdGVyICcgK1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0LmR1cmF0aW9uICtcbiAgICAgICAgICAgICcgbWludXRlKHMpJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0b21pY2FsbHkgaW5jcmVtZW50IF9mYWlsZWRfbG9naW5fY291bnQgYW5kIGVuZm9yY2UgbG9ja291dCB0aHJlc2hvbGQuXG4gICAqIFVzZXMgdGhlIGF0b21pYyBpbmNyZW1lbnQgcmVzdWx0IHRvIGRldGVybWluZSB0aGUgZXhhY3QgcG9zdC1pbmNyZW1lbnRcbiAgICogY291bnQsIGVsaW1pbmF0aW5nIHRoZSBUT0NUT1UgcmFjZSBiZXR3ZWVuIGNoZWNraW5nIGFuZCB1cGRhdGluZy5cbiAgICovXG4gIF9oYW5kbGVGYWlsZWRMb2dpbkF0dGVtcHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY3JlbWVudEZhaWxlZExvZ2luQ291bnQoKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBjb25zdCBjb3VudCA9IHJlc3VsdC5fZmFpbGVkX2xvZ2luX2NvdW50O1xuICAgICAgaWYgKGNvdW50ID49IHRoaXMuX2NvbmZpZy5hY2NvdW50TG9ja291dC50aHJlc2hvbGQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldExvY2tvdXRFeHBpcmF0aW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ID4gdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0LnRocmVzaG9sZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgICAgICAgICAnWW91ciBhY2NvdW50IGlzIGxvY2tlZCBkdWUgdG8gbXVsdGlwbGUgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLiBQbGVhc2UgdHJ5IGFnYWluIGFmdGVyICcgK1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5hY2NvdW50TG9ja291dC5kdXJhdGlvbiArXG4gICAgICAgICAgICAgICAgJyBtaW51dGUocyknXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogaGFuZGxlIGxvZ2luIGF0dGVtcHQgaWYgdGhlIEFjY291bnQgTG9ja291dCBQb2xpY3kgaXMgZW5hYmxlZFxuICAgKi9cbiAgaGFuZGxlTG9naW5BdHRlbXB0KGxvZ2luU3VjY2Vzc2Z1bCkge1xuICAgIGlmICghdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ub3RMb2NrZWQoKS50aGVuKCgpID0+IHtcbiAgICAgIGlmIChsb2dpblN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldEZhaWxlZExvZ2luQ291bnQoMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFuZGxlRmFpbGVkTG9naW5BdHRlbXB0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYWNjb3VudCBsb2Nrb3V0LlxuICAgKi9cbiAgdW5sb2NrQWNjb3VudCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5hY2NvdW50TG9ja291dCB8fCAhdGhpcy5fY29uZmlnLmFjY291bnRMb2Nrb3V0LnVubG9ja09uUGFzc3dvcmRSZXNldCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmRhdGFiYXNlLnVwZGF0ZShcbiAgICAgICdfVXNlcicsXG4gICAgICB7IHVzZXJuYW1lOiB0aGlzLl91c2VyLnVzZXJuYW1lIH0sXG4gICAgICB7XG4gICAgICAgIF9mYWlsZWRfbG9naW5fY291bnQ6IHsgX19vcDogJ0RlbGV0ZScgfSxcbiAgICAgICAgX2FjY291bnRfbG9ja291dF9leHBpcmVzX2F0OiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBY2NvdW50TG9ja291dDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxz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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parse-server",
3
- "version": "9.6.0-alpha.49",
3
+ "version": "9.6.0-alpha.50",
4
4
  "description": "An express module providing a Parse-compatible API server",
5
5
  "main": "lib/index.js",
6
6
  "repository": {