Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Releases: vmware-archive/transport-typescript

Transport TypeScript 1.3.6

07 May 00:09
Compare
Choose a tag to compare

Change logs

fix: Guard against double-free of galacticChannel objects: #71

This release contains a bugfix for a rare race condition that's caused by the following chain of events:

  1. The application has an active WebSocket connection established through Transport
  2. The application goes into a long idle either by the user navigating away from the tab or putting the entire browser in background for long enough.
  3. Upon the application being brought back to foreground, the process wakes up and Transport tries to re-establish a WebSocket connection.

Depending on when the disconnection of WebSocket happens while the process is being put to sleep, a race condition can allow Transport's internal state to be modified twice, leading to the crash of the re-connection logic, which was reported by an internal VMware engineering team. See the PR for the details of the issue and the fix.

Transport TypeScript 1.3.5

08 Sep 22:44
Compare
Choose a tag to compare

Change logs

vendor: Upgrade rxjs to 7 and typescript to 4: #60

This release upgrades Transport's rxjs and typescript dependencies to 7 and 4 respectively so Transport can be used alongside Angular 12 and its peer dependencies. Transport will remain functional with rxjs v6 but typescript will need to be upgraded to 4.2 or above (see https://rxjs.dev/deprecations/breaking-changes for rxjs's requirements of [email protected]+) unless you consume the UMD version.

Transport TypeScript 1.3.4

03 Sep 20:09
4484550
Compare
Choose a tag to compare

Change logs

fix: UMD included in bundle after treeshaking: #59

Up until 1.3.3 when importing Transport as an ES6 module the UMD module file would still be included as part of the application bundle as can be seen by the breakdown from webpack-bundle-analyzer. This PR fixes it by removing the main entry from the package.json which will result in about 100kB of reduced bundle size.

Transport TypeScript 1.3.3

31 Aug 18:13
Compare
Choose a tag to compare

Change logs

fix: Schedule bus callbacks in autogen code through NgZone: #58

NOTE: this issue exclusively applies to our VMware internal autogenerated code only. direct use in application context will still work as expected, but upgrading to the latest bugfix releases is always recommended :)

Transport v1.3.3 fixes an issue that was identified while testing 1.3.2 locally on VMware Cloud UI workflows. The autogenerated code utilizes autogenerated bus channels, from and to which messages are transmitted outside of Angular Zone based on the changes made in the previous release. At some point after calling an API using the autogenerated service adapter method, results are returned back as a callback which is expected to be running in Angular Zone.

However, the API success callback that got returned was still running outside of Angular Zone, so any tasks that would schedule a macro/micro task were running side-by-side with Angular's change detection system instead of being scheduled properly next to the earlier tasks in the queue, ultimately causing the unstable UI state.

Transport TypeScript 1.3.2

26 Aug 02:00
1cb3251
Compare
Choose a tag to compare

Change logs

Fix bug introduced in v1.3.1 where messages don't trigger Angular change detection: #57

Transport 1.3.1 introduced a bug when cutting down the number of setTimeout() invocations where Angular applications would not pick up the changes even after messages have been received, unless the send operations were scheduled as a macro task. This fix will ensure messages will properly be picked up by Angular change detection system.

Transport TypeScript 1.3.1

25 Aug 19:39
fb990d8
Compare
Choose a tag to compare

Change logs

Performance boost in Angular apps or any mechanism relying on Zone.js: #54

In Angular applications changes throughout the DOM tree are managed by Zone.js by hooking into various events firing throughout the app lifecycle. This included Transport's events including its low level scheduling of macro tasks. When there is a great influx of messages being sent using bus' send API methods it hammers the Angular's change detection system (assuming no OnPush change detection strategy was employed from the root level of the app)

To alleviate the problem we have introduced a method in the EventBus API that allows the scheduling logic to opt out of Angular Zone.By using bus.setNgZoneRef() you can pass along an NgZone instance to the bus which will then use it to schedule the macro tasks outside of Angular Zone which causes far less change detection cycles.

For non-Angular apps that do not rely on Zone.js, the default behavior will kick in.

Removal of hard-coded /user prefix when subscribing & sending to private broker channels: #56

By default Transport has the conventional prefix /queue for subscribing and sending to a private destination on a broker as can be seen here. However when the actual subscription and send frames are fired from the client, the message destination would be prepended with /user, causing a destination that otherwise would be /queue/my-channel to be /user/queue/my-channel. This was a desirable behavior when we were still actively developing and testing the private channel feature against Spring Boot. Since we now support more than one backend this behavior is deemed not ideal thus we're removing the prefix. This will ensure that the queue prefix configured with fabric.connect() will be used as-is.

v1.3.0...v1.3.1

Transport TypeScript 1.3.0

21 Aug 00:31
97f59f6
Compare
Choose a tag to compare

NOTE: Transport TypeScript v1.3.0 has a breaking change

Change logs

Allow specifying SSL/TLS in fabric.connect() method: #51

FabricApi 's connect() method was missing a way to specify SSL/TLS when connecting to a broker. This PR adds it and since it changes the function signature of the method this is a breaking change hence bumping the minor version.

v1.2.9...v1.3.0

Transport TypeScript 1.2.9

01 Jun 17:42
83e46f9
Compare
Choose a tag to compare

Transport TypeScript v1.2.9 addresses the following:

  • Missing protocol and origin created by HttpClient: #44
  • Dependency bump-ups to avoid vulnerabilities

See the detailed change logs below:

v1.2.8...v1.2.9

Transport TypeScript 1.2.8

10 May 17:38
a0becaa
Compare
Choose a tag to compare

Transport TypeScript v1.2.8 contains the following changes/bugfixes:

  • Calling new Request() in context of the Fetch API in Safari causes the ReadableStream uploading is not supported error - #36
  • Various dependency bump-ups to avoid vulnerabilities

See the detailed change logs:
v1.2.7...v1.2.8

Transport TypeScript 1.2.7

11 Feb 20:24
Compare
Choose a tag to compare

Transport TypeScript 1.2.7 fixes a critical bug in the UMD module bundle (transport.umd.min.js) which prevented the bus from being initialized. The bug did not affect users importing the library through ES6 import syntax or through angular.json.