@valtimo/sse 11.3.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -15,4 +15,4 @@
15
15
  */
16
16
  export * from './sse-bucket.model';
17
17
  export * from './sse-events.model';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3NzZS9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3NlLWJ1Y2tldC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NzZS1ldmVudHMubW9kZWwnO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3NzZS9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3NlLWJ1Y2tldC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NzZS1ldmVudHMubW9kZWwnO1xuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -45,4 +45,4 @@ export class SseEventSubscriptionBucket extends SseSubscriptionBucket {
45
45
  this.event = event;
46
46
  }
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLWJ1Y2tldC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9saWIvbW9kZWxzL3NzZS1idWNrZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBQ1csY0FBUyxHQUEwQixFQUFFLENBQUM7SUFzQmpELENBQUM7SUFwQkMsRUFBRSxDQUFDLFFBQTZCO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBNkI7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVE7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsbUNBQW1DO0FBQ25DLE1BQU0sT0FBTyxjQUFlLFNBQVEscUJBQStCO0NBQUc7QUFFdEUsZ0RBQWdEO0FBQ2hELE1BQU0sT0FBTywwQkFBbUQsU0FBUSxxQkFBd0I7SUFHOUYsWUFBWSxLQUFhO1FBQ3ZCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gZ2VuZXJpYyBidWNrZXQgZm9yIGxpc3RlbmVycyBvZiBhbnkgdHlwZVxuaW1wb3J0IHtCYXNlU3NlRXZlbnQsIFNzZUVycm9yLCBTc2VFdmVudExpc3RlbmVyfSBmcm9tICcuL3NzZS1ldmVudHMubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgU3NlU3Vic2NyaXB0aW9uQnVja2V0PFQ+IHtcbiAgcmVhZG9ubHkgbGlzdGVuZXJzOiBTc2VFdmVudExpc3RlbmVyPFQ+W10gPSBbXTtcblxuICBvbihsaXN0ZW5lcjogU3NlRXZlbnRMaXN0ZW5lcjxUPikge1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICB9XG5cbiAgb2ZmKGxpc3RlbmVyOiBTc2VFdmVudExpc3RlbmVyPFQ+KSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5saXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBvZmZBbGwoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMubGVuZ3RoID0gMDtcbiAgfVxuXG4gIHNlbmRFdmVudChldmVudDogVCkge1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4ge1xuICAgICAgbGlzdGVuZXIoZXZlbnQpO1xuICAgIH0pO1xuICB9XG59XG5cbi8vIGVycm9yIGJ1Y2tldCBmb3IgZXJyb3IgbGlzdGVuZXJzXG5leHBvcnQgY2xhc3MgU3NlRXJyb3JCdWNrZXQgZXh0ZW5kcyBTc2VTdWJzY3JpcHRpb25CdWNrZXQ8U3NlRXJyb3I+IHt9XG5cbi8vIGltcGxpY2l0IHR5cGUgYnVja2V0IHdpdGggZXZlbnQgZm9yIGZpbHRlcmluZ1xuZXhwb3J0IGNsYXNzIFNzZUV2ZW50U3Vic2NyaXB0aW9uQnVja2V0PFQgZXh0ZW5kcyBCYXNlU3NlRXZlbnQ+IGV4dGVuZHMgU3NlU3Vic2NyaXB0aW9uQnVja2V0PFQ+IHtcbiAgcmVhZG9ubHkgZXZlbnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihldmVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV2ZW50ID0gZXZlbnQ7XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLWJ1Y2tldC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9saWIvbW9kZWxzL3NzZS1idWNrZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBQ1csY0FBUyxHQUEwQixFQUFFLENBQUM7SUFzQmpELENBQUM7SUFwQkMsRUFBRSxDQUFDLFFBQTZCO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBNkI7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFRO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELG1DQUFtQztBQUNuQyxNQUFNLE9BQU8sY0FBZSxTQUFRLHFCQUErQjtDQUFHO0FBRXRFLGdEQUFnRDtBQUNoRCxNQUFNLE9BQU8sMEJBQW1ELFNBQVEscUJBQXdCO0lBRzlGLFlBQVksS0FBYTtRQUN2QixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIGdlbmVyaWMgYnVja2V0IGZvciBsaXN0ZW5lcnMgb2YgYW55IHR5cGVcbmltcG9ydCB7QmFzZVNzZUV2ZW50LCBTc2VFcnJvciwgU3NlRXZlbnRMaXN0ZW5lcn0gZnJvbSAnLi9zc2UtZXZlbnRzLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFNzZVN1YnNjcmlwdGlvbkJ1Y2tldDxUPiB7XG4gIHJlYWRvbmx5IGxpc3RlbmVyczogU3NlRXZlbnRMaXN0ZW5lcjxUPltdID0gW107XG5cbiAgb24obGlzdGVuZXI6IFNzZUV2ZW50TGlzdGVuZXI8VD4pIHtcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgfVxuXG4gIG9mZihsaXN0ZW5lcjogU3NlRXZlbnRMaXN0ZW5lcjxUPikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5saXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMubGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgb2ZmQWxsKCkge1xuICAgIHRoaXMubGlzdGVuZXJzLmxlbmd0aCA9IDA7XG4gIH1cblxuICBzZW5kRXZlbnQoZXZlbnQ6IFQpIHtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGxpc3RlbmVyID0+IHtcbiAgICAgIGxpc3RlbmVyKGV2ZW50KTtcbiAgICB9KTtcbiAgfVxufVxuXG4vLyBlcnJvciBidWNrZXQgZm9yIGVycm9yIGxpc3RlbmVyc1xuZXhwb3J0IGNsYXNzIFNzZUVycm9yQnVja2V0IGV4dGVuZHMgU3NlU3Vic2NyaXB0aW9uQnVja2V0PFNzZUVycm9yPiB7fVxuXG4vLyBpbXBsaWNpdCB0eXBlIGJ1Y2tldCB3aXRoIGV2ZW50IGZvciBmaWx0ZXJpbmdcbmV4cG9ydCBjbGFzcyBTc2VFdmVudFN1YnNjcmlwdGlvbkJ1Y2tldDxUIGV4dGVuZHMgQmFzZVNzZUV2ZW50PiBleHRlbmRzIFNzZVN1YnNjcmlwdGlvbkJ1Y2tldDxUPiB7XG4gIHJlYWRvbmx5IGV2ZW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZXZlbnQ6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5ldmVudCA9IGV2ZW50O1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLWV2ZW50cy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9saWIvbW9kZWxzL3NzZS1ldmVudHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG50eXBlIFNzZUV2ZW50VHlwZSA9XG4gIHwgJ0NBU0VfQ1JFQVRFRCdcbiAgfCAnVEFTS19VUERBVEUnXG4gIHwgJ1BST0NFU1NfRU5EJ1xuICB8ICdDQVNFX0FTU0lHTkVEJ1xuICB8ICdDQVNFX1VOQVNTSUdORUQnXG4gIHwgJ0VTVEFCTElTSEVEX0NPTk5FQ1RJT04nO1xuXG50eXBlIFNzZUV2ZW50TGlzdGVuZXI8VD4gPSAoZXZlbnQ6IFQpID0+IHZvaWQ7XG5cbi8vIGJhc2UgZXZlbnQgY29udGFpbmluZyB0aGUgZXZlbnQgdHlwZVxuaW50ZXJmYWNlIEJhc2VTc2VFdmVudCB7XG4gIGV2ZW50VHlwZT86IFNzZUV2ZW50VHlwZTtcbiAgcHJvY2Vzc0luc3RhbmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8vIGV2ZW50IGltcGxlbWVudGF0aW9ucyBmb3IganNvbiBtYXBwaW5nIG9iamVjdHMgaW46XG5pbnRlcmZhY2UgVGFza1VwZGF0ZVNzZUV2ZW50IGV4dGVuZHMgQmFzZVNzZUV2ZW50IHtcbiAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEVzdGFibGlzaGVkQ29ubmVjdGlvblNzZUV2ZW50IGV4dGVuZHMgQmFzZVNzZUV2ZW50IHtcbiAgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNzZUVycm9yIHtcbiAgc3RhdGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkYXRhPzogYW55O1xufVxuXG5leHBvcnQge1xuICBTc2VFcnJvcixcbiAgRXN0YWJsaXNoZWRDb25uZWN0aW9uU3NlRXZlbnQsXG4gIFRhc2tVcGRhdGVTc2VFdmVudCxcbiAgQmFzZVNzZUV2ZW50LFxuICBTc2VFdmVudExpc3RlbmVyLFxuICBTc2VFdmVudFR5cGUsXG59O1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLWV2ZW50cy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9saWIvbW9kZWxzL3NzZS1ldmVudHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG50eXBlIFNzZUV2ZW50VHlwZSA9XG4gIHwgJ0NBU0VfQ1JFQVRFRCdcbiAgfCAnVEFTS19VUERBVEUnXG4gIHwgJ1BST0NFU1NfRU5EJ1xuICB8ICdDQVNFX0FTU0lHTkVEJ1xuICB8ICdDQVNFX1VOQVNTSUdORUQnXG4gIHwgJ0VTVEFCTElTSEVEX0NPTk5FQ1RJT04nO1xuXG50eXBlIFNzZUV2ZW50TGlzdGVuZXI8VD4gPSAoZXZlbnQ6IFQpID0+IHZvaWQ7XG5cbi8vIGJhc2UgZXZlbnQgY29udGFpbmluZyB0aGUgZXZlbnQgdHlwZVxuaW50ZXJmYWNlIEJhc2VTc2VFdmVudCB7XG4gIGV2ZW50VHlwZT86IFNzZUV2ZW50VHlwZTtcbiAgcHJvY2Vzc0luc3RhbmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8vIGV2ZW50IGltcGxlbWVudGF0aW9ucyBmb3IganNvbiBtYXBwaW5nIG9iamVjdHMgaW46XG5pbnRlcmZhY2UgVGFza1VwZGF0ZVNzZUV2ZW50IGV4dGVuZHMgQmFzZVNzZUV2ZW50IHtcbiAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEVzdGFibGlzaGVkQ29ubmVjdGlvblNzZUV2ZW50IGV4dGVuZHMgQmFzZVNzZUV2ZW50IHtcbiAgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNzZUVycm9yIHtcbiAgc3RhdGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkYXRhPzogYW55O1xufVxuXG5leHBvcnQge1xuICBTc2VFcnJvcixcbiAgRXN0YWJsaXNoZWRDb25uZWN0aW9uU3NlRXZlbnQsXG4gIFRhc2tVcGRhdGVTc2VFdmVudCxcbiAgQmFzZVNzZUV2ZW50LFxuICBTc2VFdmVudExpc3RlbmVyLFxuICBTc2VFdmVudFR5cGUsXG59O1xuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export * from './sse.service';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3NzZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NzZS5zZXJ2aWNlJztcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3NzZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NzZS5zZXJ2aWNlJztcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -165,7 +165,7 @@ export class SseService {
165
165
  };
166
166
  eventSource.onmessage = event => {
167
167
  observer.next({
168
- ...event,
168
+ ...event, // forward event object but replace data field
169
169
  data: JSON.parse(event.data), // parse JSON string to JSON object
170
170
  });
171
171
  };
@@ -226,13 +226,13 @@ export class SseService {
226
226
  data,
227
227
  });
228
228
  }
229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseService, deps: [{ token: i1.ConfigService }, { token: i2.NGXLogger }], target: i0.ɵɵFactoryTarget.Injectable }); }
230
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseService, providedIn: 'root' }); }
229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseService, deps: [{ token: i1.ConfigService }, { token: i2.NGXLogger }], target: i0.ɵɵFactoryTarget.Injectable }); }
230
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseService, providedIn: 'root' }); }
231
231
  }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseService, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseService, decorators: [{
233
233
  type: Injectable,
234
234
  args: [{
235
235
  providedIn: 'root',
236
236
  }]
237
- }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.NGXLogger }]; } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3NzZS9zcmMvbGliL3NlcnZpY2VzL3NzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFRL0QsT0FBTyxFQUNMLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIscUJBQXFCLEdBQ3RCLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFHcEM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFJSCxNQUFNLE9BQU8sVUFBVTthQUNHLGdDQUEyQixHQUFHLENBQUMsQ0FBQyxBQUFMLENBQU07YUFDakMsa0JBQWEsR0FBRyxDQUFDLEFBQUosQ0FBSzthQUNsQixlQUFVLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFDZixpQkFBWSxHQUFHLENBQUMsQUFBSixDQUFLO2FBQ2pCLGNBQVMsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQWtCdkMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsWUFDbUIsYUFBNEIsRUFDNUIsTUFBaUI7UUFEakIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQXJCNUIsb0JBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyw0RUFBNEU7UUFDakcsMkJBQXNCLEdBQWtCLElBQUksQ0FBQztRQUM3QywwQkFBcUIsR0FBaUIsSUFBSSxDQUFDO1FBQzNDLG9DQUEr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LENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBUztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsT0FBTztZQUNQLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTdOVSxVQUFVO21IQUFWLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEJhc2VTc2VFdmVudCxcbiAgRXN0YWJsaXNoZWRDb25uZWN0aW9uU3NlRXZlbnQsXG4gIFNzZUV2ZW50TGlzdGVuZXIsXG4gIFNzZUV2ZW50VHlwZSxcbn0gZnJvbSAnLi4vbW9kZWxzL3NzZS1ldmVudHMubW9kZWwnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtcbiAgU3NlRXJyb3JCdWNrZXQsXG4gIFNzZUV2ZW50U3Vic2NyaXB0aW9uQnVja2V0LFxuICBTc2VTdWJzY3JpcHRpb25CdWNrZXQsXG59IGZyb20gJy4uL21vZGVscy9zc2UtYnVja2V0Lm1vZGVsJztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcblxuLyoqXG4gKiBTZXJ2ZXItc2lkZSBldmVudHMgc2VydmljZSwgZm9yIGNvbm5lY3RpbmcgYW5kIHJlY29ubmVjdGluZyB0byBTU0UsXG4gKiBhbmQgYSB0cmFuc2xhdGlvbiBsYXllciBiZXR3ZWVuIFNTRSBqc29uIHN0cmluZyBkYXRhIGFuZCBUUyB0eXBlZCBldmVudHMuXG4gKlxuICogVGhlIHNlcnZpY2UgaXMgYWx3YXlzIHByZXNlbnQsIGFuZCBzbyBldmVudHMgY2FuIGJlIHJlZ2lzdGVyZWQgd2l0aCB7QGxpbmsgb25NZXNzYWdlfSBhbmQge0BsaW5rIG9uRXZlbnR9LFxuICogYW5kIHdpbGwgbm90IGJlIGxvc3Qgb24gZGlzY29ubmVjdCBvciByZWNvbm5lY3Qgb2YgdGhlIFNTRSBjb25uZWN0aW9uIGl0c2VsZi5cbiAqIEl0IGlzIGV4cGVjdGVkIHRvIGFsc28gdW5yZWdpc3RlciBldmVudHMgdXNpbmcgdGhlIG9mZi1tZXRob2QgdmFyaWFudHMgb2YgdGhlIG9uLW1ldGhvZCBsaXN0ZW5lcnMuXG4gKlxuICogVG8gZW5zdXJlIG1lc3NhZ2VzIGFyZSByZWNlaXZlZCB0aGUgY29ubmVjdGlvbiBtdXN0IGJlIGV4cGxpY2l0bHkgb3BlbmVkIHdpdGgge0BsaW5rIGNvbm5lY3R9LFxuICogbGlrZXdpc2UgdGhlIGNvbm5lY3Rpb24gc2hvdWxkIGFsc28gYmUgY2xvc2VkIHdpdGgge0BsaW5rIGRpc2Nvbm5lY3R9IHRvIHN0b3AgcmVjZWl2aW5nIG1lc3NhZ2VzLlxuICpcbiAqIFRoaXMgc2VydmljZSBjYW4gcmVjb25uZWN0IGl0c2VsZiB3aXRoIHRoZSBiYWNrZW5kLCBhbmQgbWlnaHQgdXNlIHRoZSB7QGxpbmsgc3Vic2NyaXB0aW9uSWR9IHRvIGFzayBmb3IgaXRzXG4gKiBwcmV2aW91cyBjb25uZWN0aW9uIHN0YXRlLiBUaGlzIHN0YXRlIGN1cnJlbnRseSBleGlzdHMgaW4gdGhlIGJhY2tlbmQgYXMgdGhlIFwiU3Vic2NyaWJlclwiIGNsYXNzLCBhbmQgbWlnaHRcbiAqIGhhdmUgYSBzdGF0ZSBjb250YWluaW5nIHF1ZXVlcyBvZiBpdGVtcyB0aGF0IG5lZWQgdG8gYmUgc2VudCwgc28geW91IGNhbiByZWNvbm5lY3QgYW5kIHJlY2VpdmUgdGhlIHJlc3QuXG4gKlxuICogQXQgdGhpcyB0aW1lIG5vIHN0YXRlIGRhdGEgaXMga2VwdCwgc28gcmVjb25uZWN0aW9uIHdpdGhvdXQgYSBzdWJzY3JpcHRpb25JZCBkb2VzIG5vdCBnaXZlIGEgZGlmZmVyZW50IHJlc3VsdFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3NlU2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENPTk5FQ1RJT05fUkVUUklFU19FWENFRURFRCA9IC0xO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBOT1RfQ09OTkVDVEVEID0gMDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ09OTkVDVElORyA9IDE7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJFQ09OTkVDVElORyA9IDI7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENPTk5FQ1RFRCA9IDEwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgVkFMVElNT19FTkRQT0lOVF9VUkw6IHN0cmluZztcbiAgcHJpdmF0ZSBjb25uZWN0aW9uQ291bnQgPSAwOyAvLyBhbW91bnQgb2YgdGltZXMgd2UgaGF2ZSBjb25uZWN0ZWQgc2VxdWVudGlhbGx5LCBubyBjb25jdXJyZW50IGNvbm5lY3Rpb25zXG4gIHByaXZhdGUgZXN0YWJsaXNoZWREYXRhSGFuZGxlcj86IFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIHByaXZhdGUgZXN0YWJsaXNoZWRDb25uZWN0aW9uPzogRXZlbnRTb3VyY2UgPSBudWxsO1xuICBwcml2YXRlIGVzdGFibGlzaGVkQ29ubmVjdGlvbk9ic2VydmFibGU6IE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PEJhc2VTc2VFdmVudD4+ID0gbnVsbDtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25JZD86IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgc2VxdWVudGlhbENvbm5lY3Rpb25BdHRlbXB0RmFpbENvdW50ID0gMDtcblxuICBwcml2YXRlIGVycm9yQnVja2V0ID0gbmV3IFNzZUVycm9yQnVja2V0KCk7XG4gIHByaXZhdGUgYW55U3Vic2NyaWJlcnNCdWNrZXQgPSBuZXcgU3NlU3Vic2NyaXB0aW9uQnVja2V0PEJhc2VTc2VFdmVudD4oKTtcbiAgcHJpdmF0ZSBldmVudFN1YnNjcmliZXJzQnVja2V0czogU3NlRXZlbnRTdWJzY3JpcHRpb25CdWNrZXQ8QmFzZVNzZUV2ZW50PltdID0gW107XG5cbiAgcHJpdmF0ZSBzdGF0ZTogbnVtYmVyID0gU3NlU2VydmljZS5OT1RfQ09OTkVDVEVEO1xuXG4gIHByaXZhdGUgX3NzZU1lc3NhZ2VzJCA9IG5ldyBTdWJqZWN0PE1lc3NhZ2VFdmVudDxCYXNlU3NlRXZlbnQ+PigpO1xuXG4gIGdldCBzc2VNZXNzYWdlcyQoKTogT2JzZXJ2YWJsZTxNZXNzYWdlRXZlbnQ8QmFzZVNzZUV2ZW50Pj4ge1xuICAgIHJldHVybiB0aGlzLl9zc2VNZXNzYWdlcyQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIobWVzc2FnZSA9PiAhIW1lc3NhZ2UpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTkdYTG9nZ2VyXG4gICkge1xuICAgIHRoaXMuVkFMVElNT19FTkRQT0lOVF9VUkwgPSBjb25maWdTZXJ2aWNlLmNvbmZpZy52YWx0aW1vQXBpLmVuZHBvaW50VXJpO1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgZ2V0U3NlTWVzc2FnZXNPYnNlcnZhYmxlQnlFdmVudFR5cGUoXG4gICAgZXZlbnRUeXBlczogQXJyYXk8U3NlRXZlbnRUeXBlPlxuICApOiBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudDxCYXNlU3NlRXZlbnQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NzZU1lc3NhZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZmlsdGVyKG1lc3NhZ2UgPT4gISFtZXNzYWdlKSxcbiAgICAgIGZpbHRlcihtZXNzYWdlID0+IGV2ZW50VHlwZXMuaW5jbHVkZXMobWVzc2FnZT8uZGF0YT8uZXZlbnRUeXBlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHJlY2VpdmluZyBTU0UgZXZlbnRzXG4gICAqL1xuICBwcml2YXRlIGNvbm5lY3QoKSB7XG4gICAgdGhpcy5lbnN1cmVDb25uZWN0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIG9uTWVzc2FnZShsaXN0ZW5lcjogU3NlRXZlbnRMaXN0ZW5lcjxCYXNlU3NlRXZlbnQ+KSB7XG4gICAgdGhpcy5lbnN1cmVDb25uZWN0aW9uKCk7IC8vIGVuc3VyZSBjb25uZWN0aW9uXG4gICAgdGhpcy5hbnlTdWJzY3JpYmVyc0J1Y2tldC5vbihsaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIG9uRXZlbnQ8VCBleHRlbmRzIEJhc2VTc2VFdmVudD4oZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6IFNzZUV2ZW50TGlzdGVuZXI8VD4pIHtcbiAgICB0aGlzLmVuc3VyZUNvbm5lY3Rpb24oKTsgLy8gZW5zdXJlIGNvbm5lY3Rpb25cbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICB0aGlzLmV2ZW50U3Vic2NyaWJlcnNCdWNrZXRzLmZvckVhY2goYnVja2V0ID0+IHtcbiAgICAgIGlmIChidWNrZXQuZXZlbnQgPT09IGV2ZW50KSB7XG4gICAgICAgIGJ1Y2tldC5vbihsaXN0ZW5lcik7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIWZvdW5kKSB7XG4gICAgICBjb25zdCBidWNrZXQgPSBuZXcgU3NlRXZlbnRTdWJzY3JpcHRpb25CdWNrZXQoZXZlbnQpO1xuICAgICAgYnVja2V0Lm9uKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMuZXZlbnRTdWJzY3JpYmVyc0J1Y2tldHMucHVzaChidWNrZXQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgb2ZmTWVzc2FnZShsaXN0ZW5lcjogU3NlRXZlbnRMaXN0ZW5lcjxCYXNlU3NlRXZlbnQ+KSB7XG4gICAgdGhpcy5hbnlTdWJzY3JpYmVyc0J1Y2tldC5vZmYobGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBvZmZFdmVudChldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogU3NlRXZlbnRMaXN0ZW5lcjxhbnk+KSB7XG4gICAgdGhpcy5ldmVudFN1YnNjcmliZXJzQnVja2V0cy5mb3JFYWNoKGJ1Y2tldCA9PiB7XG4gICAgICBpZiAoYnVja2V0LmV2ZW50ID09PSBldmVudCkge1xuICAgICAgICBidWNrZXQub2ZmKGxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2ZmRXZlbnRzKHR5cGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmV2ZW50U3Vic2NyaWJlcnNCdWNrZXRzLmZvckVhY2goYnVja2V0ID0+IHtcbiAgICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IGJ1Y2tldC5ldmVudCkge1xuICAgICAgICBidWNrZXQub2ZmQWxsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9mZk1lc3NhZ2VzKCkge1xuICAgIHRoaXMuYW55U3Vic2NyaWJlcnNCdWNrZXQub2ZmQWxsKCk7XG4gIH1cblxuICBwcml2YXRlIG9mZkFsbCgpIHtcbiAgICB0aGlzLm9mZkV2ZW50cygpO1xuICAgIHRoaXMub2ZmTWVzc2FnZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzY29ubmVjdChrZWVwU3Vic2NyaXB0aW9uSWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuZGlzY29ubmVjdFdpdGgoU3NlU2VydmljZS5OT1RfQ09OTkVDVEVELCBrZWVwU3Vic2NyaXB0aW9uSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNjb25uZWN0V2l0aChzdGF0ZTogbnVtYmVyLCBrZWVwU3Vic2NyaXB0aW9uSWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICBpZiAodGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24/LnJlYWR5U3RhdGUgIT09IEV2ZW50U291cmNlLkNMT1NFRCkge1xuICAgICAgdGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24/LmNsb3NlKCk7XG4gICAgfVxuICAgIHRoaXMuZXN0YWJsaXNoZWREYXRhSGFuZGxlci51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uID0gbnVsbDtcbiAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbk9ic2VydmFibGUgPSBudWxsO1xuICAgIHRoaXMuZXN0YWJsaXNoZWREYXRhSGFuZGxlciA9IG51bGw7XG4gICAgaWYgKCFrZWVwU3Vic2NyaXB0aW9uSWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlQ29ubmVjdGlvbihyZXRyeTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uICE9PSBudWxsICYmIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uT2JzZXJ2YWJsZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uLnJlYWR5U3RhdGUgIT09IEV2ZW50U291cmNlLkNMT1NFRCkge1xuICAgICAgICByZXR1cm47IC8vIGZvdW5kXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXRlID09PSBTc2VTZXJ2aWNlLkNPTk5FQ1RJTkcgfHwgdGhpcy5zdGF0ZSA9PT0gU3NlU2VydmljZS5SRUNPTk5FQ1RJTkcpIHtcbiAgICAgIHJldHVybjsgLy8gYWxyZWFkeSBjb25uZWN0aW5nXG4gICAgfVxuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uID0gbnVsbDtcbiAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbk9ic2VydmFibGUgPSBudWxsO1xuXG4gICAgdGhpcy5jb25zdHJ1Y3ROZXdTc2UocmV0cnkpOyAvLyBjcmVhdGUgbmV3XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdE5ld1NzZShyZXRyeTogYm9vbGVhbikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzdWJzY3JpYmluZyB0byBzc2UgZXZlbnRzJyk7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbkNvdW50ID4gMCkge1xuICAgICAgdGhpcy5zdGF0ZSA9IFNzZVNlcnZpY2UuUkVDT05ORUNUSU5HO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlID0gU3NlU2VydmljZS5DT05ORUNUSU5HO1xuICAgIH1cbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PEJhc2VTc2VFdmVudD4+KG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50U291cmNlID0gdGhpcy5nZXRFdmVudFNvdXJjZSgpO1xuICAgICAgZXZlbnRTb3VyY2Uub25vcGVuID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbiA9IGV2ZW50U291cmNlO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnY29ubmVjdGVkIHRvIHNzZScpO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25Db3VudCsrO1xuICAgICAgICB0aGlzLnNlcXVlbnRpYWxDb25uZWN0aW9uQXR0ZW1wdEZhaWxDb3VudCA9IDA7IC8vIHJlc2V0IHJldHJ5IGNvdW50XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTc2VTZXJ2aWNlLkNPTk5FQ1RFRDtcbiAgICAgIH07XG4gICAgICBldmVudFNvdXJjZS5vbm1lc3NhZ2UgPSBldmVudCA9PiB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoe1xuICAgICAgICAgIC4uLmV2ZW50LCAvLyBmb3J3YXJkIGV2ZW50IG9iamVjdCBidXQgcmVwbGFjZSBkYXRhIGZpZWxkXG4gICAgICAgICAgZGF0YTogSlNPTi5wYXJzZShldmVudC5kYXRhKSwgLy8gcGFyc2UgSlNPTiBzdHJpbmcgdG8gSlNPTiBvYmplY3RcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgZXZlbnRTb3VyY2Uub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgZXZlbnRTb3VyY2UuY2xvc2UoKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHJldHJ5KSB7XG4gICAgICAgICAgdGhpcy5zZXF1ZW50aWFsQ29ubmVjdGlvbkF0dGVtcHRGYWlsQ291bnQrKztcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgcmV0cnkgZmFpbGVkOiAke3RoaXMuc2VxdWVudGlhbENvbm5lY3Rpb25BdHRlbXB0RmFpbENvdW50fWApO1xuICAgICAgICAgIGlmICh0aGlzLnNlcXVlbnRpYWxDb25uZWN0aW9uQXR0ZW1wdEZhaWxDb3VudCA+IDMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdFdpdGgoU3NlU2VydmljZS5DT05ORUNUSU9OX1JFVFJJRVNfRVhDRUVERUQsIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZXJyKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIGNvbm5lY3QgdG8gU1NFIGFmdGVyICR7dGhpcy5zZXF1ZW50aWFsQ29ubmVjdGlvbkF0dGVtcHRGYWlsQ291bnR9IHJldHJpZXNgXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc2Nvbm5lY3QodHJ1ZSk7XG4gICAgICAgIHRoaXMuZW5zdXJlQ29ubmVjdGlvbih0cnVlKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gKCkgPT4gZXZlbnRTb3VyY2UuY2xvc2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbk9ic2VydmFibGUgPSBvYnNlcnZhYmxlO1xuICAgIHRoaXMucmVnaXN0ZXJTc2VFdmVudEhhbmRsaW5nKG9ic2VydmFibGUpO1xuICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudFNvdXJjZSgpIHtcbiAgICBsZXQgc3VmZml4ID0gJyc7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uSWQgIT0gbnVsbCkge1xuICAgICAgc3VmZml4ID0gJy8nICsgdGhpcy5zdWJzY3JpcHRpb25JZDtcbiAgICB9XG4gICAgLy8gc3Vic2NyaWJlIHRvIC9zc2Ugb3IgL3NzZS88c3Vic2NyaXB0aW9uSWQ+XG4gICAgcmV0dXJuIG5ldyBFdmVudFNvdXJjZSh0aGlzLlZBTFRJTU9fRU5EUE9JTlRfVVJMICsgJ3YxL3NzZScgKyBzdWZmaXgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclNzZUV2ZW50SGFuZGxpbmcob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxNZXNzYWdlRXZlbnQ8QmFzZVNzZUV2ZW50Pj4pIHtcbiAgICB0aGlzLmVzdGFibGlzaGVkRGF0YUhhbmRsZXIgPSBvYnNlcnZhYmxlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICB0aGlzLl9zc2VNZXNzYWdlcyQubmV4dChldmVudCk7XG4gICAgICB0aGlzLmludGVybmFsTGlzdGVuZXJFc3RhYmxpc2hDb25uZWN0aW9uKGV2ZW50KTtcbiAgICAgIC8vIG5vdGlmeSBhbGwgZ2VuZXJpYyBsaXN0ZW5lcnNcbiAgICAgIHRoaXMuYW55U3Vic2NyaWJlcnNCdWNrZXQuc2VuZEV2ZW50KGV2ZW50LmRhdGEpO1xuICAgICAgLy8gbm90aWZ5IHRoZSBzcGVjaWZpYyBldmVudCBsaXN0ZW5lciBidWNrZXRcbiAgICAgIHRoaXMuZXZlbnRTdWJzY3JpYmVyc0J1Y2tldHMuZm9yRWFjaChidWNrZXQgPT4ge1xuICAgICAgICBpZiAoYnVja2V0LmV2ZW50ID09PSBldmVudD8uZGF0YT8uZXZlbnRUeXBlKSB7XG4gICAgICAgICAgYnVja2V0LnNlbmRFdmVudChldmVudC5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludGVybmFsTGlzdGVuZXJFc3RhYmxpc2hDb25uZWN0aW9uKGV2ZW50OiBNZXNzYWdlRXZlbnQ8QmFzZVNzZUV2ZW50Pikge1xuICAgIGlmIChldmVudD8uZGF0YT8uZXZlbnRUeXBlICE9PSAnRVNUQUJMSVNIRURfQ09OTkVDVElPTicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYGVzdGFibGlzaGVkIGNvbm5lY3Rpb246ICR7ZXZlbnR9YCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IChldmVudC5kYXRhIGFzIEVzdGFibGlzaGVkQ29ubmVjdGlvblNzZUV2ZW50KS5zdWJzY3JpcHRpb25JZDtcbiAgfVxuXG4gIHByaXZhdGUgZXJyKG1lc3NhZ2U6IHN0cmluZywgLi4uZGF0YTogYW55KSB7XG4gICAgdGhpcy5lcnJvckJ1Y2tldC5zZW5kRXZlbnQoe1xuICAgICAgc3RhdGU6IHRoaXMuc3RhdGUsXG4gICAgICBtZXNzYWdlLFxuICAgICAgZGF0YSxcbiAgICB9KTtcbiAgfVxufVxuIl19
237
+ }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.NGXLogger }] });
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3NzZS9zcmMvbGliL3NlcnZpY2VzL3NzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFRL0QsT0FBTyxFQUNMLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIscUJBQXFCLEdBQ3RCLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFHcEM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFJSCxNQUFNLE9BQU8sVUFBVTthQUNHLGdDQUEyQixHQUFHLENBQUMsQ0FBQyxBQUFMLENBQU07YUFDakMsa0JBQWEsR0FBRyxDQUFDLEFBQUosQ0FBSzthQUNsQixlQUFVLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFDZixpQkFBWSxHQUFHLENBQUMsQUFBSixDQUFLO2FBQ2pCLGNBQVMsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQWtCdkMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsWUFDbUIsYUFBNEIsRUFDNUIsTUFBaUI7UUFEakIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQXJCNUIsb0JBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyw0RUFBNEU7UUFDakcsMkJBQXNCLEdBQWtCLElBQUksQ0FBQztRQUM3QywwQkFBcUIsR0FBaUIsSUFBSSxDQUFDO1FBQzNDLG9DQUEr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d0IsRUFBRSxDQUFDO1lBQ3hELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBSSxLQUFLLENBQUMsSUFBc0MsQ0FBQyxjQUFjLENBQUM7SUFDckYsQ0FBQztJQUVPLEdBQUcsQ0FBQyxPQUFlLEVBQUUsR0FBRyxJQUFTO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixPQUFPO1lBQ1AsSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBN05VLFVBQVU7a0hBQVYsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZmlsdGVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQmFzZVNzZUV2ZW50LFxuICBFc3RhYmxpc2hlZENvbm5lY3Rpb25Tc2VFdmVudCxcbiAgU3NlRXZlbnRMaXN0ZW5lcixcbiAgU3NlRXZlbnRUeXBlLFxufSBmcm9tICcuLi9tb2RlbHMvc3NlLWV2ZW50cy5tb2RlbCc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1xuICBTc2VFcnJvckJ1Y2tldCxcbiAgU3NlRXZlbnRTdWJzY3JpcHRpb25CdWNrZXQsXG4gIFNzZVN1YnNjcmlwdGlvbkJ1Y2tldCxcbn0gZnJvbSAnLi4vbW9kZWxzL3NzZS1idWNrZXQubW9kZWwnO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuXG4vKipcbiAqIFNlcnZlci1zaWRlIGV2ZW50cyBzZXJ2aWNlLCBmb3IgY29ubmVjdGluZyBhbmQgcmVjb25uZWN0aW5nIHRvIFNTRSxcbiAqIGFuZCBhIHRyYW5zbGF0aW9uIGxheWVyIGJldHdlZW4gU1NFIGpzb24gc3RyaW5nIGRhdGEgYW5kIFRTIHR5cGVkIGV2ZW50cy5cbiAqXG4gKiBUaGUgc2VydmljZSBpcyBhbHdheXMgcHJlc2VudCwgYW5kIHNvIGV2ZW50cyBjYW4gYmUgcmVnaXN0ZXJlZCB3aXRoIHtAbGluayBvbk1lc3NhZ2V9IGFuZCB7QGxpbmsgb25FdmVudH0sXG4gKiBhbmQgd2lsbCBub3QgYmUgbG9zdCBvbiBkaXNjb25uZWN0IG9yIHJlY29ubmVjdCBvZiB0aGUgU1NFIGNvbm5lY3Rpb24gaXRzZWxmLlxuICogSXQgaXMgZXhwZWN0ZWQgdG8gYWxzbyB1bnJlZ2lzdGVyIGV2ZW50cyB1c2luZyB0aGUgb2ZmLW1ldGhvZCB2YXJpYW50cyBvZiB0aGUgb24tbWV0aG9kIGxpc3RlbmVycy5cbiAqXG4gKiBUbyBlbnN1cmUgbWVzc2FnZXMgYXJlIHJlY2VpdmVkIHRoZSBjb25uZWN0aW9uIG11c3QgYmUgZXhwbGljaXRseSBvcGVuZWQgd2l0aCB7QGxpbmsgY29ubmVjdH0sXG4gKiBsaWtld2lzZSB0aGUgY29ubmVjdGlvbiBzaG91bGQgYWxzbyBiZSBjbG9zZWQgd2l0aCB7QGxpbmsgZGlzY29ubmVjdH0gdG8gc3RvcCByZWNlaXZpbmcgbWVzc2FnZXMuXG4gKlxuICogVGhpcyBzZXJ2aWNlIGNhbiByZWNvbm5lY3QgaXRzZWxmIHdpdGggdGhlIGJhY2tlbmQsIGFuZCBtaWdodCB1c2UgdGhlIHtAbGluayBzdWJzY3JpcHRpb25JZH0gdG8gYXNrIGZvciBpdHNcbiAqIHByZXZpb3VzIGNvbm5lY3Rpb24gc3RhdGUuIFRoaXMgc3RhdGUgY3VycmVudGx5IGV4aXN0cyBpbiB0aGUgYmFja2VuZCBhcyB0aGUgXCJTdWJzY3JpYmVyXCIgY2xhc3MsIGFuZCBtaWdodFxuICogaGF2ZSBhIHN0YXRlIGNvbnRhaW5pbmcgcXVldWVzIG9mIGl0ZW1zIHRoYXQgbmVlZCB0byBiZSBzZW50LCBzbyB5b3UgY2FuIHJlY29ubmVjdCBhbmQgcmVjZWl2ZSB0aGUgcmVzdC5cbiAqXG4gKiBBdCB0aGlzIHRpbWUgbm8gc3RhdGUgZGF0YSBpcyBrZXB0LCBzbyByZWNvbm5lY3Rpb24gd2l0aG91dCBhIHN1YnNjcmlwdGlvbklkIGRvZXMgbm90IGdpdmUgYSBkaWZmZXJlbnQgcmVzdWx0XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTc2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ09OTkVDVElPTl9SRVRSSUVTX0VYQ0VFREVEID0gLTE7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE5PVF9DT05ORUNURUQgPSAwO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDT05ORUNUSU5HID0gMTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVDT05ORUNUSU5HID0gMjtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ09OTkVDVEVEID0gMTA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBWQUxUSU1PX0VORFBPSU5UX1VSTDogc3RyaW5nO1xuICBwcml2YXRlIGNvbm5lY3Rpb25Db3VudCA9IDA7IC8vIGFtb3VudCBvZiB0aW1lcyB3ZSBoYXZlIGNvbm5lY3RlZCBzZXF1ZW50aWFsbHksIG5vIGNvbmN1cnJlbnQgY29ubmVjdGlvbnNcbiAgcHJpdmF0ZSBlc3RhYmxpc2hlZERhdGFIYW5kbGVyPzogU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgcHJpdmF0ZSBlc3RhYmxpc2hlZENvbm5lY3Rpb24/OiBFdmVudFNvdXJjZSA9IG51bGw7XG4gIHByaXZhdGUgZXN0YWJsaXNoZWRDb25uZWN0aW9uT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxNZXNzYWdlRXZlbnQ8QmFzZVNzZUV2ZW50Pj4gPSBudWxsO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbklkPzogc3RyaW5nID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXF1ZW50aWFsQ29ubmVjdGlvbkF0dGVtcHRGYWlsQ291bnQgPSAwO1xuXG4gIHByaXZhdGUgZXJyb3JCdWNrZXQgPSBuZXcgU3NlRXJyb3JCdWNrZXQoKTtcbiAgcHJpdmF0ZSBhbnlTdWJzY3JpYmVyc0J1Y2tldCA9IG5ldyBTc2VTdWJzY3JpcHRpb25CdWNrZXQ8QmFzZVNzZUV2ZW50PigpO1xuICBwcml2YXRlIGV2ZW50U3Vic2NyaWJlcnNCdWNrZXRzOiBTc2VFdmVudFN1YnNjcmlwdGlvbkJ1Y2tldDxCYXNlU3NlRXZlbnQ+W10gPSBbXTtcblxuICBwcml2YXRlIHN0YXRlOiBudW1iZXIgPSBTc2VTZXJ2aWNlLk5PVF9DT05ORUNURUQ7XG5cbiAgcHJpdmF0ZSBfc3NlTWVzc2FnZXMkID0gbmV3IFN1YmplY3Q8TWVzc2FnZUV2ZW50PEJhc2VTc2VFdmVudD4+KCk7XG5cbiAgZ2V0IHNzZU1lc3NhZ2VzJCgpOiBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudDxCYXNlU3NlRXZlbnQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NzZU1lc3NhZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihtZXNzYWdlID0+ICEhbWVzc2FnZSkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXJcbiAgKSB7XG4gICAgdGhpcy5WQUxUSU1PX0VORFBPSU5UX1VSTCA9IGNvbmZpZ1NlcnZpY2UuY29uZmlnLnZhbHRpbW9BcGkuZW5kcG9pbnRVcmk7XG4gICAgdGhpcy5jb25uZWN0KCk7XG4gIH1cblxuICBnZXRTc2VNZXNzYWdlc09ic2VydmFibGVCeUV2ZW50VHlwZShcbiAgICBldmVudFR5cGVzOiBBcnJheTxTc2VFdmVudFR5cGU+XG4gICk6IE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PEJhc2VTc2VFdmVudD4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3NlTWVzc2FnZXMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBmaWx0ZXIobWVzc2FnZSA9PiAhIW1lc3NhZ2UpLFxuICAgICAgZmlsdGVyKG1lc3NhZ2UgPT4gZXZlbnRUeXBlcy5pbmNsdWRlcyhtZXNzYWdlPy5kYXRhPy5ldmVudFR5cGUpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgcmVjZWl2aW5nIFNTRSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgY29ubmVjdCgpIHtcbiAgICB0aGlzLmVuc3VyZUNvbm5lY3Rpb24oKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgb25NZXNzYWdlKGxpc3RlbmVyOiBTc2VFdmVudExpc3RlbmVyPEJhc2VTc2VFdmVudD4pIHtcbiAgICB0aGlzLmVuc3VyZUNvbm5lY3Rpb24oKTsgLy8gZW5zdXJlIGNvbm5lY3Rpb25cbiAgICB0aGlzLmFueVN1YnNjcmliZXJzQnVja2V0Lm9uKGxpc3RlbmVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgb25FdmVudDxUIGV4dGVuZHMgQmFzZVNzZUV2ZW50PihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogU3NlRXZlbnRMaXN0ZW5lcjxUPikge1xuICAgIHRoaXMuZW5zdXJlQ29ubmVjdGlvbigpOyAvLyBlbnN1cmUgY29ubmVjdGlvblxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIHRoaXMuZXZlbnRTdWJzY3JpYmVyc0J1Y2tldHMuZm9yRWFjaChidWNrZXQgPT4ge1xuICAgICAgaWYgKGJ1Y2tldC5ldmVudCA9PT0gZXZlbnQpIHtcbiAgICAgICAgYnVja2V0Lm9uKGxpc3RlbmVyKTtcbiAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBTc2VFdmVudFN1YnNjcmlwdGlvbkJ1Y2tldChldmVudCk7XG4gICAgICBidWNrZXQub24obGlzdGVuZXIpO1xuICAgICAgdGhpcy5ldmVudFN1YnNjcmliZXJzQnVja2V0cy5wdXNoKGJ1Y2tldCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBvZmZNZXNzYWdlKGxpc3RlbmVyOiBTc2VFdmVudExpc3RlbmVyPEJhc2VTc2VFdmVudD4pIHtcbiAgICB0aGlzLmFueVN1YnNjcmliZXJzQnVja2V0Lm9mZihsaXN0ZW5lcik7XG4gIH1cblxuICBwcml2YXRlIG9mZkV2ZW50KGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiBTc2VFdmVudExpc3RlbmVyPGFueT4pIHtcbiAgICB0aGlzLmV2ZW50U3Vic2NyaWJlcnNCdWNrZXRzLmZvckVhY2goYnVja2V0ID0+IHtcbiAgICAgIGlmIChidWNrZXQuZXZlbnQgPT09IGV2ZW50KSB7XG4gICAgICAgIGJ1Y2tldC5vZmYobGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvZmZFdmVudHModHlwZT86IHN0cmluZykge1xuICAgIHRoaXMuZXZlbnRTdWJzY3JpYmVyc0J1Y2tldHMuZm9yRWFjaChidWNrZXQgPT4ge1xuICAgICAgaWYgKHR5cGUgPT09IG51bGwgfHwgdHlwZSA9PT0gYnVja2V0LmV2ZW50KSB7XG4gICAgICAgIGJ1Y2tldC5vZmZBbGwoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2ZmTWVzc2FnZXMoKSB7XG4gICAgdGhpcy5hbnlTdWJzY3JpYmVyc0J1Y2tldC5vZmZBbGwoKTtcbiAgfVxuXG4gIHByaXZhdGUgb2ZmQWxsKCkge1xuICAgIHRoaXMub2ZmRXZlbnRzKCk7XG4gICAgdGhpcy5vZmZNZXNzYWdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNjb25uZWN0KGtlZXBTdWJzY3JpcHRpb25JZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5kaXNjb25uZWN0V2l0aChTc2VTZXJ2aWNlLk5PVF9DT05ORUNURUQsIGtlZXBTdWJzY3JpcHRpb25JZCk7XG4gIH1cblxuICBwcml2YXRlIGRpc2Nvbm5lY3RXaXRoKHN0YXRlOiBudW1iZXIsIGtlZXBTdWJzY3JpcHRpb25JZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIGlmICh0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbj8ucmVhZHlTdGF0ZSAhPT0gRXZlbnRTb3VyY2UuQ0xPU0VEKSB7XG4gICAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbj8uY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5lc3RhYmxpc2hlZERhdGFIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24gPSBudWxsO1xuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uT2JzZXJ2YWJsZSA9IG51bGw7XG4gICAgdGhpcy5lc3RhYmxpc2hlZERhdGFIYW5kbGVyID0gbnVsbDtcbiAgICBpZiAoIWtlZXBTdWJzY3JpcHRpb25JZCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVDb25uZWN0aW9uKHJldHJ5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24gIT09IG51bGwgJiYgdGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb25PYnNlcnZhYmxlICE9PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24ucmVhZHlTdGF0ZSAhPT0gRXZlbnRTb3VyY2UuQ0xPU0VEKSB7XG4gICAgICAgIHJldHVybjsgLy8gZm91bmRcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09IFNzZVNlcnZpY2UuQ09OTkVDVElORyB8fCB0aGlzLnN0YXRlID09PSBTc2VTZXJ2aWNlLlJFQ09OTkVDVElORykge1xuICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IGNvbm5lY3RpbmdcbiAgICB9XG4gICAgdGhpcy5lc3RhYmxpc2hlZENvbm5lY3Rpb24gPSBudWxsO1xuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uT2JzZXJ2YWJsZSA9IG51bGw7XG5cbiAgICB0aGlzLmNvbnN0cnVjdE5ld1NzZShyZXRyeSk7IC8vIGNyZWF0ZSBuZXdcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0TmV3U3NlKHJldHJ5OiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3N1YnNjcmliaW5nIHRvIHNzZSBldmVudHMnKTtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uQ291bnQgPiAwKSB7XG4gICAgICB0aGlzLnN0YXRlID0gU3NlU2VydmljZS5SRUNPTk5FQ1RJTkc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBTc2VTZXJ2aWNlLkNPTk5FQ1RJTkc7XG4gICAgfVxuICAgIGNvbnN0IG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxNZXNzYWdlRXZlbnQ8QmFzZVNzZUV2ZW50Pj4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgY29uc3QgZXZlbnRTb3VyY2UgPSB0aGlzLmdldEV2ZW50U291cmNlKCk7XG4gICAgICBldmVudFNvdXJjZS5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uID0gZXZlbnRTb3VyY2U7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdjb25uZWN0ZWQgdG8gc3NlJyk7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbkNvdW50Kys7XG4gICAgICAgIHRoaXMuc2VxdWVudGlhbENvbm5lY3Rpb25BdHRlbXB0RmFpbENvdW50ID0gMDsgLy8gcmVzZXQgcmV0cnkgY291bnRcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNzZVNlcnZpY2UuQ09OTkVDVEVEO1xuICAgICAgfTtcbiAgICAgIGV2ZW50U291cmNlLm9ubWVzc2FnZSA9IGV2ZW50ID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh7XG4gICAgICAgICAgLi4uZXZlbnQsIC8vIGZvcndhcmQgZXZlbnQgb2JqZWN0IGJ1dCByZXBsYWNlIGRhdGEgZmllbGRcbiAgICAgICAgICBkYXRhOiBKU09OLnBhcnNlKGV2ZW50LmRhdGEpLCAvLyBwYXJzZSBKU09OIHN0cmluZyB0byBKU09OIG9iamVjdFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBldmVudFNvdXJjZS5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICBldmVudFNvdXJjZS5jbG9zZSgpO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAocmV0cnkpIHtcbiAgICAgICAgICB0aGlzLnNlcXVlbnRpYWxDb25uZWN0aW9uQXR0ZW1wdEZhaWxDb3VudCsrO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGByZXRyeSBmYWlsZWQ6ICR7dGhpcy5zZXF1ZW50aWFsQ29ubmVjdGlvbkF0dGVtcHRGYWlsQ291bnR9YCk7XG4gICAgICAgICAgaWYgKHRoaXMuc2VxdWVudGlhbENvbm5lY3Rpb25BdHRlbXB0RmFpbENvdW50ID4gMykge1xuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0V2l0aChTc2VTZXJ2aWNlLkNPTk5FQ1RJT05fUkVUUklFU19FWENFRURFRCwgZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5lcnIoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gY29ubmVjdCB0byBTU0UgYWZ0ZXIgJHt0aGlzLnNlcXVlbnRpYWxDb25uZWN0aW9uQXR0ZW1wdEZhaWxDb3VudH0gcmV0cmllc2BcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCh0cnVlKTtcbiAgICAgICAgdGhpcy5lbnN1cmVDb25uZWN0aW9uKHRydWUpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiAoKSA9PiBldmVudFNvdXJjZS5jbG9zZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9uT2JzZXJ2YWJsZSA9IG9ic2VydmFibGU7XG4gICAgdGhpcy5yZWdpc3RlclNzZUV2ZW50SGFuZGxpbmcob2JzZXJ2YWJsZSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50U291cmNlKCkge1xuICAgIGxldCBzdWZmaXggPSAnJztcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25JZCAhPSBudWxsKSB7XG4gICAgICBzdWZmaXggPSAnLycgKyB0aGlzLnN1YnNjcmlwdGlvbklkO1xuICAgIH1cbiAgICAvLyBzdWJzY3JpYmUgdG8gL3NzZSBvciAvc3NlLzxzdWJzY3JpcHRpb25JZD5cbiAgICByZXR1cm4gbmV3IEV2ZW50U291cmNlKHRoaXMuVkFMVElNT19FTkRQT0lOVF9VUkwgKyAndjEvc3NlJyArIHN1ZmZpeCk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyU3NlRXZlbnRIYW5kbGluZyhvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudDxCYXNlU3NlRXZlbnQ+Pikge1xuICAgIHRoaXMuZXN0YWJsaXNoZWREYXRhSGFuZGxlciA9IG9ic2VydmFibGUuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuX3NzZU1lc3NhZ2VzJC5uZXh0KGV2ZW50KTtcbiAgICAgIHRoaXMuaW50ZXJuYWxMaXN0ZW5lckVzdGFibGlzaENvbm5lY3Rpb24oZXZlbnQpO1xuICAgICAgLy8gbm90aWZ5IGFsbCBnZW5lcmljIGxpc3RlbmVyc1xuICAgICAgdGhpcy5hbnlTdWJzY3JpYmVyc0J1Y2tldC5zZW5kRXZlbnQoZXZlbnQuZGF0YSk7XG4gICAgICAvLyBub3RpZnkgdGhlIHNwZWNpZmljIGV2ZW50IGxpc3RlbmVyIGJ1Y2tldFxuICAgICAgdGhpcy5ldmVudFN1YnNjcmliZXJzQnVja2V0cy5mb3JFYWNoKGJ1Y2tldCA9PiB7XG4gICAgICAgIGlmIChidWNrZXQuZXZlbnQgPT09IGV2ZW50Py5kYXRhPy5ldmVudFR5cGUpIHtcbiAgICAgICAgICBidWNrZXQuc2VuZEV2ZW50KGV2ZW50LmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW50ZXJuYWxMaXN0ZW5lckVzdGFibGlzaENvbm5lY3Rpb24oZXZlbnQ6IE1lc3NhZ2VFdmVudDxCYXNlU3NlRXZlbnQ+KSB7XG4gICAgaWYgKGV2ZW50Py5kYXRhPy5ldmVudFR5cGUgIT09ICdFU1RBQkxJU0hFRF9DT05ORUNUSU9OJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgZXN0YWJsaXNoZWQgY29ubmVjdGlvbjogJHtldmVudH1gKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gKGV2ZW50LmRhdGEgYXMgRXN0YWJsaXNoZWRDb25uZWN0aW9uU3NlRXZlbnQpLnN1YnNjcmlwdGlvbklkO1xuICB9XG5cbiAgcHJpdmF0ZSBlcnIobWVzc2FnZTogc3RyaW5nLCAuLi5kYXRhOiBhbnkpIHtcbiAgICB0aGlzLmVycm9yQnVja2V0LnNlbmRFdmVudCh7XG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBkYXRhLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -16,11 +16,11 @@
16
16
  import { NgModule } from '@angular/core';
17
17
  import * as i0 from "@angular/core";
18
18
  export class SseModule {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SseModule }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseModule }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: SseModule }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseModule }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseModule, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  declarations: [],
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28
28
  exports: [],
29
29
  }]
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9saWIvc3NlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBT3ZDLE1BQU0sT0FBTyxTQUFTOytHQUFULFNBQVM7Z0hBQVQsU0FBUztnSEFBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQUxyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNzZU1vZHVsZSB7fVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9saWIvc3NlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBT3ZDLE1BQU0sT0FBTyxTQUFTOzhHQUFULFNBQVM7K0dBQVQsU0FBUzsrR0FBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUxyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNzZU1vZHVsZSB7fVxuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -19,4 +19,4 @@
19
19
  export * from './lib/models';
20
20
  export * from './lib/services';
21
21
  export * from './lib/sse.module';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNzZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zc2UubW9kdWxlJztcbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vc3NlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNzZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zc2UubW9kdWxlJztcbiJdfQ==
@@ -5,7 +5,7 @@ import * as i1 from '@valtimo/config';
5
5
  import * as i2 from 'ngx-logger';
6
6
 
7
7
  /*
8
- * Copyright 2015-2023 Ritense BV, the Netherlands.
8
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
9
9
  *
10
10
  * Licensed under EUPL, Version 1.2 (the "License");
11
11
  * you may not use this file except in compliance with the License.
@@ -53,7 +53,7 @@ class SseEventSubscriptionBucket extends SseSubscriptionBucket {
53
53
  }
54
54
 
55
55
  /*
56
- * Copyright 2015-2023 Ritense BV, the Netherlands.
56
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
57
57
  *
58
58
  * Licensed under EUPL, Version 1.2 (the "License");
59
59
  * you may not use this file except in compliance with the License.
@@ -69,7 +69,7 @@ class SseEventSubscriptionBucket extends SseSubscriptionBucket {
69
69
  */
70
70
 
71
71
  /*
72
- * Copyright 2015-2023 Ritense BV, the Netherlands.
72
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
73
73
  *
74
74
  * Licensed under EUPL, Version 1.2 (the "License");
75
75
  * you may not use this file except in compliance with the License.
@@ -85,7 +85,7 @@ class SseEventSubscriptionBucket extends SseSubscriptionBucket {
85
85
  */
86
86
 
87
87
  /*
88
- * Copyright 2015-2023 Ritense BV, the Netherlands.
88
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
89
89
  *
90
90
  * Licensed under EUPL, Version 1.2 (the "License");
91
91
  * you may not use this file except in compliance with the License.
@@ -245,7 +245,7 @@ class SseService {
245
245
  };
246
246
  eventSource.onmessage = event => {
247
247
  observer.next({
248
- ...event,
248
+ ...event, // forward event object but replace data field
249
249
  data: JSON.parse(event.data), // parse JSON string to JSON object
250
250
  });
251
251
  };
@@ -306,18 +306,18 @@ class SseService {
306
306
  data,
307
307
  });
308
308
  }
309
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseService, deps: [{ token: i1.ConfigService }, { token: i2.NGXLogger }], target: i0.ɵɵFactoryTarget.Injectable }); }
310
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseService, providedIn: 'root' }); }
309
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseService, deps: [{ token: i1.ConfigService }, { token: i2.NGXLogger }], target: i0.ɵɵFactoryTarget.Injectable }); }
310
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseService, providedIn: 'root' }); }
311
311
  }
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseService, decorators: [{
312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseService, decorators: [{
313
313
  type: Injectable,
314
314
  args: [{
315
315
  providedIn: 'root',
316
316
  }]
317
- }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.NGXLogger }]; } });
317
+ }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.NGXLogger }] });
318
318
 
319
319
  /*
320
- * Copyright 2015-2023 Ritense BV, the Netherlands.
320
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
321
321
  *
322
322
  * Licensed under EUPL, Version 1.2 (the "License");
323
323
  * you may not use this file except in compliance with the License.
@@ -333,7 +333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
333
333
  */
334
334
 
335
335
  /*
336
- * Copyright 2015-2023 Ritense BV, the Netherlands.
336
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
337
337
  *
338
338
  * Licensed under EUPL, Version 1.2 (the "License");
339
339
  * you may not use this file except in compliance with the License.
@@ -348,11 +348,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
348
348
  * limitations under the License.
349
349
  */
350
350
  class SseModule {
351
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
352
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SseModule }); }
353
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseModule }); }
351
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
352
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: SseModule }); }
353
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseModule }); }
354
354
  }
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SseModule, decorators: [{
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SseModule, decorators: [{
356
356
  type: NgModule,
357
357
  args: [{
358
358
  declarations: [],
@@ -362,7 +362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
362
362
  }] });
363
363
 
364
364
  /*
365
- * Copyright 2015-2023 Ritense BV, the Netherlands.
365
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
366
366
  *
367
367
  * Licensed under EUPL, Version 1.2 (the "License");
368
368
  * you may not use this file except in compliance with the License.
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-sse.mjs","sources":["../../../../projects/valtimo/sse/src/lib/models/sse-bucket.model.ts","../../../../projects/valtimo/sse/src/lib/models/sse-events.model.ts","../../../../projects/valtimo/sse/src/lib/models/index.ts","../../../../projects/valtimo/sse/src/lib/services/sse.service.ts","../../../../projects/valtimo/sse/src/lib/services/index.ts","../../../../projects/valtimo/sse/src/lib/sse.module.ts","../../../../projects/valtimo/sse/src/public-api.ts","../../../../projects/valtimo/sse/src/valtimo-sse.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// generic bucket for listeners of any type\nimport {BaseSseEvent, SseError, SseEventListener} from './sse-events.model';\n\nexport class SseSubscriptionBucket<T> {\n readonly listeners: SseEventListener<T>[] = [];\n\n on(listener: SseEventListener<T>) {\n this.listeners.push(listener);\n }\n\n off(listener: SseEventListener<T>) {\n const index = this.listeners.indexOf(listener);\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n }\n\n offAll() {\n this.listeners.length = 0;\n }\n\n sendEvent(event: T) {\n this.listeners.forEach(listener => {\n listener(event);\n });\n }\n}\n\n// error bucket for error listeners\nexport class SseErrorBucket extends SseSubscriptionBucket<SseError> {}\n\n// implicit type bucket with event for filtering\nexport class SseEventSubscriptionBucket<T extends BaseSseEvent> extends SseSubscriptionBucket<T> {\n readonly event: string;\n\n constructor(event: string) {\n super();\n this.event = event;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SseEventType =\n | 'CASE_CREATED'\n | 'TASK_UPDATE'\n | 'PROCESS_END'\n | 'CASE_ASSIGNED'\n | 'CASE_UNASSIGNED'\n | 'ESTABLISHED_CONNECTION';\n\ntype SseEventListener<T> = (event: T) => void;\n\n// base event containing the event type\ninterface BaseSseEvent {\n eventType?: SseEventType;\n processInstanceId?: string;\n}\n\n// event implementations for json mapping objects in:\ninterface TaskUpdateSseEvent extends BaseSseEvent {\n processInstanceId: string;\n}\n\ninterface EstablishedConnectionSseEvent extends BaseSseEvent {\n subscriptionId: string;\n}\n\ninterface SseError {\n state: number;\n message: string;\n data?: any;\n}\n\nexport {\n SseError,\n EstablishedConnectionSseEvent,\n TaskUpdateSseEvent,\n BaseSseEvent,\n SseEventListener,\n SseEventType,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './sse-bucket.model';\nexport * from './sse-events.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {filter, Observable, Subject, Subscription} from 'rxjs';\nimport {\n BaseSseEvent,\n EstablishedConnectionSseEvent,\n SseEventListener,\n SseEventType,\n} from '../models/sse-events.model';\nimport {ConfigService} from '@valtimo/config';\nimport {\n SseErrorBucket,\n SseEventSubscriptionBucket,\n SseSubscriptionBucket,\n} from '../models/sse-bucket.model';\nimport {NGXLogger} from 'ngx-logger';\n\n/**\n * Server-side events service, for connecting and reconnecting to SSE,\n * and a translation layer between SSE json string data and TS typed events.\n *\n * The service is always present, and so events can be registered with {@link onMessage} and {@link onEvent},\n * and will not be lost on disconnect or reconnect of the SSE connection itself.\n * It is expected to also unregister events using the off-method variants of the on-method listeners.\n *\n * To ensure messages are received the connection must be explicitly opened with {@link connect},\n * likewise the connection should also be closed with {@link disconnect} to stop receiving messages.\n *\n * This service can reconnect itself with the backend, and might use the {@link subscriptionId} to ask for its\n * previous connection state. This state currently exists in the backend as the \"Subscriber\" class, and might\n * have a state containing queues of items that need to be sent, so you can reconnect and receive the rest.\n *\n * At this time no state data is kept, so reconnection without a subscriptionId does not give a different result\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SseService {\n private static readonly CONNECTION_RETRIES_EXCEEDED = -1;\n private static readonly NOT_CONNECTED = 0;\n private static readonly CONNECTING = 1;\n private static readonly RECONNECTING = 2;\n private static readonly CONNECTED = 10;\n\n private readonly VALTIMO_ENDPOINT_URL: string;\n private connectionCount = 0; // amount of times we have connected sequentially, no concurrent connections\n private establishedDataHandler?: Subscription = null;\n private establishedConnection?: EventSource = null;\n private establishedConnectionObservable: Observable<MessageEvent<BaseSseEvent>> = null;\n private subscriptionId?: string = null;\n private sequentialConnectionAttemptFailCount = 0;\n\n private errorBucket = new SseErrorBucket();\n private anySubscribersBucket = new SseSubscriptionBucket<BaseSseEvent>();\n private eventSubscribersBuckets: SseEventSubscriptionBucket<BaseSseEvent>[] = [];\n\n private state: number = SseService.NOT_CONNECTED;\n\n private _sseMessages$ = new Subject<MessageEvent<BaseSseEvent>>();\n\n get sseMessages$(): Observable<MessageEvent<BaseSseEvent>> {\n return this._sseMessages$.asObservable().pipe(filter(message => !!message));\n }\n\n constructor(\n private readonly configService: ConfigService,\n private readonly logger: NGXLogger\n ) {\n this.VALTIMO_ENDPOINT_URL = configService.config.valtimoApi.endpointUri;\n this.connect();\n }\n\n getSseMessagesObservableByEventType(\n eventTypes: Array<SseEventType>\n ): Observable<MessageEvent<BaseSseEvent>> {\n return this._sseMessages$.asObservable().pipe(\n filter(message => !!message),\n filter(message => eventTypes.includes(message?.data?.eventType))\n );\n }\n\n /**\n * Start receiving SSE events\n */\n private connect() {\n this.ensureConnection();\n return this;\n }\n\n private onMessage(listener: SseEventListener<BaseSseEvent>) {\n this.ensureConnection(); // ensure connection\n this.anySubscribersBucket.on(listener);\n return this;\n }\n\n private onEvent<T extends BaseSseEvent>(event: string, listener: SseEventListener<T>) {\n this.ensureConnection(); // ensure connection\n let found = false;\n this.eventSubscribersBuckets.forEach(bucket => {\n if (bucket.event === event) {\n bucket.on(listener);\n found = true;\n }\n });\n if (!found) {\n const bucket = new SseEventSubscriptionBucket(event);\n bucket.on(listener);\n this.eventSubscribersBuckets.push(bucket);\n }\n return this;\n }\n\n private offMessage(listener: SseEventListener<BaseSseEvent>) {\n this.anySubscribersBucket.off(listener);\n }\n\n private offEvent(event: string, listener: SseEventListener<any>) {\n this.eventSubscribersBuckets.forEach(bucket => {\n if (bucket.event === event) {\n bucket.off(listener);\n }\n });\n }\n\n private offEvents(type?: string) {\n this.eventSubscribersBuckets.forEach(bucket => {\n if (type === null || type === bucket.event) {\n bucket.offAll();\n }\n });\n }\n\n private offMessages() {\n this.anySubscribersBucket.offAll();\n }\n\n private offAll() {\n this.offEvents();\n this.offMessages();\n }\n\n private disconnect(keepSubscriptionId: boolean = false) {\n this.disconnectWith(SseService.NOT_CONNECTED, keepSubscriptionId);\n }\n\n private disconnectWith(state: number, keepSubscriptionId: boolean = false) {\n this.state = state;\n if (this.establishedConnection?.readyState !== EventSource.CLOSED) {\n this.establishedConnection?.close();\n }\n this.establishedDataHandler.unsubscribe();\n this.establishedConnection = null;\n this.establishedConnectionObservable = null;\n this.establishedDataHandler = null;\n if (!keepSubscriptionId) {\n this.subscriptionId = null;\n }\n }\n\n private ensureConnection(retry: boolean = false) {\n if (this.establishedConnection !== null && this.establishedConnectionObservable !== null) {\n if (this.establishedConnection.readyState !== EventSource.CLOSED) {\n return; // found\n }\n }\n if (this.state === SseService.CONNECTING || this.state === SseService.RECONNECTING) {\n return; // already connecting\n }\n this.establishedConnection = null;\n this.establishedConnectionObservable = null;\n\n this.constructNewSse(retry); // create new\n }\n\n private constructNewSse(retry: boolean) {\n this.logger.debug('subscribing to sse events');\n if (this.connectionCount > 0) {\n this.state = SseService.RECONNECTING;\n } else {\n this.state = SseService.CONNECTING;\n }\n const observable = new Observable<MessageEvent<BaseSseEvent>>(observer => {\n const eventSource = this.getEventSource();\n eventSource.onopen = () => {\n this.establishedConnection = eventSource;\n this.logger.debug('connected to sse');\n this.connectionCount++;\n this.sequentialConnectionAttemptFailCount = 0; // reset retry count\n this.state = SseService.CONNECTED;\n };\n eventSource.onmessage = event => {\n observer.next({\n ...event, // forward event object but replace data field\n data: JSON.parse(event.data), // parse JSON string to JSON object\n });\n };\n eventSource.onerror = () => {\n eventSource.close();\n observer.complete();\n if (retry) {\n this.sequentialConnectionAttemptFailCount++;\n this.logger.debug(`retry failed: ${this.sequentialConnectionAttemptFailCount}`);\n if (this.sequentialConnectionAttemptFailCount > 3) {\n this.disconnectWith(SseService.CONNECTION_RETRIES_EXCEEDED, false);\n this.err(\n `Failed to connect to SSE after ${this.sequentialConnectionAttemptFailCount} retries`\n );\n return;\n }\n }\n this.disconnect(true);\n this.ensureConnection(true);\n };\n return () => eventSource.close();\n });\n this.establishedConnectionObservable = observable;\n this.registerSseEventHandling(observable);\n return observable;\n }\n\n private getEventSource() {\n let suffix = '';\n if (this.subscriptionId != null) {\n suffix = '/' + this.subscriptionId;\n }\n // subscribe to /sse or /sse/<subscriptionId>\n return new EventSource(this.VALTIMO_ENDPOINT_URL + 'v1/sse' + suffix);\n }\n\n private registerSseEventHandling(observable: Observable<MessageEvent<BaseSseEvent>>) {\n this.establishedDataHandler = observable.subscribe(event => {\n this._sseMessages$.next(event);\n this.internalListenerEstablishConnection(event);\n // notify all generic listeners\n this.anySubscribersBucket.sendEvent(event.data);\n // notify the specific event listener bucket\n this.eventSubscribersBuckets.forEach(bucket => {\n if (bucket.event === event?.data?.eventType) {\n bucket.sendEvent(event.data);\n }\n });\n });\n }\n\n private internalListenerEstablishConnection(event: MessageEvent<BaseSseEvent>) {\n if (event?.data?.eventType !== 'ESTABLISHED_CONNECTION') {\n return;\n }\n this.logger.debug(`established connection: ${event}`);\n this.subscriptionId = (event.data as EstablishedConnectionSseEvent).subscriptionId;\n }\n\n private err(message: string, ...data: any) {\n this.errorBucket.sendEvent({\n state: this.state,\n message,\n data,\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './sse.service';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class SseModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of sse\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/sse.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-sse.mjs","sources":["../../../../projects/valtimo/sse/src/lib/models/sse-bucket.model.ts","../../../../projects/valtimo/sse/src/lib/models/sse-events.model.ts","../../../../projects/valtimo/sse/src/lib/models/index.ts","../../../../projects/valtimo/sse/src/lib/services/sse.service.ts","../../../../projects/valtimo/sse/src/lib/services/index.ts","../../../../projects/valtimo/sse/src/lib/sse.module.ts","../../../../projects/valtimo/sse/src/public-api.ts","../../../../projects/valtimo/sse/src/valtimo-sse.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// generic bucket for listeners of any type\nimport {BaseSseEvent, SseError, SseEventListener} from './sse-events.model';\n\nexport class SseSubscriptionBucket<T> {\n readonly listeners: SseEventListener<T>[] = [];\n\n on(listener: SseEventListener<T>) {\n this.listeners.push(listener);\n }\n\n off(listener: SseEventListener<T>) {\n const index = this.listeners.indexOf(listener);\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n }\n\n offAll() {\n this.listeners.length = 0;\n }\n\n sendEvent(event: T) {\n this.listeners.forEach(listener => {\n listener(event);\n });\n }\n}\n\n// error bucket for error listeners\nexport class SseErrorBucket extends SseSubscriptionBucket<SseError> {}\n\n// implicit type bucket with event for filtering\nexport class SseEventSubscriptionBucket<T extends BaseSseEvent> extends SseSubscriptionBucket<T> {\n readonly event: string;\n\n constructor(event: string) {\n super();\n this.event = event;\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SseEventType =\n | 'CASE_CREATED'\n | 'TASK_UPDATE'\n | 'PROCESS_END'\n | 'CASE_ASSIGNED'\n | 'CASE_UNASSIGNED'\n | 'ESTABLISHED_CONNECTION';\n\ntype SseEventListener<T> = (event: T) => void;\n\n// base event containing the event type\ninterface BaseSseEvent {\n eventType?: SseEventType;\n processInstanceId?: string;\n}\n\n// event implementations for json mapping objects in:\ninterface TaskUpdateSseEvent extends BaseSseEvent {\n processInstanceId: string;\n}\n\ninterface EstablishedConnectionSseEvent extends BaseSseEvent {\n subscriptionId: string;\n}\n\ninterface SseError {\n state: number;\n message: string;\n data?: any;\n}\n\nexport {\n SseError,\n EstablishedConnectionSseEvent,\n TaskUpdateSseEvent,\n BaseSseEvent,\n SseEventListener,\n SseEventType,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './sse-bucket.model';\nexport * from './sse-events.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {filter, Observable, Subject, Subscription} from 'rxjs';\nimport {\n BaseSseEvent,\n EstablishedConnectionSseEvent,\n SseEventListener,\n SseEventType,\n} from '../models/sse-events.model';\nimport {ConfigService} from '@valtimo/config';\nimport {\n SseErrorBucket,\n SseEventSubscriptionBucket,\n SseSubscriptionBucket,\n} from '../models/sse-bucket.model';\nimport {NGXLogger} from 'ngx-logger';\n\n/**\n * Server-side events service, for connecting and reconnecting to SSE,\n * and a translation layer between SSE json string data and TS typed events.\n *\n * The service is always present, and so events can be registered with {@link onMessage} and {@link onEvent},\n * and will not be lost on disconnect or reconnect of the SSE connection itself.\n * It is expected to also unregister events using the off-method variants of the on-method listeners.\n *\n * To ensure messages are received the connection must be explicitly opened with {@link connect},\n * likewise the connection should also be closed with {@link disconnect} to stop receiving messages.\n *\n * This service can reconnect itself with the backend, and might use the {@link subscriptionId} to ask for its\n * previous connection state. This state currently exists in the backend as the \"Subscriber\" class, and might\n * have a state containing queues of items that need to be sent, so you can reconnect and receive the rest.\n *\n * At this time no state data is kept, so reconnection without a subscriptionId does not give a different result\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SseService {\n private static readonly CONNECTION_RETRIES_EXCEEDED = -1;\n private static readonly NOT_CONNECTED = 0;\n private static readonly CONNECTING = 1;\n private static readonly RECONNECTING = 2;\n private static readonly CONNECTED = 10;\n\n private readonly VALTIMO_ENDPOINT_URL: string;\n private connectionCount = 0; // amount of times we have connected sequentially, no concurrent connections\n private establishedDataHandler?: Subscription = null;\n private establishedConnection?: EventSource = null;\n private establishedConnectionObservable: Observable<MessageEvent<BaseSseEvent>> = null;\n private subscriptionId?: string = null;\n private sequentialConnectionAttemptFailCount = 0;\n\n private errorBucket = new SseErrorBucket();\n private anySubscribersBucket = new SseSubscriptionBucket<BaseSseEvent>();\n private eventSubscribersBuckets: SseEventSubscriptionBucket<BaseSseEvent>[] = [];\n\n private state: number = SseService.NOT_CONNECTED;\n\n private _sseMessages$ = new Subject<MessageEvent<BaseSseEvent>>();\n\n get sseMessages$(): Observable<MessageEvent<BaseSseEvent>> {\n return this._sseMessages$.asObservable().pipe(filter(message => !!message));\n }\n\n constructor(\n private readonly configService: ConfigService,\n private readonly logger: NGXLogger\n ) {\n this.VALTIMO_ENDPOINT_URL = configService.config.valtimoApi.endpointUri;\n this.connect();\n }\n\n getSseMessagesObservableByEventType(\n eventTypes: Array<SseEventType>\n ): Observable<MessageEvent<BaseSseEvent>> {\n return this._sseMessages$.asObservable().pipe(\n filter(message => !!message),\n filter(message => eventTypes.includes(message?.data?.eventType))\n );\n }\n\n /**\n * Start receiving SSE events\n */\n private connect() {\n this.ensureConnection();\n return this;\n }\n\n private onMessage(listener: SseEventListener<BaseSseEvent>) {\n this.ensureConnection(); // ensure connection\n this.anySubscribersBucket.on(listener);\n return this;\n }\n\n private onEvent<T extends BaseSseEvent>(event: string, listener: SseEventListener<T>) {\n this.ensureConnection(); // ensure connection\n let found = false;\n this.eventSubscribersBuckets.forEach(bucket => {\n if (bucket.event === event) {\n bucket.on(listener);\n found = true;\n }\n });\n if (!found) {\n const bucket = new SseEventSubscriptionBucket(event);\n bucket.on(listener);\n this.eventSubscribersBuckets.push(bucket);\n }\n return this;\n }\n\n private offMessage(listener: SseEventListener<BaseSseEvent>) {\n this.anySubscribersBucket.off(listener);\n }\n\n private offEvent(event: string, listener: SseEventListener<any>) {\n this.eventSubscribersBuckets.forEach(bucket => {\n if (bucket.event === event) {\n bucket.off(listener);\n }\n });\n }\n\n private offEvents(type?: string) {\n this.eventSubscribersBuckets.forEach(bucket => {\n if (type === null || type === bucket.event) {\n bucket.offAll();\n }\n });\n }\n\n private offMessages() {\n this.anySubscribersBucket.offAll();\n }\n\n private offAll() {\n this.offEvents();\n this.offMessages();\n }\n\n private disconnect(keepSubscriptionId: boolean = false) {\n this.disconnectWith(SseService.NOT_CONNECTED, keepSubscriptionId);\n }\n\n private disconnectWith(state: number, keepSubscriptionId: boolean = false) {\n this.state = state;\n if (this.establishedConnection?.readyState !== EventSource.CLOSED) {\n this.establishedConnection?.close();\n }\n this.establishedDataHandler.unsubscribe();\n this.establishedConnection = null;\n this.establishedConnectionObservable = null;\n this.establishedDataHandler = null;\n if (!keepSubscriptionId) {\n this.subscriptionId = null;\n }\n }\n\n private ensureConnection(retry: boolean = false) {\n if (this.establishedConnection !== null && this.establishedConnectionObservable !== null) {\n if (this.establishedConnection.readyState !== EventSource.CLOSED) {\n return; // found\n }\n }\n if (this.state === SseService.CONNECTING || this.state === SseService.RECONNECTING) {\n return; // already connecting\n }\n this.establishedConnection = null;\n this.establishedConnectionObservable = null;\n\n this.constructNewSse(retry); // create new\n }\n\n private constructNewSse(retry: boolean) {\n this.logger.debug('subscribing to sse events');\n if (this.connectionCount > 0) {\n this.state = SseService.RECONNECTING;\n } else {\n this.state = SseService.CONNECTING;\n }\n const observable = new Observable<MessageEvent<BaseSseEvent>>(observer => {\n const eventSource = this.getEventSource();\n eventSource.onopen = () => {\n this.establishedConnection = eventSource;\n this.logger.debug('connected to sse');\n this.connectionCount++;\n this.sequentialConnectionAttemptFailCount = 0; // reset retry count\n this.state = SseService.CONNECTED;\n };\n eventSource.onmessage = event => {\n observer.next({\n ...event, // forward event object but replace data field\n data: JSON.parse(event.data), // parse JSON string to JSON object\n });\n };\n eventSource.onerror = () => {\n eventSource.close();\n observer.complete();\n if (retry) {\n this.sequentialConnectionAttemptFailCount++;\n this.logger.debug(`retry failed: ${this.sequentialConnectionAttemptFailCount}`);\n if (this.sequentialConnectionAttemptFailCount > 3) {\n this.disconnectWith(SseService.CONNECTION_RETRIES_EXCEEDED, false);\n this.err(\n `Failed to connect to SSE after ${this.sequentialConnectionAttemptFailCount} retries`\n );\n return;\n }\n }\n this.disconnect(true);\n this.ensureConnection(true);\n };\n return () => eventSource.close();\n });\n this.establishedConnectionObservable = observable;\n this.registerSseEventHandling(observable);\n return observable;\n }\n\n private getEventSource() {\n let suffix = '';\n if (this.subscriptionId != null) {\n suffix = '/' + this.subscriptionId;\n }\n // subscribe to /sse or /sse/<subscriptionId>\n return new EventSource(this.VALTIMO_ENDPOINT_URL + 'v1/sse' + suffix);\n }\n\n private registerSseEventHandling(observable: Observable<MessageEvent<BaseSseEvent>>) {\n this.establishedDataHandler = observable.subscribe(event => {\n this._sseMessages$.next(event);\n this.internalListenerEstablishConnection(event);\n // notify all generic listeners\n this.anySubscribersBucket.sendEvent(event.data);\n // notify the specific event listener bucket\n this.eventSubscribersBuckets.forEach(bucket => {\n if (bucket.event === event?.data?.eventType) {\n bucket.sendEvent(event.data);\n }\n });\n });\n }\n\n private internalListenerEstablishConnection(event: MessageEvent<BaseSseEvent>) {\n if (event?.data?.eventType !== 'ESTABLISHED_CONNECTION') {\n return;\n }\n this.logger.debug(`established connection: ${event}`);\n this.subscriptionId = (event.data as EstablishedConnectionSseEvent).subscriptionId;\n }\n\n private err(message: string, ...data: any) {\n this.errorBucket.sendEvent({\n state: this.state,\n message,\n data,\n });\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './sse.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class SseModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of sse\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/sse.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@valtimo/sse",
3
3
  "license": "EUPL-1.2",
4
- "version": "11.3.2",
4
+ "version": "12.0.0",
5
5
  "peerDependencies": {
6
- "@angular/common": "^16.2.0",
7
- "@angular/core": "^16.2.0"
6
+ "@angular/common": "^17.2.2",
7
+ "@angular/core": "^17.2.2"
8
8
  },
9
9
  "dependencies": {
10
10
  "tslib": "2.6.2"