googlechrome/workbox
### [`v6.2.0`](https://togithub.com/googlechrome/workbox/releases/v6.2.0)
[Compare Source](https://togithub.com/googlechrome/workbox/compare/v6.1.5...v6.2.0)
Workbox v6.2.0. It includes a number of bug fixes and internal refactoring described below.
Our intention is **not** to include any breaking changes in v6.2.0, and we've made an effort to maintain the same public interfaces and general behaviors while rewriting some of Workbox's internals.
#### π What's New?
##### workbox-build TypeScript rewrite
The `workbox-build` module has been rewritten in TypeScript, following the earlier migration of the `workbox-cli` module. (`workbox-webpack-plugin` has not yet been migrated.) Developers who use `workbox-build` from their own TypeScript code should benefit from the official, accurate type definitions that are now published alongside `workbox-build`. \[[#2867](https://togithub.com/googlechrome/workbox/issues/2867)]
##### Build tool option validation
As part of this change, `workbox-build` now uses the TypeScript definitions as the source of truth when validating the configuration options developers provide. Previously, [`joi`](https://joi.dev/) was used for validation with its own set of schema, and this would sometimes lead to mismatches between what the validation logic thought was okay and what the code actually expected. Developers who inspect the validation errors returned by `workbox-build` will likely see different error strings in v6.2.0. We expect that moving forward, using TypeScript as the source of truth will lead to fewer of those mismatches.This change applies to both `workbox-cli` and `workbox-webpack-plugin`, as well, which rely on `workbox-build` under the hood.
##### IndexedDB code migration
Another refactoring is the replacement of our previous custom IndexedDB logic with the [`idb` library](https://togithub.com/jakearchibald/idb). No developer-visible changes are expected due to this migration. \[[#2838](https://togithub.com/googlechrome/workbox/issues/2838)]
##### Multiple controlling events during a page's lifetime
Following this change, `worbox-window`'s `controlling` event is fired each time the underlying [`oncontrollerchange` event](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/oncontrollerchange) happens. Multiple `controlling` events can occur on a long-lived page in which multiple service worker updates take place. `isExternal: true` will be set when the service worker that takes control is "[external](https://developers.google.com/web/tools/workbox/modules/workbox-window#when_an_unexpected_version_of_the_service_worker_is_found)," which will always be the case for multiple updates.
Previously, `controlling` would only be fired once per lifetime of the page, which does not match the documented behavior. This change is considered a bug fix to match the expected behavior, and developers are encouraged to test their logic to ensure that they were not relying on the previous, buggy behavior. \[[#2817](https://togithub.com/googlechrome/workbox/issues/2817)]
##### TrustedScriptURL support in workbox-window
Developers who have opted-in to the [CSP policy](https://web.dev/trusted-types/) `"require-trusted-types-for 'script'"` and who are using TypeScript would have previously had trouble using `TrustedScriptURL`s in `workbox-window`. This release improves that support. \[[#2872](https://togithub.com/googlechrome/workbox/issues/2872)]
##### rangeRequests option in runtimeCaching
Setting `rangeRequests: true` inside of a [`runtimeCaching`](https://developers.google.com/web/tools/workbox/reference-docs/latest/module-workbox-build#.RuntimeCachingEntry) configuration entry will add the RangeRequestsPlugin to the service worker generated by Workbox's build tools. \[[#2871](https://togithub.com/googlechrome/workbox/issues/2871)]
#### π What's Fixed?
##### workbox-core
- The `HandlerDidErrorCallbackParam` type definition is now exported alongside the other relevant TypeScript types. \[[#2886](https://togithub.com/googlechrome/workbox/issues/2886)]
##### workbox-webpack-plugin
- A bug was fixed that could lead to invalid generated code when quotation chars when `webpack`'s `eval-cheap-source-map` is used along with the `InjectManifest` plugin. \[[#2847](https://togithub.com/googlechrome/workbox/issues/2847)]
##### workbox-window
- `ports` was missing on the `WorkboxMessageEvent`. It's been added, mirroring the value of the underlying `MessageEvent`, when used in an `onmessage` handler. \[[#2874](https://togithub.com/googlechrome/workbox/issues/2874)]
- The `WorkboxEventMap` type definition is now exported alongside the other relevant TypeScript types. \[[#2870](https://togithub.com/googlechrome/workbox/issues/2870)]
#### Thanks!
Thank you [@rockwalrus](https://togithub.com/rockwalrus) for contributing a PR \[[#2857](https://togithub.com/googlechrome/workbox/issues/2857)] that went into this release!
Configuration
π Schedule: At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box.
This PR contains the following updates:
6.1.5
->6.2.0
Release Notes
googlechrome/workbox
### [`v6.2.0`](https://togithub.com/googlechrome/workbox/releases/v6.2.0) [Compare Source](https://togithub.com/googlechrome/workbox/compare/v6.1.5...v6.2.0) Workbox v6.2.0. It includes a number of bug fixes and internal refactoring described below. Our intention is **not** to include any breaking changes in v6.2.0, and we've made an effort to maintain the same public interfaces and general behaviors while rewriting some of Workbox's internals. #### π What's New? ##### workbox-build TypeScript rewrite The `workbox-build` module has been rewritten in TypeScript, following the earlier migration of the `workbox-cli` module. (`workbox-webpack-plugin` has not yet been migrated.) Developers who use `workbox-build` from their own TypeScript code should benefit from the official, accurate type definitions that are now published alongside `workbox-build`. \[[#2867](https://togithub.com/googlechrome/workbox/issues/2867)] ##### Build tool option validation As part of this change, `workbox-build` now uses the TypeScript definitions as the source of truth when validating the configuration options developers provide. Previously, [`joi`](https://joi.dev/) was used for validation with its own set of schema, and this would sometimes lead to mismatches between what the validation logic thought was okay and what the code actually expected. Developers who inspect the validation errors returned by `workbox-build` will likely see different error strings in v6.2.0. We expect that moving forward, using TypeScript as the source of truth will lead to fewer of those mismatches.This change applies to both `workbox-cli` and `workbox-webpack-plugin`, as well, which rely on `workbox-build` under the hood. ##### IndexedDB code migration Another refactoring is the replacement of our previous custom IndexedDB logic with the [`idb` library](https://togithub.com/jakearchibald/idb). No developer-visible changes are expected due to this migration. \[[#2838](https://togithub.com/googlechrome/workbox/issues/2838)] ##### Multiple controlling events during a page's lifetime Following this change, `worbox-window`'s `controlling` event is fired each time the underlying [`oncontrollerchange` event](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/oncontrollerchange) happens. Multiple `controlling` events can occur on a long-lived page in which multiple service worker updates take place. `isExternal: true` will be set when the service worker that takes control is "[external](https://developers.google.com/web/tools/workbox/modules/workbox-window#when_an_unexpected_version_of_the_service_worker_is_found)," which will always be the case for multiple updates. Previously, `controlling` would only be fired once per lifetime of the page, which does not match the documented behavior. This change is considered a bug fix to match the expected behavior, and developers are encouraged to test their logic to ensure that they were not relying on the previous, buggy behavior. \[[#2817](https://togithub.com/googlechrome/workbox/issues/2817)] ##### TrustedScriptURL support in workbox-window Developers who have opted-in to the [CSP policy](https://web.dev/trusted-types/) `"require-trusted-types-for 'script'"` and who are using TypeScript would have previously had trouble using `TrustedScriptURL`s in `workbox-window`. This release improves that support. \[[#2872](https://togithub.com/googlechrome/workbox/issues/2872)] ##### rangeRequests option in runtimeCaching Setting `rangeRequests: true` inside of a [`runtimeCaching`](https://developers.google.com/web/tools/workbox/reference-docs/latest/module-workbox-build#.RuntimeCachingEntry) configuration entry will add the RangeRequestsPlugin to the service worker generated by Workbox's build tools. \[[#2871](https://togithub.com/googlechrome/workbox/issues/2871)] #### π What's Fixed? ##### workbox-core - The `HandlerDidErrorCallbackParam` type definition is now exported alongside the other relevant TypeScript types. \[[#2886](https://togithub.com/googlechrome/workbox/issues/2886)] ##### workbox-webpack-plugin - A bug was fixed that could lead to invalid generated code when quotation chars when `webpack`'s `eval-cheap-source-map` is used along with the `InjectManifest` plugin. \[[#2847](https://togithub.com/googlechrome/workbox/issues/2847)] ##### workbox-window - `ports` was missing on the `WorkboxMessageEvent`. It's been added, mirroring the value of the underlying `MessageEvent`, when used in an `onmessage` handler. \[[#2874](https://togithub.com/googlechrome/workbox/issues/2874)] - The `WorkboxEventMap` type definition is now exported alongside the other relevant TypeScript types. \[[#2870](https://togithub.com/googlechrome/workbox/issues/2870)] #### Thanks! Thank you [@rockwalrus](https://togithub.com/rockwalrus) for contributing a PR \[[#2857](https://togithub.com/googlechrome/workbox/issues/2857)] that went into this release!Configuration
π Schedule: At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.