@alicloud/ros-cdk-assert 1.7.0 → 1.9.0

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.
@@ -31,7 +31,7 @@ class CountResourcesAssertion extends assertion_1.Assertion {
31
31
  const resource = inspector.value.Resources[logicalId];
32
32
  if (resource.Type === this.resourceType) {
33
33
  if (this.props) {
34
- if (have_resource_1.isSuperObject(resource.Properties, this.props, [], true)) {
34
+ if ((0, have_resource_1.isSuperObject)(resource.Properties, this.props, [], true)) {
35
35
  counted++;
36
36
  this.inspected += 1;
37
37
  }
@@ -48,4 +48,4 @@ class CountResourcesAssertion extends assertion_1.Assertion {
48
48
  return `stack only has ${this.inspected} resource of type ${this.resourceType}${this.props ? ' with specified properties' : ''} but we expected to find ${this.count}`;
49
49
  }
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY291bnQtcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUF5QztBQUV6QyxtREFBZ0Q7QUFFaEQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsWUFBb0IsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUM1RCxPQUFPLElBQUksdUJBQXVCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFGRCx3Q0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQVU7SUFDNUUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUZELGdEQUVDO0FBRUQsTUFBTSx1QkFBd0IsU0FBUSxxQkFBeUI7SUFJN0QsWUFBNkIsWUFBb0IsRUFBbUIsS0FBYSxFQUFFLFFBQWEsSUFBSTtRQUNsRyxLQUFLLEVBQUUsQ0FBQztRQURtQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFtQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBSHpFLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFLNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUF5QjtRQUMxQyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ2QsSUFBSSw2QkFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7d0JBQzVELE9BQU8sRUFBRSxDQUFDO3dCQUNWLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO3FCQUNyQjtpQkFDRjtxQkFBTTtvQkFDTCxPQUFPLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztpQkFDckI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sa0JBQWtCLElBQUksQ0FBQyxTQUFTLHFCQUFxQixJQUFJLENBQUMsWUFBWSxHQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFDOUMsNEJBQTRCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NlcnRpb24gfSBmcm9tICcuLi9hc3NlcnRpb24nO1xuaW1wb3J0IHsgU3RhY2tJbnNwZWN0b3IgfSBmcm9tICcuLi9pbnNwZWN0b3InO1xuaW1wb3J0IHsgaXNTdXBlck9iamVjdCB9IGZyb20gJy4vaGF2ZS1yZXNvdXJjZSc7XG5cbi8qKlxuICogQW4gYXNzZXJ0aW9uIHRvIGNoZWNrIHdoZXRoZXIgYSByZXNvdXJjZSBvZiBhIGdpdmVuIHR5cGUgYW5kIHdpdGggdGhlIGdpdmVuIHByb3BlcnRpZXMgZXhpc3RzLCBkaXNyZWdhcmRpbmcgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY291bnRSZXNvdXJjZXMocmVzb3VyY2VUeXBlOiBzdHJpbmcsIGNvdW50ID0gMSk6IEFzc2VydGlvbjxTdGFja0luc3BlY3Rvcj4ge1xuICByZXR1cm4gbmV3IENvdW50UmVzb3VyY2VzQXNzZXJ0aW9uKHJlc291cmNlVHlwZSwgY291bnQpO1xufVxuXG4vKipcbiAqIEFuIGFzc2VydGlvbiB0byBjaGVjayB3aGV0aGVyIGEgcmVzb3VyY2Ugb2YgYSBnaXZlbiB0eXBlIGFuZCB3aXRoIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIGV4aXN0cywgY29uc2lkZXJpbmcgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY291bnRSZXNvdXJjZXNMaWtlKHJlc291cmNlVHlwZTogc3RyaW5nLCBjb3VudCA9IDEsIHByb3BzOiBhbnkpOiBBc3NlcnRpb248U3RhY2tJbnNwZWN0b3I+IHtcbiAgcmV0dXJuIG5ldyBDb3VudFJlc291cmNlc0Fzc2VydGlvbihyZXNvdXJjZVR5cGUsIGNvdW50LCBwcm9wcyk7XG59XG5cbmNsYXNzIENvdW50UmVzb3VyY2VzQXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uPFN0YWNrSW5zcGVjdG9yPiB7XG4gIHByaXZhdGUgaW5zcGVjdGVkOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXNvdXJjZVR5cGU6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBjb3VudDogbnVtYmVyLCBwcm9wczogYW55ID0gbnVsbCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFVzaW5nKGluc3BlY3RvcjogU3RhY2tJbnNwZWN0b3IpOiBib29sZWFuIHtcbiAgICBsZXQgY291bnRlZCA9IDA7XG4gICAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgT2JqZWN0LmtleXMoaW5zcGVjdG9yLnZhbHVlLlJlc291cmNlcyB8fCB7fSkpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gaW5zcGVjdG9yLnZhbHVlLlJlc291cmNlc1tsb2dpY2FsSWRdO1xuICAgICAgaWYgKHJlc291cmNlLlR5cGUgPT09IHRoaXMucmVzb3VyY2VUeXBlKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzKSB7XG4gICAgICAgICAgaWYgKGlzU3VwZXJPYmplY3QocmVzb3VyY2UuUHJvcGVydGllcywgdGhpcy5wcm9wcywgW10sIHRydWUpKSB7XG4gICAgICAgICAgICBjb3VudGVkKys7XG4gICAgICAgICAgICB0aGlzLmluc3BlY3RlZCArPSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb3VudGVkKys7XG4gICAgICAgICAgdGhpcy5pbnNwZWN0ZWQgKz0gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudGVkID09PSB0aGlzLmNvdW50O1xuICB9XG5cbiAgcHVibGljIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc3RhY2sgb25seSBoYXMgJHt0aGlzLmluc3BlY3RlZH0gcmVzb3VyY2Ugb2YgdHlwZSAke3RoaXMucmVzb3VyY2VUeXBlfSR7XG4gICAgICB0aGlzLnByb3BzID8gJyB3aXRoIHNwZWNpZmllZCBwcm9wZXJ0aWVzJyA6ICcnXG4gICAgfSBidXQgd2UgZXhwZWN0ZWQgdG8gZmluZCAke3RoaXMuY291bnR9YDtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY291bnQtcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUF5QztBQUV6QyxtREFBZ0Q7QUFFaEQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsWUFBb0IsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUM1RCxPQUFPLElBQUksdUJBQXVCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFGRCx3Q0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQVU7SUFDNUUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUZELGdEQUVDO0FBRUQsTUFBTSx1QkFBd0IsU0FBUSxxQkFBeUI7SUFJN0QsWUFBNkIsWUFBb0IsRUFBbUIsS0FBYSxFQUFFLFFBQWEsSUFBSTtRQUNsRyxLQUFLLEVBQUUsQ0FBQztRQURtQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFtQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBSHpFLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFLNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUF5QjtRQUMxQyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ2QsSUFBSSxJQUFBLDZCQUFhLEVBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTt3QkFDNUQsT0FBTyxFQUFFLENBQUM7d0JBQ1YsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7cUJBQ3JCO2lCQUNGO3FCQUFNO29CQUNMLE9BQU8sRUFBRSxDQUFDO29CQUNWLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO2lCQUNyQjthQUNGO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLFNBQVMscUJBQXFCLElBQUksQ0FBQyxZQUFZLEdBQzNFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUM5Qyw0QkFBNEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2VydGlvbiB9IGZyb20gJy4uL2Fzc2VydGlvbic7XG5pbXBvcnQgeyBTdGFja0luc3BlY3RvciB9IGZyb20gJy4uL2luc3BlY3Rvcic7XG5pbXBvcnQgeyBpc1N1cGVyT2JqZWN0IH0gZnJvbSAnLi9oYXZlLXJlc291cmNlJztcblxuLyoqXG4gKiBBbiBhc3NlcnRpb24gdG8gY2hlY2sgd2hldGhlciBhIHJlc291cmNlIG9mIGEgZ2l2ZW4gdHlwZSBhbmQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydGllcyBleGlzdHMsIGRpc3JlZ2FyZGluZyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3VudFJlc291cmNlcyhyZXNvdXJjZVR5cGU6IHN0cmluZywgY291bnQgPSAxKTogQXNzZXJ0aW9uPFN0YWNrSW5zcGVjdG9yPiB7XG4gIHJldHVybiBuZXcgQ291bnRSZXNvdXJjZXNBc3NlcnRpb24ocmVzb3VyY2VUeXBlLCBjb3VudCk7XG59XG5cbi8qKlxuICogQW4gYXNzZXJ0aW9uIHRvIGNoZWNrIHdoZXRoZXIgYSByZXNvdXJjZSBvZiBhIGdpdmVuIHR5cGUgYW5kIHdpdGggdGhlIGdpdmVuIHByb3BlcnRpZXMgZXhpc3RzLCBjb25zaWRlcmluZyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3VudFJlc291cmNlc0xpa2UocmVzb3VyY2VUeXBlOiBzdHJpbmcsIGNvdW50ID0gMSwgcHJvcHM6IGFueSk6IEFzc2VydGlvbjxTdGFja0luc3BlY3Rvcj4ge1xuICByZXR1cm4gbmV3IENvdW50UmVzb3VyY2VzQXNzZXJ0aW9uKHJlc291cmNlVHlwZSwgY291bnQsIHByb3BzKTtcbn1cblxuY2xhc3MgQ291bnRSZXNvdXJjZXNBc3NlcnRpb24gZXh0ZW5kcyBBc3NlcnRpb248U3RhY2tJbnNwZWN0b3I+IHtcbiAgcHJpdmF0ZSBpbnNwZWN0ZWQ6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlVHlwZTogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IGNvdW50OiBudW1iZXIsIHByb3BzOiBhbnkgPSBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0VXNpbmcoaW5zcGVjdG9yOiBTdGFja0luc3BlY3Rvcik6IGJvb2xlYW4ge1xuICAgIGxldCBjb3VudGVkID0gMDtcbiAgICBmb3IgKGNvbnN0IGxvZ2ljYWxJZCBvZiBPYmplY3Qua2V5cyhpbnNwZWN0b3IudmFsdWUuUmVzb3VyY2VzIHx8IHt9KSkge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSBpbnNwZWN0b3IudmFsdWUuUmVzb3VyY2VzW2xvZ2ljYWxJZF07XG4gICAgICBpZiAocmVzb3VyY2UuVHlwZSA9PT0gdGhpcy5yZXNvdXJjZVR5cGUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgICAgICBpZiAoaXNTdXBlck9iamVjdChyZXNvdXJjZS5Qcm9wZXJ0aWVzLCB0aGlzLnByb3BzLCBbXSwgdHJ1ZSkpIHtcbiAgICAgICAgICAgIGNvdW50ZWQrKztcbiAgICAgICAgICAgIHRoaXMuaW5zcGVjdGVkICs9IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvdW50ZWQrKztcbiAgICAgICAgICB0aGlzLmluc3BlY3RlZCArPSAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvdW50ZWQgPT09IHRoaXMuY291bnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBzdGFjayBvbmx5IGhhcyAke3RoaXMuaW5zcGVjdGVkfSByZXNvdXJjZSBvZiB0eXBlICR7dGhpcy5yZXNvdXJjZVR5cGV9JHtcbiAgICAgIHRoaXMucHJvcHMgPyAnIHdpdGggc3BlY2lmaWVkIHByb3BlcnRpZXMnIDogJydcbiAgICB9IGJ1dCB3ZSBleHBlY3RlZCB0byBmaW5kICR7dGhpcy5jb3VudH1gO1xuICB9XG59XG4iXX0=
@@ -75,4 +75,4 @@ function indent(n, s) {
75
75
  const prefix = ' '.repeat(n);
76
76
  return prefix + s.replace(/\n/g, '\n' + prefix);
77
77
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGF2ZS1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJoYXZlLW91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBcUQ7QUFHckQsTUFBTSxtQkFBb0IsU0FBUSxpQ0FBcUM7SUFHckUsWUFBNkIsVUFBbUIsRUFBbUIsVUFBZ0IsRUFBVSxXQUFpQjtRQUM1RyxLQUFLLEVBQUUsQ0FBQztRQURtQixlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQW1CLGVBQVUsR0FBVixVQUFVLENBQU07UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBTTtRQUY3RixjQUFTLEdBQXdCLEVBQUUsQ0FBQztRQUluRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1NBQ2hGO0lBQ0gsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixNQUFNLHFCQUFxQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RTtRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7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ZGx5QXNzZXJ0aW9uIH0gZnJvbSAnLi4vYXNzZXJ0aW9uJztcbmltcG9ydCB7IFN0YWNrSW5zcGVjdG9yIH0gZnJvbSAnLi4vaW5zcGVjdG9yJztcblxuY2xhc3MgSGF2ZU91dHB1dEFzc2VydGlvbiBleHRlbmRzIEplc3RGcmllbmRseUFzc2VydGlvbjxTdGFja0luc3BlY3Rvcj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluc3BlY3RlZDogSW5zcGVjdGlvbkZhaWx1cmVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3V0cHV0TmFtZT86IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBleHBvcnROYW1lPzogYW55LCBwcml2YXRlIG91dHB1dFZhbHVlPzogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIXRoaXMub3V0cHV0TmFtZSAmJiAhdGhpcy5leHBvcnROYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBvZiBbb3V0cHV0TmFtZSwgZXhwb3J0TmFtZV0gc2hvdWxkIGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uUGFydHNBcnJheSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBpZiAodGhpcy5vdXRwdXROYW1lKSB7XG4gICAgICBkZXNjcmlwdGlvblBhcnRzQXJyYXkucHVzaChgbmFtZSAnJHt0aGlzLm91dHB1dE5hbWV9J2ApO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHBvcnROYW1lKSB7XG4gICAgICBkZXNjcmlwdGlvblBhcnRzQXJyYXkucHVzaChgZXhwb3J0IG5hbWUgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmV4cG9ydE5hbWUpfWApO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdXRwdXRWYWx1ZSkge1xuICAgICAgZGVzY3JpcHRpb25QYXJ0c0FycmF5LnB1c2goYHZhbHVlICR7SlNPTi5zdHJpbmdpZnkodGhpcy5vdXRwdXRWYWx1ZSl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICdvdXRwdXQgd2l0aCAnICsgZGVzY3JpcHRpb25QYXJ0c0FycmF5LmpvaW4oJywgJyk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0VXNpbmcoaW5zcGVjdG9yOiBTdGFja0luc3BlY3Rvcik6IGJvb2xlYW4ge1xuICAgIGlmICghKCdPdXRwdXRzJyBpbiBpbnNwZWN0b3IudmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbbmFtZSwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGluc3BlY3Rvci52YWx1ZS5PdXRwdXRzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pKSB7XG4gICAgICBjb25zdCBtaXNtYXRjaGVkRmllbGRzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgICAgaWYgKHRoaXMub3V0cHV0TmFtZSAmJiBuYW1lICE9PSB0aGlzLm91dHB1dE5hbWUpIHtcbiAgICAgICAgbWlzbWF0Y2hlZEZpZWxkcy5wdXNoKCduYW1lJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4cG9ydE5hbWUgJiYgSlNPTi5zdHJpbmdpZnkodGhpcy5leHBvcnROYW1lKSAhPT0gSlNPTi5zdHJpbmdpZnkocHJvcHMuRXhwb3J0Py5OYW1lKSkge1xuICAgICAgICBtaXNtYXRjaGVkRmllbGRzLnB1c2goJ2V4cG9ydCBuYW1lJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm91dHB1dFZhbHVlICYmIEpTT04uc3RyaW5naWZ5KHRoaXMub3V0cHV0VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShwcm9wcy5WYWx1ZSkpIHtcbiAgICAgICAgbWlzbWF0Y2hlZEZpZWxkcy5wdXNoKCd2YWx1ZScpO1xuICAgICAgfVxuXG4gICAgICBpZiAobWlzbWF0Y2hlZEZpZWxkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaW5zcGVjdGVkLnB1c2goe1xuICAgICAgICBvdXRwdXQ6IHsgW25hbWVdOiBwcm9wcyB9LFxuICAgICAgICBmYWlsdXJlUmVhc29uOiBgbWlzbWF0Y2hlZCAke21pc21hdGNoZWRGaWVsZHMuam9pbignLCAnKX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlRXJyb3JNZXNzYWdlKCkge1xuICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGxpbmVzLnB1c2goYE5vbmUgb2YgJHt0aGlzLmluc3BlY3RlZC5sZW5ndGh9IG91dHB1dHMgbWF0Y2hlcyAke3RoaXMuZGVzY3JpcHRpb259LmApO1xuXG4gICAgZm9yIChjb25zdCBpbnNwZWN0ZWQgb2YgdGhpcy5pbnNwZWN0ZWQpIHtcbiAgICAgIGxpbmVzLnB1c2goYC0gJHtpbnNwZWN0ZWQuZmFpbHVyZVJlYXNvbn0gaW46YCk7XG4gICAgICBsaW5lcy5wdXNoKGluZGVudCg0LCBKU09OLnN0cmluZ2lmeShpbnNwZWN0ZWQub3V0cHV0LCBudWxsLCAyKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgaGF2ZU91dHB1dCBmdW5jdGlvbiBwcm9wZXJ0aWVzXG4gKiBOT1RFIHRoYXQgYXQgbGVhc3Qgb25lIG9mIFtvdXRwdXROYW1lLCBleHBvcnROYW1lXSBzaG91bGQgYmUgcHJvdmlkZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXZlT3V0cHV0UHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBMb2dpY2FsIElEIG9mIHRoZSBvdXRwdXRcbiAgICogQGRlZmF1bHQgLSB0aGUgbG9naWNhbCBJRCBvZiB0aGUgb3V0cHV0IHdpbGwgbm90IGJlIGNoZWNrZWRcbiAgICovXG4gIG91dHB1dE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFeHBvcnQgbmFtZSBvZiB0aGUgb3V0cHV0LCB3aGVuIGl0J3MgZXhwb3J0ZWQgZm9yIGNyb3NzLXN0YWNrIHJlZmVyZW5jaW5nXG4gICAqIEBkZWZhdWx0IC0gdGhlIGV4cG9ydCBuYW1lIGlzIG5vdCByZXF1aXJlZCBhbmQgd2lsbCBub3QgYmUgY2hlY2tlZFxuICAgKi9cbiAgZXhwb3J0TmFtZT86IGFueTtcbiAgLyoqXG4gICAqIFZhbHVlIG9mIHRoZSBvdXRwdXQ7XG4gICAqIEBkZWZhdWx0IC0gdGhlIHZhbHVlIHdpbGwgbm90IGJlIGNoZWNrZWRcbiAgICovXG4gIG91dHB1dFZhbHVlPzogYW55O1xufVxuXG5pbnRlcmZhY2UgSW5zcGVjdGlvbkZhaWx1cmUge1xuICBvdXRwdXQ6IGFueTtcbiAgZmFpbHVyZVJlYXNvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIGFzc2VydGlvbiAgdG8gY2hlY2sgd2hldGhlciBPdXRwdXQgd2l0aCBwYXJ0aWN1bGFyIHByb3BlcnRpZXMgaXMgcHJlc2VudCBpbiBhIHN0YWNrXG4gKiBAcGFyYW0gcHJvcHMgIHByb3BlcnRpZXMgb2YgdGhlIE91dHB1dCB0aGF0IGlzIGJlaW5nIGFzc2VydGVkIGFnYWluc3QuXG4gKiAgICAgICAgICAgICAgIENoZWNrIGBgSGF2ZU91dHB1dFByb3BlcnRpZXNgYCBpbnRlcmZhY2UgdG8gZ2V0IGZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGF2ZU91dHB1dChwcm9wczogSGF2ZU91dHB1dFByb3BlcnRpZXMpOiBKZXN0RnJpZW5kbHlBc3NlcnRpb248U3RhY2tJbnNwZWN0b3I+IHtcbiAgcmV0dXJuIG5ldyBIYXZlT3V0cHV0QXNzZXJ0aW9uKHByb3BzLm91dHB1dE5hbWUsIHByb3BzLmV4cG9ydE5hbWUsIHByb3BzLm91dHB1dFZhbHVlKTtcbn1cblxuZnVuY3Rpb24gaW5kZW50KG46IG51bWJlciwgczogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9ICcgJy5yZXBlYXQobik7XG4gIHJldHVybiBwcmVmaXggKyBzLnJlcGxhY2UoL1xcbi9nLCAnXFxuJyArIHByZWZpeCk7XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGF2ZS1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJoYXZlLW91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBcUQ7QUFHckQsTUFBTSxtQkFBb0IsU0FBUSxpQ0FBcUM7SUFHckUsWUFBNkIsVUFBbUIsRUFBbUIsVUFBZ0IsRUFBVSxXQUFpQjtRQUM1RyxLQUFLLEVBQUUsQ0FBQztRQURtQixlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQW1CLGVBQVUsR0FBVixVQUFVLENBQU07UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBTTtRQUY3RixjQUFTLEdBQXdCLEVBQUUsQ0FBQztRQUluRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1NBQ2hGO0lBQ0gsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixNQUFNLHFCQUFxQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RTtRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7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RnJpZW5kbHlBc3NlcnRpb24gfSBmcm9tICcuLi9hc3NlcnRpb24nO1xuaW1wb3J0IHsgU3RhY2tJbnNwZWN0b3IgfSBmcm9tICcuLi9pbnNwZWN0b3InO1xuXG5jbGFzcyBIYXZlT3V0cHV0QXNzZXJ0aW9uIGV4dGVuZHMgSmVzdEZyaWVuZGx5QXNzZXJ0aW9uPFN0YWNrSW5zcGVjdG9yPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zcGVjdGVkOiBJbnNwZWN0aW9uRmFpbHVyZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvdXRwdXROYW1lPzogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydE5hbWU/OiBhbnksIHByaXZhdGUgb3V0cHV0VmFsdWU/OiBhbnkpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghdGhpcy5vdXRwdXROYW1lICYmICF0aGlzLmV4cG9ydE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIG9mIFtvdXRwdXROYW1lLCBleHBvcnROYW1lXSBzaG91bGQgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVzY3JpcHRpb25QYXJ0c0FycmF5ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGlmICh0aGlzLm91dHB1dE5hbWUpIHtcbiAgICAgIGRlc2NyaXB0aW9uUGFydHNBcnJheS5wdXNoKGBuYW1lICcke3RoaXMub3V0cHV0TmFtZX0nYCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmV4cG9ydE5hbWUpIHtcbiAgICAgIGRlc2NyaXB0aW9uUGFydHNBcnJheS5wdXNoKGBleHBvcnQgbmFtZSAke0pTT04uc3RyaW5naWZ5KHRoaXMuZXhwb3J0TmFtZSl9YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm91dHB1dFZhbHVlKSB7XG4gICAgICBkZXNjcmlwdGlvblBhcnRzQXJyYXkucHVzaChgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh0aGlzLm91dHB1dFZhbHVlKX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJ291dHB1dCB3aXRoICcgKyBkZXNjcmlwdGlvblBhcnRzQXJyYXkuam9pbignLCAnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnRVc2luZyhpbnNwZWN0b3I6IFN0YWNrSW5zcGVjdG9yKTogYm9vbGVhbiB7XG4gICAgaWYgKCEoJ091dHB1dHMnIGluIGluc3BlY3Rvci52YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBwcm9wc10gb2YgT2JqZWN0LmVudHJpZXMoaW5zcGVjdG9yLnZhbHVlLk91dHB1dHMgYXMgUmVjb3JkPHN0cmluZywgYW55PikpIHtcbiAgICAgIGNvbnN0IG1pc21hdGNoZWRGaWVsZHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICBpZiAodGhpcy5vdXRwdXROYW1lICYmIG5hbWUgIT09IHRoaXMub3V0cHV0TmFtZSkge1xuICAgICAgICBtaXNtYXRjaGVkRmllbGRzLnB1c2goJ25hbWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZXhwb3J0TmFtZSAmJiBKU09OLnN0cmluZ2lmeSh0aGlzLmV4cG9ydE5hbWUpICE9PSBKU09OLnN0cmluZ2lmeShwcm9wcy5FeHBvcnQ/Lk5hbWUpKSB7XG4gICAgICAgIG1pc21hdGNoZWRGaWVsZHMucHVzaCgnZXhwb3J0IG5hbWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub3V0cHV0VmFsdWUgJiYgSlNPTi5zdHJpbmdpZnkodGhpcy5vdXRwdXRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KHByb3BzLlZhbHVlKSkge1xuICAgICAgICBtaXNtYXRjaGVkRmllbGRzLnB1c2goJ3ZhbHVlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtaXNtYXRjaGVkRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnNwZWN0ZWQucHVzaCh7XG4gICAgICAgIG91dHB1dDogeyBbbmFtZV06IHByb3BzIH0sXG4gICAgICAgIGZhaWx1cmVSZWFzb246IGBtaXNtYXRjaGVkICR7bWlzbWF0Y2hlZEZpZWxkcy5qb2luKCcsICcpfWAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVFcnJvck1lc3NhZ2UoKSB7XG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgbGluZXMucHVzaChgTm9uZSBvZiAke3RoaXMuaW5zcGVjdGVkLmxlbmd0aH0gb3V0cHV0cyBtYXRjaGVzICR7dGhpcy5kZXNjcmlwdGlvbn0uYCk7XG5cbiAgICBmb3IgKGNvbnN0IGluc3BlY3RlZCBvZiB0aGlzLmluc3BlY3RlZCkge1xuICAgICAgbGluZXMucHVzaChgLSAke2luc3BlY3RlZC5mYWlsdXJlUmVhc29ufSBpbjpgKTtcbiAgICAgIGxpbmVzLnB1c2goaW5kZW50KDQsIEpTT04uc3RyaW5naWZ5KGluc3BlY3RlZC5vdXRwdXQsIG51bGwsIDIpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBoYXZlT3V0cHV0IGZ1bmN0aW9uIHByb3BlcnRpZXNcbiAqIE5PVEUgdGhhdCBhdCBsZWFzdCBvbmUgb2YgW291dHB1dE5hbWUsIGV4cG9ydE5hbWVdIHNob3VsZCBiZSBwcm92aWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhdmVPdXRwdXRQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIExvZ2ljYWwgSUQgb2YgdGhlIG91dHB1dFxuICAgKiBAZGVmYXVsdCAtIHRoZSBsb2dpY2FsIElEIG9mIHRoZSBvdXRwdXQgd2lsbCBub3QgYmUgY2hlY2tlZFxuICAgKi9cbiAgb3V0cHV0TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEV4cG9ydCBuYW1lIG9mIHRoZSBvdXRwdXQsIHdoZW4gaXQncyBleHBvcnRlZCBmb3IgY3Jvc3Mtc3RhY2sgcmVmZXJlbmNpbmdcbiAgICogQGRlZmF1bHQgLSB0aGUgZXhwb3J0IG5hbWUgaXMgbm90IHJlcXVpcmVkIGFuZCB3aWxsIG5vdCBiZSBjaGVja2VkXG4gICAqL1xuICBleHBvcnROYW1lPzogYW55O1xuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIG91dHB1dDtcbiAgICogQGRlZmF1bHQgLSB0aGUgdmFsdWUgd2lsbCBub3QgYmUgY2hlY2tlZFxuICAgKi9cbiAgb3V0cHV0VmFsdWU/OiBhbnk7XG59XG5cbmludGVyZmFjZSBJbnNwZWN0aW9uRmFpbHVyZSB7XG4gIG91dHB1dDogYW55O1xuICBmYWlsdXJlUmVhc29uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gYXNzZXJ0aW9uICB0byBjaGVjayB3aGV0aGVyIE91dHB1dCB3aXRoIHBhcnRpY3VsYXIgcHJvcGVydGllcyBpcyBwcmVzZW50IGluIGEgc3RhY2tcbiAqIEBwYXJhbSBwcm9wcyAgcHJvcGVydGllcyBvZiB0aGUgT3V0cHV0IHRoYXQgaXMgYmVpbmcgYXNzZXJ0ZWQgYWdhaW5zdC5cbiAqICAgICAgICAgICAgICAgQ2hlY2sgYGBIYXZlT3V0cHV0UHJvcGVydGllc2BgIGludGVyZmFjZSB0byBnZXQgZnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXZlT3V0cHV0KHByb3BzOiBIYXZlT3V0cHV0UHJvcGVydGllcyk6IEplc3RGcmllbmRseUFzc2VydGlvbjxTdGFja0luc3BlY3Rvcj4ge1xuICByZXR1cm4gbmV3IEhhdmVPdXRwdXRBc3NlcnRpb24ocHJvcHMub3V0cHV0TmFtZSwgcHJvcHMuZXhwb3J0TmFtZSwgcHJvcHMub3V0cHV0VmFsdWUpO1xufVxuXG5mdW5jdGlvbiBpbmRlbnQobjogbnVtYmVyLCBzOiBzdHJpbmcpIHtcbiAgY29uc3QgcHJlZml4ID0gJyAnLnJlcGVhdChuKTtcbiAgcmV0dXJuIHByZWZpeCArIHMucmVwbGFjZSgvXFxuL2csICdcXG4nICsgcHJlZml4KTtcbn1cbiJdfQ==
@@ -25,7 +25,7 @@ export declare function haveResource(resourceType: string, properties?: any, com
25
25
  * Sugar for calling ``haveResources`` with ``allowValueExtension`` set to ``true``.
26
26
  */
27
27
  export declare function haveResourceLike(resourceType: string, properties?: any, comparison?: ResourcePart): Assertion<StackInspector>;
28
- export declare type PropertyMatcher = (props: any, inspection: InspectionFailure) => boolean;
28
+ export type PropertyMatcher = (props: any, inspection: InspectionFailure) => boolean;
29
29
  export declare class HaveResourceAssertion extends JestFriendlyAssertion<StackInspector> {
30
30
  private readonly resourceType;
31
31
  private readonly inspected;
@@ -93,7 +93,6 @@ class StackMatchesTemplateAssertion extends assertion_1.Assertion {
93
93
  }
94
94
  return true;
95
95
  case MatchStyle.REGEXP:
96
- let acceptable = true;
97
96
  let diffMap = this.diff.toMap();
98
97
  let keysToDelete = [];
99
98
  for (const key in diffMap) {
@@ -106,17 +105,20 @@ class StackMatchesTemplateAssertion extends assertion_1.Assertion {
106
105
  if (compareVariablesWithRegExp(value.oldValue, value.newValue)) {
107
106
  keysToDelete.push(key);
108
107
  }
109
- else {
110
- acceptable = false;
111
- }
112
108
  }
113
109
  else if (typeof value === 'object' && !Array.isArray(value)) {
114
110
  for (const subKey in value) {
111
+ if (`${key}.${subKey}` in keysToDelete) {
112
+ continue;
113
+ }
115
114
  if (compareVariablesWithRegExp(value[subKey].oldValue, value[subKey].newValue)) {
116
115
  keysToDelete.push(key + '.' + subKey);
117
116
  }
118
117
  else {
119
118
  for (const otherSubKey in value) {
119
+ if (`${key}.${otherSubKey}` in keysToDelete) {
120
+ continue;
121
+ }
120
122
  const regex = new RegExp(subKey);
121
123
  if (otherSubKey === subKey || !regex.test(otherSubKey)) {
122
124
  continue;
@@ -127,9 +129,6 @@ class StackMatchesTemplateAssertion extends assertion_1.Assertion {
127
129
  keysToDelete.push(key + '.' + otherSubKey);
128
130
  break;
129
131
  }
130
- else {
131
- acceptable = false;
132
- }
133
132
  }
134
133
  }
135
134
  }
@@ -148,7 +147,7 @@ class StackMatchesTemplateAssertion extends assertion_1.Assertion {
148
147
  }
149
148
  }
150
149
  this.diff = rosDiff.TemplateDiff.fromMap(diffMap);
151
- return acceptable;
150
+ return this.diff.differenceCount === 0;
152
151
  }
153
152
  throw new Error(`Unsupported match style: ${this.matchStyle}`);
154
153
  }
@@ -157,6 +156,9 @@ class StackMatchesTemplateAssertion extends assertion_1.Assertion {
157
156
  }
158
157
  }
159
158
  function compareVariablesWithRegExp(var1, var2) {
159
+ if (var1 === undefined || var2 === undefined) {
160
+ return false;
161
+ }
160
162
  if (typeof var1 !== typeof var2) {
161
163
  return false;
162
164
  }
@@ -200,4 +202,4 @@ function compareVariablesWithRegExp(var1, var2) {
200
202
  }
201
203
  return false;
202
204
  }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXRjaC10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBMkQ7QUFDM0QsNENBQXVDO0FBRXZDLHNDQUFzQztBQUV0QyxJQUFZLFVBU1g7QUFURCxXQUFZLFVBQVU7SUFDcEIsOEJBQThCO0lBQzlCLCtCQUFpQixDQUFBO0lBQ2pCLG1FQUFtRTtJQUNuRSx5Q0FBMkIsQ0FBQTtJQUMzQix1Q0FBdUM7SUFDdkMsbUNBQXFCLENBQUE7SUFDckIsa0RBQWtEO0lBQ2xELCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFUVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQVNyQjtBQUVELFNBQWdCLG9CQUFvQixDQUFDLFFBQWdDO0lBQ25FLE9BQU8sYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0M7SUFDcEUsT0FBTyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQixhQUFhLENBQzNCLFFBQWdDLEVBQ2hDLGFBQXlCLFVBQVUsQ0FBQyxLQUFLO0lBRXpDLE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUxELHNDQUtDO0FBRUQsTUFBTSw2QkFBOEIsU0FBUSxxQkFBeUI7SUFFbkUsWUFBNkIsUUFBZ0MsRUFBbUIsVUFBc0I7UUFDcEcsS0FBSyxFQUFFLENBQUM7UUFEbUIsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFBbUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUV0RyxDQUFDO0lBRU0sYUFBYSxDQUFDLFNBQXlCO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFD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QUNyRCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zRGlmZiBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay10ZW1wbGF0ZS1kaWZmJztcbmltcG9ydCB7QXNzZXJ0aW9ufSBmcm9tICcuLi9hc3NlcnRpb24nO1xuaW1wb3J0IHtTdGFja0luc3BlY3Rvcn0gZnJvbSAnLi4vaW5zcGVjdG9yJztcbmltcG9ydCAqIGFzIGNvbG9ycyBmcm9tICdjb2xvcnMvc2FmZSc7XG5cbmV4cG9ydCBlbnVtIE1hdGNoU3R5bGUge1xuICAvKiogUmVxdWlyZXMgYW4gZXhhY3QgbWF0Y2ggKi9cbiAgRVhBQ1QgPSAnZXhhY3RseScsXG4gIC8qKiBBbGxvd3MgYW55IGNoYW5nZSB0aGF0IGRvZXMgbm90IGNhdXNlIGEgcmVzb3VyY2UgcmVwbGFjZW1lbnQgKi9cbiAgTk9fUkVQTEFDRVMgPSAnbm8gcmVwbGFjZXMnLFxuICAvKiogQWxsb3dzIGFkZGl0aW9ucywgYnV0IG5vIHVwZGF0ZXMgKi9cbiAgU1VQRVJTRVQgPSAnc3VwZXJzZXQnLFxuICAvKiogQWxsb3dzIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gbWF0Y2ggc3RyaW5ncyAqL1xuICBSRUdFWFAgPSAncmVnZXhwJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4YWN0bHlNYXRjaFRlbXBsYXRlKHRlbXBsYXRlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gIHJldHVybiBtYXRjaFRlbXBsYXRlKHRlbXBsYXRlLCBNYXRjaFN0eWxlLkVYQUNUKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJlQVN1cGVyc2V0T2ZUZW1wbGF0ZSh0ZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICByZXR1cm4gbWF0Y2hUZW1wbGF0ZSh0ZW1wbGF0ZSwgTWF0Y2hTdHlsZS5TVVBFUlNFVCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFRlbXBsYXRlKFxuICB0ZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgbWF0Y2hTdHlsZTogTWF0Y2hTdHlsZSA9IE1hdGNoU3R5bGUuRVhBQ1QsXG4pOiBBc3NlcnRpb248U3RhY2tJbnNwZWN0b3I+IHtcbiAgcmV0dXJuIG5ldyBTdGFja01hdGNoZXNUZW1wbGF0ZUFzc2VydGlvbih0ZW1wbGF0ZSwgbWF0Y2hTdHlsZSk7XG59XG5cbmNsYXNzIFN0YWNrTWF0Y2hlc1RlbXBsYXRlQXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uPFN0YWNrSW5zcGVjdG9yPiB7XG4gIHB1YmxpYyBkaWZmPzogcm9zRGlmZi5UZW1wbGF0ZURpZmY7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIHByaXZhdGUgcmVhZG9ubHkgbWF0Y2hTdHlsZTogTWF0Y2hTdHlsZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0T3JUaHJvdyhpbnNwZWN0b3I6IFN0YWNrSW5zcGVjdG9yKSB7XG4gICAgaWYgKCF0aGlzLmFzc2VydFVzaW5nKGluc3BlY3RvcikpIHtcbiAgICAgIC8vIFRoZSBkZXRhaWxzIGhhdmUgYWxyZWFkeSBiZWVuIHByaW50ZWQsIHNvIGRvbid0IGdlbmVyYXRlIGEgaHVnZSBlcnJvciBtZXNzYWdlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RlbXBsYXRlIGNvbXBhcmlzb24gcHJvZHVjZWQgdW5hY2NlcHRhYmxlIG1hdGNoJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzc2VydFVzaW5nKGluc3BlY3RvcjogU3RhY2tJbnNwZWN0b3IpOiBib29sZWFuIHtcbiAgICB0aGlzLmRpZmYgPSByb3NEaWZmLmRpZmZUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlLCBpbnNwZWN0b3IudmFsdWUpO1xuICAgIGNvbnN0IGFjY2VwdGFibGUgPSB0aGlzLmlzRGlmZkFjY2VwdGFibGUoKTtcbiAgICBpZiAoIWFjY2VwdGFibGUpIHtcbiAgICAgIC8vIFByaW50IHRoZSBkaWZmXG4gICAgICByb3NEaWZmLmZvcm1hdERpZmZlcmVuY2VzKHByb2Nlc3Muc3RkZXJyLCB0aGlzLmRpZmYpO1xuXG4gICAgICAvLyBQcmludCB0aGUgYWN0dWFsIHRlbXBsYXRlXG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjb2xvcnMucmFpbmJvdygnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4nKSk7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjb2xvcnMud2hpdGUoKEpTT04uc3RyaW5naWZ5KGluc3BlY3Rvci52YWx1ZSwgdW5kZWZpbmVkLCAyKSArICdcXG4nKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2NlcHRhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RpZmZBY2NlcHRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAodGhpcy5tYXRjaFN0eWxlKSB7XG4gICAgICBjYXNlIE1hdGNoU3R5bGUuRVhBQ1Q6XG4gICAgICAgIHJldHVybiB0aGlzLmRpZmYhLmRpZmZlcmVuY2VDb3VudCA9PT0gMDtcbiAgICAgIGNhc2UgTWF0Y2hTdHlsZS5OT19SRVBMQUNFUzpcbiAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmRpZmYhLnJlc291cmNlcy5jaGFuZ2VzKSkge1xuICAgICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlSW1wYWN0ID09PSByb3NEaWZmLlJlc291cmNlSW1wYWN0Lk1BWV9SRVBMQUNFKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlSW1wYWN0ID09PSByb3NEaWZmLlJlc291cmNlSW1wYWN0LldJTExfUkVQTEFDRSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIE9iamVjdC52YWx1ZXModGhpcy5kaWZmIS5wYXJhbWV0ZXJzLmNoYW5nZXMpKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5pc1VwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIE9iamVjdC52YWx1ZXModGhpcy5kaWZmIS5vdXRwdXRzLmNoYW5nZXMpKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5pc1VwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgTWF0Y2hTdHlsZS5TVVBFUlNFVDpcbiAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmRpZmYhLnJlc291cmNlcy5jaGFuZ2VzKSkge1xuICAgICAgICAgIGlmIChjaGFuZ2UuY2hhbmdlSW1wYWN0ICE9PSByb3NEaWZmLlJlc291cmNlSW1wYWN0LldJTExfQ1JFQVRFKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmRpZmYhLnBhcmFtZXRlcnMuY2hhbmdlcykpIHtcbiAgICAgICAgICBpZiAoY2hhbmdlLmlzQWRkaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuZGlmZiEub3V0cHV0cy5jaGFuZ2VzKSkge1xuICAgICAgICAgIGlmIChjaGFuZ2UuaXNBZGRpdGlvbiB8fCBjaGFuZ2UuaXNVcGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgTWF0Y2hTdHlsZS5SRUdFWFA6XG4gICAgICAgIGxldCBhY2NlcHRhYmxlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGRpZmZNYXAgPSB0aGlzLmRpZmYhLnRvTWFwKCk7XG4gICAgICAgIGxldCBrZXlzVG9EZWxldGU6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRpZmZNYXApIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRpZmZNYXBba2V5XTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSkge1xuICAgICAgICAgICAga2V5c1RvRGVsZXRlLnB1c2goa2V5KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocm9zRGlmZi5pc0RpZmZlcmVuY2VJbnN0YW5jZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmIChjb21wYXJlVmFyaWFibGVzV2l0aFJlZ0V4cCh2YWx1ZS5vbGRWYWx1ZSwgdmFsdWUubmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgIGtleXNUb0RlbGV0ZS5wdXNoKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhY2NlcHRhYmxlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJLZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbXBhcmVWYXJpYWJsZXNXaXRoUmVnRXhwKHZhbHVlW3N1YktleV0ub2xkVmFsdWUsIHZhbHVlW3N1YktleV0ubmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAga2V5c1RvRGVsZXRlLnB1c2goa2V5ICsgJy4nICsgc3ViS2V5KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG90aGVyU3ViS2V5IGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoc3ViS2V5KTtcbiAgICAgICAgICAgICAgICAgIGlmIChvdGhlclN1YktleSA9PT0gc3ViS2V5IHx8ICFyZWdleC50ZXN0KG90aGVyU3ViS2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlVmFyaWFibGVzV2l0aFJlZ0V4cCh2YWx1ZVtzdWJLZXldLm9sZFZhbHVlLCB2YWx1ZVtvdGhlclN1YktleV0ubmV3VmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgfHwgY29tcGFyZVZhcmlhYmxlc1dpdGhSZWdFeHAodmFsdWVbb3RoZXJTdWJLZXldLm9sZFZhbHVlLCB2YWx1ZVtzdWJLZXldLm5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBrZXlzVG9EZWxldGUucHVzaChrZXkgKyAnLicgKyBzdWJLZXkpO1xuICAgICAgICAgICAgICAgICAgICBrZXlzVG9EZWxldGUucHVzaChrZXkgKyAnLicgKyBvdGhlclN1YktleSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzVG9EZWxldGUpIHtcbiAgICAgICAgICBjb25zdCBrZXlzID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaWZmTWFwW2tleV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaWZmTWFwW2tleXNbMF1dW2tleXNbMV1dO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGRpZmZNYXBba2V5c1swXV0pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBkZWxldGUgZGlmZk1hcFtrZXlzWzBdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaWZmID0gcm9zRGlmZi5UZW1wbGF0ZURpZmYuZnJvbU1hcChkaWZmTWFwKTtcbiAgICAgICAgcmV0dXJuIGFjY2VwdGFibGU7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbWF0Y2ggc3R5bGU6ICR7dGhpcy5tYXRjaFN0eWxlfWApO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdGVtcGxhdGUgKCR7dGhpcy5tYXRjaFN0eWxlfSk6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy50ZW1wbGF0ZSwgbnVsbCwgMil9YDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wYXJlVmFyaWFibGVzV2l0aFJlZ0V4cCh2YXIxOiBhbnksIHZhcjI6IGFueSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHZhcjEgIT09IHR5cGVvZiB2YXIyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YXIxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFyMiA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodmFyMSAhPT0gdmFyMikge1xuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHZhcjEpO1xuICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFyMik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFyMSAhPT0gJ29iamVjdCcgJiYgdHlwZW9mIHZhcjIgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHZhcjEgPT09IHZhcjI7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhcjEgPT09ICdvYmplY3QnICYmIHR5cGVvZiB2YXIyID09PSAnb2JqZWN0Jykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhcjEpICYmIEFycmF5LmlzQXJyYXkodmFyMikpIHtcbiAgICAgIGlmICh2YXIxLmxlbmd0aCAhPT0gdmFyMi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YXIxLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghY29tcGFyZVZhcmlhYmxlc1dpdGhSZWdFeHAodmFyMVtpXSwgdmFyMltpXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBrZXlzMSA9IE9iamVjdC5rZXlzKHZhcjEpO1xuICAgICAgY29uc3Qga2V5czIgPSBPYmplY3Qua2V5cyh2YXIyKTtcbiAgICAgIGlmIChrZXlzMS5sZW5ndGggIT09IGtleXMyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzMSkge1xuICAgICAgICBpZiAoIWNvbXBhcmVWYXJpYWJsZXNXaXRoUmVnRXhwKHZhcjFba2V5XSwgdmFyMltrZXldKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXRjaC10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBMkQ7QUFDM0QsNENBQXVDO0FBRXZDLHNDQUFzQztBQUV0QyxJQUFZLFVBU1g7QUFURCxXQUFZLFVBQVU7SUFDcEIsOEJBQThCO0lBQzlCLCtCQUFpQixDQUFBO0lBQ2pCLG1FQUFtRTtJQUNuRSx5Q0FBMkIsQ0FBQTtJQUMzQix1Q0FBdUM7SUFDdkMsbUNBQXFCLENBQUE7SUFDckIsa0RBQWtEO0lBQ2xELCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFUVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQVNyQjtBQUVELFNBQWdCLG9CQUFvQixDQUFDLFFBQWdDO0lBQ25FLE9BQU8sYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0M7SUFDcEUsT0FBTyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQixhQUFhLENBQzNCLFFBQWdDLEVBQ2hDLGFBQXlCLFVBQVUsQ0FBQyxLQUFLO0lBRXpDLE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUxELHNDQUtDO0FBRUQsTUFBTSw2QkFBOEIsU0FBUSxxQkFBeUI7SUFFbkUsWUFBNkIsUUFBZ0MsRUFBbUIsVUFBc0I7UUFDcEcsS0FBSyxFQUFFLENBQUM7UUFEbUIsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFBbUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUV0RyxDQUFDO0lBRU0sYUFBYSxDQUFDLFNBQXlCO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFD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QUssQ0FBQzthQUNkO1lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JELE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByb3NEaWZmIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLXRlbXBsYXRlLWRpZmYnO1xuaW1wb3J0IHtBc3NlcnRpb259IGZyb20gJy4uL2Fzc2VydGlvbic7XG5pbXBvcnQge1N0YWNrSW5zcGVjdG9yfSBmcm9tICcuLi9pbnNwZWN0b3InO1xuaW1wb3J0ICogYXMgY29sb3JzIGZyb20gJ2NvbG9ycy9zYWZlJztcblxuZXhwb3J0IGVudW0gTWF0Y2hTdHlsZSB7XG4gIC8qKiBSZXF1aXJlcyBhbiBleGFjdCBtYXRjaCAqL1xuICBFWEFDVCA9ICdleGFjdGx5JyxcbiAgLyoqIEFsbG93cyBhbnkgY2hhbmdlIHRoYXQgZG9lcyBub3QgY2F1c2UgYSByZXNvdXJjZSByZXBsYWNlbWVudCAqL1xuICBOT19SRVBMQUNFUyA9ICdubyByZXBsYWNlcycsXG4gIC8qKiBBbGxvd3MgYWRkaXRpb25zLCBidXQgbm8gdXBkYXRlcyAqL1xuICBTVVBFUlNFVCA9ICdzdXBlcnNldCcsXG4gIC8qKiBBbGxvd3MgcmVndWxhciBleHByZXNzaW9ucyB0byBtYXRjaCBzdHJpbmdzICovXG4gIFJFR0VYUCA9ICdyZWdleHAnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhhY3RseU1hdGNoVGVtcGxhdGUodGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgcmV0dXJuIG1hdGNoVGVtcGxhdGUodGVtcGxhdGUsIE1hdGNoU3R5bGUuRVhBQ1QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmVBU3VwZXJzZXRPZlRlbXBsYXRlKHRlbXBsYXRlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gIHJldHVybiBtYXRjaFRlbXBsYXRlKHRlbXBsYXRlLCBNYXRjaFN0eWxlLlNVUEVSU0VUKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoVGVtcGxhdGUoXG4gIHRlbXBsYXRlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICBtYXRjaFN0eWxlOiBNYXRjaFN0eWxlID0gTWF0Y2hTdHlsZS5FWEFDVCxcbik6IEFzc2VydGlvbjxTdGFja0luc3BlY3Rvcj4ge1xuICByZXR1cm4gbmV3IFN0YWNrTWF0Y2hlc1RlbXBsYXRlQXNzZXJ0aW9uKHRlbXBsYXRlLCBtYXRjaFN0eWxlKTtcbn1cblxuY2xhc3MgU3RhY2tNYXRjaGVzVGVtcGxhdGVBc3NlcnRpb24gZXh0ZW5kcyBBc3NlcnRpb248U3RhY2tJbnNwZWN0b3I+IHtcbiAgcHVibGljIGRpZmY/OiByb3NEaWZmLlRlbXBsYXRlRGlmZjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgcHJpdmF0ZSByZWFkb25seSBtYXRjaFN0eWxlOiBNYXRjaFN0eWxlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnRPclRocm93KGluc3BlY3RvcjogU3RhY2tJbnNwZWN0b3IpIHtcbiAgICBpZiAoIXRoaXMuYXNzZXJ0VXNpbmcoaW5zcGVjdG9yKSkge1xuICAgICAgLy8gVGhlIGRldGFpbHMgaGF2ZSBhbHJlYWR5IGJlZW4gcHJpbnRlZCwgc28gZG9uJ3QgZ2VuZXJhdGUgYSBodWdlIGVycm9yIG1lc3NhZ2VcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGVtcGxhdGUgY29tcGFyaXNvbiBwcm9kdWNlZCB1bmFjY2VwdGFibGUgbWF0Y2gnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0VXNpbmcoaW5zcGVjdG9yOiBTdGFja0luc3BlY3Rvcik6IGJvb2xlYW4ge1xuICAgIHRoaXMuZGlmZiA9IHJvc0RpZmYuZGlmZlRlbXBsYXRlKHRoaXMudGVtcGxhdGUsIGluc3BlY3Rvci52YWx1ZSk7XG4gICAgY29uc3QgYWNjZXB0YWJsZSA9IHRoaXMuaXNEaWZmQWNjZXB0YWJsZSgpO1xuICAgIGlmICghYWNjZXB0YWJsZSkge1xuICAgICAgLy8gUHJpbnQgdGhlIGRpZmZcbiAgICAgIHJvc0RpZmYuZm9ybWF0RGlmZmVyZW5jZXMocHJvY2Vzcy5zdGRlcnIsIHRoaXMuZGlmZik7XG5cbiAgICAgIC8vIFByaW50IHRoZSBhY3R1YWwgdGVtcGxhdGVcbiAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNvbG9ycy5yYWluYm93KCctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbicpKTtcbiAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNvbG9ycy53aGl0ZSgoSlNPTi5zdHJpbmdpZnkoaW5zcGVjdG9yLnZhbHVlLCB1bmRlZmluZWQsIDIpICsgJ1xcbicpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY2VwdGFibGU7XG4gIH1cblxuICBwcml2YXRlIGlzRGlmZkFjY2VwdGFibGUoKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0aGlzLm1hdGNoU3R5bGUpIHtcbiAgICAgIGNhc2UgTWF0Y2hTdHlsZS5FWEFDVDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlmZiEuZGlmZmVyZW5jZUNvdW50ID09PSAwO1xuICAgICAgY2FzZSBNYXRjaFN0eWxlLk5PX1JFUExBQ0VTOlxuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuZGlmZiEucmVzb3VyY2VzLmNoYW5nZXMpKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5jaGFuZ2VJbXBhY3QgPT09IHJvc0RpZmYuUmVzb3VyY2VJbXBhY3QuTUFZX1JFUExBQ0UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNoYW5nZS5jaGFuZ2VJbXBhY3QgPT09IHJvc0RpZmYuUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmRpZmYhLnBhcmFtZXRlcnMuY2hhbmdlcykpIHtcbiAgICAgICAgICBpZiAoY2hhbmdlLmlzVXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmRpZmYhLm91dHB1dHMuY2hhbmdlcykpIHtcbiAgICAgICAgICBpZiAoY2hhbmdlLmlzVXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSBNYXRjaFN0eWxlLlNVUEVSU0VUOlxuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuZGlmZiEucmVzb3VyY2VzLmNoYW5nZXMpKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5jaGFuZ2VJbXBhY3QgIT09IHJvc0RpZmYuUmVzb3VyY2VJbXBhY3QuV0lMTF9DUkVBVEUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuZGlmZiEucGFyYW1ldGVycy5jaGFuZ2VzKSkge1xuICAgICAgICAgIGlmIChjaGFuZ2UuaXNBZGRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIE9iamVjdC52YWx1ZXModGhpcy5kaWZmIS5vdXRwdXRzLmNoYW5nZXMpKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZS5pc0FkZGl0aW9uIHx8IGNoYW5nZS5pc1VwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSBNYXRjaFN0eWxlLlJFR0VYUDpcbiAgICAgICAgbGV0IGRpZmZNYXAgPSB0aGlzLmRpZmYhLnRvTWFwKCk7XG4gICAgICAgIGxldCBrZXlzVG9EZWxldGU6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRpZmZNYXApIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRpZmZNYXBba2V5XTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSkge1xuICAgICAgICAgICAga2V5c1RvRGVsZXRlLnB1c2goa2V5KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocm9zRGlmZi5pc0RpZmZlcmVuY2VJbnN0YW5jZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmIChjb21wYXJlVmFyaWFibGVzV2l0aFJlZ0V4cCh2YWx1ZS5vbGRWYWx1ZSwgdmFsdWUubmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgIGtleXNUb0RlbGV0ZS5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJLZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgaWYgKGAke2tleX0uJHtzdWJLZXl9YCBpbiBrZXlzVG9EZWxldGUpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoY29tcGFyZVZhcmlhYmxlc1dpdGhSZWdFeHAodmFsdWVbc3ViS2V5XS5vbGRWYWx1ZSwgdmFsdWVbc3ViS2V5XS5uZXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBrZXlzVG9EZWxldGUucHVzaChrZXkgKyAnLicgKyBzdWJLZXkpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3RoZXJTdWJLZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChgJHtrZXl9LiR7b3RoZXJTdWJLZXl9YCBpbiBrZXlzVG9EZWxldGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoc3ViS2V5KTtcbiAgICAgICAgICAgICAgICAgIGlmIChvdGhlclN1YktleSA9PT0gc3ViS2V5IHx8ICFyZWdleC50ZXN0KG90aGVyU3ViS2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlVmFyaWFibGVzV2l0aFJlZ0V4cCh2YWx1ZVtzdWJLZXldLm9sZFZhbHVlLCB2YWx1ZVtvdGhlclN1YktleV0ubmV3VmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgfHwgY29tcGFyZVZhcmlhYmxlc1dpdGhSZWdFeHAodmFsdWVbb3RoZXJTdWJLZXldLm9sZFZhbHVlLCB2YWx1ZVtzdWJLZXldLm5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBrZXlzVG9EZWxldGUucHVzaChrZXkgKyAnLicgKyBzdWJLZXkpO1xuICAgICAgICAgICAgICAgICAgICBrZXlzVG9EZWxldGUucHVzaChrZXkgKyAnLicgKyBvdGhlclN1YktleSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzVG9EZWxldGUpIHtcbiAgICAgICAgICBjb25zdCBrZXlzID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaWZmTWFwW2tleV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaWZmTWFwW2tleXNbMF1dW2tleXNbMV1dO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGRpZmZNYXBba2V5c1swXV0pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBkZWxldGUgZGlmZk1hcFtrZXlzWzBdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaWZmID0gcm9zRGlmZi5UZW1wbGF0ZURpZmYuZnJvbU1hcChkaWZmTWFwKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlmZiEuZGlmZmVyZW5jZUNvdW50ID09PSAwO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIG1hdGNoIHN0eWxlOiAke3RoaXMubWF0Y2hTdHlsZX1gKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHRlbXBsYXRlICgke3RoaXMubWF0Y2hTdHlsZX0pOiAke0pTT04uc3RyaW5naWZ5KHRoaXMudGVtcGxhdGUsIG51bGwsIDIpfWA7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcGFyZVZhcmlhYmxlc1dpdGhSZWdFeHAodmFyMTogYW55LCB2YXIyOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHZhcjEgPT09IHVuZGVmaW5lZCB8fCB2YXIyID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YXIxICE9PSB0eXBlb2YgdmFyMikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFyMSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhcjIgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhcjEgIT09IHZhcjIpIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cCh2YXIxKTtcbiAgICAgIHJldHVybiByZWdleC50ZXN0KHZhcjIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHZhcjEgIT09ICdvYmplY3QnICYmIHR5cGVvZiB2YXIyICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiB2YXIxID09PSB2YXIyO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YXIxID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFyMiA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YXIxKSAmJiBBcnJheS5pc0FycmF5KHZhcjIpKSB7XG4gICAgICBpZiAodmFyMS5sZW5ndGggIT09IHZhcjIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFyMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIWNvbXBhcmVWYXJpYWJsZXNXaXRoUmVnRXhwKHZhcjFbaV0sIHZhcjJbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyh2YXIxKTtcbiAgICAgIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXModmFyMik7XG4gICAgICBpZiAoa2V5czEubGVuZ3RoICE9PSBrZXlzMi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgICAgaWYgKCFjb21wYXJlVmFyaWFibGVzV2l0aFJlZ0V4cCh2YXIxW2tleV0sIHZhcjJba2V5XSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -104,7 +104,6 @@ class StackMatchesTemplateAssertion extends Assertion<StackInspector> {
104
104
 
105
105
  return true;
106
106
  case MatchStyle.REGEXP:
107
- let acceptable = true;
108
107
  let diffMap = this.diff!.toMap();
109
108
  let keysToDelete: string[] = [];
110
109
  for (const key in diffMap) {
@@ -116,15 +115,19 @@ class StackMatchesTemplateAssertion extends Assertion<StackInspector> {
116
115
  if (rosDiff.isDifferenceInstance(value)) {
117
116
  if (compareVariablesWithRegExp(value.oldValue, value.newValue)) {
118
117
  keysToDelete.push(key);
119
- } else {
120
- acceptable = false;
121
118
  }
122
119
  } else if (typeof value === 'object' && !Array.isArray(value)) {
123
120
  for (const subKey in value) {
121
+ if (`${key}.${subKey}` in keysToDelete) {
122
+ continue;
123
+ }
124
124
  if (compareVariablesWithRegExp(value[subKey].oldValue, value[subKey].newValue)) {
125
125
  keysToDelete.push(key + '.' + subKey);
126
126
  } else {
127
127
  for (const otherSubKey in value) {
128
+ if (`${key}.${otherSubKey}` in keysToDelete) {
129
+ continue;
130
+ }
128
131
  const regex = new RegExp(subKey);
129
132
  if (otherSubKey === subKey || !regex.test(otherSubKey)) {
130
133
  continue;
@@ -134,8 +137,6 @@ class StackMatchesTemplateAssertion extends Assertion<StackInspector> {
134
137
  keysToDelete.push(key + '.' + subKey);
135
138
  keysToDelete.push(key + '.' + otherSubKey);
136
139
  break;
137
- } else {
138
- acceptable = false;
139
140
  }
140
141
  }
141
142
  }
@@ -154,7 +155,7 @@ class StackMatchesTemplateAssertion extends Assertion<StackInspector> {
154
155
  }
155
156
  }
156
157
  this.diff = rosDiff.TemplateDiff.fromMap(diffMap);
157
- return acceptable;
158
+ return this.diff!.differenceCount === 0;
158
159
  }
159
160
  throw new Error(`Unsupported match style: ${this.matchStyle}`);
160
161
  }
@@ -165,6 +166,9 @@ class StackMatchesTemplateAssertion extends Assertion<StackInspector> {
165
166
  }
166
167
 
167
168
  function compareVariablesWithRegExp(var1: any, var2: any): boolean {
169
+ if (var1 === undefined || var2 === undefined) {
170
+ return false;
171
+ }
168
172
  if (typeof var1 !== typeof var2) {
169
173
  return false;
170
174
  }
package/lib/index.js CHANGED
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
8
12
  }));
9
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./assertion"), exports);
@@ -22,4 +26,4 @@ __exportStar(require("./assertions/match-template"), exports);
22
26
  __exportStar(require("./assertions/and-assertion"), exports);
23
27
  __exportStar(require("./assertions/negated-assertion"), exports);
24
28
  __exportStar(require("./assertions/count-resources"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIsMkNBQXlCO0FBQ3pCLDhDQUE0QjtBQUM1QixnREFBOEI7QUFFOUIscURBQW1DO0FBQ25DLDJEQUF5QztBQUN6Qyw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLDhEQUE0QztBQUM1Qyw2REFBMkM7QUFDM0MsaUVBQStDO0FBQy9DLCtEQUE2QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZXhwZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vaW5zcGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3ludGgtdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbnMvZXhpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hc3NlcnRpb25zL2hhdmUtb3V0cHV0JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9ucy9oYXZlLXJlc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9ucy9oYXZlLXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hc3NlcnRpb25zL21hdGNoLXRlbXBsYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9ucy9hbmQtYXNzZXJ0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9ucy9uZWdhdGVkLWFzc2VydGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbnMvY291bnQtcmVzb3VyY2VzJztcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw4Q0FBNEI7QUFDNUIsZ0RBQThCO0FBRTlCLHFEQUFtQztBQUNuQywyREFBeUM7QUFDekMsNkRBQTJDO0FBQzNDLHlEQUF1QztBQUN2Qyw4REFBNEM7QUFDNUMsNkRBQTJDO0FBQzNDLGlFQUErQztBQUMvQywrREFBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2V4cGVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2luc3BlY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL3N5bnRoLXV0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hc3NlcnRpb25zL2V4aXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9ucy9oYXZlLW91dHB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbnMvaGF2ZS1yZXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbnMvaGF2ZS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vYXNzZXJ0aW9ucy9tYXRjaC10ZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbnMvYW5kLWFzc2VydGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2VydGlvbnMvbmVnYXRlZC1hc3NlcnRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9hc3NlcnRpb25zL2NvdW50LXJlc291cmNlcyc7XG4iXX0=
package/lib/inspector.js CHANGED
@@ -13,7 +13,7 @@ class Inspector {
13
13
  return this.aroundAssert ? this.aroundAssert(() => this._to(assertion)) : this._to(assertion);
14
14
  }
15
15
  notTo(assertion) {
16
- return this.to(assertion_1.not(assertion));
16
+ return this.to((0, assertion_1.not)(assertion));
17
17
  }
18
18
  _to(assertion) {
19
19
  assertion.assertOrThrow(this);
@@ -34,7 +34,7 @@ class StackInspector extends Inspector {
34
34
  return new StackPathInspector(this.stack, strPath);
35
35
  }
36
36
  toMatch(template, matchStyle = match_template_1.MatchStyle.EXACT) {
37
- return this.to(match_template_1.matchTemplate(template, matchStyle));
37
+ return this.to((0, match_template_1.matchTemplate)(template, matchStyle));
38
38
  }
39
39
  get value() {
40
40
  return this.template;
@@ -65,4 +65,4 @@ class StackPathInspector extends Inspector {
65
65
  }
66
66
  }
67
67
  exports.StackPathInspector = StackPathInspector;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zcGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUE4RDtBQUM5RCwrQ0FBK0M7QUFDL0MsMkNBQTZDO0FBQzdDLGdFQUF3RTtBQUV4RSxNQUFzQixTQUFTO0lBRzdCO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLEVBQUUsQ0FBQyxTQUEwQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBMEI7UUFDckMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFJTyxHQUFHLENBQUMsU0FBMEI7UUFDcEMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFwQkQsOEJBb0JDO0FBRUQsTUFBYSxjQUFlLFNBQVEsU0FBUztJQUczQyxZQUE0QixLQUFvQztRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQURrQixVQUFLLEdBQUwsS0FBSyxDQUErQjtRQUc5RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRixDQUFDO0lBRU0sRUFBRSxDQUFDLElBQXVCO1FBQy9CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVksR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO1NBQ2xHO1FBRUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxRQUFnQyxFQUFFLFVBQVUsR0FBRywyQkFBVSxDQUFDLEtBQUs7UUFDNUUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDhCQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUF6QkQsd0NBeUJDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxTQUFTO0lBQy9DLFlBQTRCLEtBQTJCLEVBQWtCLElBQVk7UUFDbkYsS0FBSyxFQUFFLENBQUM7UUFEa0IsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUVyRixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsOEZBQThGO1FBQzlGLG1HQUFtRztRQUNuRyx1REFBdUQ7UUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNwRCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUNwQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BHLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUM1QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUF3QyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQXJCRCxnREFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgYXBpIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWN4YXBpJztcbmltcG9ydCB7IEFzc2VydGlvbiwgbm90IH0gZnJvbSAnLi9hc3NlcnRpb24nO1xuaW1wb3J0IHsgTWF0Y2hTdHlsZSwgbWF0Y2hUZW1wbGF0ZSB9IGZyb20gJy4vYXNzZXJ0aW9ucy9tYXRjaC10ZW1wbGF0ZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbnNwZWN0b3Ige1xuICBwdWJsaWMgYXJvdW5kQXNzZXJ0PzogKGNiOiAoKSA9PiB2b2lkKSA9PiBhbnk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hcm91bmRBc3NlcnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgdG8oYXNzZXJ0aW9uOiBBc3NlcnRpb248dGhpcz4pOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmFyb3VuZEFzc2VydCA/IHRoaXMuYXJvdW5kQXNzZXJ0KCgpID0+IHRoaXMuX3RvKGFzc2VydGlvbikpIDogdGhpcy5fdG8oYXNzZXJ0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBub3RUbyhhc3NlcnRpb246IEFzc2VydGlvbjx0aGlzPik6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudG8obm90KGFzc2VydGlvbikpO1xuICB9XG5cbiAgYWJzdHJhY3QgZ2V0IHZhbHVlKCk6IGFueTtcblxuICBwcml2YXRlIF90byhhc3NlcnRpb246IEFzc2VydGlvbjx0aGlzPik6IGFueSB7XG4gICAgYXNzZXJ0aW9uLmFzc2VydE9yVGhyb3codGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrSW5zcGVjdG9yIGV4dGVuZHMgSW5zcGVjdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3RhY2s6IGFwaS5Sb3NTdGFja0FydGlmYWN0IHwgb2JqZWN0KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMudGVtcGxhdGUgPSBzdGFjayBpbnN0YW5jZW9mIGFwaS5Sb3NTdGFja0FydGlmYWN0ID8gc3RhY2sudGVtcGxhdGUgOiBzdGFjaztcbiAgfVxuXG4gIHB1YmxpYyBhdChwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFN0YWNrUGF0aEluc3BlY3RvciB7XG4gICAgaWYgKCEodGhpcy5zdGFjayBpbnN0YW5jZW9mIGFwaS5Sb3NTdGFja0FydGlmYWN0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIFwiZXhwZWN0KHN0YWNrKS5hdChwYXRoKVwiIGZvciBhIHJhdyB0ZW1wbGF0ZSwgb25seSBSb3NTdGFja0FydGlmYWN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyUGF0aCA9IHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJyA/IHBhdGggOiBwYXRoLmpvaW4oJy8nKTtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGF0aEluc3BlY3Rvcih0aGlzLnN0YWNrLCBzdHJQYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b01hdGNoKHRlbXBsYXRlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBtYXRjaFN0eWxlID0gTWF0Y2hTdHlsZS5FWEFDVCkge1xuICAgIHJldHVybiB0aGlzLnRvKG1hdGNoVGVtcGxhdGUodGVtcGxhdGUsIG1hdGNoU3R5bGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrUGF0aEluc3BlY3RvciBleHRlbmRzIEluc3BlY3RvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzdGFjazogYXBpLlJvc1N0YWNrQXJ0aWZhY3QsIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgdW5kZWZpbmVkIHtcbiAgICAvLyBUaGUgbmFtZXMgb2YgcGF0aHMgaW4gbWV0YWRhdGEgaW4gdGVzdHMgYXJlIHZlcnkgaWxsLWRlZmluZWQuIFRyeSB3aXRoIHRoZSBmdWxsIHBhdGggZmlyc3QsXG4gICAgLy8gdGhlbiB0cnkgd2l0aCB0aGUgc3RhY2sgbmFtZSBwcmVwcmVuZGVkIGZvciBiYWNrd2FyZHMgY29tcGF0IHdpdGggbW9zdCB0ZXN0cyB0aGF0IGhhcHBlbiB0byBnaXZlXG4gICAgLy8gdGhlaXIgc3RhY2sgYW4gSUQgdGhhdCdzIHRoZSBzYW1lIGFzIHRoZSBzdGFjayBuYW1lLlxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5zdGFjay5tYW5pZmVzdC5tZXRhZGF0YSB8fCB7fTtcbiAgICBjb25zdCBtZCA9IG1ldGFkYXRhW3RoaXMucGF0aF0gfHwgbWV0YWRhdGFbYC8ke3RoaXMuc3RhY2suaWR9JHt0aGlzLnBhdGh9YF07XG4gICAgaWYgKG1kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHJlc291cmNlTWQgPSBtZC5maW5kKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gY3hzY2hlbWEuQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5MT0dJQ0FMX0lEKTtcbiAgICBpZiAocmVzb3VyY2VNZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBsb2dpY2FsSWQgPSByZXNvdXJjZU1kLmRhdGEgYXMgY3hzY2hlbWEuTG9nTWVzc2FnZU1ldGFkYXRhRW50cnk7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2sudGVtcGxhdGUuUmVzb3VyY2VzW2xvZ2ljYWxJZF07XG4gIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zcGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUE4RDtBQUM5RCwrQ0FBK0M7QUFDL0MsMkNBQTZDO0FBQzdDLGdFQUF3RTtBQUV4RSxNQUFzQixTQUFTO0lBRzdCO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLEVBQUUsQ0FBQyxTQUEwQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBMEI7UUFDckMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUEsZUFBRyxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUlPLEdBQUcsQ0FBQyxTQUEwQjtRQUNwQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQXBCRCw4QkFvQkM7QUFFRCxNQUFhLGNBQWUsU0FBUSxTQUFTO0lBRzNDLFlBQTRCLEtBQW9DO1FBQzlELEtBQUssRUFBRSxDQUFDO1FBRGtCLFVBQUssR0FBTCxLQUFLLENBQStCO1FBRzlELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxFQUFFLENBQUMsSUFBdUI7UUFDL0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssWUFBWSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7U0FDbEc7UUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWdDLEVBQUUsVUFBVSxHQUFHLDJCQUFVLENBQUMsS0FBSztRQUM1RSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBQSw4QkFBYSxFQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBekJELHdDQXlCQztBQUVELE1BQWEsa0JBQW1CLFNBQVEsU0FBUztJQUMvQyxZQUE0QixLQUEyQixFQUFrQixJQUFZO1FBQ25GLEtBQUssRUFBRSxDQUFDO1FBRGtCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQWtCLFNBQUksR0FBSixJQUFJLENBQVE7SUFFckYsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLDhGQUE4RjtRQUM5RixtR0FBbUc7UUFDbkcsdURBQXVEO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDcEQsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLEVBQUUsS0FBSyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRyxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBd0MsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFyQkQsZ0RBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGFsaWNsb3VkL3Jvcy1jZGstYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jeGFwaSc7XG5pbXBvcnQgeyBBc3NlcnRpb24sIG5vdCB9IGZyb20gJy4vYXNzZXJ0aW9uJztcbmltcG9ydCB7IE1hdGNoU3R5bGUsIG1hdGNoVGVtcGxhdGUgfSBmcm9tICcuL2Fzc2VydGlvbnMvbWF0Y2gtdGVtcGxhdGUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW5zcGVjdG9yIHtcbiAgcHVibGljIGFyb3VuZEFzc2VydD86IChjYjogKCkgPT4gdm9pZCkgPT4gYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYXJvdW5kQXNzZXJ0ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHRvKGFzc2VydGlvbjogQXNzZXJ0aW9uPHRoaXM+KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5hcm91bmRBc3NlcnQgPyB0aGlzLmFyb3VuZEFzc2VydCgoKSA9PiB0aGlzLl90byhhc3NlcnRpb24pKSA6IHRoaXMuX3RvKGFzc2VydGlvbik7XG4gIH1cblxuICBwdWJsaWMgbm90VG8oYXNzZXJ0aW9uOiBBc3NlcnRpb248dGhpcz4pOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnRvKG5vdChhc3NlcnRpb24pKTtcbiAgfVxuXG4gIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cbiAgcHJpdmF0ZSBfdG8oYXNzZXJ0aW9uOiBBc3NlcnRpb248dGhpcz4pOiBhbnkge1xuICAgIGFzc2VydGlvbi5hc3NlcnRPclRocm93KHRoaXMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGFja0luc3BlY3RvciBleHRlbmRzIEluc3BlY3RvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGU6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHN0YWNrOiBhcGkuUm9zU3RhY2tBcnRpZmFjdCB8IG9iamVjdCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnRlbXBsYXRlID0gc3RhY2sgaW5zdGFuY2VvZiBhcGkuUm9zU3RhY2tBcnRpZmFjdCA/IHN0YWNrLnRlbXBsYXRlIDogc3RhY2s7XG4gIH1cblxuICBwdWJsaWMgYXQocGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBTdGFja1BhdGhJbnNwZWN0b3Ige1xuICAgIGlmICghKHRoaXMuc3RhY2sgaW5zdGFuY2VvZiBhcGkuUm9zU3RhY2tBcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSBcImV4cGVjdChzdGFjaykuYXQocGF0aClcIiBmb3IgYSByYXcgdGVtcGxhdGUsIG9ubHkgUm9zU3RhY2tBcnRpZmFjdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0clBhdGggPSB0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoIDogcGF0aC5qb2luKCcvJyk7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhdGhJbnNwZWN0b3IodGhpcy5zdGFjaywgc3RyUGF0aCk7XG4gIH1cblxuICBwdWJsaWMgdG9NYXRjaCh0ZW1wbGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgbWF0Y2hTdHlsZSA9IE1hdGNoU3R5bGUuRVhBQ1QpIHtcbiAgICByZXR1cm4gdGhpcy50byhtYXRjaFRlbXBsYXRlKHRlbXBsYXRlLCBtYXRjaFN0eWxlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGFja1BhdGhJbnNwZWN0b3IgZXh0ZW5kcyBJbnNwZWN0b3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc3RhY2s6IGFwaS5Sb3NTdGFja0FydGlmYWN0LCBwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB7XG4gICAgLy8gVGhlIG5hbWVzIG9mIHBhdGhzIGluIG1ldGFkYXRhIGluIHRlc3RzIGFyZSB2ZXJ5IGlsbC1kZWZpbmVkLiBUcnkgd2l0aCB0aGUgZnVsbCBwYXRoIGZpcnN0LFxuICAgIC8vIHRoZW4gdHJ5IHdpdGggdGhlIHN0YWNrIG5hbWUgcHJlcHJlbmRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdCB3aXRoIG1vc3QgdGVzdHMgdGhhdCBoYXBwZW4gdG8gZ2l2ZVxuICAgIC8vIHRoZWlyIHN0YWNrIGFuIElEIHRoYXQncyB0aGUgc2FtZSBhcyB0aGUgc3RhY2sgbmFtZS5cbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuc3RhY2subWFuaWZlc3QubWV0YWRhdGEgfHwge307XG4gICAgY29uc3QgbWQgPSBtZXRhZGF0YVt0aGlzLnBhdGhdIHx8IG1ldGFkYXRhW2AvJHt0aGlzLnN0YWNrLmlkfSR7dGhpcy5wYXRofWBdO1xuICAgIGlmIChtZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCByZXNvdXJjZU1kID0gbWQuZmluZCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCk7XG4gICAgaWYgKHJlc291cmNlTWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgbG9naWNhbElkID0gcmVzb3VyY2VNZC5kYXRhIGFzIGN4c2NoZW1hLkxvZ01lc3NhZ2VNZXRhZGF0YUVudHJ5O1xuICAgIHJldHVybiB0aGlzLnN0YWNrLnRlbXBsYXRlLlJlc291cmNlc1tsb2dpY2FsSWRdO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/ros-cdk-assert",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "Aliyun SDK Copyright (C) Alibaba Cloud Computing All rights reserved. http://www.aliyun.com",
5
5
  "author": "ROS Development Team",
6
6
  "license": "Apache-2.0",
@@ -27,9 +27,9 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "colors": "^1.4.0",
30
- "@alicloud/ros-cdk-core": "^1.7.0",
31
- "@alicloud/ros-cdk-assembly-schema": "^1.7.0",
32
- "@alicloud/ros-cdk-cxapi": "^1.7.0",
33
- "@alicloud/ros-cdk-template-diff": "^1.7.0"
30
+ "@alicloud/ros-cdk-core": "^1.9.0",
31
+ "@alicloud/ros-cdk-assembly-schema": "^1.9.0",
32
+ "@alicloud/ros-cdk-cxapi": "^1.9.0",
33
+ "@alicloud/ros-cdk-template-diff": "^1.9.0"
34
34
  }
35
35
  }