@microsoft/applicationinsights-angularplugin-js 15.3.9-nightly.2604-02 → 15.4.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.
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
49
49
  providedIn: "root"
50
50
  }]
51
51
  }], ctorParameters: function () { return []; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tanMvc3JjL2xpYi9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBTWhGLE1BQU0sT0FBTyw0Q0FBNEM7SUFLckQ7UUFGUSxrQkFBYSxHQUFvQixFQUFFLENBQUM7UUFHeEMsSUFBSSw0Q0FBNEMsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ2hFLDRDQUE0QyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsZUFBNkI7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDM0MsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQTJCO1FBQzlDLElBQUksWUFBWSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsWUFBMkI7UUFDakQsSUFBSSxZQUFZLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNyRCxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDckM7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQzFDLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDdEMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7QUE3Q2EscURBQVEsR0FBaUQsSUFBSSxDQUFDOzBJQURuRSw0Q0FBNEM7OElBQTVDLDRDQUE0QyxjQUZ6QyxNQUFNOzRGQUVULDRDQUE0QztrQkFIeEQsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUFwcEluc2lnaHRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb25cIjtcclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgaXNGdW5jdGlvbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBJRXJyb3JTZXJ2aWNlIH0gZnJvbSBcIi4vSUVycm9yU2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlIGltcGxlbWVudHMgSUVycm9yU2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuYWx5dGljc1BsdWdpbjogSUFwcEluc2lnaHRzO1xyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2VzOiBJRXJyb3JTZXJ2aWNlW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBpZiAoQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHBsdWdpbihhbmFseXRpY3NQbHVnaW46IElBcHBJbnNpZ2h0cykge1xyXG4gICAgICAgIHRoaXMuYW5hbHl0aWNzUGx1Z2luID0gYW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhckVycm9ySGFuZGxlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvclNlcnZpY2VzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEVycm9ySGFuZGxlcihlcnJvclNlcnZpY2U6IElFcnJvclNlcnZpY2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXJyb3JTZXJ2aWNlICYmIGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yU2VydmljZXMucHVzaChlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlRXJyb3JIYW5kbGVyKGVycm9yU2VydmljZTogSUVycm9yU2VydmljZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlcnJvclNlcnZpY2UgJiYgaXNGdW5jdGlvbihlcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuZXJyb3JTZXJ2aWNlcy5pbmRleE9mKGVycm9yU2VydmljZSk7XHJcbiAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yU2VydmljZXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFuYWx5dGljc1BsdWdpbikge1xyXG4gICAgICAgICAgICB0aGlzLmFuYWx5dGljc1BsdWdpbi50cmFja0V4Y2VwdGlvbih7IGV4Y2VwdGlvbjogZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5lcnJvclNlcnZpY2VzICYmIHRoaXMuZXJyb3JTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGFyckZvckVhY2godGhpcy5lcnJvclNlcnZpY2VzLCBlcnJvclNlcnZpY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tanMvc3JjL2xpYi9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQU05RixNQUFNLE9BQU8sNENBQTRDO0lBS3JEO1FBRlEsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBR3hDLElBQUksNENBQTRDLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUNoRSw0Q0FBNEMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztJQUVELElBQVcsTUFBTSxDQUFDLGVBQTZCO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQzNDLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUEyQjtRQUM5QyxJQUFJLFlBQVksSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFlBQTJCO1FBQ2pELElBQUksWUFBWSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckQsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JELFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3RDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ25DO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7O0FBN0NhLHFEQUFRLEdBQWlELElBQUksQ0FBQzswSUFEbkUsNENBQTRDOzhJQUE1Qyw0Q0FBNEMsY0FGekMsTUFBTTs0RkFFVCw0Q0FBNEM7a0JBSHhELFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IElBcHBJbnNpZ2h0cywgYXJyRm9yRWFjaCwgaXNGdW5jdGlvbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBJRXJyb3JTZXJ2aWNlIH0gZnJvbSBcIi4vSUVycm9yU2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlIGltcGxlbWVudHMgSUVycm9yU2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuYWx5dGljc1BsdWdpbjogSUFwcEluc2lnaHRzO1xyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2VzOiBJRXJyb3JTZXJ2aWNlW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBpZiAoQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHBsdWdpbihhbmFseXRpY3NQbHVnaW46IElBcHBJbnNpZ2h0cykge1xyXG4gICAgICAgIHRoaXMuYW5hbHl0aWNzUGx1Z2luID0gYW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhckVycm9ySGFuZGxlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvclNlcnZpY2VzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEVycm9ySGFuZGxlcihlcnJvclNlcnZpY2U6IElFcnJvclNlcnZpY2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXJyb3JTZXJ2aWNlICYmIGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yU2VydmljZXMucHVzaChlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlRXJyb3JIYW5kbGVyKGVycm9yU2VydmljZTogSUVycm9yU2VydmljZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlcnJvclNlcnZpY2UgJiYgaXNGdW5jdGlvbihlcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuZXJyb3JTZXJ2aWNlcy5pbmRleE9mKGVycm9yU2VydmljZSk7XHJcbiAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yU2VydmljZXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFuYWx5dGljc1BsdWdpbikge1xyXG4gICAgICAgICAgICB0aGlzLmFuYWx5dGljc1BsdWdpbi50cmFja0V4Y2VwdGlvbih7IGV4Y2VwdGlvbjogZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5lcnJvclNlcnZpY2VzICYmIHRoaXMuZXJyb3JTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGFyckZvckVhY2godGhpcy5lcnJvclNlcnZpY2VzLCBlcnJvclNlcnZpY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuIl19
@@ -1,6 +1,5 @@
1
1
  import { Component } from "@angular/core";
2
- import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from "@microsoft/applicationinsights-common";
3
- import { BaseTelemetryPlugin, arrForEach, getLocation, _throwInternal, generateW3CId, onConfigChange, isArray } from "@microsoft/applicationinsights-core-js";
2
+ import { BaseTelemetryPlugin, arrForEach, getLocation, _throwInternal, generateW3CId, onConfigChange, isArray, PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from "@microsoft/applicationinsights-core-js";
4
3
  import dynamicProto from "@microsoft/dynamicproto-js";
5
4
  import { NavigationEnd } from "@angular/router";
6
5
  import { ApplicationinsightsAngularpluginErrorService } from "./applicationinsights-angularplugin-error.service";
@@ -33,6 +32,7 @@ export class AngularPlugin extends BaseTelemetryPlugin {
33
32
  _eventSubscription = null;
34
33
  _isPageInitialLoad = true;
35
34
  _prevRouter = undefValue;
35
+ _errorServiceInstance = null;
36
36
  };
37
37
  _initDefaults();
38
38
  _self.initialize = (config, core, extensions, pluginChain) => {
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
149
149
  type: Component,
150
150
  args: [{ selector: "lib-applicationinsights-angularplugin-js", template: "" }]
151
151
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQzBCLDBCQUEwQixFQUFFLHlCQUF5QixFQUNyRixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDd0MsbUJBQW1CLEVBQUUsVUFBVSxFQUNoRCxXQUFXLEVBQUUsY0FBYyxFQUM5QixhQUFhLEVBQUUsY0FBYyxFQUFtQixPQUFPLEVBQ2pGLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxZQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBSWpILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFnQmxELElBQUksVUFBVSxDQUFDO0FBRWYsTUFBTSw2QkFBNkIsR0FBNkMsYUFBYSxDQUFDO0lBQzFGLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBQztJQUN0QyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUM7Q0FDaEQsQ0FBQyxDQUFDO0FBT0gsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxhQUFjLFNBQVEsbUJBQW1CO0lBV2xELFlBQW9CLFNBQW9CO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFEsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVZqQyxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQVdoQyxJQUFJLGdCQUFpQyxDQUFDO1FBQ3RDLElBQUksaUJBQW1DLENBQUM7UUFDeEMsSUFBSSxXQUFvQyxDQUFDO1FBQ3pDLElBQUksa0JBQWdDLENBQUM7UUFDckMsSUFBSSxrQkFBMkIsQ0FBQztRQUNoQyxJQUFJLFdBQW1CLENBQUM7UUFDeEIsSUFBSSxxQkFBbUUsQ0FBQztRQUV4RSxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUUvQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZCLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDeEIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLGtCQUFrQixHQUFHLElBQUksQ0FBQztnQkFDMUIsV0FBVyxHQUFHLFVBQVUsQ0FBQztZQUM3QixDQUFDLENBQUM7WUFFRixhQUFhLEVBQUUsQ0FBQztZQUVoQixLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsTUFBZ0MsRUFBRSxJQUFzQixFQUFFLFVBQXFCLEVBQy9GLFdBQW1DLEVBQUUsRUFBRTtnQkFDdkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFFeEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQzlDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDN0IsV0FBVyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQTBCLEtBQUssQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztvQkFDdEcsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBbUIsMEJBQTBCLENBQUMsRUFBRSxNQUEwQixDQUFDO29CQUM3RyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFrQix5QkFBeUIsQ0FBQyxFQUFFLE1BQXlCLENBQUM7b0JBRXpHLElBQUksV0FBVyxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUM7d0JBQ3JDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7cUJBQzVGO29CQUNELHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxxQkFBcUI7d0JBQ2pFLENBQUMsQ0FBQyw0Q0FBNEMsQ0FBQyxRQUFRLENBQUM7b0JBRTVELCtCQUErQjtvQkFFL0IsSUFBSSxnQkFBZ0IsRUFBRTt3QkFDbEIsSUFBSSxxQkFBcUIsS0FBSyxJQUFJLEVBQUU7NEJBQ2hDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQzs0QkFDaEQsSUFBSSxXQUFXLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0NBQ2pFLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0NBQzNDLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsWUFBMkIsRUFBRSxFQUFFO29DQUNsRSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7Z0NBQ3hELENBQUMsQ0FBQyxDQUFDOzZCQUNOO3lCQUNKO3FCQUNKO29CQUVELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7d0JBQ3BDLHFEQUFxRDt3QkFFckQscUNBQXFDO3dCQUNyQyxJQUFJLGtCQUFrQixFQUFFOzRCQUNwQixrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt5QkFDcEM7d0JBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFDOzRCQUNuQixzRUFBc0U7NEJBQ3RFLElBQUksa0JBQWtCLEVBQUM7Z0NBQ25CLE1BQU0saUJBQWlCLEdBQXVCO29DQUMxQyxHQUFHLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHO2lDQUM5QixDQUFDO2dDQUNGLEtBQUssQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQzs2QkFDMUM7NEJBRUQsaUNBQWlDOzRCQUNqQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0NBQzdELElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUFFO29DQUN2QixJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUU7d0NBQ2hDLHlEQUF5RDt3Q0FDekQsSUFBSSxrQkFBa0IsRUFBRTs0Q0FDcEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFDOzRDQUMzQixPQUFPO3lDQUNWO3dDQUNELE1BQU0sR0FBRyxHQUF1Qjs0Q0FDNUIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRzs0Q0FDM0IsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLDhEQUE4RDt5Q0FDN0YsQ0FBQzt3Q0FDRixLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FDQUM1QjtpQ0FDSjs0QkFDTCxDQUFDLENBQUMsQ0FBQzt5QkFDTjt3QkFDRCxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztxQkFDcEM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFSix3QkFBd0I7Z0JBQ3hCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztnQkFDL0MsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDNUQsQ0FBQyxDQUFDO1lBRUYsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLFFBQTRCLEVBQUUsRUFBRTtnQkFDbkQsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDbEIsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7b0JBQy9CLElBQUksaUJBQWlCLElBQUksaUJBQWlCLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7d0JBQzVGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO3dCQUNuRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUM7cUJBQ2hHO29CQUNELGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDNUM7cUJBQU07b0JBQ0gsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsOEZBRWlELGdGQUFnRixDQUFDLENBQUM7aUJBQ3BLO1lBQ0wsQ0FBQyxDQUFDO1lBR0YsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLFNBQTBDLEVBQUUsV0FBbUMsRUFDaEcsYUFBMEIsRUFBa0IsRUFBRTtnQkFDOUMsSUFBSSxnQkFBZ0IsSUFBSSxxQkFBcUIsS0FBSyxJQUFJLEVBQUU7b0JBQ3BELHFCQUFxQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ3BDLElBQUksV0FBVyxFQUFFO3dCQUNiLElBQUksV0FBVyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRTs0QkFDdkUscUJBQXFCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzt5QkFFOUM7cUJBQ0o7aUJBQ0o7Z0JBRUQsSUFBSSxrQkFBa0IsRUFBRTtvQkFDcEIsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2pDLGtCQUFrQixHQUFHLElBQUksQ0FBQztpQkFDN0I7Z0JBQ0QsYUFBYSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsT0FBa0M7UUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUdELFVBQVUsQ0FBQyxNQUFnQyxFQUFFLElBQXNCLEVBQUUsVUFBcUIsRUFBRSxXQUFtQztRQUMzSCxvRkFBb0Y7SUFDeEYsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUE0QjtRQUN0QyxvRkFBb0Y7SUFDeEYsQ0FBQzs7MkdBaktRLGFBQWE7K0ZBQWIsYUFBYSx1R0FKWixFQUFFOzRGQUlILGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0ksMENBQTBDLFlBQzFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgSUNvbmZpZywgSVBhZ2VWaWV3VGVsZW1ldHJ5LCBQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllciwgQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllclxyXG59IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7XHJcbiAgICBJUGx1Z2luLCBJQ29uZmlndXJhdGlvbiwgSUFwcEluc2lnaHRzQ29yZSwgQmFzZVRlbGVtZXRyeVBsdWdpbiwgYXJyRm9yRWFjaCwgSVRlbGVtZXRyeUl0ZW0sIElUZWxlbWV0cnlQbHVnaW5DaGFpbixcclxuICAgIElQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCwgZ2V0TG9jYXRpb24sIF90aHJvd0ludGVybmFsLCBlTG9nZ2luZ1NldmVyaXR5LCBfZUludGVybmFsTWVzc2FnZUlkLCBJUHJvY2Vzc1RlbGVtZXRyeVVubG9hZENvbnRleHQsXHJcbiAgICBJVGVsZW1ldHJ5VW5sb2FkU3RhdGUsIGdlbmVyYXRlVzNDSWQsIG9uQ29uZmlnQ2hhbmdlLCBJQ29uZmlnRGVmYXVsdHMsIGlzQXJyYXksIElUZWxlbWV0cnlQbHVnaW5cclxufSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gXCIuL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1lcnJvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElFcnJvclNlcnZpY2UgfSBmcm9tIFwiLi9JRXJyb3JTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFuYWx5dGljc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzXCI7XHJcbmltcG9ydCB7b2JqRGVlcEZyZWV6ZX0gZnJvbSBcIkBuZXZ3YXJlMjEvdHMtdXRpbHNcIjtcclxuaW1wb3J0IHsgUHJvcGVydGllc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qc1wiO1xyXG5cclxuaW50ZXJmYWNlIElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciByb3V0ZXIgZm9yIGVuYWJsaW5nIEFwcGxpY2F0aW9uIEluc2lnaHRzIFBhZ2VWaWV3IHRyYWNraW5nLlxyXG4gICAgICovXHJcbiAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZXJyb3Igc2VydmljZSBmb3IgZ2xvYmFsIGVycm9yIGhhbmRsaW5nLlxyXG4gICAgICovXHJcbiAgICBlcnJvclNlcnZpY2VzPzogSUVycm9yU2VydmljZVtdO1xyXG4gICAgdXNlSW5qZWN0b3I/OiBib29sZWFuO1xyXG59XHJcblxyXG5sZXQgdW5kZWZWYWx1ZTtcclxuXHJcbmNvbnN0IGRlZmF1bHRBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnOiBJQ29uZmlnRGVmYXVsdHM8SUFuZ3VsYXJFeHRlbnNpb25Db25maWc+ID0gb2JqRGVlcEZyZWV6ZSh7XHJcbiAgICByb3V0ZXI6IHsgYmxrVmFsOiB0cnVlLCB2OiB1bmRlZlZhbHVlfSxcclxuICAgIGVycm9yU2VydmljZXM6IHsgYmxrVmFsOiB0cnVlLCB2OiB1bmRlZlZhbHVlfVxyXG59KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwibGliLWFwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qc1wiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBzdHlsZXM6IFtdXHJcbn0pXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclBsdWdpbiBleHRlbmRzIEJhc2VUZWxlbWV0cnlQbHVnaW4ge1xyXG4gICAgcHVibGljIHByaW9yaXR5ID0gMTg2O1xyXG4gICAgcHVibGljIGlkZW50aWZpZXIgPSBcIkFuZ3VsYXJQbHVnaW5cIjtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgbmV4dCBleHRlbnNpb24gZm9yIHRlbGVtZXRyeSBwcm9jZXNzaW5nLCB0aGlzIGlzIG5vdCBvcHRpb25hbCBhcyBwbHVnaW5zIHNob3VsZCB1c2UgdGhlXHJcbiAgICAgKiBwcm9jZXNzTmV4dCgpIGZ1bmN0aW9uIG9mIHRoZSBwYXNzZWQgSVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0IGluc3RlYWQuIEl0IGlzIGJlaW5nIGtlcHQgZm9yXHJcbiAgICAgKiBub3cgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldE5leHRQbHVnaW46IChuZXh0OiBJVGVsZW1ldHJ5UGx1Z2luIHwgSVRlbGVtZXRyeVBsdWdpbkNoYWluKSA9PiB2b2lkO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yPzogSW5qZWN0b3IpIHsgLy8gX2luamVjdG9yIGlzIG9wdGlvbmFsIHRvIHByb3ZpZGVcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGxldCBfYW5hbHl0aWNzUGx1Z2luOiBBbmFseXRpY3NQbHVnaW47XHJcbiAgICAgICAgbGV0IF9wcm9wZXJ0aWVzUGx1Z2luOiBQcm9wZXJ0aWVzUGx1Z2luO1xyXG4gICAgICAgIGxldCBfYW5ndWxhckNmZzogSUFuZ3VsYXJFeHRlbnNpb25Db25maWc7XHJcbiAgICAgICAgbGV0IF9ldmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgICAgIGxldCBfaXNQYWdlSW5pdGlhbExvYWQ6IGJvb2xlYW47XHJcbiAgICAgICAgbGV0IF9wcmV2Um91dGVyOiBSb3V0ZXI7XHJcbiAgICAgICAgbGV0IF9lcnJvclNlcnZpY2VJbnN0YW5jZTogQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2U7XHJcblxyXG4gICAgICAgIGR5bmFtaWNQcm90byhBbmd1bGFyUGx1Z2luLCB0aGlzLCAoX3NlbGYsIF9iYXNlKSA9PiB7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBfaW5pdERlZmF1bHRzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgX2FuYWx5dGljc1BsdWdpbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfcHJvcGVydGllc1BsdWdpbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfYW5ndWxhckNmZyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfZXZlbnRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2lzUGFnZUluaXRpYWxMb2FkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIF9wcmV2Um91dGVyID0gdW5kZWZWYWx1ZTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuXHJcbiAgICAgICAgICAgIF9zZWxmLmluaXRpYWxpemUgPSAoY29uZmlnOiBJQ29uZmlndXJhdGlvbiAmIElDb25maWcsIGNvcmU6IElBcHBJbnNpZ2h0c0NvcmUsIGV4dGVuc2lvbnM6IElQbHVnaW5bXSxcclxuICAgICAgICAgICAgICAgIHBsdWdpbkNoYWluPzogSVRlbGVtZXRyeVBsdWdpbkNoYWluKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzdXBlci5pbml0aWFsaXplKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgX3NlbGYuX2FkZEhvb2sob25Db25maWdDaGFuZ2UoY29uZmlnLCAoZGV0YWlscykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjdHggPSBfc2VsZi5fZ2V0VGVsQ3R4KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2FuZ3VsYXJDZmcgPSBjdHguZ2V0RXh0Q2ZnPElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnPihfc2VsZi5pZGVudGlmaWVyLCBkZWZhdWx0QW5ndWxhckV4dGVuc2lvbkNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Byb3BlcnRpZXNQbHVnaW4gPSBjb3JlLmdldFBsdWdpbjxQcm9wZXJ0aWVzUGx1Z2luPihQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllcik/LnBsdWdpbiBhcyBQcm9wZXJ0aWVzUGx1Z2luO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hbmFseXRpY3NQbHVnaW4gPSBjb3JlLmdldFBsdWdpbjxBbmFseXRpY3NQbHVnaW4+KEFuYWx5dGljc1BsdWdpbklkZW50aWZpZXIpPy5wbHVnaW4gYXMgQW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfYW5ndWxhckNmZy51c2VJbmplY3RvciAmJiBfaW5qZWN0b3Ipe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UgPSBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UgPyBfZXJyb3JTZXJ2aWNlSW5zdGFuY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZS5pbnN0YW5jZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdHdvIGluc3RhbmNlIG9mIGVycm9yU2VydmljZVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2FuYWx5dGljc1BsdWdpbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2Vycm9yU2VydmljZUluc3RhbmNlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UucGx1Z2luID0gX2FuYWx5dGljc1BsdWdpbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYW5ndWxhckNmZy5lcnJvclNlcnZpY2VzICYmIGlzQXJyYXkoX2FuZ3VsYXJDZmcuZXJyb3JTZXJ2aWNlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UuY2xlYXJFcnJvckhhbmRsZXJzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyRm9yRWFjaChfYW5ndWxhckNmZy5lcnJvclNlcnZpY2VzLCAoZXJyb3JTZXJ2aWNlOiBJRXJyb3JTZXJ2aWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZS5hZGRFcnJvckhhbmRsZXIoZXJyb3JTZXJ2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2FuZ3VsYXJDZmcucm91dGVyICE9PSBfcHJldlJvdXRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXIgaXMgY2hhbmdlZCwgb3IgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5zdWJzY3JpYmUgcHJldmlvdXMgcm91dGVyIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2V2ZW50U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmd1bGFyQ2ZnLnJvdXRlcil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHRyYWNrIHBhZ2UgdmlldyBpZiBpdCBpcyB0aGUgaW5pdGlhbCBwYWdlIGxvYWQgZm9yIHRoaXMgcGx1Z2luXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzUGFnZUluaXRpYWxMb2FkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlVmlld1RlbGVtZXRyeTogSVBhZ2VWaWV3VGVsZW1ldHJ5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmk6IF9hbmd1bGFyQ2ZnLnJvdXRlci51cmxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLnRyYWNrUGFnZVZpZXcocGFnZVZpZXdUZWxlbWV0cnkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJzY3JpYmUgdG8gbmV3IHJvdXRlciBldmVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ldmVudFN1YnNjcmlwdGlvbiA9IF9hbmd1bGFyQ2ZnLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3NlbGYuaXNJbml0aWFsaXplZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYWdlIGluaXRpYWwgbG9hZCwgZG8gbm90IGNhbGwgdHJhY2tQYWdlVmlldyB0d2ljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9pc1BhZ2VJbml0aWFsTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pc1BhZ2VJbml0aWFsTG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHB2dDogSVBhZ2VWaWV3VGVsZW1ldHJ5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogX2FuZ3VsYXJDZmcucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGR1cmF0aW9uOiAwIH0gLy8gU1BBIHJvdXRlIGNoYW5nZSBsb2FkaW5nIGR1cmF0aW9ucyBhcmUgdW5kZWZpbmVkLCBzbyBzZW5kIDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc2VsZi50cmFja1BhZ2VWaWV3KHB2dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfcHJldlJvdXRlciA9IF9hbmd1bGFyQ2ZnLnJvdXRlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gZm9yIHRlc3QgcHVycG9zZSBvbmx5XHJcbiAgICAgICAgICAgICAgICBfc2VsZltcIl9nZXREYmdQbGdUYXJnZXRzXCJdID0gKCkgPT4gX2FuZ3VsYXJDZmc7XHJcbiAgICAgICAgICAgICAgICBfc2VsZltcIl9nZXRFcnJvclNlcnZpY2VcIl0gPSAoKSA9PiBfZXJyb3JTZXJ2aWNlSW5zdGFuY2U7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBfc2VsZi50cmFja1BhZ2VWaWV3ID0gKHBhZ2VWaWV3OiBJUGFnZVZpZXdUZWxlbWV0cnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChfYW5hbHl0aWNzUGx1Z2luKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBnZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfcHJvcGVydGllc1BsdWdpbiAmJiBfcHJvcGVydGllc1BsdWdpbi5jb250ZXh0ICYmIF9wcm9wZXJ0aWVzUGx1Z2luLmNvbnRleHQudGVsZW1ldHJ5VHJhY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Byb3BlcnRpZXNQbHVnaW4uY29udGV4dC50ZWxlbWV0cnlUcmFjZS50cmFjZUlEID0gZ2VuZXJhdGVXM0NJZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfcHJvcGVydGllc1BsdWdpbi5jb250ZXh0LnRlbGVtZXRyeVRyYWNlLm5hbWUgPSBsb2NhdGlvbiAmJiBsb2NhdGlvbi5wYXRobmFtZSB8fCBcIl91bmtub3duX1wiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBfYW5hbHl0aWNzUGx1Z2luLnRyYWNrUGFnZVZpZXcocGFnZVZpZXcpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhyb3dJbnRlcm5hbChfc2VsZi5kaWFnTG9nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVMb2dnaW5nU2V2ZXJpdHkuQ1JJVElDQUwsIF9lSW50ZXJuYWxNZXNzYWdlSWQuVGVsZW1ldHJ5SW5pdGlhbGl6ZXJGYWlsZWQsIFwiQW5hbHl0aWNzIHBsdWdpbiBpcyBub3QgYXZhaWxhYmxlLCBBbmd1bGFyIHBsdWdpbiB0ZWxlbWV0cnkgd2lsbCBub3QgYmUgc2VudDogXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIFxyXG5cclxuICAgICAgICAgICAgX3NlbGYuX2RvVGVhcmRvd24gPSAodW5sb2FkQ3R4PzogSVByb2Nlc3NUZWxlbWV0cnlVbmxvYWRDb250ZXh0LCB1bmxvYWRTdGF0ZT86IElUZWxlbWV0cnlVbmxvYWRTdGF0ZSxcclxuICAgICAgICAgICAgICAgIGFzeW5jQ2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogdm9pZCB8IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9hbmFseXRpY3NQbHVnaW4gJiYgX2Vycm9yU2VydmljZUluc3RhbmNlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlLnBsdWdpbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmd1bGFyQ2ZnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYW5ndWxhckNmZy5lcnJvclNlcnZpY2VzICYmIEFycmF5LmlzQXJyYXkoX2FuZ3VsYXJDZmcuZXJyb3JTZXJ2aWNlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZS5jbGVhckVycm9ySGFuZGxlcnMoKTtcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBpZiAoX2V2ZW50U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2V2ZW50U3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZCBQYXJ0IEEgZmllbGRzIHRvIHRoZSBldmVudFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgdGhhdCBuZWVkcyB0byBiZSBwcm9jZXNzZWRcclxuICAgICAqL1xyXG4gICAgcHJvY2Vzc1RlbGVtZXRyeShldmVudDogSVRlbGVtZXRyeUl0ZW0sIGl0ZW1DdHg/OiBJUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQpIHtcclxuICAgICAgICB0aGlzLnByb2Nlc3NOZXh0KGV2ZW50LCBpdGVtQ3R4KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaW5pdGlhbGl6ZShjb25maWc6IElDb25maWd1cmF0aW9uICYgSUNvbmZpZywgY29yZTogSUFwcEluc2lnaHRzQ29yZSwgZXh0ZW5zaW9uczogSVBsdWdpbltdLCBwbHVnaW5DaGFpbj86IElUZWxlbWV0cnlQbHVnaW5DaGFpbikge1xyXG4gICAgICAgIC8vIEBEeW5hbWljUHJvdG9TdHViIC0tIERPIE5PVCBhZGQgYW55IGNvZGUgYXMgdGhpcyB3aWxsIGJlIHJlbW92ZWQgZHVyaW5nIHBhY2thZ2luZ1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrUGFnZVZpZXcocGFnZVZpZXc6IElQYWdlVmlld1RlbGVtZXRyeSkge1xyXG4gICAgICAgIC8vIEBEeW5hbWljUHJvdG9TdHViIC0tIERPIE5PVCBhZGQgYW55IGNvZGUgYXMgdGhpcyB3aWxsIGJlIHJlbW92ZWQgZHVyaW5nIHBhY2thZ2luZ1xyXG4gICAgfVxyXG5cclxuXHJcbiAgIFxyXG59XHJcbiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ3dDLG1CQUFtQixFQUFFLFVBQVUsRUFDaEQsV0FBVyxFQUFFLGNBQWMsRUFDOUIsYUFBYSxFQUFFLGNBQWMsRUFBbUIsT0FBTyxFQUMxRCwwQkFBMEIsRUFBRSx5QkFBeUIsRUFDNUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRCxPQUFPLFlBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFJakgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQWdCbEQsSUFBSSxVQUFVLENBQUM7QUFFZixNQUFNLDZCQUE2QixHQUE2QyxhQUFhLENBQUM7SUFDMUYsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFDO0lBQ3RDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBQztDQUNoRCxDQUFDLENBQUM7QUFPSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFJbEQsWUFBb0IsU0FBb0I7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFEUSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBSGpDLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixlQUFVLEdBQUcsZUFBZSxDQUFDO1FBSWhDLElBQUksZ0JBQWlDLENBQUM7UUFDdEMsSUFBSSxpQkFBbUMsQ0FBQztRQUN4QyxJQUFJLFdBQW9DLENBQUM7UUFDekMsSUFBSSxrQkFBZ0MsQ0FBQztRQUNyQyxJQUFJLGtCQUEyQixDQUFDO1FBQ2hDLElBQUksV0FBbUIsQ0FBQztRQUN4QixJQUFJLHFCQUFtRSxDQUFDO1FBRXhFLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBRS9DLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtnQkFDdkIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ25CLGtCQUFrQixHQUFHLElBQUksQ0FBQztnQkFDMUIsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixXQUFXLEdBQUcsVUFBVSxDQUFDO2dCQUN6QixxQkFBcUIsR0FBRyxJQUFJLENBQUM7WUFDakMsQ0FBQyxDQUFDO1lBRUYsYUFBYSxFQUFFLENBQUM7WUFFaEIsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQXNCLEVBQUUsSUFBc0IsRUFBRSxVQUFxQixFQUNyRixXQUFtQyxFQUFFLEVBQUU7Z0JBQ3ZDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBRXhELEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUM5QyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQzdCLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUEwQixLQUFLLENBQUMsVUFBVSxFQUFFLDZCQUE2QixDQUFDLENBQUM7b0JBQ3RHLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQW1CLDBCQUEwQixDQUFDLEVBQUUsTUFBMEIsQ0FBQztvQkFDN0csZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBa0IseUJBQXlCLENBQUMsRUFBRSxNQUF5QixDQUFDO29CQUV6RyxJQUFJLFdBQVcsQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFDO3dCQUNyQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO3FCQUM1RjtvQkFDRCxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCO3dCQUNqRSxDQUFDLENBQUMsNENBQTRDLENBQUMsUUFBUSxDQUFDO29CQUU1RCwrQkFBK0I7b0JBRS9CLElBQUksZ0JBQWdCLEVBQUU7d0JBQ2xCLElBQUkscUJBQXFCLEtBQUssSUFBSSxFQUFFOzRCQUNoQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7NEJBQ2hELElBQUksV0FBVyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dDQUNqRSxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dDQUMzQyxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLFlBQTJCLEVBQUUsRUFBRTtvQ0FDbEUscUJBQXFCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dDQUN4RCxDQUFDLENBQUMsQ0FBQzs2QkFDTjt5QkFDSjtxQkFDSjtvQkFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFO3dCQUNwQyxxREFBcUQ7d0JBRXJELHFDQUFxQzt3QkFDckMsSUFBSSxrQkFBa0IsRUFBRTs0QkFDcEIsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7eUJBQ3BDO3dCQUVELElBQUksV0FBVyxDQUFDLE1BQU0sRUFBQzs0QkFDbkIsc0VBQXNFOzRCQUN0RSxJQUFJLGtCQUFrQixFQUFDO2dDQUNuQixNQUFNLGlCQUFpQixHQUF1QjtvQ0FDMUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRztpQ0FDOUIsQ0FBQztnQ0FDRixLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7NkJBQzFDOzRCQUVELGlDQUFpQzs0QkFDakMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dDQUM3RCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQ0FDdkIsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO3dDQUNoQyx5REFBeUQ7d0NBQ3pELElBQUksa0JBQWtCLEVBQUU7NENBQ3BCLGtCQUFrQixHQUFHLEtBQUssQ0FBQzs0Q0FDM0IsT0FBTzt5Q0FDVjt3Q0FDRCxNQUFNLEdBQUcsR0FBdUI7NENBQzVCLEdBQUcsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUc7NENBQzNCLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyw4REFBOEQ7eUNBQzdGLENBQUM7d0NBQ0YsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQ0FDNUI7aUNBQ0o7NEJBQ0wsQ0FBQyxDQUFDLENBQUM7eUJBQ047d0JBQ0QsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7cUJBQ3BDO2dCQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRUosd0JBQXdCO2dCQUN4QixLQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQzVELENBQUMsQ0FBQztZQUVGLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxRQUE0QixFQUFFLEVBQUU7Z0JBQ25ELElBQUksZ0JBQWdCLEVBQUU7b0JBQ2xCLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO29CQUMvQixJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO3dCQUM1RixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQzt3QkFDbkUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO3FCQUNoRztvQkFDRCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzVDO3FCQUFNO29CQUNILGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLDhGQUVpRCxnRkFBZ0YsQ0FBQyxDQUFDO2lCQUNwSztZQUNMLENBQUMsQ0FBQztZQUdGLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxTQUEwQyxFQUFFLFdBQW1DLEVBQ2hHLGFBQTBCLEVBQWtCLEVBQUU7Z0JBQzlDLElBQUksZ0JBQWdCLElBQUkscUJBQXFCLEtBQUssSUFBSSxFQUFFO29CQUNwRCxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNwQyxJQUFJLFdBQVcsRUFBRTt3QkFDYixJQUFJLFdBQVcsQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7NEJBQ3ZFLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7eUJBRTlDO3FCQUNKO2lCQUNKO2dCQUVELElBQUksa0JBQWtCLEVBQUU7b0JBQ3BCLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNqQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7aUJBQzdCO2dCQUNELGFBQWEsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFxQixFQUFFLE9BQWtDO1FBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFHRCxVQUFVLENBQUMsTUFBc0IsRUFBRSxJQUFzQixFQUFFLFVBQXFCLEVBQUUsV0FBbUM7UUFDakgsb0ZBQW9GO0lBQ3hGLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBNEI7UUFDdEMsb0ZBQW9GO0lBQ3hGLENBQUM7OzJHQTNKUSxhQUFhOytGQUFiLGFBQWEsdUdBSlosRUFBRTs0RkFJSCxhQUFhO2tCQU56QixTQUFTOytCQUNJLDBDQUEwQyxZQUMxQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3Rvcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICAgIElQbHVnaW4sIElDb25maWd1cmF0aW9uLCBJQXBwSW5zaWdodHNDb3JlLCBCYXNlVGVsZW1ldHJ5UGx1Z2luLCBhcnJGb3JFYWNoLCBJVGVsZW1ldHJ5SXRlbSwgSVRlbGVtZXRyeVBsdWdpbkNoYWluLFxyXG4gICAgSVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0LCBnZXRMb2NhdGlvbiwgX3Rocm93SW50ZXJuYWwsIGVMb2dnaW5nU2V2ZXJpdHksIF9lSW50ZXJuYWxNZXNzYWdlSWQsIElQcm9jZXNzVGVsZW1ldHJ5VW5sb2FkQ29udGV4dCxcclxuICAgIElUZWxlbWV0cnlVbmxvYWRTdGF0ZSwgZ2VuZXJhdGVXM0NJZCwgb25Db25maWdDaGFuZ2UsIElDb25maWdEZWZhdWx0cywgaXNBcnJheSxcclxuICAgIElQYWdlVmlld1RlbGVtZXRyeSwgUHJvcGVydGllc1BsdWdpbklkZW50aWZpZXIsIEFuYWx5dGljc1BsdWdpbklkZW50aWZpZXJcclxufSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gXCIuL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1lcnJvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElFcnJvclNlcnZpY2UgfSBmcm9tIFwiLi9JRXJyb3JTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFuYWx5dGljc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzXCI7XHJcbmltcG9ydCB7b2JqRGVlcEZyZWV6ZX0gZnJvbSBcIkBuZXZ3YXJlMjEvdHMtdXRpbHNcIjtcclxuaW1wb3J0IHsgUHJvcGVydGllc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qc1wiO1xyXG5cclxuaW50ZXJmYWNlIElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciByb3V0ZXIgZm9yIGVuYWJsaW5nIEFwcGxpY2F0aW9uIEluc2lnaHRzIFBhZ2VWaWV3IHRyYWNraW5nLlxyXG4gICAgICovXHJcbiAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZXJyb3Igc2VydmljZSBmb3IgZ2xvYmFsIGVycm9yIGhhbmRsaW5nLlxyXG4gICAgICovXHJcbiAgICBlcnJvclNlcnZpY2VzPzogSUVycm9yU2VydmljZVtdO1xyXG4gICAgdXNlSW5qZWN0b3I/OiBib29sZWFuO1xyXG59XHJcblxyXG5sZXQgdW5kZWZWYWx1ZTtcclxuXHJcbmNvbnN0IGRlZmF1bHRBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnOiBJQ29uZmlnRGVmYXVsdHM8SUFuZ3VsYXJFeHRlbnNpb25Db25maWc+ID0gb2JqRGVlcEZyZWV6ZSh7XHJcbiAgICByb3V0ZXI6IHsgYmxrVmFsOiB0cnVlLCB2OiB1bmRlZlZhbHVlfSxcclxuICAgIGVycm9yU2VydmljZXM6IHsgYmxrVmFsOiB0cnVlLCB2OiB1bmRlZlZhbHVlfVxyXG59KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwibGliLWFwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qc1wiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBzdHlsZXM6IFtdXHJcbn0pXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclBsdWdpbiBleHRlbmRzIEJhc2VUZWxlbWV0cnlQbHVnaW4ge1xyXG4gICAgcHVibGljIHByaW9yaXR5ID0gMTg2O1xyXG4gICAgcHVibGljIGlkZW50aWZpZXIgPSBcIkFuZ3VsYXJQbHVnaW5cIjtcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I/OiBJbmplY3RvcikgeyAvLyBfaW5qZWN0b3IgaXMgb3B0aW9uYWwgdG8gcHJvdmlkZVxyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgbGV0IF9hbmFseXRpY3NQbHVnaW46IEFuYWx5dGljc1BsdWdpbjtcclxuICAgICAgICBsZXQgX3Byb3BlcnRpZXNQbHVnaW46IFByb3BlcnRpZXNQbHVnaW47XHJcbiAgICAgICAgbGV0IF9hbmd1bGFyQ2ZnOiBJQW5ndWxhckV4dGVuc2lvbkNvbmZpZztcclxuICAgICAgICBsZXQgX2V2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICAgICAgbGV0IF9pc1BhZ2VJbml0aWFsTG9hZDogYm9vbGVhbjtcclxuICAgICAgICBsZXQgX3ByZXZSb3V0ZXI6IFJvdXRlcjtcclxuICAgICAgICBsZXQgX2Vycm9yU2VydmljZUluc3RhbmNlOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZTtcclxuXHJcbiAgICAgICAgZHluYW1pY1Byb3RvKEFuZ3VsYXJQbHVnaW4sIHRoaXMsIChfc2VsZiwgX2Jhc2UpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IF9pbml0RGVmYXVsdHMgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBfYW5hbHl0aWNzUGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9wcm9wZXJ0aWVzUGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9hbmd1bGFyQ2ZnID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9ldmVudFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBfaXNQYWdlSW5pdGlhbExvYWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgX3ByZXZSb3V0ZXIgPSB1bmRlZlZhbHVlO1xyXG4gICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlID0gbnVsbDtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIF9pbml0RGVmYXVsdHMoKTtcclxuXHJcbiAgICAgICAgICAgIF9zZWxmLmluaXRpYWxpemUgPSAoY29uZmlnOiBJQ29uZmlndXJhdGlvbiwgY29yZTogSUFwcEluc2lnaHRzQ29yZSwgZXh0ZW5zaW9uczogSVBsdWdpbltdLFxyXG4gICAgICAgICAgICAgICAgcGx1Z2luQ2hhaW4/OiBJVGVsZW1ldHJ5UGx1Z2luQ2hhaW4pID0+IHtcclxuICAgICAgICAgICAgICAgIHN1cGVyLmluaXRpYWxpemUoY29uZmlnLCBjb3JlLCBleHRlbnNpb25zLCBwbHVnaW5DaGFpbik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBfc2VsZi5fYWRkSG9vayhvbkNvbmZpZ0NoYW5nZShjb25maWcsIChkZXRhaWxzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGN0eCA9IF9zZWxmLl9nZXRUZWxDdHgoKTtcclxuICAgICAgICAgICAgICAgICAgICBfYW5ndWxhckNmZyA9IGN0eC5nZXRFeHRDZmc8SUFuZ3VsYXJFeHRlbnNpb25Db25maWc+KF9zZWxmLmlkZW50aWZpZXIsIGRlZmF1bHRBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICBfcHJvcGVydGllc1BsdWdpbiA9IGNvcmUuZ2V0UGx1Z2luPFByb3BlcnRpZXNQbHVnaW4+KFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyKT8ucGx1Z2luIGFzIFByb3BlcnRpZXNQbHVnaW47XHJcbiAgICAgICAgICAgICAgICAgICAgX2FuYWx5dGljc1BsdWdpbiA9IGNvcmUuZ2V0UGx1Z2luPEFuYWx5dGljc1BsdWdpbj4oQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllcik/LnBsdWdpbiBhcyBBbmFseXRpY3NQbHVnaW47XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmd1bGFyQ2ZnLnVzZUluamVjdG9yICYmIF9pbmplY3Rvcil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZSA9IHRoaXMuX2luamVjdG9yLmdldChBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZSA9IF9lcnJvclNlcnZpY2VJbnN0YW5jZSA/IF9lcnJvclNlcnZpY2VJbnN0YW5jZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlLmluc3RhbmNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyB0d28gaW5zdGFuY2Ugb2YgZXJyb3JTZXJ2aWNlXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfYW5hbHl0aWNzUGx1Z2luKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZXJyb3JTZXJ2aWNlSW5zdGFuY2UgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZS5wbHVnaW4gPSBfYW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMgJiYgaXNBcnJheShfYW5ndWxhckNmZy5lcnJvclNlcnZpY2VzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZS5jbGVhckVycm9ySGFuZGxlcnMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKF9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMsIChlcnJvclNlcnZpY2U6IElFcnJvclNlcnZpY2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlLmFkZEVycm9ySGFuZGxlcihlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfYW5ndWxhckNmZy5yb3V0ZXIgIT09IF9wcmV2Um91dGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlciBpcyBjaGFuZ2VkLCBvciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnN1YnNjcmliZSBwcmV2aW91cyByb3V0ZXIgZXZlbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZXZlbnRTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2FuZ3VsYXJDZmcucm91dGVyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgdHJhY2sgcGFnZSB2aWV3IGlmIGl0IGlzIHRoZSBpbml0aWFsIHBhZ2UgbG9hZCBmb3IgdGhpcyBwbHVnaW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaXNQYWdlSW5pdGlhbExvYWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VWaWV3VGVsZW1ldHJ5OiBJUGFnZVZpZXdUZWxlbWV0cnkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogX2FuZ3VsYXJDZmcucm91dGVyLnVybFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGYudHJhY2tQYWdlVmlldyhwYWdlVmlld1RlbGVtZXRyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YnNjcmliZSB0byBuZXcgcm91dGVyIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2V2ZW50U3Vic2NyaXB0aW9uID0gX2FuZ3VsYXJDZmcucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfc2VsZi5pc0luaXRpYWxpemVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhZ2UgaW5pdGlhbCBsb2FkLCBkbyBub3QgY2FsbCB0cmFja1BhZ2VWaWV3IHR3aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2lzUGFnZUluaXRpYWxMb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lzUGFnZUluaXRpYWxMb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHZ0OiBJUGFnZVZpZXdUZWxlbWV0cnkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpOiBfYW5ndWxhckNmZy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsgZHVyYXRpb246IDAgfSAvLyBTUEEgcm91dGUgY2hhbmdlIGxvYWRpbmcgZHVyYXRpb25zIGFyZSB1bmRlZmluZWQsIHNvIHNlbmQgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWxmLnRyYWNrUGFnZVZpZXcocHZ0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wcmV2Um91dGVyID0gX2FuZ3VsYXJDZmcucm91dGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGVzdCBwdXJwb3NlIG9ubHlcclxuICAgICAgICAgICAgICAgIF9zZWxmW1wiX2dldERiZ1BsZ1RhcmdldHNcIl0gPSAoKSA9PiBfYW5ndWxhckNmZztcclxuICAgICAgICAgICAgICAgIF9zZWxmW1wiX2dldEVycm9yU2VydmljZVwiXSA9ICgpID0+IF9lcnJvclNlcnZpY2VJbnN0YW5jZTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIF9zZWxmLnRyYWNrUGFnZVZpZXcgPSAocGFnZVZpZXc6IElQYWdlVmlld1RlbGVtZXRyeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9hbmFseXRpY3NQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGdldExvY2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9wcm9wZXJ0aWVzUGx1Z2luICYmIF9wcm9wZXJ0aWVzUGx1Z2luLmNvbnRleHQgJiYgX3Byb3BlcnRpZXNQbHVnaW4uY29udGV4dC50ZWxlbWV0cnlUcmFjZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfcHJvcGVydGllc1BsdWdpbi5jb250ZXh0LnRlbGVtZXRyeVRyYWNlLnRyYWNlSUQgPSBnZW5lcmF0ZVczQ0lkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wcm9wZXJ0aWVzUGx1Z2luLmNvbnRleHQudGVsZW1ldHJ5VHJhY2UubmFtZSA9IGxvY2F0aW9uICYmIGxvY2F0aW9uLnBhdGhuYW1lIHx8IFwiX3Vua25vd25fXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIF9hbmFseXRpY3NQbHVnaW4udHJhY2tQYWdlVmlldyhwYWdlVmlldyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aHJvd0ludGVybmFsKF9zZWxmLmRpYWdMb2coKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCwgX2VJbnRlcm5hbE1lc3NhZ2VJZC5UZWxlbWV0cnlJbml0aWFsaXplckZhaWxlZCwgXCJBbmFseXRpY3MgcGx1Z2luIGlzIG5vdCBhdmFpbGFibGUsIEFuZ3VsYXIgcGx1Z2luIHRlbGVtZXRyeSB3aWxsIG5vdCBiZSBzZW50OiBcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgICAgICBfc2VsZi5fZG9UZWFyZG93biA9ICh1bmxvYWRDdHg/OiBJUHJvY2Vzc1RlbGVtZXRyeVVubG9hZENvbnRleHQsIHVubG9hZFN0YXRlPzogSVRlbGVtZXRyeVVubG9hZFN0YXRlLFxyXG4gICAgICAgICAgICAgICAgYXN5bmNDYWxsYmFjaz86ICgpID0+IHZvaWQpOiB2b2lkIHwgYm9vbGVhbiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX2FuYWx5dGljc1BsdWdpbiAmJiBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UucGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2FuZ3VsYXJDZmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMgJiYgQXJyYXkuaXNBcnJheShfYW5ndWxhckNmZy5lcnJvclNlcnZpY2VzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlLmNsZWFyRXJyb3JIYW5kbGVycygpO1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIGlmIChfZXZlbnRTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBfZXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICBfZXZlbnRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgX2luaXREZWZhdWx0cygpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQWRkIFBhcnQgQSBmaWVsZHMgdG8gdGhlIGV2ZW50XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCB0aGF0IG5lZWRzIHRvIGJlIHByb2Nlc3NlZFxyXG4gICAgICovXHJcbiAgICBwcm9jZXNzVGVsZW1ldHJ5KGV2ZW50OiBJVGVsZW1ldHJ5SXRlbSwgaXRlbUN0eD86IElQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc05leHQoZXZlbnQsIGl0ZW1DdHgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpbml0aWFsaXplKGNvbmZpZzogSUNvbmZpZ3VyYXRpb24sIGNvcmU6IElBcHBJbnNpZ2h0c0NvcmUsIGV4dGVuc2lvbnM6IElQbHVnaW5bXSwgcGx1Z2luQ2hhaW4/OiBJVGVsZW1ldHJ5UGx1Z2luQ2hhaW4pIHtcclxuICAgICAgICAvLyBARHluYW1pY1Byb3RvU3R1YiAtLSBETyBOT1QgYWRkIGFueSBjb2RlIGFzIHRoaXMgd2lsbCBiZSByZW1vdmVkIGR1cmluZyBwYWNrYWdpbmdcclxuICAgIH1cclxuXHJcbiAgICB0cmFja1BhZ2VWaWV3KHBhZ2VWaWV3OiBJUGFnZVZpZXdUZWxlbWV0cnkpIHtcclxuICAgICAgICAvLyBARHluYW1pY1Byb3RvU3R1YiAtLSBETyBOT1QgYWRkIGFueSBjb2RlIGFzIHRoaXMgd2lsbCBiZSByZW1vdmVkIGR1cmluZyBwYWNrYWdpbmdcclxuICAgIH1cclxuIFxyXG59XHJcbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, NgModule } from '@angular/core';
3
- import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from '@microsoft/applicationinsights-common';
4
- import { isFunction, arrForEach, BaseTelemetryPlugin, onConfigChange, isArray, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
3
+ import { isFunction, arrForEach, BaseTelemetryPlugin, onConfigChange, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, isArray, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
5
4
  import dynamicProto from '@microsoft/dynamicproto-js';
6
5
  import { NavigationEnd } from '@angular/router';
7
6
  import { objDeepFreeze } from '@nevware21/ts-utils';
@@ -82,6 +81,7 @@ class AngularPlugin extends BaseTelemetryPlugin {
82
81
  _eventSubscription = null;
83
82
  _isPageInitialLoad = true;
84
83
  _prevRouter = undefValue;
84
+ _errorServiceInstance = null;
85
85
  };
86
86
  _initDefaults();
87
87
  _self.initialize = (config, core, extensions, pluginChain) => {
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { IAppInsights } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { IErrorService } from \"./IErrorService\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public clearErrorHandlers() {\r\n this.errorServices = [];\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n this.errorServices.push(errorService);\r\n }\r\n }\r\n\r\n public removeErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n const idx = this.errorServices.indexOf(errorService);\r\n if (idx !== -1) {\r\n this.errorServices.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (isFunction(errorService.handleError)) {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Injector} from \"@angular/core\";\r\nimport {\r\n IConfig, IPageViewTelemetry, PropertiesPluginIdentifier, AnalyticsPluginIdentifier\r\n} from \"@microsoft/applicationinsights-common\";\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext,\r\n ITelemetryUnloadState, generateW3CId, onConfigChange, IConfigDefaults, isArray, ITelemetryPlugin\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\nimport { IErrorService } from \"./IErrorService\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport {objDeepFreeze} from \"@nevware21/ts-utils\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n useInjector?: boolean;\r\n}\r\n\r\nlet undefValue;\r\n\r\nconst defaultAngularExtensionConfig: IConfigDefaults<IAngularExtensionConfig> = objDeepFreeze({\r\n router: { blkVal: true, v: undefValue},\r\n errorServices: { blkVal: true, v: undefValue}\r\n});\r\n\r\n@Component({\r\n selector: \"lib-applicationinsights-angularplugin-js\",\r\n template: \"\",\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = \"AngularPlugin\";\r\n \r\n /**\r\n * Set next extension for telemetry processing, this is not optional as plugins should use the\r\n * processNext() function of the passed IProcessTelemetryContext instead. It is being kept for\r\n * now for backward compatibility only.\r\n */\r\n public setNextPlugin: (next: ITelemetryPlugin | ITelemetryPluginChain) => void;\r\n\r\n constructor(private _injector?: Injector) { // _injector is optional to provide\r\n super();\r\n let _analyticsPlugin: AnalyticsPlugin;\r\n let _propertiesPlugin: PropertiesPlugin;\r\n let _angularCfg: IAngularExtensionConfig;\r\n let _eventSubscription: Subscription;\r\n let _isPageInitialLoad: boolean;\r\n let _prevRouter: Router;\r\n let _errorServiceInstance: ApplicationinsightsAngularpluginErrorService;\r\n\r\n dynamicProto(AngularPlugin, this, (_self, _base) => {\r\n\r\n const _initDefaults = () => {\r\n _analyticsPlugin = null;\r\n _propertiesPlugin = null;\r\n _angularCfg = null;\r\n _eventSubscription = null;\r\n _isPageInitialLoad = true;\r\n _prevRouter = undefValue;\r\n };\r\n\r\n _initDefaults();\r\n\r\n _self.initialize = (config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[],\r\n pluginChain?: ITelemetryPluginChain) => {\r\n super.initialize(config, core, extensions, pluginChain);\r\n \r\n _self._addHook(onConfigChange(config, (details) => {\r\n let ctx = _self._getTelCtx();\r\n _angularCfg = ctx.getExtCfg<IAngularExtensionConfig>(_self.identifier, defaultAngularExtensionConfig);\r\n _propertiesPlugin = core.getPlugin<PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin as PropertiesPlugin;\r\n _analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin as AnalyticsPlugin;\r\n \r\n if (_angularCfg.useInjector && _injector){\r\n _errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);\r\n }\r\n _errorServiceInstance = _errorServiceInstance ? _errorServiceInstance\r\n : ApplicationinsightsAngularpluginErrorService.instance;\r\n\r\n // two instance of errorService\r\n\r\n if (_analyticsPlugin) {\r\n if (_errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = _analyticsPlugin;\r\n if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n arrForEach(_angularCfg.errorServices, (errorService: IErrorService) => {\r\n _errorServiceInstance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n \r\n if (_angularCfg.router !== _prevRouter) {\r\n // router is changed, or has not been initialized yet\r\n\r\n // unsubscribe previous router events\r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n }\r\n\r\n if (_angularCfg.router){\r\n // only track page view if it is the initial page load for this plugin\r\n if (_isPageInitialLoad){\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n \r\n // subscribe to new router events\r\n _eventSubscription = _angularCfg.router.events.subscribe(event => {\r\n if (_self.isInitialized()) {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (_isPageInitialLoad) {\r\n _isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n _self.trackPageView(pvt);\r\n }\r\n }\r\n });\r\n }\r\n _prevRouter = _angularCfg.router;\r\n }\r\n }));\r\n\r\n // for test purpose only\r\n _self[\"_getDbgPlgTargets\"] = () => _angularCfg;\r\n _self[\"_getErrorService\"] = () => _errorServiceInstance;\r\n };\r\n\r\n _self.trackPageView = (pageView: IPageViewTelemetry) => {\r\n if (_analyticsPlugin) {\r\n const location = getLocation();\r\n if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {\r\n _propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();\r\n _propertiesPlugin.context.telemetryTrace.name = location && location.pathname || \"_unknown_\";\r\n }\r\n _analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n _throwInternal(_self.diagLog(),\r\n // eslint-disable-next-line max-len\r\n eLoggingSeverity.CRITICAL, _eInternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, Angular plugin telemetry will not be sent: \");\r\n }\r\n };\r\n \r\n\r\n _self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState,\r\n asyncCallback?: () => void): void | boolean => {\r\n if (_analyticsPlugin && _errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = null;\r\n if (_angularCfg) {\r\n if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n \r\n }\r\n }\r\n }\r\n \r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n _eventSubscription = null;\r\n }\r\n _initDefaults();\r\n };\r\n });\r\n\r\n }\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n\r\n \r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AngularPlugin } from \"./applicationinsights-angularplugin-js.component\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from \"./lib/applicationinsights-angularplugin-js.component\";\r\nexport * from \"./lib/applicationinsights-angularplugin-js.module\";\r\nexport * from \"./lib/applicationinsights-angularplugin-error.service\";\r\nexport * from \"./lib/IErrorService\";\r\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":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { IAppInsights, arrForEach, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { IErrorService } from \"./IErrorService\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public clearErrorHandlers() {\r\n this.errorServices = [];\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n this.errorServices.push(errorService);\r\n }\r\n }\r\n\r\n public removeErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n const idx = this.errorServices.indexOf(errorService);\r\n if (idx !== -1) {\r\n this.errorServices.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (isFunction(errorService.handleError)) {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Injector} from \"@angular/core\";\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext,\r\n ITelemetryUnloadState, generateW3CId, onConfigChange, IConfigDefaults, isArray,\r\n IPageViewTelemetry, PropertiesPluginIdentifier, AnalyticsPluginIdentifier\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\nimport { IErrorService } from \"./IErrorService\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport {objDeepFreeze} from \"@nevware21/ts-utils\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n useInjector?: boolean;\r\n}\r\n\r\nlet undefValue;\r\n\r\nconst defaultAngularExtensionConfig: IConfigDefaults<IAngularExtensionConfig> = objDeepFreeze({\r\n router: { blkVal: true, v: undefValue},\r\n errorServices: { blkVal: true, v: undefValue}\r\n});\r\n\r\n@Component({\r\n selector: \"lib-applicationinsights-angularplugin-js\",\r\n template: \"\",\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = \"AngularPlugin\";\r\n \r\n constructor(private _injector?: Injector) { // _injector is optional to provide\r\n super();\r\n let _analyticsPlugin: AnalyticsPlugin;\r\n let _propertiesPlugin: PropertiesPlugin;\r\n let _angularCfg: IAngularExtensionConfig;\r\n let _eventSubscription: Subscription;\r\n let _isPageInitialLoad: boolean;\r\n let _prevRouter: Router;\r\n let _errorServiceInstance: ApplicationinsightsAngularpluginErrorService;\r\n\r\n dynamicProto(AngularPlugin, this, (_self, _base) => {\r\n\r\n const _initDefaults = () => {\r\n _analyticsPlugin = null;\r\n _propertiesPlugin = null;\r\n _angularCfg = null;\r\n _eventSubscription = null;\r\n _isPageInitialLoad = true;\r\n _prevRouter = undefValue;\r\n _errorServiceInstance = null;\r\n };\r\n\r\n _initDefaults();\r\n\r\n _self.initialize = (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[],\r\n pluginChain?: ITelemetryPluginChain) => {\r\n super.initialize(config, core, extensions, pluginChain);\r\n \r\n _self._addHook(onConfigChange(config, (details) => {\r\n let ctx = _self._getTelCtx();\r\n _angularCfg = ctx.getExtCfg<IAngularExtensionConfig>(_self.identifier, defaultAngularExtensionConfig);\r\n _propertiesPlugin = core.getPlugin<PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin as PropertiesPlugin;\r\n _analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin as AnalyticsPlugin;\r\n \r\n if (_angularCfg.useInjector && _injector){\r\n _errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);\r\n }\r\n _errorServiceInstance = _errorServiceInstance ? _errorServiceInstance\r\n : ApplicationinsightsAngularpluginErrorService.instance;\r\n\r\n // two instance of errorService\r\n\r\n if (_analyticsPlugin) {\r\n if (_errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = _analyticsPlugin;\r\n if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n arrForEach(_angularCfg.errorServices, (errorService: IErrorService) => {\r\n _errorServiceInstance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n \r\n if (_angularCfg.router !== _prevRouter) {\r\n // router is changed, or has not been initialized yet\r\n\r\n // unsubscribe previous router events\r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n }\r\n\r\n if (_angularCfg.router){\r\n // only track page view if it is the initial page load for this plugin\r\n if (_isPageInitialLoad){\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n \r\n // subscribe to new router events\r\n _eventSubscription = _angularCfg.router.events.subscribe(event => {\r\n if (_self.isInitialized()) {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (_isPageInitialLoad) {\r\n _isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n _self.trackPageView(pvt);\r\n }\r\n }\r\n });\r\n }\r\n _prevRouter = _angularCfg.router;\r\n }\r\n }));\r\n\r\n // for test purpose only\r\n _self[\"_getDbgPlgTargets\"] = () => _angularCfg;\r\n _self[\"_getErrorService\"] = () => _errorServiceInstance;\r\n };\r\n\r\n _self.trackPageView = (pageView: IPageViewTelemetry) => {\r\n if (_analyticsPlugin) {\r\n const location = getLocation();\r\n if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {\r\n _propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();\r\n _propertiesPlugin.context.telemetryTrace.name = location && location.pathname || \"_unknown_\";\r\n }\r\n _analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n _throwInternal(_self.diagLog(),\r\n // eslint-disable-next-line max-len\r\n eLoggingSeverity.CRITICAL, _eInternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, Angular plugin telemetry will not be sent: \");\r\n }\r\n };\r\n \r\n\r\n _self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState,\r\n asyncCallback?: () => void): void | boolean => {\r\n if (_analyticsPlugin && _errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = null;\r\n if (_angularCfg) {\r\n if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n \r\n }\r\n }\r\n }\r\n \r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n _eventSubscription = null;\r\n }\r\n _initDefaults();\r\n };\r\n });\r\n\r\n }\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n\r\n initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n \r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AngularPlugin } from \"./applicationinsights-angularplugin-js.component\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from \"./lib/applicationinsights-angularplugin-js.component\";\r\nexport * from \"./lib/applicationinsights-angularplugin-js.module\";\r\nexport * from \"./lib/applicationinsights-angularplugin-error.service\";\r\nexport * from \"./lib/IErrorService\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, NgModule } from '@angular/core';
3
- import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from '@microsoft/applicationinsights-common';
4
- import { isFunction, arrForEach, BaseTelemetryPlugin, onConfigChange, isArray, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
3
+ import { isFunction, arrForEach, BaseTelemetryPlugin, onConfigChange, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, isArray, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
5
4
  import dynamicProto from '@microsoft/dynamicproto-js';
6
5
  import { NavigationEnd } from '@angular/router';
7
6
  import { objDeepFreeze } from '@nevware21/ts-utils';
@@ -82,6 +81,7 @@ class AngularPlugin extends BaseTelemetryPlugin {
82
81
  _eventSubscription = null;
83
82
  _isPageInitialLoad = true;
84
83
  _prevRouter = undefValue;
84
+ _errorServiceInstance = null;
85
85
  };
86
86
  _initDefaults();
87
87
  _self.initialize = (config, core, extensions, pluginChain) => {
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { IAppInsights } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { IErrorService } from \"./IErrorService\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public clearErrorHandlers() {\r\n this.errorServices = [];\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n this.errorServices.push(errorService);\r\n }\r\n }\r\n\r\n public removeErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n const idx = this.errorServices.indexOf(errorService);\r\n if (idx !== -1) {\r\n this.errorServices.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (isFunction(errorService.handleError)) {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Injector} from \"@angular/core\";\r\nimport {\r\n IConfig, IPageViewTelemetry, PropertiesPluginIdentifier, AnalyticsPluginIdentifier\r\n} from \"@microsoft/applicationinsights-common\";\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext,\r\n ITelemetryUnloadState, generateW3CId, onConfigChange, IConfigDefaults, isArray, ITelemetryPlugin\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\nimport { IErrorService } from \"./IErrorService\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport {objDeepFreeze} from \"@nevware21/ts-utils\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n useInjector?: boolean;\r\n}\r\n\r\nlet undefValue;\r\n\r\nconst defaultAngularExtensionConfig: IConfigDefaults<IAngularExtensionConfig> = objDeepFreeze({\r\n router: { blkVal: true, v: undefValue},\r\n errorServices: { blkVal: true, v: undefValue}\r\n});\r\n\r\n@Component({\r\n selector: \"lib-applicationinsights-angularplugin-js\",\r\n template: \"\",\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = \"AngularPlugin\";\r\n \r\n /**\r\n * Set next extension for telemetry processing, this is not optional as plugins should use the\r\n * processNext() function of the passed IProcessTelemetryContext instead. It is being kept for\r\n * now for backward compatibility only.\r\n */\r\n public setNextPlugin: (next: ITelemetryPlugin | ITelemetryPluginChain) => void;\r\n\r\n constructor(private _injector?: Injector) { // _injector is optional to provide\r\n super();\r\n let _analyticsPlugin: AnalyticsPlugin;\r\n let _propertiesPlugin: PropertiesPlugin;\r\n let _angularCfg: IAngularExtensionConfig;\r\n let _eventSubscription: Subscription;\r\n let _isPageInitialLoad: boolean;\r\n let _prevRouter: Router;\r\n let _errorServiceInstance: ApplicationinsightsAngularpluginErrorService;\r\n\r\n dynamicProto(AngularPlugin, this, (_self, _base) => {\r\n\r\n const _initDefaults = () => {\r\n _analyticsPlugin = null;\r\n _propertiesPlugin = null;\r\n _angularCfg = null;\r\n _eventSubscription = null;\r\n _isPageInitialLoad = true;\r\n _prevRouter = undefValue;\r\n };\r\n\r\n _initDefaults();\r\n\r\n _self.initialize = (config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[],\r\n pluginChain?: ITelemetryPluginChain) => {\r\n super.initialize(config, core, extensions, pluginChain);\r\n \r\n _self._addHook(onConfigChange(config, (details) => {\r\n let ctx = _self._getTelCtx();\r\n _angularCfg = ctx.getExtCfg<IAngularExtensionConfig>(_self.identifier, defaultAngularExtensionConfig);\r\n _propertiesPlugin = core.getPlugin<PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin as PropertiesPlugin;\r\n _analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin as AnalyticsPlugin;\r\n \r\n if (_angularCfg.useInjector && _injector){\r\n _errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);\r\n }\r\n _errorServiceInstance = _errorServiceInstance ? _errorServiceInstance\r\n : ApplicationinsightsAngularpluginErrorService.instance;\r\n\r\n // two instance of errorService\r\n\r\n if (_analyticsPlugin) {\r\n if (_errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = _analyticsPlugin;\r\n if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n arrForEach(_angularCfg.errorServices, (errorService: IErrorService) => {\r\n _errorServiceInstance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n \r\n if (_angularCfg.router !== _prevRouter) {\r\n // router is changed, or has not been initialized yet\r\n\r\n // unsubscribe previous router events\r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n }\r\n\r\n if (_angularCfg.router){\r\n // only track page view if it is the initial page load for this plugin\r\n if (_isPageInitialLoad){\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n \r\n // subscribe to new router events\r\n _eventSubscription = _angularCfg.router.events.subscribe(event => {\r\n if (_self.isInitialized()) {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (_isPageInitialLoad) {\r\n _isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n _self.trackPageView(pvt);\r\n }\r\n }\r\n });\r\n }\r\n _prevRouter = _angularCfg.router;\r\n }\r\n }));\r\n\r\n // for test purpose only\r\n _self[\"_getDbgPlgTargets\"] = () => _angularCfg;\r\n _self[\"_getErrorService\"] = () => _errorServiceInstance;\r\n };\r\n\r\n _self.trackPageView = (pageView: IPageViewTelemetry) => {\r\n if (_analyticsPlugin) {\r\n const location = getLocation();\r\n if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {\r\n _propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();\r\n _propertiesPlugin.context.telemetryTrace.name = location && location.pathname || \"_unknown_\";\r\n }\r\n _analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n _throwInternal(_self.diagLog(),\r\n // eslint-disable-next-line max-len\r\n eLoggingSeverity.CRITICAL, _eInternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, Angular plugin telemetry will not be sent: \");\r\n }\r\n };\r\n \r\n\r\n _self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState,\r\n asyncCallback?: () => void): void | boolean => {\r\n if (_analyticsPlugin && _errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = null;\r\n if (_angularCfg) {\r\n if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n \r\n }\r\n }\r\n }\r\n \r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n _eventSubscription = null;\r\n }\r\n _initDefaults();\r\n };\r\n });\r\n\r\n }\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n\r\n \r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AngularPlugin } from \"./applicationinsights-angularplugin-js.component\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from \"./lib/applicationinsights-angularplugin-js.component\";\r\nexport * from \"./lib/applicationinsights-angularplugin-js.module\";\r\nexport * from \"./lib/applicationinsights-angularplugin-error.service\";\r\nexport * from \"./lib/IErrorService\";\r\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":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { IAppInsights, arrForEach, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { IErrorService } from \"./IErrorService\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public clearErrorHandlers() {\r\n this.errorServices = [];\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n this.errorServices.push(errorService);\r\n }\r\n }\r\n\r\n public removeErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n const idx = this.errorServices.indexOf(errorService);\r\n if (idx !== -1) {\r\n this.errorServices.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (isFunction(errorService.handleError)) {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Injector} from \"@angular/core\";\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext,\r\n ITelemetryUnloadState, generateW3CId, onConfigChange, IConfigDefaults, isArray,\r\n IPageViewTelemetry, PropertiesPluginIdentifier, AnalyticsPluginIdentifier\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\nimport { IErrorService } from \"./IErrorService\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport {objDeepFreeze} from \"@nevware21/ts-utils\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n useInjector?: boolean;\r\n}\r\n\r\nlet undefValue;\r\n\r\nconst defaultAngularExtensionConfig: IConfigDefaults<IAngularExtensionConfig> = objDeepFreeze({\r\n router: { blkVal: true, v: undefValue},\r\n errorServices: { blkVal: true, v: undefValue}\r\n});\r\n\r\n@Component({\r\n selector: \"lib-applicationinsights-angularplugin-js\",\r\n template: \"\",\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = \"AngularPlugin\";\r\n \r\n constructor(private _injector?: Injector) { // _injector is optional to provide\r\n super();\r\n let _analyticsPlugin: AnalyticsPlugin;\r\n let _propertiesPlugin: PropertiesPlugin;\r\n let _angularCfg: IAngularExtensionConfig;\r\n let _eventSubscription: Subscription;\r\n let _isPageInitialLoad: boolean;\r\n let _prevRouter: Router;\r\n let _errorServiceInstance: ApplicationinsightsAngularpluginErrorService;\r\n\r\n dynamicProto(AngularPlugin, this, (_self, _base) => {\r\n\r\n const _initDefaults = () => {\r\n _analyticsPlugin = null;\r\n _propertiesPlugin = null;\r\n _angularCfg = null;\r\n _eventSubscription = null;\r\n _isPageInitialLoad = true;\r\n _prevRouter = undefValue;\r\n _errorServiceInstance = null;\r\n };\r\n\r\n _initDefaults();\r\n\r\n _self.initialize = (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[],\r\n pluginChain?: ITelemetryPluginChain) => {\r\n super.initialize(config, core, extensions, pluginChain);\r\n \r\n _self._addHook(onConfigChange(config, (details) => {\r\n let ctx = _self._getTelCtx();\r\n _angularCfg = ctx.getExtCfg<IAngularExtensionConfig>(_self.identifier, defaultAngularExtensionConfig);\r\n _propertiesPlugin = core.getPlugin<PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin as PropertiesPlugin;\r\n _analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin as AnalyticsPlugin;\r\n \r\n if (_angularCfg.useInjector && _injector){\r\n _errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);\r\n }\r\n _errorServiceInstance = _errorServiceInstance ? _errorServiceInstance\r\n : ApplicationinsightsAngularpluginErrorService.instance;\r\n\r\n // two instance of errorService\r\n\r\n if (_analyticsPlugin) {\r\n if (_errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = _analyticsPlugin;\r\n if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n arrForEach(_angularCfg.errorServices, (errorService: IErrorService) => {\r\n _errorServiceInstance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n \r\n if (_angularCfg.router !== _prevRouter) {\r\n // router is changed, or has not been initialized yet\r\n\r\n // unsubscribe previous router events\r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n }\r\n\r\n if (_angularCfg.router){\r\n // only track page view if it is the initial page load for this plugin\r\n if (_isPageInitialLoad){\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n \r\n // subscribe to new router events\r\n _eventSubscription = _angularCfg.router.events.subscribe(event => {\r\n if (_self.isInitialized()) {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (_isPageInitialLoad) {\r\n _isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n _self.trackPageView(pvt);\r\n }\r\n }\r\n });\r\n }\r\n _prevRouter = _angularCfg.router;\r\n }\r\n }));\r\n\r\n // for test purpose only\r\n _self[\"_getDbgPlgTargets\"] = () => _angularCfg;\r\n _self[\"_getErrorService\"] = () => _errorServiceInstance;\r\n };\r\n\r\n _self.trackPageView = (pageView: IPageViewTelemetry) => {\r\n if (_analyticsPlugin) {\r\n const location = getLocation();\r\n if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {\r\n _propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();\r\n _propertiesPlugin.context.telemetryTrace.name = location && location.pathname || \"_unknown_\";\r\n }\r\n _analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n _throwInternal(_self.diagLog(),\r\n // eslint-disable-next-line max-len\r\n eLoggingSeverity.CRITICAL, _eInternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, Angular plugin telemetry will not be sent: \");\r\n }\r\n };\r\n \r\n\r\n _self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState,\r\n asyncCallback?: () => void): void | boolean => {\r\n if (_analyticsPlugin && _errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = null;\r\n if (_angularCfg) {\r\n if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n \r\n }\r\n }\r\n }\r\n \r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n _eventSubscription = null;\r\n }\r\n _initDefaults();\r\n };\r\n });\r\n\r\n }\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n\r\n initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n \r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AngularPlugin } from \"./applicationinsights-angularplugin-js.component\";\r\nimport { ApplicationinsightsAngularpluginErrorService } from \"./applicationinsights-angularplugin-error.service\";\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from \"./lib/applicationinsights-angularplugin-js.component\";\r\nexport * from \"./lib/applicationinsights-angularplugin-js.module\";\r\nexport * from \"./lib/applicationinsights-angularplugin-error.service\";\r\nexport * from \"./lib/IErrorService\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IAppInsights } from "@microsoft/applicationinsights-common";
1
+ import { IAppInsights } from "@microsoft/applicationinsights-core-js";
2
2
  import { IErrorService } from "./IErrorService";
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class ApplicationinsightsAngularpluginErrorService implements IErrorService {
@@ -1,17 +1,10 @@
1
1
  import { Injector } from "@angular/core";
2
- import { IConfig, IPageViewTelemetry } from "@microsoft/applicationinsights-common";
3
- import { IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, ITelemetryItem, ITelemetryPluginChain, IProcessTelemetryContext, ITelemetryPlugin } from "@microsoft/applicationinsights-core-js";
2
+ import { IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, ITelemetryItem, ITelemetryPluginChain, IProcessTelemetryContext, IPageViewTelemetry } from "@microsoft/applicationinsights-core-js";
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class AngularPlugin extends BaseTelemetryPlugin {
6
5
  private _injector?;
7
6
  priority: number;
8
7
  identifier: string;
9
- /**
10
- * Set next extension for telemetry processing, this is not optional as plugins should use the
11
- * processNext() function of the passed IProcessTelemetryContext instead. It is being kept for
12
- * now for backward compatibility only.
13
- */
14
- setNextPlugin: (next: ITelemetryPlugin | ITelemetryPluginChain) => void;
15
8
  constructor(_injector?: Injector);
16
9
  /**
17
10
  * Add Part A fields to the event
@@ -19,7 +12,7 @@ export declare class AngularPlugin extends BaseTelemetryPlugin {
19
12
  * @param event The event that needs to be processed
20
13
  */
21
14
  processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext): void;
22
- initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
15
+ initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
23
16
  trackPageView(pageView: IPageViewTelemetry): void;
24
17
  static ɵfac: i0.ɵɵFactoryDeclaration<AngularPlugin, never>;
25
18
  static ɵcmp: i0.ɵɵComponentDeclaration<AngularPlugin, "lib-applicationinsights-angularplugin-js", never, {}, {}, never, never, false, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/applicationinsights-angularplugin-js",
3
- "version": "15.3.9-nightly.2604-02",
3
+ "version": "15.4.0",
4
4
  "description": "Microsoft Application Insights Angular plugin",
5
5
  "author": "Microsoft Application Insights Team",
6
6
  "license": "MIT",
@@ -14,19 +14,15 @@
14
14
  "homepage": "https://github.com/microsoft/applicationinsights-angularplugin-js#readme",
15
15
  "dependencies": {
16
16
  "@microsoft/applicationinsights-shims": "^3.0.1",
17
- "@microsoft/applicationinsights-common": "nightly3",
18
- "@microsoft/applicationinsights-core-js": "nightly3",
19
- "@microsoft/applicationinsights-properties-js": "nightly3",
17
+ "@microsoft/applicationinsights-core-js": "^3.4.1",
18
+ "@microsoft/applicationinsights-properties-js": "^3.4.1",
20
19
  "tslib": "^2.0.0"
21
20
  },
22
21
  "peerDependencies": {
23
- "@microsoft/applicationinsights-analytics-js": "nightly3",
22
+ "@microsoft/applicationinsights-analytics-js": "^3.4.1",
24
23
  "@angular/common": ">= 14.0.3",
25
24
  "@angular/core": ">= 14.0.3"
26
25
  },
27
- "publishConfig": {
28
- "tag": "nightly"
29
- },
30
26
  "module": "fesm2015/microsoft-applicationinsights-angularplugin-js.mjs",
31
27
  "es2020": "fesm2020/microsoft-applicationinsights-angularplugin-js.mjs",
32
28
  "esm2020": "esm2020/microsoft-applicationinsights-angularplugin-js.mjs",