@rosen-bridge/abstract-extractor 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @rosen-bridge/abstract-extractor
2
2
 
3
+ ## 2.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Update package license to MIT
8
+ - Update dependencies
9
+ - @rosen-bridge/scanner-interfaces@0.1.1
10
+
3
11
  ## 2.0.2
4
12
 
5
13
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../lib/ergo/AbstractErgoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5E,OAAO,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,SAAS,EACV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,OAAO,EACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CACrD,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAExB,MAAM,cAAoB;IAKtC;;;;;;OAMG;IACH,IAAI,iCACI,CAAC,YACG,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,QAAQ,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,SAAgB,YAAY,MAAM,MAAM,KAAG,QAAQ,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAOP;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,GAAG,EAAE,SAAS,EACd,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,CAAC,EAAE,OAAO,KACd,aAAa,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC;IAE9C;;;;OAIG;IACH,uBAAuB,OAAQ,WAAW;;;;QAQxC;IAEF;;;;;OAKG;IACH,uBAAuB,OAAQ,WAAW,KAAG,OAAO,CAElD;IAEF;;;;;OAKG;IACH,mBAAmB,QACZ,WAAW,EAAE,SACX,SAAS,KACf,QAAQ,OAAO,CAAC,CAwDjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAM7C;CACH"}
1
+ {"version":3,"file":"AbstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../lib/ergo/AbstractErgoExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5E,OAAO,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,SAAS,EACV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,OAAO,EACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CACrD,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAExB,MAAM,cAAoB;IAKtC;;;;;;OAMG;IACH,IAAI,iCACI,CAAC,YACG,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,QAAQ,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,SAAgB,YAAY,MAAM,MAAM,KAAG,QAAQ,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAOP;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,GAAG,EAAE,SAAS,EACd,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,CAAC,EAAE,OAAO,KACd,aAAa,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC;IAE9C;;;;OAIG;IACH,uBAAuB,OAAQ,WAAW;;;;QAQxC;IAEF;;;;;OAKG;IACH,uBAAuB,OACjB,WAAW,KACd,OAAO,CAER;IAEF;;;;;OAKG;IACH,mBAAmB,QACZ,WAAW,EAAE,SACX,SAAS,KACf,QAAQ,OAAO,CAAC,CAwDjB;IAEF;;;OAGG;IACH,SAAS,SAAgB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAM7C;CACH"}
@@ -81,7 +81,8 @@ export class AbstractErgoExtractor extends AbstractExtractor {
81
81
  * @param tx
82
82
  * @returns
83
83
  */
84
- getTransactionExtraData = (tx) => {
84
+ getTransactionExtraData = (tx // eslint-disable-line @typescript-eslint/no-unused-vars
85
+ ) => {
85
86
  return {};
86
87
  };
87
88
  /**
@@ -139,4 +140,4 @@ export class AbstractErgoExtractor extends AbstractExtractor {
139
140
  this.triggerCallbacks(CallbackType.Update, result.updatedData);
140
141
  };
141
142
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vQWJzdHJhY3RFcmdvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUXBDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFHTCxZQUFZLEdBSWIsTUFBTSxjQUFjLENBQUM7QUFHdEIsTUFBTSxPQUFnQixxQkFHcEIsU0FBUSxpQkFBOEI7SUFLNUIsTUFBTSxDQUFpQjtJQUN2QixTQUFTLEdBRWY7UUFDRixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtLQUNoQyxDQUFDO0lBQ00sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFFcEMsWUFBWSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxHQUFHLEtBQUssRUFDVixJQUFPLEVBQ1AsUUFBdUMsRUFDdEIsRUFBRTtRQUNuQixNQUFNLE9BQU8s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QUFFLENBQ2IsQ0FBQztZQUNGLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2Ysc0NBQXNDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQ2hELEtBQUssQ0FBQyxNQUNSLGdCQUFnQixDQUFDLEVBQUUsQ0FDcEIsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWlCLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7IE11dGV4IH0gZnJvbSAnYXdhaXQtc2VtYXBob3JlJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sXG4gIE91dHB1dEJveCxcbiAgSW5wdXRFeHRlbnNpb24sXG4gIEJsb2NrSW5mbyxcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJy4uL2Fic3RyYWN0RXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbiB9IGZyb20gJy4vQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Qm94RGF0YSxcbiAgU3BlbmRJbmZvLFxuICBDYWxsYmFja1R5cGUsXG4gIENhbGxiYWNrTWFwLFxuICBDYWxsYmFja0RhdGFNYXAsXG4gIFR4RXh0cmEsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHkgfSBmcm9tICcuL0Fic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3I8XG4gIEV4dHJhY3RlZERhdGEgZXh0ZW5kcyBBYnN0cmFjdEJveERhdGEsXG4gIEV4dHJhY3RvckVudGl0eSBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eVxuPiBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhY3Rpb25zOiBBYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb248XG4gICAgRXh0cmFjdGVkRGF0YSxcbiAgICBFeHRyYWN0b3JFbnRpdHlcbiAgPjtcbiAgcHJvdGVjdGVkIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByb3RlY3RlZCBjYWxsYmFja3M6IHtcbiAgICBbSyBpbiBDYWxsYmFja1R5cGVdOiBNYXA8c3RyaW5nLCBDYWxsYmFja01hcDxFeHRyYWN0ZWREYXRhPltLXT47XG4gIH0gPSB7XG4gICAgW0NhbGxiYWNrVHlwZS5VcGRhdGVdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5JbnNlcnRdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5EZWxldGVdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5TcGVuZF06IG5ldyBNYXAoKSxcbiAgfTtcbiAgcHJpdmF0ZSBjYWxsYmFja011dGV4ID0gbmV3IE11dGV4KCk7XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCkpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIGhvb2sgYSBuZXcgY2FsbGJhY2sgb24gYSBjYWxsYmFjayB0eXBlXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICogQHJldHVybnMgY2FsbGJhY2sgcmVnaXN0ZXJlZCBpZFxuICAgKi9cbiAgaG9vayA9IGFzeW5jIDxUIGV4dGVuZHMgQ2FsbGJhY2tUeXBlPihcbiAgICB0eXBlOiBULFxuICAgIGNhbGxiYWNrOiBDYWxsYmFja01hcDxFeHRyYWN0ZWREYXRhPltUXVxuICApOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmNhbGxiYWNrTXV0ZXguYWNxdWlyZSgpO1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgY29uc3QgaWQgPSB1dWlkdjQoKTtcbiAgICBjYWxsYmFja01hcC5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICByZWxlYXNlKCk7XG4gICAgcmV0dXJuIGlkO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1bmhvb2sgYSBjYWxsYmFjayBvbiBhIHR5cGVcbiAgICogcmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBubyByZWdpc3RlcmVkIGNhbGxiYWNrIHdpdGggdGhlIGlkXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcmV0dXJucyBzdWNjZXNzIHN0YXR1c1xuICAgKi9cbiAgdW5ob29rID0gYXN5bmMgKHR5cGU6IENhbGxiYWNrVHlwZSwgaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmNhbGxiYWNrTXV0ZXguYWNxdWlyZSgpO1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgaWYgKCFjYWxsYmFja01hcC5oYXMoaWQpKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgQ2FsbGJhY2sgd2l0aCBJZCBbJHtpZH1dIGlzIG5vdCByZWdpc3RlcmVkIGZvciB0eXBlIFske3R5cGV9XS5gXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjYWxsYmFja01hcC5kZWxldGUoaWQpO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogdHJpZ2dlciBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgb24gYSBzcGVjaWZpYyB0eXBlIHdpdGggdGhlIHByb3ZpZGVkIGRhdGFcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCB0cmlnZ2VyQ2FsbGJhY2tzPFQgZXh0ZW5kcyBDYWxsYmFja1R5cGU+KFxuICAgIHR5cGU6IFQsXG4gICAgZGF0YTogQ2FsbGJhY2tEYXRhTWFwPEV4dHJhY3RlZERhdGE+W1RdXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgY2FsbGJhY2tNYXAuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3QgYm94IGRhdGEgdG8gcHJvcGVyIGZvcm1hdCAobm90IGluY2x1ZGluZyBzcGVuZGluZyBpbmZvcm1hdGlvbilcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcGFyYW0gaW5wdXRFeHRlbnNpb25zIGFsbCBpbnB1dCBib3ggZXh0ZW5zaW9ucyBpbiB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIGV4dHJhY3RlZCBkYXRhIGluIHByb3BlciBmb3JtYXRcbiAgICovXG4gIGFic3RyYWN0IGV4dHJhY3RCb3hEYXRhOiAoXG4gICAgYm94OiBPdXRwdXRCb3gsXG4gICAgaW5wdXRFeHRlbnNpb25zOiBJbnB1dEV4dGVuc2lvbltdLFxuICAgIHR4RXh0cmE/OiBUeEV4dHJhXG4gICkgPT4gRXh0cmFjdGVkRGF0YSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogY2hlY2sgcHJvcGVyIGRhdGEgZm9ybWF0IGluIHRoZSBib3hcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGJveCBoYXMgdGhlIHJlcXVpcmVkIGRhdGEgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYWJzdHJhY3QgaGFzRGF0YTogKGJveDogT3V0cHV0Qm94KSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBjcmVhdGUgc3BlbmQgaW5mbyBhcnJheSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB0eFxuICAgKiBAcmV0dXJucyBzcGVuZCBpbmZvIGFycmF5IG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25TcGVuZEluZm8gPSAodHg6IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgbGV0IGJveEluZGV4ID0gMTtcbiAgICBjb25zdCBzcGVuZEluZm9BcnJheSA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdHguaW5wdXRzKSB7XG4gICAgICBzcGVuZEluZm9BcnJheS5wdXNoKHsgdHhJZDogdHguaWQsIGJveElkOiBpbnB1dC5ib3hJZCwgaW5kZXg6IGJveEluZGV4IH0pO1xuICAgICAgYm94SW5kZXggKz0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHNwZW5kSW5mb0FycmF5O1xuICB9O1xuXG4gIC8qKlxuICAgKiBleHRyYWN0IHRyYW5zYWN0aW9uIGV4dHJhIGluZm9ybWF0aW9uXG4gICAqIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gaWYgdGhlcmUgaXMgZXh0cmEgbmVlZGVkIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSB0eFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25FeHRyYURhdGEgPSAodHg6IFRyYW5zYWN0aW9uKTogVHhFeHRyYSA9PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBwcm9jZXNzIGEgbGlzdCBvZiB0cmFuc2FjdGlvbnMgaW4gYSBibG9jayBhbmQgc3RvcmUgcmVxdWlyZWQgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHR4cyBsaXN0IG9mIHRyYW5zYWN0aW9ucyBpbiB0aGUgYmxvY2tcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcHJvY2VzcyBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSBhc3luYyAoXG4gICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgIGJsb2NrOiBCbG9ja0luZm9cbiAgKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveGVzOiBBcnJheTxFeHRyYWN0ZWREYXRhPiA9IFtdO1xuICAgICAgY29uc3Qgc3BlbnRJbmZvczogQXJyYXk8U3BlbmRJbmZvPiA9IFtdO1xuICAgICAgZm9yIChjb25zdCB0eCBvZiB0eHMpIHtcbiAgICAgICAgY29uc3QgaW5wdXRFeHRlbnNpb25zID0gdHguaW5wdXRzLm1hcCgoaW5wdXQpID0+IGlucHV0LmV4dGVuc2lvbiB8fCB7fSk7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHR4Lm91dHB1dHMpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuaGFzRGF0YShvdXRwdXQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFRyeWluZyB0byBleHRyYWN0IGRhdGEgZnJvbSBib3ggJHtvdXRwdXQuYm94SWR9YCk7XG4gICAgICAgICAgY29uc3QgZXh0cmFjdGVkRGF0YSA9IHRoaXMuZXh0cmFjdEJveERhdGEoXG4gICAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgICBpbnB1dEV4dGVuc2lvbnMsXG4gICAgICAgICAgICB0aGlzLmdldFRyYW5zYWN0aW9uRXh0cmFEYXRhKHR4KVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGV4dHJhY3RlZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgRXh0cmFjdGVkIGRhdGEgJHtKc29uQmlnSW50LnN0cmluZ2lmeShleHRyYWN0ZWREYXRhKX0gZnJvbSBib3ggJHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYm94SWRcbiAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBib3hlcy5wdXNoKGV4dHJhY3RlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzcGVudEluZm9zLnB1c2goLi4udGhpcy5nZXRUcmFuc2FjdGlvblNwZW5kSW5mbyh0eCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYm94ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmFjdGlvbnMuc3RvcmVCb3hlcyhib3hlcywgYmxvY2ssIHRoaXMuZ2V0SWQoKSkpKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBEYXRhIGluc2VydGlvbiBmYWlsZWQgZm9yICR7dGhpcy5nZXRJZCgpfSBhdCB0aGUgYmxvY2sgJHtcbiAgICAgICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgICAgICB9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuSW5zZXJ0LCBib3hlcyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzcGVudERhdGEgPSBhd2FpdCB0aGlzLmFjdGlvbnMuc3BlbmRCb3hlcyhcbiAgICAgICAgc3BlbnRJbmZvcyxcbiAgICAgICAgYmxvY2ssXG4gICAgICAgIHRoaXMuZ2V0SWQoKVxuICAgICAgKTtcbiAgICAgIGlmIChzcGVudERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLlNwZW5kLCBzcGVudERhdGEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgZmFpbGVkIGZvciAke3RoaXMuZ2V0SWQoKX0gYXQgdGhlIGJsb2NrICR7XG4gICAgICAgICAgYmxvY2suaGVpZ2h0XG4gICAgICAgIH0gd2l0aCBlcnJvcjogJHtlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2ggYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0JveGVzKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gICAgaWYgKHJlc3VsdC5kZWxldGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5EZWxldGUsIHJlc3VsdC5kZWxldGVkRGF0YSk7XG4gICAgaWYgKHJlc3VsdC51cGRhdGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5VcGRhdGUsIHJlc3VsdC51cGRhdGVkRGF0YSk7XG4gIH07XG59XG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vQWJzdHJhY3RFcmdvRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUXBDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFHTCxZQUFZLEdBSWIsTUFBTSxjQUFjLENBQUM7QUFHdEIsTUFBTSxPQUFnQixxQkFHcEIsU0FBUSxpQkFBOEI7SUFLNUIsTUFBTSxDQUFpQjtJQUN2QixTQUFTLEdBRWY7UUFDRixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUNoQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtLQUNoQyxDQUFDO0lBQ00sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFFcEMsWUFBWSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxHQUFHLEtBQUssRUFDVixJQUFPLEVBQ1AsUUFBdUMsRUFDdEIsRUFBRTtRQUNuQixNQUFNLE9BQU8s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SSxDQUFDLEtBQUssRUFBRSxDQUNiLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLHNDQUFzQyxJQUFJLENBQUMsS0FBSyxFQUFFLGlCQUNoRCxLQUFLLENBQUMsTUFDUixnQkFBZ0IsQ0FBQyxFQUFFLENBQ3BCLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFNBQVMsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFpQixFQUFFO1FBQ2hELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBNdXRleCB9IGZyb20gJ2F3YWl0LXNlbWFwaG9yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uLFxuICBPdXRwdXRCb3gsXG4gIElucHV0RXh0ZW5zaW9uLFxuICBCbG9ja0luZm8sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IgfSBmcm9tICcuLi9hYnN0cmFjdEV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb24gfSBmcm9tICcuL0Fic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbic7XG5pbXBvcnQge1xuICBBYnN0cmFjdEJveERhdGEsXG4gIFNwZW5kSW5mbyxcbiAgQ2FsbGJhY2tUeXBlLFxuICBDYWxsYmFja01hcCxcbiAgQ2FsbGJhY2tEYXRhTWFwLFxuICBUeEV4dHJhLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5IH0gZnJvbSAnLi9BYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvRXh0cmFjdG9yPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RCb3hEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHlcbj4gZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aW9uczogQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uPFxuICAgIEV4dHJhY3RlZERhdGEsXG4gICAgRXh0cmFjdG9yRW50aXR5XG4gID47XG4gIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcm90ZWN0ZWQgY2FsbGJhY2tzOiB7XG4gICAgW0sgaW4gQ2FsbGJhY2tUeXBlXTogTWFwPHN0cmluZywgQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bS10+O1xuICB9ID0ge1xuICAgIFtDYWxsYmFja1R5cGUuVXBkYXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuSW5zZXJ0XTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuRGVsZXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuU3BlbmRdOiBuZXcgTWFwKCksXG4gIH07XG4gIHByaXZhdGUgY2FsbGJhY2tNdXRleCA9IG5ldyBNdXRleCgpO1xuXG4gIGNvbnN0cnVjdG9yKGxvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBob29rIGEgbmV3IGNhbGxiYWNrIG9uIGEgY2FsbGJhY2sgdHlwZVxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAqIEByZXR1cm5zIGNhbGxiYWNrIHJlZ2lzdGVyZWQgaWRcbiAgICovXG4gIGhvb2sgPSBhc3luYyA8VCBleHRlbmRzIENhbGxiYWNrVHlwZT4oXG4gICAgdHlwZTogVCxcbiAgICBjYWxsYmFjazogQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bVF1cbiAgKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5jYWxsYmFja011dGV4LmFjcXVpcmUoKTtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGNvbnN0IGlkID0gdXVpZHY0KCk7XG4gICAgY2FsbGJhY2tNYXAuc2V0KGlkLCBjYWxsYmFjayk7XG4gICAgcmVsZWFzZSgpO1xuICAgIHJldHVybiBpZDtcbiAgfTtcblxuICAvKipcbiAgICogdW5ob29rIGEgY2FsbGJhY2sgb24gYSB0eXBlXG4gICAqIHJldHVybnMgZmFsc2UgaWYgdGhlcmUgaXMgbm8gcmVnaXN0ZXJlZCBjYWxsYmFjayB3aXRoIHRoZSBpZFxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHJldHVybnMgc3VjY2VzcyBzdGF0dXNcbiAgICovXG4gIHVuaG9vayA9IGFzeW5jICh0eXBlOiBDYWxsYmFja1R5cGUsIGlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5jYWxsYmFja011dGV4LmFjcXVpcmUoKTtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGlmICghY2FsbGJhY2tNYXAuaGFzKGlkKSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgYENhbGxiYWNrIHdpdGggSWQgWyR7aWR9XSBpcyBub3QgcmVnaXN0ZXJlZCBmb3IgdHlwZSBbJHt0eXBlfV0uYFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2FsbGJhY2tNYXAuZGVsZXRlKGlkKTtcbiAgICByZWxlYXNlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIHRyaWdnZXIgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIG9uIGEgc3BlY2lmaWMgdHlwZSB3aXRoIHRoZSBwcm92aWRlZCBkYXRhXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgdHJpZ2dlckNhbGxiYWNrczxUIGV4dGVuZHMgQ2FsbGJhY2tUeXBlPihcbiAgICB0eXBlOiBULFxuICAgIGRhdGE6IENhbGxiYWNrRGF0YU1hcDxFeHRyYWN0ZWREYXRhPltUXVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGNhbGxiYWNrTWFwLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0IGJveCBkYXRhIHRvIHByb3BlciBmb3JtYXQgKG5vdCBpbmNsdWRpbmcgc3BlbmRpbmcgaW5mb3JtYXRpb24pXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHBhcmFtIGlucHV0RXh0ZW5zaW9ucyBhbGwgaW5wdXQgYm94IGV4dGVuc2lvbnMgaW4gdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiBleHRyYWN0ZWQgZGF0YSBpbiBwcm9wZXIgZm9ybWF0XG4gICAqL1xuICBhYnN0cmFjdCBleHRyYWN0Qm94RGF0YTogKFxuICAgIGJveDogT3V0cHV0Qm94LFxuICAgIGlucHV0RXh0ZW5zaW9uczogSW5wdXRFeHRlbnNpb25bXSxcbiAgICB0eEV4dHJhPzogVHhFeHRyYVxuICApID0+IEV4dHJhY3RlZERhdGEgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGNoZWNrIHByb3BlciBkYXRhIGZvcm1hdCBpbiB0aGUgYm94XG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBib3ggaGFzIHRoZSByZXF1aXJlZCBkYXRhIGFuZCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFic3RyYWN0IGhhc0RhdGE6IChib3g6IE91dHB1dEJveCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogY3JlYXRlIHNwZW5kIGluZm8gYXJyYXkgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnMgc3BlbmQgaW5mbyBhcnJheSBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRyYW5zYWN0aW9uU3BlbmRJbmZvID0gKHR4OiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGxldCBib3hJbmRleCA9IDE7XG4gICAgY29uc3Qgc3BlbmRJbmZvQXJyYXkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHR4LmlucHV0cykge1xuICAgICAgc3BlbmRJbmZvQXJyYXkucHVzaCh7IHR4SWQ6IHR4LmlkLCBib3hJZDogaW5wdXQuYm94SWQsIGluZGV4OiBib3hJbmRleCB9KTtcbiAgICAgIGJveEluZGV4ICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBzcGVuZEluZm9BcnJheTtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdCB0cmFuc2FjdGlvbiBleHRyYSBpbmZvcm1hdGlvblxuICAgKiBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGlmIHRoZXJlIGlzIGV4dHJhIG5lZWRlZCBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uRXh0cmFEYXRhID0gKFxuICAgIHR4OiBUcmFuc2FjdGlvbiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICApOiBUeEV4dHJhID0+IHtcbiAgICByZXR1cm4ge307XG4gIH07XG5cbiAgLyoqXG4gICAqIHByb2Nlc3MgYSBsaXN0IG9mIHRyYW5zYWN0aW9ucyBpbiBhIGJsb2NrIGFuZCBzdG9yZSByZXF1aXJlZCBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gdHhzIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGluIHRoZSBibG9ja1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHJvY2Vzc1RyYW5zYWN0aW9ucyA9IGFzeW5jIChcbiAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgYmxvY2s6IEJsb2NrSW5mb1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ZXM6IEFycmF5PEV4dHJhY3RlZERhdGE+ID0gW107XG4gICAgICBjb25zdCBzcGVudEluZm9zOiBBcnJheTxTcGVuZEluZm8+ID0gW107XG4gICAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgICBjb25zdCBpbnB1dEV4dGVuc2lvbnMgPSB0eC5pbnB1dHMubWFwKChpbnB1dCkgPT4gaW5wdXQuZXh0ZW5zaW9uIHx8IHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdHgub3V0cHV0cykge1xuICAgICAgICAgIGlmICghdGhpcy5oYXNEYXRhKG91dHB1dCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVHJ5aW5nIHRvIGV4dHJhY3QgZGF0YSBmcm9tIGJveCAke291dHB1dC5ib3hJZH1gKTtcbiAgICAgICAgICBjb25zdCBleHRyYWN0ZWREYXRhID0gdGhpcy5leHRyYWN0Qm94RGF0YShcbiAgICAgICAgICAgIG91dHB1dCxcbiAgICAgICAgICAgIGlucHV0RXh0ZW5zaW9ucyxcbiAgICAgICAgICAgIHRoaXMuZ2V0VHJhbnNhY3Rpb25FeHRyYURhdGEodHgpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZXh0cmFjdGVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgIGBFeHRyYWN0ZWQgZGF0YSAke0pzb25CaWdJbnQuc3RyaW5naWZ5KGV4dHJhY3RlZERhdGEpfSBmcm9tIGJveCAke1xuICAgICAgICAgICAgICAgIG91dHB1dC5ib3hJZFxuICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJveGVzLnB1c2goZXh0cmFjdGVkRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNwZW50SW5mb3MucHVzaCguLi50aGlzLmdldFRyYW5zYWN0aW9uU3BlbmRJbmZvKHR4KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuYWN0aW9ucy5zdG9yZUJveGVzKGJveGVzLCBibG9jaywgdGhpcy5nZXRJZCgpKSkpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgYERhdGEgaW5zZXJ0aW9uIGZhaWxlZCBmb3IgJHt0aGlzLmdldElkKCl9IGF0IHRoZSBibG9jayAke1xuICAgICAgICAgICAgICBibG9jay5oZWlnaHRcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5JbnNlcnQsIGJveGVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNwZW50RGF0YSA9IGF3YWl0IHRoaXMuYWN0aW9ucy5zcGVuZEJveGVzKFxuICAgICAgICBzcGVudEluZm9zLFxuICAgICAgICBibG9jayxcbiAgICAgICAgdGhpcy5nZXRJZCgpXG4gICAgICApO1xuICAgICAgaWYgKHNwZW50RGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckNhbGxiYWNrcyhDYWxsYmFja1R5cGUuU3BlbmQsIHNwZW50RGF0YSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIGBQcm9jZXNzaW5nIHRyYW5zYWN0aW9ucyBmYWlsZWQgZm9yICR7dGhpcy5nZXRJZCgpfSBhdCB0aGUgYmxvY2sgJHtcbiAgICAgICAgICBibG9jay5oZWlnaHRcbiAgICAgICAgfSB3aXRoIGVycm9yOiAke2V9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIGZvcmsgb25lIGJsb2NrIGFuZCByZW1vdmUgYWxsIHN0b3JlZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBibG9ja1xuICAgKiBAcGFyYW0gaGFzaCBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrQm94ZXMoaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgICBpZiAocmVzdWx0LmRlbGV0ZWREYXRhLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkRlbGV0ZSwgcmVzdWx0LmRlbGV0ZWREYXRhKTtcbiAgICBpZiAocmVzdWx0LnVwZGF0ZWREYXRhLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLlVwZGF0ZSwgcmVzdWx0LnVwZGF0ZWREYXRhKTtcbiAgfTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractErgoExtractorAction.d.ts","sourceRoot":"","sources":["../../lib/ergo/AbstractErgoExtractorAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,UAAU,EAEV,YAAY,EAEZ,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,8BAAsB,2BAA2B,CAC/C,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAgC;gBAG1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,CAAC,EAAE,cAAc;IAQzB;;OAEG;IACH,SAAS,CAAC,YAAY,SACd,aAAa,EAAE,SACd,SAAS,aACL,MAAM,KAChB,MAAM,KAAK,eAAe,EAAE,IAAI,CAAC,CAAC,CAInC;IAEF;;OAEG;IACH,SAAS,CAAC,mBAAmB,aACjB,eAAe,EAAE,KAC1B,aAAa,EAAE,CAIhB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,gBACT,WAAW,iBACT,MAAM,aAAa,CAAC,SAC5B,SAAS,aACL,MAAM,mBAMjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,gBACP,WAAW,aACb,aAAa,SACjB,SAAS,aACL,MAAM,mBAWjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,gBACd,WAAW,aACb,MAAM,SACV,MAAM,KACZ,QAAQ,aAAa,EAAE,CAAC,CAUzB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,gBACd,WAAW,aACb,MAAM,SACV,MAAM,KACZ,QAAQ,eAAe,EAAE,CAAC,CAiB3B;IAEF;;;;;;;;OAQG;IACH,UAAU,UACD,MAAM,aAAa,CAAC,SACpB,SAAS,aACL,MAAM,KAChB,QAAQ,OAAO,CAAC,CA6CjB;IAEF;;;;;;;;;;OAUG;IACH,UAAU,eACI,MAAM,SAAS,CAAC,SACrB,SAAS,aACL,MAAM,KAChB,QAAQ,OAAO,EAAE,CAAC,CA2BnB;IAEF;;;;;;;OAOG;IACH,gBAAgB,UACP,MAAM,aACF,MAAM,KAChB,QAAQ;QAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAiClE;CACH"}
1
+ {"version":3,"file":"AbstractErgoExtractorAction.d.ts","sourceRoot":"","sources":["../../lib/ergo/AbstractErgoExtractorAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,UAAU,EAEV,YAAY,EAEZ,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,8BAAsB,2BAA2B,CAC/C,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAgC;gBAG1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,CAAC,EAAE,cAAc;IAQzB;;OAEG;IACH,SAAS,CAAC,YAAY,SACd,aAAa,EAAE,SACd,SAAS,aACL,MAAM,KAChB,MAAM,KAAK,eAAe,EAAE,IAAI,CAAC,CAAC,CAInC;IAEF;;OAEG;IACH,SAAS,CAAC,mBAAmB,aACjB,eAAe,EAAE,KAC1B,aAAa,EAAE,CAIhB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,gBACT,WAAW,iBACT,MAAM,aAAa,CAAC,SAC5B,SAAS,aACL,MAAM,mBAUjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,gBACP,WAAW,aACb,aAAa,SACjB,SAAS,aACL,MAAM,mBAWjB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,gBACd,WAAW,aACb,MAAM,SACV,MAAM,KACZ,QAAQ,aAAa,EAAE,CAAC,CAazB;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,gBACd,WAAW,aACb,MAAM,SACV,MAAM,KACZ,QAAQ,eAAe,EAAE,CAAC,CAsB3B;IAEF;;;;;;;;OAQG;IACH,UAAU,UACD,MAAM,aAAa,CAAC,SACpB,SAAS,aACL,MAAM,KAChB,QAAQ,OAAO,CAAC,CA6CjB;IAEF;;;;;;;;;;OAUG;IACH,UAAU,eACI,MAAM,SAAS,CAAC,SACrB,SAAS,aACL,MAAM,KAChB,QAAQ,OAAO,EAAE,CAAC,CA8BnB;IAEF;;;;;;;OAOG;IACH,gBAAgB,UACP,MAAM,aACF,MAAM,KAChB,QAAQ;QAAE,WAAW,EAAE,aAAa,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAiClE;CACH"}
@@ -17,13 +17,17 @@ export class AbstractErgoExtractorAction {
17
17
  /**
18
18
  * create the database entity from extracted data and block information
19
19
  */
20
- createEntity = (data, block, extractor) => {
20
+ createEntity = (data, // eslint-disable-line @typescript-eslint/no-unused-vars
21
+ block, // eslint-disable-line @typescript-eslint/no-unused-vars
22
+ extractor // eslint-disable-line @typescript-eslint/no-unused-vars
23
+ ) => {
21
24
  throw Error('You must implement `createEntity` or override `insertEntities` and `updateEntities`');
22
25
  };
23
26
  /**
24
27
  * convert the database entity back to raw data
25
28
  */
26
- convertEntityToData = (entities) => {
29
+ convertEntityToData = (entities // eslint-disable-line @typescript-eslint/no-unused-vars
30
+ ) => {
27
31
  throw Error('You must implement `convertEntityToData` or override `deleteBlockEntities`');
28
32
  };
29
33
  /**
@@ -44,7 +48,9 @@ export class AbstractErgoExtractorAction {
44
48
  * @param block
45
49
  * @param extractor
46
50
  */
47
- updateEntity = async (queryRunner, updateBox, block, extractor) => {
51
+ updateEntity = async (queryRunner, updateBox, // eslint-disable-line @typescript-eslint/no-unused-vars
52
+ block, // eslint-disable-line @typescript-eslint/no-unused-vars
53
+ extractor) => {
48
54
  const repository = queryRunner.manager.getRepository(this.repo);
49
55
  const box = this.createEntity([updateBox], block, extractor)[0];
50
56
  await repository.update({
@@ -62,7 +68,10 @@ export class AbstractErgoExtractorAction {
62
68
  deleteBlockEntities = async (queryRunner, extractor, block) => {
63
69
  const repository = queryRunner.manager.getRepository(this.repo);
64
70
  const deletedData = await repository.find({
65
- where: { extractor: extractor, block: block },
71
+ where: {
72
+ extractor: extractor,
73
+ block: block,
74
+ },
66
75
  });
67
76
  await repository.delete({
68
77
  extractor: extractor,
@@ -77,8 +86,9 @@ export class AbstractErgoExtractorAction {
77
86
  * @param block
78
87
  * @returns
79
88
  */
80
- updateBlockEntities = async (queryRunner, extractor, block) => {
81
- const repository = queryRunner.manager.getRepository(this.repo);
89
+ updateBlockEntities = async (queryRunner, // eslint-disable-line @typescript-eslint/no-unused-vars
90
+ extractor, block) => {
91
+ const repository = this.datasource.getRepository(this.repo);
82
92
  const updatedData = await repository.find({
83
93
  where: {
84
94
  extractor: extractor,
@@ -89,7 +99,10 @@ export class AbstractErgoExtractorAction {
89
99
  await repository.update({
90
100
  spendBlock: block,
91
101
  extractor: extractor,
92
- }, { spendBlock: null, spendHeight: 0 });
102
+ }, {
103
+ spendBlock: null,
104
+ spendHeight: 0,
105
+ });
93
106
  return updatedData;
94
107
  };
95
108
  /**
@@ -159,7 +172,10 @@ export class AbstractErgoExtractorAction {
159
172
  const updateResult = await this.repository.update({
160
173
  boxId: In(boxIds),
161
174
  extractor: extractor,
162
- }, { spendBlock: block.hash, spendHeight: block.height });
175
+ }, {
176
+ spendBlock: block.hash,
177
+ spendHeight: block.height,
178
+ });
163
179
  if (updateResult.affected && updateResult.affected > 0) {
164
180
  const spentRows = await this.repository.findBy({
165
181
  boxId: In(boxIds),
@@ -205,4 +221,4 @@ export class AbstractErgoExtractorAction {
205
221
  }
206
222
  };
207
223
  }
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxFQUFFLEVBRUYsR0FBRyxHQUlKLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBSW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHN0MsTUFBTSxPQUFnQiwyQkFBMkI7SUFJOUIsVUFBVSxDQUFhO0lBQy9CLE1BQU0sQ0FBaUI7SUFDYixVQUFVLENBQThCO0lBQ25ELElBQUksQ0FBZ0M7SUFFNUMsWUFDRSxVQUFzQixFQUN0QixJQUFtQyxFQUNuQyxNQUF1QjtRQUV2QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ08sWUFBWSxHQUFHLENBQ3ZCLElBQXFCLEVBQ3JCLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ21CLEVBQUU7UUFDdEMsTUFBTSxLQUFLLENBQ1QscUZBQXFGLENBQ3RGLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNPLG1CQUFt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YVNvdXJjZSxcbiAgSW4sXG4gIFJlcG9zaXRvcnksXG4gIE5vdCxcbiAgRW50aXR5VGFyZ2V0LFxuICBGaW5kT3B0aW9uc1doZXJlLFxuICBRdWVyeVJ1bm5lcixcbn0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBjaHVuaywgZGlmZmVyZW5jZSwgcGljayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RCb3hEYXRhLCBCb3hJbmZvLCBTcGVuZEluZm8gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgREJfQ0hVTktfU0laRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHkgfSBmcm9tICcuL0Fic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb248XG4gIEV4dHJhY3RlZERhdGEgZXh0ZW5kcyBBYnN0cmFjdEJveERhdGEsXG4gIEV4dHJhY3RvckVudGl0eSBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eVxuPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8RXh0cmFjdG9yRW50aXR5PjtcbiAgcHJpdmF0ZSByZXBvOiBFbnRpdHlUYXJnZXQ8RXh0cmFjdG9yRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIHJlcG86IEVudGl0eVRhcmdldDxFeHRyYWN0b3JFbnRpdHk+LFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyXG4gICkge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShyZXBvKTtcbiAgICB0aGlzLnJlcG8gPSByZXBvO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgZGF0YWJhc2UgZW50aXR5IGZyb20gZXh0cmFjdGVkIGRhdGEgYW5kIGJsb2NrIGluZm9ybWF0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlRW50aXR5ID0gKFxuICAgIGRhdGE6IEV4dHJhY3RlZERhdGFbXSxcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICk6IEFycmF5PE9taXQ8RXh0cmFjdG9yRW50aXR5LCAnaWQnPj4gPT4ge1xuICAgIHRocm93IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IGltcGxlbWVudCBgY3JlYXRlRW50aXR5YCBvciBvdmVycmlkZSBgaW5zZXJ0RW50aXRpZXNgIGFuZCBgdXBkYXRlRW50aXRpZXNgJ1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdGhlIGRhdGFiYXNlIGVudGl0eSBiYWNrIHRvIHJhdyBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgY29udmVydEVudGl0eVRvRGF0YSA9IChcbiAgICBlbnRpdGllczogRXh0cmFjdG9yRW50aXR5W11cbiAgKTogRXh0cmFjdGVkRGF0YVtdID0+IHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBpbXBsZW1lbnQgYGNvbnZlcnRFbnRpdHlUb0RhdGFgIG9yIG92ZXJyaWRlIGBkZWxldGVCbG9ja0VudGl0aWVzYCdcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgZW50aXRpZXMgZXh0cmFjdGVkIGZyb20gYSBibG9jayB0byBkYXRhYmFzZVxuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIGJveGVzVG9JbnNlcnRcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHByb3RlY3RlZCBpbnNlcnRFbnRpdGllcyA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgYm94ZXNUb0luc2VydDogQXJyYXk8RXh0cmFjdGVkRGF0YT4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgYXdhaXQgcmVwb3NpdG9yeS5pbnNlcnQoXG4gICAgICB0aGlzLmNyZWF0ZUVudGl0eShib3hlc1RvSW5zZXJ0LCBibG9jaywgZXh0cmFjdG9yKSBhcyBhbnlcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgZW50aXRpZXMgcmVsYXRlZCB0byBhIGJveFxuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIHVwZGF0ZUJveFxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUVudGl0eSA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgdXBkYXRlQm94OiBFeHRyYWN0ZWREYXRhLFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGNvbnN0IGJveCA9IHRoaXMuY3JlYXRlRW50aXR5KFt1cGRhdGVCb3hdLCBibG9jaywgZXh0cmFjdG9yKVswXTtcbiAgICBhd2FpdCByZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHtcbiAgICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICAgIGJveCBhcyBhbnlcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYWxsIGRhdGEgZXh0cmFjdGVkIGZyb20gYSBibG9ja1xuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByb3RlY3RlZCBkZWxldGVCbG9ja0VudGl0aWVzID0gYXN5bmMgKFxuICAgIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcixcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICBibG9jazogc3RyaW5nXG4gICk6IFByb21pc2U8RXh0cmFjdGVkRGF0YVtdPiA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGNvbnN0IGRlbGV0ZWREYXRhID0gYXdhaXQgcmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiB7IGV4dHJhY3RvcjogZXh0cmFjdG9yLCBibG9jazogYmxvY2sgfSBhcyBhbnksXG4gICAgfSk7XG4gICAgYXdhaXQgcmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICBibG9jazogYmxvY2ssXG4gICAgfSBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmNvbnZlcnRFbnRpdHlUb0RhdGEoZGVsZXRlZERhdGEpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBkZWxldGUgYWxsIGRhdGEgZXh0cmFjdGVkIGZyb20gYSBibG9ja1xuICAgKiBAcGFyYW0gcXVlcnlSdW5uZXJcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVCbG9ja0VudGl0aWVzID0gYXN5bmMgKFxuICAgIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcixcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICBibG9jazogc3RyaW5nXG4gICk6IFByb21pc2U8RXh0cmFjdG9yRW50aXR5W10+ID0+IHtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSBhd2FpdCByZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLFxuICAgICAgICBibG9jazogTm90KGJsb2NrKSxcbiAgICAgIH0gYXMgYW55LFxuICAgIH0pO1xuICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAge1xuICAgICAgICBzcGVuZEJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICAgIHsgc3BlbmRCbG9jazogbnVsbCwgc3BlbmRIZWlnaHQ6IDAgfSBhcyBhbnlcbiAgICApO1xuICAgIHJldHVybiB1cGRhdGVkRGF0YTtcbiAgfTtcblxuICAvKipcbiAgICogaW5zZXJ0IGFsbCBleHRyYWN0ZWQgYm94IGRhdGEgaW4gYW4gYXRvbWljIHRyYW5zYWN0aW9uXG4gICAqIHVwZGF0ZSB0aGUgZGF0YSBpZiBhIGJveCB3aXRoIHRoZSBzYW1lIGlkIGlzIGFscmVhZHkgc3RvcmVkIGluIGRiXG4gICAqIEBwYXJhbSBib3hlc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcmV0dXJuIGluc2VydGVkIGl0ZW1zIGFuZCB1cGRhdGVkIGJveCBpZHNcbiAgICogcmV0dXJucyB1bmRlZmluZWQgaW4gY2FzZSBvZiBhbnkgcHJvYmxlbVxuICAgKi9cbiAgc3RvcmVCb3hlcyA9IGFzeW5jIChcbiAgICBib3hlczogQXJyYXk8RXh0cmFjdGVkRGF0YT4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBsZXQgYm94ZXNUb0luc2VydDogRXh0cmFjdGVkRGF0YVtdID0gW10sXG4gICAgICBib3hlc1RvVXBkYXRlOiBFeHRyYWN0ZWREYXRhW10gPSBbXTtcbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuZGF0YXNvdXJjZS5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkodGhpcy5yZXBvKTtcbiAgICAgIGNvbnN0IGRiQm94SWRzID0gKFxuICAgICAgICBhd2FpdCByZXBvc2l0b3J5LmZpbmRCeSh7XG4gICAgICAgICAgYm94SWQ6IEluKGJveGVzLm1hcCgoaXRlbSkgPT4gaXRlbS5ib3hJZCkpLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PilcbiAgICAgICkubWFwKChib3gpID0+IGJveC5ib3hJZCk7XG4gICAgICBpZiAoZGJCb3hJZHMubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEZvdW5kIHN0b3JlZCBib3hlcyB3aXRoIHNhbWUgYm94SWRgLCBkYkJveElkcyk7XG5cbiAgICAgIGJveGVzVG9VcGRhdGUgPSBib3hlcy5maWx0ZXIoKGJveCkgPT4gZGJCb3hJZHMuaW5jbHVkZXMoYm94LmJveElkKSk7XG4gICAgICBib3hlc1RvSW5zZXJ0ID0gZGlmZmVyZW5jZShib3hlcywgYm94ZXNUb1VwZGF0ZSk7XG5cbiAgICAgIGlmIChib3hlc1RvSW5zZXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEluc2VydGluZyBib3hlc2ApO1xuICAgICAgICBhd2FpdCB0aGlzLmluc2VydEVudGl0aWVzKHF1ZXJ5UnVubmVyLCBib3hlc1RvSW5zZXJ0LCBibG9jaywgZXh0cmFjdG9yKTtcbiAgICAgIH1cbiAgICAgIGlmIChib3hlc1RvVXBkYXRlLmxlbmd0aCA+IDApXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFVwZGF0aW5nIGJveGVzIHdpdGggZm9sbG93aW5nIElkcyBpbiB0aGUgZGF0YWJhc2U6IFske2JveGVzVG9VcGRhdGVcbiAgICAgICAgICAgIC5tYXAoKGNvbCkgPT4gY29sLmJveElkKVxuICAgICAgICAgICAgLmpvaW4oJywgJyl9XWBcbiAgICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzVG9VcGRhdGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFVwZGF0aW5nIGJveGVzIGluIGRhdGFiYXNlIFske0pzb25CaWdJbnQuc3RyaW5naWZ5KGJveCl9XWBcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVFbnRpdHkocXVlcnlSdW5uZXIsIGJveCwgYmxvY2ssIGV4dHJhY3Rvcik7XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBzdG9yZSBib3hlcyBhY3Rpb246ICR7ZX1gKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogdXBkYXRlIHNwZW5kaW5nIGluZm9ybWF0aW9uIG9mIHN0b3JlZCBib3hlc1xuICAgKiBjaHVuayBzcGVuZEluZm9zIHRvIHByZXZlbnQgbGFyZ2UgZGF0YWJhc2UgcXVlcmllc1xuICAgKiBOb3RlOiBJdCBvbmx5IHVwZGF0ZXMgdGhlIHNwZW5kSGVpZ2h0IGFuZCBzcGVuZEJsb2NrIGZpZWxkcy4gSWYgdXBkYXRpbmdcbiAgICogYW55dGhpbmcgZWxzZSBpcyByZXF1aXJlZCwgb3ZlcnJpZGUgdGhpcyBpbXBsZW1lbnRhdGlvbiB0byBpbmNsdWRlIHRoZVxuICAgKiBhZGRpdGlvbmFsIGZpZWxkcy5cbiAgICogQHBhcmFtIHNwZW5kSW5mb3NcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHJldHVybnMgc3BlbnQgYm94IGlkc1xuICAgKi9cbiAgc3BlbmRCb3hlcyA9IGFzeW5jIChcbiAgICBzcGVuZEluZm9zOiBBcnJheTxTcGVuZEluZm8+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxCb3hJbmZvW10+ID0+IHtcbiAgICBjb25zdCBzcGVudERhdGEgPSBbXTtcbiAgICBjb25zdCBzcGVuZEluZm9DaHVua3MgPSBjaHVuayhzcGVuZEluZm9zLCBEQl9DSFVOS19TSVpFKTtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSW5mb0NodW5rIG9mIHNwZW5kSW5mb0NodW5rcykge1xuICAgICAgY29uc3QgYm94SWRzID0gc3BlbmRJbmZvQ2h1bmsubWFwKChpbmZvKSA9PiBpbmZvLmJveElkKTtcbiAgICAgIGNvbnN0IHVwZGF0ZVJlc3VsdCA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBib3hJZDogSW4oYm94SWRzKSxcbiAgICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgfSBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4sXG4gICAgICAgIHsgc3BlbmRCbG9jazogYmxvY2suaGFzaCwgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCB9IGFzIGFueVxuICAgICAgKTtcblxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCAmJiB1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHNwZW50Um93cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KTtcbiAgICAgICAgc3BlbnREYXRhLnB1c2goLi4uc3BlbnRSb3dzKTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc3BlbnRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgYm94IHdpdGggYm94SWQgWyR7cm93LmJveElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzcGVudERhdGEubWFwKChkYXRhKSA9PiBwaWNrKGRhdGEsICdib3hJZCcpKTtcbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRlIGV4dHJhY3RlZCBkYXRhIGZyb20gYSBzcGVjaWZpYyBibG9ja1xuICAgKiBpZiBhIGJveCBpcyBzcGVuZCBpbiB0aGlzIGJsb2NrIG1hcmsgaXQgYXMgdW5zcGVudFxuICAgKiBpZiBhIGJveCBpcyBjcmVhdGVkIGluIHRoaXMgYmxvY2sgcmVtb3ZlIGl0IGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHJldHVybiBkZWxldGVkIGl0ZW1zIGFuZCB1cGRhdGVkIGJveCBpZHNcbiAgICovXG4gIGRlbGV0ZUJsb2NrQm94ZXMgPSBhc3luYyAoXG4gICAgYmxvY2s6IHN0cmluZyxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHsgZGVsZXRlZERhdGE6IEV4dHJhY3RlZERhdGFbXTsgdXBkYXRlZERhdGE6IEJveEluZm9bXSB9PiA9PiB7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgRGVsZXRpbmcgYm94ZXMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgICApO1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBhd2FpdCB0aGlzLnVwZGF0ZUJsb2NrRW50aXRpZXMoXG4gICAgICAgIHF1ZXJ5UnVubmVyLFxuICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgIGJsb2NrXG4gICAgICApO1xuICAgICAgY29uc3QgZGVsZXRlZERhdGEgPSBhd2FpdCB0aGlzLmRlbGV0ZUJsb2NrRW50aXRpZXMoXG4gICAgICAgIHF1ZXJ5UnVubmVyLFxuICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgIGJsb2NrXG4gICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlbGV0ZWREYXRhLFxuICAgICAgICB1cGRhdGVkRGF0YTogdXBkYXRlZERhdGEubWFwKChkYXRhKSA9PiBwaWNrKGRhdGEsICdib3hJZCcpKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVsZXRpbmcgZGF0YSBleHRyYWN0ZWQgZnJvbSBibG9jayAke2Jsb2NrfWAsXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2VyZ28vQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxFQUFFLEVBRUYsR0FBRyxHQUlKLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sVUFBVSxNQUFNLDJCQUEyQixDQUFDO0FBSW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0MsTUFBTSxPQUFnQiwyQkFBMkI7SUFJOUIsVUFBVSxDQUFhO0lBQy9CLE1BQU0sQ0FBaUI7SUFDYixVQUFVLENBQThCO0lBQ25ELElBQUksQ0FBZ0M7SUFFNUMsWUFDRSxVQUFzQixFQUN0QixJQUFtQyxFQUNuQyxNQUF1QjtRQUV2QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ08sWUFBWSxHQUFHLENBQ3ZCLElBQXFCLEVBQUUsd0RBQXdEO0lBQy9FLEtBQWdCLEVBQUUsd0RBQXdEO0lBQzFFLFNBQWlCLENBQUMsd0RBQXdEO01BQ3RDLEVBQUU7UUFDdEMsTUFBTSxLQUFLLENBQ1QscUZBQXFGLENBQ3RGLENBQUM7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QztZQUNULE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERhdGFTb3VyY2UsXG4gIEluLFxuICBSZXBvc2l0b3J5LFxuICBOb3QsXG4gIEVudGl0eVRhcmdldCxcbiAgRmluZE9wdGlvbnNXaGVyZSxcbiAgUXVlcnlSdW5uZXIsXG59IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IHsgY2h1bmssIGRpZmZlcmVuY2UsIHBpY2sgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0Qm94RGF0YSwgQm94SW5mbywgU3BlbmRJbmZvIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERCX0NIVU5LX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5IH0gZnJvbSAnLi9BYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHknO1xuaW1wb3J0IHsgUXVlcnlEZWVwUGFydGlhbEVudGl0eSB9IGZyb20gJ3R5cGVvcm0vcXVlcnktYnVpbGRlci9RdWVyeVBhcnRpYWxFbnRpdHknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RCb3hEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHlcbj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5PEV4dHJhY3RvckVudGl0eT47XG4gIHByaXZhdGUgcmVwbzogRW50aXR5VGFyZ2V0PEV4dHJhY3RvckVudGl0eT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICByZXBvOiBFbnRpdHlUYXJnZXQ8RXh0cmFjdG9yRW50aXR5PixcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICB0aGlzLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gdGhpcy5kYXRhc291cmNlLmdldFJlcG9zaXRvcnkocmVwbyk7XG4gICAgdGhpcy5yZXBvID0gcmVwbztcbiAgfVxuXG4gIC8qKlxuICAgKiBjcmVhdGUgdGhlIGRhdGFiYXNlIGVudGl0eSBmcm9tIGV4dHJhY3RlZCBkYXRhIGFuZCBibG9jayBpbmZvcm1hdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUVudGl0eSA9IChcbiAgICBkYXRhOiBFeHRyYWN0ZWREYXRhW10sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgYmxvY2s6IEJsb2NrSW5mbywgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBleHRyYWN0b3I6IHN0cmluZyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICApOiBBcnJheTxPbWl0PEV4dHJhY3RvckVudGl0eSwgJ2lkJz4+ID0+IHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBpbXBsZW1lbnQgYGNyZWF0ZUVudGl0eWAgb3Igb3ZlcnJpZGUgYGluc2VydEVudGl0aWVzYCBhbmQgYHVwZGF0ZUVudGl0aWVzYCdcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHRoZSBkYXRhYmFzZSBlbnRpdHkgYmFjayB0byByYXcgZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnZlcnRFbnRpdHlUb0RhdGEgPSAoXG4gICAgZW50aXRpZXM6IEV4dHJhY3RvckVudGl0eVtdIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICk6IEV4dHJhY3RlZERhdGFbXSA9PiB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICAnWW91IG11c3QgaW1wbGVtZW50IGBjb252ZXJ0RW50aXR5VG9EYXRhYCBvciBvdmVycmlkZSBgZGVsZXRlQmxvY2tFbnRpdGllc2AnXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogaW5zZXJ0IGVudGl0aWVzIGV4dHJhY3RlZCBmcm9tIGEgYmxvY2sgdG8gZGF0YWJhc2VcbiAgICogQHBhcmFtIHF1ZXJ5UnVubmVyXG4gICAqIEBwYXJhbSBib3hlc1RvSW5zZXJ0XG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5zZXJ0RW50aXRpZXMgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLFxuICAgIGJveGVzVG9JbnNlcnQ6IEFycmF5PEV4dHJhY3RlZERhdGE+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgIGF3YWl0IHJlcG9zaXRvcnkuaW5zZXJ0KFxuICAgICAgdGhpcy5jcmVhdGVFbnRpdHkoXG4gICAgICAgIGJveGVzVG9JbnNlcnQsXG4gICAgICAgIGJsb2NrLFxuICAgICAgICBleHRyYWN0b3JcbiAgICAgICkgYXMgdW5rbm93biBhcyBRdWVyeURlZXBQYXJ0aWFsRW50aXR5PEV4dHJhY3RvckVudGl0eT5bXVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBlbnRpdGllcyByZWxhdGVkIHRvIGEgYm94XG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gdXBkYXRlQm94XG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlRW50aXR5ID0gYXN5bmMgKFxuICAgIHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcixcbiAgICB1cGRhdGVCb3g6IEV4dHJhY3RlZERhdGEsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgYmxvY2s6IEJsb2NrSW5mbywgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KHRoaXMucmVwbyk7XG4gICAgY29uc3QgYm94ID0gdGhpcy5jcmVhdGVFbnRpdHkoW3VwZGF0ZUJveF0sIGJsb2NrLCBleHRyYWN0b3IpWzBdO1xuICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAge1xuICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+LFxuICAgICAgYm94IGFzIHVua25vd24gYXMgUXVlcnlEZWVwUGFydGlhbEVudGl0eTxFeHRyYWN0b3JFbnRpdHk+XG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRlIGFsbCBkYXRhIGV4dHJhY3RlZCBmcm9tIGEgYmxvY2tcbiAgICogQHBhcmFtIHF1ZXJ5UnVubmVyXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVsZXRlQmxvY2tFbnRpdGllcyA9IGFzeW5jIChcbiAgICBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICAgYmxvY2s6IHN0cmluZ1xuICApOiBQcm9taXNlPEV4dHJhY3RlZERhdGFbXT4gPT4ge1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkodGhpcy5yZXBvKTtcbiAgICBjb25zdCBkZWxldGVkRGF0YSA9IGF3YWl0IHJlcG9zaXRvcnkuZmluZCh7XG4gICAgICB3aGVyZToge1xuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgYmxvY2s6IGJsb2NrLFxuICAgICAgfSBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4sXG4gICAgfSk7XG4gICAgYXdhaXQgcmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICBibG9jazogYmxvY2ssXG4gICAgfSBhcyB1bmtub3duIGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5Pik7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydEVudGl0eVRvRGF0YShkZWxldGVkRGF0YSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBhbGwgZGF0YSBleHRyYWN0ZWQgZnJvbSBhIGJsb2NrXG4gICAqIEBwYXJhbSBxdWVyeVJ1bm5lclxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUJsb2NrRW50aXRpZXMgPSBhc3luYyAoXG4gICAgcXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICAgIGJsb2NrOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxFeHRyYWN0b3JFbnRpdHlbXT4gPT4ge1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSB0aGlzLmRhdGFzb3VyY2UuZ2V0UmVwb3NpdG9yeShcbiAgICAgIHRoaXMucmVwbyBhcyBFbnRpdHlUYXJnZXQ8bmV3ICgpID0+IEV4dHJhY3RvckVudGl0eT5cbiAgICApO1xuICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gYXdhaXQgcmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICBzcGVuZEJsb2NrOiBibG9jayxcbiAgICAgICAgYmxvY2s6IE5vdChibG9jayksXG4gICAgICB9IGFzIHVua25vd24gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+LFxuICAgIH0pO1xuICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAge1xuICAgICAgICBzcGVuZEJsb2NrOiBibG9jayxcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9IGFzIHVua25vd24gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+LFxuICAgICAge1xuICAgICAgICBzcGVuZEJsb2NrOiBudWxsLFxuICAgICAgICBzcGVuZEhlaWdodDogMCxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB1cGRhdGVkRGF0YSBhcyB1bmtub3duIGFzIEV4dHJhY3RvckVudGl0eVtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQgYWxsIGV4dHJhY3RlZCBib3ggZGF0YSBpbiBhbiBhdG9taWMgdHJhbnNhY3Rpb25cbiAgICogdXBkYXRlIHRoZSBkYXRhIGlmIGEgYm94IHdpdGggdGhlIHNhbWUgaWQgaXMgYWxyZWFkeSBzdG9yZWQgaW4gZGJcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEByZXR1cm4gaW5zZXJ0ZWQgaXRlbXMgYW5kIHVwZGF0ZWQgYm94IGlkc1xuICAgKiByZXR1cm5zIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGFueSBwcm9ibGVtXG4gICAqL1xuICBzdG9yZUJveGVzID0gYXN5bmMgKFxuICAgIGJveGVzOiBBcnJheTxFeHRyYWN0ZWREYXRhPixcbiAgICBibG9jazogQmxvY2tJbmZvLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGxldCBib3hlc1RvSW5zZXJ0OiBFeHRyYWN0ZWREYXRhW10gPSBbXSxcbiAgICAgIGJveGVzVG9VcGRhdGU6IEV4dHJhY3RlZERhdGFbXSA9IFtdO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeSh0aGlzLnJlcG8pO1xuICAgICAgY29uc3QgZGJCb3hJZHMgPSAoXG4gICAgICAgIGF3YWl0IHJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgICBib3hJZDogSW4oYm94ZXMubWFwKChpdGVtKSA9PiBpdGVtLmJveElkKSksXG4gICAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KVxuICAgICAgKS5tYXAoKGJveCkgPT4gYm94LmJveElkKTtcbiAgICAgIGlmIChkYkJveElkcy5sZW5ndGggPiAwKVxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRm91bmQgc3RvcmVkIGJveGVzIHdpdGggc2FtZSBib3hJZGAsIGRiQm94SWRzKTtcblxuICAgICAgYm94ZXNUb1VwZGF0ZSA9IGJveGVzLmZpbHRlcigoYm94KSA9PiBkYkJveElkcy5pbmNsdWRlcyhib3guYm94SWQpKTtcbiAgICAgIGJveGVzVG9JbnNlcnQgPSBkaWZmZXJlbmNlKGJveGVzLCBib3hlc1RvVXBkYXRlKTtcblxuICAgICAgaWYgKGJveGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgSW5zZXJ0aW5nIGJveGVzYCk7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5zZXJ0RW50aXRpZXMocXVlcnlSdW5uZXIsIGJveGVzVG9JbnNlcnQsIGJsb2NrLCBleHRyYWN0b3IpO1xuICAgICAgfVxuICAgICAgaWYgKGJveGVzVG9VcGRhdGUubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgVXBkYXRpbmcgYm94ZXMgd2l0aCBmb2xsb3dpbmcgSWRzIGluIHRoZSBkYXRhYmFzZTogWyR7Ym94ZXNUb1VwZGF0ZVxuICAgICAgICAgICAgLm1hcCgoY29sKSA9PiBjb2wuYm94SWQpXG4gICAgICAgICAgICAuam9pbignLCAnKX1dYFxuICAgICAgICApO1xuICAgICAgZm9yIChjb25zdCBib3ggb2YgYm94ZXNUb1VwZGF0ZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgVXBkYXRpbmcgYm94ZXMgaW4gZGF0YWJhc2UgWyR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoYm94KX1dYFxuICAgICAgICApO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUVudGl0eShxdWVyeVJ1bm5lciwgYm94LCBibG9jaywgZXh0cmFjdG9yKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHN0b3JlIGJveGVzIGFjdGlvbjogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiB1cGRhdGUgc3BlbmRpbmcgaW5mb3JtYXRpb24gb2Ygc3RvcmVkIGJveGVzXG4gICAqIGNodW5rIHNwZW5kSW5mb3MgdG8gcHJldmVudCBsYXJnZSBkYXRhYmFzZSBxdWVyaWVzXG4gICAqIE5vdGU6IEl0IG9ubHkgdXBkYXRlcyB0aGUgc3BlbmRIZWlnaHQgYW5kIHNwZW5kQmxvY2sgZmllbGRzLiBJZiB1cGRhdGluZ1xuICAgKiBhbnl0aGluZyBlbHNlIGlzIHJlcXVpcmVkLCBvdmVycmlkZSB0aGlzIGltcGxlbWVudGF0aW9uIHRvIGluY2x1ZGUgdGhlXG4gICAqIGFkZGl0aW9uYWwgZmllbGRzLlxuICAgKiBAcGFyYW0gc3BlbmRJbmZvc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKiBAcmV0dXJucyBzcGVudCBib3ggaWRzXG4gICAqL1xuICBzcGVuZEJveGVzID0gYXN5bmMgKFxuICAgIHNwZW5kSW5mb3M6IEFycmF5PFNwZW5kSW5mbz4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPEJveEluZm9bXT4gPT4ge1xuICAgIGNvbnN0IHNwZW50RGF0YSA9IFtdO1xuICAgIGNvbnN0IHNwZW5kSW5mb0NodW5rcyA9IGNodW5rKHNwZW5kSW5mb3MsIERCX0NIVU5LX1NJWkUpO1xuICAgIGZvciAoY29uc3Qgc3BlbmRJbmZvQ2h1bmsgb2Ygc3BlbmRJbmZvQ2h1bmtzKSB7XG4gICAgICBjb25zdCBib3hJZHMgPSBzcGVuZEluZm9DaHVuay5tYXAoKGluZm8pID0+IGluZm8uYm94SWQpO1xuICAgICAgY29uc3QgdXBkYXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICB9IGFzIEZpbmRPcHRpb25zV2hlcmU8RXh0cmFjdG9yRW50aXR5PixcbiAgICAgICAge1xuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgc3BlbmRIZWlnaHQ6IGJsb2NrLmhlaWdodCxcbiAgICAgICAgfSBhcyB1bmtub3duIGFzIFF1ZXJ5RGVlcFBhcnRpYWxFbnRpdHk8RXh0cmFjdG9yRW50aXR5PlxuICAgICAgKTtcblxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCAmJiB1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHNwZW50Um93cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgIH0gYXMgRmluZE9wdGlvbnNXaGVyZTxFeHRyYWN0b3JFbnRpdHk+KTtcbiAgICAgICAgc3BlbnREYXRhLnB1c2goLi4uc3BlbnRSb3dzKTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc3BlbnRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgYm94IHdpdGggYm94SWQgWyR7cm93LmJveElkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzcGVudERhdGEubWFwKChkYXRhKSA9PiBwaWNrKGRhdGEsICdib3hJZCcpKTtcbiAgfTtcblxuICAvKipcbiAgICogZGVsZXRlIGV4dHJhY3RlZCBkYXRhIGZyb20gYSBzcGVjaWZpYyBibG9ja1xuICAgKiBpZiBhIGJveCBpcyBzcGVuZCBpbiB0aGlzIGJsb2NrIG1hcmsgaXQgYXMgdW5zcGVudFxuICAgKiBpZiBhIGJveCBpcyBjcmVhdGVkIGluIHRoaXMgYmxvY2sgcmVtb3ZlIGl0IGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHJldHVybiBkZWxldGVkIGl0ZW1zIGFuZCB1cGRhdGVkIGJveCBpZHNcbiAgICovXG4gIGRlbGV0ZUJsb2NrQm94ZXMgPSBhc3luYyAoXG4gICAgYmxvY2s6IHN0cmluZyxcbiAgICBleHRyYWN0b3I6IHN0cmluZ1xuICApOiBQcm9taXNlPHsgZGVsZXRlZERhdGE6IEV4dHJhY3RlZERhdGFbXTsgdXBkYXRlZERhdGE6IEJveEluZm9bXSB9PiA9PiB7XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmRhdGFzb3VyY2UuY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICBgRGVsZXRpbmcgYm94ZXMgaW4gYmxvY2sgJHtibG9ja30gYW5kIGV4dHJhY3RvciAke2V4dHJhY3Rvcn1gXG4gICAgICApO1xuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBhd2FpdCB0aGlzLnVwZGF0ZUJsb2NrRW50aXRpZXMoXG4gICAgICAgIHF1ZXJ5UnVubmVyLFxuICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgIGJsb2NrXG4gICAgICApO1xuICAgICAgY29uc3QgZGVsZXRlZERhdGEgPSBhd2FpdCB0aGlzLmRlbGV0ZUJsb2NrRW50aXRpZXMoXG4gICAgICAgIHF1ZXJ5UnVubmVyLFxuICAgICAgICBleHRyYWN0b3IsXG4gICAgICAgIGJsb2NrXG4gICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlbGV0ZWREYXRhLFxuICAgICAgICB1cGRhdGVkRGF0YTogdXBkYXRlZERhdGEubWFwKChkYXRhKSA9PiBwaWNrKGRhdGEsICdib3hJZCcpKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVsZXRpbmcgZGF0YSBleHRyYWN0ZWQgZnJvbSBibG9jayAke2Jsb2NrfWAsXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractInitializableAction.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializable/AbstractInitializableAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,8BAAsB,wCAAwC,CAC5D,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,2BAA2B,CAAC,aAAa,EAAE,eAAe,CAAC;gBAEjE,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,CAAC,EAAE,cAAc;IAKzB;;;OAGG;IACH,aAAa,gBAAuB,MAAM,mBAExC;CACH"}
1
+ {"version":3,"file":"AbstractInitializableAction.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializable/AbstractInitializableAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,8BAAsB,wCAAwC,CAC5D,aAAa,SAAS,eAAe,EACrC,eAAe,SAAS,2BAA2B,CACnD,SAAQ,2BAA2B,CAAC,aAAa,EAAE,eAAe,CAAC;gBAEjE,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,EACnC,MAAM,CAAC,EAAE,cAAc;IAKzB;;;OAGG;IACH,aAAa,gBAAuB,MAAM,mBAIxC;CACH"}
@@ -8,7 +8,9 @@ export class AbstractInitializableErgoExtractorAction extends AbstractErgoExtrac
8
8
  * @param extractorId
9
9
  */
10
10
  removeAllData = async (extractorId) => {
11
- await this.repository.delete({ extractor: extractorId });
11
+ await this.repository.delete({
12
+ extractor: extractorId,
13
+ });
12
14
  };
13
15
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RJbml0aWFsaXphYmxlQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6YWJsZS9BYnN0cmFjdEluaXRpYWxpemFibGVBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJN0UsTUFBTSxPQUFnQix3Q0FHcEIsU0FBUSwyQkFBMkQ7SUFDbkUsWUFDRSxVQUFzQixFQUN0QixJQUFtQyxFQUNuQyxNQUF1QjtRQUV2QixLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxHQUFHLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUU7UUFDNUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgRW50aXR5VGFyZ2V0IH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uIH0gZnJvbSAnLi4vQWJzdHJhY3RFcmdvRXh0cmFjdG9yQWN0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0Qm94RGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5IH0gZnJvbSAnLi4vQWJzdHJhY3RFcmdvRXh0cmFjdG9yRW50aXR5JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SW5pdGlhbGl6YWJsZUVyZ29FeHRyYWN0b3JBY3Rpb248XG4gIEV4dHJhY3RlZERhdGEgZXh0ZW5kcyBBYnN0cmFjdEJveERhdGEsXG4gIEV4dHJhY3RvckVudGl0eSBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eVxuPiBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbjxFeHRyYWN0ZWREYXRhLCBFeHRyYWN0b3JFbnRpdHk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICByZXBvOiBFbnRpdHlUYXJnZXQ8RXh0cmFjdG9yRW50aXR5PixcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcihkYXRhU291cmNlLCByZXBvLCBsb2dnZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlbW92ZSBhbGwgZXhpc3RpbmcgZGF0YSBmb3IgdGhlIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gZXh0cmFjdG9ySWRcbiAgICovXG4gIHJlbW92ZUFsbERhdGEgPSBhc3luYyAoZXh0cmFjdG9ySWQ6IHN0cmluZykgPT4ge1xuICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS5kZWxldGUoeyBleHRyYWN0b3I6IGV4dHJhY3RvcklkIH0gYXMgYW55KTtcbiAgfTtcbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RJbml0aWFsaXphYmxlQWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6YWJsZS9BYnN0cmFjdEluaXRpYWxpemFibGVBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJN0UsTUFBTSxPQUFnQix3Q0FHcEIsU0FBUSwyQkFBMkQ7SUFDbkUsWUFDRSxVQUFzQixFQUN0QixJQUFtQyxFQUNuQyxNQUF1QjtRQUV2QixLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxHQUFHLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUU7UUFDNUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixTQUFTLEVBQUUsV0FBVztTQUNjLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIEVudGl0eVRhcmdldCwgRmluZE9wdGlvbnNXaGVyZSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5cbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbiB9IGZyb20gJy4uL0Fic3RyYWN0RXJnb0V4dHJhY3RvckFjdGlvbic7XG5pbXBvcnQgeyBBYnN0cmFjdEJveERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSB9IGZyb20gJy4uL0Fic3RyYWN0RXJnb0V4dHJhY3RvckVudGl0eSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yQWN0aW9uPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RCb3hEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JFbnRpdHlcbj4gZXh0ZW5kcyBBYnN0cmFjdEVyZ29FeHRyYWN0b3JBY3Rpb248RXh0cmFjdGVkRGF0YSwgRXh0cmFjdG9yRW50aXR5PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsXG4gICAgcmVwbzogRW50aXR5VGFyZ2V0PEV4dHJhY3RvckVudGl0eT4sXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXJcbiAgKSB7XG4gICAgc3VwZXIoZGF0YVNvdXJjZSwgcmVwbywgbG9nZ2VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZW1vdmUgYWxsIGV4aXN0aW5nIGRhdGEgZm9yIHRoZSBleHRyYWN0b3JcbiAgICogQHBhcmFtIGV4dHJhY3RvcklkXG4gICAqL1xuICByZW1vdmVBbGxEYXRhID0gYXN5bmMgKGV4dHJhY3RvcklkOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZGVsZXRlKHtcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9ySWQsXG4gICAgfSBhcyBGaW5kT3B0aW9uc1doZXJlPEV4dHJhY3RvckVudGl0eT4pO1xuICB9O1xufVxuIl19
@@ -140,7 +140,9 @@ export abstract class AbstractErgoExtractor<
140
140
  * @param tx
141
141
  * @returns
142
142
  */
143
- getTransactionExtraData = (tx: Transaction): TxExtra => {
143
+ getTransactionExtraData = (
144
+ tx: Transaction // eslint-disable-line @typescript-eslint/no-unused-vars
145
+ ): TxExtra => {
144
146
  return {};
145
147
  };
146
148
 
@@ -15,6 +15,7 @@ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
15
15
  import { AbstractBoxData, BoxInfo, SpendInfo } from './interfaces';
16
16
  import { DB_CHUNK_SIZE } from '../constants';
17
17
  import { AbstractErgoExtractorEntity } from './AbstractErgoExtractorEntity';
18
+ import { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity';
18
19
 
19
20
  export abstract class AbstractErgoExtractorAction<
20
21
  ExtractedData extends AbstractBoxData,
@@ -40,9 +41,9 @@ export abstract class AbstractErgoExtractorAction<
40
41
  * create the database entity from extracted data and block information
41
42
  */
42
43
  protected createEntity = (
43
- data: ExtractedData[],
44
- block: BlockInfo,
45
- extractor: string
44
+ data: ExtractedData[], // eslint-disable-line @typescript-eslint/no-unused-vars
45
+ block: BlockInfo, // eslint-disable-line @typescript-eslint/no-unused-vars
46
+ extractor: string // eslint-disable-line @typescript-eslint/no-unused-vars
46
47
  ): Array<Omit<ExtractorEntity, 'id'>> => {
47
48
  throw Error(
48
49
  'You must implement `createEntity` or override `insertEntities` and `updateEntities`'
@@ -53,7 +54,7 @@ export abstract class AbstractErgoExtractorAction<
53
54
  * convert the database entity back to raw data
54
55
  */
55
56
  protected convertEntityToData = (
56
- entities: ExtractorEntity[]
57
+ entities: ExtractorEntity[] // eslint-disable-line @typescript-eslint/no-unused-vars
57
58
  ): ExtractedData[] => {
58
59
  throw Error(
59
60
  'You must implement `convertEntityToData` or override `deleteBlockEntities`'
@@ -75,7 +76,11 @@ export abstract class AbstractErgoExtractorAction<
75
76
  ) => {
76
77
  const repository = queryRunner.manager.getRepository(this.repo);
77
78
  await repository.insert(
78
- this.createEntity(boxesToInsert, block, extractor) as any
79
+ this.createEntity(
80
+ boxesToInsert,
81
+ block,
82
+ extractor
83
+ ) as unknown as QueryDeepPartialEntity<ExtractorEntity>[]
79
84
  );
80
85
  };
81
86
 
@@ -88,8 +93,8 @@ export abstract class AbstractErgoExtractorAction<
88
93
  */
89
94
  protected updateEntity = async (
90
95
  queryRunner: QueryRunner,
91
- updateBox: ExtractedData,
92
- block: BlockInfo,
96
+ updateBox: ExtractedData, // eslint-disable-line @typescript-eslint/no-unused-vars
97
+ block: BlockInfo, // eslint-disable-line @typescript-eslint/no-unused-vars
93
98
  extractor: string
94
99
  ) => {
95
100
  const repository = queryRunner.manager.getRepository(this.repo);
@@ -99,7 +104,7 @@ export abstract class AbstractErgoExtractorAction<
99
104
  boxId: box.boxId,
100
105
  extractor: extractor,
101
106
  } as FindOptionsWhere<ExtractorEntity>,
102
- box as any
107
+ box as unknown as QueryDeepPartialEntity<ExtractorEntity>
103
108
  );
104
109
  };
105
110
 
@@ -117,12 +122,15 @@ export abstract class AbstractErgoExtractorAction<
117
122
  ): Promise<ExtractedData[]> => {
118
123
  const repository = queryRunner.manager.getRepository(this.repo);
119
124
  const deletedData = await repository.find({
120
- where: { extractor: extractor, block: block } as any,
125
+ where: {
126
+ extractor: extractor,
127
+ block: block,
128
+ } as FindOptionsWhere<ExtractorEntity>,
121
129
  });
122
130
  await repository.delete({
123
131
  extractor: extractor,
124
132
  block: block,
125
- } as any);
133
+ } as unknown as FindOptionsWhere<ExtractorEntity>);
126
134
  return this.convertEntityToData(deletedData);
127
135
  };
128
136
 
@@ -134,26 +142,31 @@ export abstract class AbstractErgoExtractorAction<
134
142
  * @returns
135
143
  */
136
144
  protected updateBlockEntities = async (
137
- queryRunner: QueryRunner,
145
+ queryRunner: QueryRunner, // eslint-disable-line @typescript-eslint/no-unused-vars
138
146
  extractor: string,
139
147
  block: string
140
148
  ): Promise<ExtractorEntity[]> => {
141
- const repository = queryRunner.manager.getRepository(this.repo);
149
+ const repository = this.datasource.getRepository(
150
+ this.repo as EntityTarget<new () => ExtractorEntity>
151
+ );
142
152
  const updatedData = await repository.find({
143
153
  where: {
144
154
  extractor: extractor,
145
155
  spendBlock: block,
146
156
  block: Not(block),
147
- } as any,
157
+ } as unknown as FindOptionsWhere<ExtractorEntity>,
148
158
  });
149
159
  await repository.update(
150
160
  {
151
161
  spendBlock: block,
152
162
  extractor: extractor,
153
- } as FindOptionsWhere<ExtractorEntity>,
154
- { spendBlock: null, spendHeight: 0 } as any
163
+ } as unknown as FindOptionsWhere<ExtractorEntity>,
164
+ {
165
+ spendBlock: null,
166
+ spendHeight: 0,
167
+ }
155
168
  );
156
- return updatedData;
169
+ return updatedData as unknown as ExtractorEntity[];
157
170
  };
158
171
 
159
172
  /**
@@ -241,7 +254,10 @@ export abstract class AbstractErgoExtractorAction<
241
254
  boxId: In(boxIds),
242
255
  extractor: extractor,
243
256
  } as FindOptionsWhere<ExtractorEntity>,
244
- { spendBlock: block.hash, spendHeight: block.height } as any
257
+ {
258
+ spendBlock: block.hash,
259
+ spendHeight: block.height,
260
+ } as unknown as QueryDeepPartialEntity<ExtractorEntity>
245
261
  );
246
262
 
247
263
  if (updateResult.affected && updateResult.affected > 0) {
@@ -1,4 +1,4 @@
1
- import { DataSource, EntityTarget } from 'typeorm';
1
+ import { DataSource, EntityTarget, FindOptionsWhere } from 'typeorm';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
3
 
4
4
  import { AbstractErgoExtractorAction } from '../AbstractErgoExtractorAction';
@@ -22,6 +22,8 @@ export abstract class AbstractInitializableErgoExtractorAction<
22
22
  * @param extractorId
23
23
  */
24
24
  removeAllData = async (extractorId: string) => {
25
- await this.repository.delete({ extractor: extractorId } as any);
25
+ await this.repository.delete({
26
+ extractor: extractorId,
27
+ } as FindOptionsWhere<ExtractorEntity>);
26
28
  };
27
29
  }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@rosen-bridge/abstract-extractor",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Rosen Bridge extractor interfaces to work with scanner",
5
5
  "repository": "",
6
- "license": "GPL-3.0",
6
+ "license": "MIT",
7
7
  "author": "Rosen Team",
8
8
  "type": "module",
9
9
  "main": "dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@rosen-bridge/abstract-logger": "^2.0.1",
40
40
  "@rosen-bridge/json-bigint": "^0.1.0",
41
- "@rosen-bridge/scanner-interfaces": "^0.1.0",
41
+ "@rosen-bridge/scanner-interfaces": "^0.1.1",
42
42
  "@rosen-clients/ergo-explorer": "^1.1.5",
43
43
  "@rosen-clients/ergo-node": "^1.2.3",
44
44
  "lodash-es": "^4.17.21",
@@ -21,10 +21,12 @@ export class MockedErgoExtractor extends AbstractErgoExtractor<
21
21
 
22
22
  initializeBoxes: (initialBlock: BlockInfo) => Promise<void>;
23
23
 
24
- hasData = (box: V1.OutputInfo | OutputBox) => false;
24
+ hasData = (
25
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
26
+ ) => false;
25
27
 
26
28
  extractBoxData = (
27
- box: V1.OutputInfo | OutputBox
29
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
28
30
  ): AbstractBoxData | undefined => {
29
31
  return undefined;
30
32
  };
@@ -19,17 +19,26 @@ export class MockedInitializableErgoExtractor extends AbstractInitializableErgoE
19
19
 
20
20
  getId = () => 'Test';
21
21
 
22
- hasData = (box: V1.OutputInfo | OutputBox) => false;
22
+ hasData = (
23
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
24
+ ) => false;
23
25
 
24
- getTxBlock = async (txId: string): Promise<BlockInfo> => {
26
+ getTxBlock = async (
27
+ txId: string // eslint-disable-line @typescript-eslint/no-unused-vars
28
+ ): Promise<BlockInfo> => {
25
29
  return { hash: 'hash', height: 100 };
26
30
  };
27
31
 
28
- getBoxesWithOffsetLimit = (offset: number, limit: number) => {
32
+ getBoxesWithOffsetLimit = (
33
+ offset: number, // eslint-disable-line @typescript-eslint/no-unused-vars
34
+ limit: number // eslint-disable-line @typescript-eslint/no-unused-vars
35
+ ) => {
29
36
  return Promise.resolve({ boxes: ergoBoxes, hasNextBatch: true });
30
37
  };
31
38
 
32
- extractBoxData = (box: V1.OutputInfo | OutputBox) => {
39
+ extractBoxData = (
40
+ box: V1.OutputInfo | OutputBox // eslint-disable-line @typescript-eslint/no-unused-vars
41
+ ) => {
33
42
  return undefined;
34
43
  };
35
44
  }