vc-error-handlers 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/esm2020/lib/configuration.mjs +6 -0
- package/esm2020/lib/shared/errorhandler/chunk-error.handler.mjs +18 -0
- package/esm2020/lib/shared/errorhandler/sentry-error.handler.mjs +42 -0
- package/esm2020/lib/vc-error-handlers.component.mjs +26 -0
- package/esm2020/lib/vc-error-handlers.module.mjs +33 -0
- package/esm2020/lib/vc-error-handlers.service.mjs +14 -0
- package/esm2020/public-api.mjs +7 -0
- package/esm2020/vc-error-handlers.mjs +5 -0
- package/fesm2015/vc-error-handlers.mjs +123 -0
- package/fesm2015/vc-error-handlers.mjs.map +1 -0
- package/fesm2020/vc-error-handlers.mjs +121 -0
- package/fesm2020/vc-error-handlers.mjs.map +1 -0
- package/lib/configuration.d.ts +4 -0
- package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -0
- package/lib/shared/errorhandler/sentry-error.handler.d.ts +10 -0
- package/lib/vc-error-handlers.component.d.ts +8 -0
- package/lib/vc-error-handlers.module.d.ts +12 -0
- package/lib/vc-error-handlers.service.d.ts +6 -0
- package/package.json +38 -0
- package/public-api.d.ts +3 -0
- package/vc-error-handlers.d.ts +5 -0
package/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
## Installation
|
|
2
|
+
|
|
3
|
+
To add vc-error-handlers package to your project, follow these steps:
|
|
4
|
+
|
|
5
|
+
1. Open your terminal and navigate to your project folder.
|
|
6
|
+
2. Run the following command to install the package:
|
|
7
|
+
shell
|
|
8
|
+
npm i vc-error-handlers
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
1. Import the VcErrorHandlersModule in your module file:
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { NgModule } from "@angular/core";
|
|
16
|
+
import { VcErrorHandlersModule } from "vc-error-handlers";
|
|
17
|
+
|
|
18
|
+
@NgModule({
|
|
19
|
+
imports: [
|
|
20
|
+
VcErrorHandlersModule.forRoot({ sentryConfig: SENTRY_CONFIG }), // Replace SENTRY_CONFIG with your Sentry configuration
|
|
21
|
+
],
|
|
22
|
+
})
|
|
23
|
+
export class MyModule {}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2. Replace SENTRY_CONFIG with your actual Sentry configuration.
|
|
27
|
+
After importing the module, you can use the error handlers provided by vc-error-handlers throughout your Angular application
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class Configurations {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.sentryConfig = {};
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQUd6QjtRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9ucyB7XHJcbiAgcHVibGljIHNlbnRyeUNvbmZpZzogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuc2VudHJ5Q29uZmlnID0ge307XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GlobalErrorHandler {
|
|
4
|
+
handleError(error) {
|
|
5
|
+
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
6
|
+
if (chunkFailedMessage.test(error.message) &&
|
|
7
|
+
confirm(`A new version is available. Please press "OK" to refresh the page.`)) {
|
|
8
|
+
window.location.reload();
|
|
9
|
+
}
|
|
10
|
+
console.error(error);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
GlobalErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
GlobalErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorHandler });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: GlobalErrorHandler, decorators: [{
|
|
16
|
+
type: Injectable
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmstZXJyb3IuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2Vycm9yaGFuZGxlci9jaHVuay1lcnJvci5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsNEJBQTRCLENBQUM7UUFFeEQsSUFDRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxPQUFPLENBQ0wsb0VBQW9FLENBQ3JFLEVBQ0Q7WUFDQSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDOzsrR0FiVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNodW5rRmFpbGVkTWVzc2FnZSA9IC9Mb2FkaW5nIGNodW5rIFtcXGRdKyBmYWlsZWQvO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3IubWVzc2FnZSkgJiZcclxuICAgICAgY29uZmlybShcclxuICAgICAgICBgQSBuZXcgdmVyc2lvbiBpcyBhdmFpbGFibGUuIFBsZWFzZSBwcmVzcyBcIk9LXCIgdG8gcmVmcmVzaCB0aGUgcGFnZS5gXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import * as Sentry from '@sentry/angular-ivy';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../configuration";
|
|
5
|
+
export class SentryErrorHandler {
|
|
6
|
+
constructor(config) {
|
|
7
|
+
if (config?.sentryConfig) {
|
|
8
|
+
const SENTRY_CONFIG = config.sentryConfig;
|
|
9
|
+
Sentry.init({
|
|
10
|
+
dsn: SENTRY_CONFIG?.DSN,
|
|
11
|
+
integrations: [
|
|
12
|
+
new Sentry.BrowserTracing({
|
|
13
|
+
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
14
|
+
routingInstrumentation: Sentry.routingInstrumentation,
|
|
15
|
+
}),
|
|
16
|
+
],
|
|
17
|
+
tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
|
|
18
|
+
replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
|
|
19
|
+
replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
handleError(error) {
|
|
24
|
+
this.handleChunkError(error);
|
|
25
|
+
Sentry.captureException(error.originalError || error);
|
|
26
|
+
}
|
|
27
|
+
handleChunkError(error) {
|
|
28
|
+
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
29
|
+
if (chunkFailedMessage.test(error.message)) {
|
|
30
|
+
window.location.reload();
|
|
31
|
+
}
|
|
32
|
+
console.error(error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
SentryErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, deps: [{ token: i1.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
SentryErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, decorators: [{
|
|
38
|
+
type: Injectable
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.Configurations, decorators: [{
|
|
40
|
+
type: Optional
|
|
41
|
+
}] }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LWVycm9yLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9lcnJvcmhhbmRsZXIvc2VudHJ5LWVycm9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sS0FBSyxNQUFNLE1BQU0scUJBQXFCLENBQUM7OztBQUk5QyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQXdCLE1BQXVCO1FBQzdDLElBQUksTUFBTSxFQUFFLFlBQVksRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsR0FBRyxFQUFFLGFBQWEsRUFBRSxHQUFHO2dCQUN2QixZQUFZLEVBQUU7b0JBQ1osSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDO3dCQUN4Qix1QkFBdUIsRUFBRSxhQUFhLENBQUMsWUFBWTt3QkFDbkQsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLHNCQUFzQjtxQkFDdEQsQ0FBQztpQkFDSDtnQkFDRCxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsa0JBQWtCO2dCQUNsRCx3QkFBd0IsRUFBRSxhQUFhLENBQUMsMEJBQTBCO2dCQUNsRSx3QkFBd0IsRUFBRSxhQUFhLENBQUMsMkJBQTJCO2FBQ3BFLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUMzQixNQUFNLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDO1FBQ3hELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDOzsrR0E5QlUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVTs7MEJBRUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9ySGFuZGxlciwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9hbmd1bGFyLWl2eSc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZW50cnlFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zKSB7XHJcbiAgICBpZiAoY29uZmlnPy5zZW50cnlDb25maWcpIHtcclxuICAgICAgY29uc3QgU0VOVFJZX0NPTkZJRyA9IGNvbmZpZy5zZW50cnlDb25maWc7XHJcbiAgICAgIFNlbnRyeS5pbml0KHtcclxuICAgICAgICBkc246IFNFTlRSWV9DT05GSUc/LkRTTixcclxuICAgICAgICBpbnRlZ3JhdGlvbnM6IFtcclxuICAgICAgICAgIG5ldyBTZW50cnkuQnJvd3NlclRyYWNpbmcoe1xyXG4gICAgICAgICAgICB0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0czogU0VOVFJZX0NPTkZJRy5BTExPV19PUklHSU4sXHJcbiAgICAgICAgICAgIHJvdXRpbmdJbnN0cnVtZW50YXRpb246IFNlbnRyeS5yb3V0aW5nSW5zdHJ1bWVudGF0aW9uLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgXSxcclxuICAgICAgICB0cmFjZXNTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlRSQUNFU19TQU1QTEVfUkFURSxcclxuICAgICAgICByZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGU6IFNFTlRSWV9DT05GSUcuUkVQTEFZX1NFU1NJT05fU0FNUExFX1JBVEUsXHJcbiAgICAgICAgcmVwbGF5c09uRXJyb3JTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlJFUExBWV9PTl9FUlJPUl9TQU1QTEVfUkFURSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFcnJvcihlcnJvcjogYW55KSB7XHJcbiAgICB0aGlzLmhhbmRsZUNodW5rRXJyb3IoZXJyb3IpO1xyXG4gICAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZXJyb3Iub3JpZ2luYWxFcnJvciB8fCBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaHVua0Vycm9yKGVycm9yOiBFcnJvcikge1xyXG4gICAgY29uc3QgY2h1bmtGYWlsZWRNZXNzYWdlID0gL0xvYWRpbmcgY2h1bmsgW1xcZF0rIGZhaWxlZC87XHJcbiAgICBpZiAoY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3IubWVzc2FnZSkpIHtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class VcErrorHandlersComponent {
|
|
4
|
+
constructor() { }
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
VcErrorHandlersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
VcErrorHandlersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: VcErrorHandlersComponent, selector: "lib-vc-error-handlers", ngImport: i0, template: `
|
|
10
|
+
<p>
|
|
11
|
+
vc-error-handlers works!
|
|
12
|
+
</p>
|
|
13
|
+
`, isInline: true });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: 'lib-vc-error-handlers',
|
|
18
|
+
template: `
|
|
19
|
+
<p>
|
|
20
|
+
vc-error-handlers works!
|
|
21
|
+
</p>
|
|
22
|
+
`,
|
|
23
|
+
styles: []
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return []; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtZXJyb3ItaGFuZGxlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi92Yy1lcnJvci1oYW5kbGVycy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7cUhBTFUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsNkRBUnpCOzs7O0dBSVQ7MkZBSVUsd0JBQXdCO2tCQVZwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELE1BQU0sRUFBRSxFQUNQO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXZjLWVycm9yLWhhbmRsZXJzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD5cbiAgICAgIHZjLWVycm9yLWhhbmRsZXJzIHdvcmtzIVxuICAgIDwvcD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ErrorHandler, InjectionToken, NgModule, } from '@angular/core';
|
|
2
|
+
import { VcErrorHandlersComponent } from './vc-error-handlers.component';
|
|
3
|
+
import { SentryErrorHandler } from './shared/errorhandler/sentry-error.handler';
|
|
4
|
+
import { Configurations } from './configuration';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken('forRoot() SentryErrorHandler options');
|
|
7
|
+
export class VcErrorHandlersModule {
|
|
8
|
+
static forRoot(environmentConfig) {
|
|
9
|
+
return {
|
|
10
|
+
ngModule: VcErrorHandlersModule,
|
|
11
|
+
providers: [{ provide: Configurations, useValue: environmentConfig }],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
VcErrorHandlersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
VcErrorHandlersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, declarations: [VcErrorHandlersComponent], exports: [VcErrorHandlersComponent] });
|
|
17
|
+
VcErrorHandlersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, providers: [
|
|
18
|
+
{ provide: ErrorHandler, useClass: SentryErrorHandler },
|
|
19
|
+
// { provide: ErrorHandler, useClass: GlobalErrorHandler },
|
|
20
|
+
], imports: [[]] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, decorators: [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
declarations: [VcErrorHandlersComponent],
|
|
25
|
+
imports: [],
|
|
26
|
+
exports: [VcErrorHandlersComponent],
|
|
27
|
+
providers: [
|
|
28
|
+
{ provide: ErrorHandler, useClass: SentryErrorHandler },
|
|
29
|
+
// { provide: ErrorHandler, useClass: GlobalErrorHandler },
|
|
30
|
+
],
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtZXJyb3ItaGFuZGxlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi92Yy1lcnJvci1oYW5kbGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBRWQsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFakQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzdELHNDQUFzQyxDQUN2QyxDQUFDO0FBV0YsTUFBTSxPQUFPLHFCQUFxQjtJQUN6QixNQUFNLENBQUMsT0FBTyxDQUNuQixpQkFBaUM7UUFFakMsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1NBQ3RFLENBQUM7SUFDSixDQUFDOztrSEFSVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFSakIsd0JBQXdCLGFBRTdCLHdCQUF3QjttSEFNdkIscUJBQXFCLGFBTHJCO1FBQ1QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtRQUN2RCw0REFBNEQ7S0FDN0QsWUFMUSxFQUFFOzJGQU9BLHFCQUFxQjtrQkFUakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ25DLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO3dCQUN2RCw0REFBNEQ7cUJBQzdEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXJyb3JIYW5kbGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50IH0gZnJvbSAnLi92Yy1lcnJvci1oYW5kbGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJvd3Nlck9wdGlvbnMgfSBmcm9tICdAc2VudHJ5L2Jyb3dzZXInO1xuaW1wb3J0IHsgR2xvYmFsRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9zaGFyZWQvZXJyb3JoYW5kbGVyL2NodW5rLWVycm9yLmhhbmRsZXInO1xuaW1wb3J0IHsgU2VudHJ5RXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9zaGFyZWQvZXJyb3JoYW5kbGVyL3NlbnRyeS1lcnJvci5oYW5kbGVyJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IEZPUl9ST09UX1NFTlRSWV9PUFRJT05TX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEJyb3dzZXJPcHRpb25zPihcbiAgJ2ZvclJvb3QoKSBTZW50cnlFcnJvckhhbmRsZXIgb3B0aW9ucydcbik7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1ZjRXJyb3JIYW5kbGVyc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbVmNFcnJvckhhbmRsZXJzQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBFcnJvckhhbmRsZXIsIHVzZUNsYXNzOiBTZW50cnlFcnJvckhhbmRsZXIgfSxcbiAgICAvLyAgeyBwcm92aWRlOiBFcnJvckhhbmRsZXIsIHVzZUNsYXNzOiBHbG9iYWxFcnJvckhhbmRsZXIgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmNFcnJvckhhbmRsZXJzTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KFxuICAgIGVudmlyb25tZW50Q29uZmlnOiBDb25maWd1cmF0aW9uc1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFZjRXJyb3JIYW5kbGVyc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVmNFcnJvckhhbmRsZXJzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDb25maWd1cmF0aW9ucywgdXNlVmFsdWU6IGVudmlyb25tZW50Q29uZmlnIH1dLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class VcErrorHandlersService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
}
|
|
6
|
+
VcErrorHandlersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7
|
+
VcErrorHandlersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, providedIn: 'root' });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, decorators: [{
|
|
9
|
+
type: Injectable,
|
|
10
|
+
args: [{
|
|
11
|
+
providedIn: 'root'
|
|
12
|
+
}]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtZXJyb3ItaGFuZGxlcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvdmMtZXJyb3ItaGFuZGxlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLGdCQUFnQixDQUFDOzttSEFGTixzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFZjRXJyb3JIYW5kbGVyc1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of vc-error-handlers
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/vc-error-handlers.service';
|
|
5
|
+
export * from './lib/vc-error-handlers.component';
|
|
6
|
+
export * from './lib/vc-error-handlers.module';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHZjLWVycm9yLWhhbmRsZXJzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdmMtZXJyb3ItaGFuZGxlcnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Yy1lcnJvci1oYW5kbGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmMtZXJyb3ItaGFuZGxlcnMubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmMtZXJyb3ItaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvdmMtZXJyb3ItaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Component, Optional, InjectionToken, ErrorHandler, NgModule } from '@angular/core';
|
|
3
|
+
import * as Sentry from '@sentry/angular-ivy';
|
|
4
|
+
|
|
5
|
+
class VcErrorHandlersService {
|
|
6
|
+
constructor() { }
|
|
7
|
+
}
|
|
8
|
+
VcErrorHandlersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9
|
+
VcErrorHandlersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, providedIn: 'root' });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, decorators: [{
|
|
11
|
+
type: Injectable,
|
|
12
|
+
args: [{
|
|
13
|
+
providedIn: 'root'
|
|
14
|
+
}]
|
|
15
|
+
}], ctorParameters: function () { return []; } });
|
|
16
|
+
|
|
17
|
+
class VcErrorHandlersComponent {
|
|
18
|
+
constructor() { }
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
VcErrorHandlersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
VcErrorHandlersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: VcErrorHandlersComponent, selector: "lib-vc-error-handlers", ngImport: i0, template: `
|
|
24
|
+
<p>
|
|
25
|
+
vc-error-handlers works!
|
|
26
|
+
</p>
|
|
27
|
+
`, isInline: true });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'lib-vc-error-handlers',
|
|
32
|
+
template: `
|
|
33
|
+
<p>
|
|
34
|
+
vc-error-handlers works!
|
|
35
|
+
</p>
|
|
36
|
+
`,
|
|
37
|
+
styles: []
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return []; } });
|
|
40
|
+
|
|
41
|
+
class Configurations {
|
|
42
|
+
constructor() {
|
|
43
|
+
this.sentryConfig = {};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
class SentryErrorHandler {
|
|
48
|
+
constructor(config) {
|
|
49
|
+
if (config === null || config === void 0 ? void 0 : config.sentryConfig) {
|
|
50
|
+
const SENTRY_CONFIG = config.sentryConfig;
|
|
51
|
+
Sentry.init({
|
|
52
|
+
dsn: SENTRY_CONFIG === null || SENTRY_CONFIG === void 0 ? void 0 : SENTRY_CONFIG.DSN,
|
|
53
|
+
integrations: [
|
|
54
|
+
new Sentry.BrowserTracing({
|
|
55
|
+
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
56
|
+
routingInstrumentation: Sentry.routingInstrumentation,
|
|
57
|
+
}),
|
|
58
|
+
],
|
|
59
|
+
tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
|
|
60
|
+
replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
|
|
61
|
+
replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
handleError(error) {
|
|
66
|
+
this.handleChunkError(error);
|
|
67
|
+
Sentry.captureException(error.originalError || error);
|
|
68
|
+
}
|
|
69
|
+
handleChunkError(error) {
|
|
70
|
+
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
71
|
+
if (chunkFailedMessage.test(error.message)) {
|
|
72
|
+
window.location.reload();
|
|
73
|
+
}
|
|
74
|
+
console.error(error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
SentryErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, deps: [{ token: Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
SentryErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, decorators: [{
|
|
80
|
+
type: Injectable
|
|
81
|
+
}], ctorParameters: function () {
|
|
82
|
+
return [{ type: Configurations, decorators: [{
|
|
83
|
+
type: Optional
|
|
84
|
+
}] }];
|
|
85
|
+
} });
|
|
86
|
+
|
|
87
|
+
const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken('forRoot() SentryErrorHandler options');
|
|
88
|
+
class VcErrorHandlersModule {
|
|
89
|
+
static forRoot(environmentConfig) {
|
|
90
|
+
return {
|
|
91
|
+
ngModule: VcErrorHandlersModule,
|
|
92
|
+
providers: [{ provide: Configurations, useValue: environmentConfig }],
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
VcErrorHandlersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
97
|
+
VcErrorHandlersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, declarations: [VcErrorHandlersComponent], exports: [VcErrorHandlersComponent] });
|
|
98
|
+
VcErrorHandlersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, providers: [
|
|
99
|
+
{ provide: ErrorHandler, useClass: SentryErrorHandler },
|
|
100
|
+
// { provide: ErrorHandler, useClass: GlobalErrorHandler },
|
|
101
|
+
], imports: [[]] });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, decorators: [{
|
|
103
|
+
type: NgModule,
|
|
104
|
+
args: [{
|
|
105
|
+
declarations: [VcErrorHandlersComponent],
|
|
106
|
+
imports: [],
|
|
107
|
+
exports: [VcErrorHandlersComponent],
|
|
108
|
+
providers: [
|
|
109
|
+
{ provide: ErrorHandler, useClass: SentryErrorHandler },
|
|
110
|
+
// { provide: ErrorHandler, useClass: GlobalErrorHandler },
|
|
111
|
+
],
|
|
112
|
+
}]
|
|
113
|
+
}] });
|
|
114
|
+
|
|
115
|
+
/*
|
|
116
|
+
* Public API Surface of vc-error-handlers
|
|
117
|
+
*/
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Generated bundle index. Do not edit.
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
export { FOR_ROOT_SENTRY_OPTIONS_TOKEN, VcErrorHandlersComponent, VcErrorHandlersModule, VcErrorHandlersService };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vc-error-handlers.mjs","sources":["../../../projects/vc-error-handlers/src/lib/vc-error-handlers.service.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.component.ts","../../../projects/vc-error-handlers/src/lib/configuration.ts","../../../projects/vc-error-handlers/src/lib/shared/errorhandler/sentry-error.handler.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.module.ts","../../../projects/vc-error-handlers/src/public-api.ts","../../../projects/vc-error-handlers/src/vc-error-handlers.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VcErrorHandlersService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-vc-error-handlers',\n template: `\n <p>\n vc-error-handlers works!\n </p>\n `,\n styles: [\n ]\n})\nexport class VcErrorHandlersComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","export class Configurations {\r\n public sentryConfig: any;\r\n\r\n constructor() {\r\n this.sentryConfig = {};\r\n }\r\n}\r\n","import { ErrorHandler, Injectable, Optional, isDevMode } from '@angular/core';\r\nimport * as Sentry from '@sentry/angular-ivy';\r\nimport { Configurations } from '../../configuration';\r\n\r\n@Injectable()\r\nexport class SentryErrorHandler implements ErrorHandler {\r\n constructor(@Optional() config?: Configurations) {\r\n if (config?.sentryConfig) {\r\n const SENTRY_CONFIG = config.sentryConfig;\r\n Sentry.init({\r\n dsn: SENTRY_CONFIG?.DSN,\r\n integrations: [\r\n new Sentry.BrowserTracing({\r\n tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,\r\n routingInstrumentation: Sentry.routingInstrumentation,\r\n }),\r\n ],\r\n tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,\r\n replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,\r\n replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,\r\n });\r\n }\r\n }\r\n\r\n handleError(error: any) {\r\n this.handleChunkError(error);\r\n Sentry.captureException(error.originalError || error);\r\n }\r\n\r\n handleChunkError(error: Error) {\r\n const chunkFailedMessage = /Loading chunk [\\d]+ failed/;\r\n if (chunkFailedMessage.test(error.message)) {\r\n window.location.reload();\r\n }\r\n console.error(error);\r\n }\r\n}\r\n","import {\n ErrorHandler,\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport { VcErrorHandlersComponent } from './vc-error-handlers.component';\nimport { BrowserOptions } from '@sentry/browser';\nimport { GlobalErrorHandler } from './shared/errorhandler/chunk-error.handler';\nimport { SentryErrorHandler } from './shared/errorhandler/sentry-error.handler';\nimport { Configurations } from './configuration';\n\nexport const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken<BrowserOptions>(\n 'forRoot() SentryErrorHandler options'\n);\n\n@NgModule({\n declarations: [VcErrorHandlersComponent],\n imports: [],\n exports: [VcErrorHandlersComponent],\n providers: [\n { provide: ErrorHandler, useClass: SentryErrorHandler },\n // { provide: ErrorHandler, useClass: GlobalErrorHandler },\n ],\n})\nexport class VcErrorHandlersModule {\n public static forRoot(\n environmentConfig: Configurations\n ): ModuleWithProviders<VcErrorHandlersModule> {\n return {\n ngModule: VcErrorHandlersModule,\n providers: [{ provide: Configurations, useValue: environmentConfig }],\n };\n }\n}\n","/*\n * Public API Surface of vc-error-handlers\n */\n\nexport * from './lib/vc-error-handlers.service';\nexport * from './lib/vc-error-handlers.component';\nexport * from './lib/vc-error-handlers.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAKa,sBAAsB;IAEjC,iBAAiB;;mHAFN,sBAAsB;uHAAtB,sBAAsB,cAFrB,MAAM;2FAEP,sBAAsB;kBAHlC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCQY,wBAAwB;IAEnC,iBAAiB;IAEjB,QAAQ;KACP;;qHALU,wBAAwB;yGAAxB,wBAAwB,6DARzB;;;;GAIT;2FAIU,wBAAwB;kBAVpC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE;;;;GAIT;oBACD,MAAM,EAAE,EACP;iBACF;;;MCXY,cAAc;IAGzB;QACE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;;;MCAU,kBAAkB;IAC7B,YAAwB,MAAuB;QAC7C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE;YACxB,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG;gBACvB,YAAY,EAAE;oBACZ,IAAI,MAAM,CAAC,cAAc,CAAC;wBACxB,uBAAuB,EAAE,aAAa,CAAC,YAAY;wBACnD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;qBACtD,CAAC;iBACH;gBACD,gBAAgB,EAAE,aAAa,CAAC,kBAAkB;gBAClD,wBAAwB,EAAE,aAAa,CAAC,0BAA0B;gBAClE,wBAAwB,EAAE,aAAa,CAAC,2BAA2B;aACpE,CAAC,CAAC;SACJ;KACF;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;KACvD;IAED,gBAAgB,CAAC,KAAY;QAC3B,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;QACxD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC1B;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;;+GA9BU,kBAAkB;mHAAlB,kBAAkB;2FAAlB,kBAAkB;kBAD9B,UAAU;;;8BAEI,QAAQ;;;;MCMV,6BAA6B,GAAG,IAAI,cAAc,CAC7D,sCAAsC,EACtC;MAWW,qBAAqB;IACzB,OAAO,OAAO,CACnB,iBAAiC;QAEjC,OAAO;YACL,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;SACtE,CAAC;KACH;;kHARU,qBAAqB;mHAArB,qBAAqB,iBARjB,wBAAwB,aAE7B,wBAAwB;mHAMvB,qBAAqB,aALrB;QACT,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE;;KAExD,YALQ,EAAE;2FAOA,qBAAqB;kBATjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE;;qBAExD;iBACF;;;ACxBD;;;;ACAA;;;;;;"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Component, Optional, InjectionToken, ErrorHandler, NgModule } from '@angular/core';
|
|
3
|
+
import * as Sentry from '@sentry/angular-ivy';
|
|
4
|
+
|
|
5
|
+
class VcErrorHandlersService {
|
|
6
|
+
constructor() { }
|
|
7
|
+
}
|
|
8
|
+
VcErrorHandlersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9
|
+
VcErrorHandlersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, providedIn: 'root' });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersService, decorators: [{
|
|
11
|
+
type: Injectable,
|
|
12
|
+
args: [{
|
|
13
|
+
providedIn: 'root'
|
|
14
|
+
}]
|
|
15
|
+
}], ctorParameters: function () { return []; } });
|
|
16
|
+
|
|
17
|
+
class VcErrorHandlersComponent {
|
|
18
|
+
constructor() { }
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
VcErrorHandlersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
VcErrorHandlersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: VcErrorHandlersComponent, selector: "lib-vc-error-handlers", ngImport: i0, template: `
|
|
24
|
+
<p>
|
|
25
|
+
vc-error-handlers works!
|
|
26
|
+
</p>
|
|
27
|
+
`, isInline: true });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'lib-vc-error-handlers',
|
|
32
|
+
template: `
|
|
33
|
+
<p>
|
|
34
|
+
vc-error-handlers works!
|
|
35
|
+
</p>
|
|
36
|
+
`,
|
|
37
|
+
styles: []
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return []; } });
|
|
40
|
+
|
|
41
|
+
class Configurations {
|
|
42
|
+
constructor() {
|
|
43
|
+
this.sentryConfig = {};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
class SentryErrorHandler {
|
|
48
|
+
constructor(config) {
|
|
49
|
+
if (config?.sentryConfig) {
|
|
50
|
+
const SENTRY_CONFIG = config.sentryConfig;
|
|
51
|
+
Sentry.init({
|
|
52
|
+
dsn: SENTRY_CONFIG?.DSN,
|
|
53
|
+
integrations: [
|
|
54
|
+
new Sentry.BrowserTracing({
|
|
55
|
+
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
56
|
+
routingInstrumentation: Sentry.routingInstrumentation,
|
|
57
|
+
}),
|
|
58
|
+
],
|
|
59
|
+
tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
|
|
60
|
+
replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
|
|
61
|
+
replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
handleError(error) {
|
|
66
|
+
this.handleChunkError(error);
|
|
67
|
+
Sentry.captureException(error.originalError || error);
|
|
68
|
+
}
|
|
69
|
+
handleChunkError(error) {
|
|
70
|
+
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
71
|
+
if (chunkFailedMessage.test(error.message)) {
|
|
72
|
+
window.location.reload();
|
|
73
|
+
}
|
|
74
|
+
console.error(error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
SentryErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, deps: [{ token: Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
SentryErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SentryErrorHandler, decorators: [{
|
|
80
|
+
type: Injectable
|
|
81
|
+
}], ctorParameters: function () { return [{ type: Configurations, decorators: [{
|
|
82
|
+
type: Optional
|
|
83
|
+
}] }]; } });
|
|
84
|
+
|
|
85
|
+
const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken('forRoot() SentryErrorHandler options');
|
|
86
|
+
class VcErrorHandlersModule {
|
|
87
|
+
static forRoot(environmentConfig) {
|
|
88
|
+
return {
|
|
89
|
+
ngModule: VcErrorHandlersModule,
|
|
90
|
+
providers: [{ provide: Configurations, useValue: environmentConfig }],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
VcErrorHandlersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
95
|
+
VcErrorHandlersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, declarations: [VcErrorHandlersComponent], exports: [VcErrorHandlersComponent] });
|
|
96
|
+
VcErrorHandlersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, providers: [
|
|
97
|
+
{ provide: ErrorHandler, useClass: SentryErrorHandler },
|
|
98
|
+
// { provide: ErrorHandler, useClass: GlobalErrorHandler },
|
|
99
|
+
], imports: [[]] });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: VcErrorHandlersModule, decorators: [{
|
|
101
|
+
type: NgModule,
|
|
102
|
+
args: [{
|
|
103
|
+
declarations: [VcErrorHandlersComponent],
|
|
104
|
+
imports: [],
|
|
105
|
+
exports: [VcErrorHandlersComponent],
|
|
106
|
+
providers: [
|
|
107
|
+
{ provide: ErrorHandler, useClass: SentryErrorHandler },
|
|
108
|
+
// { provide: ErrorHandler, useClass: GlobalErrorHandler },
|
|
109
|
+
],
|
|
110
|
+
}]
|
|
111
|
+
}] });
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* Public API Surface of vc-error-handlers
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Generated bundle index. Do not edit.
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
export { FOR_ROOT_SENTRY_OPTIONS_TOKEN, VcErrorHandlersComponent, VcErrorHandlersModule, VcErrorHandlersService };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vc-error-handlers.mjs","sources":["../../../projects/vc-error-handlers/src/lib/vc-error-handlers.service.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.component.ts","../../../projects/vc-error-handlers/src/lib/configuration.ts","../../../projects/vc-error-handlers/src/lib/shared/errorhandler/sentry-error.handler.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.module.ts","../../../projects/vc-error-handlers/src/public-api.ts","../../../projects/vc-error-handlers/src/vc-error-handlers.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VcErrorHandlersService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-vc-error-handlers',\n template: `\n <p>\n vc-error-handlers works!\n </p>\n `,\n styles: [\n ]\n})\nexport class VcErrorHandlersComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","export class Configurations {\r\n public sentryConfig: any;\r\n\r\n constructor() {\r\n this.sentryConfig = {};\r\n }\r\n}\r\n","import { ErrorHandler, Injectable, Optional, isDevMode } from '@angular/core';\r\nimport * as Sentry from '@sentry/angular-ivy';\r\nimport { Configurations } from '../../configuration';\r\n\r\n@Injectable()\r\nexport class SentryErrorHandler implements ErrorHandler {\r\n constructor(@Optional() config?: Configurations) {\r\n if (config?.sentryConfig) {\r\n const SENTRY_CONFIG = config.sentryConfig;\r\n Sentry.init({\r\n dsn: SENTRY_CONFIG?.DSN,\r\n integrations: [\r\n new Sentry.BrowserTracing({\r\n tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,\r\n routingInstrumentation: Sentry.routingInstrumentation,\r\n }),\r\n ],\r\n tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,\r\n replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,\r\n replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,\r\n });\r\n }\r\n }\r\n\r\n handleError(error: any) {\r\n this.handleChunkError(error);\r\n Sentry.captureException(error.originalError || error);\r\n }\r\n\r\n handleChunkError(error: Error) {\r\n const chunkFailedMessage = /Loading chunk [\\d]+ failed/;\r\n if (chunkFailedMessage.test(error.message)) {\r\n window.location.reload();\r\n }\r\n console.error(error);\r\n }\r\n}\r\n","import {\n ErrorHandler,\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport { VcErrorHandlersComponent } from './vc-error-handlers.component';\nimport { BrowserOptions } from '@sentry/browser';\nimport { GlobalErrorHandler } from './shared/errorhandler/chunk-error.handler';\nimport { SentryErrorHandler } from './shared/errorhandler/sentry-error.handler';\nimport { Configurations } from './configuration';\n\nexport const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken<BrowserOptions>(\n 'forRoot() SentryErrorHandler options'\n);\n\n@NgModule({\n declarations: [VcErrorHandlersComponent],\n imports: [],\n exports: [VcErrorHandlersComponent],\n providers: [\n { provide: ErrorHandler, useClass: SentryErrorHandler },\n // { provide: ErrorHandler, useClass: GlobalErrorHandler },\n ],\n})\nexport class VcErrorHandlersModule {\n public static forRoot(\n environmentConfig: Configurations\n ): ModuleWithProviders<VcErrorHandlersModule> {\n return {\n ngModule: VcErrorHandlersModule,\n providers: [{ provide: Configurations, useValue: environmentConfig }],\n };\n }\n}\n","/*\n * Public API Surface of vc-error-handlers\n */\n\nexport * from './lib/vc-error-handlers.service';\nexport * from './lib/vc-error-handlers.component';\nexport * from './lib/vc-error-handlers.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAKa,sBAAsB;IAEjC,iBAAiB;;mHAFN,sBAAsB;uHAAtB,sBAAsB,cAFrB,MAAM;2FAEP,sBAAsB;kBAHlC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCQY,wBAAwB;IAEnC,iBAAiB;IAEjB,QAAQ;KACP;;qHALU,wBAAwB;yGAAxB,wBAAwB,6DARzB;;;;GAIT;2FAIU,wBAAwB;kBAVpC,SAAS;mBAAC;oBACT,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE;;;;GAIT;oBACD,MAAM,EAAE,EACP;iBACF;;;MCXY,cAAc;IAGzB;QACE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;;;MCAU,kBAAkB;IAC7B,YAAwB,MAAuB;QAC7C,IAAI,MAAM,EAAE,YAAY,EAAE;YACxB,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,aAAa,EAAE,GAAG;gBACvB,YAAY,EAAE;oBACZ,IAAI,MAAM,CAAC,cAAc,CAAC;wBACxB,uBAAuB,EAAE,aAAa,CAAC,YAAY;wBACnD,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;qBACtD,CAAC;iBACH;gBACD,gBAAgB,EAAE,aAAa,CAAC,kBAAkB;gBAClD,wBAAwB,EAAE,aAAa,CAAC,0BAA0B;gBAClE,wBAAwB,EAAE,aAAa,CAAC,2BAA2B;aACpE,CAAC,CAAC;SACJ;KACF;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;KACvD;IAED,gBAAgB,CAAC,KAAY;QAC3B,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;QACxD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC1B;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;;+GA9BU,kBAAkB;mHAAlB,kBAAkB;2FAAlB,kBAAkB;kBAD9B,UAAU;;0BAEI,QAAQ;;;MCMV,6BAA6B,GAAG,IAAI,cAAc,CAC7D,sCAAsC,EACtC;MAWW,qBAAqB;IACzB,OAAO,OAAO,CACnB,iBAAiC;QAEjC,OAAO;YACL,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;SACtE,CAAC;KACH;;kHARU,qBAAqB;mHAArB,qBAAqB,iBARjB,wBAAwB,aAE7B,wBAAwB;mHAMvB,qBAAqB,aALrB;QACT,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE;;KAExD,YALQ,EAAE;2FAOA,qBAAqB;kBATjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE;;qBAExD;iBACF;;;ACxBD;;;;ACAA;;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ErrorHandler } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class GlobalErrorHandler implements ErrorHandler {
|
|
4
|
+
handleError(error: any): void;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GlobalErrorHandler, never>;
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GlobalErrorHandler>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ErrorHandler } from '@angular/core';
|
|
2
|
+
import { Configurations } from '../../configuration';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SentryErrorHandler implements ErrorHandler {
|
|
5
|
+
constructor(config?: Configurations);
|
|
6
|
+
handleError(error: any): void;
|
|
7
|
+
handleChunkError(error: Error): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SentryErrorHandler, [{ optional: true; }]>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SentryErrorHandler>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class VcErrorHandlersComponent implements OnInit {
|
|
4
|
+
constructor();
|
|
5
|
+
ngOnInit(): void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VcErrorHandlersComponent, "lib-vc-error-handlers", never, {}, {}, never, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InjectionToken, ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { BrowserOptions } from '@sentry/browser';
|
|
3
|
+
import { Configurations } from './configuration';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./vc-error-handlers.component";
|
|
6
|
+
export declare const FOR_ROOT_SENTRY_OPTIONS_TOKEN: InjectionToken<BrowserOptions>;
|
|
7
|
+
export declare class VcErrorHandlersModule {
|
|
8
|
+
static forRoot(environmentConfig: Configurations): ModuleWithProviders<VcErrorHandlersModule>;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VcErrorHandlersModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<VcErrorHandlersModule, [typeof i1.VcErrorHandlersComponent], never, [typeof i1.VcErrorHandlersComponent]>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<VcErrorHandlersModule>;
|
|
12
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vc-error-handlers",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "10.x || 11.x || 12.x || 13.x || 14.x || 15.x || 16.x",
|
|
6
|
+
"@angular/core": "10.x || 11.x || 12.x || 13.x || 14.x || 15.x || 16.x"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@sentry/angular": "^7.73.0",
|
|
10
|
+
"@sentry/angular-ivy": "^7.73.0",
|
|
11
|
+
"@sentry/tracing": "^7.73.0",
|
|
12
|
+
"tslib": "^2.3.0"
|
|
13
|
+
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public",
|
|
16
|
+
"registry": "https://registry.npmjs.org/"
|
|
17
|
+
},
|
|
18
|
+
"module": "fesm2015/vc-error-handlers.mjs",
|
|
19
|
+
"es2020": "fesm2020/vc-error-handlers.mjs",
|
|
20
|
+
"esm2020": "esm2020/vc-error-handlers.mjs",
|
|
21
|
+
"fesm2020": "fesm2020/vc-error-handlers.mjs",
|
|
22
|
+
"fesm2015": "fesm2015/vc-error-handlers.mjs",
|
|
23
|
+
"typings": "vc-error-handlers.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
"./package.json": {
|
|
26
|
+
"default": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./vc-error-handlers.d.ts",
|
|
30
|
+
"esm2020": "./esm2020/vc-error-handlers.mjs",
|
|
31
|
+
"es2020": "./fesm2020/vc-error-handlers.mjs",
|
|
32
|
+
"es2015": "./fesm2015/vc-error-handlers.mjs",
|
|
33
|
+
"node": "./fesm2015/vc-error-handlers.mjs",
|
|
34
|
+
"default": "./fesm2020/vc-error-handlers.mjs"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"sideEffects": false
|
|
38
|
+
}
|
package/public-api.d.ts
ADDED