parse-server 4.10.6 → 4.10.7

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.
package/lib/Utils.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * utils.js
5
+ * @file General purpose utilities
6
+ * @description General purpose utilities.
7
+ */
8
+
9
+ /**
10
+ * The general purpose utilities.
11
+ */
12
+ class Utils {
13
+ /**
14
+ * Deep-scans an object for a matching key/value definition.
15
+ * @param {Object} obj The object to scan.
16
+ * @param {String | undefined} key The key to match, or undefined if only the value should be matched.
17
+ * @param {any | undefined} value The value to match, or undefined if only the key should be matched.
18
+ * @returns {Boolean} True if a match was found, false otherwise.
19
+ */
20
+ static objectContainsKeyValue(obj, key, value) {
21
+ const isMatch = (a, b) => typeof a === 'string' && new RegExp(a).test(b) || a === b;
22
+
23
+ const isKeyMatch = k => isMatch(key, k);
24
+
25
+ const isValueMatch = v => isMatch(value, v);
26
+
27
+ for (const [k, v] of Object.entries(obj)) {
28
+ if (key !== undefined && value === undefined && isKeyMatch(k)) {
29
+ return true;
30
+ } else if (key === undefined && value !== undefined && isValueMatch(v)) {
31
+ return true;
32
+ } else if (key !== undefined && value !== undefined && isKeyMatch(k) && isValueMatch(v)) {
33
+ return true;
34
+ }
35
+
36
+ if (['[object Object]', '[object Array]'].includes(Object.prototype.toString.call(v))) {
37
+ return Utils.objectContainsKeyValue(v, key, value);
38
+ }
39
+ }
40
+
41
+ return false;
42
+ }
43
+
44
+ }
45
+
46
+ module.exports = Utils;
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9VdGlscy5qcyJdLCJuYW1lcyI6WyJVdGlscyIsIm9iamVjdENvbnRhaW5zS2V5VmFsdWUiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsImlzTWF0Y2giLCJhIiwiYiIsIlJlZ0V4cCIsInRlc3QiLCJpc0tleU1hdGNoIiwiayIsImlzVmFsdWVNYXRjaCIsInYiLCJPYmplY3QiLCJlbnRyaWVzIiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7QUFNQTs7O0FBR0EsTUFBTUEsS0FBTixDQUFZO0FBQ1Y7Ozs7Ozs7QUFPQSxTQUFPQyxzQkFBUCxDQUE4QkMsR0FBOUIsRUFBbUNDLEdBQW5DLEVBQXdDQyxLQUF4QyxFQUErQztBQUM3QyxVQUFNQyxPQUFPLEdBQUcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVcsT0FBT0QsQ0FBUCxLQUFhLFFBQWIsSUFBeUIsSUFBSUUsTUFBSixDQUFXRixDQUFYLEVBQWNHLElBQWQsQ0FBbUJGLENBQW5CLENBQTFCLElBQW9ERCxDQUFDLEtBQUtDLENBQXBGOztBQUNBLFVBQU1HLFVBQVUsR0FBR0MsQ0FBQyxJQUFJTixPQUFPLENBQUNGLEdBQUQsRUFBTVEsQ0FBTixDQUEvQjs7QUFDQSxVQUFNQyxZQUFZLEdBQUdDLENBQUMsSUFBSVIsT0FBTyxDQUFDRCxLQUFELEVBQVFTLENBQVIsQ0FBakM7O0FBQ0EsU0FBSyxNQUFNLENBQUNGLENBQUQsRUFBSUUsQ0FBSixDQUFYLElBQXFCQyxNQUFNLENBQUNDLE9BQVAsQ0FBZWIsR0FBZixDQUFyQixFQUEwQztBQUN4QyxVQUFJQyxHQUFHLEtBQUthLFNBQVIsSUFBcUJaLEtBQUssS0FBS1ksU0FBL0IsSUFBNENOLFVBQVUsQ0FBQ0MsQ0FBRCxDQUExRCxFQUErRDtBQUM3RCxlQUFPLElBQVA7QUFDRCxPQUZELE1BRU8sSUFBSVIsR0FBRyxLQUFLYSxTQUFSLElBQXFCWixLQUFLLEtBQUtZLFNBQS9CLElBQTRDSixZQUFZLENBQUNDLENBQUQsQ0FBNUQsRUFBaUU7QUFDdEUsZUFBTyxJQUFQO0FBQ0QsT0FGTSxNQUVBLElBQUlWLEdBQUcsS0FBS2EsU0FBUixJQUFxQlosS0FBSyxLQUFLWSxTQUEvQixJQUE0Q04sVUFBVSxDQUFDQyxDQUFELENBQXRELElBQTZEQyxZQUFZLENBQUNDLENBQUQsQ0FBN0UsRUFBa0Y7QUFDdkYsZUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsVUFBSSxDQUFDLGlCQUFELEVBQW9CLGdCQUFwQixFQUFzQ0ksUUFBdEMsQ0FBK0NILE1BQU0sQ0FBQ0ksU0FBUCxDQUFpQkMsUUFBakIsQ0FBMEJDLElBQTFCLENBQStCUCxDQUEvQixDQUEvQyxDQUFKLEVBQXVGO0FBQ3JGLGVBQU9iLEtBQUssQ0FBQ0Msc0JBQU4sQ0FBNkJZLENBQTdCLEVBQWdDVixHQUFoQyxFQUFxQ0MsS0FBckMsQ0FBUDtBQUNEO0FBQ0Y7O0FBQ0QsV0FBTyxLQUFQO0FBQ0Q7O0FBekJTOztBQTRCWmlCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQnRCLEtBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB1dGlscy5qc1xuICogQGZpbGUgR2VuZXJhbCBwdXJwb3NlIHV0aWxpdGllc1xuICogQGRlc2NyaXB0aW9uIEdlbmVyYWwgcHVycG9zZSB1dGlsaXRpZXMuXG4gKi9cblxuLyoqXG4gKiBUaGUgZ2VuZXJhbCBwdXJwb3NlIHV0aWxpdGllcy5cbiAqL1xuY2xhc3MgVXRpbHMge1xuICAvKipcbiAgICogRGVlcC1zY2FucyBhbiBvYmplY3QgZm9yIGEgbWF0Y2hpbmcga2V5L3ZhbHVlIGRlZmluaXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byBzY2FuLlxuICAgKiBAcGFyYW0ge1N0cmluZyB8IHVuZGVmaW5lZH0ga2V5IFRoZSBrZXkgdG8gbWF0Y2gsIG9yIHVuZGVmaW5lZCBpZiBvbmx5IHRoZSB2YWx1ZSBzaG91bGQgYmUgbWF0Y2hlZC5cbiAgICogQHBhcmFtIHthbnkgfCB1bmRlZmluZWR9IHZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaCwgb3IgdW5kZWZpbmVkIGlmIG9ubHkgdGhlIGtleSBzaG91bGQgYmUgbWF0Y2hlZC5cbiAgICogQHJldHVybnMge0Jvb2xlYW59IFRydWUgaWYgYSBtYXRjaCB3YXMgZm91bmQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHN0YXRpYyBvYmplY3RDb250YWluc0tleVZhbHVlKG9iaiwga2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IGlzTWF0Y2ggPSAoYSwgYikgPT4gKHR5cGVvZiBhID09PSAnc3RyaW5nJyAmJiBuZXcgUmVnRXhwKGEpLnRlc3QoYikpIHx8IGEgPT09IGI7XG4gICAgY29uc3QgaXNLZXlNYXRjaCA9IGsgPT4gaXNNYXRjaChrZXksIGspO1xuICAgIGNvbnN0IGlzVmFsdWVNYXRjaCA9IHYgPT4gaXNNYXRjaCh2YWx1ZSwgdik7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQgJiYgaXNLZXlNYXRjaChrKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpc1ZhbHVlTWF0Y2godikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGtleSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgaXNLZXlNYXRjaChrKSAmJiBpc1ZhbHVlTWF0Y2godikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoWydbb2JqZWN0IE9iamVjdF0nLCAnW29iamVjdCBBcnJheV0nXS5pbmNsdWRlcyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodikpKSB7XG4gICAgICAgIHJldHVybiBVdGlscy5vYmplY3RDb250YWluc0tleVZhbHVlKHYsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBVdGlscztcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parse-server",
3
- "version": "4.10.6",
3
+ "version": "4.10.7",
4
4
  "description": "An express module providing a Parse-compatible API server",
5
5
  "main": "lib/index.js",
6
6
  "repository": {