@payloadcms/db-mongodb 1.5.0 → 1.5.2

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.
@@ -0,0 +1,3 @@
1
+ import type { Count } from 'payload/database';
2
+ export declare const count: Count;
3
+ //# sourceMappingURL=count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../src/count.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAS7C,eAAO,MAAM,KAAK,EAAE,KAsCnB,CAAA"}
package/dist/count.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "count", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return count;
9
+ }
10
+ });
11
+ const _database = require("payload/database");
12
+ const _withSession = require("./withSession");
13
+ const count = async function count({ collection, locale, req = {}, where }) {
14
+ const Model = this.collections[collection];
15
+ const options = (0, _withSession.withSession)(this, req.transactionID);
16
+ let hasNearConstraint = false;
17
+ if (where) {
18
+ const constraints = (0, _database.flattenWhereToOperators)(where);
19
+ hasNearConstraint = constraints.some((prop)=>Object.keys(prop).some((key)=>key === 'near'));
20
+ }
21
+ const query = await Model.buildQuery({
22
+ locale,
23
+ payload: this.payload,
24
+ where
25
+ });
26
+ // useEstimatedCount is faster, but not accurate, as it ignores any filters. It is thus set to true if there are no filters.
27
+ const useEstimatedCount = hasNearConstraint || !query || Object.keys(query).length === 0;
28
+ if (!useEstimatedCount && Object.keys(query).length === 0 && this.disableIndexHints !== true) {
29
+ // Improve the performance of the countDocuments query which is used if useEstimatedCount is set to false by adding
30
+ // a hint. By default, if no hint is provided, MongoDB does not use an indexed field to count the returned documents,
31
+ // which makes queries very slow. This only happens when no query (filter) is provided. If one is provided, it uses
32
+ // the correct indexed field
33
+ options.hint = {
34
+ _id: 1
35
+ };
36
+ }
37
+ const result = await Model.countDocuments(query, options);
38
+ return {
39
+ totalDocs: result
40
+ };
41
+ };
42
+
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3VudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFF1ZXJ5T3B0aW9ucyB9IGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHR5cGUgeyBDb3VudCB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuXG5pbXBvcnQgdHlwZSB7IE1vbmdvb3NlQWRhcHRlciB9IGZyb20gJy4nXG5cbmltcG9ydCB7IHdpdGhTZXNzaW9uIH0gZnJvbSAnLi93aXRoU2Vzc2lvbidcblxuZXhwb3J0IGNvbnN0IGNvdW50OiBDb3VudCA9IGFzeW5jIGZ1bmN0aW9uIGNvdW50KFxuICB0aGlzOiBNb25nb29zZUFkYXB0ZXIsXG4gIHsgY29sbGVjdGlvbiwgbG9jYWxlLCByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdCwgd2hlcmUgfSxcbikge1xuICBjb25zdCBNb2RlbCA9IHRoaXMuY29sbGVjdGlvbnNbY29sbGVjdGlvbl1cbiAgY29uc3Qgb3B0aW9uczogUXVlcnlPcHRpb25zID0gd2l0aFNlc3Npb24odGhpcywgcmVxLnRyYW5zYWN0aW9uSUQpXG5cbiAgbGV0IGhhc05lYXJDb25zdHJhaW50ID0gZmFsc2VcblxuICBpZiAod2hlcmUpIHtcbiAgICBjb25zdCBjb25zdHJhaW50cyA9IGZsYXR0ZW5XaGVyZVRvT3BlcmF0b3JzKHdoZXJlKVxuICAgIGhhc05lYXJDb25zdHJhaW50ID0gY29uc3RyYWludHMuc29tZSgocHJvcCkgPT4gT2JqZWN0LmtleXMocHJvcCkuc29tZSgoa2V5KSA9PiBrZXkgPT09ICduZWFyJykpXG4gIH1cblxuICBjb25zdCBxdWVyeSA9IGF3YWl0IE1vZGVsLmJ1aWxkUXVlcnkoe1xuICAgIGxvY2FsZSxcbiAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQsXG4gICAgd2hlcmUsXG4gIH0pXG5cbiAgLy8gdXNlRXN0aW1hdGVkQ291bnQgaXMgZmFzdGVyLCBidXQgbm90IGFjY3VyYXRlLCBhcyBpdCBpZ25vcmVzIGFueSBmaWx0ZXJzLiBJdCBpcyB0aHVzIHNldCB0byB0cnVlIGlmIHRoZXJlIGFyZSBubyBmaWx0ZXJzLlxuICBjb25zdCB1c2VFc3RpbWF0ZWRDb3VudCA9IGhhc05lYXJDb25zdHJhaW50IHx8ICFxdWVyeSB8fCBPYmplY3Qua2V5cyhxdWVyeSkubGVuZ3RoID09PSAwXG5cbiAgaWYgKCF1c2VFc3RpbWF0ZWRDb3VudCAmJiBPYmplY3Qua2V5cyhxdWVyeSkubGVuZ3RoID09PSAwICYmIHRoaXMuZGlzYWJsZUluZGV4SGludHMgIT09IHRydWUpIHtcbiAgICAvLyBJbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgY291bnREb2N1bWVudHMgcXVlcnkgd2hpY2ggaXMgdXNlZCBpZiB1c2VFc3RpbWF0ZWRDb3VudCBpcyBzZXQgdG8gZmFsc2UgYnkgYWRkaW5nXG4gICAgLy8gYSBoaW50LiBCeSBkZWZhdWx0LCBpZiBubyBoaW50IGlzIHByb3ZpZGVkLCBNb25nb0RCIGRvZXMgbm90IHVzZSBhbiBpbmRleGVkIGZpZWxkIHRvIGNvdW50IHRoZSByZXR1cm5lZCBkb2N1bWVudHMsXG4gICAgLy8gd2hpY2ggbWFrZXMgcXVlcmllcyB2ZXJ5IHNsb3cuIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gbm8gcXVlcnkgKGZpbHRlcikgaXMgcHJvdmlkZWQuIElmIG9uZSBpcyBwcm92aWRlZCwgaXQgdXNlc1xuICAgIC8vIHRoZSBjb3JyZWN0IGluZGV4ZWQgZmllbGRcbiAgICBvcHRpb25zLmhpbnQgPSB7XG4gICAgICBfaWQ6IDEsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgTW9kZWwuY291bnREb2N1bWVudHMocXVlcnksIG9wdGlvbnMpXG5cbiAgcmV0dXJuIHtcbiAgICB0b3RhbERvY3M6IHJlc3VsdCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNvdW50IiwiY29sbGVjdGlvbiIsImxvY2FsZSIsInJlcSIsIndoZXJlIiwiTW9kZWwiLCJjb2xsZWN0aW9ucyIsIm9wdGlvbnMiLCJ3aXRoU2Vzc2lvbiIsInRyYW5zYWN0aW9uSUQiLCJoYXNOZWFyQ29uc3RyYWludCIsImNvbnN0cmFpbnRzIiwiZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMiLCJzb21lIiwicHJvcCIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJxdWVyeSIsImJ1aWxkUXVlcnkiLCJwYXlsb2FkIiwidXNlRXN0aW1hdGVkQ291bnQiLCJsZW5ndGgiLCJkaXNhYmxlSW5kZXhIaW50cyIsImhpbnQiLCJfaWQiLCJyZXN1bHQiLCJjb3VudERvY3VtZW50cyIsInRvdGFsRG9jcyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQVVhQTs7O2VBQUFBOzs7MEJBTjJCOzZCQUlaO0FBRXJCLE1BQU1BLFFBQWUsZUFBZUEsTUFFekMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUVDLE1BQU0sQ0FBQyxDQUFtQixFQUFFQyxLQUFLLEVBQUU7SUFFekQsTUFBTUMsUUFBUSxJQUFJLENBQUNDLFdBQVcsQ0FBQ0wsV0FBVztJQUMxQyxNQUFNTSxVQUF3QkMsSUFBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUVMLElBQUlNLGFBQWE7SUFFakUsSUFBSUMsb0JBQW9CO0lBRXhCLElBQUlOLE9BQU87UUFDVCxNQUFNTyxjQUFjQyxJQUFBQSxpQ0FBdUIsRUFBQ1I7UUFDNUNNLG9CQUFvQkMsWUFBWUUsSUFBSSxDQUFDLENBQUNDLE9BQVNDLE9BQU9DLElBQUksQ0FBQ0YsTUFBTUQsSUFBSSxDQUFDLENBQUNJLE1BQVFBLFFBQVE7SUFDekY7SUFFQSxNQUFNQyxRQUFRLE1BQU1iLE1BQU1jLFVBQVUsQ0FBQztRQUNuQ2pCO1FBQ0FrQixTQUFTLElBQUksQ0FBQ0EsT0FBTztRQUNyQmhCO0lBQ0Y7SUFFQSw0SEFBNEg7SUFDNUgsTUFBTWlCLG9CQUFvQlgscUJBQXFCLENBQUNRLFNBQVNILE9BQU9DLElBQUksQ0FBQ0UsT0FBT0ksTUFBTSxLQUFLO0lBRXZGLElBQUksQ0FBQ0QscUJBQXFCTixPQUFPQyxJQUFJLENBQUNFLE9BQU9JLE1BQU0sS0FBSyxLQUFLLElBQUksQ0FBQ0MsaUJBQWlCLEtBQUssTUFBTTtRQUM1RixtSEFBbUg7UUFDbkgscUhBQXFIO1FBQ3JILG1IQUFtSDtRQUNuSCw0QkFBNEI7UUFDNUJoQixRQUFRaUIsSUFBSSxHQUFHO1lBQ2JDLEtBQUs7UUFDUDtJQUNGO0lBRUEsTUFBTUMsU0FBUyxNQUFNckIsTUFBTXNCLGNBQWMsQ0FBQ1QsT0FBT1g7SUFFakQsT0FBTztRQUNMcUIsV0FBV0Y7SUFDYjtBQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAO3D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA4B3D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7D,MAAM,WAAW,IAAI;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,GAAG;QAChC,4FAA4F;QAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,gOAAgO;IAChO,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,KAAK,CAAA;IAC/C,qFAAqF;IACrF,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,IAAI,GAAG;IACL,WAAW,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;IAChD,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;CACF,CAAA;AAEH,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,eAAe,CAAA;AAE5E,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,eACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAC3C,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QAC5B,WAAW,EAAE;YACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;QACD,UAAU,EAAE,UAAU,CAAA;QACtB,OAAO,EAAE,WAAW,CAAA;QACpB,iBAAiB,EAAE,GAAG,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;QAChD,kBAAkB,EAAE,kBAAkB,CAAA;QACtC,QAAQ,EAAE;YACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;KACF;CACF;AAED,wBAAgB,eAAe,CAAC,EAC9B,iBAAwB,EACxB,cAAc,EACd,iBAAyB,EACzB,YAAY,EAAE,eAAe,EAC7B,kBAAuB,EACvB,GAAG,GACJ,EAAE,IAAI,GAAG,qBAAqB,CAsD9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAO3D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA6B3D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7D,MAAM,WAAW,IAAI;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,GAAG;QAChC,4FAA4F;QAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,gOAAgO;IAChO,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,KAAK,CAAA;IAC/C,qFAAqF;IACrF,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,IAAI,GAAG;IACL,WAAW,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;IAChD,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;CACF,CAAA;AAEH,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,eAAe,CAAA;AAE5E,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,eACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAC3C,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QAC5B,WAAW,EAAE;YACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;QACD,UAAU,EAAE,UAAU,CAAA;QACtB,OAAO,EAAE,WAAW,CAAA;QACpB,iBAAiB,EAAE,GAAG,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;QAChD,kBAAkB,EAAE,kBAAkB,CAAA;QACtC,QAAQ,EAAE;YACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;KACF;CACF;AAED,wBAAgB,eAAe,CAAC,EAC9B,iBAAwB,EACxB,cAAc,EACd,iBAAyB,EACzB,YAAY,EAAE,eAAe,EAC7B,kBAAuB,EACvB,GAAG,GACJ,EAAE,IAAI,GAAG,qBAAqB,CAsD9B"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
13
13
  const _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
14
  const _database = require("payload/database");
15
15
  const _connect = require("./connect");
16
+ const _count = require("./count");
16
17
  const _create = require("./create");
17
18
  const _createGlobal = require("./createGlobal");
18
19
  const _createGlobalVersion = require("./createGlobalVersion");
@@ -53,6 +54,7 @@ function mongooseAdapter({ autoPluralization = true, connectOptions, disableInde
53
54
  collections: {},
54
55
  connectOptions: connectOptions || {},
55
56
  connection: undefined,
57
+ count: _count.count,
56
58
  disableIndexHints,
57
59
  globals: undefined,
58
60
  mongoMemoryServer: undefined,
@@ -126,4 +128,4 @@ function mongooseAdapter({ autoPluralization = true, connectOptions, disableInde
126
128
  return srcDir;
127
129
  }
128
130
 
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ21vbmdvZGInXG5pbXBvcnQgdHlwZSB7IENsaWVudFNlc3Npb24sIENvbm5lY3RPcHRpb25zLCBDb25uZWN0aW9uIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IGNyZWF0ZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbk1vZGVsLCBHbG9iYWxNb2RlbCB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICcuL2Nvbm5lY3QnXG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICcuL2NyZWF0ZSdcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbCB9IGZyb20gJy4vY3JlYXRlR2xvYmFsJ1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsVmVyc2lvbiB9IGZyb20gJy4vY3JlYXRlR2xvYmFsVmVyc2lvbidcbmltcG9ydCB7IGNyZWF0ZU1pZ3JhdGlvbiB9IGZyb20gJy4vY3JlYXRlTWlncmF0aW9uJ1xuaW1wb3J0IHsgY3JlYXRlVmVyc2lvbiB9IGZyb20gJy4vY3JlYXRlVmVyc2lvbidcbmltcG9ydCB7IGRlbGV0ZU1hbnkgfSBmcm9tICcuL2RlbGV0ZU1hbnknXG5pbXBvcnQgeyBkZWxldGVPbmUgfSBmcm9tICcuL2RlbGV0ZU9uZSdcbmltcG9ydCB7IGRlbGV0ZVZlcnNpb25zIH0gZnJvbSAnLi9kZWxldGVWZXJzaW9ucydcbmltcG9ydCB7IGRlc3Ryb3kgfSBmcm9tICcuL2Rlc3Ryb3knXG5pbXBvcnQgeyBmaW5kIH0gZnJvbSAnLi9maW5kJ1xuaW1wb3J0IHsgZmluZEdsb2JhbCB9IGZyb20gJy4vZmluZEdsb2JhbCdcbmltcG9ydCB7IGZpbmRHbG9iYWxWZXJzaW9ucyB9IGZyb20gJy4vZmluZEdsb2JhbFZlcnNpb25zJ1xuaW1wb3J0IHsgZmluZE9uZSB9IGZyb20gJy4vZmluZE9uZSdcbmltcG9ydCB7IGZpbmRWZXJzaW9ucyB9IGZyb20gJy4vZmluZFZlcnNpb25zJ1xuaW1wb3J0IHsgaW5pdCB9IGZyb20gJy4vaW5pdCdcbmltcG9ydCB7IG1pZ3JhdGVGcmVzaCB9IGZyb20gJy4vbWlncmF0ZUZyZXNoJ1xuaW1wb3J0IHsgcXVlcnlEcmFmdHMgfSBmcm9tICcuL3F1ZXJ5RHJhZnRzJ1xuaW1wb3J0IHsgYmVnaW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL2JlZ2luVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgcm9sbGJhY2tUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL3JvbGxiYWNrVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyB1cGRhdGVHbG9iYWwgfSBmcm9tICcuL3VwZGF0ZUdsb2JhbCdcbmltcG9ydCB7IHVwZGF0ZUdsb2JhbFZlcnNpb24gfSBmcm9tICcuL3VwZGF0ZUdsb2JhbFZlcnNpb24nXG5pbXBvcnQgeyB1cGRhdGVPbmUgfSBmcm9tICcuL3VwZGF0ZU9uZSdcbmltcG9ydCB7IHVwZGF0ZVZlcnNpb24gfSBmcm9tICcuL3VwZGF0ZVZlcnNpb24nXG5cbmV4cG9ydCB0eXBlIHsgTWlncmF0ZURvd25BcmdzLCBNaWdyYXRlVXBBcmdzIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGludGVyZmFjZSBBcmdzIHtcbiAgLyoqIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIGF1dG8tcGx1cmFsaXphdGlvbiBvZiBjb2xsZWN0aW9uIG5hbWVzLCBEZWZhdWx0cyB0byB0cnVlICovXG4gIGF1dG9QbHVyYWxpemF0aW9uPzogYm9vbGVhblxuICAvKiogRXh0cmEgY29uZmlndXJhdGlvbiBvcHRpb25zICovXG4gIGNvbm5lY3RPcHRpb25zPzogQ29ubmVjdE9wdGlvbnMgJiB7XG4gICAgLyoqIFNldCBmYWxzZSB0byBkaXNhYmxlICRmYWNldCBhZ2dyZWdhdGlvbiBpbiBub24tc3VwcG9ydGluZyBkYXRhYmFzZXMsIERlZmF1bHRzIHRvIHRydWUgKi9cbiAgICB1c2VGYWNldD86IGJvb2xlYW5cbiAgfVxuICAvKiogU2V0IHRvIHRydWUgdG8gZGlzYWJsZSBoaW50aW5nIHRvIE1vbmdvREIgdG8gdXNlICdpZCcgYXMgaW5kZXguIFRoaXMgaXMgY3VycmVudGx5IGRvbmUgd2hlbiBjb3VudGluZyBkb2N1bWVudHMgZm9yIHBhZ2luYXRpb24uIERpc2FibGluZyB0aGlzIG9wdGltaXphdGlvbiBtaWdodCBmaXggc29tZSBwcm9ibGVtcyB3aXRoIEFXUyBEb2N1bWVudERCLiBEZWZhdWx0cyB0byBmYWxzZSAqL1xuICBkaXNhYmxlSW5kZXhIaW50cz86IGJvb2xlYW5cbiAgbWlncmF0aW9uRGlyPzogc3RyaW5nXG4gIHRyYW5zYWN0aW9uT3B0aW9ucz86IFRyYW5zYWN0aW9uT3B0aW9ucyB8IGZhbHNlXG4gIC8qKiBUaGUgVVJMIHRvIGNvbm5lY3QgdG8gTW9uZ29EQiBvciBmYWxzZSB0byBzdGFydCBwYXlsb2FkIGFuZCBwcmV2ZW50IGNvbm5lY3RpbmcgKi9cbiAgdXJsOiBmYWxzZSB8IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBNb25nb29zZUFkYXB0ZXIgPSBCYXNlRGF0YWJhc2VBZGFwdGVyICZcbiAgQXJncyAmIHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gIH1cblxudHlwZSBNb25nb29zZUFkYXB0ZXJSZXN1bHQgPSAoYXJnczogeyBwYXlsb2FkOiBQYXlsb2FkIH0pID0+IE1vbmdvb3NlQWRhcHRlclxuXG5kZWNsYXJlIG1vZHVsZSAncGF5bG9hZCcge1xuICBleHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQWRhcHRlclxuICAgIGV4dGVuZHMgT21pdDxCYXNlRGF0YWJhc2VBZGFwdGVyLCAnc2Vzc2lvbnMnPixcbiAgICAgIE9taXQ8QXJncywgJ21pZ3JhdGlvbkRpcic+IHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdHJhbnNhY3Rpb25PcHRpb25zOiBUcmFuc2FjdGlvbk9wdGlvbnNcbiAgICB2ZXJzaW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9uZ29vc2VBZGFwdGVyKHtcbiAgYXV0b1BsdXJhbGl6YXRpb24gPSB0cnVlLFxuICBjb25uZWN0T3B0aW9ucyxcbiAgZGlzYWJsZUluZGV4SGludHMgPSBmYWxzZSxcbiAgbWlncmF0aW9uRGlyOiBtaWdyYXRpb25EaXJBcmcsXG4gIHRyYW5zYWN0aW9uT3B0aW9ucyA9IHt9LFxuICB1cmwsXG59OiBBcmdzKTogTW9uZ29vc2VBZGFwdGVyUmVzdWx0IHtcbiAgZnVuY3Rpb24gYWRhcHRlcih7IHBheWxvYWQgfTogeyBwYXlsb2FkOiBQYXlsb2FkIH0pIHtcbiAgICBjb25zdCBtaWdyYXRpb25EaXIgPSBmaW5kTWlncmF0aW9uRGlyKG1pZ3JhdGlvbkRpckFyZylcbiAgICBtb25nb29zZS5zZXQoJ3N0cmljdFF1ZXJ5JywgZmFsc2UpXG5cbiAgICByZXR1cm4gY3JlYXRlRGF0YWJhc2VBZGFwdGVyPE1vbmdvb3NlQWRhcHRlcj4oe1xuICAgICAgbmFtZTogJ21vbmdvb3NlJyxcblxuICAgICAgLy8gTW9uZ29vc2Utc3BlY2lmaWNcbiAgICAgIGF1dG9QbHVyYWxpemF0aW9uLFxuICAgICAgY29sbGVjdGlvbnM6IHt9LFxuICAgICAgY29ubmVjdE9wdGlvbnM6IGNvbm5lY3RPcHRpb25zIHx8IHt9LFxuICAgICAgY29ubmVjdGlvbjogdW5kZWZpbmVkLFxuICAgICAgZGlzYWJsZUluZGV4SGludHMsXG4gICAgICBnbG9iYWxzOiB1bmRlZmluZWQsXG4gICAgICBtb25nb01lbW9yeVNlcnZlcjogdW5kZWZpbmVkLFxuICAgICAgc2Vzc2lvbnM6IHt9LFxuICAgICAgdHJhbnNhY3Rpb25PcHRpb25zOiB0cmFuc2FjdGlvbk9wdGlvbnMgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogdHJhbnNhY3Rpb25PcHRpb25zLFxuICAgICAgdXJsLFxuICAgICAgdmVyc2lvbnM6IHt9LFxuXG4gICAgICAvLyBEYXRhYmFzZUFkYXB0ZXJcbiAgICAgIGJlZ2luVHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uT3B0aW9ucyA/IGJlZ2luVHJhbnNhY3Rpb24gOiB1bmRlZmluZWQsXG4gICAgICBjb21taXRUcmFuc2FjdGlvbixcbiAgICAgIGNvbm5lY3QsXG4gICAgICBjcmVhdGUsXG4gICAgICBjcmVhdGVHbG9iYWwsXG4gICAgICBjcmVhdGVHbG9iYWxWZXJzaW9uLFxuICAgICAgY3JlYXRlTWlncmF0aW9uLFxuICAgICAgY3JlYXRlVmVyc2lvbixcbiAgICAgIGRlZmF1bHRJRFR5cGU6ICd0ZXh0JyxcbiAgICAgIGRlbGV0ZU1hbnksXG4gICAgICBkZWxldGVPbmUsXG4gICAgICBkZWxldGVWZXJzaW9ucyxcbiAgICAgIGRlc3Ryb3ksXG4gICAgICBmaW5kLFxuICAgICAgZmluZEdsb2JhbCxcbiAgICAgIGZpbmRHbG9iYWxWZXJzaW9ucyxcbiAgICAgIGZpbmRPbmUsXG4gICAgICBmaW5kVmVyc2lvbnMsXG4gICAgICBpbml0LFxuICAgICAgbWlncmF0ZUZyZXNoLFxuICAgICAgbWlncmF0aW9uRGlyLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHF1ZXJ5RHJhZnRzLFxuICAgICAgcm9sbGJhY2tUcmFuc2FjdGlvbixcbiAgICAgIHVwZGF0ZUdsb2JhbCxcbiAgICAgIHVwZGF0ZUdsb2JhbFZlcnNpb24sXG4gICAgICB1cGRhdGVPbmUsXG4gICAgICB1cGRhdGVWZXJzaW9uLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gYWRhcHRlclxufVxuXG4vKipcbiAqIEF0dGVtcHQgdG8gZmluZCBtaWdyYXRpb25zIGRpcmVjdG9yeS5cbiAqXG4gKiBDaGVja3MgZm9yIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3JpZXMgaW4gb3JkZXI6XG4gKiAtIGBtaWdyYXRpb25EaXJgIGFyZ3VtZW50IGZyb20gUGF5bG9hZCBjb25maWdcbiAqIC0gYHNyYy9taWdyYXRpb25zYFxuICogLSBgZGlzdC9taWdyYXRpb25zYFxuICogLSBgbWlncmF0aW9uc2BcbiAqXG4gKiBEZWZhdWx0cyB0byBgc3JjL21pZ3JhdGlvbnNgXG4gKlxuICogQHBhcmFtIG1pZ3JhdGlvbkRpclxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gZmluZE1pZ3JhdGlvbkRpcihtaWdyYXRpb25EaXI/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIGNvbnN0IHNyY0RpciA9IHBhdGgucmVzb2x2ZShjd2QsICdzcmMvbWlncmF0aW9ucycpXG4gIGNvbnN0IGRpc3REaXIgPSBwYXRoLnJlc29sdmUoY3dkLCAnZGlzdC9taWdyYXRpb25zJylcbiAgY29uc3QgcmVsYXRpdmVNaWdyYXRpb25zID0gcGF0aC5yZXNvbHZlKGN3ZCwgJ21pZ3JhdGlvbnMnKVxuXG4gIC8vIFVzZSBhcmcgaWYgcHJvdmlkZWRcbiAgaWYgKG1pZ3JhdGlvbkRpcikgcmV0dXJuIG1pZ3JhdGlvbkRpclxuXG4gIC8vIENoZWNrIG90aGVyIGNvbW1vbiBsb2NhdGlvbnNcbiAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjRGlyKSkge1xuICAgIHJldHVybiBzcmNEaXJcbiAgfVxuXG4gIGlmIChmcy5leGlzdHNTeW5jKGRpc3REaXIpKSB7XG4gICAgcmV0dXJuIGRpc3REaXJcbiAgfVxuXG4gIGlmIChmcy5leGlzdHNTeW5jKHJlbGF0aXZlTWlncmF0aW9ucykpIHtcbiAgICByZXR1cm4gcmVsYXRpdmVNaWdyYXRpb25zXG4gIH1cblxuICByZXR1cm4gc3JjRGlyXG59XG4iXSwibmFtZXMiOlsibW9uZ29vc2VBZGFwdGVyIiwiYXV0b1BsdXJhbGl6YXRpb24iLCJjb25uZWN0T3B0aW9ucyIsImRpc2FibGVJbmRleEhpbnRzIiwibWlncmF0aW9uRGlyIiwibWlncmF0aW9uRGlyQXJnIiwidHJhbnNhY3Rpb25PcHRpb25zIiwidXJsIiwiYWRhcHRlciIsInBheWxvYWQiLCJmaW5kTWlncmF0aW9uRGlyIiwibW9uZ29vc2UiLCJzZXQiLCJjcmVhdGVEYXRhYmFzZUFkYXB0ZXIiLCJuYW1lIiwiY29sbGVjdGlvbnMiLCJjb25uZWN0aW9uIiwidW5kZWZpbmVkIiwiZ2xvYmFscyIsIm1vbmdvTWVtb3J5U2VydmVyIiwic2Vzc2lvbnMiLCJ2ZXJzaW9ucyIsImJlZ2luVHJhbnNhY3Rpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImNvbm5lY3QiLCJjcmVhdGUiLCJjcmVhdGVHbG9iYWwiLCJjcmVhdGVHbG9iYWxWZXJzaW9uIiwiY3JlYXRlTWlncmF0aW9uIiwiY3JlYXRlVmVyc2lvbiIsImRlZmF1bHRJRFR5cGUiLCJkZWxldGVNYW55IiwiZGVsZXRlT25lIiwiZGVsZXRlVmVyc2lvbnMiLCJkZXN0cm95IiwiZmluZCIsImZpbmRHbG9iYWwiLCJmaW5kR2xvYmFsVmVyc2lvbnMiLCJmaW5kT25lIiwiZmluZFZlcnNpb25zIiwiaW5pdCIsIm1pZ3JhdGVGcmVzaCIsInF1ZXJ5RHJhZnRzIiwicm9sbGJhY2tUcmFuc2FjdGlvbiIsInVwZGF0ZUdsb2JhbCIsInVwZGF0ZUdsb2JhbFZlcnNpb24iLCJ1cGRhdGVPbmUiLCJ1cGRhdGVWZXJzaW9uIiwiY3dkIiwicHJvY2VzcyIsInNyY0RpciIsInBhdGgiLCJyZXNvbHZlIiwiZGlzdERpciIsInJlbGF0aXZlTWlncmF0aW9ucyIsImZzIiwiZXhpc3RzU3luYyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBMEZnQkE7OztlQUFBQTs7OzJEQXJGRDtpRUFDTTs2REFDSjswQkFDcUI7eUJBSWQ7d0JBQ0Q7OEJBQ007cUNBQ087aUNBQ0o7K0JBQ0Y7NEJBQ0g7MkJBQ0Q7Z0NBQ0s7eUJBQ1A7c0JBQ0g7NEJBQ007b0NBQ1E7eUJBQ1g7OEJBQ0s7c0JBQ1I7OEJBQ1E7NkJBQ0Q7a0NBQ0s7bUNBQ0M7cUNBQ0U7OEJBQ1A7cUNBQ087MkJBQ1Y7K0JBQ0k7Ozs7OztBQXNEdkIsU0FBU0EsZ0JBQWdCLEVBQzlCQyxvQkFBb0IsSUFBSSxFQUN4QkMsY0FBYyxFQUNkQyxvQkFBb0IsS0FBSyxFQUN6QkMsY0FBY0MsZUFBZSxFQUM3QkMscUJBQXFCLENBQUMsQ0FBQyxFQUN2QkMsR0FBRyxFQUNFO0lBQ0wsU0FBU0MsUUFBUSxFQUFFQyxPQUFPLEVBQXdCO1FBQ2hELE1BQU1MLGVBQWVNLGlCQUFpQkw7UUFDdENNLGlCQUFRLENBQUNDLEdBQUcsQ0FBQyxlQUFlO1FBRTVCLE9BQU9DLElBQUFBLCtCQUFxQixFQUFrQjtZQUM1Q0MsTUFBTTtZQUVOLG9CQUFvQjtZQUNwQmI7WUFDQWMsYUFBYSxDQUFDO1lBQ2RiLGdCQUFnQkEsa0JBQWtCLENBQUM7WUFDbkNjLFlBQVlDO1lBQ1pkO1lBQ0FlLFNBQVNEO1lBQ1RFLG1CQUFtQkY7WUFDbkJHLFVBQVUsQ0FBQztZQUNYZCxvQkFBb0JBLHVCQUF1QixRQUFRVyxZQUFZWDtZQUMvREM7WUFDQWMsVUFBVSxDQUFDO1lBRVgsa0JBQWtCO1lBQ2xCQyxrQkFBa0JoQixxQkFBcUJnQixrQ0FBZ0IsR0FBR0w7WUFDMURNLG1CQUFBQSxvQ0FBaUI7WUFDakJDLFNBQUFBLGdCQUFPO1lBQ1BDLFFBQUFBLGNBQU07WUFDTkMsY0FBQUEsMEJBQVk7WUFDWkMscUJBQUFBLHdDQUFtQjtZQUNuQkMsaUJBQUFBLGdDQUFlO1lBQ2ZDLGVBQUFBLDRCQUFhO1lBQ2JDLGVBQWU7WUFDZkMsWUFBQUEsc0JBQVU7WUFDVkMsV0FBQUEsb0JBQVM7WUFDVEMsZ0JBQUFBLDhCQUFjO1lBQ2RDLFNBQUFBLGdCQUFPO1lBQ1BDLE1BQUFBLFVBQUk7WUFDSkMsWUFBQUEsc0JBQVU7WUFDVkMsb0JBQUFBLHNDQUFrQjtZQUNsQkMsU0FBQUEsZ0JBQU87WUFDUEMsY0FBQUEsMEJBQVk7WUFDWkMsTUFBQUEsVUFBSTtZQUNKQyxjQUFBQSwwQkFBWTtZQUNackM7WUFDQUs7WUFDQWlDLGFBQUFBLHdCQUFXO1lBQ1hDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLGNBQUFBLDBCQUFZO1lBQ1pDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLFdBQUFBLG9CQUFTO1lBQ1RDLGVBQUFBLDRCQUFhO1FBQ2Y7SUFDRjtJQUVBLE9BQU92QztBQUNUO0FBRUE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNELFNBQVNFLGlCQUFpQk4sWUFBcUI7SUFDN0MsTUFBTTRDLE1BQU1DLFFBQVFELEdBQUc7SUFDdkIsTUFBTUUsU0FBU0MsYUFBSSxDQUFDQyxPQUFPLENBQUNKLEtBQUs7SUFDakMsTUFBTUssVUFBVUYsYUFBSSxDQUFDQyxPQUFPLENBQUNKLEtBQUs7SUFDbEMsTUFBTU0scUJBQXFCSCxhQUFJLENBQUNDLE9BQU8sQ0FBQ0osS0FBSztJQUU3QyxzQkFBc0I7SUFDdEIsSUFBSTVDLGNBQWMsT0FBT0E7SUFFekIsK0JBQStCO0lBQy9CLElBQUltRCxXQUFFLENBQUNDLFVBQVUsQ0FBQ04sU0FBUztRQUN6QixPQUFPQTtJQUNUO0lBRUEsSUFBSUssV0FBRSxDQUFDQyxVQUFVLENBQUNILFVBQVU7UUFDMUIsT0FBT0E7SUFDVDtJQUVBLElBQUlFLFdBQUUsQ0FBQ0MsVUFBVSxDQUFDRixxQkFBcUI7UUFDckMsT0FBT0E7SUFDVDtJQUVBLE9BQU9KO0FBQ1QifQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ21vbmdvZGInXG5pbXBvcnQgdHlwZSB7IENsaWVudFNlc3Npb24sIENvbm5lY3RPcHRpb25zLCBDb25uZWN0aW9uIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IGNyZWF0ZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbk1vZGVsLCBHbG9iYWxNb2RlbCB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICcuL2Nvbm5lY3QnXG5pbXBvcnQgeyBjb3VudCB9IGZyb20gJy4vY291bnQnXG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICcuL2NyZWF0ZSdcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbCB9IGZyb20gJy4vY3JlYXRlR2xvYmFsJ1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsVmVyc2lvbiB9IGZyb20gJy4vY3JlYXRlR2xvYmFsVmVyc2lvbidcbmltcG9ydCB7IGNyZWF0ZU1pZ3JhdGlvbiB9IGZyb20gJy4vY3JlYXRlTWlncmF0aW9uJ1xuaW1wb3J0IHsgY3JlYXRlVmVyc2lvbiB9IGZyb20gJy4vY3JlYXRlVmVyc2lvbidcbmltcG9ydCB7IGRlbGV0ZU1hbnkgfSBmcm9tICcuL2RlbGV0ZU1hbnknXG5pbXBvcnQgeyBkZWxldGVPbmUgfSBmcm9tICcuL2RlbGV0ZU9uZSdcbmltcG9ydCB7IGRlbGV0ZVZlcnNpb25zIH0gZnJvbSAnLi9kZWxldGVWZXJzaW9ucydcbmltcG9ydCB7IGRlc3Ryb3kgfSBmcm9tICcuL2Rlc3Ryb3knXG5pbXBvcnQgeyBmaW5kIH0gZnJvbSAnLi9maW5kJ1xuaW1wb3J0IHsgZmluZEdsb2JhbCB9IGZyb20gJy4vZmluZEdsb2JhbCdcbmltcG9ydCB7IGZpbmRHbG9iYWxWZXJzaW9ucyB9IGZyb20gJy4vZmluZEdsb2JhbFZlcnNpb25zJ1xuaW1wb3J0IHsgZmluZE9uZSB9IGZyb20gJy4vZmluZE9uZSdcbmltcG9ydCB7IGZpbmRWZXJzaW9ucyB9IGZyb20gJy4vZmluZFZlcnNpb25zJ1xuaW1wb3J0IHsgaW5pdCB9IGZyb20gJy4vaW5pdCdcbmltcG9ydCB7IG1pZ3JhdGVGcmVzaCB9IGZyb20gJy4vbWlncmF0ZUZyZXNoJ1xuaW1wb3J0IHsgcXVlcnlEcmFmdHMgfSBmcm9tICcuL3F1ZXJ5RHJhZnRzJ1xuaW1wb3J0IHsgYmVnaW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL2JlZ2luVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgcm9sbGJhY2tUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL3JvbGxiYWNrVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyB1cGRhdGVHbG9iYWwgfSBmcm9tICcuL3VwZGF0ZUdsb2JhbCdcbmltcG9ydCB7IHVwZGF0ZUdsb2JhbFZlcnNpb24gfSBmcm9tICcuL3VwZGF0ZUdsb2JhbFZlcnNpb24nXG5pbXBvcnQgeyB1cGRhdGVPbmUgfSBmcm9tICcuL3VwZGF0ZU9uZSdcbmltcG9ydCB7IHVwZGF0ZVZlcnNpb24gfSBmcm9tICcuL3VwZGF0ZVZlcnNpb24nXG5cbmV4cG9ydCB0eXBlIHsgTWlncmF0ZURvd25BcmdzLCBNaWdyYXRlVXBBcmdzIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGludGVyZmFjZSBBcmdzIHtcbiAgLyoqIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIGF1dG8tcGx1cmFsaXphdGlvbiBvZiBjb2xsZWN0aW9uIG5hbWVzLCBEZWZhdWx0cyB0byB0cnVlICovXG4gIGF1dG9QbHVyYWxpemF0aW9uPzogYm9vbGVhblxuICAvKiogRXh0cmEgY29uZmlndXJhdGlvbiBvcHRpb25zICovXG4gIGNvbm5lY3RPcHRpb25zPzogQ29ubmVjdE9wdGlvbnMgJiB7XG4gICAgLyoqIFNldCBmYWxzZSB0byBkaXNhYmxlICRmYWNldCBhZ2dyZWdhdGlvbiBpbiBub24tc3VwcG9ydGluZyBkYXRhYmFzZXMsIERlZmF1bHRzIHRvIHRydWUgKi9cbiAgICB1c2VGYWNldD86IGJvb2xlYW5cbiAgfVxuICAvKiogU2V0IHRvIHRydWUgdG8gZGlzYWJsZSBoaW50aW5nIHRvIE1vbmdvREIgdG8gdXNlICdpZCcgYXMgaW5kZXguIFRoaXMgaXMgY3VycmVudGx5IGRvbmUgd2hlbiBjb3VudGluZyBkb2N1bWVudHMgZm9yIHBhZ2luYXRpb24uIERpc2FibGluZyB0aGlzIG9wdGltaXphdGlvbiBtaWdodCBmaXggc29tZSBwcm9ibGVtcyB3aXRoIEFXUyBEb2N1bWVudERCLiBEZWZhdWx0cyB0byBmYWxzZSAqL1xuICBkaXNhYmxlSW5kZXhIaW50cz86IGJvb2xlYW5cbiAgbWlncmF0aW9uRGlyPzogc3RyaW5nXG4gIHRyYW5zYWN0aW9uT3B0aW9ucz86IFRyYW5zYWN0aW9uT3B0aW9ucyB8IGZhbHNlXG4gIC8qKiBUaGUgVVJMIHRvIGNvbm5lY3QgdG8gTW9uZ29EQiBvciBmYWxzZSB0byBzdGFydCBwYXlsb2FkIGFuZCBwcmV2ZW50IGNvbm5lY3RpbmcgKi9cbiAgdXJsOiBmYWxzZSB8IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBNb25nb29zZUFkYXB0ZXIgPSBCYXNlRGF0YWJhc2VBZGFwdGVyICZcbiAgQXJncyAmIHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gIH1cblxudHlwZSBNb25nb29zZUFkYXB0ZXJSZXN1bHQgPSAoYXJnczogeyBwYXlsb2FkOiBQYXlsb2FkIH0pID0+IE1vbmdvb3NlQWRhcHRlclxuXG5kZWNsYXJlIG1vZHVsZSAncGF5bG9hZCcge1xuICBleHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQWRhcHRlclxuICAgIGV4dGVuZHMgT21pdDxCYXNlRGF0YWJhc2VBZGFwdGVyLCAnc2Vzc2lvbnMnPixcbiAgICAgIE9taXQ8QXJncywgJ21pZ3JhdGlvbkRpcic+IHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdHJhbnNhY3Rpb25PcHRpb25zOiBUcmFuc2FjdGlvbk9wdGlvbnNcbiAgICB2ZXJzaW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9uZ29vc2VBZGFwdGVyKHtcbiAgYXV0b1BsdXJhbGl6YXRpb24gPSB0cnVlLFxuICBjb25uZWN0T3B0aW9ucyxcbiAgZGlzYWJsZUluZGV4SGludHMgPSBmYWxzZSxcbiAgbWlncmF0aW9uRGlyOiBtaWdyYXRpb25EaXJBcmcsXG4gIHRyYW5zYWN0aW9uT3B0aW9ucyA9IHt9LFxuICB1cmwsXG59OiBBcmdzKTogTW9uZ29vc2VBZGFwdGVyUmVzdWx0IHtcbiAgZnVuY3Rpb24gYWRhcHRlcih7IHBheWxvYWQgfTogeyBwYXlsb2FkOiBQYXlsb2FkIH0pIHtcbiAgICBjb25zdCBtaWdyYXRpb25EaXIgPSBmaW5kTWlncmF0aW9uRGlyKG1pZ3JhdGlvbkRpckFyZylcbiAgICBtb25nb29zZS5zZXQoJ3N0cmljdFF1ZXJ5JywgZmFsc2UpXG5cbiAgICByZXR1cm4gY3JlYXRlRGF0YWJhc2VBZGFwdGVyPE1vbmdvb3NlQWRhcHRlcj4oe1xuICAgICAgbmFtZTogJ21vbmdvb3NlJyxcblxuICAgICAgLy8gTW9uZ29vc2Utc3BlY2lmaWNcbiAgICAgIGF1dG9QbHVyYWxpemF0aW9uLFxuICAgICAgY29sbGVjdGlvbnM6IHt9LFxuICAgICAgY29ubmVjdE9wdGlvbnM6IGNvbm5lY3RPcHRpb25zIHx8IHt9LFxuICAgICAgY29ubmVjdGlvbjogdW5kZWZpbmVkLFxuICAgICAgY291bnQsXG4gICAgICBkaXNhYmxlSW5kZXhIaW50cyxcbiAgICAgIGdsb2JhbHM6IHVuZGVmaW5lZCxcbiAgICAgIG1vbmdvTWVtb3J5U2VydmVyOiB1bmRlZmluZWQsXG4gICAgICBzZXNzaW9uczoge30sXG4gICAgICB0cmFuc2FjdGlvbk9wdGlvbnM6IHRyYW5zYWN0aW9uT3B0aW9ucyA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiB0cmFuc2FjdGlvbk9wdGlvbnMsXG4gICAgICB1cmwsXG4gICAgICB2ZXJzaW9uczoge30sXG4gICAgICAvLyBEYXRhYmFzZUFkYXB0ZXJcbiAgICAgIGJlZ2luVHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uT3B0aW9ucyA/IGJlZ2luVHJhbnNhY3Rpb24gOiB1bmRlZmluZWQsXG4gICAgICBjb21taXRUcmFuc2FjdGlvbixcbiAgICAgIGNvbm5lY3QsXG4gICAgICBjcmVhdGUsXG4gICAgICBjcmVhdGVHbG9iYWwsXG4gICAgICBjcmVhdGVHbG9iYWxWZXJzaW9uLFxuICAgICAgY3JlYXRlTWlncmF0aW9uLFxuICAgICAgY3JlYXRlVmVyc2lvbixcbiAgICAgIGRlZmF1bHRJRFR5cGU6ICd0ZXh0JyxcbiAgICAgIGRlbGV0ZU1hbnksXG4gICAgICBkZWxldGVPbmUsXG4gICAgICBkZWxldGVWZXJzaW9ucyxcbiAgICAgIGRlc3Ryb3ksXG4gICAgICBmaW5kLFxuICAgICAgZmluZEdsb2JhbCxcbiAgICAgIGZpbmRHbG9iYWxWZXJzaW9ucyxcbiAgICAgIGZpbmRPbmUsXG4gICAgICBmaW5kVmVyc2lvbnMsXG4gICAgICBpbml0LFxuICAgICAgbWlncmF0ZUZyZXNoLFxuICAgICAgbWlncmF0aW9uRGlyLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHF1ZXJ5RHJhZnRzLFxuICAgICAgcm9sbGJhY2tUcmFuc2FjdGlvbixcbiAgICAgIHVwZGF0ZUdsb2JhbCxcbiAgICAgIHVwZGF0ZUdsb2JhbFZlcnNpb24sXG4gICAgICB1cGRhdGVPbmUsXG4gICAgICB1cGRhdGVWZXJzaW9uLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gYWRhcHRlclxufVxuXG4vKipcbiAqIEF0dGVtcHQgdG8gZmluZCBtaWdyYXRpb25zIGRpcmVjdG9yeS5cbiAqXG4gKiBDaGVja3MgZm9yIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3JpZXMgaW4gb3JkZXI6XG4gKiAtIGBtaWdyYXRpb25EaXJgIGFyZ3VtZW50IGZyb20gUGF5bG9hZCBjb25maWdcbiAqIC0gYHNyYy9taWdyYXRpb25zYFxuICogLSBgZGlzdC9taWdyYXRpb25zYFxuICogLSBgbWlncmF0aW9uc2BcbiAqXG4gKiBEZWZhdWx0cyB0byBgc3JjL21pZ3JhdGlvbnNgXG4gKlxuICogQHBhcmFtIG1pZ3JhdGlvbkRpclxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gZmluZE1pZ3JhdGlvbkRpcihtaWdyYXRpb25EaXI/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIGNvbnN0IHNyY0RpciA9IHBhdGgucmVzb2x2ZShjd2QsICdzcmMvbWlncmF0aW9ucycpXG4gIGNvbnN0IGRpc3REaXIgPSBwYXRoLnJlc29sdmUoY3dkLCAnZGlzdC9taWdyYXRpb25zJylcbiAgY29uc3QgcmVsYXRpdmVNaWdyYXRpb25zID0gcGF0aC5yZXNvbHZlKGN3ZCwgJ21pZ3JhdGlvbnMnKVxuXG4gIC8vIFVzZSBhcmcgaWYgcHJvdmlkZWRcbiAgaWYgKG1pZ3JhdGlvbkRpcikgcmV0dXJuIG1pZ3JhdGlvbkRpclxuXG4gIC8vIENoZWNrIG90aGVyIGNvbW1vbiBsb2NhdGlvbnNcbiAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjRGlyKSkge1xuICAgIHJldHVybiBzcmNEaXJcbiAgfVxuXG4gIGlmIChmcy5leGlzdHNTeW5jKGRpc3REaXIpKSB7XG4gICAgcmV0dXJuIGRpc3REaXJcbiAgfVxuXG4gIGlmIChmcy5leGlzdHNTeW5jKHJlbGF0aXZlTWlncmF0aW9ucykpIHtcbiAgICByZXR1cm4gcmVsYXRpdmVNaWdyYXRpb25zXG4gIH1cblxuICByZXR1cm4gc3JjRGlyXG59XG4iXSwibmFtZXMiOlsibW9uZ29vc2VBZGFwdGVyIiwiYXV0b1BsdXJhbGl6YXRpb24iLCJjb25uZWN0T3B0aW9ucyIsImRpc2FibGVJbmRleEhpbnRzIiwibWlncmF0aW9uRGlyIiwibWlncmF0aW9uRGlyQXJnIiwidHJhbnNhY3Rpb25PcHRpb25zIiwidXJsIiwiYWRhcHRlciIsInBheWxvYWQiLCJmaW5kTWlncmF0aW9uRGlyIiwibW9uZ29vc2UiLCJzZXQiLCJjcmVhdGVEYXRhYmFzZUFkYXB0ZXIiLCJuYW1lIiwiY29sbGVjdGlvbnMiLCJjb25uZWN0aW9uIiwidW5kZWZpbmVkIiwiY291bnQiLCJnbG9iYWxzIiwibW9uZ29NZW1vcnlTZXJ2ZXIiLCJzZXNzaW9ucyIsInZlcnNpb25zIiwiYmVnaW5UcmFuc2FjdGlvbiIsImNvbW1pdFRyYW5zYWN0aW9uIiwiY29ubmVjdCIsImNyZWF0ZSIsImNyZWF0ZUdsb2JhbCIsImNyZWF0ZUdsb2JhbFZlcnNpb24iLCJjcmVhdGVNaWdyYXRpb24iLCJjcmVhdGVWZXJzaW9uIiwiZGVmYXVsdElEVHlwZSIsImRlbGV0ZU1hbnkiLCJkZWxldGVPbmUiLCJkZWxldGVWZXJzaW9ucyIsImRlc3Ryb3kiLCJmaW5kIiwiZmluZEdsb2JhbCIsImZpbmRHbG9iYWxWZXJzaW9ucyIsImZpbmRPbmUiLCJmaW5kVmVyc2lvbnMiLCJpbml0IiwibWlncmF0ZUZyZXNoIiwicXVlcnlEcmFmdHMiLCJyb2xsYmFja1RyYW5zYWN0aW9uIiwidXBkYXRlR2xvYmFsIiwidXBkYXRlR2xvYmFsVmVyc2lvbiIsInVwZGF0ZU9uZSIsInVwZGF0ZVZlcnNpb24iLCJjd2QiLCJwcm9jZXNzIiwic3JjRGlyIiwicGF0aCIsInJlc29sdmUiLCJkaXN0RGlyIiwicmVsYXRpdmVNaWdyYXRpb25zIiwiZnMiLCJleGlzdHNTeW5jIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQTJGZ0JBOzs7ZUFBQUE7OzsyREF0RkQ7aUVBQ007NkRBQ0o7MEJBQ3FCO3lCQUlkO3VCQUNGO3dCQUNDOzhCQUNNO3FDQUNPO2lDQUNKOytCQUNGOzRCQUNIOzJCQUNEO2dDQUNLO3lCQUNQO3NCQUNIOzRCQUNNO29DQUNRO3lCQUNYOzhCQUNLO3NCQUNSOzhCQUNROzZCQUNEO2tDQUNLO21DQUNDO3FDQUNFOzhCQUNQO3FDQUNPOzJCQUNWOytCQUNJOzs7Ozs7QUFzRHZCLFNBQVNBLGdCQUFnQixFQUM5QkMsb0JBQW9CLElBQUksRUFDeEJDLGNBQWMsRUFDZEMsb0JBQW9CLEtBQUssRUFDekJDLGNBQWNDLGVBQWUsRUFDN0JDLHFCQUFxQixDQUFDLENBQUMsRUFDdkJDLEdBQUcsRUFDRTtJQUNMLFNBQVNDLFFBQVEsRUFBRUMsT0FBTyxFQUF3QjtRQUNoRCxNQUFNTCxlQUFlTSxpQkFBaUJMO1FBQ3RDTSxpQkFBUSxDQUFDQyxHQUFHLENBQUMsZUFBZTtRQUU1QixPQUFPQyxJQUFBQSwrQkFBcUIsRUFBa0I7WUFDNUNDLE1BQU07WUFFTixvQkFBb0I7WUFDcEJiO1lBQ0FjLGFBQWEsQ0FBQztZQUNkYixnQkFBZ0JBLGtCQUFrQixDQUFDO1lBQ25DYyxZQUFZQztZQUNaQyxPQUFBQSxZQUFLO1lBQ0xmO1lBQ0FnQixTQUFTRjtZQUNURyxtQkFBbUJIO1lBQ25CSSxVQUFVLENBQUM7WUFDWGYsb0JBQW9CQSx1QkFBdUIsUUFBUVcsWUFBWVg7WUFDL0RDO1lBQ0FlLFVBQVUsQ0FBQztZQUNYLGtCQUFrQjtZQUNsQkMsa0JBQWtCakIscUJBQXFCaUIsa0NBQWdCLEdBQUdOO1lBQzFETyxtQkFBQUEsb0NBQWlCO1lBQ2pCQyxTQUFBQSxnQkFBTztZQUNQQyxRQUFBQSxjQUFNO1lBQ05DLGNBQUFBLDBCQUFZO1lBQ1pDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLGlCQUFBQSxnQ0FBZTtZQUNmQyxlQUFBQSw0QkFBYTtZQUNiQyxlQUFlO1lBQ2ZDLFlBQUFBLHNCQUFVO1lBQ1ZDLFdBQUFBLG9CQUFTO1lBQ1RDLGdCQUFBQSw4QkFBYztZQUNkQyxTQUFBQSxnQkFBTztZQUNQQyxNQUFBQSxVQUFJO1lBQ0pDLFlBQUFBLHNCQUFVO1lBQ1ZDLG9CQUFBQSxzQ0FBa0I7WUFDbEJDLFNBQUFBLGdCQUFPO1lBQ1BDLGNBQUFBLDBCQUFZO1lBQ1pDLE1BQUFBLFVBQUk7WUFDSkMsY0FBQUEsMEJBQVk7WUFDWnRDO1lBQ0FLO1lBQ0FrQyxhQUFBQSx3QkFBVztZQUNYQyxxQkFBQUEsd0NBQW1CO1lBQ25CQyxjQUFBQSwwQkFBWTtZQUNaQyxxQkFBQUEsd0NBQW1CO1lBQ25CQyxXQUFBQSxvQkFBUztZQUNUQyxlQUFBQSw0QkFBYTtRQUNmO0lBQ0Y7SUFFQSxPQUFPeEM7QUFDVDtBQUVBOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRCxTQUFTRSxpQkFBaUJOLFlBQXFCO0lBQzdDLE1BQU02QyxNQUFNQyxRQUFRRCxHQUFHO0lBQ3ZCLE1BQU1FLFNBQVNDLGFBQUksQ0FBQ0MsT0FBTyxDQUFDSixLQUFLO0lBQ2pDLE1BQU1LLFVBQVVGLGFBQUksQ0FBQ0MsT0FBTyxDQUFDSixLQUFLO0lBQ2xDLE1BQU1NLHFCQUFxQkgsYUFBSSxDQUFDQyxPQUFPLENBQUNKLEtBQUs7SUFFN0Msc0JBQXNCO0lBQ3RCLElBQUk3QyxjQUFjLE9BQU9BO0lBRXpCLCtCQUErQjtJQUMvQixJQUFJb0QsV0FBRSxDQUFDQyxVQUFVLENBQUNOLFNBQVM7UUFDekIsT0FBT0E7SUFDVDtJQUVBLElBQUlLLFdBQUUsQ0FBQ0MsVUFBVSxDQUFDSCxVQUFVO1FBQzFCLE9BQU9BO0lBQ1Q7SUFFQSxJQUFJRSxXQUFFLENBQUNDLFVBQVUsQ0FBQ0YscUJBQXFCO1FBQ3JDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPSjtBQUNUIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeQueryValue.d.ts","sourceRoot":"","sources":["../../src/queries/sanitizeQueryValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKtD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AAED,eAAO,MAAM,kBAAkB,iDAM5B,sBAAsB;eACZ,MAAM;eACN,OAAO;UACZ,OAAO;CAgKd,CAAA"}
1
+ {"version":3,"file":"sanitizeQueryValue.d.ts","sourceRoot":"","sources":["../../src/queries/sanitizeQueryValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKtD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;CACT,CAAA;AA8CD,eAAO,MAAM,kBAAkB,iDAM5B,sBAAsB;eACZ,MAAM;eACN,OAAO;UACZ,OAAO;CA8Jd,CAAA"}
@@ -15,6 +15,61 @@ function _interop_require_default(obj) {
15
15
  default: obj
16
16
  };
17
17
  }
18
+ const handleHasManyValues = (formattedValue)=>{
19
+ return formattedValue.reduce((formattedValues, inVal)=>{
20
+ const newValues = [
21
+ inVal
22
+ ];
23
+ if (_mongoose.default.Types.ObjectId.isValid(inVal)) {
24
+ newValues.push(new _mongoose.default.Types.ObjectId(inVal));
25
+ }
26
+ const parsedNumber = parseFloat(inVal);
27
+ if (!Number.isNaN(parsedNumber)) {
28
+ newValues.push(parsedNumber);
29
+ }
30
+ return [
31
+ ...formattedValues,
32
+ ...newValues
33
+ ];
34
+ }, []);
35
+ };
36
+ const handleNonHasManyValues = (formattedValue, operator, path)=>{
37
+ const formattedQueries = formattedValue.map((inVal)=>{
38
+ if (inVal && typeof inVal === 'object' && 'relationTo' in inVal && 'value' in inVal) {
39
+ if (operator === 'in') {
40
+ return {
41
+ [`${path}.relationTo`]: {
42
+ $eq: inVal.relationTo
43
+ },
44
+ [`${path}.value`]: {
45
+ $eq: inVal.value
46
+ }
47
+ };
48
+ } else if (operator === 'not_in') {
49
+ return {
50
+ $and: [
51
+ {
52
+ [`${path}.value`]: inVal.value
53
+ },
54
+ {
55
+ [`${path}.relationTo`]: inVal.relationTo
56
+ }
57
+ ]
58
+ };
59
+ }
60
+ }
61
+ return null;
62
+ }).filter(Boolean);
63
+ if (formattedQueries.length > 0) {
64
+ return {
65
+ rawQuery: operator === 'in' ? {
66
+ $or: formattedQueries
67
+ } : {
68
+ $nor: formattedQueries
69
+ }
70
+ };
71
+ }
72
+ };
18
73
  const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
19
74
  let formattedValue = val;
20
75
  let formattedOperator = operator;
@@ -89,19 +144,18 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
89
144
  }
90
145
  };
91
146
  }
92
- if (operator === 'in' && Array.isArray(formattedValue)) {
93
- formattedValue = formattedValue.reduce((formattedValues, inVal)=>{
94
- const newValues = [
95
- inVal
96
- ];
97
- if (_mongoose.default.Types.ObjectId.isValid(inVal)) newValues.push(new _mongoose.default.Types.ObjectId(inVal));
98
- const parsedNumber = parseFloat(inVal);
99
- if (!Number.isNaN(parsedNumber)) newValues.push(parsedNumber);
100
- return [
101
- ...formattedValues,
102
- ...newValues
103
- ];
104
- }, []);
147
+ if ([
148
+ 'in',
149
+ 'not_in'
150
+ ].includes(operator) && Array.isArray(formattedValue)) {
151
+ if ('hasMany' in field && field.hasMany) {
152
+ formattedValue = handleHasManyValues(formattedValue);
153
+ } else {
154
+ const result = handleNonHasManyValues(formattedValue, operator, path);
155
+ if (result) {
156
+ return result;
157
+ }
158
+ }
105
159
  }
106
160
  }
107
161
  // Set up specific formatting necessary by operators
@@ -199,4 +253,4 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
199
253
  };
200
254
  };
201
255
 
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIGhhc0N1c3RvbUlELFxuICBvcGVyYXRvcixcbiAgcGF0aCxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHtcbiAgb3BlcmF0b3I/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbD86IHVua25vd25cbn0gPT4ge1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcbiAgbGV0IGZvcm1hdHRlZE9wZXJhdG9yID0gb3BlcmF0b3JcblxuICAvLyBEaXNyZWdhcmQgaW52YWxpZCBfaWRzXG4gIGlmIChwYXRoID09PSAnX2lkJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3BsaXQoJywnKS5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoIWhhc0N1c3RvbUlEKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZCh2YWwpXG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHBhcnNlRmxvYXQodmFsKVxuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FzdCBpbmNvbWluZyB2YWx1ZXMgYXMgcHJvcGVyIHNlYXJjaGFibGUgdHlwZXNcbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJykgZm9ybWF0dGVkVmFsdWUgPSB0cnVlXG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSBmb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlXG4gIH1cblxuICBpZiAoWydhbGwnLCAnaW4nLCAnbm90X2luJ10uaW5jbHVkZXMob3BlcmF0b3IpICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5tYXAoKGFycmF5VmFsKSA9PiBwYXJzZUZsb2F0KGFycmF5VmFsKSlcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gTnVtYmVyKHZhbClcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgb3BlcmF0b3IgIT09ICdleGlzdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSh2YWwpXG4gICAgaWYgKE51bWJlci5pc05hTihEYXRlLnBhcnNlKGZvcm1hdHRlZFZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBpZiAoWydyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICBpZiAodmFsID09PSAnbnVsbCcpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbnVsbFxuICAgIH1cblxuICAgIC8vIE9iamVjdCBlcXVhbGl0eSByZXF1aXJlcyB0aGUgdmFsdWUgdG8gYmUgdGhlIGZpcnN0IGtleSBpbiB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcXVlcmllZC5cbiAgICBpZiAoXG4gICAgICBvcGVyYXRvciA9PT0gJ2VxdWFscycgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlICYmXG4gICAgICB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUucmVsYXRpb25Ub1xuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAkYW5kOiBbXG4gICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUudmFsdWUgfSB9LFxuICAgICAgICAgICAgeyBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUucmVsYXRpb25UbyB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3BlcmF0b3IgPT09ICdpbicgJiYgQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUucmVkdWNlKChmb3JtYXR0ZWRWYWx1ZXMsIGluVmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFtpblZhbF1cbiAgICAgICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoaW5WYWwpKVxuICAgICAgICAgIG5ld1ZhbHVlcy5wdXNoKG5ldyBtb25nb29zZS5UeXBlcy5PYmplY3RJZChpblZhbCkpXG5cbiAgICAgICAgY29uc3QgcGFyc2VkTnVtYmVyID0gcGFyc2VGbG9hdChpblZhbClcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkTnVtYmVyKSkgbmV3VmFsdWVzLnB1c2gocGFyc2VkTnVtYmVyKVxuXG4gICAgICAgIHJldHVybiBbLi4uZm9ybWF0dGVkVmFsdWVzLCAuLi5uZXdWYWx1ZXNdXG4gICAgICB9LCBbXSlcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgdXAgc3BlY2lmaWMgZm9ybWF0dGluZyBuZWNlc3NhcnkgYnkgb3BlcmF0b3JzXG5cbiAgaWYgKG9wZXJhdG9yID09PSAnbmVhcicpIHtcbiAgICBsZXQgbG5nXG4gICAgbGV0IGxhdFxuICAgIGxldCBtYXhEaXN0YW5jZVxuICAgIGxldCBtaW5EaXN0YW5jZVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICA7W2xuZywgbGF0LCBtYXhEaXN0YW5jZSwgbWluRGlzdGFuY2VdID0gZm9ybWF0dGVkVmFsdWVcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgO1tsbmcsIGxhdCwgbWF4RGlzdGFuY2UsIG1pbkRpc3RhbmNlXSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcbiAgICB9XG5cbiAgICBpZiAobG5nID09IG51bGwgfHwgbGF0ID09IG51bGwgfHwgKG1heERpc3RhbmNlID09IG51bGwgJiYgbWluRGlzdGFuY2UgPT0gbnVsbCkpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gdW5kZWZpbmVkXG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0ge1xuICAgICAgICAkZ2VvbWV0cnk6IHsgdHlwZTogJ1BvaW50JywgY29vcmRpbmF0ZXM6IFtwYXJzZUZsb2F0KGxuZyksIHBhcnNlRmxvYXQobGF0KV0gfSxcbiAgICAgIH1cblxuICAgICAgaWYgKG1heERpc3RhbmNlKSBmb3JtYXR0ZWRWYWx1ZS4kbWF4RGlzdGFuY2UgPSBwYXJzZUZsb2F0KG1heERpc3RhbmNlKVxuICAgICAgaWYgKG1pbkRpc3RhbmNlKSBmb3JtYXR0ZWRWYWx1ZS4kbWluRGlzdGFuY2UgPSBwYXJzZUZsb2F0KG1pbkRpc3RhbmNlKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ3dpdGhpbicgfHwgb3BlcmF0b3IgPT09ICdpbnRlcnNlY3RzJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0ge1xuICAgICAgJGdlb21ldHJ5OiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICB9XG4gIH1cblxuICBpZiAocGF0aCAhPT0gJ19pZCcgfHwgKHBhdGggPT09ICdfaWQnICYmIGhhc0N1c3RvbUlEICYmIGZpZWxkLnR5cGUgPT09ICd0ZXh0JykpIHtcbiAgICBpZiAob3BlcmF0b3IgPT09ICdjb250YWlucycpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0ge1xuICAgICAgICAkb3B0aW9uczogJ2knLFxuICAgICAgICAkcmVnZXg6IGZvcm1hdHRlZFZhbHVlLnJlcGxhY2UoL1tcXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyksXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIChwYXRoID09PSAnX2lkJyB8fCBwYXRoID09PSAncGFyZW50JykgJiZcbiAgICBvcGVyYXRvciA9PT0gJ2xpa2UnICYmXG4gICAgZm9ybWF0dGVkVmFsdWUubGVuZ3RoID09PSAyNCAmJlxuICAgICFoYXNDdXN0b21JRFxuICApIHtcbiAgICBmb3JtYXR0ZWRPcGVyYXRvciA9ICdlcXVhbHMnXG4gIH1cblxuICBpZiAob3BlcmF0b3IgPT09ICdleGlzdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3RydWUnIHx8IGZvcm1hdHRlZFZhbHVlID09PSB0cnVlXG5cbiAgICAvLyBDbGVhcmFibGUgZmllbGRzXG4gICAgaWYgKFsncmVsYXRpb25zaGlwJywgJ3NlbGVjdCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgICAgaWYgKGZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAgICRhbmQ6IFt7IFtwYXRoXTogeyAkZXhpc3RzOiB0cnVlIH0gfSwgeyBbcGF0aF06IHsgJG5lOiBudWxsIH0gfV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICAgJG9yOiBbeyBbcGF0aF06IHsgJGV4aXN0czogZmFsc2UgfSB9LCB7IFtwYXRoXTogeyAkZXE6IG51bGwgfSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IGZvcm1hdHRlZFZhbHVlIH1cbn1cbiJdLCJuYW1lcyI6WyJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJmaWVsZCIsImhhc0N1c3RvbUlEIiwib3BlcmF0b3IiLCJwYXRoIiwidmFsIiwiZm9ybWF0dGVkVmFsdWUiLCJmb3JtYXR0ZWRPcGVyYXRvciIsInNwbGl0IiwibGVuZ3RoIiwiaXNWYWxpZCIsIm1vbmdvb3NlIiwiVHlwZXMiLCJPYmplY3RJZCIsInVuZGVmaW5lZCIsInR5cGUiLCJwYXJzZWROdW1iZXIiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNOYU4iLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIiwibWFwIiwiYXJyYXlWYWwiLCJEYXRlIiwicGFyc2UiLCJ2YWx1ZSIsInJlbGF0aW9uVG8iLCJyYXdRdWVyeSIsIiRhbmQiLCIkZXEiLCJBcnJheSIsImlzQXJyYXkiLCJyZWR1Y2UiLCJmb3JtYXR0ZWRWYWx1ZXMiLCJpblZhbCIsIm5ld1ZhbHVlcyIsInB1c2giLCJsbmciLCJsYXQiLCJtYXhEaXN0YW5jZSIsIm1pbkRpc3RhbmNlIiwiJGdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCIkbWF4RGlzdGFuY2UiLCIkbWluRGlzdGFuY2UiLCIkb3B0aW9ucyIsIiRyZWdleCIsInJlcGxhY2UiLCIkZXhpc3RzIiwiJG5lIiwiJG9yIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBYWFBOzs7ZUFBQUE7OztpRUFYUTsyQkFDMEI7Ozs7OztBQVV4QyxNQUFNQSxxQkFBcUIsQ0FBQyxFQUNqQ0MsS0FBSyxFQUNMQyxXQUFXLEVBQ1hDLFFBQVEsRUFDUkMsSUFBSSxFQUNKQyxHQUFHLEVBQ29CO0lBS3ZCLElBQUlDLGlCQUFpQkQ7SUFDckIsSUFBSUUsb0JBQW9CSjtJQUV4Qix5QkFBeUI7SUFDekIsSUFBSUMsU0FBUyxTQUFTLE9BQU9DLFFBQVEsWUFBWUEsSUFBSUcsS0FBSyxDQUFDLEtBQUtDLE1BQU0s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
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5jb25zdCBoYW5kbGVIYXNNYW55VmFsdWVzID0gKGZvcm1hdHRlZFZhbHVlKSA9PiB7XG4gIHJldHVybiBmb3JtYXR0ZWRWYWx1ZS5yZWR1Y2UoKGZvcm1hdHRlZFZhbHVlcywgaW5WYWwpID0+IHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSBbaW5WYWxdXG4gICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoaW5WYWwpKSB7XG4gICAgICBuZXdWYWx1ZXMucHVzaChuZXcgbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoaW5WYWwpKVxuICAgIH1cbiAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZUZsb2F0KGluVmFsKVxuICAgIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgIG5ld1ZhbHVlcy5wdXNoKHBhcnNlZE51bWJlcilcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLmZvcm1hdHRlZFZhbHVlcywgLi4ubmV3VmFsdWVzXVxuICB9LCBbXSlcbn1cblxuY29uc3QgaGFuZGxlTm9uSGFzTWFueVZhbHVlcyA9IChmb3JtYXR0ZWRWYWx1ZSwgb3BlcmF0b3IsIHBhdGgpID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkUXVlcmllcyA9IGZvcm1hdHRlZFZhbHVlXG4gICAgLm1hcCgoaW5WYWwpID0+IHtcbiAgICAgIGlmIChpblZhbCAmJiB0eXBlb2YgaW5WYWwgPT09ICdvYmplY3QnICYmICdyZWxhdGlvblRvJyBpbiBpblZhbCAmJiAndmFsdWUnIGluIGluVmFsKSB7XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2luJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogaW5WYWwucmVsYXRpb25UbyB9LFxuICAgICAgICAgICAgW2Ake3BhdGh9LnZhbHVlYF06IHsgJGVxOiBpblZhbC52YWx1ZSB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gJ25vdF9pbicpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGFuZDogW1xuICAgICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiBpblZhbC52YWx1ZSB9LFxuICAgICAgICAgICAgICB7IFtgJHtwYXRofS5yZWxhdGlvblRvYF06IGluVmFsLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuXG4gIGlmIChmb3JtYXR0ZWRRdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF3UXVlcnk6IG9wZXJhdG9yID09PSAnaW4nID8geyAkb3I6IGZvcm1hdHRlZFF1ZXJpZXMgfSA6IHsgJG5vcjogZm9ybWF0dGVkUXVlcmllcyB9LFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIGhhc0N1c3RvbUlELFxuICBvcGVyYXRvcixcbiAgcGF0aCxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHtcbiAgb3BlcmF0b3I/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbD86IHVua25vd25cbn0gPT4ge1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcbiAgbGV0IGZvcm1hdHRlZE9wZXJhdG9yID0gb3BlcmF0b3JcblxuICAvLyBEaXNyZWdhcmQgaW52YWxpZCBfaWRzXG4gIGlmIChwYXRoID09PSAnX2lkJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3BsaXQoJywnKS5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoIWhhc0N1c3RvbUlEKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZCh2YWwpXG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHBhcnNlRmxvYXQodmFsKVxuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FzdCBpbmNvbWluZyB2YWx1ZXMgYXMgcHJvcGVyIHNlYXJjaGFibGUgdHlwZXNcbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJykgZm9ybWF0dGVkVmFsdWUgPSB0cnVlXG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSBmb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlXG4gIH1cblxuICBpZiAoWydhbGwnLCAnaW4nLCAnbm90X2luJ10uaW5jbHVkZXMob3BlcmF0b3IpICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5tYXAoKGFycmF5VmFsKSA9PiBwYXJzZUZsb2F0KGFycmF5VmFsKSlcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gTnVtYmVyKHZhbClcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgb3BlcmF0b3IgIT09ICdleGlzdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSh2YWwpXG4gICAgaWYgKE51bWJlci5pc05hTihEYXRlLnBhcnNlKGZvcm1hdHRlZFZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBpZiAoWydyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICBpZiAodmFsID09PSAnbnVsbCcpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbnVsbFxuICAgIH1cblxuICAgIC8vIE9iamVjdCBlcXVhbGl0eSByZXF1aXJlcyB0aGUgdmFsdWUgdG8gYmUgdGhlIGZpcnN0IGtleSBpbiB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcXVlcmllZC5cbiAgICBpZiAoXG4gICAgICBvcGVyYXRvciA9PT0gJ2VxdWFscycgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlICYmXG4gICAgICB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUucmVsYXRpb25Ub1xuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAkYW5kOiBbXG4gICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUudmFsdWUgfSB9LFxuICAgICAgICAgICAgeyBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUucmVsYXRpb25UbyB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydpbicsICdub3RfaW4nXS5pbmNsdWRlcyhvcGVyYXRvcikgJiYgQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIGlmICgnaGFzTWFueScgaW4gZmllbGQgJiYgZmllbGQuaGFzTWFueSkge1xuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSA9IGhhbmRsZUhhc01hbnlWYWx1ZXMoZm9ybWF0dGVkVmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVOb25IYXNNYW55VmFsdWVzKGZvcm1hdHRlZFZhbHVlLCBvcGVyYXRvciwgcGF0aClcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB1cCBzcGVjaWZpYyBmb3JtYXR0aW5nIG5lY2Vzc2FyeSBieSBvcGVyYXRvcnNcblxuICBpZiAob3BlcmF0b3IgPT09ICduZWFyJykge1xuICAgIGxldCBsbmdcbiAgICBsZXQgbGF0XG4gICAgbGV0IG1heERpc3RhbmNlXG4gICAgbGV0IG1pbkRpc3RhbmNlXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIDtbbG5nLCBsYXQsIG1heERpc3RhbmNlLCBtaW5EaXN0YW5jZV0gPSBmb3JtYXR0ZWRWYWx1ZVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICA7W2xuZywgbGF0LCBtYXhEaXN0YW5jZSwgbWluRGlzdGFuY2VdID0gY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkKGZvcm1hdHRlZFZhbHVlKVxuICAgIH1cblxuICAgIGlmIChsbmcgPT0gbnVsbCB8fCBsYXQgPT0gbnVsbCB8fCAobWF4RGlzdGFuY2UgPT0gbnVsbCAmJiBtaW5EaXN0YW5jZSA9PSBudWxsKSkge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAgICRnZW9tZXRyeTogeyB0eXBlOiAnUG9pbnQnLCBjb29yZGluYXRlczogW3BhcnNlRmxvYXQobG5nKSwgcGFyc2VGbG9hdChsYXQpXSB9LFxuICAgICAgfVxuXG4gICAgICBpZiAobWF4RGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtYXhEaXN0YW5jZSA9IHBhcnNlRmxvYXQobWF4RGlzdGFuY2UpXG4gICAgICBpZiAobWluRGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtaW5EaXN0YW5jZSA9IHBhcnNlRmxvYXQobWluRGlzdGFuY2UpXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnd2l0aGluJyB8fCBvcGVyYXRvciA9PT0gJ2ludGVyc2VjdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAkZ2VvbWV0cnk6IGZvcm1hdHRlZFZhbHVlLFxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXRoICE9PSAnX2lkJyB8fCAocGF0aCA9PT0gJ19pZCcgJiYgaGFzQ3VzdG9tSUQgJiYgZmllbGQudHlwZSA9PT0gJ3RleHQnKSkge1xuICAgIGlmIChvcGVyYXRvciA9PT0gJ2NvbnRhaW5zJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAgICRvcHRpb25zOiAnaScsXG4gICAgICAgICRyZWdleDogZm9ybWF0dGVkVmFsdWUucmVwbGFjZSgvW1xcXFxeJCorPy4oKXxbXFxde31dL2csICdcXFxcJCYnKSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgKHBhdGggPT09ICdfaWQnIHx8IHBhdGggPT09ICdwYXJlbnQnKSAmJlxuICAgIG9wZXJhdG9yID09PSAnbGlrZScgJiZcbiAgICBmb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPT09IDI0ICYmXG4gICAgIWhhc0N1c3RvbUlEXG4gICkge1xuICAgIGZvcm1hdHRlZE9wZXJhdG9yID0gJ2VxdWFscydcbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlID09PSAndHJ1ZScgfHwgZm9ybWF0dGVkVmFsdWUgPT09IHRydWVcblxuICAgIC8vIENsZWFyYWJsZSBmaWVsZHNcbiAgICBpZiAoWydyZWxhdGlvbnNoaXAnLCAnc2VsZWN0JywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICBpZiAoZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICAgJGFuZDogW3sgW3BhdGhdOiB7ICRleGlzdHM6IHRydWUgfSB9LCB7IFtwYXRoXTogeyAkbmU6IG51bGwgfSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhd1F1ZXJ5OiB7XG4gICAgICAgICAgICAkb3I6IFt7IFtwYXRoXTogeyAkZXhpc3RzOiBmYWxzZSB9IH0sIHsgW3BhdGhdOiB7ICRlcTogbnVsbCB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogZm9ybWF0dGVkVmFsdWUgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplUXVlcnlWYWx1ZSIsImhhbmRsZUhhc01hbnlWYWx1ZXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInJlZHVjZSIsImZvcm1hdHRlZFZhbHVlcyIsImluVmFsIiwibmV3VmFsdWVzIiwibW9uZ29vc2UiLCJUeXBlcyIsIk9iamVjdElkIiwiaXNWYWxpZCIsInB1c2giLCJwYXJzZWROdW1iZXIiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNOYU4iLCJoYW5kbGVOb25IYXNNYW55VmFsdWVzIiwib3BlcmF0b3IiLCJwYXRoIiwiZm9ybWF0dGVkUXVlcmllcyIsIm1hcCIsIiRlcSIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsIiRhbmQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwicmF3UXVlcnkiLCIkb3IiLCIkbm9yIiwiZmllbGQiLCJoYXNDdXN0b21JRCIsInZhbCIsImZvcm1hdHRlZE9wZXJhdG9yIiwic3BsaXQiLCJ1bmRlZmluZWQiLCJ0eXBlIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCIsImFycmF5VmFsIiwiRGF0ZSIsInBhcnNlIiwiQXJyYXkiLCJpc0FycmF5IiwiaGFzTWFueSIsInJlc3VsdCIsImxuZyIsImxhdCIsIm1heERpc3RhbmNlIiwibWluRGlzdGFuY2UiLCIkZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsIiRtYXhEaXN0YW5jZSIsIiRtaW5EaXN0YW5jZSIsIiRvcHRpb25zIiwiJHJlZ2V4IiwicmVwbGFjZSIsIiRleGlzdHMiLCIkbmUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-mongodb",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "description": "The officially supported MongoDB database adapter for Payload",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,7 +32,7 @@
32
32
  "mongodb": "4.17.1",
33
33
  "mongodb-memory-server": "^9",
34
34
  "@payloadcms/eslint-config": "1.1.1",
35
- "payload": "2.13.0"
35
+ "payload": "2.22.0"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "payload": "^2.0.0"