@hmcts/ccd-case-ui-toolkit 6.13.0-rc1 → 6.13.0-rc3

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.
@@ -13,6 +13,7 @@ export class ConditionParser {
13
13
  return null;
14
14
  }
15
15
  ;
16
+ condition = condition.replace(/[[\]]/g, '');
16
17
  condition = condition.replace(/CONTAINS/g, ' CONTAINS');
17
18
  return peg.parse(condition.trim(), {});
18
19
  }
@@ -22,7 +23,7 @@ export class ConditionParser {
22
23
  * @param conditions The PegJS formula output
23
24
  */
24
25
  static evaluate(fields, conditions, path) {
25
- if (!conditions) {
26
+ if (!conditions || conditions.length === 0) {
26
27
  return true;
27
28
  }
28
29
  ;
@@ -198,4 +199,4 @@ export class ConditionParser {
198
199
  return value === null && (right === '');
199
200
  }
200
201
  }
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLXBhcnNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvc2VydmljZXMvY29uZGl0aW9uLXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFckYsTUFBTSxPQUFPLGVBQWU7SUFFMUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFBO1NBQUU7UUFBQSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFXLEVBQUUsVUFBaUIsRUFBRSxJQUFhO1FBQ2xFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQTtTQUFFO1FBQUEsQ0FBQztRQUNqQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNDLE1BQU0sTUFBTSxHQUFZLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFvQixFQUFFLFNBQVMs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QUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztpQkFDN0Y7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3BGO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBVztRQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBVTtRQUNwRCxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgX3Njb3JlIGZyb20gJ3VuZGVyc2NvcmUnO1xuaW1wb3J0IHBlZyBmcm9tICcuL2NvbmRpdGlvbi5wZWcnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi9jb25kaXRpb25hbC1zaG93L2RvbWFpbi9jb25kaXRpb25hbC1zaG93Lm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbmRpdGlvblBhcnNlciB7XG5cbiAgLyoqXG4gICAqIFBhcnNlIHRoZSByYXcgZm9ybXVsYSBhbmQgb3V0cHV0IHN0cnVjdHVyZWQgY29uZGl0aW9uIGRhdGFcbiAgICogdGhhdCBjYW4gYmUgdXNlZCBpbiBldmFsdWF0aW5nIHNob3cvaGlkZSBsb2dpY1xuICAgKiBAcGFyYW0gY29uZGl0aW9uIHJhdyBmb3JtdWxhIGUuZy4gVGV4dEZpZWxkID0gXCJIZWxsb1wiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKGNvbmRpdGlvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoIWNvbmRpdGlvbikgeyByZXR1cm4gbnVsbCB9O1xuICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5yZXBsYWNlKC9DT05UQUlOUy9nLCAnIENPTlRBSU5TJyk7XG4gICAgcmV0dXJuIHBlZy5wYXJzZShjb25kaXRpb24udHJpbSgpLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgdGhlIGN1cnJlbnQgZmllbGRzIGFnYWluc3QgdGhlIGNvbmRpdGlvbnNcbiAgICogQHBhcmFtIGZpZWxkcyB0aGUgY3VycmVudCBwYWdlIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgVGhlIFBlZ0pTIGZvcm11bGEgb3V0cHV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV2YWx1YXRlKGZpZWxkczogYW55LCBjb25kaXRpb25zOiBhbnlbXSwgcGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghY29uZGl0aW9ucykgeyByZXR1cm4gdHJ1ZSB9O1xuICAgIGNvbnN0IHZhbGlkSm9pbkNvbXBhcmF0b3JzID0gWydBTkQnLCAnT1InXTtcblxuICAgIGNvbnN0IHJlc3VsdDogYm9vbGVhbiA9IGNvbmRpdGlvbnMucmVkdWNlKChhY2N1bXVsYXRvcjogYm9vbGVhbiwgY29uZGl0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBpc0pvaW5Db21wYXJhdG9yID0gKGNvbXBhcmF0b3I6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAgICAgKHR5cGVvZiBjb21wYXJhdG9yID09PSAnc3RyaW5nJyAmJiB2YWxpZEpvaW5Db21wYXJhdG9ycy5pbmRleE9mKGNvbXBhcmF0b3IpICE9PSAtMSk7XG5cbiAgICAgIGlmIChpc0pvaW5Db21wYXJhdG9yKGNvbmRpdGlvbikpIHsgcmV0dXJuIGFjY3VtdWxhdG9yIH07XG5cbiAgICAgIGxldCBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdHJ1ZTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdGhpcy5ldmFsdWF0ZShmaWVsZHMsIGNvbmRpdGlvbik7XG5cbiAgICAgICAgaWYgKGlzSm9pbkNvbXBhcmF0b3IoY29uZGl0aW9uc1tpbmRleCAtIDFdKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlSm9pbihhY2N1bXVsYXRvciwgY29uZGl0aW9uc1tpbmRleCAtIDFdLCBjdXJyZW50Q29uZGl0aW9uUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29uZGl0aW9uLmNvbXBhcmF0b3IpIHtcbiAgICAgICAgY29uc3QgZm9ybXVsYSA9IGNvbmRpdGlvbi5maWVsZFJlZmVyZW5jZSArIGNvbmRpdGlvbi5jb21wYXJhdG9yICsgY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdGhpcy5tYXRjaEVxdWFsaXR5Q29uZGl0aW9uKGZpZWxkcywgZm9ybXVsYSwgcGF0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0pvaW5Db21wYXJhdG9yKGNvbmRpdGlvbnNbaW5kZXggLSAxXSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVKb2luKGFjY3VtdWxhdG9yLCBjb25kaXRpb25zW2luZGV4IC0gMV0sIGN1cnJlbnRDb25kaXRpb25SZXN1bHQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VycmVudENvbmRpdGlvblJlc3VsdDtcbiAgICB9LCB0cnVlKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBldmFsdWF0ZUpvaW4obGVmdFJlc3VsdDogYm9vbGVhbiwgY29tcGFyYXRvciwgcmlnaHRSZXN1bHQ6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKGNvbXBhcmF0b3IpIHtcbiAgICAgIGNhc2UgJ09SJzogcmV0dXJuIGxlZnRSZXN1bHQgfHwgcmlnaHRSZXN1bHQ7XG4gICAgICBjYXNlICdBTkQnOiByZXR1cm4gbGVmdFJlc3VsdCAmJiByaWdodFJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXRjaEVxdWFsaXR5Q29uZGl0aW9uKGZpZWxkczogb2JqZWN0LCBjb25kaXRpb246IHN0cmluZywgcGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtmaWVsZCwgY29uZGl0aW9uU2VwYXJhdG9yXSA9IHRoaXMuZ2V0RmllbGQoY29uZGl0aW9uKTtcbiAgICBjb25zdCBbaGVhZCwgLi4udGFpbF0gPSBmaWVsZC5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihmaWVsZHMsIGhlYWQsIHRhaWwsIHBhdGgpO1xuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWUgPSB0aGlzLnVucXVvdGVkKGNvbmRpdGlvbi5zcGxpdChjb25kaXRpb25TZXBhcmF0b3IpWzFdKTtcbiAgICBpZiAoY29uZGl0aW9uU2VwYXJhdG9yID09PSBTaG93Q29uZGl0aW9uLkNPTlRBSU5TKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlQ29udGFpbnMoZXhwZWN0ZWRWYWx1ZSwgY3VycmVudFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tWYWx1ZUVxdWFscyhleHBlY3RlZFZhbHVlLCBjdXJyZW50VmFsdWUsIGNvbmRpdGlvblNlcGFyYXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VmFsdWUoZmllbGRzOiBvYmplY3QsIGhlYWQ6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNEeW5hbWljTGlzdChmaWVsZHNbaGVhZF0pKSB7XG4gICAgICByZXR1cm4gZmllbGRzW2hlYWRdLnZhbHVlLmNvZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmaWVsZHNbaGVhZF07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNEeW5hbWljTGlzdChkeW5hbWljbGlzdDogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFfc2NvcmUuaXNFbXB0eShkeW5hbWljbGlzdCkgJiZcbiAgICAgICAgKF9zY29yZS5oYXMoZHluYW1pY2xpc3QsICd2YWx1ZScpICYmIF9zY29yZS5oYXMoZHluYW1pY2xpc3QsICdsaXN0X2l0ZW1zJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RmllbGQoY29uZGl0aW9uOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmc/XSB7XG4gICAgbGV0IHNlcGFyYXRvcjogc3RyaW5nID0gU2hvd0NvbmRpdGlvbi5DT05UQUlOUztcbiAgICBpZiAoY29uZGl0aW9uLmluZGV4T2YoU2hvd0NvbmRpdGlvbi5DT05UQUlOUykgPCAwKSB7XG4gICAgICBzZXBhcmF0b3IgPSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9FUVVBTFM7XG4gICAgICBpZiAoY29uZGl0aW9uLmluZGV4T2YoU2hvd0NvbmRpdGlvbi5DT05ESVRJT05fTk9UX0VRVUFMUykgPiAtMSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9OT1RfRVFVQUxTO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWyBjb25kaXRpb24uc3BsaXQoc2VwYXJhdG9yKVswXSwgc2VwYXJhdG9yIF07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlRXF1YWxzKGV4cGVjdGVkVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBhbnksIGNvbmRpdGlvblNlcGFyYW9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoZXhwZWN0ZWRWYWx1ZS5zZWFyY2goJ1ssXScpID4gLTEpIHsgLy8gZm9yICBtdWx0aS1zZWxlY3QgbGlzdFxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tNdWx0aVNlbGVjdExpc3RFcXVhbHMoZXhwZWN0ZWRWYWx1ZSwgY3VycmVudFZhbHVlLCBjb25kaXRpb25TZXBhcmFvcik7XG4gICAgfSBlbHNlIGlmIChleHBlY3RlZFZhbHVlLmVuZHNXaXRoKCcqJykgJiYgY3VycmVudFZhbHVlICYmIGNvbmRpdGlvblNlcGFyYW9yICE9PSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9OT1RfRVFVQUxTKSB7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZS5zdGFydHNXaXRoKHRoaXMucmVtb3ZlU3RhckNoYXIoZXhwZWN0ZWRWYWx1ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cGVjdGVkVmFsdWUgPT09ICcqJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2hhbmdlZCBmcm9tICc9PT0nIHRvICc9PScgdG8gY292ZXIgbnVtYmVyIGZpZWxkIGNvbmRpdGlvbnNcbiAgICAgIGlmIChjb25kaXRpb25TZXBhcmFvciA9PT0gU2hvd0NvbmRpdGlvbi5DT05ESVRJT05fTk9UX0VRVUFMUykge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlTm90RXF1YWxzKGV4cGVjdGVkVmFsdWUsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09IGV4cGVjdGVkVmFsdWUgfHwgdGhpcy5va0lmQm90aEVtcHR5KGV4cGVjdGVkVmFsdWUsIGN1cnJlbnRWYWx1ZSk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlTm90RXF1YWxzKGV4cGVjdGVkVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRDdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWUgPyBjdXJyZW50VmFsdWUudG9TdHJpbmcoKS50cmltKCkgOiAnJztcbiAgICBpZiAoJyonID09PSBleHBlY3RlZFZhbHVlICYmIGZvcm1hdEN1cnJlbnRWYWx1ZSAhPT0gJycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZm9ybWF0RXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWUgPyBleHBlY3RlZFZhbHVlLnRvU3RyaW5nKCkudHJpbSgpIDogJyc7XG4gICAgcmV0dXJuIGZvcm1hdEN1cnJlbnRWYWx1ZSAhPSBmb3JtYXRFeHBlY3RlZFZhbHVlOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja011bHRpU2VsZWN0TGlzdEVxdWFscyhleHBlY3RlZFZhbHVlOiBzdHJpbmcsIGN1cnJlbnRWYWx1ZTogYW55LCBjb25kaXRpb25TZXBhcmF0b3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgnLCcpLnNvcnQoKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZS5zb3J0KCkudG9TdHJpbmcoKSA6ICcnO1xuICAgIGlmIChjb25kaXRpb25TZXBhcmF0b3IgPT09IFNob3dDb25kaXRpb24uQ09ORElUSU9OX05PVF9FUVVBTFMpIHtcbiAgICAgIHJldHVybiBleHBlY3RlZFZhbHVlcyAhPT0gdmFsdWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWRWYWx1ZXMgPT09IHZhbHVlcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlQ29udGFpbnMoZXhwZWN0ZWRWYWx1ZTogc3RyaW5nLCBjdXJyZW50VmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChleHBlY3RlZFZhbHVlLnNlYXJjaCgnLCcpID4gLTEpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgnLCcpLnNvcnQoKTtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZS5zb3J0KCkudG9TdHJpbmcoKSA6ICcnO1xuICAgICAgcmV0dXJuIGV4cGVjdGVkVmFsdWVzLmV2ZXJ5KGl0ZW0gPT4gdmFsdWVzLnNlYXJjaChpdGVtKSA+PSAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsdWVzID0gY3VycmVudFZhbHVlICYmIEFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSA/IGN1cnJlbnRWYWx1ZS50b1N0cmluZygpIDogJyc7XG4gICAgICByZXR1cm4gdmFsdWVzLnNlYXJjaChleHBlY3RlZFZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHVucXVvdGVkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXMgPSBzdHIucmVwbGFjZSgvXlwifFwiJC9nLCAnJyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb24oZmllbGRzOiBvYmplY3QsIGhlYWQ6IHN0cmluZywgdGFpbDogc3RyaW5nW10sIHBhdGg/OiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGFpbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlKGZpZWxkcywgaGVhZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChGaWVsZHNVdGlscy5pc0FycmF5KGZpZWxkc1toZWFkXSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbkluQXJyYXkoZmllbGRzLCBoZWFkLCB0YWlsLCBwYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb25Gb3JQYXRoSWZBbnkoZmllbGRzLCBoZWFkLCB0YWlsLCBwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaW5kVmFsdWVGb3JDb21wbGV4Q29uZGl0aW9uRm9yUGF0aElmQW55KGZpZWxkczogb2JqZWN0LCBoZWFkOiBzdHJpbmcsIHRhaWw6IHN0cmluZ1tdLCBwYXRoPzogc3RyaW5nKTogYW55IHtcbiAgICBpZiAocGF0aCkge1xuICAgICAgY29uc3QgW18sIC4uLnBhdGhUYWlsXSA9IHBhdGguc3BsaXQoL1tfXSsvZyk7XG4gICAgICByZXR1cm4gdGhpcy5maW5kVmFsdWVGb3JDb21wbGV4Q29uZGl0aW9uKGZpZWxkc1toZWFkXSwgdGFpbFswXSwgdGFpbC5zbGljZSgxKSwgcGF0aFRhaWwuam9pbignXycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihmaWVsZHNbaGVhZF0sIHRhaWxbMF0sIHRhaWwuc2xpY2UoMSksIHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb25JbkFycmF5KGZpZWxkczogb2JqZWN0LCBoZWFkOiBzdHJpbmcsIHRhaWw6IHN0cmluZ1tdLCBwYXRoPzogc3RyaW5nKTogYW55IHtcbiAgLy8gdXNlIHRoZSBwYXRoIHRvIHJlc29sdmUgd2hpY2ggYXJyYXkgZWxlbWVudCB3ZSByZWZlciB0b1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoaGVhZCkpIHtcbiAgICAgIGNvbnN0IFtfLCAuLi5wYXRoVGFpbF0gPSBwYXRoLnNwbGl0KC9bX10rL2cpO1xuICAgICAgaWYgKHBhdGhUYWlsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBhcnJheUluZGV4ID0gTnVtYmVyLnBhcnNlSW50KHBhdGhUYWlsWzBdLCAxMCk7XG4gICAgICAgICAgY29uc3QgW19fLCAuLi5kcm9wTnVtYmVyUGF0aF0gPSBwYXRoVGFpbDtcbiAgICAgICAgICByZXR1cm4gKGZpZWxkc1toZWFkXVthcnJheUluZGV4XSAhPT0gdW5kZWZpbmVkKSA/IHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihcbiAgICAgICAgICBmaWVsZHNbaGVhZF1bYXJyYXlJbmRleF1bJ3ZhbHVlJ10sIHRhaWxbMF0sIHRhaWwuc2xpY2UoMSksIGRyb3BOdW1iZXJQYXRoLmpvaW4oJ18nKSkgOiBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgcGFyc2luZyBudW1iZXInLCBwYXRoVGFpbFswXSwgZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignUGF0aCBpbiBmb3JtQXJyYXkgc2hvdWxkIHN0YXJ0IHdpdGggJywgaGVhZCwgJywgZnVsbCBwYXRoOiAnLCBwYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZW1vdmVTdGFyQ2hhcihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHN0ciAmJiBzdHIuaW5kZXhPZignKicpID4gLTEpIHtcbiAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIHN0ci5pbmRleE9mKCcqJykpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgb2tJZkJvdGhFbXB0eShyaWdodDogc3RyaW5nLCB2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsICYmIChyaWdodCA9PT0gJycpO1xuICB9XG59XG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLXBhcnNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvc2VydmljZXMvY29uZGl0aW9uLXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFckYsTUFBTSxPQUFPLGVBQWU7SUFFMUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFBO1NBQUU7UUFBQSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBVyxFQUFFLFVBQWlCLEVBQUUsSUFBYTtRQUNsRSxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUE7U0FBRTtRQUFBLENBQUM7UUFDNUQsTUFBTSxvQkFBb0IsR0FBRyxD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QUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQzdGO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUM3RDthQUNGO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNwRjtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDdkMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBYSxFQUFFLEtBQVU7UUFDcEQsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF9zY29yZSBmcm9tICd1bmRlcnNjb3JlJztcbmltcG9ydCBwZWcgZnJvbSAnLi9jb25kaXRpb24ucGVnJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5pbXBvcnQgeyBTaG93Q29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDb25kaXRpb25QYXJzZXIge1xuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgcmF3IGZvcm11bGEgYW5kIG91dHB1dCBzdHJ1Y3R1cmVkIGNvbmRpdGlvbiBkYXRhXG4gICAqIHRoYXQgY2FuIGJlIHVzZWQgaW4gZXZhbHVhdGluZyBzaG93L2hpZGUgbG9naWNcbiAgICogQHBhcmFtIGNvbmRpdGlvbiByYXcgZm9ybXVsYSBlLmcuIFRleHRGaWVsZCA9IFwiSGVsbG9cIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZShjb25kaXRpb246IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKCFjb25kaXRpb24pIHsgcmV0dXJuIG51bGwgfTtcbiAgICBjb25kaXRpb24gPSBjb25kaXRpb24ucmVwbGFjZSgvW1tcXF1dL2csJycpO1xuICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5yZXBsYWNlKC9DT05UQUlOUy9nLCAnIENPTlRBSU5TJyk7XG4gICAgcmV0dXJuIHBlZy5wYXJzZShjb25kaXRpb24udHJpbSgpLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgdGhlIGN1cnJlbnQgZmllbGRzIGFnYWluc3QgdGhlIGNvbmRpdGlvbnNcbiAgICogQHBhcmFtIGZpZWxkcyB0aGUgY3VycmVudCBwYWdlIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgVGhlIFBlZ0pTIGZvcm11bGEgb3V0cHV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV2YWx1YXRlKGZpZWxkczogYW55LCBjb25kaXRpb25zOiBhbnlbXSwgcGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gdHJ1ZSB9O1xuICAgIGNvbnN0IHZhbGlkSm9pbkNvbXBhcmF0b3JzID0gWydBTkQnLCAnT1InXTtcblxuICAgIGNvbnN0IHJlc3VsdDogYm9vbGVhbiA9IGNvbmRpdGlvbnMucmVkdWNlKChhY2N1bXVsYXRvcjogYm9vbGVhbiwgY29uZGl0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBpc0pvaW5Db21wYXJhdG9yID0gKGNvbXBhcmF0b3I6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAgICAgKHR5cGVvZiBjb21wYXJhdG9yID09PSAnc3RyaW5nJyAmJiB2YWxpZEpvaW5Db21wYXJhdG9ycy5pbmRleE9mKGNvbXBhcmF0b3IpICE9PSAtMSk7XG5cbiAgICAgIGlmIChpc0pvaW5Db21wYXJhdG9yKGNvbmRpdGlvbikpIHsgcmV0dXJuIGFjY3VtdWxhdG9yIH07XG5cbiAgICAgIGxldCBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdHJ1ZTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdGhpcy5ldmFsdWF0ZShmaWVsZHMsIGNvbmRpdGlvbik7XG5cbiAgICAgICAgaWYgKGlzSm9pbkNvbXBhcmF0b3IoY29uZGl0aW9uc1tpbmRleCAtIDFdKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlSm9pbihhY2N1bXVsYXRvciwgY29uZGl0aW9uc1tpbmRleCAtIDFdLCBjdXJyZW50Q29uZGl0aW9uUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29uZGl0aW9uLmNvbXBhcmF0b3IpIHtcbiAgICAgICAgY29uc3QgZm9ybXVsYSA9IGNvbmRpdGlvbi5maWVsZFJlZmVyZW5jZSArIGNvbmRpdGlvbi5jb21wYXJhdG9yICsgY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdGhpcy5tYXRjaEVxdWFsaXR5Q29uZGl0aW9uKGZpZWxkcywgZm9ybXVsYSwgcGF0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0pvaW5Db21wYXJhdG9yKGNvbmRpdGlvbnNbaW5kZXggLSAxXSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVKb2luKGFjY3VtdWxhdG9yLCBjb25kaXRpb25zW2luZGV4IC0gMV0sIGN1cnJlbnRDb25kaXRpb25SZXN1bHQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VycmVudENvbmRpdGlvblJlc3VsdDtcbiAgICB9LCB0cnVlKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBldmFsdWF0ZUpvaW4obGVmdFJlc3VsdDogYm9vbGVhbiwgY29tcGFyYXRvciwgcmlnaHRSZXN1bHQ6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKGNvbXBhcmF0b3IpIHtcbiAgICAgIGNhc2UgJ09SJzogcmV0dXJuIGxlZnRSZXN1bHQgfHwgcmlnaHRSZXN1bHQ7XG4gICAgICBjYXNlICdBTkQnOiByZXR1cm4gbGVmdFJlc3VsdCAmJiByaWdodFJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXRjaEVxdWFsaXR5Q29uZGl0aW9uKGZpZWxkczogb2JqZWN0LCBjb25kaXRpb246IHN0cmluZywgcGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtmaWVsZCwgY29uZGl0aW9uU2VwYXJhdG9yXSA9IHRoaXMuZ2V0RmllbGQoY29uZGl0aW9uKTtcbiAgICBjb25zdCBbaGVhZCwgLi4udGFpbF0gPSBmaWVsZC5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihmaWVsZHMsIGhlYWQsIHRhaWwsIHBhdGgpO1xuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWUgPSB0aGlzLnVucXVvdGVkKGNvbmRpdGlvbi5zcGxpdChjb25kaXRpb25TZXBhcmF0b3IpWzFdKTtcbiAgICBpZiAoY29uZGl0aW9uU2VwYXJhdG9yID09PSBTaG93Q29uZGl0aW9uLkNPTlRBSU5TKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlQ29udGFpbnMoZXhwZWN0ZWRWYWx1ZSwgY3VycmVudFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tWYWx1ZUVxdWFscyhleHBlY3RlZFZhbHVlLCBjdXJyZW50VmFsdWUsIGNvbmRpdGlvblNlcGFyYXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VmFsdWUoZmllbGRzOiBvYmplY3QsIGhlYWQ6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNEeW5hbWljTGlzdChmaWVsZHNbaGVhZF0pKSB7XG4gICAgICByZXR1cm4gZmllbGRzW2hlYWRdLnZhbHVlLmNvZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmaWVsZHNbaGVhZF07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNEeW5hbWljTGlzdChkeW5hbWljbGlzdDogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFfc2NvcmUuaXNFbXB0eShkeW5hbWljbGlzdCkgJiZcbiAgICAgICAgKF9zY29yZS5oYXMoZHluYW1pY2xpc3QsICd2YWx1ZScpICYmIF9zY29yZS5oYXMoZHluYW1pY2xpc3QsICdsaXN0X2l0ZW1zJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RmllbGQoY29uZGl0aW9uOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmc/XSB7XG4gICAgbGV0IHNlcGFyYXRvcjogc3RyaW5nID0gU2hvd0NvbmRpdGlvbi5DT05UQUlOUztcbiAgICBpZiAoY29uZGl0aW9uLmluZGV4T2YoU2hvd0NvbmRpdGlvbi5DT05UQUlOUykgPCAwKSB7XG4gICAgICBzZXBhcmF0b3IgPSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9FUVVBTFM7XG4gICAgICBpZiAoY29uZGl0aW9uLmluZGV4T2YoU2hvd0NvbmRpdGlvbi5DT05ESVRJT05fTk9UX0VRVUFMUykgPiAtMSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9OT1RfRVFVQUxTO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWyBjb25kaXRpb24uc3BsaXQoc2VwYXJhdG9yKVswXSwgc2VwYXJhdG9yIF07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlRXF1YWxzKGV4cGVjdGVkVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBhbnksIGNvbmRpdGlvblNlcGFyYW9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoZXhwZWN0ZWRWYWx1ZS5zZWFyY2goJ1ssXScpID4gLTEpIHsgLy8gZm9yICBtdWx0aS1zZWxlY3QgbGlzdFxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tNdWx0aVNlbGVjdExpc3RFcXVhbHMoZXhwZWN0ZWRWYWx1ZSwgY3VycmVudFZhbHVlLCBjb25kaXRpb25TZXBhcmFvcik7XG4gICAgfSBlbHNlIGlmIChleHBlY3RlZFZhbHVlLmVuZHNXaXRoKCcqJykgJiYgY3VycmVudFZhbHVlICYmIGNvbmRpdGlvblNlcGFyYW9yICE9PSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9OT1RfRVFVQUxTKSB7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZS5zdGFydHNXaXRoKHRoaXMucmVtb3ZlU3RhckNoYXIoZXhwZWN0ZWRWYWx1ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cGVjdGVkVmFsdWUgPT09ICcqJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2hhbmdlZCBmcm9tICc9PT0nIHRvICc9PScgdG8gY292ZXIgbnVtYmVyIGZpZWxkIGNvbmRpdGlvbnNcbiAgICAgIGlmIChjb25kaXRpb25TZXBhcmFvciA9PT0gU2hvd0NvbmRpdGlvbi5DT05ESVRJT05fTk9UX0VRVUFMUykge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlTm90RXF1YWxzKGV4cGVjdGVkVmFsdWUsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09IGV4cGVjdGVkVmFsdWUgfHwgdGhpcy5va0lmQm90aEVtcHR5KGV4cGVjdGVkVmFsdWUsIGN1cnJlbnRWYWx1ZSk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlTm90RXF1YWxzKGV4cGVjdGVkVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRDdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWUgPyBjdXJyZW50VmFsdWUudG9TdHJpbmcoKS50cmltKCkgOiAnJztcbiAgICBpZiAoJyonID09PSBleHBlY3RlZFZhbHVlICYmIGZvcm1hdEN1cnJlbnRWYWx1ZSAhPT0gJycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZm9ybWF0RXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWUgPyBleHBlY3RlZFZhbHVlLnRvU3RyaW5nKCkudHJpbSgpIDogJyc7XG4gICAgcmV0dXJuIGZvcm1hdEN1cnJlbnRWYWx1ZSAhPSBmb3JtYXRFeHBlY3RlZFZhbHVlOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja011bHRpU2VsZWN0TGlzdEVxdWFscyhleHBlY3RlZFZhbHVlOiBzdHJpbmcsIGN1cnJlbnRWYWx1ZTogYW55LCBjb25kaXRpb25TZXBhcmF0b3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgnLCcpLnNvcnQoKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZS5zb3J0KCkudG9TdHJpbmcoKSA6ICcnO1xuICAgIGlmIChjb25kaXRpb25TZXBhcmF0b3IgPT09IFNob3dDb25kaXRpb24uQ09ORElUSU9OX05PVF9FUVVBTFMpIHtcbiAgICAgIHJldHVybiBleHBlY3RlZFZhbHVlcyAhPT0gdmFsdWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWRWYWx1ZXMgPT09IHZhbHVlcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlQ29udGFpbnMoZXhwZWN0ZWRWYWx1ZTogc3RyaW5nLCBjdXJyZW50VmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChleHBlY3RlZFZhbHVlLnNlYXJjaCgnLCcpID4gLTEpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgnLCcpLnNvcnQoKTtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZS5zb3J0KCkudG9TdHJpbmcoKSA6ICcnO1xuICAgICAgcmV0dXJuIGV4cGVjdGVkVmFsdWVzLmV2ZXJ5KGl0ZW0gPT4gdmFsdWVzLnNlYXJjaChpdGVtKSA+PSAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsdWVzID0gY3VycmVudFZhbHVlICYmIEFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSA/IGN1cnJlbnRWYWx1ZS50b1N0cmluZygpIDogJyc7XG4gICAgICByZXR1cm4gdmFsdWVzLnNlYXJjaChleHBlY3RlZFZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHVucXVvdGVkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXMgPSBzdHIucmVwbGFjZSgvXlwifFwiJC9nLCAnJyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb24oZmllbGRzOiBvYmplY3QsIGhlYWQ6IHN0cmluZywgdGFpbDogc3RyaW5nW10sIHBhdGg/OiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGFpbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlKGZpZWxkcywgaGVhZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChGaWVsZHNVdGlscy5pc0FycmF5KGZpZWxkc1toZWFkXSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbkluQXJyYXkoZmllbGRzLCBoZWFkLCB0YWlsLCBwYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb25Gb3JQYXRoSWZBbnkoZmllbGRzLCBoZWFkLCB0YWlsLCBwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaW5kVmFsdWVGb3JDb21wbGV4Q29uZGl0aW9uRm9yUGF0aElmQW55KGZpZWxkczogb2JqZWN0LCBoZWFkOiBzdHJpbmcsIHRhaWw6IHN0cmluZ1tdLCBwYXRoPzogc3RyaW5nKTogYW55IHtcbiAgICBpZiAocGF0aCkge1xuICAgICAgY29uc3QgW18sIC4uLnBhdGhUYWlsXSA9IHBhdGguc3BsaXQoL1tfXSsvZyk7XG4gICAgICByZXR1cm4gdGhpcy5maW5kVmFsdWVGb3JDb21wbGV4Q29uZGl0aW9uKGZpZWxkc1toZWFkXSwgdGFpbFswXSwgdGFpbC5zbGljZSgxKSwgcGF0aFRhaWwuam9pbignXycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihmaWVsZHNbaGVhZF0sIHRhaWxbMF0sIHRhaWwuc2xpY2UoMSksIHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb25JbkFycmF5KGZpZWxkczogb2JqZWN0LCBoZWFkOiBzdHJpbmcsIHRhaWw6IHN0cmluZ1tdLCBwYXRoPzogc3RyaW5nKTogYW55IHtcbiAgLy8gdXNlIHRoZSBwYXRoIHRvIHJlc29sdmUgd2hpY2ggYXJyYXkgZWxlbWVudCB3ZSByZWZlciB0b1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoaGVhZCkpIHtcbiAgICAgIGNvbnN0IFtfLCAuLi5wYXRoVGFpbF0gPSBwYXRoLnNwbGl0KC9bX10rL2cpO1xuICAgICAgaWYgKHBhdGhUYWlsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBhcnJheUluZGV4ID0gTnVtYmVyLnBhcnNlSW50KHBhdGhUYWlsWzBdLCAxMCk7XG4gICAgICAgICAgY29uc3QgW19fLCAuLi5kcm9wTnVtYmVyUGF0aF0gPSBwYXRoVGFpbDtcbiAgICAgICAgICByZXR1cm4gKGZpZWxkc1toZWFkXVthcnJheUluZGV4XSAhPT0gdW5kZWZpbmVkKSA/IHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihcbiAgICAgICAgICBmaWVsZHNbaGVhZF1bYXJyYXlJbmRleF1bJ3ZhbHVlJ10sIHRhaWxbMF0sIHRhaWwuc2xpY2UoMSksIGRyb3BOdW1iZXJQYXRoLmpvaW4oJ18nKSkgOiBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgcGFyc2luZyBudW1iZXInLCBwYXRoVGFpbFswXSwgZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignUGF0aCBpbiBmb3JtQXJyYXkgc2hvdWxkIHN0YXJ0IHdpdGggJywgaGVhZCwgJywgZnVsbCBwYXRoOiAnLCBwYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZW1vdmVTdGFyQ2hhcihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHN0ciAmJiBzdHIuaW5kZXhPZignKicpID4gLTEpIHtcbiAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIHN0ci5pbmRleE9mKCcqJykpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgb2tJZkJvdGhFbXB0eShyaWdodDogc3RyaW5nLCB2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsICYmIChyaWdodCA9PT0gJycpO1xuICB9XG59XG4iXX0=
@@ -69,7 +69,7 @@ const conditionSource = `{
69
69
  = [0-9]+
70
70
 
71
71
  quotedValue
72
- = '"'val:[A-Za-z0-9.,* _-]*'"'
72
+ = '"'val:[A-Za-z0-9.,* _/-]*'"'
73
73
  { return val.join(""); }
74
74
 
75
75
  bracket
@@ -87,4 +87,4 @@ const conditionSource = `{
87
87
  nl "New line"
88
88
  = "\\n"`;
89
89
  export default generate(conditionSource);
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLnBlZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jb25kaXRpb25hbC1zaG93L3NlcnZpY2VzL2NvbmRpdGlvbi5wZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBc0ZTLENBQUM7QUFFWixlQUFlLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSAncGVnanMnO1xuXG5jb25zdCBjb25kaXRpb25Tb3VyY2UgPVxuICBge1xuICAgIGZ1bmN0aW9uIGZsYXQoYXJyLCBkZXB0aCA9IDEpIHtcbiAgICAgIHZhciBmbGF0dGVuID0gZnVuY3Rpb24gKGFyciwgZGVwdGggPSAxKSB7XG4gICAgICAgIGlmIChkZXB0aCkgcmV0dXJuIGFycjtcblxuICAgICAgLy8gT3RoZXJ3aXNlLCBjb25jYXRlbmF0ZSBpbnRvIHRoZSBwYXJlbnQgYXJyYXlcbiAgICAgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHZhbCkge1xuICAgICAgICByZXR1cm4gYWNjLmNvbmNhdChBcnJheS5pc0FycmF5KHZhbCkgPyBmbGF0dGVuKHZhbCwgZGVwdGggLSAxKSA6IHZhbCk7XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIH07XG5cbiAgICByZXR1cm4gZmxhdHRlbihhcnIsIGRlcHRoIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgU3RhcnRcbiAgICA9IEZvcm11bGFcblxuICBGb3JtdWxhXG4gICAgPSBFbmNsb3NlZEZvcm11bGFcbiAgICAvIE9wZW5Gb3JtdWxhXG5cbiAgRW5jbG9zZWRGb3JtdWxhXG4gICAgPSBicmFja2V0IGZvcm11bGE6T3BlbkZvcm11bGEgYnJhY2tldCBqb2luOihKb2luQ29tcGFyYXRvcikqXG4gICAgICB7IHJldHVybiBmbGF0KFsgW2Zvcm11bGFdLCBqb2luWzBdIF0sIDEpIH1cblxuICBPcGVuRm9ybXVsYVxuICAgID0gZXE6T3BlbkVxdWFsaXR5Q2hlY2sgam9pbnM6KEpvaW5Db21wYXJhdG9yKSpcbiAgICAgIHsgcmV0dXJuIGZsYXQoWyBlcSwgZmxhdChqb2lucykgXSkgfVxuXG4gIEpvaW5Db21wYXJhdG9yXG4gICAgPSBjb21wOkNvbXBhcmF0b3IgZXE6T3BlbkVxdWFsaXR5Q2hlY2tcbiAgICAgIHsgcmV0dXJuIFtjb21wLCBlcV07IH1cbiAgICAgIC8gQ29tcG91bmRKb2luQ29tcGFyYXRvclxuXG4gIENvbXBvdW5kSm9pbkNvbXBhcmF0b3JcbiAgICA9IGNvbXA6Q29tcGFyYXRvciBicmFja2V0IGY6T3BlbkZvcm11bGEgYnJhY2tldFxuICAgICAgeyByZXR1cm4gW2NvbXAsIGYgXSB9XG5cbiAgT3BlbkVxdWFsaXR5Q2hlY2tcbiAgICA9IGZyOkZpZWxkUmVmZXJlbmNlIF8/IG9wOm9wZXJhdG9yIF8/IHZhbDpWYWx1ZVxuICAgICB7IHJldHVybiB7IGZpZWxkUmVmZXJlbmNlOiBmciwgY29tcGFyYXRvcjogb3AsIHZhbHVlOiB2YWwgfSB9XG5cbiAgQ29tcGFyYXRvclxuICAgPSBfPyBjOidBTkQnIF8/XG4gICB7IHJldHVybiBjOyB9XG4gICAvIF8/IGM6J09SJyBfP1xuICAgeyByZXR1cm4gYzsgfVxuXG4gIFdvcmRcbiAgID0gbDpMZXR0ZXIrXG4gICB7IHJldHVybiBsLmpvaW4oXCJcIik7IH1cblxuICBMZXR0ZXJcbiAgID0gW2EtekEtWl1cblxuICBWYWx1ZVxuICAgPSB2OnF1b3RlZFZhbHVlIC8gdjpXb3JkXG4gICB7IHJldHVybiB2LmpvaW4oXCJcIikgfVxuICAgLyB2Om51bWJlclxuICAgeyByZXR1cm4gcGFyc2VJbnQodi5qb2luKFwiXCIpKSB9XG5cbiAgRmllbGRSZWZlcmVuY2VcbiAgICA9IGNoYXJhY3RlcnM6W0EtWmEtejAtOS5fXSsgeyByZXR1cm4gY2hhcmFjdGVycy5qb2luKFwiXCIpOyB9XG5cbiAgbnVtYmVyXG4gICA9IFswLTldK1xuXG4gIHF1b3RlZFZhbHVlXG4gICA9ICdcIid2YWw6W0EtWmEtejAtOS4sKiBfLV0qJ1wiJ1xuICAgeyByZXR1cm4gdmFsLmpvaW4oXCJcIik7IH1cblxuICBicmFja2V0XG4gICA9IChfPyBcIihcIisgXz8gLyBfPyBcIilcIisgXz8gKVxuXG4gIG9wZXJhdG9yXG4gICA9IFwiPVwiIC8gXCIhPVwiIC8gXCJDT05UQUlOU1wiXG5cbiAgd3MgXCJXaGl0ZXNwYWNlXCJcbiAgID0gWyBcXHRdXG5cbiAgXyBcIk9uZSBvciBtb3JlIHdoaXRlc3BhY2VzXCJcbiAgID0gd3MrXG5cbiAgbmwgXCJOZXcgbGluZVwiXG4gICA9IFwiXFxcXG5cImA7XG5cbmV4cG9ydCBkZWZhdWx0IGdlbmVyYXRlKGNvbmRpdGlvblNvdXJjZSk7XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLnBlZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jb25kaXRpb25hbC1zaG93L3NlcnZpY2VzL2NvbmRpdGlvbi5wZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBc0ZTLENBQUM7QUFFWixlQUFlLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSAncGVnanMnO1xuXG5jb25zdCBjb25kaXRpb25Tb3VyY2UgPVxuICBge1xuICAgIGZ1bmN0aW9uIGZsYXQoYXJyLCBkZXB0aCA9IDEpIHtcbiAgICAgIHZhciBmbGF0dGVuID0gZnVuY3Rpb24gKGFyciwgZGVwdGggPSAxKSB7XG4gICAgICAgIGlmIChkZXB0aCkgcmV0dXJuIGFycjtcblxuICAgICAgLy8gT3RoZXJ3aXNlLCBjb25jYXRlbmF0ZSBpbnRvIHRoZSBwYXJlbnQgYXJyYXlcbiAgICAgIHJldHVybiBhcnIucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHZhbCkge1xuICAgICAgICByZXR1cm4gYWNjLmNvbmNhdChBcnJheS5pc0FycmF5KHZhbCkgPyBmbGF0dGVuKHZhbCwgZGVwdGggLSAxKSA6IHZhbCk7XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIH07XG5cbiAgICByZXR1cm4gZmxhdHRlbihhcnIsIGRlcHRoIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgU3RhcnRcbiAgICA9IEZvcm11bGFcblxuICBGb3JtdWxhXG4gICAgPSBFbmNsb3NlZEZvcm11bGFcbiAgICAvIE9wZW5Gb3JtdWxhXG5cbiAgRW5jbG9zZWRGb3JtdWxhXG4gICAgPSBicmFja2V0IGZvcm11bGE6T3BlbkZvcm11bGEgYnJhY2tldCBqb2luOihKb2luQ29tcGFyYXRvcikqXG4gICAgICB7IHJldHVybiBmbGF0KFsgW2Zvcm11bGFdLCBqb2luWzBdIF0sIDEpIH1cblxuICBPcGVuRm9ybXVsYVxuICAgID0gZXE6T3BlbkVxdWFsaXR5Q2hlY2sgam9pbnM6KEpvaW5Db21wYXJhdG9yKSpcbiAgICAgIHsgcmV0dXJuIGZsYXQoWyBlcSwgZmxhdChqb2lucykgXSkgfVxuXG4gIEpvaW5Db21wYXJhdG9yXG4gICAgPSBjb21wOkNvbXBhcmF0b3IgZXE6T3BlbkVxdWFsaXR5Q2hlY2tcbiAgICAgIHsgcmV0dXJuIFtjb21wLCBlcV07IH1cbiAgICAgIC8gQ29tcG91bmRKb2luQ29tcGFyYXRvclxuXG4gIENvbXBvdW5kSm9pbkNvbXBhcmF0b3JcbiAgICA9IGNvbXA6Q29tcGFyYXRvciBicmFja2V0IGY6T3BlbkZvcm11bGEgYnJhY2tldFxuICAgICAgeyByZXR1cm4gW2NvbXAsIGYgXSB9XG5cbiAgT3BlbkVxdWFsaXR5Q2hlY2tcbiAgICA9IGZyOkZpZWxkUmVmZXJlbmNlIF8/IG9wOm9wZXJhdG9yIF8/IHZhbDpWYWx1ZVxuICAgICB7IHJldHVybiB7IGZpZWxkUmVmZXJlbmNlOiBmciwgY29tcGFyYXRvcjogb3AsIHZhbHVlOiB2YWwgfSB9XG5cbiAgQ29tcGFyYXRvclxuICAgPSBfPyBjOidBTkQnIF8/XG4gICB7IHJldHVybiBjOyB9XG4gICAvIF8/IGM6J09SJyBfP1xuICAgeyByZXR1cm4gYzsgfVxuXG4gIFdvcmRcbiAgID0gbDpMZXR0ZXIrXG4gICB7IHJldHVybiBsLmpvaW4oXCJcIik7IH1cblxuICBMZXR0ZXJcbiAgID0gW2EtekEtWl1cblxuICBWYWx1ZVxuICAgPSB2OnF1b3RlZFZhbHVlIC8gdjpXb3JkXG4gICB7IHJldHVybiB2LmpvaW4oXCJcIikgfVxuICAgLyB2Om51bWJlclxuICAgeyByZXR1cm4gcGFyc2VJbnQodi5qb2luKFwiXCIpKSB9XG5cbiAgRmllbGRSZWZlcmVuY2VcbiAgICA9IGNoYXJhY3RlcnM6W0EtWmEtejAtOS5fXSsgeyByZXR1cm4gY2hhcmFjdGVycy5qb2luKFwiXCIpOyB9XG5cbiAgbnVtYmVyXG4gICA9IFswLTldK1xuXG4gIHF1b3RlZFZhbHVlXG4gICA9ICdcIid2YWw6W0EtWmEtejAtOS4sKiBfLy1dKidcIidcbiAgIHsgcmV0dXJuIHZhbC5qb2luKFwiXCIpOyB9XG5cbiAgYnJhY2tldFxuICAgPSAoXz8gXCIoXCIrIF8/IC8gXz8gXCIpXCIrIF8/IClcblxuICBvcGVyYXRvclxuICAgPSBcIj1cIiAvIFwiIT1cIiAvIFwiQ09OVEFJTlNcIlxuXG4gIHdzIFwiV2hpdGVzcGFjZVwiXG4gICA9IFsgXFx0XVxuXG4gIF8gXCJPbmUgb3IgbW9yZSB3aGl0ZXNwYWNlc1wiXG4gICA9IHdzK1xuXG4gIG5sIFwiTmV3IGxpbmVcIlxuICAgPSBcIlxcXFxuXCJgO1xuXG5leHBvcnQgZGVmYXVsdCBnZW5lcmF0ZShjb25kaXRpb25Tb3VyY2UpO1xuIl19
@@ -3870,7 +3870,7 @@ const conditionSource = `{
3870
3870
  = [0-9]+
3871
3871
 
3872
3872
  quotedValue
3873
- = '"'val:[A-Za-z0-9.,* _-]*'"'
3873
+ = '"'val:[A-Za-z0-9.,* _/-]*'"'
3874
3874
  { return val.join(""); }
3875
3875
 
3876
3876
  bracket
@@ -3900,6 +3900,7 @@ class ConditionParser {
3900
3900
  return null;
3901
3901
  }
3902
3902
  ;
3903
+ condition = condition.replace(/[[\]]/g, '');
3903
3904
  condition = condition.replace(/CONTAINS/g, ' CONTAINS');
3904
3905
  return peg.parse(condition.trim(), {});
3905
3906
  }
@@ -3909,7 +3910,7 @@ class ConditionParser {
3909
3910
  * @param conditions The PegJS formula output
3910
3911
  */
3911
3912
  static evaluate(fields, conditions, path) {
3912
- if (!conditions) {
3913
+ if (!conditions || conditions.length === 0) {
3913
3914
  return true;
3914
3915
  }
3915
3916
  ;