๐ฆ Workbox: JavaScript libraries for Progressive Web Apps
Full Changelog: https://github.com/GoogleChrome/workbox/compare/v7.0.0...v7.1.0
โ ๏ธ Breaking changes
config
property [#3056]workbox-precaching
during a fall back to the network, if the request's mode
is no-cors
, integrity
will not be used and the cache entry will not be repaired. [#3099]idb
and selenium-assitant
versionsFull Changelog: https://github.com/GoogleChrome/workbox/compare/v6.5.3...v6.5.4
Workbox v6.5.2 includes a number of improvements to the TypeScript documentation and exported types, which should in turn improve the generated documentation.
A full changelog is available at https://github.com/GoogleChrome/workbox/compare/v6.5.1...v6.5.2
The Workbox v6.5.1 release includes a few changes related to our TypeScript interfaces and documentation.
A full changelog is available at https://github.com/GoogleChrome/workbox/compare/v6.5.0...v6.5.1
@example
s of using our build tools have been added to the TSDocs for workbox-build
and workbox-webpack-plugin
. [#3038]generateSW()
, injectManifest()
, and getManifest()
methods in workbox-build
has been updated from unknown
to an appropriate actual type specific to each method. This should lead to better TSDoc generation and type inferences for developers. As this takes what was previously only a runtime check and moves it to a compile-time check, we believe that it should be functionally equivalent to prior releases, but if you run into problems, please let us know by opening an issue. [#3037]default
export to workbox-webpack-plugin
. [#3036]The Workbox v6.5.0 release includes a number of smaller fixes, as well as a major rewrite of the workbox-webpack-plugin
to TypeScript.
A full changelog is available at https://github.com/GoogleChrome/workbox/compare/v6.4.2...v6.5.0
workbox-webpack-plugin
has been rewritten in TypeScript, and has public TypeScript definitions for its interfaces published as part of this release. We do not anticipate any changes in the underlying functionality as part of this rewrite. [#2882]forceSyncFallback
parameter has been added to workbox-background-sync
, without changing the default behavior. When forceSyncFallback
is explicitly set to true
, workbox-background-sync
will always attempt to replay queued requests when the service worker starts up and never rely on the sync
event listener. Most developers will not need this behavior, but it can be useful when targeting environments that have a non-functional Background Sync implementation, like some Electron runtimes. [#3020]workbox-streams
. [#3001]workbox-background-sync
which could lead to errors when run through with certain aggressive minifiers. [#3012]waitUntil()
was added to the StaleWhileRevalidate
strategy, ensuring that it works properly with navigation preload responses. [#3015]source-map-url
package. [#3031]Thank you to @roikoren755 for their contributions to the workbox-webpack-plugin
TypeScript migration!
The Workbox v6.4.2 release fixes a few issues:
@apideck/better-ajv-errors
to ^0.3.1 by @wopian in https://github.com/GoogleChrome/workbox/pull/2988
ExpirationPlugin
docs by @mungojam in https://github.com/GoogleChrome/workbox/pull/2987
workbox wizard --injectManifest
by @jeffposnick in https://github.com/GoogleChrome/workbox/pull/2992
Full Changelog: https://github.com/GoogleChrome/workbox/compare/v6.4.1...v6.4.2
The Workbox v6.4.1 release fixes a few issues:
@apideck/better-ajv-errors
has been updated, which in turn addresses a security issue in one of its dependencies. [#2977]preloadResponse
was incorrect, and has been fixed to reflect the previous definition that used to be provided by the TypeScript standard library. [#2975]request.url
into account in StrategyHandler.getCacheKey()
. This ensures if a custom strategy overrides the Strategy._handle()
method and performs multiple cache operations on different URLs, the cache key is properly calculated for each distinct URL. [#2973]Workbox v6.4.0 includes:
size()
. [#2941]injectManifest
. It returns now returns a warning and continues with execution. [#2959]To our new contributors in this version: @StephanBijzitter and @fuzail-ahmed!
Workbox v6.3.0 includes a couple of bug fixes and several new features.
Although unexpected, there are edge cases where the precache might not be in an inconsistent state, most likely due to a developer manually deleting something in DevTools.
When this happens, workbox-precaching
defaults to falling-back to using a network response (assuming the device is online) when there's a precaching miss. Up until now, workbox-precaching
hasn't attempting to use this network response to repopulate the precache, because there are no guarantees that the network response corresponds to the version of the asset specified in the precache manifest.
However, if the precache entry includes an integrity
property, then subresource integrity guarantees that the response does correspond to the same version of the asset in the manifest. So it should be safe to "repair" the cache with that response. [#2921]
This small change to the way Workbox writes to IndexedDB should lead to slightly better performance, without any appreciable downsides. [#2934]
BroadcastCacheUpdate
uses postMessage()
to notify all open tabs controlled by the current service worker about a cache update. This default behavior is not changing.
Setting notifyAllClients: false
when configuring BroadcastCacheUpdate
and the associated plugin will result in postMessage()
only communicating the update to the specific window
client that triggered the fetch
request which resulted in the cache update. [#2920]
This enhancement makes it easier to use TypeScript to write workbox-window
event handlers. [#2919]
The presence of Vary:
headers on a cached Response
can make it difficult to properly match and delete cache entries. To make it clearer to developers when this is happening, the development builds of Workbox will now log a message to the console
when a Response
that's being cached includes a Vary:
header. [#2916]
chokidar
dependency, for better node
compatibility and to eliminate security warnings. [#2913]PrecacheCacheKeyPlugin
. [#2914]