@kaspernj/api-maker 1.0.2144 → 1.0.2146

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cable-subscription-pool.d.ts","sourceRoot":"/src/","sources":["cable-subscription-pool.js"],"names":[],"mappings":"AAUA,2DAA2D;AAC3D;IAGI,4BAA4B;IAC5B,yBAA8B;IAC9B,mBAAsB;IAGxB,eAAe;IACf,qCAoBC;IAfC,kBAaC;IAIH;;;;;OAKG;IACH,4BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED,2BAA2B;IAC3B,yCAyCC;IAED,mBAAmB;IACnB,uBAA2C;IAE3C,mBAAmB;IACnB,wBAIC;IAED,sBAAsB;IACtB,2BAEC;IAED,kBAAkB;IAClB,aAAc,YAAO,UAqDpB;IAED,oBAAoB;IACpB,yBAEC;IAED,kBAAkB;IAClB,uBAEC;IAED,sBAAsB;IACtB,6BADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAIjB;IAED;;;OAGG;IACH,yBAHW,KAAK,GACH,IAAI,CAKhB;IAED,qBAAqB;IACrB,sBAUC;IAED,6BAA6B;IAC7B,gDA+BC;IA9BC,mBAAkC;IAgCpC,4CAA4C;IAC5C,8DAWC;CACF"}
1
+ {"version":3,"file":"cable-subscription-pool.d.ts","sourceRoot":"/src/","sources":["cable-subscription-pool.js"],"names":[],"mappings":"AAUA,2DAA2D;AAC3D;IAGI,4BAA4B;IAC5B,yBAA8B;IAC9B,mBAAsB;IAGxB,eAAe;IACf,qCAoBC;IAfC,kBAaC;IAIH;;;;;OAKG;IACH,4BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED,2BAA2B;IAC3B,yCAyCC;IAED,mBAAmB;IACnB,uBAA2C;IAE3C,mBAAmB;IACnB,wBAMC;IAED,sBAAsB;IACtB,2BAGC;IAED,kBAAkB;IAClB,aAAc,YAAO,UAqDpB;IAED,oBAAoB;IACpB,yBAEC;IAED,kBAAkB;IAClB,uBAGC;IAED,sBAAsB;IACtB,6BADc,IAAI,CAOjB;IAED,sBAAsB;IACtB,sBADc,IAAI,CAIjB;IAED;;;OAGG;IACH,yBAHW,KAAK,GACH,IAAI,CAKhB;IAED,qBAAqB;IACrB,sBAUC;IAED,6BAA6B;IAC7B,gDA+BC;IA9BC,mBAAkC;IAgCpC,4CAA4C;IAC5C,8DAWC;CACF"}
@@ -97,12 +97,14 @@ export default class ApiMakerCableSubscriptionPool {
97
97
  isConnected = () => digg(this, "connected");
98
98
  /** onConnected. */
99
99
  onConnected = () => {
100
+ this.connected = true;
100
101
  this.forEachSubscription(({ subscription }) => {
101
102
  subscription.events.emit("connected");
102
103
  });
103
104
  };
104
105
  /** onDisconnected. */
105
106
  onDisconnected = () => {
107
+ this.connected = false;
106
108
  this.rejectAuthRefresh(new Error("Subscription auth refresh was interrupted by a disconnect"));
107
109
  };
108
110
  /** onReceived. */
@@ -164,6 +166,7 @@ export default class ApiMakerCableSubscriptionPool {
164
166
  };
165
167
  /** onRejected. */
166
168
  onRejected = () => {
169
+ this.connected = false;
167
170
  this.rejectAuthRefresh(new Error("Subscription auth refresh was rejected"));
168
171
  };
169
172
  /** @returns {void} */
@@ -237,4 +240,4 @@ export default class ApiMakerCableSubscriptionPool {
237
240
  });
238
241
  }
239
242
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtc3Vic2NyaXB0aW9uLXBvb2wuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDakYsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUEsQ0FBQyxtQ0FBbUM7QUFFcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQyxDQUFBO0FBQ3JFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFBO0FBRXBDLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLDZCQUE2QjtJQUNoRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDeEIsQ0FBQztJQUVELGVBQWU7SUFDZixPQUFPLENBQUUsZ0JBQWdCO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQTtRQUUzRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsdUJBQXVCLEVBQUUsRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUVqRSxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FD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QUM7SUFDSCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLG9DQUFvQyxDQUFFLFlBQVk7UUFDaEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDJDQUEyQyxFQUFFLEVBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWpGLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUE7UUFFN0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUNuRCxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUE7WUFFMUMsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgQ29tbWFuZHNQb29sIGZyb20gXCIuL2NvbW1hbmRzLXBvb2wuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIlxuaW1wb3J0IGdldENoYW5uZWxzQ29uc3VtZXIgZnJvbSBcIi4vY2hhbm5lbHMtY29uc3VtZXIuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQ2FibGVTdWJzY3JpcHRpb25Qb29sXCJ9KVxuY29uc3QgQVVUSF9SRUZSRVNIX1RJTUVPVVRfTVMgPSA1MDAwXG5cbi8qKiBTdWJzY3JpcHRpb24gcG9vbCBmb3Igc2hhcmluZyBjaGFubmVsIHN1YnNjcmlwdGlvbnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlU3Vic2NyaXB0aW9uUG9vbCB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyA9IDBcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzID0ge31cbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gIH1cblxuICAvKiogY29ubmVjdC4gKi9cbiAgY29ubmVjdCAoc3Vic2NyaXB0aW9uRGF0YSkge1xuICAgIGNvbnN0IGdsb2JhbERhdGEgPSBDb21tYW5kc1Bvb2wuY3VycmVudCgpLmdsb2JhbFJlcXVlc3REYXRhXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wiQ3JlYXRpbmcgc3Vic2NyaXB0aW9uXCIsIHtzdWJzY3JpcHRpb25EYXRhfV0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGdldENoYW5uZWxzQ29uc3VtZXIoKS5zdWJzY3JpcHRpb25zLmNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAgY2hhbm5lbDogXCJBcGlNYWtlcjo6U3Vic2NyaXB0aW9uc0NoYW5uZWxcIixcbiAgICAgICAgZ2xvYmFsOiBnbG9iYWxEYXRhLFxuICAgICAgICBzdWJzY3JpcHRpb25fZGF0YTogc3Vic2NyaXB0aW9uRGF0YVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdGVkOiB0aGlzLm9uQ29ubmVjdGVkLFxuICAgICAgICBkaXNjb25uZWN0ZWQ6IHRoaXMub25EaXNjb25uZWN0ZWQsXG4gICAgICAgIHJlY2VpdmVkOiB0aGlzLm9uUmVjZWl2ZWQsXG4gICAgICAgIHJlamVjdGVkOiB0aGlzLm9uUmVqZWN0ZWQsXG4gICAgICAgIHN1YnNjcmliZWQ6IHRoaXMub25TdWJzY3JpYmVkXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBhdXRoIGZvciB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIHdpdGhvdXQgcmVjcmVhdGluZyB0aGUgcG9vbC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgcmVmcmVzaEF1dGhlbnRpY2F0aW9uIChhcmdzKSB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3RlZCB8fCAhdGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2VcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlc29sdmUgPSByZXNvbHZlXG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlamVjdCA9IHJlamVjdFxuICAgICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHRpbWVkIG91dFwiKSlcbiAgICAgIH0sIEFVVEhfUkVGUkVTSF9USU1FT1VUX01TKVxuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5wZXJmb3JtKFwicmVmcmVzaF9hdXRoXCIsIGFyZ3MpXG5cbiAgICByZXR1cm4gdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy5wcm9taXNlXG4gIH1cblxuICAvKiogZm9yRWFjaFN1YnNjcmlwdGlvbi4gKi9cbiAgZm9yRWFjaFN1YnNjcmlwdGlvbiAoY2FsbGJhY2spIHtcbiAgICBjb25zdCBtb2RlbElkTW9kZXMgPSBbXCJkZXN0cm95c1wiLCBcInVwZGF0ZXNcIl1cbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gZGlnZyh0aGlzLCBcInN1YnNjcmlwdGlvbnNcIilcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWxJZE1vZGUgb2YgbW9kZWxJZE1vZGVzKSB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV1bbW9kZWxJZE1vZGVdKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV1bbW9kZWxJZF0pIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soe21vZGU6IG1vZGVsSWRNb2RlLCBtb2RlbElkLCBtb2RlbE5hbWUsIHN1YnNjcmlwdGlvbn0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICAgIGNhbGxiYWNrKHttb2RlOiBcImNyZWF0ZXNcIiwgbW9kZWxOYW1lLCBzdWJzY3JpcHRpb259KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0ubW9kZWxfY2xhc3NfZXZlbnRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXZlbnROYW1lIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5tb2RlbF9jbGFzc19ldmVudHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0ubW9kZWxfY2xhc3NfZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHtldmVudE5hbWUsIG1vZGU6IFwibW9kZWxfY2xhc3NfZXZlbnRzXCIsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGV2ZW50TmFtZSBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW21vZGVsSWRdKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWRlcHRoXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW21vZGVsSWRdW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soe2V2ZW50TmFtZSwgbW9kZTogXCJ1cGRhdGVzXCIsIG1vZGVsSWQsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogaXNDb25uZWN0ZWQuICovXG4gIGlzQ29ubmVjdGVkID0gKCkgPT4gZGlnZyh0aGlzLCBcImNvbm5lY3RlZFwiKVxuXG4gIC8qKiBvbkNvbm5lY3RlZC4gKi9cbiAgb25Db25uZWN0ZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5mb3JFYWNoU3Vic2NyaXB0aW9uKCh7c3Vic2NyaXB0aW9ufSkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwiY29ubmVjdGVkXCIpXG4gICAgfSlcbiAgfVxuXG4gIC8qKiBvbkRpc2Nvbm5lY3RlZC4gKi9cbiAgb25EaXNjb25uZWN0ZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHdhcyBpbnRlcnJ1cHRlZCBieSBhIGRpc2Nvbm5lY3RcIikpXG4gIH1cblxuICAvKiogb25SZWNlaXZlZC4gKi9cbiAgb25SZWNlaXZlZCA9IChyYXdEYXRhKSA9PiB7XG4gICAgaWYgKHJhd0RhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9zdWJzY3JpcHRpb25fYXV0aF9yZWZyZXNoZWRcIikge1xuICAgICAgdGhpcy5yZXNvbHZlQXV0aFJlZnJlc2goKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHJhd0RhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9zdWJzY3JpcHRpb25fYXV0aF9yZWZyZXNoX2Vycm9yXCIpIHtcbiAgICAgIHRoaXMucmVqZWN0QXV0aFJlZnJlc2gobmV3IEVycm9yKHJhd0RhdGEuZXJyb3I/Lm1lc3NhZ2UgfHwgXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIGZhaWxlZFwiKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBEZXNlcmlhbGl6ZXIucGFyc2UocmF3RGF0YSlcbiAgICBjb25zdCB7YTogYXJncywgZTogZXZlbnROYW1lLCBtOiBtb2RlbCwgbWk6IG1vZGVsSWQsIG10OiBtb2RlbFR5cGUsIHQ6IHR5cGV9ID0gZGF0YVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBkaWdnKHRoaXMsIFwic3Vic2NyaXB0aW9uc1wiKVxuXG4gICAgbGV0IG1vZGVsTmFtZVxuXG4gICAgLy8gVGhpcyBpcyBtb3JlIGVmZmVjdGl2ZSBpZiBpdCBpcyBhbiBvcHRpb25cbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIG1vZGVsTmFtZSA9IGRpZ2cobW9kZWwubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGVsTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoaW5mbGVjdGlvbi5zaW5ndWxhcml6ZShtb2RlbFR5cGUpKVxuICAgIH1cblxuICAgIGlmICh0eXBlID09IFwidVwiKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlc1ttb2RlbElkXSkge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7bW9kZWx9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcImNcIikge1xuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkXCIpIHtcbiAgICAgIGNvbnN0IGRlc3Ryb3lTdWJzY3JpcHRpb25zID0gZGlnZyhzdWJzY3JpcHRpb25zLCBtb2RlbE5hbWUsIFwiZGVzdHJveXNcIiwgbW9kZWxJZClcblxuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgZGVzdHJveVN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJlXCIpIHtcbiAgICAgIGNvbnN0IGV2ZW50U3Vic2NyaXB0aW9ucyA9IGRpZ2coc3Vic2NyaXB0aW9ucywgbW9kZWxOYW1lLCBcImV2ZW50c1wiLCBldmVudE5hbWUsIG1vZGVsSWQpXG5cbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIGV2ZW50U3Vic2NyaXB0aW9ucykge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7YXJncywgZXZlbnROYW1lLCBtb2RlbH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwibWNlXCIpIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NFdmVudFN1YnNjcmlwdGlvbnMgPSBkaWdnKHN1YnNjcmlwdGlvbnMsIG1vZGVsTmFtZSwgXCJtb2RlbF9jbGFzc19ldmVudHNcIiwgZXZlbnROYW1lKVxuXG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBtb2RlbENsYXNzRXZlbnRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuZW1pdChcInJlY2VpdmVkXCIsIHthcmdzLCBldmVudE5hbWV9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZTogJHtkYXRhLnR5cGV9YClcbiAgICB9XG4gIH1cblxuICAvKiogb25TdWJzY3JpYmVkLiAqL1xuICBvblN1YnNjcmliZWQgPSAoKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKFwib25TdWJzY3JpYmVkXCIpXG4gIH1cblxuICAvKiogb25SZWplY3RlZC4gKi9cbiAgb25SZWplY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLnJlamVjdEF1dGhSZWZyZXNoKG5ldyBFcnJvcihcIlN1YnNjcmlwdGlvbiBhdXRoIHJlZnJlc2ggd2FzIHJlamVjdGVkXCIpKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHt2b2lkfSAqL1xuICBjbGVhckF1dGhSZWZyZXNoQ2FsbGJhY2tzICgpIHtcbiAgICBpZiAodGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnRpbWVvdXRJZClcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzID0ge31cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgcmVzb2x2ZUF1dGhSZWZyZXNoICgpIHtcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlc29sdmU/LigpXG4gICAgdGhpcy5jbGVhckF1dGhSZWZyZXNoQ2FsbGJhY2tzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHJlamVjdEF1dGhSZWZyZXNoIChlcnJvcikge1xuICAgIHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MucmVqZWN0Py4oZXJyb3IpXG4gICAgdGhpcy5jbGVhckF1dGhSZWZyZXNoQ2FsbGJhY2tzKClcbiAgfVxuXG4gIC8qKiBvblVuc3Vic2NyaWJlLiAqL1xuICBvblVuc3Vic2NyaWJlICgpIHtcbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gYGFjdGl2ZVN1YnNjcmlwdGlvbnMgYmVmb3JlIHVuc3ViOiAke3RoaXMuYWN0aXZlU3Vic2NyaXB0aW9uc31gKVxuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyAtPSAxXG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBhY3RpdmVTdWJzY3JpcHRpb25zIGFmdGVyIHVuc3ViOiAke3RoaXMuYWN0aXZlU3Vic2NyaXB0aW9uc31gKVxuXG4gICAgaWYgKHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyA8PSAwKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXCJVbnN1YnNjcmliZSBmcm9tIEFjdGlvbkNhYmxlIHN1YnNjcmlwdGlvblwiKVxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgICAgdGhpcy5jb25uZWN0ZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIC8qKiByZWdpc3RlclN1YnNjcmlwdGlvbnMuICovXG4gIHJlZ2lzdGVyU3Vic2NyaXB0aW9ucyAoc3Vic2NyaXB0aW9ucykge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHN1YnNjcmlwdGlvbnNcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBbXCJyZWdpc3RlclN1YnNjcmlwdGlvbnNcIiwge3N1YnNjcmlwdGlvbnN9XSlcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICAgIHRoaXMuY29ubmVjdFVuc3Vic2NyaXB0aW9uRm9yU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50cykge1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50TmFtZSBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHNbZXZlbnROYW1lXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1kZXB0aFxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50c1tldmVudE5hbWVdW21vZGVsSWRdKSB7XG4gICAgICAgICAgICAgIHRoaXMuY29ubmVjdFVuc3Vic2NyaXB0aW9uRm9yU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS51cGRhdGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgbW9kZWxJZCBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlcykge1xuICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS51cGRhdGVzW21vZGVsSWRdKSB7XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIGNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbi4gKi9cbiAgY29ubmVjdFVuc3Vic2NyaXB0aW9uRm9yU3Vic2NyaXB0aW9uIChzdWJzY3JpcHRpb24pIHtcbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wiQ29ubmVjdGluZyB0byB1bnN1YnNjcmliZSBvbiBzdWJzY3JpcHRpb25cIiwge3N1YnNjcmlwdGlvbn1dKVxuXG4gICAgdGhpcy5hY3RpdmVTdWJzY3JpcHRpb25zICs9IDFcblxuICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuYWRkTGlzdGVuZXIoXCJ1bnN1YnNjcmliZWRcIiwgKCkgPT4ge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiQ2FsbCBvblVuc3Vic2NyaWJlIG9uIHNlbGZcIilcblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdGhpcy5vblVuc3Vic2NyaWJlKHN1YnNjcmlwdGlvbilcbiAgICB9KVxuICB9XG59XG4iXX0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FibGUtc3Vic2NyaXB0aW9uLXBvb2wuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNhYmxlLXN1YnNjcmlwdGlvbi1wb29sLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDakYsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUE7QUFDNUMsT0FBTyxtQkFBbUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUEsQ0FBQyxtQ0FBbUM7QUFFcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQyxDQUFBO0FBQ3JFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFBO0FBRXBDLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLDZCQUE2QjtJQUNoRCxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDeEIsQ0FBQztJQUVELGVBQWU7SUFDZixPQUFPLENBQUUsZ0JBQWdCO1FBQ3ZCLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQTtRQUUzRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsdUJBQXVCLEVBQUUsRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUVqRSxJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FD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QUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JFLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxZQUFZLENBQUMsQ0FBQTtvQkFDekQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLG9DQUFvQyxDQUFFLFlBQVk7UUFDaEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDJDQUEyQyxFQUFFLEVBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWpGLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUE7UUFFN0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUNuRCxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUE7WUFFMUMsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgQ29tbWFuZHNQb29sIGZyb20gXCIuL2NvbW1hbmRzLXBvb2wuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIlxuaW1wb3J0IGdldENoYW5uZWxzQ29uc3VtZXIgZnJvbSBcIi4vY2hhbm5lbHMtY29uc3VtZXIuanNcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gQ2FibGVTdWJzY3JpcHRpb25Qb29sXCJ9KVxuY29uc3QgQVVUSF9SRUZSRVNIX1RJTUVPVVRfTVMgPSA1MDAwXG5cbi8qKiBTdWJzY3JpcHRpb24gcG9vbCBmb3Igc2hhcmluZyBjaGFubmVsIHN1YnNjcmlwdGlvbnMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhYmxlU3Vic2NyaXB0aW9uUG9vbCB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyA9IDBcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzID0ge31cbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gIH1cblxuICAvKiogY29ubmVjdC4gKi9cbiAgY29ubmVjdCAoc3Vic2NyaXB0aW9uRGF0YSkge1xuICAgIGNvbnN0IGdsb2JhbERhdGEgPSBDb21tYW5kc1Bvb2wuY3VycmVudCgpLmdsb2JhbFJlcXVlc3REYXRhXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wiQ3JlYXRpbmcgc3Vic2NyaXB0aW9uXCIsIHtzdWJzY3JpcHRpb25EYXRhfV0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGdldENoYW5uZWxzQ29uc3VtZXIoKS5zdWJzY3JpcHRpb25zLmNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAgY2hhbm5lbDogXCJBcGlNYWtlcjo6U3Vic2NyaXB0aW9uc0NoYW5uZWxcIixcbiAgICAgICAgZ2xvYmFsOiBnbG9iYWxEYXRhLFxuICAgICAgICBzdWJzY3JpcHRpb25fZGF0YTogc3Vic2NyaXB0aW9uRGF0YVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdGVkOiB0aGlzLm9uQ29ubmVjdGVkLFxuICAgICAgICBkaXNjb25uZWN0ZWQ6IHRoaXMub25EaXNjb25uZWN0ZWQsXG4gICAgICAgIHJlY2VpdmVkOiB0aGlzLm9uUmVjZWl2ZWQsXG4gICAgICAgIHJlamVjdGVkOiB0aGlzLm9uUmVqZWN0ZWQsXG4gICAgICAgIHN1YnNjcmliZWQ6IHRoaXMub25TdWJzY3JpYmVkXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBhdXRoIGZvciB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uIHdpdGhvdXQgcmVjcmVhdGluZyB0aGUgcG9vbC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgcmVmcmVzaEF1dGhlbnRpY2F0aW9uIChhcmdzKSB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3RlZCB8fCAhdGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2VcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlc29sdmUgPSByZXNvbHZlXG4gICAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlamVjdCA9IHJlamVjdFxuICAgICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHRpbWVkIG91dFwiKSlcbiAgICAgIH0sIEFVVEhfUkVGUkVTSF9USU1FT1VUX01TKVxuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5wZXJmb3JtKFwicmVmcmVzaF9hdXRoXCIsIGFyZ3MpXG5cbiAgICByZXR1cm4gdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy5wcm9taXNlXG4gIH1cblxuICAvKiogZm9yRWFjaFN1YnNjcmlwdGlvbi4gKi9cbiAgZm9yRWFjaFN1YnNjcmlwdGlvbiAoY2FsbGJhY2spIHtcbiAgICBjb25zdCBtb2RlbElkTW9kZXMgPSBbXCJkZXN0cm95c1wiLCBcInVwZGF0ZXNcIl1cbiAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gZGlnZyh0aGlzLCBcInN1YnNjcmlwdGlvbnNcIilcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWxJZE1vZGUgb2YgbW9kZWxJZE1vZGVzKSB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV1bbW9kZWxJZE1vZGVdKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXVttb2RlbElkTW9kZV1bbW9kZWxJZF0pIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soe21vZGU6IG1vZGVsSWRNb2RlLCBtb2RlbElkLCBtb2RlbE5hbWUsIHN1YnNjcmlwdGlvbn0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uY3JlYXRlcykge1xuICAgICAgICAgIGNhbGxiYWNrKHttb2RlOiBcImNyZWF0ZXNcIiwgbW9kZWxOYW1lLCBzdWJzY3JpcHRpb259KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0ubW9kZWxfY2xhc3NfZXZlbnRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXZlbnROYW1lIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5tb2RlbF9jbGFzc19ldmVudHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0ubW9kZWxfY2xhc3NfZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHtldmVudE5hbWUsIG1vZGU6IFwibW9kZWxfY2xhc3NfZXZlbnRzXCIsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBtb2RlbElkIGluIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGV2ZW50TmFtZSBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW21vZGVsSWRdKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWRlcHRoXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW21vZGVsSWRdW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soe2V2ZW50TmFtZSwgbW9kZTogXCJ1cGRhdGVzXCIsIG1vZGVsSWQsIG1vZGVsTmFtZSwgc3Vic2NyaXB0aW9ufSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogaXNDb25uZWN0ZWQuICovXG4gIGlzQ29ubmVjdGVkID0gKCkgPT4gZGlnZyh0aGlzLCBcImNvbm5lY3RlZFwiKVxuXG4gIC8qKiBvbkNvbm5lY3RlZC4gKi9cbiAgb25Db25uZWN0ZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5jb25uZWN0ZWQgPSB0cnVlXG5cbiAgICB0aGlzLmZvckVhY2hTdWJzY3JpcHRpb24oKHtzdWJzY3JpcHRpb259KSA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJjb25uZWN0ZWRcIilcbiAgICB9KVxuICB9XG5cbiAgLyoqIG9uRGlzY29ubmVjdGVkLiAqL1xuICBvbkRpc2Nvbm5lY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHdhcyBpbnRlcnJ1cHRlZCBieSBhIGRpc2Nvbm5lY3RcIikpXG4gIH1cblxuICAvKiogb25SZWNlaXZlZC4gKi9cbiAgb25SZWNlaXZlZCA9IChyYXdEYXRhKSA9PiB7XG4gICAgaWYgKHJhd0RhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9zdWJzY3JpcHRpb25fYXV0aF9yZWZyZXNoZWRcIikge1xuICAgICAgdGhpcy5yZXNvbHZlQXV0aFJlZnJlc2goKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHJhd0RhdGEudHlwZSA9PSBcImFwaV9tYWtlcl9zdWJzY3JpcHRpb25fYXV0aF9yZWZyZXNoX2Vycm9yXCIpIHtcbiAgICAgIHRoaXMucmVqZWN0QXV0aFJlZnJlc2gobmV3IEVycm9yKHJhd0RhdGEuZXJyb3I/Lm1lc3NhZ2UgfHwgXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIGZhaWxlZFwiKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBEZXNlcmlhbGl6ZXIucGFyc2UocmF3RGF0YSlcbiAgICBjb25zdCB7YTogYXJncywgZTogZXZlbnROYW1lLCBtOiBtb2RlbCwgbWk6IG1vZGVsSWQsIG10OiBtb2RlbFR5cGUsIHQ6IHR5cGV9ID0gZGF0YVxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBkaWdnKHRoaXMsIFwic3Vic2NyaXB0aW9uc1wiKVxuXG4gICAgbGV0IG1vZGVsTmFtZVxuXG4gICAgLy8gVGhpcyBpcyBtb3JlIGVmZmVjdGl2ZSBpZiBpdCBpcyBhbiBvcHRpb25cbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIG1vZGVsTmFtZSA9IGRpZ2cobW9kZWwubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGVsTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoaW5mbGVjdGlvbi5zaW5ndWxhcml6ZShtb2RlbFR5cGUpKVxuICAgIH1cblxuICAgIGlmICh0eXBlID09IFwidVwiKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlc1ttb2RlbElkXSkge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7bW9kZWx9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcImNcIikge1xuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkXCIpIHtcbiAgICAgIGNvbnN0IGRlc3Ryb3lTdWJzY3JpcHRpb25zID0gZGlnZyhzdWJzY3JpcHRpb25zLCBtb2RlbE5hbWUsIFwiZGVzdHJveXNcIiwgbW9kZWxJZClcblxuICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgZGVzdHJveVN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50cy5lbWl0KFwicmVjZWl2ZWRcIiwge21vZGVsfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJlXCIpIHtcbiAgICAgIGNvbnN0IGV2ZW50U3Vic2NyaXB0aW9ucyA9IGRpZ2coc3Vic2NyaXB0aW9ucywgbW9kZWxOYW1lLCBcImV2ZW50c1wiLCBldmVudE5hbWUsIG1vZGVsSWQpXG5cbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIGV2ZW50U3Vic2NyaXB0aW9ucykge1xuICAgICAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmVtaXQoXCJyZWNlaXZlZFwiLCB7YXJncywgZXZlbnROYW1lLCBtb2RlbH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwibWNlXCIpIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NFdmVudFN1YnNjcmlwdGlvbnMgPSBkaWdnKHN1YnNjcmlwdGlvbnMsIG1vZGVsTmFtZSwgXCJtb2RlbF9jbGFzc19ldmVudHNcIiwgZXZlbnROYW1lKVxuXG4gICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBtb2RlbENsYXNzRXZlbnRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudHMuZW1pdChcInJlY2VpdmVkXCIsIHthcmdzLCBldmVudE5hbWV9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZTogJHtkYXRhLnR5cGV9YClcbiAgICB9XG4gIH1cblxuICAvKiogb25TdWJzY3JpYmVkLiAqL1xuICBvblN1YnNjcmliZWQgPSAoKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKFwib25TdWJzY3JpYmVkXCIpXG4gIH1cblxuICAvKiogb25SZWplY3RlZC4gKi9cbiAgb25SZWplY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5yZWplY3RBdXRoUmVmcmVzaChuZXcgRXJyb3IoXCJTdWJzY3JpcHRpb24gYXV0aCByZWZyZXNoIHdhcyByZWplY3RlZFwiKSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcyAoKSB7XG4gICAgaWYgKHRoaXMuYXV0aFJlZnJlc2hDYWxsYmFja3MudGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy50aW1lb3V0SWQpXG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcyA9IHt9XG4gIH1cblxuICAvKiogQHJldHVybnMge3ZvaWR9ICovXG4gIHJlc29sdmVBdXRoUmVmcmVzaCAoKSB7XG4gICAgdGhpcy5hdXRoUmVmcmVzaENhbGxiYWNrcy5yZXNvbHZlPy4oKVxuICAgIHRoaXMuY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICByZWplY3RBdXRoUmVmcmVzaCAoZXJyb3IpIHtcbiAgICB0aGlzLmF1dGhSZWZyZXNoQ2FsbGJhY2tzLnJlamVjdD8uKGVycm9yKVxuICAgIHRoaXMuY2xlYXJBdXRoUmVmcmVzaENhbGxiYWNrcygpXG4gIH1cblxuICAvKiogb25VbnN1YnNjcmliZS4gKi9cbiAgb25VbnN1YnNjcmliZSAoKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBhY3RpdmVTdWJzY3JpcHRpb25zIGJlZm9yZSB1bnN1YjogJHt0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnN9YClcbiAgICB0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgLT0gMVxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgYWN0aXZlU3Vic2NyaXB0aW9ucyBhZnRlciB1bnN1YjogJHt0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnN9YClcblxuICAgIGlmICh0aGlzLmFjdGl2ZVN1YnNjcmlwdGlvbnMgPD0gMCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiVW5zdWJzY3JpYmUgZnJvbSBBY3Rpb25DYWJsZSBzdWJzY3JpcHRpb25cIilcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICAvKiogcmVnaXN0ZXJTdWJzY3JpcHRpb25zLiAqL1xuICByZWdpc3RlclN1YnNjcmlwdGlvbnMgKHN1YnNjcmlwdGlvbnMpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBzdWJzY3JpcHRpb25zXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gW1wicmVnaXN0ZXJTdWJzY3JpcHRpb25zXCIsIHtzdWJzY3JpcHRpb25zfV0pXG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsTmFtZSBpbiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmNyZWF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBldmVudE5hbWUgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLmV2ZW50cykge1xuICAgICAgICAgIGZvciAoY29uc3QgbW9kZWxJZCBpbiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0uZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnNbbW9kZWxOYW1lXS5ldmVudHNbZXZlbnROYW1lXVttb2RlbElkXSkge1xuICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlcykge1xuICAgICAgICBmb3IgKGNvbnN0IG1vZGVsSWQgaW4gc3Vic2NyaXB0aW9uc1ttb2RlbE5hbWVdLnVwZGF0ZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zW21vZGVsTmFtZV0udXBkYXRlc1ttb2RlbElkXSkge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBjb25uZWN0VW5zdWJzY3JpcHRpb25Gb3JTdWJzY3JpcHRpb24uICovXG4gIGNvbm5lY3RVbnN1YnNjcmlwdGlvbkZvclN1YnNjcmlwdGlvbiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IFtcIkNvbm5lY3RpbmcgdG8gdW5zdWJzY3JpYmUgb24gc3Vic2NyaXB0aW9uXCIsIHtzdWJzY3JpcHRpb259XSlcblxuICAgIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9ucyArPSAxXG5cbiAgICBzdWJzY3JpcHRpb24uZXZlbnRzLmFkZExpc3RlbmVyKFwidW5zdWJzY3JpYmVkXCIsICgpID0+IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIkNhbGwgb25VbnN1YnNjcmliZSBvbiBzZWxmXCIpXG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHRoaXMub25VbnN1YnNjcmliZShzdWJzY3JpcHRpb24pXG4gICAgfSlcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
3
  "type": "module",
4
- "version": "1.0.2144",
4
+ "version": "1.0.2146",
5
5
  "description": "My new module",
6
6
  "files": [
7
7
  "build/**"