diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ef7d7ce2..c9b41f31 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,4 +54,6 @@ jobs: - name: Check Build env: NODE_OPTIONS: '--max_old_space_size=8192' + SKIP_SOURCEMAPS: 'true' + NODE_ENV: 'development' run: yarn build diff --git a/.npmrc b/.npmrc index 9d6a9299..880fb905 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,2 @@ @navi:registry=https://nexus.cmd.navi-tech.in/repository/navi-commons/ -//registry.npmjs.org/:_authToken=NpmToken.1a3d3462-fb82-364c-bc64-0051e24635b3 +//registry.npmjs.org/:_authToken=NpmToken.1a3d3462-fb82-364c-bc64-0051e24635b3 \ No newline at end of file diff --git a/config.template.js b/config.template.js index f9894bb5..797dfc43 100644 --- a/config.template.js +++ b/config.template.js @@ -22,5 +22,6 @@ window.config = { GOOGLE_MAPS_KEY: '', GOOGLE_MAP_ID: '', ALLOCATION_VIEW_GOOGLE_MAP_ID: '', - HRC_CALL_AUTO_ACCEPT_TIMEOUT: '' + HRC_CALL_AUTO_ACCEPT_TIMEOUT: '', + SENTRY_DSN: '' }; diff --git a/configuration.js b/configuration.js index 73b29f84..07c29c14 100644 --- a/configuration.js +++ b/configuration.js @@ -1,11 +1,11 @@ window.config = { BFF_SERVICE_BASE_URL: '/api', EXTENSION_PLUGIN_USERS_LIST: [], - APM_BASE_URL: 'https://apm-server.np.navi-sa.in/', - APM_APP_NAME: 'collections-portal', + APM_BASE_URL: 'https://sa.navi.com/cybertron/api/153596815363509730290959454454515632701/envelope?sentry_key=a3df020435dd9b790235306f64c6e1a8', + APM_APP_NAME: '153596815363509730290959454454515632701', AUTH_BASE_URL: 'https://dev-dark-knight.np.navi-sa.in', AUTH_CLIENT_ID: 'KBDpUxvr5S', - SENTRY_DSN: 'https://6f03f79661684b70a2e501dde312402d@glitchtip.cmd.navi-tech.in/126', + SENTRY_DSN: 'https://a3df020435dd9b790235306f64c6e1a8@sa.navi.com/cybertron/153596815363509730290959454454515632701', BUILD_TIME: 0, ENABLE_SSO: 'true', ENV: 'dev', diff --git a/package.json b/package.json index 19659d3a..82aa8bed 100644 --- a/package.json +++ b/package.json @@ -54,11 +54,13 @@ "@fullcalendar/resource-timeline": "5.11.0", "@googlemaps/js-api-loader": "^1.16.2", "@monaco-editor/react": "^4.6.0", + "@navi/cybertron-vite-sourcemap-uploader": "^2.0.0", "@reduxjs/toolkit": "^1.7.2", "@sentry/browser": "7.13.0", "@tanstack/react-table": "8.20.5", "@types/d3": "^7.4.3", "@types/draft-js": "^0.11.18", + "@types/git-rev-sync": "^2.0.2", "@types/highcharts": "^7.0.0", "@types/react-infinite-scroller": "1.2.5", "@types/react-transition-group": "^4.4.5", @@ -76,6 +78,7 @@ "draft-js-export-markdown": "^1.4.0", "draft-js-import-markdown": "^1.4.1", "firebase": "^8.8.0", + "git-rev-sync": "^3.0.2", "highcharts": "^10.3.3", "highcharts-react": "^0.0.3", "highcharts-react-official": "^3.2.0", diff --git a/src/App.tsx b/src/App.tsx index 22d861c8..dba6213c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -55,6 +55,7 @@ declare global { clarity: (...args: any[]) => void; google: any; clientIp?: string; + alfredSessionId?: string; } interface Navigator { userAgentData: { @@ -62,8 +63,22 @@ declare global { }; } } +const releaseId = 'process.env.RELEASE_VERSION'; +const alfredSessionId = window.alfredSessionId; -// Sentry.init({ dsn: window?.config?.SENTRY_DSN }); +Sentry.init({ + dsn: window.config.SENTRY_DSN, + tunnel: window.config.APM_BASE_URL, + beforeSend(event) { + event.extra = { + ...event.extra, + release_id: releaseId, + alfredSessionId, + metadata: {} + }; + return event; + } +}); const config = window.config ?? {}; diff --git a/vite.config.ts b/vite.config.ts index c4f7acb2..0691008a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -6,20 +6,38 @@ import { ViteMinifyPlugin } from 'vite-plugin-minify'; import mkcert from 'vite-plugin-mkcert'; import { createHtmlPlugin } from 'vite-plugin-html'; import { resolve } from 'path'; - +import cybertronSourceMapPlugin from '@navi/cybertron-vite-sourcemap-uploader'; +import git from 'git-rev-sync'; export default ({ mode }) => { // Load app-level env vars to node-level env vars. process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }; + const version = git.short(); + process.env.RELEASE_VERSION = version; return defineConfig({ base: process?.env?.ASSET_PREFIX ? process?.env?.ASSET_PREFIX + 'new/' : '/', + define: { + 'process.env.RELEASE_VERSION': version + }, build: { minify: 'terser', + sourcemap: process.env.NODE_ENV != 'development', commonjsOptions: { include: /node_modules/, transformMixedEsModules: true } }, plugins: [ + cybertronSourceMapPlugin({ + key: 'navi', + apiBaseUrl: + process.env.ENV !== 'prod' + ? 'https://cybetron.np.navi-ppl.in' + : 'https://cybertron.prod.navi-ppl.in', + runInDevelopment: false, + removeSourcemaps: true, + serviceName: process.env.APM_APP_NAME, + version: version + }), tsconfigPaths(), react(), visualizer({ diff --git a/yarn.lock b/yarn.lock index 6a363898..9a01d3da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1477,6 +1477,16 @@ outvariant "^1.2.1" strict-event-emitter "^0.5.1" +"@navi/cybertron-vite-sourcemap-uploader@^2.0.0": + version "2.0.0" + resolved "https://nexus.cmd.navi-tech.in/repository/npm-packages/@navi/cybertron-vite-sourcemap-uploader/-/cybertron-vite-sourcemap-uploader-2.0.0.tgz#f078433bd5380ed5be98edd679abac553af94f53" + integrity sha512-FREs0yzfVdp11X+7Vbo3S/SpJ8enPvKhbVuVFda7DgeokJ0lnjv/FHYl73ed+nm9/i8HMvYMxhxfvnO94PUdNg== + dependencies: + axios "^1.7.4" + fast-glob "^3.2.12" + form-data "^4.0.0" + git-rev-sync "^3.0.2" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -2146,6 +2156,11 @@ resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== +"@types/git-rev-sync@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/git-rev-sync/-/git-rev-sync-2.0.2.tgz#97be2eff77d0a21acbce7e3947683633746b6233" + integrity sha512-ygFM5I5q4VJjU+xrb2MSzgj4BpC6HUzMnmfWp4d8bgAw/XFkJTiKn1uaNpOOT1gw+IxELyfY97JA6sRBv7J9sA== + "@types/graceful-fs@^4.1.2": version "4.1.6" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/@types/graceful-fs/-/graceful-fs-4.1.6.tgz" @@ -2863,6 +2878,15 @@ axios@^1.2.2: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.7.4: + version "1.7.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + babel-jest@^27.5.1: version "27.5.1" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/babel-jest/-/babel-jest-27.5.1.tgz" @@ -4611,7 +4635,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -4971,10 +4995,10 @@ fast-glob@^3.2.11: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/fast-glob/-/fast-glob-3.2.12.tgz" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== +fast-glob@^3.2.12, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4982,10 +5006,10 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/fast-glob/-/fast-glob-3.2.12.tgz" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5210,6 +5234,11 @@ follow-redirects@^1.14.9, follow-redirects@^1.15.0: resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/follow-redirects/-/follow-redirects-1.15.2.tgz" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +follow-redirects@^1.15.6: + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + for-each@^0.3.3: version "0.3.3" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/for-each/-/for-each-0.3.3.tgz" @@ -5394,6 +5423,15 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +git-rev-sync@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/git-rev-sync/-/git-rev-sync-3.0.2.tgz#9763c730981187c3419b75dd270088cc5f0e161b" + integrity sha512-Nd5RiYpyncjLv0j6IONy0lGzAqdRXUaBctuGBbrEA2m6Bn4iDrN/9MeQTXuiquw8AEKL9D2BW0nw5m/lQvxqnQ== + dependencies: + escape-string-regexp "1.0.5" + graceful-fs "4.1.15" + shelljs "0.8.5" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/glob-parent/-/glob-parent-5.1.2.tgz" @@ -5512,6 +5550,11 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +graceful-fs@4.1.15: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" @@ -5914,6 +5957,11 @@ internal-slot@^1.0.3, internal-slot@^1.0.5: resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + ip@^2.0.0: version "2.0.0" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/ip/-/ip-2.0.0.tgz" @@ -8672,6 +8720,13 @@ recharts@^2.5.0: reduce-css-calc "^2.1.8" victory-vendor "^36.6.8" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + recrawl-sync@^2.0.3: version "2.2.3" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/recrawl-sync/-/recrawl-sync-2.2.3.tgz" @@ -8796,6 +8851,15 @@ resolve.exports@^1.1.0: resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/resolve.exports/-/resolve.exports-1.1.1.tgz" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== +resolve@^1.1.6, resolve@^1.22.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.1: version "1.22.1" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/resolve/-/resolve-1.22.1.tgz" @@ -8805,15 +8869,6 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.22.2: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/resolve/-/resolve-2.0.0-next.4.tgz" @@ -9095,6 +9150,15 @@ shebang-regex@^3.0.0: resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shelljs@0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + side-channel@^1.0.4: version "1.0.4" resolved "https://nexus.cmd.navi-tech.in/repository/navi-commons/side-channel/-/side-channel-1.0.4.tgz"