Skip to content

Releases: exceptionless/Exceptionless.JavaScript

v3.1.0

29 Mar 12:46
6898ae6
Compare
Choose a tag to compare

What's Changed

We've attended to some maintenance tasks and wired up linting and formatting and upgraded dependencies while we were at it.

BREAKING

  • Target ES2022 instead of ES2021 by @niemyjski in #149 Wanted to label this as breaking but we have not changed any of the API, this just gives us updated definitions like Error: clause, smaller bundles and allows us to use new features that have had plenty of time to roll out!

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.5

24 Oct 13:29
Compare
Choose a tag to compare

This release focused on fixing a bug (#140) where the NodeJS client could throw an error on startup when trying to configure the localStorage polyfill. This was detected when running inside of an AWS Lambda function.

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.4

27 Sep 01:46
Compare
Choose a tag to compare

This release focused on fixing a bug where SimpleError type was not exported.

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.3

09 Sep 11:15
Compare
Choose a tag to compare

This release focused on improving the experience around logging.

Improvements

  • Added LogLevel type for better auto completion

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.2

12 Aug 19:21
ccbedee
Compare
Choose a tag to compare

This release focused on improving the experience around unhandledRejection errors.

Improvements

  • Added additional checks for unhandledRejection errors
  • Updated toError to not define an error stack when creating new error instances.
  • Added ability to handle errors that have no stack

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.1

04 May 12:56
Compare
Choose a tag to compare

This release added support for capturing request info headers!

New Features

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v3.0.0

22 Mar 13:52
Compare
Choose a tag to compare

This release focused on clearing the entire JavaScript client GitHub backlog and adding awesome new capabilities! We now have a super robust prune implementation that we think it's the best implementation out there that supports all JavaScript types! This allows us to finally respect max depth when sending custom event data. We also greatly improved the client behavior to terminate gracefully if when the last app statement executes, leading to a much-improved CLI / Lambda experience.

New Features

  • Fixes #42 QueueTimer keeps Node process from terminating gracefully by @niemyjski in #128
  • Fixes #25 Add support for stringifying event data with a maxDepth by @niemyjski in #127
  • Fixes #32 Addressed different promise rejection error types by @niemyjski in #120
  • Fixes #70: Ignore errors created from browser extensions by @niemyjski in #123
  • Fixes #85 Improvements to session management (Breaking Change) by @niemyjski in #124
  • Export all transitive exports (from @exceptionless/core) in dependent packages. This greatly improves the developer experience and resolves issues around browser bundles and @exceptionless/core imports.
  • Updated readme for Node --enable-source-maps

Bug Fixes

  • Fixed issue with Configuration Default Data not getting data exclusions applied.
  • Queue timer fires even when api key isn't configured by @niemyjski in #121
  • Preserve event type if event has error by @niemyjski in #122
  • Fixes #53 Ensure storage api calls error are caught and logged by @niemyjski in #126
  • Use toError for jQuery and angular errors. This fixes issues where the client may have thrown an exception due to an invalid error type. We also added examples for various error browser integrations (e.g., jQuery).

Breaking changes

  • Target ES2021 and ESM Node 18 (fetch built in) by @niemyjski in #125

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v2.0.1

21 Feb 02:08
Compare
Choose a tag to compare

This is a maintenance release that improved the npm workspaces story, fixed some minor bugs and added a new SvelteKit sample app.

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v2.0.0

20 Jul 02:22
Compare
Choose a tag to compare

We have put a ton of work into modernizing the JavaScript client to take advantage of the latest JavaScript features. When we first started writing the JavaScript client we could only target ES3. A lot has changed since then, so we wanted update the client to embrace the future while removing blocking issues that was preventing us from supporting newer technologies such as react native.

New Features

  • Source map support for browsers (@exceptionless/browser npm package) !
  • ECMAScript Modules (ESM) Support. This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This also allowed us to remove side effects and singletons from our codebase that can make it harder to create customized clients.
  • Simplified client startup for ease of use and removed configuration (useSessions(), useReferenceIds()) that could be inferred at runtime.
  • Fully async idiomatic API. We got rid of callbacks and drastically simplified the codebase. This will make it much easier to consume from modern applications.
  • We rewrote our storage and submission implementations to be compatible across many different runtimes by closely aligning with the fetch and local storage APIs.
  • React support via the @exceptionless/react npm package. We've included an example application showing how easy it is to configure.
  • Vue support via the @exceptionless/vue npm package. We've included an example application showing how easy it is to configure.

Development Improvements

  • We've spent quite a bit of time improving the development tool chain to use npm 7 workspaces. This will improve over time but really cuts down on global tooling to work with the client.
  • We added recommended linting rules and enabled TypeScript strict mode. This will reduce the chances of bugs getting into the code base while following best practices.
  • Every commit is now actively tested against multiple operating systems.

Breaking changes

  • Packages are now only hosted on npm (packages will no longer be pushed to bower) and are also available on the GitHub Registry.
  • The exceptionless npm package has been deprecated. We recommend upgrading to the @exceptionless/browser or @exceptionless/node packages respectively.
  • All packages now exclusively target ECMAScript Modules (ESM). This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This may also mean you will need to be using Node 15+ which supports ESM.
  • Please see the documentation for configuring the client as script imports and client initialization code has changed.
  • The client configuration object has been simplified a bit.
    • We've moved services (lastReferenceIdManager, log, storage, queue, submissionClient) into a services property and removed services (environmentInfoCollector, errorParser, moduleCollector, requestInfoCollector) that made more sense as a plugin or were no longer needed.
    • The following items have been removed: submissionAdapter, submissionClient, useSessions(), useReferenceIds(), defaults. The client will automatically handle sessions and reference ids based on usage.
  • We removed the addRequestInfo fluent EventBuilder API function. This was platform specific to node and didn't make sense in most cases. We replaced it with setContextProperty(key, value) which can be used to set data on the EventBuilder context to be consumed in a plugin. If you were using addRequestInfo(req) you should now call setContextProperty(KnownEventDataKeys.RequestInfo, req)

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!

v2.0.0-beta4

20 Jul 02:19
Compare
Choose a tag to compare
v2.0.0-beta4 Pre-release
Pre-release

We have put a ton of work into modernizing the JavaScript client to take advantage of the latest JavaScript features. When we first started writing the JavaScript client we could only target ES3. A lot has changed since then, so we wanted update the client to embrace the future while removing blocking issues that was preventing us from supporting newer technologies such as react native.

New Features

  • Source map support for browsers (@exceptionless/browser npm package) !
  • ECMAScript Modules (ESM) Support. This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This also allowed us to remove side effects and singletons from our codebase that can make it harder to create customized clients.
  • Simplified client startup for ease of use and removed configuration (useSessions(), useReferenceIds()) that could be inferred at runtime.
  • Fully async idiomatic API. We got rid of callbacks and drastically simplified the codebase. This will make it much easier to consume from modern applications.
  • We rewrote our storage and submission implementations to be compatible across many different runtimes by closely aligning with the fetch and local storage APIs.
  • React support via the @exceptionless/react npm package. We've included an example application showing how easy it is to configure.
  • Vue support via the @exceptionless/vue npm package. We've included an example application showing how easy it is to configure.

Development Improvements

  • We've spent quite a bit of time improving the development tool chain to use npm 7 workspaces. This will improve over time but really cuts down on global tooling to work with the client.
  • We added recommended linting rules and enabled TypeScript strict mode. This will reduce the chances of bugs getting into the code base while following best practices.
  • Every commit is now actively tested against multiple operating systems.

Breaking changes

  • Packages are now only hosted on npm (packages will no longer be pushed to bower) and are also available on the GitHub Registry.
  • The exceptionless npm package has been deprecated. We recommend upgrading to the @exceptionless/browser or @exceptionless/node packages respectively.
  • All packages now exclusively target ECMAScript Modules (ESM). This allows for smaller package sizes via tree shaking and increased support for new environments (e.g., React). This may also mean you will need to be using Node 15+ which supports ESM.
  • Please see the documentation for configuring the client as script imports and client initialization code has changed.
  • The client configuration object has been simplified a bit.
    • We've moved services (lastReferenceIdManager, log, storage, queue, submissionClient) into a services property and removed services (environmentInfoCollector, errorParser, moduleCollector, requestInfoCollector) that made more sense as a plugin or were no longer needed.
    • The following items have been removed: submissionAdapter, submissionClient, useSessions(), useReferenceIds(), defaults. The client will automatically handle sessions and reference ids based on usage.
  • We removed the addRequestInfo fluent EventBuilder API function. This was platform specific to node and didn't make sense in most cases. We replaced it with setContextProperty(key, value) which can be used to set data on the EventBuilder context to be consumed in a plugin. If you were using addRequestInfo(req) you should now call setContextProperty(KnownEventDataKeys.RequestInfo, req)

Please take a look at the change log for a full list of the changes.

Feedback

We're listening and we'd love to hear your feedback! Please send us your feedback by clicking on one of the links below!