Releases: vmware-archive/transport-typescript
Transport TypeScript 1.3.6
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:
- The application has an active WebSocket connection established through Transport
- 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.
- 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
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 typescript@4.2+) unless you consume the UMD version.
Transport TypeScript 1.3.4
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
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
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
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.
Transport TypeScript 1.3.0
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.
Transport TypeScript 1.2.9
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:
Transport TypeScript 1.2.8
Transport TypeScript v1.2.8 contains the following changes/bugfixes:
- Calling
new Request()
in context of the Fetch API in Safari causes theReadableStream 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
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
.