@payloadcms/db-mongodb 1.7.1 → 1.7.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"buildSearchParams.d.ts","sourceRoot":"","sources":["../../src/queries/buildSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAc1C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAOD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,cAAc,EACd,MAAM,EACN,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb,GAAG,OAAO,CAAC,WAAW,CAAC,CA6NvB"}
1
+ {"version":3,"file":"buildSearchParams.d.ts","sourceRoot":"","sources":["../../src/queries/buildSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAgB1C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAOD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,cAAc,EACd,MAAM,EACN,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb,GAAG,OAAO,CAAC,WAAW,CAAC,CAmOvB"}
@@ -19,6 +19,7 @@ function _interop_require_default(obj) {
19
19
  default: obj
20
20
  };
21
21
  }
22
+ const ObjectId = _bsonobjectid.default;
22
23
  const subQueryOptions = {
23
24
  lean: true,
24
25
  limit: 50
@@ -146,9 +147,11 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
146
147
  const operatorKey = _operatorMap.operatorMap[formattedOperator];
147
148
  if (field.type === 'relationship' || field.type === 'upload') {
148
149
  let hasNumberIDRelation;
150
+ let multiIDCondition = '$or';
151
+ if (operatorKey === '$ne') multiIDCondition = '$and';
149
152
  const result = {
150
153
  value: {
151
- $or: [
154
+ [multiIDCondition]: [
152
155
  {
153
156
  [path]: {
154
157
  [operatorKey]: formattedValue
@@ -159,9 +162,9 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
159
162
  };
160
163
  if (typeof formattedValue === 'string') {
161
164
  if (_mongoose.default.Types.ObjectId.isValid(formattedValue)) {
162
- result.value.$or.push({
165
+ result.value[multiIDCondition].push({
163
166
  [path]: {
164
- [operatorKey]: (0, _bsonobjectid.default)(formattedValue)
167
+ [operatorKey]: ObjectId(formattedValue)
165
168
  }
166
169
  });
167
170
  } else {
@@ -175,14 +178,14 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
175
178
  if (isRelatedToCustomNumberID.type === 'number') hasNumberIDRelation = true;
176
179
  }
177
180
  });
178
- if (hasNumberIDRelation) result.value.$or.push({
181
+ if (hasNumberIDRelation) result.value[multiIDCondition].push({
179
182
  [path]: {
180
183
  [operatorKey]: parseFloat(formattedValue)
181
184
  }
182
185
  });
183
186
  }
184
187
  }
185
- if (result.value.$or.length > 1) {
188
+ if (result.value[multiIDCondition].length > 1) {
186
189
  return result;
187
190
  }
188
191
  }
@@ -219,4 +222,4 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
219
222
  return undefined;
220
223
  }
221
224
 
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU2VhcmNoUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFBhdGhUb1F1ZXJ5IH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRvciB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBvYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgZ2V0TG9jYWxpemVkUGF0aHMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyB2YWxpZE9wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLi4nXG5cbmltcG9ydCB7IG9wZXJhdG9yTWFwIH0gZnJvbSAnLi9vcGVyYXRvck1hcCdcbmltcG9ydCB7IHNhbml0aXplUXVlcnlWYWx1ZSB9IGZyb20gJy4vc2FuaXRpemVRdWVyeVZhbHVlJ1xuXG50eXBlIFNlYXJjaFBhcmFtID0ge1xuICBwYXRoPzogc3RyaW5nXG4gIHJhd1F1ZXJ5PzogdW5rbm93blxuICB2YWx1ZT86IHVua25vd25cbn1cblxuY29uc3Qgc3ViUXVlcnlPcHRpb25zID0ge1xuICBsZWFuOiB0cnVlLFxuICBsaW1pdDogNTAsXG59XG5cbi8qKlxuICogQ29udmVydCB0aGUgUGF5bG9hZCBrZXkgLyB2YWx1ZSAvIG9wZXJhdG9yIGludG8gYSBNb25nb0RCIHF1ZXJ5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZFNlYXJjaFBhcmFtKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgaW5jb21pbmdQYXRoLFxuICBsb2NhbGUsXG4gIG9wZXJhdG9yLFxuICBwYXlsb2FkLFxuICB2YWwsXG59OiB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIGZpZWxkczogRmllbGRbXVxuICBnbG9iYWxTbHVnPzogc3RyaW5nXG4gIGluY29taW5nUGF0aDogc3RyaW5nXG4gIGxvY2FsZT86IHN0cmluZ1xuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgdmFsOiB1bmtub3duXG59KTogUHJvbWlzZTxTZWFyY2hQYXJhbT4ge1xuICAvLyBSZXBsYWNlIEdyYXBoUUwgbmVzdGVkIGZpZWxkIGRvdWJsZSB1bmRlcnNjb3JlIGZvcm1hdHRpbmdcbiAgbGV0IHNhbml0aXplZFBhdGggPSBpbmNvbWluZ1BhdGgucmVwbGFjZSgvX18vZywgJy4nKVxuICBpZiAoc2FuaXRpemVkUGF0aCA9PT0gJ2lkJykgc2FuaXRpemVkUGF0aCA9ICdfaWQnXG5cbiAgbGV0IHBhdGhzOiBQYXRoVG9RdWVyeVtdID0gW11cblxuICBsZXQgaGFzQ3VzdG9tSUQgPSBmYWxzZVxuXG4gIGlmIChzYW5pdGl6ZWRQYXRoID09PSAnX2lkJykge1xuICAgIGNvbnN0IGN1c3RvbUlEZmllbGQgPSBwYXlsb2FkLmNvbGxlY3Rpb25zW2NvbGxlY3Rpb25TbHVnXT8uY29uZmlnLmZpZWxkcy5maW5kKFxuICAgICAgKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnLFxuICAgIClcblxuICAgIGxldCBpZEZpZWxkVHlwZTogJ251bWJlcicgfCAndGV4dCcgPSAndGV4dCdcblxuICAgIGlmIChjdXN0b21JRGZpZWxkKSB7XG4gICAgICBpZiAoY3VzdG9tSURmaWVsZD8udHlwZSA9PT0gJ3RleHQnIHx8IGN1c3RvbUlEZmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlkRmllbGRUeXBlID0gY3VzdG9tSURmaWVsZC50eXBlXG4gICAgICB9XG5cbiAgICAgIGhhc0N1c3RvbUlEID0gdHJ1ZVxuICAgIH1cblxuICAgIHBhdGhzLnB1c2goe1xuICAgICAgY29sbGVjdGlvblNsdWcsXG4gICAgICBjb21wbGV0ZTogdHJ1ZSxcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IGlkRmllbGRUeXBlLFxuICAgICAgfSBhcyBGaWVsZCxcbiAgICAgIHBhdGg6ICdfaWQnLFxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgcGF0aHMgPSBhd2FpdCBnZXRMb2NhbGl6ZWRQYXRocyh7XG4gICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBpbmNvbWluZ1BhdGg6IHNhbml0aXplZFBhdGgsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBbeyBmaWVsZCwgcGF0aCB9XSA9IHBhdGhzXG5cbiAgaWYgKHBhdGgpIHtcbiAgICBjb25zdCB7XG4gICAgICBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsXG4gICAgICByYXdRdWVyeSxcbiAgICAgIHZhbDogZm9ybWF0dGVkVmFsdWUsXG4gICAgfSA9IHNhbml0aXplUXVlcnlWYWx1ZSh7XG4gICAgICBmaWVsZCxcbiAgICAgIGhhc0N1c3RvbUlELFxuICAgICAgb3BlcmF0b3IsXG4gICAgICBwYXRoLFxuICAgICAgdmFsLFxuICAgIH0pXG5cbiAgICBpZiAocmF3UXVlcnkpIHJldHVybiB7IHZhbHVlOiByYXdRdWVyeSB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgY29sbGVjdGlvbnMgdG8gc2VhcmNoIHRocm91Z2gsXG4gICAgLy8gUmVjdXJzaXZlbHkgYnVpbGQgdXAgYSBsaXN0IG9mIHF1ZXJ5IGNvbnN0cmFpbnRzXG4gICAgaWYgKHBhdGhzLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIFJlbW92ZSB0b3AgY29sbGVjdGlvbiBhbmQgcmV2ZXJzZSBhcnJheVxuICAgICAgLy8gdG8gd29yayBiYWNrd2FyZHMgZnJvbSB0b3BcbiAgICAgIGNvbnN0IHBhdGhzVG9RdWVyeSA9IHBhdGhzLnNsaWNlKDEpLnJldmVyc2UoKVxuXG4gICAgICBjb25zdCBpbml0aWFsUmVsYXRpb25zaGlwUXVlcnkgPSB7XG4gICAgICAgIHZhbHVlOiB7fSxcbiAgICAgIH0gYXMgU2VhcmNoUGFyYW1cblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwUXVlcnkgPSBhd2FpdCBwYXRoc1RvUXVlcnkucmVkdWNlKFxuICAgICAgICBhc3luYyAocHJpb3JRdWVyeSwgeyBjb2xsZWN0aW9uU2x1Zzogc2x1ZywgcGF0aDogc3ViUGF0aCB9LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJpb3JRdWVyeVJlc3VsdCA9IGF3YWl0IHByaW9yUXVlcnlcblxuICAgICAgICAgIGNvbnN0IFN1Yk1vZGVsID0gKHBheWxvYWQuZGIgYXMgTW9uZ29vc2VBZGFwdGVyKS5jb2xsZWN0aW9uc1tzbHVnXVxuXG4gICAgICAgICAgLy8gT24gdGhlIFwiZGVlcGVzdFwiIGNvbGxlY3Rpb24sXG4gICAgICAgICAgLy8gU2VhcmNoIG9uIHRoZSB2YWx1ZSBwYXNzZWQgdGhyb3VnaCB0aGUgcXVlcnlcbiAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3Qgc3ViUXVlcnkgPSBhd2FpdCBTdWJNb2RlbC5idWlsZFF1ZXJ5KHtcbiAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAgIFtzdWJQYXRoXToge1xuICAgICAgICAgICAgICAgICAgW2Zvcm1hdHRlZE9wZXJhdG9yXTogdmFsLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBTdWJNb2RlbC5maW5kKHN1YlF1ZXJ5LCBzdWJRdWVyeU9wdGlvbnMpXG5cbiAgICAgICAgICAgIGNvbnN0ICRpbjogdW5rbm93bltdID0gW11cblxuICAgICAgICAgICAgcmVzdWx0LmZvckVhY2goKGRvYykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzdHJpbmdJRCA9IGRvYy5faWQudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAkaW4ucHVzaChzdHJpbmdJRClcblxuICAgICAgICAgICAgICBpZiAobW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZChzdHJpbmdJRCkpIHtcbiAgICAgICAgICAgICAgICAkaW4ucHVzaChkb2MuX2lkKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAocGF0aHNUb1F1ZXJ5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHsgJGluIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbmV4dFN1YlBhdGggPSBwYXRoc1RvUXVlcnlbaSArIDFdLnBhdGhcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHsgW25leHRTdWJQYXRoXTogeyAkaW4gfSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN1YlF1ZXJ5ID0gcHJpb3JRdWVyeVJlc3VsdC52YWx1ZVxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFN1Yk1vZGVsLmZpbmQoc3ViUXVlcnksIHN1YlF1ZXJ5T3B0aW9ucylcblxuICAgICAgICAgIGNvbnN0ICRpbiA9IHJlc3VsdC5tYXAoKGRvYykgPT4gZG9jLl9pZC50b1N0cmluZygpKVxuXG4gICAgICAgICAgLy8gSWYgaXQgaXMgdGhlIGxhc3QgcmVjdXJzaW9uXG4gICAgICAgICAgLy8gdGhlbiBwYXNzIHRocm91Z2ggdGhlIHNlYXJjaCBwYXJhbVxuICAgICAgICAgIGlmIChpICsgMSA9PT0gcGF0aHNUb1F1ZXJ5Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgdmFsdWU6IHsgJGluIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIF9pZDogeyAkaW4gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBQcm9taXNlLnJlc29sdmUoaW5pdGlhbFJlbGF0aW9uc2hpcFF1ZXJ5KSxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHJlbGF0aW9uc2hpcFF1ZXJ5XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdHRlZE9wZXJhdG9yICYmIHZhbGlkT3BlcmF0b3JzLmluY2x1ZGVzKGZvcm1hdHRlZE9wZXJhdG9yIGFzIE9wZXJhdG9yKSkge1xuICAgICAgY29uc3Qgb3BlcmF0b3JLZXkgPSBvcGVyYXRvck1hcFtmb3JtYXR0ZWRPcGVyYXRvcl1cblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICAgIGxldCBoYXNOdW1iZXJJRFJlbGF0aW9uXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAkb3I6IFt7IFtwYXRoXTogeyBbb3BlcmF0b3JLZXldOiBmb3JtYXR0ZWRWYWx1ZSB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmIChtb25nb29zZS5UeXBlcy5PYmplY3RJZC5pc1ZhbGlkKGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0LnZhbHVlLiRvci5wdXNoKHsgW3BhdGhdOiB7IFtvcGVyYXRvcktleV06IG9iamVjdElEKGZvcm1hdHRlZFZhbHVlKSB9IH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIDsoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSA/IGZpZWxkLnJlbGF0aW9uVG8gOiBbZmllbGQucmVsYXRpb25Ub10pLmZvckVhY2goXG4gICAgICAgICAgICAgIChyZWxhdGlvblRvKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNSZWxhdGVkVG9DdXN0b21OdW1iZXJJRCA9IHBheWxvYWQuY29sbGVjdGlvbnNbXG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvXG4gICAgICAgICAgICAgICAgXT8uY29uZmlnPy5maWVsZHMuZmluZCgocmVsYXRlZEZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKHJlbGF0ZWRGaWVsZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZEZpZWxkLm5hbWUgPT09ICdpZCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRlZEZpZWxkLnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklEKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9DdXN0b21OdW1iZXJJRC50eXBlID09PSAnbnVtYmVyJykgaGFzTnVtYmVySURSZWxhdGlvbiA9IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGlmIChoYXNOdW1iZXJJRFJlbGF0aW9uKVxuICAgICAgICAgICAgICByZXN1bHQudmFsdWUuJG9yLnB1c2goeyBbcGF0aF06IHsgW29wZXJhdG9yS2V5XTogcGFyc2VGbG9hdChmb3JtYXR0ZWRWYWx1ZSkgfSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQudmFsdWUuJG9yLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZvcm1hdHRlZE9wZXJhdG9yID09PSAnbGlrZScgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCB3b3JkcyA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcgJylcblxuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICRhbmQ6IHdvcmRzLm1hcCgod29yZCkgPT4gKHtcbiAgICAgICAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgICAgICAgJG9wdGlvbnM6ICdpJyxcbiAgICAgICAgICAgICAgICAkcmVnZXg6IHdvcmQucmVwbGFjZSgvW1xcXFxeJCorPy4oKXxbXFxde31dL2csICdcXFxcJCYnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfVxuXG4gICAgICAvLyBTb21lIG9wZXJhdG9ycyBsaWtlICduZWFyJyBuZWVkIHRvIGRlZmluZSBhIGZ1bGwgcXVlcnlcbiAgICAgIC8vIHNvIGlmIHRoZXJlIGlzIG5vIG9wZXJhdG9yIGtleSwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgICBpZiAoIW9wZXJhdG9yS2V5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgdmFsdWU6IHsgW29wZXJhdG9yS2V5XTogZm9ybWF0dGVkVmFsdWUgfSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbImJ1aWxkU2VhcmNoUGFyYW0iLCJzdWJRdWVyeU9wdGlvbnMiLCJsZWFuIiwibGltaXQiLCJjb2xsZWN0aW9uU2x1ZyIsImZpZWxkcyIsImdsb2JhbFNsdWciLCJpbmNvbWluZ1BhdGgiLCJsb2NhbGUiLCJvcGVyYXRvciIsInBheWxvYWQiLCJ2YWwiLCJzYW5pdGl6ZWRQYXRoIiwicmVwbGFjZSIsInBhdGhzIiwiaGFzQ3VzdG9tSUQiLCJjdXN0b21JRGZpZWxkIiwiY29sbGVjdGlvbnMiLCJjb25maWciLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImlkRmllbGRUeXBlIiwidHlwZSIsInB1c2giLCJjb21wbGV0ZSIsInBhdGgiLCJnZXRMb2NhbGl6ZWRQYXRocyIsImZvcm1hdHRlZE9wZXJhdG9yIiwicmF3UXVlcnkiLCJmb3JtYXR0ZWRWYWx1ZSIsInNhbml0aXplUXVlcnlWYWx1ZSIsInZhbHVlIiwibGVuZ3RoIiwicGF0aHNUb1F1ZXJ5Iiwic2xpY2UiLCJyZXZlcnNlIiwiaW5pdGlhbFJlbGF0aW9uc2hpcFF1ZXJ5IiwicmVsYXRpb25zaGlwUXVlcnkiLCJyZWR1Y2UiLCJwcmlvclF1ZXJ5Iiwic2x1ZyIsInN1YlBhdGgiLCJpIiwicHJpb3JRdWVyeVJlc3VsdCIsIlN1Yk1vZGVsIiwiZGIiLCJzdWJRdWVyeSIsImJ1aWxkUXVlcnkiLCJ3aGVyZSIsInJlc3VsdCIsIiRpbiIsImZvckVhY2giLCJkb2MiLCJzdHJpbmdJRCIsIl9pZCIsInRvU3RyaW5nIiwibW9uZ29vc2UiLCJUeXBlcyIsIk9iamVjdElkIiwiaXNWYWxpZCIsIm5leHRTdWJQYXRoIiwibWFwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ2YWxpZE9wZXJhdG9ycyIsImluY2x1ZGVzIiwib3BlcmF0b3JLZXkiLCJvcGVyYXRvck1hcCIsImhhc051bWJlcklEUmVsYXRpb24iLCIkb3IiLCJvYmplY3RJRCIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklEIiwicmVsYXRlZEZpZWxkIiwicGFyc2VGbG9hdCIsIndvcmRzIiwic3BsaXQiLCIkYW5kIiwid29yZCIsIiRvcHRpb25zIiwiJHJlZ2V4IiwidW5kZWZpbmVkIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkE4QnNCQTs7O2VBQUFBOzs7cUVBekJEO2lFQUNBOzBCQUNhO3VCQUNEOzZCQUtMO29DQUNPOzs7Ozs7QUFRbkMsTUFBTUMsa0JBQWtCO0lBQ3RCQyxNQUFNO0lBQ05DLE9BQU87QUFDVDtBQUtPLGVBQWVILGlCQUFpQixFQUNyQ0ksY0FBYyxFQUNkQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsWUFBWSxFQUNaQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsT0FBTyxFQUNQQyxHQUFHLEVBVUo7SUFDQyw0REFBNEQ7SUFDNUQsSUFBSUMsZ0JBQWdCTCxhQUFhTSxPQUFPLENBQUMsT0FBTztJQUNoRCxJQUFJRCxrQkFBa0IsTUFBTUEsZ0JBQWdCO0lBRTVDLElBQUlFLFFBQXVCLEVBQUU7SUFFN0IsSUFBSUMsY0FBYztJQUVsQixJQUFJSCxr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
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU2VhcmNoUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFBhdGhUb1F1ZXJ5IH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRvciB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBPYmplY3RJZEltcG9ydCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgZ2V0TG9jYWxpemVkUGF0aHMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyB2YWxpZE9wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLi4nXG5cbmltcG9ydCB7IG9wZXJhdG9yTWFwIH0gZnJvbSAnLi9vcGVyYXRvck1hcCdcbmltcG9ydCB7IHNhbml0aXplUXVlcnlWYWx1ZSB9IGZyb20gJy4vc2FuaXRpemVRdWVyeVZhbHVlJ1xuXG5jb25zdCBPYmplY3RJZCA9IE9iamVjdElkSW1wb3J0XG5cbnR5cGUgU2VhcmNoUGFyYW0gPSB7XG4gIHBhdGg/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbHVlPzogdW5rbm93blxufVxuXG5jb25zdCBzdWJRdWVyeU9wdGlvbnMgPSB7XG4gIGxlYW46IHRydWUsXG4gIGxpbWl0OiA1MCxcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBQYXlsb2FkIGtleSAvIHZhbHVlIC8gb3BlcmF0b3IgaW50byBhIE1vbmdvREIgcXVlcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkU2VhcmNoUGFyYW0oe1xuICBjb2xsZWN0aW9uU2x1ZyxcbiAgZmllbGRzLFxuICBnbG9iYWxTbHVnLFxuICBpbmNvbWluZ1BhdGgsXG4gIGxvY2FsZSxcbiAgb3BlcmF0b3IsXG4gIHBheWxvYWQsXG4gIHZhbCxcbn06IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGdsb2JhbFNsdWc/OiBzdHJpbmdcbiAgaW5jb21pbmdQYXRoOiBzdHJpbmdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIG9wZXJhdG9yOiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB2YWw6IHVua25vd25cbn0pOiBQcm9taXNlPFNlYXJjaFBhcmFtPiB7XG4gIC8vIFJlcGxhY2UgR3JhcGhRTCBuZXN0ZWQgZmllbGQgZG91YmxlIHVuZGVyc2NvcmUgZm9ybWF0dGluZ1xuICBsZXQgc2FuaXRpemVkUGF0aCA9IGluY29taW5nUGF0aC5yZXBsYWNlKC9fXy9nLCAnLicpXG4gIGlmIChzYW5pdGl6ZWRQYXRoID09PSAnaWQnKSBzYW5pdGl6ZWRQYXRoID0gJ19pZCdcblxuICBsZXQgcGF0aHM6IFBhdGhUb1F1ZXJ5W10gPSBbXVxuXG4gIGxldCBoYXNDdXN0b21JRCA9IGZhbHNlXG5cbiAgaWYgKHNhbml0aXplZFBhdGggPT09ICdfaWQnKSB7XG4gICAgY29uc3QgY3VzdG9tSURmaWVsZCA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddPy5jb25maWcuZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgKVxuXG4gICAgbGV0IGlkRmllbGRUeXBlOiAnbnVtYmVyJyB8ICd0ZXh0JyA9ICd0ZXh0J1xuXG4gICAgaWYgKGN1c3RvbUlEZmllbGQpIHtcbiAgICAgIGlmIChjdXN0b21JRGZpZWxkPy50eXBlID09PSAndGV4dCcgfHwgY3VzdG9tSURmaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWRGaWVsZFR5cGUgPSBjdXN0b21JRGZpZWxkLnR5cGVcbiAgICAgIH1cblxuICAgICAgaGFzQ3VzdG9tSUQgPSB0cnVlXG4gICAgfVxuXG4gICAgcGF0aHMucHVzaCh7XG4gICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgIGNvbXBsZXRlOiB0cnVlLFxuICAgICAgZmllbGQ6IHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdHlwZTogaWRGaWVsZFR5cGUsXG4gICAgICB9IGFzIEZpZWxkLFxuICAgICAgcGF0aDogJ19pZCcsXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBwYXRocyA9IGF3YWl0IGdldExvY2FsaXplZFBhdGhzKHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgZmllbGRzLFxuICAgICAgZ2xvYmFsU2x1ZyxcbiAgICAgIGluY29taW5nUGF0aDogc2FuaXRpemVkUGF0aCxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHBheWxvYWQsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IFt7IGZpZWxkLCBwYXRoIH1dID0gcGF0aHNcblxuICBpZiAocGF0aCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG9wZXJhdG9yOiBmb3JtYXR0ZWRPcGVyYXRvcixcbiAgICAgIHJhd1F1ZXJ5LFxuICAgICAgdmFsOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICB9ID0gc2FuaXRpemVRdWVyeVZhbHVlKHtcbiAgICAgIGZpZWxkLFxuICAgICAgaGFzQ3VzdG9tSUQsXG4gICAgICBvcGVyYXRvcixcbiAgICAgIHBhdGgsXG4gICAgICB2YWwsXG4gICAgfSlcblxuICAgIGlmIChyYXdRdWVyeSkgcmV0dXJuIHsgdmFsdWU6IHJhd1F1ZXJ5IH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBjb2xsZWN0aW9ucyB0byBzZWFyY2ggdGhyb3VnaCxcbiAgICAvLyBSZWN1cnNpdmVseSBidWlsZCB1cCBhIGxpc3Qgb2YgcXVlcnkgY29uc3RyYWludHNcbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gUmVtb3ZlIHRvcCBjb2xsZWN0aW9uIGFuZCByZXZlcnNlIGFycmF5XG4gICAgICAvLyB0byB3b3JrIGJhY2t3YXJkcyBmcm9tIHRvcFxuICAgICAgY29uc3QgcGF0aHNUb1F1ZXJ5ID0gcGF0aHMuc2xpY2UoMSkucmV2ZXJzZSgpXG5cbiAgICAgIGNvbnN0IGluaXRpYWxSZWxhdGlvbnNoaXBRdWVyeSA9IHtcbiAgICAgICAgdmFsdWU6IHt9LFxuICAgICAgfSBhcyBTZWFyY2hQYXJhbVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBRdWVyeSA9IGF3YWl0IHBhdGhzVG9RdWVyeS5yZWR1Y2UoXG4gICAgICAgIGFzeW5jIChwcmlvclF1ZXJ5LCB7IGNvbGxlY3Rpb25TbHVnOiBzbHVnLCBwYXRoOiBzdWJQYXRoIH0sIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBwcmlvclF1ZXJ5UmVzdWx0ID0gYXdhaXQgcHJpb3JRdWVyeVxuXG4gICAgICAgICAgY29uc3QgU3ViTW9kZWwgPSAocGF5bG9hZC5kYiBhcyBNb25nb29zZUFkYXB0ZXIpLmNvbGxlY3Rpb25zW3NsdWddXG5cbiAgICAgICAgICAvLyBPbiB0aGUgXCJkZWVwZXN0XCIgY29sbGVjdGlvbixcbiAgICAgICAgICAvLyBTZWFyY2ggb24gdGhlIHZhbHVlIHBhc3NlZCB0aHJvdWdoIHRoZSBxdWVyeVxuICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJRdWVyeSA9IGF3YWl0IFN1Yk1vZGVsLmJ1aWxkUXVlcnkoe1xuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgICAgW3N1YlBhdGhdOiB7XG4gICAgICAgICAgICAgICAgICBbZm9ybWF0dGVkT3BlcmF0b3JdOiB2YWwsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFN1Yk1vZGVsLmZpbmQoc3ViUXVlcnksIHN1YlF1ZXJ5T3B0aW9ucylcblxuICAgICAgICAgICAgY29uc3QgJGluOiB1bmtub3duW10gPSBbXVxuXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgoZG9jKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0cmluZ0lEID0gZG9jLl9pZC50b1N0cmluZygpXG4gICAgICAgICAgICAgICRpbi5wdXNoKHN0cmluZ0lEKVxuXG4gICAgICAgICAgICAgIGlmIChtb25nb29zZS5UeXBlcy5PYmplY3RJZC5pc1ZhbGlkKHN0cmluZ0lEKSkge1xuICAgICAgICAgICAgICAgICRpbi5wdXNoKGRvYy5faWQpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChwYXRoc1RvUXVlcnkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogeyAkaW4gfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXh0U3ViUGF0aCA9IHBhdGhzVG9RdWVyeVtpICsgMV0ucGF0aFxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB2YWx1ZTogeyBbbmV4dFN1YlBhdGhdOiB7ICRpbiB9IH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3ViUXVlcnkgPSBwcmlvclF1ZXJ5UmVzdWx0LnZhbHVlXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU3ViTW9kZWwuZmluZChzdWJRdWVyeSwgc3ViUXVlcnlPcHRpb25zKVxuXG4gICAgICAgICAgY29uc3QgJGluID0gcmVzdWx0Lm1hcCgoZG9jKSA9PiBkb2MuX2lkLnRvU3RyaW5nKCkpXG5cbiAgICAgICAgICAvLyBJZiBpdCBpcyB0aGUgbGFzdCByZWN1cnNpb25cbiAgICAgICAgICAvLyB0aGVuIHBhc3MgdGhyb3VnaCB0aGUgc2VhcmNoIHBhcmFtXG4gICAgICAgICAgaWYgKGkgKyAxID09PSBwYXRoc1RvUXVlcnkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICB2YWx1ZTogeyAkaW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgX2lkOiB7ICRpbiB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFByb21pc2UucmVzb2x2ZShpbml0aWFsUmVsYXRpb25zaGlwUXVlcnkpLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gcmVsYXRpb25zaGlwUXVlcnlcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0dGVkT3BlcmF0b3IgJiYgdmFsaWRPcGVyYXRvcnMuaW5jbHVkZXMoZm9ybWF0dGVkT3BlcmF0b3IgYXMgT3BlcmF0b3IpKSB7XG4gICAgICBjb25zdCBvcGVyYXRvcktleSA9IG9wZXJhdG9yTWFwW2Zvcm1hdHRlZE9wZXJhdG9yXVxuXG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgfHwgZmllbGQudHlwZSA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgbGV0IGhhc051bWJlcklEUmVsYXRpb25cbiAgICAgICAgbGV0IG11bHRpSURDb25kaXRpb24gPSAnJG9yJ1xuICAgICAgICBpZiAob3BlcmF0b3JLZXkgPT09ICckbmUnKSBtdWx0aUlEQ29uZGl0aW9uID0gJyRhbmQnXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBbbXVsdGlJRENvbmRpdGlvbl06IFt7IFtwYXRoXTogeyBbb3BlcmF0b3JLZXldOiBmb3JtYXR0ZWRWYWx1ZSB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmIChtb25nb29zZS5UeXBlcy5PYmplY3RJZC5pc1ZhbGlkKGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0LnZhbHVlW211bHRpSURDb25kaXRpb25dLnB1c2goe1xuICAgICAgICAgICAgICBbcGF0aF06IHsgW29wZXJhdG9yS2V5XTogT2JqZWN0SWQoZm9ybWF0dGVkVmFsdWUpIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7KEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykgPyBmaWVsZC5yZWxhdGlvblRvIDogW2ZpZWxkLnJlbGF0aW9uVG9dKS5mb3JFYWNoKFxuICAgICAgICAgICAgICAocmVsYXRpb25UbykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQgPSBwYXlsb2FkLmNvbGxlY3Rpb25zW1xuICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ub1xuICAgICAgICAgICAgICAgIF0/LmNvbmZpZz8uZmllbGRzLmZpbmQoKHJlbGF0ZWRGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShyZWxhdGVkRmllbGQpICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZC5uYW1lID09PSAnaWQnICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZC50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9DdXN0b21OdW1iZXJJRCkge1xuICAgICAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQudHlwZSA9PT0gJ251bWJlcicpIGhhc051bWJlcklEUmVsYXRpb24gPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAoaGFzTnVtYmVySURSZWxhdGlvbilcbiAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlW211bHRpSURDb25kaXRpb25dLnB1c2goe1xuICAgICAgICAgICAgICAgIFtwYXRoXTogeyBbb3BlcmF0b3JLZXldOiBwYXJzZUZsb2F0KGZvcm1hdHRlZFZhbHVlKSB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQudmFsdWVbbXVsdGlJRENvbmRpdGlvbl0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybWF0dGVkT3BlcmF0b3IgPT09ICdsaWtlJyAmJiB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHdvcmRzID0gZm9ybWF0dGVkVmFsdWUuc3BsaXQoJyAnKVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgJGFuZDogd29yZHMubWFwKCh3b3JkKSA9PiAoe1xuICAgICAgICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAgICAgICAkb3B0aW9uczogJ2knLFxuICAgICAgICAgICAgICAgICRyZWdleDogd29yZC5yZXBsYWNlKC9bXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9XG5cbiAgICAgIC8vIFNvbWUgb3BlcmF0b3JzIGxpa2UgJ25lYXInIG5lZWQgdG8gZGVmaW5lIGEgZnVsbCBxdWVyeVxuICAgICAgLy8gc28gaWYgdGhlcmUgaXMgbm8gb3BlcmF0b3Iga2V5LCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICAgIGlmICghb3BlcmF0b3JLZXkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoLFxuICAgICAgICB2YWx1ZTogeyBbb3BlcmF0b3JLZXldOiBmb3JtYXR0ZWRWYWx1ZSB9LFxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiYnVpbGRTZWFyY2hQYXJhbSIsIk9iamVjdElkIiwiT2JqZWN0SWRJbXBvcnQiLCJzdWJRdWVyeU9wdGlvbnMiLCJsZWFuIiwibGltaXQiLCJjb2xsZWN0aW9uU2x1ZyIsImZpZWxkcyIsImdsb2JhbFNsdWciLCJpbmNvbWluZ1BhdGgiLCJsb2NhbGUiLCJvcGVyYXRvciIsInBheWxvYWQiLCJ2YWwiLCJzYW5pdGl6ZWRQYXRoIiwicmVwbGFjZSIsInBhdGhzIiwiaGFzQ3VzdG9tSUQiLCJjdXN0b21JRGZpZWxkIiwiY29sbGVjdGlvbnMiLCJjb25maWciLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImlkRmllbGRUeXBlIiwidHlwZSIsInB1c2giLCJjb21wbGV0ZSIsInBhdGgiLCJnZXRMb2NhbGl6ZWRQYXRocyIsImZvcm1hdHRlZE9wZXJhdG9yIiwicmF3UXVlcnkiLCJmb3JtYXR0ZWRWYWx1ZSIsInNhbml0aXplUXVlcnlWYWx1ZSIsInZhbHVlIiwibGVuZ3RoIiwicGF0aHNUb1F1ZXJ5Iiwic2xpY2UiLCJyZXZlcnNlIiwiaW5pdGlhbFJlbGF0aW9uc2hpcFF1ZXJ5IiwicmVsYXRpb25zaGlwUXVlcnkiLCJyZWR1Y2UiLCJwcmlvclF1ZXJ5Iiwic2x1ZyIsInN1YlBhdGgiLCJpIiwicHJpb3JRdWVyeVJlc3VsdCIsIlN1Yk1vZGVsIiwiZGIiLCJzdWJRdWVyeSIsImJ1aWxkUXVlcnkiLCJ3aGVyZSIsInJlc3VsdCIsIiRpbiIsImZvckVhY2giLCJkb2MiLCJzdHJpbmdJRCIsIl9pZCIsInRvU3RyaW5nIiwibW9uZ29vc2UiLCJUeXBlcyIsImlzVmFsaWQiLCJuZXh0U3ViUGF0aCIsIm1hcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidmFsaWRPcGVyYXRvcnMiLCJpbmNsdWRlcyIsIm9wZXJhdG9yS2V5Iiwib3BlcmF0b3JNYXAiLCJoYXNOdW1iZXJJRFJlbGF0aW9uIiwibXVsdGlJRENvbmRpdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklEIiwicmVsYXRlZEZpZWxkIiwicGFyc2VGbG9hdCIsIndvcmRzIiwic3BsaXQiLCIkYW5kIiwid29yZCIsIiRvcHRpb25zIiwiJHJlZ2V4IiwidW5kZWZpbmVkIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQ3NCQTs7O2VBQUFBOzs7cUVBM0JLO2lFQUNOOzBCQUNhO3VCQUNEOzZCQUtMO29DQUNPOzs7Ozs7QUFFbkMsTUFBTUMsV0FB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
@@ -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;AA8CD,eAAO,MAAM,kBAAkB,iDAM5B,sBAAsB;eACZ,MAAM;eACN,OAAO;UACZ,OAAO;CA8Jd,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;AAsED,eAAO,MAAM,kBAAkB,iDAM5B,sBAAsB;eACZ,MAAM;eACN,OAAO;UACZ,OAAO;CA4Kd,CAAA"}
@@ -70,6 +70,53 @@ const handleNonHasManyValues = (formattedValue, operator, path)=>{
70
70
  };
71
71
  }
72
72
  };
73
+ const buildExistsQuery = (formattedValue, path)=>{
74
+ if (formattedValue) {
75
+ return {
76
+ rawQuery: {
77
+ $and: [
78
+ {
79
+ [path]: {
80
+ $exists: true
81
+ }
82
+ },
83
+ {
84
+ [path]: {
85
+ $ne: null
86
+ }
87
+ },
88
+ {
89
+ [path]: {
90
+ $ne: ''
91
+ }
92
+ }
93
+ ]
94
+ }
95
+ };
96
+ } else {
97
+ return {
98
+ rawQuery: {
99
+ $or: [
100
+ {
101
+ [path]: {
102
+ $exists: false
103
+ }
104
+ },
105
+ {
106
+ [path]: {
107
+ $eq: null
108
+ }
109
+ },
110
+ {
111
+ [path]: {
112
+ $eq: ''
113
+ }
114
+ }
115
+ ]
116
+ }
117
+ };
118
+ }
119
+ };
73
120
  const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
74
121
  let formattedValue = val;
75
122
  let formattedOperator = operator;
@@ -109,8 +156,14 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
109
156
  formattedValue = formattedValue.map((arrayVal)=>parseFloat(arrayVal));
110
157
  }
111
158
  }
112
- if (field.type === 'number' && typeof formattedValue === 'string') {
113
- formattedValue = Number(val);
159
+ if (field.type === 'number') {
160
+ if (typeof formattedValue === 'string' && operator !== 'exists') {
161
+ formattedValue = Number(val);
162
+ }
163
+ if (operator === 'exists') {
164
+ formattedValue = val === 'true' ? true : val === 'false' ? false : Boolean(val);
165
+ return buildExistsQuery(formattedValue, path);
166
+ }
114
167
  }
115
168
  if (field.type === 'date' && typeof val === 'string' && operator !== 'exists') {
116
169
  formattedValue = new Date(val);
@@ -198,6 +251,10 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
198
251
  $regex: formattedValue.replace(/[\\^$*+?.()|[\]{}]/g, '\\$&')
199
252
  };
200
253
  }
254
+ if (operator === 'exists') {
255
+ formattedValue = formattedValue === 'true' || formattedValue === true;
256
+ return buildExistsQuery(formattedValue, path);
257
+ }
201
258
  }
202
259
  if ((path === '_id' || path === 'parent') && operator === 'like' && formattedValue.length === 24 && !hasCustomID) {
203
260
  formattedOperator = 'equals';
@@ -253,4 +310,4 @@ const sanitizeQueryValue = ({ field, hasCustomID, operator, path, val })=>{
253
310
  };
254
311
  };
255
312
 
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5jb25zdCBoYW5kbGVIYXNNYW55VmFsdWVzID0gKGZvcm1hdHRlZFZhbHVlKSA9PiB7XG4gIHJldHVybiBmb3JtYXR0ZWRWYWx1ZS5yZWR1Y2UoKGZvcm1hdHRlZFZhbHVlcywgaW5WYWwpID0+IHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSBbaW5WYWxdXG4gICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoaW5WYWwpKSB7XG4gICAgICBuZXdWYWx1ZXMucHVzaChuZXcgbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoaW5WYWwpKVxuICAgIH1cbiAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZUZsb2F0KGluVmFsKVxuICAgIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgIG5ld1ZhbHVlcy5wdXNoKHBhcnNlZE51bWJlcilcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLmZvcm1hdHRlZFZhbHVlcywgLi4ubmV3VmFsdWVzXVxuICB9LCBbXSlcbn1cblxuY29uc3QgaGFuZGxlTm9uSGFzTWFueVZhbHVlcyA9IChmb3JtYXR0ZWRWYWx1ZSwgb3BlcmF0b3IsIHBhdGgpID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkUXVlcmllcyA9IGZvcm1hdHRlZFZhbHVlXG4gICAgLm1hcCgoaW5WYWwpID0+IHtcbiAgICAgIGlmIChpblZhbCAmJiB0eXBlb2YgaW5WYWwgPT09ICdvYmplY3QnICYmICdyZWxhdGlvblRvJyBpbiBpblZhbCAmJiAndmFsdWUnIGluIGluVmFsKSB7XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2luJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogaW5WYWwucmVsYXRpb25UbyB9LFxuICAgICAgICAgICAgW2Ake3BhdGh9LnZhbHVlYF06IHsgJGVxOiBpblZhbC52YWx1ZSB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gJ25vdF9pbicpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGFuZDogW1xuICAgICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiBpblZhbC52YWx1ZSB9LFxuICAgICAgICAgICAgICB7IFtgJHtwYXRofS5yZWxhdGlvblRvYF06IGluVmFsLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuXG4gIGlmIChmb3JtYXR0ZWRRdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF3UXVlcnk6IG9wZXJhdG9yID09PSAnaW4nID8geyAkb3I6IGZvcm1hdHRlZFF1ZXJpZXMgfSA6IHsgJG5vcjogZm9ybWF0dGVkUXVlcmllcyB9LFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgZmllbGQsXG4gIGhhc0N1c3RvbUlELFxuICBvcGVyYXRvcixcbiAgcGF0aCxcbiAgdmFsLFxufTogU2FuaXRpemVRdWVyeVZhbHVlQXJncyk6IHtcbiAgb3BlcmF0b3I/OiBzdHJpbmdcbiAgcmF3UXVlcnk/OiB1bmtub3duXG4gIHZhbD86IHVua25vd25cbn0gPT4ge1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcbiAgbGV0IGZvcm1hdHRlZE9wZXJhdG9yID0gb3BlcmF0b3JcblxuICAvLyBEaXNyZWdhcmQgaW52YWxpZCBfaWRzXG4gIGlmIChwYXRoID09PSAnX2lkJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3BsaXQoJywnKS5sZW5ndGggPT09IDEpIHtcbiAgICBpZiAoIWhhc0N1c3RvbUlEKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZCh2YWwpXG5cbiAgICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHBhcnNlRmxvYXQodmFsKVxuXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3I6IGZvcm1hdHRlZE9wZXJhdG9yLCB2YWw6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FzdCBpbmNvbWluZyB2YWx1ZXMgYXMgcHJvcGVyIHNlYXJjaGFibGUgdHlwZXNcbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJykgZm9ybWF0dGVkVmFsdWUgPSB0cnVlXG4gICAgaWYgKHZhbC50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSBmb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlXG4gIH1cblxuICBpZiAoWydhbGwnLCAnaW4nLCAnbm90X2luJ10uaW5jbHVkZXMob3BlcmF0b3IpICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZChmb3JtYXR0ZWRWYWx1ZSlcblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZS5tYXAoKGFycmF5VmFsKSA9PiBwYXJzZUZsb2F0KGFycmF5VmFsKSlcbiAgICB9XG4gIH1cblxuICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gTnVtYmVyKHZhbClcbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgb3BlcmF0b3IgIT09ICdleGlzdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSh2YWwpXG4gICAgaWYgKE51bWJlci5pc05hTihEYXRlLnBhcnNlKGZvcm1hdHRlZFZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBpZiAoWydyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICBpZiAodmFsID09PSAnbnVsbCcpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbnVsbFxuICAgIH1cblxuICAgIC8vIE9iamVjdCBlcXVhbGl0eSByZXF1aXJlcyB0aGUgdmFsdWUgdG8gYmUgdGhlIGZpcnN0IGtleSBpbiB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcXVlcmllZC5cbiAgICBpZiAoXG4gICAgICBvcGVyYXRvciA9PT0gJ2VxdWFscycgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlICYmXG4gICAgICB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUucmVsYXRpb25Ub1xuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmF3UXVlcnk6IHtcbiAgICAgICAgICAkYW5kOiBbXG4gICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUudmFsdWUgfSB9LFxuICAgICAgICAgICAgeyBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogZm9ybWF0dGVkVmFsdWUucmVsYXRpb25UbyB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydpbicsICdub3RfaW4nXS5pbmNsdWRlcyhvcGVyYXRvcikgJiYgQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIGlmICgnaGFzTWFueScgaW4gZmllbGQgJiYgZmllbGQuaGFzTWFueSkge1xuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSA9IGhhbmRsZUhhc01hbnlWYWx1ZXMoZm9ybWF0dGVkVmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVOb25IYXNNYW55VmFsdWVzKGZvcm1hdHRlZFZhbHVlLCBvcGVyYXRvciwgcGF0aClcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB1cCBzcGVjaWZpYyBmb3JtYXR0aW5nIG5lY2Vzc2FyeSBieSBvcGVyYXRvcnNcblxuICBpZiAob3BlcmF0b3IgPT09ICduZWFyJykge1xuICAgIGxldCBsbmdcbiAgICBsZXQgbGF0XG4gICAgbGV0IG1heERpc3RhbmNlXG4gICAgbGV0IG1pbkRpc3RhbmNlXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgIDtbbG5nLCBsYXQsIG1heERpc3RhbmNlLCBtaW5EaXN0YW5jZV0gPSBmb3JtYXR0ZWRWYWx1ZVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICA7W2xuZywgbGF0LCBtYXhEaXN0YW5jZSwgbWluRGlzdGFuY2VdID0gY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkKGZvcm1hdHRlZFZhbHVlKVxuICAgIH1cblxuICAgIGlmIChsbmcgPT0gbnVsbCB8fCBsYXQgPT0gbnVsbCB8fCAobWF4RGlzdGFuY2UgPT0gbnVsbCAmJiBtaW5EaXN0YW5jZSA9PSBudWxsKSkge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAgICRnZW9tZXRyeTogeyB0eXBlOiAnUG9pbnQnLCBjb29yZGluYXRlczogW3BhcnNlRmxvYXQobG5nKSwgcGFyc2VGbG9hdChsYXQpXSB9LFxuICAgICAgfVxuXG4gICAgICBpZiAobWF4RGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtYXhEaXN0YW5jZSA9IHBhcnNlRmxvYXQobWF4RGlzdGFuY2UpXG4gICAgICBpZiAobWluRGlzdGFuY2UpIGZvcm1hdHRlZFZhbHVlLiRtaW5EaXN0YW5jZSA9IHBhcnNlRmxvYXQobWluRGlzdGFuY2UpXG4gICAgfVxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnd2l0aGluJyB8fCBvcGVyYXRvciA9PT0gJ2ludGVyc2VjdHMnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAkZ2VvbWV0cnk6IGZvcm1hdHRlZFZhbHVlLFxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXRoICE9PSAnX2lkJyB8fCAocGF0aCA9PT0gJ19pZCcgJiYgaGFzQ3VzdG9tSUQgJiYgZmllbGQudHlwZSA9PT0gJ3RleHQnKSkge1xuICAgIGlmIChvcGVyYXRvciA9PT0gJ2NvbnRhaW5zJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSB7XG4gICAgICAgICRvcHRpb25zOiAnaScsXG4gICAgICAgICRyZWdleDogZm9ybWF0dGVkVmFsdWUucmVwbGFjZSgvW1xcXFxeJCorPy4oKXxbXFxde31dL2csICdcXFxcJCYnKSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgKHBhdGggPT09ICdfaWQnIHx8IHBhdGggPT09ICdwYXJlbnQnKSAmJlxuICAgIG9wZXJhdG9yID09PSAnbGlrZScgJiZcbiAgICBmb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPT09IDI0ICYmXG4gICAgIWhhc0N1c3RvbUlEXG4gICkge1xuICAgIGZvcm1hdHRlZE9wZXJhdG9yID0gJ2VxdWFscydcbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlID09PSAndHJ1ZScgfHwgZm9ybWF0dGVkVmFsdWUgPT09IHRydWVcblxuICAgIC8vIENsZWFyYWJsZSBmaWVsZHNcbiAgICBpZiAoWydyZWxhdGlvbnNoaXAnLCAnc2VsZWN0JywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICBpZiAoZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICAgJGFuZDogW3sgW3BhdGhdOiB7ICRleGlzdHM6IHRydWUgfSB9LCB7IFtwYXRoXTogeyAkbmU6IG51bGwgfSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhd1F1ZXJ5OiB7XG4gICAgICAgICAgICAkb3I6IFt7IFtwYXRoXTogeyAkZXhpc3RzOiBmYWxzZSB9IH0sIHsgW3BhdGhdOiB7ICRlcTogbnVsbCB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogZm9ybWF0dGVkVmFsdWUgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplUXVlcnlWYWx1ZSIsImhhbmRsZUhhc01hbnlWYWx1ZXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInJlZHVjZSIsImZvcm1hdHRlZFZhbHVlcyIsImluVmFsIiwibmV3VmFsdWVzIiwibW9uZ29vc2UiLCJUeXBlcyIsIk9iamVjdElkIiwiaXNWYWxpZCIsInB1c2giLCJwYXJzZWROdW1iZXIiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNOYU4iLCJoYW5kbGVOb25IYXNNYW55VmFsdWVzIiwib3BlcmF0b3IiLCJwYXRoIiwiZm9ybWF0dGVkUXVlcmllcyIsIm1hcCIsIiRlcSIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsIiRhbmQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwicmF3UXVlcnkiLCIkb3IiLCIkbm9yIiwiZmllbGQiLCJoYXNDdXN0b21JRCIsInZhbCIsImZvcm1hdHRlZE9wZXJhdG9yIiwic3BsaXQiLCJ1bmRlZmluZWQiLCJ0eXBlIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCIsImFycmF5VmFsIiwiRGF0ZSIsInBhcnNlIiwiQXJyYXkiLCJpc0FycmF5IiwiaGFzTWFueSIsInJlc3VsdCIsImxuZyIsImxhdCIsIm1heERpc3RhbmNlIiwibWluRGlzdGFuY2UiLCIkZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsIiRtYXhEaXN0YW5jZSIsIiRtaW5EaXN0YW5jZSIsIiRvcHRpb25zIiwiJHJlZ2V4IiwicmVwbGFjZSIsIiRleGlzdHMiLCIkbmUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgU2FuaXRpemVRdWVyeVZhbHVlQXJncyA9IHtcbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBoYXNDdXN0b21JRDogYm9vbGVhblxuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5jb25zdCBoYW5kbGVIYXNNYW55VmFsdWVzID0gKGZvcm1hdHRlZFZhbHVlKSA9PiB7XG4gIHJldHVybiBmb3JtYXR0ZWRWYWx1ZS5yZWR1Y2UoKGZvcm1hdHRlZFZhbHVlcywgaW5WYWwpID0+IHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSBbaW5WYWxdXG4gICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoaW5WYWwpKSB7XG4gICAgICBuZXdWYWx1ZXMucHVzaChuZXcgbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoaW5WYWwpKVxuICAgIH1cbiAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZUZsb2F0KGluVmFsKVxuICAgIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICAgIG5ld1ZhbHVlcy5wdXNoKHBhcnNlZE51bWJlcilcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLmZvcm1hdHRlZFZhbHVlcywgLi4ubmV3VmFsdWVzXVxuICB9LCBbXSlcbn1cblxuY29uc3QgaGFuZGxlTm9uSGFzTWFueVZhbHVlcyA9IChmb3JtYXR0ZWRWYWx1ZSwgb3BlcmF0b3IsIHBhdGgpID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkUXVlcmllcyA9IGZvcm1hdHRlZFZhbHVlXG4gICAgLm1hcCgoaW5WYWwpID0+IHtcbiAgICAgIGlmIChpblZhbCAmJiB0eXBlb2YgaW5WYWwgPT09ICdvYmplY3QnICYmICdyZWxhdGlvblRvJyBpbiBpblZhbCAmJiAndmFsdWUnIGluIGluVmFsKSB7XG4gICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2luJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYCR7cGF0aH0ucmVsYXRpb25Ub2BdOiB7ICRlcTogaW5WYWwucmVsYXRpb25UbyB9LFxuICAgICAgICAgICAgW2Ake3BhdGh9LnZhbHVlYF06IHsgJGVxOiBpblZhbC52YWx1ZSB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gJ25vdF9pbicpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGFuZDogW1xuICAgICAgICAgICAgICB7IFtgJHtwYXRofS52YWx1ZWBdOiBpblZhbC52YWx1ZSB9LFxuICAgICAgICAgICAgICB7IFtgJHtwYXRofS5yZWxhdGlvblRvYF06IGluVmFsLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuXG4gIGlmIChmb3JtYXR0ZWRRdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF3UXVlcnk6IG9wZXJhdG9yID09PSAnaW4nID8geyAkb3I6IGZvcm1hdHRlZFF1ZXJpZXMgfSA6IHsgJG5vcjogZm9ybWF0dGVkUXVlcmllcyB9LFxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBidWlsZEV4aXN0c1F1ZXJ5ID0gKGZvcm1hdHRlZFZhbHVlLCBwYXRoKSA9PiB7XG4gIGlmIChmb3JtYXR0ZWRWYWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICByYXdRdWVyeToge1xuICAgICAgICAkYW5kOiBbXG4gICAgICAgICAgeyBbcGF0aF06IHsgJGV4aXN0czogdHJ1ZSB9IH0sXG4gICAgICAgICAgeyBbcGF0aF06IHsgJG5lOiBudWxsIH0gfSxcbiAgICAgICAgICB7IFtwYXRoXTogeyAkbmU6ICcnIH0gfSwgLy8gRXhjbHVkZSBudWxsIGFuZCBlbXB0eSBzdHJpbmdcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICByYXdRdWVyeToge1xuICAgICAgICAkb3I6IFtcbiAgICAgICAgICB7IFtwYXRoXTogeyAkZXhpc3RzOiBmYWxzZSB9IH0sXG4gICAgICAgICAgeyBbcGF0aF06IHsgJGVxOiBudWxsIH0gfSxcbiAgICAgICAgICB7IFtwYXRoXTogeyAkZXE6ICcnIH0gfSwgLy8gVHJlYXQgZW1wdHkgc3RyaW5nIGFzIG51bGwgLyB1bmRlZmluZWRcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzYW5pdGl6ZVF1ZXJ5VmFsdWUgPSAoe1xuICBmaWVsZCxcbiAgaGFzQ3VzdG9tSUQsXG4gIG9wZXJhdG9yLFxuICBwYXRoLFxuICB2YWwsXG59OiBTYW5pdGl6ZVF1ZXJ5VmFsdWVBcmdzKToge1xuICBvcGVyYXRvcj86IHN0cmluZ1xuICByYXdRdWVyeT86IHVua25vd25cbiAgdmFsPzogdW5rbm93blxufSA9PiB7XG4gIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IHZhbFxuICBsZXQgZm9ybWF0dGVkT3BlcmF0b3IgPSBvcGVyYXRvclxuXG4gIC8vIERpc3JlZ2FyZCBpbnZhbGlkIF9pZHNcbiAgaWYgKHBhdGggPT09ICdfaWQnICYmIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmIHZhbC5zcGxpdCgnLCcpLmxlbmd0aCA9PT0gMSkge1xuICAgIGlmICghaGFzQ3VzdG9tSUQpIHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBtb25nb29zZS5UeXBlcy5PYmplY3RJZC5pc1ZhbGlkKHZhbClcblxuICAgICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIHJldHVybiB7IG9wZXJhdG9yOiBmb3JtYXR0ZWRPcGVyYXRvciwgdmFsOiB1bmRlZmluZWQgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgY29uc3QgcGFyc2VkTnVtYmVyID0gcGFyc2VGbG9hdCh2YWwpXG5cbiAgICAgIGlmIChOdW1iZXIuaXNOYU4ocGFyc2VkTnVtYmVyKSkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogdW5kZWZpbmVkIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDYXN0IGluY29taW5nIHZhbHVlcyBhcyBwcm9wZXIgc2VhcmNoYWJsZSB0eXBlc1xuICBpZiAoZmllbGQudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWwudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSBmb3JtYXR0ZWRWYWx1ZSA9IHRydWVcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICdmYWxzZScpIGZvcm1hdHRlZFZhbHVlID0gZmFsc2VcbiAgfVxuXG4gIGlmIChbJ2FsbCcsICdpbicsICdub3RfaW4nXS5pbmNsdWRlcyhvcGVyYXRvcikgJiYgdHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkKGZvcm1hdHRlZFZhbHVlKVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlLm1hcCgoYXJyYXlWYWwpID0+IHBhcnNlRmxvYXQoYXJyYXlWYWwpKVxuICAgIH1cbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnICYmIG9wZXJhdG9yICE9PSAnZXhpc3RzJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBOdW1iZXIodmFsKVxuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gdmFsID09PSAndHJ1ZScgPyB0cnVlIDogdmFsID09PSAnZmFsc2UnID8gZmFsc2UgOiBCb29sZWFuKHZhbClcblxuICAgICAgcmV0dXJuIGJ1aWxkRXhpc3RzUXVlcnkoZm9ybWF0dGVkVmFsdWUsIHBhdGgpXG4gICAgfVxuICB9XG5cbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdkYXRlJyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiBvcGVyYXRvciAhPT0gJ2V4aXN0cycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoTnVtYmVyLmlzTmFOKERhdGUucGFyc2UoZm9ybWF0dGVkVmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIGlmIChbJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgIGlmICh2YWwgPT09ICdudWxsJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBudWxsXG4gICAgfVxuXG4gICAgLy8gT2JqZWN0IGVxdWFsaXR5IHJlcXVpcmVzIHRoZSB2YWx1ZSB0byBiZSB0aGUgZmlyc3Qga2V5IGluIHRoZSBvYmplY3QgdGhhdCBpcyBiZWluZyBxdWVyaWVkLlxuICAgIGlmIChcbiAgICAgIG9wZXJhdG9yID09PSAnZXF1YWxzJyAmJlxuICAgICAgZm9ybWF0dGVkVmFsdWUgJiZcbiAgICAgIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIGZvcm1hdHRlZFZhbHVlLnZhbHVlICYmXG4gICAgICBmb3JtYXR0ZWRWYWx1ZS5yZWxhdGlvblRvXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICRhbmQ6IFtcbiAgICAgICAgICAgIHsgW2Ake3BhdGh9LnZhbHVlYF06IHsgJGVxOiBmb3JtYXR0ZWRWYWx1ZS52YWx1ZSB9IH0sXG4gICAgICAgICAgICB7IFtgJHtwYXRofS5yZWxhdGlvblRvYF06IHsgJGVxOiBmb3JtYXR0ZWRWYWx1ZS5yZWxhdGlvblRvIH0gfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChbJ2luJywgJ25vdF9pbiddLmluY2x1ZGVzKG9wZXJhdG9yKSAmJiBBcnJheS5pc0FycmF5KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgaWYgKCdoYXNNYW55JyBpbiBmaWVsZCAmJiBmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIGZvcm1hdHRlZFZhbHVlID0gaGFuZGxlSGFzTWFueVZhbHVlcyhmb3JtYXR0ZWRWYWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZU5vbkhhc01hbnlWYWx1ZXMoZm9ybWF0dGVkVmFsdWUsIG9wZXJhdG9yLCBwYXRoKVxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IHVwIHNwZWNpZmljIGZvcm1hdHRpbmcgbmVjZXNzYXJ5IGJ5IG9wZXJhdG9yc1xuXG4gIGlmIChvcGVyYXRvciA9PT0gJ25lYXInKSB7XG4gICAgbGV0IGxuZ1xuICAgIGxldCBsYXRcbiAgICBsZXQgbWF4RGlzdGFuY2VcbiAgICBsZXQgbWluRGlzdGFuY2VcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgO1tsbmcsIGxhdCwgbWF4RGlzdGFuY2UsIG1pbkRpc3RhbmNlXSA9IGZvcm1hdHRlZFZhbHVlXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIDtbbG5nLCBsYXQsIG1heERpc3RhbmNlLCBtaW5EaXN0YW5jZV0gPSBjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQoZm9ybWF0dGVkVmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKGxuZyA9PSBudWxsIHx8IGxhdCA9PSBudWxsIHx8IChtYXhEaXN0YW5jZSA9PSBudWxsICYmIG1pbkRpc3RhbmNlID09IG51bGwpKSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IHVuZGVmaW5lZFxuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IHtcbiAgICAgICAgJGdlb21ldHJ5OiB7IHR5cGU6ICdQb2ludCcsIGNvb3JkaW5hdGVzOiBbcGFyc2VGbG9hdChsbmcpLCBwYXJzZUZsb2F0KGxhdCldIH0sXG4gICAgICB9XG5cbiAgICAgIGlmIChtYXhEaXN0YW5jZSkgZm9ybWF0dGVkVmFsdWUuJG1heERpc3RhbmNlID0gcGFyc2VGbG9hdChtYXhEaXN0YW5jZSlcbiAgICAgIGlmIChtaW5EaXN0YW5jZSkgZm9ybWF0dGVkVmFsdWUuJG1pbkRpc3RhbmNlID0gcGFyc2VGbG9hdChtaW5EaXN0YW5jZSlcbiAgICB9XG4gIH1cblxuICBpZiAob3BlcmF0b3IgPT09ICd3aXRoaW4nIHx8IG9wZXJhdG9yID09PSAnaW50ZXJzZWN0cycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IHtcbiAgICAgICRnZW9tZXRyeTogZm9ybWF0dGVkVmFsdWUsXG4gICAgfVxuICB9XG5cbiAgaWYgKHBhdGggIT09ICdfaWQnIHx8IChwYXRoID09PSAnX2lkJyAmJiBoYXNDdXN0b21JRCAmJiBmaWVsZC50eXBlID09PSAndGV4dCcpKSB7XG4gICAgaWYgKG9wZXJhdG9yID09PSAnY29udGFpbnMnKSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IHtcbiAgICAgICAgJG9wdGlvbnM6ICdpJyxcbiAgICAgICAgJHJlZ2V4OiBmb3JtYXR0ZWRWYWx1ZS5yZXBsYWNlKC9bXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpLFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUgPT09ICd0cnVlJyB8fCBmb3JtYXR0ZWRWYWx1ZSA9PT0gdHJ1ZVxuXG4gICAgICByZXR1cm4gYnVpbGRFeGlzdHNRdWVyeShmb3JtYXR0ZWRWYWx1ZSwgcGF0aClcbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgKHBhdGggPT09ICdfaWQnIHx8IHBhdGggPT09ICdwYXJlbnQnKSAmJlxuICAgIG9wZXJhdG9yID09PSAnbGlrZScgJiZcbiAgICBmb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPT09IDI0ICYmXG4gICAgIWhhc0N1c3RvbUlEXG4gICkge1xuICAgIGZvcm1hdHRlZE9wZXJhdG9yID0gJ2VxdWFscydcbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlID09PSAndHJ1ZScgfHwgZm9ybWF0dGVkVmFsdWUgPT09IHRydWVcblxuICAgIC8vIENsZWFyYWJsZSBmaWVsZHNcbiAgICBpZiAoWydyZWxhdGlvbnNoaXAnLCAnc2VsZWN0JywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICBpZiAoZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByYXdRdWVyeToge1xuICAgICAgICAgICAgJGFuZDogW3sgW3BhdGhdOiB7ICRleGlzdHM6IHRydWUgfSB9LCB7IFtwYXRoXTogeyAkbmU6IG51bGwgfSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJhd1F1ZXJ5OiB7XG4gICAgICAgICAgICAkb3I6IFt7IFtwYXRoXTogeyAkZXhpc3RzOiBmYWxzZSB9IH0sIHsgW3BhdGhdOiB7ICRlcTogbnVsbCB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsIHZhbDogZm9ybWF0dGVkVmFsdWUgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplUXVlcnlWYWx1ZSIsImhhbmRsZUhhc01hbnlWYWx1ZXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInJlZHVjZSIsImZvcm1hdHRlZFZhbHVlcyIsImluVmFsIiwibmV3VmFsdWVzIiwibW9uZ29vc2UiLCJUeXBlcyIsIk9iamVjdElkIiwiaXNWYWxpZCIsInB1c2giLCJwYXJzZWROdW1iZXIiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNOYU4iLCJoYW5kbGVOb25IYXNNYW55VmFsdWVzIiwib3BlcmF0b3IiLCJwYXRoIiwiZm9ybWF0dGVkUXVlcmllcyIsIm1hcCIsIiRlcSIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsIiRhbmQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwicmF3UXVlcnkiLCIkb3IiLCIkbm9yIiwiYnVpbGRFeGlzdHNRdWVyeSIsIiRleGlzdHMiLCIkbmUiLCJmaWVsZCIsImhhc0N1c3RvbUlEIiwidmFsIiwiZm9ybWF0dGVkT3BlcmF0b3IiLCJzcGxpdCIsInVuZGVmaW5lZCIsInR5cGUiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIiwiYXJyYXlWYWwiLCJEYXRlIiwicGFyc2UiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNNYW55IiwicmVzdWx0IiwibG5nIiwibGF0IiwibWF4RGlzdGFuY2UiLCJtaW5EaXN0YW5jZSIsIiRnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwiJG1heERpc3RhbmNlIiwiJG1pbkRpc3RhbmNlIiwiJG9wdGlvbnMiLCIkcmVnZXgiLCJyZXBsYWNlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBaUZhQTs7O2VBQUFBOzs7aUVBL0VROzJCQUMwQjs7Ozs7O0FBVS9DLE1BQU1DLHNCQUFzQixDQUFDQztJQUMzQixPQUFPQSxlQUFlQyxNQUFNLENBQUMsQ0FBQ0MsaUJBQWlCQztRQUM3QyxNQUFNQyxZQUFZO1lBQUNEO1NBQU07UUFDekIsSUFBSUUsaUJBQVEsQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLENBQUNDLE9BQU8sQ0FBQ0wsUUFBUTtZQUMxQ0MsVUFBVUssSUFBSSxDQUFDLElBQUlKLGlCQUFRLENBQUNDLEtBQUssQ0FBQ0MsUUFBUSxDQUFDSjtRQUM3QztRQUNBLE1BQU1PLGVBQWVDLFdBQVdSO1FBQ2hDLElBQUksQ0FBQ1MsT0FBT0MsS0FBSyxDQUFDSCxlQUFlO1lBQy9CTixVQUFVSyxJQUFJLENBQUNDO1FBQ2pCO1FBRUEsT0FBTztlQUFJUjtlQUFvQkU7U0FBVTtJQUMzQyxHQUFHLEVBQUU7QUFDUDtBQUVBLE1BQU1VLHlCQUF5QixDQUFDZCxnQkFBZ0JlLFVBQVVDO0lBQ3hELE1BQU1DLG1CQUFtQmpCLGVBQ3RCa0IsR0FBRyxDQUFDLENBQUNmO1FBQ0osSUFBSUEsU0FBUyxPQUFPQSxVQUFVLFlBQVksZ0JBQWdCQSxTQUFTLFdBQVdBLE9BQU87WUFDbkYsSUFBSVksYUFBYSxNQUFNO2dCQUNyQixPQUFPO29CQUNMLENBQUMsQ0FBQyxFQUFFQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLEVBQUU7d0JBQUVHLEtBQUtoQixNQUFNaUIsVUFBVTtvQkFBQztvQkFDaEQsQ0FBQyxDQUFDLEVBQUVKLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRTt3QkFBRUcsS0FBS2hCLE1BQU1rQixLQUFLO29CQUFDO2dCQUN4QztZQUNGLE9BQU8sSUFBSU4sYUFBYSxVQUFVO2dCQUNoQyxPQUFPO29CQUNMTyxNQUFNO3dCQUNKOzRCQUFFLENBQUMsQ0FBQyxFQUFFTixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUViLE1BQU1rQixLQUFLO3dCQUFDO3dCQUNqQzs0QkFBRSxDQUFDLENBQUMsRUFBRUwsS0FBSyxXQUFXLENBQUMsQ0FBQyxFQUFFYixNQUFNaUIsVUFBVTt3QkFBQztxQkFDNUM7Z0JBQ0g7WUFDRjtRQUNGO1FBQ0EsT0FBTztJQUNULEdBQ0NHLE1BQU0sQ0FBQ0M7SUFFVixJQUFJUCxpQkFBaUJRLE1BQU0sR0FBRyxHQUFHO1FBQy9CLE9BQU87WUFDTEMsVUFBVVgsYUFBYSxPQUFPO2dCQUFFWSxLQUFLVjtZQUFpQixJQUFJO2dCQUFFVyxNQUFNWDtZQUFpQjtRQUNyRjtJQUNGO0FBQ0Y7QUFFQSxNQUFNWSxtQkFBbUIsQ0FBQzdCLGdCQUFnQmdCO0lBQ3hDLElBQUloQixnQkFBZ0I7UUFDbEIsT0FBTztZQUNMMEIsVUFBVTtnQkFDUkosTUFBTTtvQkFDSjt3QkFBRSxDQUFDTixLQUFLLEVBQUU7NEJBQUVjLFNBQVM7d0JBQUs7b0JBQUU7b0JBQzVCO3dCQUFFLENBQUNkLEtBQUssRUFBRTs0QkFBRWUsS0FBSzt3QkFBSztvQkFBRTtvQkFDeEI7d0JBQUUsQ0FBQ2YsS0FBSyxFQUFFOzRCQUFFZSxLQUFLO3dCQUFHO29CQUFFO2lCQUN2QjtZQUNIO1FBQ0Y7SUFDRixPQUFPO1FBQ0wsT0FBTztZQUNMTCxVQUFVO2dCQUNSQyxLQUFLO29CQUNIO3dCQUFFLENBQUNYLEtBQUssRUFBRTs0QkFBRWMsU0FBUzt3QkFBTTtvQkFBRTtvQkFDN0I7d0JBQUUsQ0FBQ2QsS0FBSyxFQUFFOzRCQUFFRyxLQUFLO3dCQUFLO29CQUFFO29CQUN4Qjt3QkFBRSxDQUFDSCxLQUFLLEVBQUU7NEJBQUVHLEtBQUs7d0JBQUc7b0JBQUU7aUJBQ3ZCO1lBQ0g7UUFDRjtJQUNGO0FBQ0Y7QUFFTyxNQUFNckIscUJBQXFCLENBQUMsRUFDakNrQyxLQUFLLEVBQ0xDLFdBQVcsRUFDWGxCLFFBQVEsRUFDUkMsSUFBSSxFQUNKa0IsR0FBRyxFQUNvQjtJQUt2QixJQUFJbEMsaUJBQWlCa0M7SUFDckIsSUFBSUMsb0JBQW9CcEI7SUFFeEIseUJBQXlCO0lBQ3pCLElBQUlDLFNBQVMsU0FBUyxPQUFPa0IsUUFBUSxZQUFZQSxJQUFJRSxLQUFLLENBQUMsS0FBS1gsTUFBTSxLQUFLLEdBQUc7UUFDNUUsSUFBSSxDQUFDUSxhQUFhO1lBQ2hCLE1BQU16QixVQUFVSCxpQkFBUSxDQUFDQyxLQUFLLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDMEI7WUFFaEQsSUFBSSxDQUFDMUIsU0FBUztnQkFDWixPQUFPO29CQUFFTyxVQUFVb0I7b0JBQW1CRCxLQUFLRztnQkFBVTtZQUN2RDtRQUNGO1FBRUEsSUFBSUwsTUFBTU0sSUFBSSxLQUFLLFVBQVU7WUFDM0IsTUFBTTVCLGVBQWVDLFdBQVd1QjtZQUVoQyxJQUFJdEIsT0FBT0MsS0FBSyxDQUFDSCxlQUFlO2dCQUM5QixPQUFPO29CQUFFSyxVQUFVb0I7b0JBQW1CRCxLQUFLRztnQkFBVTtZQUN2RDtRQUNGO0lBQ0Y7SUFFQSxrREFBa0Q7SUFDbEQsSUFBSUwsTUFBTU0sSUFBSSxLQUFLLGNBQWMsT0FBT0osUUFBUSxVQUFVO1FBQ3hELElBQUlBLElBQUlLLFdBQVcsT0FBTyxRQUFRdkMsaUJBQWlCO1FBQ25ELElBQUlrQyxJQUFJSyxXQUFXLE9BQU8sU0FBU3ZDLGlCQUFpQjtJQUN0RDtJQUVBLElBQUk7UUFBQztRQUFPO1FBQU07S0FBUyxDQUFDd0MsUUFBUSxDQUFDekIsYUFBYSxPQUFPZixtQkFBbUIsVUFBVTtRQUNwRkEsaUJBQWlCeUMsSUFBQUEseUNBQThCLEVBQUN6QztRQUVoRCxJQUFJZ0MsTUFBTU0sSUFBSSxLQUFLLFVBQVU7WUFDM0J0QyxpQkFBaUJBLGVBQWVrQixHQUFHLENBQUMsQ0FBQ3dCLFdBQWEvQixXQUFXK0I7UUFDL0Q7SUFDRjtJQUVBLElBQUlWLE1BQU1NLElBQUksS0FBSyxVQUFVO1FBQzNCLElBQUksT0FBT3RDLG1CQUFtQixZQUFZZSxhQUFhLFVBQVU7WUFDL0RmLGlCQUFpQlksT0FBT3NCO1FBQzFCO1FBRUEsSUFBSW5CLGFBQWEsVUFBVTtZQUN6QmYsaUJBQWlCa0MsUUFBUSxTQUFTLE9BQU9BLFFBQVEsVUFBVSxRQUFRVixRQUFRVTtZQUUzRSxPQUFPTCxpQkFBaUI3QixnQkFBZ0JnQjtRQUMxQztJQUNGO0lBRUEsSUFBSWdCLE1BQU1NLElBQUksS0FBSyxVQUFVLE9BQU9KLFFBQVEsWUFBWW5CLGFBQWEsVUFBVTtRQUM3RWYsaUJBQWlCLElBQUkyQyxLQUFLVDtRQUMxQixJQUFJdEIsT0FBT0MsS0FBSyxDQUFDOEIsS0FBS0MsS0FBSyxDQUFDNUMsa0JBQWtCO1lBQzVDLE9BQU9xQztRQUNUO0lBQ0Y7SUFFQSxJQUFJO1FBQUM7UUFBZ0I7S0FBUyxDQUFDRyxRQUFRLENBQUNSLE1BQU1NLElBQUksR0FBRztRQUNuRCxJQUFJSixRQUFRLFFBQVE7WUFDbEJsQyxpQkFBaUI7UUFDbkI7UUFFQSw4RkFBOEY7UUFDOUYsSUFDRWUsYUFBYSxZQUNiZixrQkFDQSxPQUFPQSxtQkFBbUIsWUFDMUJBLGVBQWVxQixLQUFLLElBQ3BCckIsZUFBZW9CLFVBQVUsRUFDekI7WUFDQSxPQUFPO2dCQUNMTSxVQUFVO29CQUNSSixNQUFNO3dCQUNKOzRCQUFFLENBQUMsQ0FBQyxFQUFFTixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Z0NBQUVHLEtBQUtuQixlQUFlcUIsS0FBSzs0QkFBQzt3QkFBRTt3QkFDbkQ7NEJBQUUsQ0FBQyxDQUFDLEVBQUVMLEtBQUssV0FBVyxDQUFDLENBQUMsRUFBRTtnQ0FBRUcsS0FBS25CLGVBQWVvQixVQUFVOzRCQUFDO3dCQUFFO3FCQUM5RDtnQkFDSDtZQUNGO1FBQ0Y7UUFFQSxJQUFJO1lBQUM7WUFBTTtTQUFTLENBQUNvQixRQUFRLENBQUN6QixhQUFhOEIsTUFBTUMsT0FBTyxDQUFDOUMsaUJBQWlCO1lBQ3hFLElBQUksYUFBYWdDLFNBQVNBLE1BQU1lLE9BQU8sRUFBRTtnQkFDdkMvQyxpQkFBaUJELG9CQUFvQkM7WUFDdkMsT0FBTztnQkFDTCxNQUFNZ0QsU0FBU2xDLHVCQUF1QmQsZ0JBQWdCZSxVQUFVQztnQkFDaEUsSUFBSWdDLFFBQVE7b0JBQ1YsT0FBT0E7Z0JBQ1Q7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxvREFBb0Q7SUFFcEQsSUFBSWpDLGFBQWEsUUFBUTtRQUN2QixJQUFJa0M7UUFDSixJQUFJQztRQUNKLElBQUlDO1FBQ0osSUFBSUM7UUFFSixJQUFJUCxNQUFNQyxPQUFPLENBQUM5QyxpQkFBaUI7WUFDaEMsQ0FBQ2lELEtBQUtDLEtBQUtDLGFBQWFDLFlBQVksR0FBR3BEO1FBQzFDO1FBRUEsSUFBSSxPQUFPQSxtQkFBbUIsVUFBVTtZQUNyQyxDQUFDaUQsS0FBS0MsS0FBS0MsYUFBYUMsWUFBWSxHQUFHWCxJQUFBQSx5Q0FBOEIsRUFBQ3pDO1FBQ3pFO1FBRUEsSUFBSWlELE9BQU8sUUFBUUMsT0FBTyxRQUFTQyxlQUFlLFFBQVFDLGVBQWUsTUFBTztZQUM5RXBELGlCQUFpQnFDO1FBQ25CLE9BQU87WUFDTHJDLGlCQUFpQjtnQkFDZnFELFdBQVc7b0JBQUVmLE1BQU07b0JBQVNnQixhQUFhO3dCQUFDM0MsV0FBV3NDO3dCQUFNdEMsV0FBV3VDO3FCQUFLO2dCQUFDO1lBQzlFO1lBRUEsSUFBSUMsYUFBYW5ELGVBQWV1RCxZQUFZLEdBQUc1QyxXQUFXd0M7WUFDMUQsSUFBSUMsYUFBYXBELGVBQWV3RCxZQUFZLEdBQUc3QyxXQUFXeUM7UUFDNUQ7SUFDRjtJQUVBLElBQUlyQyxhQUFhLFlBQVlBLGFBQWEsY0FBYztRQUN0RGYsaUJBQWlCO1lBQ2ZxRCxXQUFXckQ7UUFDYjtJQUNGO0lBRUEsSUFBSWdCLFNBQVMsU0FBVUEsU0FBUyxTQUFTaUIsZUFBZUQsTUFBTU0sSUFBSSxLQUFLLFFBQVM7UUFDOUUsSUFBSXZCLGFBQWEsWUFBWTtZQUMzQmYsaUJBQWlCO2dCQUNmeUQsVUFBVTtnQkFDVkMsUUFBUTFELGVBQWUyRCxPQUFPLENBQUMsdUJBQXVCO1lBQ3hEO1FBQ0Y7UUFFQSxJQUFJNUMsYUFBYSxVQUFVO1lBQ3pCZixpQkFBaUJBLG1CQUFtQixVQUFVQSxtQkFBbUI7WUFFakUsT0FBTzZCLGlCQUFpQjdCLGdCQUFnQmdCO1FBQzFDO0lBQ0Y7SUFFQSxJQUNFLEFBQUNBLENBQUFBLFNBQVMsU0FBU0EsU0FBUyxRQUFPLEtBQ25DRCxhQUFhLFVBQ2JmLGVBQWV5QixNQUFNLEtBQUssTUFDMUIsQ0FBQ1EsYUFDRDtRQUNBRSxvQkFBb0I7SUFDdEI7SUFFQSxJQUFJcEIsYUFBYSxVQUFVO1FBQ3pCZixpQkFBaUJBLG1CQUFtQixVQUFVQSxtQkFBbUI7UUFFakUsbUJBQW1CO1FBQ25CLElBQUk7WUFBQztZQUFnQjtZQUFVO1NBQVMsQ0FBQ3dDLFFBQVEsQ0FBQ1IsTUFBTU0sSUFBSSxHQUFHO1lBQzdELElBQUl0QyxnQkFBZ0I7Z0JBQ2xCLE9BQU87b0JBQ0wwQixVQUFVO3dCQUNSSixNQUFNOzRCQUFDO2dDQUFFLENBQUNOLEtBQUssRUFBRTtvQ0FBRWMsU0FBUztnQ0FBSzs0QkFBRTs0QkFBRztnQ0FBRSxDQUFDZCxLQUFLLEVBQUU7b0NBQUVlLEtBQUs7Z0NBQUs7NEJBQUU7eUJBQUU7b0JBQ2xFO2dCQUNGO1lBQ0YsT0FBTztnQkFDTCxPQUFPO29CQUNMTCxVQUFVO3dCQUNSQyxLQUFLOzRCQUFDO2dDQUFFLENBQUNYLEtBQUssRUFBRTtvQ0FBRWMsU0FBUztnQ0FBTTs0QkFBRTs0QkFBRztnQ0FBRSxDQUFDZCxLQUFLLEVBQUU7b0NBQUVHLEtBQUs7Z0NBQUs7NEJBQUU7eUJBQUU7b0JBQ2xFO2dCQUNGO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTztRQUFFSixVQUFVb0I7UUFBbUJELEtBQUtsQztJQUFlO0FBQzVEIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-mongodb",
3
- "version": "1.7.1",
3
+ "version": "1.7.3",
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.25.0"
35
+ "payload": "2.30.1"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "payload": "^2.0.0"