diff --git a/angular.json b/angular.json index 2b28ade11a..a861c7c672 100644 --- a/angular.json +++ b/angular.json @@ -104,7 +104,7 @@ "path-normalize" ], "namedChunks": true, - "browser": "apps/docs/src/main.ts", + "browser": "apps/docs/src/main.browser.ts", "server": "apps/docs/src/main.server.ts", "prerender": { "routesFile": "apps/docs/src/prerender-routes.txt" diff --git a/apps/docs/src/config.browser.ts b/apps/docs/src/config.browser.ts new file mode 100644 index 0000000000..5d29706c1a --- /dev/null +++ b/apps/docs/src/config.browser.ts @@ -0,0 +1,14 @@ +import { ApplicationConfig, ErrorHandler, mergeApplicationConfig } from '@angular/core'; +import * as Sentry from '@sentry/angular'; +import { appConfig } from './app/config'; + +const browserConfig: ApplicationConfig = { + providers: [ + { + provide: ErrorHandler, + useValue: Sentry.createErrorHandler() + } + ] +}; + +export const docsConfigBrowser = mergeApplicationConfig(appConfig, browserConfig); diff --git a/apps/docs/src/main.browser.ts b/apps/docs/src/main.browser.ts new file mode 100644 index 0000000000..dd15c026f9 --- /dev/null +++ b/apps/docs/src/main.browser.ts @@ -0,0 +1,29 @@ +import { isDevMode } from '@angular/core'; +import { bootstrapApplication } from '@angular/platform-browser'; +import * as Sentry from '@sentry/angular'; +import { DocsAppComponent } from './app/app.component'; +import { docsConfigBrowser } from './config.browser'; + +Sentry.init({ + dsn: 'https://0df1a826e548070a1d125e041280042e@o4511661289635840.ingest.de.sentry.io/4511858149621840', + enabled: !isDevMode(), + dataCollection: { + userInfo: false, + cookies: false, + httpHeaders: { + request: false, + response: false + }, + httpBodies: [], + urlQueryParams: false, + stackFrameVariables: false + }, + integrations: [ + Sentry.httpClientIntegration() + ] +}); + +bootstrapApplication(DocsAppComponent, docsConfigBrowser).catch((error) => { + Sentry.captureException(error); + console.error(error); +}); diff --git a/apps/docs/src/main.ts b/apps/docs/src/main.ts deleted file mode 100644 index 73e741da17..0000000000 --- a/apps/docs/src/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { bootstrapApplication } from '@angular/platform-browser'; -import { DocsAppComponent } from './app/app.component'; -import { appConfig } from './app/config'; - -bootstrapApplication(DocsAppComponent, appConfig).catch((err) => console.error(err)); diff --git a/apps/docs/tsconfig.app.json b/apps/docs/tsconfig.app.json index 0fcbdc9c98..caeaafd7c8 100644 --- a/apps/docs/tsconfig.app.json +++ b/apps/docs/tsconfig.app.json @@ -16,7 +16,7 @@ "src/**/*.d.ts" ], "files": [ - "src/main.ts", + "src/main.browser.ts", "src/main.server.ts" ], "exclude": [ diff --git a/package.json b/package.json index efd70ea792..e47ac8cee2 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "@maskito/angular": "^5.1.0", "@maskito/core": "^5.1.0", "@maskito/kit": "^5.3.1", + "@sentry/angular": "^10.69.0", "ag-grid-angular": "^34.3.1", "ag-grid-community": "^34.3.1", "highlight.js": "^11.11.1", diff --git a/yarn.lock b/yarn.lock index 3d379e47d3..34b4ccec5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6558,6 +6558,92 @@ __metadata: languageName: node linkType: hard +"@sentry/angular@npm:^10.69.0": + version: 10.69.0 + resolution: "@sentry/angular@npm:10.69.0" + dependencies: + "@sentry/browser": "npm:10.69.0" + "@sentry/conventions": "npm:^0.16.0" + "@sentry/core": "npm:10.69.0" + tslib: "npm:^2.4.1" + peerDependencies: + "@angular/common": ">= 14.x <= 22.x" + "@angular/core": ">= 14.x <= 22.x" + "@angular/router": ">= 14.x <= 22.x" + rxjs: ^6.5.5 || ^7.x + checksum: 10c0/b476e5c9de120fc73586e4d41e3f6dcb44593d74936cca733ebca25adfe15467d0951bcb6cd835dc33f962bd472e0806f78991447289e0c7f72c4bf30deaa3f9 + languageName: node + linkType: hard + +"@sentry/browser-utils@npm:10.69.0": + version: 10.69.0 + resolution: "@sentry/browser-utils@npm:10.69.0" + dependencies: + "@sentry/conventions": "npm:^0.16.0" + "@sentry/core": "npm:10.69.0" + checksum: 10c0/2b4a1429e39e48ba4729f30fae4dd217a42203c69e114fcbe3633b5690ca1ea65658b25e7e2a03c5b2df7b62362930e9d1ac648b0653f89058fd1c4f56df55df + languageName: node + linkType: hard + +"@sentry/browser@npm:10.69.0": + version: 10.69.0 + resolution: "@sentry/browser@npm:10.69.0" + dependencies: + "@sentry/browser-utils": "npm:10.69.0" + "@sentry/conventions": "npm:^0.16.0" + "@sentry/core": "npm:10.69.0" + "@sentry/feedback": "npm:10.69.0" + "@sentry/replay": "npm:10.69.0" + "@sentry/replay-canvas": "npm:10.69.0" + checksum: 10c0/0a0c2cdf0801b92bb274f74cba9b0d3cc660f2b3fd85937c3b6e9eb9021799dc8bf015b72ac3ece29a63c437a2dbe7dc13d559220f81742b8212ec2b56a89912 + languageName: node + linkType: hard + +"@sentry/conventions@npm:^0.16.0": + version: 0.16.0 + resolution: "@sentry/conventions@npm:0.16.0" + checksum: 10c0/415aaa94cade2b8e0dd00ad9aa06d998d7fe95658a8f43b6e4ef382e3b4c115c8f199ca0fe9b74a98500e8270dc68d5333fd943f7dad6ed78f60d9372231fbe8 + languageName: node + linkType: hard + +"@sentry/core@npm:10.69.0": + version: 10.69.0 + resolution: "@sentry/core@npm:10.69.0" + dependencies: + "@sentry/conventions": "npm:^0.16.0" + checksum: 10c0/d6a00824a12d332063ed309c3fc263715ac1d20d253ddfce75d22b8b046da4eb2f99d843628bf365281ca625826bc6a9bdf5dec0ce24c9eb88712f7187858891 + languageName: node + linkType: hard + +"@sentry/feedback@npm:10.69.0": + version: 10.69.0 + resolution: "@sentry/feedback@npm:10.69.0" + dependencies: + "@sentry/core": "npm:10.69.0" + checksum: 10c0/397c463bf47054c7210355eeebb81048f21f5b6d8af5e835e514eebebf670e49aa4fc07c73cbf0327a5ed88fd250a131a8045c024f164dac7587c02eb3cd0be7 + languageName: node + linkType: hard + +"@sentry/replay-canvas@npm:10.69.0": + version: 10.69.0 + resolution: "@sentry/replay-canvas@npm:10.69.0" + dependencies: + "@sentry/core": "npm:10.69.0" + "@sentry/replay": "npm:10.69.0" + checksum: 10c0/25f42d13a534c5608cc0c01624068c5f08e3157c309e53cf5a5788fa89ec66bcf706c649ff4d94240b879e8a62036813acd4416a3072eea88cd98663bfe91fb7 + languageName: node + linkType: hard + +"@sentry/replay@npm:10.69.0": + version: 10.69.0 + resolution: "@sentry/replay@npm:10.69.0" + dependencies: + "@sentry/browser-utils": "npm:10.69.0" + "@sentry/core": "npm:10.69.0" + checksum: 10c0/3c3918a037b9c1f8dc1d06b0cc456338d2316b10cef6ad42cc9154534631f48f47c4398fc503ad1d814326c489a075742e676abf27a61b3443c71265dcdadf30 + languageName: node + linkType: hard + "@sigstore/bundle@npm:^4.0.0": version: 4.0.0 resolution: "@sigstore/bundle@npm:4.0.0" @@ -13607,6 +13693,7 @@ __metadata: "@rollup/plugin-typescript": "npm:^11.1.6" "@rushstack/node-core-library": "npm:3.66.1" "@schematics/angular": "npm:20.3.32" + "@sentry/angular": "npm:^10.69.0" "@stackblitz/sdk": "npm:^1.11.1" "@stylistic/eslint-plugin": "npm:^3.1.0" "@types/express": "npm:^4.17.21" @@ -18206,7 +18293,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.8.1": +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.6.2, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62