From 2a4fd2362158143884d97a413f08c9b0e151554a Mon Sep 17 00:00:00 2001 From: Simon Kirsten Date: Thu, 18 Nov 2021 13:36:22 +0100 Subject: [PATCH 01/12] Fix in-flight plugin type --- packages/in-flight/types/bugsnag-in-flight.d.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/in-flight/types/bugsnag-in-flight.d.ts b/packages/in-flight/types/bugsnag-in-flight.d.ts index c2dd1a86ea..83c0dc4843 100644 --- a/packages/in-flight/types/bugsnag-in-flight.d.ts +++ b/packages/in-flight/types/bugsnag-in-flight.d.ts @@ -5,4 +5,6 @@ interface BugsnagInFlight { flush (timeoutMs: number): Promise } -export default BugsnagInFlight +declare const BugsnagInFlightPlugin: BugsnagInFlight + +export default BugsnagInFlightPlugin From 94929dcb5da6aeb24930bbfe4111fe33666cf3eb Mon Sep 17 00:00:00 2001 From: Alex Moinet Date: Thu, 18 Nov 2021 17:09:00 +0000 Subject: [PATCH 02/12] Testing: Prep for maze ft bugsnag --- docker-compose.yml | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index f0746bd5c6..41c226bd0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,17 @@ services: - BUILDKITE_BUILD_NUMBER environment: BUILDKITE: + BUILDKITE_BRANCH: + BUILDKITE_BUILD_CREATOR: + BUILDKITE_BUILD_NUMBER: + BUILDKITE_BUILD_URL: + BUILDKITE_LABEL: + BUILDKITE_MESSAGE: BUILDKITE_PIPELINE_NAME: + BUILDKITE_REPO: + BUILDKITE_RETRY_COUNT: + BUILDKITE_STEP_KEY: + MAZE_BUGSNAG_API_KEY: DEBUG: BROWSER_STACK_USERNAME: BROWSER_STACK_ACCESS_KEY: @@ -50,6 +60,18 @@ services: target: node-maze-runner command: --fail-fast --retry 2 environment: + BUILDKITE: + BUILDKITE_BRANCH: + BUILDKITE_BUILD_CREATOR: + BUILDKITE_BUILD_NUMBER: + BUILDKITE_BUILD_URL: + BUILDKITE_LABEL: + BUILDKITE_MESSAGE: + BUILDKITE_PIPELINE_NAME: + BUILDKITE_REPO: + BUILDKITE_RETRY_COUNT: + BUILDKITE_STEP_KEY: + MAZE_BUGSNAG_API_KEY: NODE_VERSION: "${NODE_VERSION:-10}" COMPOSE_PROJECT_NAME: "node${NODE_VERSION:-10}" NETWORK_NAME: "${BUILDKITE_JOB_ID:-js-maze-runner}" @@ -69,7 +91,17 @@ services: - BUILDKITE_BUILD_NUMBER environment: BUILDKITE: + BUILDKITE_BRANCH: + BUILDKITE_BUILD_CREATOR: + BUILDKITE_BUILD_NUMBER: + BUILDKITE_BUILD_URL: + BUILDKITE_LABEL: + BUILDKITE_MESSAGE: BUILDKITE_PIPELINE_NAME: + BUILDKITE_REPO: + BUILDKITE_RETRY_COUNT: + BUILDKITE_STEP_KEY: + MAZE_BUGSNAG_API_KEY: DEBUG: BROWSER_STACK_USERNAME: BROWSER_STACK_ACCESS_KEY: @@ -145,6 +177,18 @@ services: context: . dockerfile: dockerfiles/Dockerfile.react-native-cli-tool environment: + BUILDKITE: + BUILDKITE_BRANCH: + BUILDKITE_BUILD_CREATOR: + BUILDKITE_BUILD_NUMBER: + BUILDKITE_BUILD_URL: + BUILDKITE_LABEL: + BUILDKITE_MESSAGE: + BUILDKITE_PIPELINE_NAME: + BUILDKITE_REPO: + BUILDKITE_RETRY_COUNT: + BUILDKITE_STEP_KEY: + MAZE_BUGSNAG_API_KEY: DEBUG: REACT_NATIVE_VERSION: NETWORK_NAME: "${BUILDKITE_JOB_ID:-react-native-cli-maze-runner}" @@ -183,7 +227,17 @@ services: image: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v6-cli environment: BUILDKITE: + BUILDKITE_BRANCH: + BUILDKITE_BUILD_CREATOR: + BUILDKITE_BUILD_NUMBER: + BUILDKITE_BUILD_URL: + BUILDKITE_LABEL: + BUILDKITE_MESSAGE: BUILDKITE_PIPELINE_NAME: + BUILDKITE_REPO: + BUILDKITE_RETRY_COUNT: + BUILDKITE_STEP_KEY: + MAZE_BUGSNAG_API_KEY: DEBUG: BROWSER_STACK_USERNAME: BROWSER_STACK_ACCESS_KEY: @@ -200,7 +254,17 @@ services: image: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v6-cli environment: BUILDKITE: + BUILDKITE_BRANCH: + BUILDKITE_BUILD_CREATOR: + BUILDKITE_BUILD_NUMBER: + BUILDKITE_BUILD_URL: + BUILDKITE_LABEL: + BUILDKITE_MESSAGE: BUILDKITE_PIPELINE_NAME: + BUILDKITE_REPO: + BUILDKITE_RETRY_COUNT: + BUILDKITE_STEP_KEY: + MAZE_BUGSNAG_API_KEY: DEBUG: BROWSER_STACK_USERNAME: BROWSER_STACK_ACCESS_KEY: From a686bd831efec6ec2d551b6d0fc7461036e2f6a9 Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Tue, 23 Nov 2021 15:54:51 +0000 Subject: [PATCH 03/12] Use the type, not the new value --- packages/in-flight/test/in-flight.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/in-flight/test/in-flight.test.ts b/packages/in-flight/test/in-flight.test.ts index e0bed32bab..44e3bae49b 100644 --- a/packages/in-flight/test/in-flight.test.ts +++ b/packages/in-flight/test/in-flight.test.ts @@ -5,7 +5,7 @@ import Client, { EventDeliveryPayload, SessionDeliveryPayload } from '@bugsnag/c // 'bugsnagInFlight' variable for this test to compile import BugsnagInFlightJustForTypescript from '../types/bugsnag-in-flight' -let bugsnagInFlight: BugsnagInFlightJustForTypescript +let bugsnagInFlight: typeof BugsnagInFlightJustForTypescript jest.isolateModules(() => { bugsnagInFlight = require('../src/in-flight') }) const noop = () => {} const id = (a: T) => a From 7cc68394adf5a5e924a5131d20cc14da210d05c9 Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Tue, 23 Nov 2021 16:09:54 +0000 Subject: [PATCH 04/12] Update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d78619ad7f..c8bb65bb36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## TBD + +### Fixed + +- (in-flight): Fix Typescript definition exporting a type instead of a value [skirsten](https://github.com/skirsten) [#1587](https://github.com/bugsnag/bugsnag-js/pull/1587) + ## 7.14.0 (2021-11-17) This release adds support for reporting native crashes to `@bugsnag/electron`. From 6b21b0cbc6654d488cbff4128f431f11129c8ec4 Mon Sep 17 00:00:00 2001 From: Steve Kirkland-Walton Date: Tue, 23 Nov 2021 15:37:25 +0000 Subject: [PATCH 05/12] Add safari 15 to CI --- .buildkite/browser-pipeline.yml | 14 +++ test/browser/features/browsers.yml | 107 ------------------ .../features/fixtures/browser_errors.yml | 26 +++++ 3 files changed, 40 insertions(+), 107 deletions(-) delete mode 100644 test/browser/features/browsers.yml diff --git a/.buildkite/browser-pipeline.yml b/.buildkite/browser-pipeline.yml index 9a03fd845f..db029941ff 100644 --- a/.buildkite/browser-pipeline.yml +++ b/.buildkite/browser-pipeline.yml @@ -187,6 +187,20 @@ steps: concurrency: 5 concurrency_group: 'browserstack' + - label: ':safari: v15 Browser tests' + depends_on: "browser-maze-runner-image" + timeout_in_minutes: 10 + plugins: + docker-compose#v3.7.0: + run: browser-maze-runner + use-aliases: true + verbose: true + command: + - --farm=bs + - --browser=safari_15 + concurrency: 5 + concurrency_group: 'browserstack' + - label: ':iphone: iOS 10.3 Browser tests' depends_on: "browser-maze-runner-image" timeout_in_minutes: 20 diff --git a/test/browser/features/browsers.yml b/test/browser/features/browsers.yml deleted file mode 100644 index 6ed356b129..0000000000 --- a/test/browser/features/browsers.yml +++ /dev/null @@ -1,107 +0,0 @@ -# This is a set of selenium 'capabilities' for each browser in the test matrix" ---- -ie_8: - browser: "ie" - browser_version: "8" - os: "windows" - os_version: "7" - -ie_9: - browser: "ie" - browser_version: "9" - os: "windows" - os_version: "7" - -ie_10: - browser: "ie" - browser_version: "10" - os: "windows" - os_version: "8" - -ie_11: - browser: "ie" - browser_version: "11" - os: "windows" - os_version: "10" - -edge_14: - browser: "edge" - browser_version: "14" - os: "windows" - os_version: "10" - -edge_15: - browser: "edge" - browser_version: "15" - os: "windows" - os_version: "10" - -safari_6: - browser: "safari" - browser_version: "6" - os: "OS X" - os_version: "lion" - -safari_10: - browser: "safari" - browser_version: "10.0" - os: "OS X" - os_version: "sierra" - -safari_13: - browser: "Safari" - browser_version: "13.0" - os: "OS X" - os_version: "Catalina" - -iphone_7: - browser: "iphone" - device: "iPhone 7" - os: "ios" - os_version: "10.3" - realMobile: true - -android_s8: - browser: "Android Browser" - device: "Samsung Galaxy S8 Plus" - os: "android" - os_version: "7.0" - realMobile: true - -firefox_30: - browser: "firefox" - browser_version: "30" - os: "windows" - os_version: "7" - -firefox_56: - browser: "firefox" - browser_version: "56" - os: "windows" - os_version: "10" - -firefox_latest: - browser: "firefox" - browser_version: "latest" - os: "windows" - os_version: "10" - selenium_version: "3.10.0" - -chrome_43: - browser: "chrome" - browser_version: "43.0" - os: "windows" - os_version: "7" - -chrome_61: - browser: "chrome" - browser_version: "61.0" - os: "windows" - os_version: "10" - -chrome_latest: - browser: "chrome" - browser_version: "latest" - os: "windows" - os_version: "10" - selenium_version: "3.14.0" diff --git a/test/browser/features/fixtures/browser_errors.yml b/test/browser/features/fixtures/browser_errors.yml index 89536139ec..87a41a0d18 100644 --- a/test/browser/features/fixtures/browser_errors.yml +++ b/test/browser/features/fixtures/browser_errors.yml @@ -229,6 +229,32 @@ safari_13: lineNumber: 18 columnNumber: 25 +safari_15: + handled: + errorClass: 'ReferenceError' + errorMessage: "Can't find variable: foo" + unhandled_syntax: + errorClass: 'SyntaxError' + errorMessage: "Unexpected token '!'. Parse error." + lineNumber: 18 + columnNumber: 0 + file: '/unhandled/script/a.html' + unhandled_thrown: + errorClass: 'Error' + errorMessage: "bad things" + lineNumber: 18 + columnNumber: 22 + unhandled_undefined_function: + errorClass: 'ReferenceError' + errorMessage: "Can't find variable: nevergoingtoexist_notinamillionyears" + lineNumber: 18 + columnNumber: 43 + unhandled_malformed_uri: + errorClass: 'URIError' + errorMessage: URI error + lineNumber: 18 + columnNumber: 25 + iphone_7: handled: errorClass: 'ReferenceError' From 7e9c6691442fdac9f12480a6e1bd95f623e62c9b Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Wed, 24 Nov 2021 13:30:44 +0000 Subject: [PATCH 06/12] Fix network breadcrumbs being left for minidumps --- .../net-breadcrumbs.js | 4 ++- .../test/net-breadcrumbs.test-main.ts | 34 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/packages/plugin-electron-net-breadcrumbs/net-breadcrumbs.js b/packages/plugin-electron-net-breadcrumbs/net-breadcrumbs.js index 8ebb2523d0..10c762b7ff 100644 --- a/packages/plugin-electron-net-breadcrumbs/net-breadcrumbs.js +++ b/packages/plugin-electron-net-breadcrumbs/net-breadcrumbs.js @@ -26,7 +26,9 @@ module.exports = net => ({ const method = request._urlLoaderOptions.method // don't leave breadcrumbs for Bugsnag endpoints - if (ignoredUrls.includes(url)) { + // minidump requests will have an 'api_key' query string parameter, which + // we need to remove here + if (typeof url === 'string' && ignoredUrls.includes(url.replace(/\?.*$/, ''))) { return request } diff --git a/packages/plugin-electron-net-breadcrumbs/test/net-breadcrumbs.test-main.ts b/packages/plugin-electron-net-breadcrumbs/test/net-breadcrumbs.test-main.ts index 0f213e073f..7d3258806a 100644 --- a/packages/plugin-electron-net-breadcrumbs/test/net-breadcrumbs.test-main.ts +++ b/packages/plugin-electron-net-breadcrumbs/test/net-breadcrumbs.test-main.ts @@ -191,7 +191,7 @@ describe('plugin: electron net breadcrumbs', () => { }) it.each([ - 'notify', 'sessions', 'minidump' + 'notify', 'sessions' ])('does nothing when the request is to the %s endpoint', async (endpointName) => { currentServer = await startServer(200) @@ -224,6 +224,38 @@ describe('plugin: electron net breadcrumbs', () => { expect(client._breadcrumbs).toHaveLength(0) }) + it.each('does nothing when the request is to the minidumps endpoint', async () => { + currentServer = await startServer(200) + + const url = `http://localhost:${currentServer.port}` + + const client = makeClient({ + config: { + endpoints: { + notify: 'https://example.com/notify', + sessions: 'https://example.com/sessions', + minidumps: url + } + }, + schema: { + endpoints: { defaultValue: () => ({}), message: '', validate: () => true } + } + }) + + const request = net.request(`${url}?api_key=1234567890`) + + await new Promise(resolve => { + request.on('response', (response) => { + response.on('data', () => {}) + response.on('end', resolve) + }) + + request.end() + }) + + expect(client._breadcrumbs).toHaveLength(0) + }) + it('does nothing when request breadcrumbs are disabled', async () => { currentServer = await startServer(200) From d9952cac6fe09448e1e0473b0c9aa042c968651d Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Wed, 24 Nov 2021 13:33:50 +0000 Subject: [PATCH 07/12] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8bb65bb36..1eaef95dab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - (in-flight): Fix Typescript definition exporting a type instead of a value [skirsten](https://github.com/skirsten) [#1587](https://github.com/bugsnag/bugsnag-js/pull/1587) +- (plugin-electron-net-breadcrumbs): Don't leave breadcrumbs for requests to the minidumps endpoint [#1597](https://github.com/bugsnag/bugsnag-js/pull/1597) ## 7.14.0 (2021-11-17) From 45fbe5b69df37ca289ac790c0e429c388ad3e404 Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Wed, 24 Nov 2021 16:41:56 +0000 Subject: [PATCH 08/12] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8bb65bb36..bacbae2f65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Fixed +- (plugin-network-breadcrumbs): Fix a crash when request URL is not a string [#1598](https://github.com/bugsnag/bugsnag-js/pull/1598) - (in-flight): Fix Typescript definition exporting a type instead of a value [skirsten](https://github.com/skirsten) [#1587](https://github.com/bugsnag/bugsnag-js/pull/1587) ## 7.14.0 (2021-11-17) From 1e8b8e0bb0e6e6d9ae1f1bbe1e4740b534d15af1 Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Thu, 25 Nov 2021 09:45:51 +0000 Subject: [PATCH 09/12] Fix crash when request URL is not a string e.g. a HTMLAnchorElement returns its 'href' from 'toString', which allows it to be used in place of a URL string --- .../network-breadcrumbs.js | 14 +++-- .../test/network-breadcrumbs.test.ts | 57 ++++++++++++++++++- 2 files changed, 66 insertions(+), 5 deletions(-) diff --git a/packages/plugin-network-breadcrumbs/network-breadcrumbs.js b/packages/plugin-network-breadcrumbs/network-breadcrumbs.js index e7da38c17c..663b8abd2f 100644 --- a/packages/plugin-network-breadcrumbs/network-breadcrumbs.js +++ b/packages/plugin-network-breadcrumbs/network-breadcrumbs.js @@ -60,12 +60,16 @@ module.exports = (_ignoredUrls = [], win = window) => { } function handleXHRLoad () { - if (this[REQUEST_URL_KEY] === undefined) { + const url = this[REQUEST_URL_KEY] + + if (url === undefined) { client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.') return } - if (includes(ignoredUrls, this[REQUEST_URL_KEY].replace(/\?.*$/, ''))) { + // an XMLHttpRequest's URL can be an object as long as its 'toString' + // returns a URL, e.g. a HTMLAnchorElement + if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\?.*$/, ''))) { // don't leave a network breadcrumb from bugsnag notify calls return } @@ -82,12 +86,14 @@ module.exports = (_ignoredUrls = [], win = window) => { } function handleXHRError () { - if (this[REQUEST_URL_KEY] === undefined) { + const url = this[REQUEST_URL_KEY] + + if (url === undefined) { client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.') return } - if (includes(ignoredUrls, this[REQUEST_URL_KEY].replace(/\?.*$/, ''))) { + if (typeof url === 'string' && includes(ignoredUrls, url.replace(/\?.*$/, ''))) { // don't leave a network breadcrumb from bugsnag notify calls return } diff --git a/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts b/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts index ccdebd6526..a8ab4a4c56 100644 --- a/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts +++ b/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts @@ -13,7 +13,7 @@ class XMLHttpRequest { this.status = null } - open (method: string, url: string) { + open (method: string, url: string | { toString: () => any }) { } send (fail: boolean, status: number | null = null) { @@ -225,6 +225,61 @@ describe('plugin: network breadcrumbs', () => { ) }) + it('should leave a breadcrumb when the request URL is not a string', () => { + const window = { XMLHttpRequest } as unknown as Window & typeof globalThis + + const logger = { + debug: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn() + } + + p = plugin([], window) + const client = new Client({ apiKey: 'abcabcabcabcabcabcabc1234567890f', logger, plugins: [p] }) + + const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest + request.open('GET', { toString: () => 'https://example.com' }) + request.send(false, 200) + + expect(client._breadcrumbs.length).toBe(1) + expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ + type: 'request', + message: 'XMLHttpRequest succeeded', + metadata: { + status: 200, + request: 'GET https://example.com' + } + })) + }) + + it('should leave a breadcrumb when the request URL is not a string for a request that errors', () => { + const window = { XMLHttpRequest } as unknown as Window & typeof globalThis + + const logger = { + debug: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn() + } + + p = plugin([], window) + const client = new Client({ apiKey: 'abcabcabcabcabcabcabc1234567890f', logger, plugins: [p] }) + + const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest + request.open('GET', { toString: () => 'https://example.com' }) + request.send(true) + + expect(client._breadcrumbs.length).toBe(1) + expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ + type: 'request', + message: 'XMLHttpRequest error', + metadata: { + request: 'GET https://example.com' + } + })) + }) + it('should leave a breadcrumb when a fetch() resolves', (done) => { const window = { XMLHttpRequest, fetch } as unknown as Window & typeof globalThis From cb03e8050f6432647892d995ba5a538c28441d6f Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Thu, 25 Nov 2021 13:33:16 +0000 Subject: [PATCH 10/12] Add default exports to directly imported plugins i.e. plugins that users need to import directly in their apps, rather than every single plugin We don't want to add a default export to every plugin because it bloats the browser bundle size quite a lot (a few hundred bytes) and offers no benefit to the vast majority of users, as they will never import those plugins anyway If users do want to import plugins that don't have a default export, this can be achieved anyway, e.g. Typescript's 'esModuleInterop' option However, for a good user experience, things that are directly imported should "just work" --- packages/plugin-aws-lambda/src/index.js | 3 +++ packages/plugin-contextualize/contextualize.js | 3 +++ packages/plugin-intercept/intercept.js | 3 +++ .../plugin-react-native-navigation/react-native-navigation.js | 3 +++ packages/plugin-react-navigation/react-navigation.js | 3 +++ packages/plugin-vue/src/index.js | 3 +++ 6 files changed, 18 insertions(+) diff --git a/packages/plugin-aws-lambda/src/index.js b/packages/plugin-aws-lambda/src/index.js index c79296e9dd..5a65228ad3 100644 --- a/packages/plugin-aws-lambda/src/index.js +++ b/packages/plugin-aws-lambda/src/index.js @@ -153,3 +153,6 @@ function isPromise (value) { } module.exports = BugsnagPluginAwsLambda + +// add a default export for ESM modules without interop +module.exports.default = module.exports diff --git a/packages/plugin-contextualize/contextualize.js b/packages/plugin-contextualize/contextualize.js index 65008e9dd0..82c305bf1e 100644 --- a/packages/plugin-contextualize/contextualize.js +++ b/packages/plugin-contextualize/contextualize.js @@ -29,3 +29,6 @@ module.exports = { return contextualize } } + +// add a default export for ESM modules without interop +module.exports.default = module.exports diff --git a/packages/plugin-intercept/intercept.js b/packages/plugin-intercept/intercept.js index 1cd921981e..af8bf592ab 100644 --- a/packages/plugin-intercept/intercept.js +++ b/packages/plugin-intercept/intercept.js @@ -31,3 +31,6 @@ module.exports = { return intercept } } + +// add a default export for ESM modules without interop +module.exports.default = module.exports diff --git a/packages/plugin-react-native-navigation/react-native-navigation.js b/packages/plugin-react-native-navigation/react-native-navigation.js index 87b4e11e14..7d997bb1e6 100644 --- a/packages/plugin-react-native-navigation/react-native-navigation.js +++ b/packages/plugin-react-native-navigation/react-native-navigation.js @@ -27,3 +27,6 @@ module.exports = class BugsnagPluginReactNativeNavigation { }) } } + +// add a default export for ESM modules without interop +module.exports.default = module.exports diff --git a/packages/plugin-react-navigation/react-navigation.js b/packages/plugin-react-navigation/react-navigation.js index 3a3d45567a..70ed521b50 100644 --- a/packages/plugin-react-navigation/react-navigation.js +++ b/packages/plugin-react-navigation/react-navigation.js @@ -61,3 +61,6 @@ class BugsnagPluginReactNavigation { } module.exports = BugsnagPluginReactNavigation + +// add a default export for ESM modules without interop +module.exports.default = module.exports diff --git a/packages/plugin-vue/src/index.js b/packages/plugin-vue/src/index.js index f99b4f6c73..2cbd4c844e 100644 --- a/packages/plugin-vue/src/index.js +++ b/packages/plugin-vue/src/index.js @@ -34,3 +34,6 @@ module.exports = class BugsnagPluginVue { } } } + +// add a default export for ESM modules without interop +module.exports.default = module.exports From f7d037f56e5cf9d936b622bb60e6b6967a8574ea Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Thu, 25 Nov 2021 13:37:15 +0000 Subject: [PATCH 11/12] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbd040d371..d156565d31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - (plugin-network-breadcrumbs): Fix a crash when request URL is not a string [#1598](https://github.com/bugsnag/bugsnag-js/pull/1598) - (in-flight): Fix Typescript definition exporting a type instead of a value [skirsten](https://github.com/skirsten) [#1587](https://github.com/bugsnag/bugsnag-js/pull/1587) - (plugin-electron-net-breadcrumbs): Don't leave breadcrumbs for requests to the minidumps endpoint [#1597](https://github.com/bugsnag/bugsnag-js/pull/1597) +- Add a `default` export to plugins that were missing one [#1599](https://github.com/bugsnag/bugsnag-js/pull/1599) ## 7.14.0 (2021-11-17) From 72cc1f124175d47fbb4bc7b06464c645bfa83fe6 Mon Sep 17 00:00:00 2001 From: Joe Haines Date: Mon, 29 Nov 2021 11:14:26 +0000 Subject: [PATCH 12/12] Add version & release date to changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d156565d31..1794e2aff2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## TBD +## 7.14.1 (2021-11-29) ### Fixed