serwist 9.1.0-preview.0 → 10.0.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/NavigationRoute.d.ts.map +1 -1
  2. package/dist/RegExpRoute.d.ts.map +1 -1
  3. package/dist/Route.d.ts.map +1 -1
  4. package/dist/Serwist.d.ts +75 -53
  5. package/dist/Serwist.d.ts.map +1 -1
  6. package/dist/cacheNames.d.ts.map +1 -1
  7. package/dist/chunks/waitUntil.js +49 -42
  8. package/dist/copyResponse.d.ts.map +1 -1
  9. package/dist/index.d.ts +11 -36
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.internal.d.ts +16 -16
  12. package/dist/index.internal.d.ts.map +1 -1
  13. package/dist/index.internal.js +25 -3
  14. package/dist/index.js +1918 -248
  15. package/dist/lib/backgroundSync/BackgroundSyncPlugin.d.ts +2 -2
  16. package/dist/lib/backgroundSync/BackgroundSyncPlugin.d.ts.map +1 -1
  17. package/dist/lib/backgroundSync/StorableRequest.d.ts.map +1 -1
  18. package/dist/lib/backgroundSync/index.d.ts +6 -0
  19. package/dist/lib/backgroundSync/index.d.ts.map +1 -0
  20. package/dist/lib/broadcastUpdate/BroadcastCacheUpdate.d.ts.map +1 -1
  21. package/dist/lib/broadcastUpdate/BroadcastUpdatePlugin.d.ts +2 -2
  22. package/dist/lib/broadcastUpdate/BroadcastUpdatePlugin.d.ts.map +1 -1
  23. package/dist/lib/broadcastUpdate/index.d.ts +6 -0
  24. package/dist/lib/broadcastUpdate/index.d.ts.map +1 -0
  25. package/dist/lib/broadcastUpdate/responsesAreSame.d.ts.map +1 -1
  26. package/dist/lib/cacheableResponse/CacheableResponsePlugin.d.ts +3 -3
  27. package/dist/lib/cacheableResponse/CacheableResponsePlugin.d.ts.map +1 -1
  28. package/dist/lib/cacheableResponse/index.d.ts +4 -0
  29. package/dist/lib/cacheableResponse/index.d.ts.map +1 -0
  30. package/dist/{legacy/utils → lib/controllers/PrecacheController}/PrecacheCacheKeyPlugin.d.ts +4 -4
  31. package/dist/lib/controllers/PrecacheController/PrecacheCacheKeyPlugin.d.ts.map +1 -0
  32. package/dist/{legacy → lib/controllers/PrecacheController}/PrecacheController.d.ts +77 -64
  33. package/dist/lib/controllers/PrecacheController/PrecacheController.d.ts.map +1 -0
  34. package/dist/lib/controllers/PrecacheController/PrecacheInstallReportPlugin.d.ts +14 -0
  35. package/dist/lib/controllers/PrecacheController/PrecacheInstallReportPlugin.d.ts.map +1 -0
  36. package/dist/{PrecacheRoute.d.ts → lib/controllers/PrecacheController/PrecacheRoute.d.ts} +4 -5
  37. package/dist/lib/controllers/PrecacheController/PrecacheRoute.d.ts.map +1 -0
  38. package/dist/lib/{strategies → controllers/PrecacheController}/PrecacheStrategy.d.ts +6 -6
  39. package/dist/lib/controllers/PrecacheController/PrecacheStrategy.d.ts.map +1 -0
  40. package/dist/lib/controllers/PrecacheController/parsePrecacheOptions.d.ts +25 -0
  41. package/dist/lib/controllers/PrecacheController/parsePrecacheOptions.d.ts.map +1 -0
  42. package/dist/lib/controllers/RuntimeCacheController.d.ts +70 -0
  43. package/dist/lib/controllers/RuntimeCacheController.d.ts.map +1 -0
  44. package/dist/lib/controllers/index.d.ts +4 -0
  45. package/dist/lib/controllers/index.d.ts.map +1 -0
  46. package/dist/lib/expiration/ExpirationPlugin.d.ts +2 -2
  47. package/dist/lib/expiration/ExpirationPlugin.d.ts.map +1 -1
  48. package/dist/lib/expiration/index.d.ts +4 -0
  49. package/dist/lib/expiration/index.d.ts.map +1 -0
  50. package/dist/lib/googleAnalytics/index.d.ts +3 -0
  51. package/dist/lib/googleAnalytics/index.d.ts.map +1 -0
  52. package/dist/lib/googleAnalytics/initializeGoogleAnalytics.d.ts.map +1 -1
  53. package/dist/lib/precaching/PrecacheFallbackPlugin.d.ts +15 -9
  54. package/dist/lib/precaching/PrecacheFallbackPlugin.d.ts.map +1 -1
  55. package/dist/lib/precaching/index.d.ts +3 -0
  56. package/dist/lib/precaching/index.d.ts.map +1 -0
  57. package/dist/lib/rangeRequests/RangeRequestsPlugin.d.ts +3 -3
  58. package/dist/lib/rangeRequests/RangeRequestsPlugin.d.ts.map +1 -1
  59. package/dist/lib/rangeRequests/createPartialResponse.d.ts.map +1 -1
  60. package/dist/lib/rangeRequests/index.d.ts +3 -0
  61. package/dist/lib/rangeRequests/index.d.ts.map +1 -0
  62. package/dist/lib/rangeRequests/utils/calculateEffectiveBoundaries.d.ts.map +1 -1
  63. package/dist/lib/rangeRequests/utils/parseRangeHeader.d.ts.map +1 -1
  64. package/dist/lib/strategies/Strategy.d.ts +3 -3
  65. package/dist/lib/strategies/Strategy.d.ts.map +1 -1
  66. package/dist/lib/strategies/StrategyHandler.d.ts +4 -4
  67. package/dist/lib/strategies/StrategyHandler.d.ts.map +1 -1
  68. package/dist/lib/strategies/index.d.ts +11 -0
  69. package/dist/lib/strategies/index.d.ts.map +1 -0
  70. package/dist/lib/strategies/plugins/cacheOkAndOpaquePlugin.d.ts +2 -2
  71. package/dist/lib/strategies/plugins/cacheOkAndOpaquePlugin.d.ts.map +1 -1
  72. package/dist/navigationPreload.d.ts.map +1 -1
  73. package/dist/registerQuotaErrorCallback.d.ts.map +1 -1
  74. package/dist/setCacheNameDetails.d.ts +1 -1
  75. package/dist/setCacheNameDetails.d.ts.map +1 -1
  76. package/dist/types.d.ts +35 -64
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/utils/SerwistError.d.ts +1 -1
  79. package/dist/utils/SerwistError.d.ts.map +1 -1
  80. package/dist/utils/cleanupOutdatedCaches.d.ts.map +1 -1
  81. package/dist/utils/createCacheKey.d.ts.map +1 -1
  82. package/dist/utils/deleteOutdatedCaches.d.ts.map +1 -1
  83. package/dist/utils/getFriendlyURL.d.ts.map +1 -1
  84. package/dist/utils/normalizeHandler.d.ts.map +1 -1
  85. package/dist/utils/parseRoute.d.ts.map +1 -1
  86. package/dist/utils/pluginUtils.d.ts +2 -2
  87. package/dist/utils/pluginUtils.d.ts.map +1 -1
  88. package/dist/utils/printCleanupDetails.d.ts.map +1 -1
  89. package/dist/utils/printInstallDetails.d.ts.map +1 -1
  90. package/dist/utils/removeIgnoredSearchParams.d.ts.map +1 -1
  91. package/dist/utils/waitUntil.d.ts.map +1 -1
  92. package/package.json +29 -13
  93. package/src/NavigationRoute.ts +2 -2
  94. package/src/RegExpRoute.ts +2 -2
  95. package/src/Route.ts +2 -2
  96. package/src/Serwist.ts +170 -271
  97. package/src/cacheNames.ts +1 -1
  98. package/src/copyResponse.ts +2 -2
  99. package/src/index.internal.ts +16 -16
  100. package/src/index.ts +68 -93
  101. package/src/lib/backgroundSync/BackgroundSyncPlugin.ts +2 -2
  102. package/src/lib/backgroundSync/BackgroundSyncQueue.ts +4 -4
  103. package/src/lib/backgroundSync/BackgroundSyncQueueStore.ts +1 -1
  104. package/src/lib/backgroundSync/StorableRequest.ts +1 -1
  105. package/src/lib/backgroundSync/index.ts +5 -0
  106. package/src/lib/broadcastUpdate/BroadcastCacheUpdate.ts +4 -4
  107. package/src/lib/broadcastUpdate/BroadcastUpdatePlugin.ts +2 -2
  108. package/src/lib/broadcastUpdate/index.ts +5 -0
  109. package/src/lib/broadcastUpdate/responsesAreSame.ts +2 -2
  110. package/src/lib/cacheableResponse/CacheableResponse.ts +4 -4
  111. package/src/lib/cacheableResponse/CacheableResponsePlugin.ts +3 -3
  112. package/src/lib/cacheableResponse/index.ts +3 -0
  113. package/src/{legacy/utils → lib/controllers/PrecacheController}/PrecacheCacheKeyPlugin.ts +5 -6
  114. package/src/lib/controllers/PrecacheController/PrecacheController.ts +328 -0
  115. package/src/{utils → lib/controllers/PrecacheController}/PrecacheInstallReportPlugin.ts +5 -5
  116. package/src/{PrecacheRoute.ts → lib/controllers/PrecacheController/PrecacheRoute.ts} +11 -12
  117. package/src/lib/{strategies → controllers/PrecacheController}/PrecacheStrategy.ts +13 -13
  118. package/src/lib/controllers/PrecacheController/parsePrecacheOptions.ts +46 -0
  119. package/src/lib/controllers/RuntimeCacheController.ts +119 -0
  120. package/src/lib/controllers/index.ts +3 -0
  121. package/src/lib/expiration/CacheExpiration.ts +3 -3
  122. package/src/lib/expiration/ExpirationPlugin.ts +8 -8
  123. package/src/lib/expiration/index.ts +3 -0
  124. package/src/lib/googleAnalytics/index.ts +2 -0
  125. package/src/lib/googleAnalytics/initializeGoogleAnalytics.ts +5 -5
  126. package/src/lib/precaching/PrecacheFallbackPlugin.ts +23 -12
  127. package/src/lib/precaching/index.ts +2 -0
  128. package/src/lib/rangeRequests/RangeRequestsPlugin.ts +3 -3
  129. package/src/lib/rangeRequests/createPartialResponse.ts +3 -3
  130. package/src/lib/rangeRequests/index.ts +2 -0
  131. package/src/lib/rangeRequests/utils/calculateEffectiveBoundaries.ts +2 -2
  132. package/src/lib/rangeRequests/utils/parseRangeHeader.ts +2 -2
  133. package/src/lib/strategies/CacheFirst.ts +3 -3
  134. package/src/lib/strategies/CacheOnly.ts +3 -3
  135. package/src/lib/strategies/NetworkFirst.ts +3 -3
  136. package/src/lib/strategies/NetworkOnly.ts +4 -4
  137. package/src/lib/strategies/StaleWhileRevalidate.ts +3 -3
  138. package/src/lib/strategies/Strategy.ts +7 -7
  139. package/src/lib/strategies/StrategyHandler.ts +18 -18
  140. package/src/lib/strategies/index.ts +10 -0
  141. package/src/lib/strategies/plugins/cacheOkAndOpaquePlugin.ts +2 -2
  142. package/src/lib/strategies/utils/messages.ts +2 -2
  143. package/src/models/messages/messages.ts +3 -3
  144. package/src/navigationPreload.ts +1 -1
  145. package/src/registerQuotaErrorCallback.ts +2 -2
  146. package/src/setCacheNameDetails.ts +4 -4
  147. package/src/types.ts +56 -68
  148. package/src/utils/SerwistError.ts +2 -2
  149. package/src/utils/cacheNames.ts +1 -1
  150. package/src/utils/executeQuotaErrorCallbacks.ts +1 -1
  151. package/src/utils/pluginUtils.ts +2 -2
  152. package/dist/PrecacheRoute.d.ts.map +0 -1
  153. package/dist/chunks/printInstallDetails.js +0 -1601
  154. package/dist/chunks/resultingClientExists.js +0 -32
  155. package/dist/index.legacy.d.ts +0 -28
  156. package/dist/index.legacy.d.ts.map +0 -1
  157. package/dist/index.legacy.js +0 -790
  158. package/dist/legacy/PrecacheController.d.ts.map +0 -1
  159. package/dist/legacy/PrecacheFallbackPlugin.d.ts +0 -61
  160. package/dist/legacy/PrecacheFallbackPlugin.d.ts.map +0 -1
  161. package/dist/legacy/PrecacheRoute.d.ts +0 -19
  162. package/dist/legacy/PrecacheRoute.d.ts.map +0 -1
  163. package/dist/legacy/Router.d.ts +0 -151
  164. package/dist/legacy/Router.d.ts.map +0 -1
  165. package/dist/legacy/addPlugins.d.ts +0 -9
  166. package/dist/legacy/addPlugins.d.ts.map +0 -1
  167. package/dist/legacy/addRoute.d.ts +0 -14
  168. package/dist/legacy/addRoute.d.ts.map +0 -1
  169. package/dist/legacy/constants.d.ts +0 -10
  170. package/dist/legacy/constants.d.ts.map +0 -1
  171. package/dist/legacy/createHandlerBoundToURL.d.ts +0 -17
  172. package/dist/legacy/createHandlerBoundToURL.d.ts.map +0 -1
  173. package/dist/legacy/fallbacks.d.ts +0 -59
  174. package/dist/legacy/fallbacks.d.ts.map +0 -1
  175. package/dist/legacy/getCacheKeyForURL.d.ts +0 -20
  176. package/dist/legacy/getCacheKeyForURL.d.ts.map +0 -1
  177. package/dist/legacy/handlePrecaching.d.ts +0 -54
  178. package/dist/legacy/handlePrecaching.d.ts.map +0 -1
  179. package/dist/legacy/initializeGoogleAnalytics.d.ts +0 -38
  180. package/dist/legacy/initializeGoogleAnalytics.d.ts.map +0 -1
  181. package/dist/legacy/installSerwist.d.ts +0 -81
  182. package/dist/legacy/installSerwist.d.ts.map +0 -1
  183. package/dist/legacy/matchPrecache.d.ts +0 -15
  184. package/dist/legacy/matchPrecache.d.ts.map +0 -1
  185. package/dist/legacy/precache.d.ts +0 -20
  186. package/dist/legacy/precache.d.ts.map +0 -1
  187. package/dist/legacy/precacheAndRoute.d.ts +0 -14
  188. package/dist/legacy/precacheAndRoute.d.ts.map +0 -1
  189. package/dist/legacy/registerRoute.d.ts +0 -16
  190. package/dist/legacy/registerRoute.d.ts.map +0 -1
  191. package/dist/legacy/registerRuntimeCaching.d.ts +0 -11
  192. package/dist/legacy/registerRuntimeCaching.d.ts.map +0 -1
  193. package/dist/legacy/setCatchHandler.d.ts +0 -10
  194. package/dist/legacy/setCatchHandler.d.ts.map +0 -1
  195. package/dist/legacy/setDefaultHandler.d.ts +0 -13
  196. package/dist/legacy/setDefaultHandler.d.ts.map +0 -1
  197. package/dist/legacy/singletonPrecacheController.d.ts +0 -34
  198. package/dist/legacy/singletonPrecacheController.d.ts.map +0 -1
  199. package/dist/legacy/singletonRouter.d.ts +0 -41
  200. package/dist/legacy/singletonRouter.d.ts.map +0 -1
  201. package/dist/legacy/unregisterRoute.d.ts +0 -9
  202. package/dist/legacy/unregisterRoute.d.ts.map +0 -1
  203. package/dist/legacy/utils/PrecacheCacheKeyPlugin.d.ts.map +0 -1
  204. package/dist/legacy/utils/getCacheKeyForURL.d.ts +0 -14
  205. package/dist/legacy/utils/getCacheKeyForURL.d.ts.map +0 -1
  206. package/dist/lib/strategies/PrecacheStrategy.d.ts.map +0 -1
  207. package/dist/utils/PrecacheCacheKeyPlugin.d.ts +0 -16
  208. package/dist/utils/PrecacheCacheKeyPlugin.d.ts.map +0 -1
  209. package/dist/utils/PrecacheInstallReportPlugin.d.ts +0 -14
  210. package/dist/utils/PrecacheInstallReportPlugin.d.ts.map +0 -1
  211. package/dist/utils/parsePrecacheOptions.d.ts +0 -26
  212. package/dist/utils/parsePrecacheOptions.d.ts.map +0 -1
  213. package/src/index.legacy.ts +0 -62
  214. package/src/legacy/PrecacheController.ts +0 -337
  215. package/src/legacy/PrecacheFallbackPlugin.ts +0 -92
  216. package/src/legacy/PrecacheRoute.ts +0 -48
  217. package/src/legacy/Router.ts +0 -484
  218. package/src/legacy/addPlugins.ts +0 -21
  219. package/src/legacy/addRoute.ts +0 -27
  220. package/src/legacy/constants.ts +0 -22
  221. package/src/legacy/createHandlerBoundToURL.ts +0 -30
  222. package/src/legacy/fallbacks.ts +0 -94
  223. package/src/legacy/getCacheKeyForURL.ts +0 -32
  224. package/src/legacy/handlePrecaching.ts +0 -86
  225. package/src/legacy/initializeGoogleAnalytics.ts +0 -218
  226. package/src/legacy/installSerwist.ts +0 -170
  227. package/src/legacy/matchPrecache.ts +0 -27
  228. package/src/legacy/precache.ts +0 -33
  229. package/src/legacy/precacheAndRoute.ts +0 -27
  230. package/src/legacy/registerRoute.ts +0 -28
  231. package/src/legacy/registerRuntimeCaching.ts +0 -17
  232. package/src/legacy/setCatchHandler.ts +0 -21
  233. package/src/legacy/setDefaultHandler.ts +0 -24
  234. package/src/legacy/singletonPrecacheController.ts +0 -53
  235. package/src/legacy/singletonRouter.ts +0 -70
  236. package/src/legacy/unregisterRoute.ts +0 -13
  237. package/src/legacy/utils/getCacheKeyForURL.ts +0 -36
  238. package/src/utils/PrecacheCacheKeyPlugin.ts +0 -33
  239. package/src/utils/parsePrecacheOptions.ts +0 -47
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationRoute.d.ts","sourceRoot":"","sources":["../src/NavigationRoute.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAA6B,MAAM,YAAY,CAAC;AAI1E,MAAM,WAAW,2BAA2B;IAC1C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAErC;;;;;;;;;;;;;;;;;OAiBG;gBACS,OAAO,EAAE,YAAY,EAAE,EAAE,SAAiB,EAAE,QAAa,EAAE,GAAE,2BAAgC;IAsBzG;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CA8Bf"}
1
+ {"version":3,"file":"NavigationRoute.d.ts","sourceRoot":"","sources":["../src/NavigationRoute.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAA6B,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAErC;;;;;;;;;;;;;;;;;OAiBG;gBACS,OAAO,EAAE,YAAY,EAAE,EAAE,SAAiB,EAAE,QAAa,EAAE,GAAE,2BAAgC;IAsBzG;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CA8Bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"RegExpRoute.d.ts","sourceRoot":"","sources":["../src/RegExpRoute.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAI9F;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU;CAyCvE"}
1
+ {"version":3,"file":"RegExpRoute.d.ts","sourceRoot":"","sources":["../src/RegExpRoute.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAE9F;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU;CAyCvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../src/Route.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIvF;;;;;;GAMG;AACH,qBAAa,KAAK;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;;;;;;OASG;gBACS,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAE,UAA0B;IAqBhG;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;CAG7C"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../src/Route.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvF;;;;;;GAMG;AACH,qBAAa,KAAK;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;;;;;;OASG;gBACS,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAE,UAA0B;IAqBhG;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;CAG7C"}
package/dist/Serwist.d.ts CHANGED
@@ -1,11 +1,10 @@
1
+ import { PrecacheController, type PrecacheOptions } from "#lib/controllers/PrecacheController/PrecacheController.js";
2
+ import { type GoogleAnalyticsInitializeOptions } from "#lib/googleAnalytics/initializeGoogleAnalytics.js";
3
+ import type { PrecacheFallbackEntry } from "#lib/precaching/PrecacheFallbackPlugin.js";
4
+ import type { Strategy } from "#lib/strategies/Strategy.js";
1
5
  import type { Route } from "./Route.js";
2
6
  import { type HTTPMethod } from "./constants.js";
3
- import { type GoogleAnalyticsInitializeOptions } from "./lib/googleAnalytics/initializeGoogleAnalytics.js";
4
- import { type PrecacheFallbackEntry } from "./lib/precaching/PrecacheFallbackPlugin.js";
5
- import { Strategy } from "./lib/strategies/Strategy.js";
6
- import type { PrecacheOptions, RouteHandler, RouteHandlerCallback, RouteHandlerCallbackOptions, RouteMatchCallback, RouteMatchCallbackOptions } from "./types.js";
7
- import type { RuntimeCaching } from "./types.js";
8
- import type { CleanupResult, InstallResult, PrecacheEntry } from "./types.js";
7
+ import type { Controller, PrecacheEntry, RouteHandler, RouteHandlerCallback, RouteHandlerCallbackOptions, RouteMatchCallback, RouteMatchCallbackOptions, RuntimeCaching } from "./types.js";
9
8
  export interface FallbackEntry extends PrecacheFallbackEntry {
10
9
  }
11
10
  export interface FallbacksOptions {
@@ -23,6 +22,10 @@ export interface SerwistOptions {
23
22
  * Options to customize how Serwist precaches the URLs in the precache list.
24
23
  */
25
24
  precacheOptions?: PrecacheOptions;
25
+ /**
26
+ * A list of controllers that run throughout Serwist's lifecycle.
27
+ */
28
+ controllers?: Controller[];
26
29
  /**
27
30
  * Forces the waiting service worker to become the active one.
28
31
  *
@@ -55,6 +58,8 @@ export interface SerwistOptions {
55
58
  clientsClaim?: boolean;
56
59
  /**
57
60
  * A list of caching strategies.
61
+ *
62
+ * @deprecated Use {@linkcode RuntimeCacheController} instead.
58
63
  */
59
64
  runtimeCaching?: RuntimeCaching[];
60
65
  /**
@@ -74,6 +79,8 @@ export interface SerwistOptions {
74
79
  *
75
80
  * Note: This option mutates `runtimeCaching`. It also expects the URLs
76
81
  * defined in `entries` to have been precached beforehand.
82
+ *
83
+ * @deprecated Use {@linkcode RuntimeCacheController} instead.
77
84
  */
78
85
  fallbacks?: FallbacksOptions;
79
86
  }
@@ -83,15 +90,23 @@ export interface SerwistOptions {
83
90
  * @see https://serwist.pages.dev/docs/serwist/core/serwist
84
91
  */
85
92
  export declare class Serwist {
86
- private readonly _urlsToCacheKeys;
87
- private readonly _urlsToCacheModes;
88
- private readonly _cacheKeysToIntegrities;
89
- private _concurrentPrecaching;
90
- private readonly _precacheStrategy;
91
93
  private readonly _routes;
92
94
  private readonly _defaultHandlerMap;
95
+ private readonly _precacheController;
96
+ private readonly _controllers;
93
97
  private _catchHandler?;
94
- constructor({ precacheEntries, precacheOptions, skipWaiting, importScripts, navigationPreload, cacheId, clientsClaim, runtimeCaching, offlineAnalyticsConfig, disableDevLogs, fallbacks, }?: SerwistOptions);
98
+ constructor({ precacheEntries, precacheOptions, controllers, skipWaiting, importScripts, navigationPreload, cacheId, clientsClaim, runtimeCaching, offlineAnalyticsConfig, disableDevLogs, fallbacks, }?: SerwistOptions);
99
+ /**
100
+ * Accepts a callback name and returns an iterable of matching plugin callbacks.
101
+ *
102
+ * @param name The name fo the callback to run
103
+ * @returns
104
+ */
105
+ iterateControllers<C extends keyof Controller>(name: C): Generator<NonNullable<Controller[C]>>;
106
+ /**
107
+ * The `PrecacheController` used to handle precaching.
108
+ */
109
+ get precache(): PrecacheController;
95
110
  /**
96
111
  * The strategy used to precache assets and respond to `fetch` events.
97
112
  */
@@ -102,15 +117,9 @@ export declare class Serwist {
102
117
  */
103
118
  get routes(): Map<HTTPMethod, Route[]>;
104
119
  /**
105
- * Adds Serwist's event listeners for you. Before calling it, add your own listeners should you need to.
120
+ * Adds Serwist's event listeners. Before calling it, add your own listeners should you need to.
106
121
  */
107
122
  addEventListeners(): void;
108
- /**
109
- * Adds items to the precache list, removing duplicates and ensuring the information is valid.
110
- *
111
- * @param entries Array of entries to precache.
112
- */
113
- addToPrecacheList(entries: (PrecacheEntry | string)[]): void;
114
123
  /**
115
124
  * Precaches new and updated assets. Call this method from the service worker's
116
125
  * `install` event.
@@ -121,7 +130,7 @@ export declare class Serwist {
121
130
  * @param event
122
131
  * @returns
123
132
  */
124
- handleInstall(event: ExtendableEvent): Promise<InstallResult>;
133
+ handleInstall(event: ExtendableEvent): Promise<void>;
125
134
  /**
126
135
  * Deletes assets that are no longer present in the current precache manifest.
127
136
  * Call this method from the service worker's `activate` event.
@@ -132,7 +141,7 @@ export declare class Serwist {
132
141
  * @param event
133
142
  * @returns
134
143
  */
135
- handleActivate(event: ExtendableEvent): Promise<CleanupResult>;
144
+ handleActivate(event: ExtendableEvent): Promise<void>;
136
145
  /**
137
146
  * Gets a `Response` from an appropriate `Route`'s handler. Call this method
138
147
  * from the service worker's `fetch` event.
@@ -191,10 +200,50 @@ export declare class Serwist {
191
200
  * @param route The {@linkcode Route} object to unregister.
192
201
  */
193
202
  unregisterRoute(route: Route): void;
203
+ /**
204
+ * Applies the routing rules to a `FetchEvent` object to get a response from an
205
+ * appropriate route.
206
+ *
207
+ * @param options
208
+ * @returns A promise is returned if a registered route can handle the request.
209
+ * If there is no matching route and there's no default handler, `undefined`
210
+ * is returned.
211
+ */
212
+ handleRequest({ request, event, }: {
213
+ /**
214
+ * The request to handle.
215
+ */
216
+ request: Request;
217
+ /**
218
+ * The event that triggered the request.
219
+ */
220
+ event: ExtendableEvent;
221
+ }): Promise<Response> | undefined;
222
+ /**
223
+ * Checks a request and URL (and optionally an event) against the list of
224
+ * registered routes, and if there's a match, returns the corresponding
225
+ * route along with any params generated by the match.
226
+ *
227
+ * @param options
228
+ * @returns An object with `route` and `params` properties. They are populated
229
+ * if a matching route was found or `undefined` otherwise.
230
+ */
231
+ findMatchingRoute({ url, sameOrigin, request, event }: RouteMatchCallbackOptions): {
232
+ route?: Route;
233
+ params?: RouteHandlerCallbackOptions["params"];
234
+ };
235
+ /**
236
+ * Adds items to the precache list, removing duplicates and ensuring the information is valid.
237
+ *
238
+ * @deprecated Use `serwist.precache.addToCacheList` instead.
239
+ * @param entries Array of entries to precache.
240
+ */
241
+ addToPrecacheList(entries: (PrecacheEntry | string)[]): void;
194
242
  /**
195
243
  * Returns a mapping of a precached URL to the corresponding cache key, taking
196
244
  * into account the revision information for the URL.
197
245
  *
246
+ * @deprecated Use `serwist.precache.getUrlsToPrecacheKeys` instead.
198
247
  * @returns A URL to cache key mapping.
199
248
  */
200
249
  getUrlsToPrecacheKeys(): Map<string, string>;
@@ -202,6 +251,7 @@ export declare class Serwist {
202
251
  * Returns a list of all the URLs that have been precached by the current
203
252
  * service worker.
204
253
  *
254
+ * @deprecated Use `serwist.precache.getPrecachedUrls` instead.
205
255
  * @returns The precached URLs.
206
256
  */
207
257
  getPrecachedUrls(): string[];
@@ -210,12 +260,14 @@ export declare class Serwist {
210
260
  * unversioned, like "/index.html", then the cache key will be the original
211
261
  * URL with a search parameter appended to it.
212
262
  *
263
+ * @deprecated Use `serwist.precache.getPrecacheKeyForUrl` instead.
213
264
  * @param url A URL whose cache key you want to look up.
214
265
  * @returns The versioned URL that corresponds to a cache key
215
266
  * for the original URL, or undefined if that URL isn't precached.
216
267
  */
217
268
  getPrecacheKeyForUrl(url: string): string | undefined;
218
269
  /**
270
+ * @deprecated Use `serwist.precache.getIntegrityForPrecacheKey` instead.
219
271
  * @param url A cache key whose SRI you want to look up.
220
272
  * @returns The subresource integrity associated with the cache key,
221
273
  * or undefined if it's not set.
@@ -235,6 +287,7 @@ export declare class Serwist {
235
287
  * response for the currently active service worker, even if the actual cache
236
288
  * key is `'/index.html?__WB_REVISION__=1234abcd'`.
237
289
  *
290
+ * @deprecated Use `serwist.precache.matchPrecache` instead.
238
291
  * @param request The key (without revisioning parameters)
239
292
  * to look up in the precache.
240
293
  * @returns
@@ -244,41 +297,10 @@ export declare class Serwist {
244
297
  * Returns a function that looks up `url` in the precache (taking into
245
298
  * account revision information), and returns the corresponding `Response`.
246
299
  *
300
+ * @deprecated Use `serwist.precache.createHandlerBoundToUrl` instead.
247
301
  * @param url The precached URL which will be used to lookup the response.
248
302
  * @return
249
303
  */
250
304
  createHandlerBoundToUrl(url: string): RouteHandlerCallback;
251
- /**
252
- * Applies the routing rules to a `FetchEvent` object to get a response from an
253
- * appropriate route.
254
- *
255
- * @param options
256
- * @returns A promise is returned if a registered route can handle the request.
257
- * If there is no matching route and there's no default handler, `undefined`
258
- * is returned.
259
- */
260
- handleRequest({ request, event, }: {
261
- /**
262
- * The request to handle.
263
- */
264
- request: Request;
265
- /**
266
- * The event that triggered the request.
267
- */
268
- event: ExtendableEvent;
269
- }): Promise<Response> | undefined;
270
- /**
271
- * Checks a request and URL (and optionally an event) against the list of
272
- * registered routes, and if there's a match, returns the corresponding
273
- * route along with any params generated by the match.
274
- *
275
- * @param options
276
- * @returns An object with `route` and `params` properties. They are populated
277
- * if a matching route was found or `undefined` otherwise.
278
- */
279
- findMatchingRoute({ url, sameOrigin, request, event }: RouteMatchCallbackOptions): {
280
- route?: Route;
281
- params?: RouteHandlerCallbackOptions["params"];
282
- };
283
305
  }
284
306
  //# sourceMappingURL=Serwist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Serwist.d.ts","sourceRoot":"","sources":["../src/Serwist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Serwist.d.ts","sourceRoot":"","sources":["../src/Serwist.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cacheNames.d.ts","sourceRoot":"","sources":["../src/cacheNames.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU;;;;;;CAgBtB,CAAC"}
1
+ {"version":3,"file":"cacheNames.d.ts","sourceRoot":"","sources":["../src/cacheNames.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU;8BACE,MAAM;uBAGb,MAAM;qBAGR,MAAM;sBAGL,MAAM;qBAGP,MAAM;CAGrB,CAAC"}
@@ -35,13 +35,13 @@ const messages = {
35
35
  return `${moduleName}.${className}.${funcName}() expected the ` + `'${paramName}' parameter to expose a '${expectedMethod}' method.`;
36
36
  },
37
37
  "add-to-cache-list-unexpected-type": ({ entry })=>{
38
- return `An unexpected entry was passed to 'serwist.Serwist.addToPrecacheList()' The entry '${JSON.stringify(entry)}' isn't supported. You must supply an array of strings with one or more characters, objects with a url property or Request objects.`;
38
+ return `An unexpected entry was passed to 'serwist.Serwist.precache.addToCacheList()' The entry '${JSON.stringify(entry)}' isn't supported. You must supply an array of strings with one or more characters, objects with a url property or Request objects.`;
39
39
  },
40
40
  "add-to-cache-list-conflicting-entries": ({ firstEntry, secondEntry })=>{
41
41
  if (!firstEntry || !secondEntry) {
42
42
  throw new Error("Unexpected input to " + `'add-to-cache-list-duplicate-entries' error.`);
43
43
  }
44
- return `Two of the entries passed to 'serwist.Serwist.addToPrecacheList()' had the URL ${firstEntry} but different revision details. Serwist is unable to cache and version the asset correctly. Please remove one of the entries.`;
44
+ return `Two of the entries passed to 'serwist.Serwist.precache.addToCacheList()' had the URL ${firstEntry} but different revision details. Serwist is unable to cache and version the asset correctly. Please remove one of the entries.`;
45
45
  },
46
46
  "plugin-error-request-will-fetch": ({ thrownErrorMessage })=>{
47
47
  if (!thrownErrorMessage) {
@@ -144,7 +144,7 @@ const messages = {
144
144
  return `'createHandlerBoundToURL("${url}")' was called, but that URL is not precached. Please pass in a URL that is precached instead.`;
145
145
  },
146
146
  "add-to-cache-list-conflicting-integrities": ({ url })=>{
147
- return `Two of the entries passed to 'serwist.Serwist.addToPrecacheList()' had the URL ${url} with different integrity values. Please remove one of them.`;
147
+ return `Two of the entries passed to 'serwist.Serwist.precache.addToCacheList()' had the URL ${url} with different integrity values. Please remove one of them.`;
148
148
  },
149
149
  "missing-precache-entry": ({ cacheName, url })=>{
150
150
  return `Unable to find a precached response in ${cacheName} for ${url}.`;
@@ -338,6 +338,23 @@ const cacheNames = {
338
338
  }
339
339
  };
340
340
 
341
+ let supportStatus;
342
+ function canConstructResponseFromBodyStream() {
343
+ if (supportStatus === undefined) {
344
+ const testResponse = new Response("");
345
+ if ("body" in testResponse) {
346
+ try {
347
+ new Response(testResponse.body);
348
+ supportStatus = true;
349
+ } catch (error) {
350
+ supportStatus = false;
351
+ }
352
+ }
353
+ supportStatus = false;
354
+ }
355
+ return supportStatus;
356
+ }
357
+
341
358
  class Deferred {
342
359
  promise;
343
360
  resolve;
@@ -397,53 +414,43 @@ function timeout(ms) {
397
414
  return new Promise((resolve)=>setTimeout(resolve, ms));
398
415
  }
399
416
 
400
- let supportStatus;
401
- function canConstructResponseFromBodyStream() {
402
- if (supportStatus === undefined) {
403
- const testResponse = new Response("");
404
- if ("body" in testResponse) {
405
- try {
406
- new Response(testResponse.body);
407
- supportStatus = true;
408
- } catch (error) {
409
- supportStatus = false;
417
+ const clientsClaim = ()=>{
418
+ self.addEventListener("activate", ()=>self.clients.claim());
419
+ };
420
+
421
+ const MAX_RETRY_TIME = 2000;
422
+ async function resultingClientExists(resultingClientId) {
423
+ if (!resultingClientId) {
424
+ return;
425
+ }
426
+ let existingWindows = await self.clients.matchAll({
427
+ type: "window"
428
+ });
429
+ const existingWindowIds = new Set(existingWindows.map((w)=>w.id));
430
+ let resultingWindow = undefined;
431
+ const startTime = performance.now();
432
+ while(performance.now() - startTime < MAX_RETRY_TIME){
433
+ existingWindows = await self.clients.matchAll({
434
+ type: "window"
435
+ });
436
+ resultingWindow = existingWindows.find((w)=>{
437
+ if (resultingClientId) {
438
+ return w.id === resultingClientId;
410
439
  }
440
+ return !existingWindowIds.has(w.id);
441
+ });
442
+ if (resultingWindow) {
443
+ break;
411
444
  }
412
- supportStatus = false;
445
+ await timeout(100);
413
446
  }
414
- return supportStatus;
447
+ return resultingWindow;
415
448
  }
416
449
 
417
- const SUBSTRING_TO_FIND = "-precache-";
418
- const deleteOutdatedCaches = async (currentPrecacheName, substringToFind = SUBSTRING_TO_FIND)=>{
419
- const cacheNames = await self.caches.keys();
420
- const cacheNamesToDelete = cacheNames.filter((cacheName)=>{
421
- return cacheName.includes(substringToFind) && cacheName.includes(self.registration.scope) && cacheName !== currentPrecacheName;
422
- });
423
- await Promise.all(cacheNamesToDelete.map((cacheName)=>self.caches.delete(cacheName)));
424
- return cacheNamesToDelete;
425
- };
426
-
427
- const cleanupOutdatedCaches = (cacheName)=>{
428
- self.addEventListener("activate", (event)=>{
429
- event.waitUntil(deleteOutdatedCaches(cacheNames.getPrecacheName(cacheName)).then((cachesDeleted)=>{
430
- if (process.env.NODE_ENV !== "production") {
431
- if (cachesDeleted.length > 0) {
432
- logger.log("The following out-of-date precaches were cleaned up automatically:", cachesDeleted);
433
- }
434
- }
435
- }));
436
- });
437
- };
438
-
439
- const clientsClaim = ()=>{
440
- self.addEventListener("activate", ()=>self.clients.claim());
441
- };
442
-
443
450
  const waitUntil = (event, asyncFn)=>{
444
451
  const returnPromise = asyncFn();
445
452
  event.waitUntil(returnPromise);
446
453
  return returnPromise;
447
454
  };
448
455
 
449
- export { Deferred as D, SerwistError as S, clientsClaim as a, cleanupOutdatedCaches as b, cacheNames as c, cacheMatchIgnoreParams as d, executeQuotaErrorCallbacks as e, finalAssertExports as f, getFriendlyURL as g, canConstructResponseFromBodyStream as h, logger as l, quotaErrorCallbacks as q, timeout as t, waitUntil as w };
456
+ export { Deferred as D, SerwistError as S, cacheMatchIgnoreParams as a, cacheNames as b, canConstructResponseFromBodyStream as c, clientsClaim as d, executeQuotaErrorCallbacks as e, finalAssertExports as f, getFriendlyURL as g, logger as l, quotaErrorCallbacks as q, resultingClientExists as r, timeout as t, waitUntil as w };
@@ -1 +1 @@
1
- {"version":3,"file":"copyResponse.d.ts","sourceRoot":"","sources":["../src/copyResponse.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,aAAoB,QAAQ,aAAa,CAAC,YAAY,EAAE,YAAY,KAAK,YAAY,KAAG,OAAO,CAAC,QAAQ,CA8BhI,CAAC"}
1
+ {"version":3,"file":"copyResponse.d.ts","sourceRoot":"","sources":["../src/copyResponse.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,GAAU,UAAU,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,YAAY,KAAK,YAAY,KAAG,OAAO,CAAC,QAAQ,CA8BhI,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type { NavigationRouteMatchOptions } from "./NavigationRoute.js";
2
2
  import { NavigationRoute } from "./NavigationRoute.js";
3
- import { PrecacheRoute } from "./PrecacheRoute.js";
4
3
  import { RegExpRoute } from "./RegExpRoute.js";
5
4
  import { Route } from "./Route.js";
6
5
  import { Serwist, type SerwistOptions } from "./Serwist.js";
@@ -8,43 +7,19 @@ import { cacheNames } from "./cacheNames.js";
8
7
  import type { HTTPMethod } from "./constants.js";
9
8
  import { copyResponse } from "./copyResponse.js";
10
9
  import { disableDevLogs } from "./disableDevLogs.js";
11
- import { BackgroundSyncPlugin } from "./lib/backgroundSync/BackgroundSyncPlugin.js";
12
- import type { BackgroundSyncQueueEntry, BackgroundSyncQueueOptions } from "./lib/backgroundSync/BackgroundSyncQueue.js";
13
- import { BackgroundSyncQueue } from "./lib/backgroundSync/BackgroundSyncQueue.js";
14
- import { BackgroundSyncQueueStore } from "./lib/backgroundSync/BackgroundSyncQueueStore.js";
15
- import { StorableRequest } from "./lib/backgroundSync/StorableRequest.js";
16
- import { BroadcastCacheUpdate } from "./lib/broadcastUpdate/BroadcastCacheUpdate.js";
17
- import { BroadcastUpdatePlugin } from "./lib/broadcastUpdate/BroadcastUpdatePlugin.js";
18
- import { BROADCAST_UPDATE_DEFAULT_HEADERS } from "./lib/broadcastUpdate/constants.js";
19
- import { responsesAreSame } from "./lib/broadcastUpdate/responsesAreSame.js";
20
- import type { BroadcastCacheUpdateOptions, BroadcastMessage, BroadcastPayload, BroadcastPayloadGenerator } from "./lib/broadcastUpdate/types.js";
21
- import { CacheableResponse } from "./lib/cacheableResponse/CacheableResponse.js";
22
- import type { CacheableResponseOptions } from "./lib/cacheableResponse/CacheableResponse.js";
23
- import { CacheableResponsePlugin } from "./lib/cacheableResponse/CacheableResponsePlugin.js";
24
- import { CacheExpiration } from "./lib/expiration/CacheExpiration.js";
25
- import type { ExpirationPluginOptions } from "./lib/expiration/ExpirationPlugin.js";
26
- import { ExpirationPlugin } from "./lib/expiration/ExpirationPlugin.js";
27
- import { initializeGoogleAnalytics } from "./lib/googleAnalytics/initializeGoogleAnalytics.js";
28
- import type { GoogleAnalyticsInitializeOptions } from "./lib/googleAnalytics/initializeGoogleAnalytics.js";
29
- import type { PrecacheFallbackEntry, PrecacheFallbackPluginOptions } from "./lib/precaching/PrecacheFallbackPlugin.js";
30
- import { PrecacheFallbackPlugin } from "./lib/precaching/PrecacheFallbackPlugin.js";
31
- import { RangeRequestsPlugin } from "./lib/rangeRequests/RangeRequestsPlugin.js";
32
- import { createPartialResponse } from "./lib/rangeRequests/createPartialResponse.js";
33
- import { CacheFirst } from "./lib/strategies/CacheFirst.js";
34
- import { CacheOnly } from "./lib/strategies/CacheOnly.js";
35
- import type { NetworkFirstOptions } from "./lib/strategies/NetworkFirst.js";
36
- import { NetworkFirst } from "./lib/strategies/NetworkFirst.js";
37
- import type { NetworkOnlyOptions } from "./lib/strategies/NetworkOnly.js";
38
- import { NetworkOnly } from "./lib/strategies/NetworkOnly.js";
39
- import { PrecacheStrategy } from "./lib/strategies/PrecacheStrategy.js";
40
- import { StaleWhileRevalidate } from "./lib/strategies/StaleWhileRevalidate.js";
41
- import type { StrategyOptions } from "./lib/strategies/Strategy.js";
42
- import { Strategy } from "./lib/strategies/Strategy.js";
43
- import { StrategyHandler } from "./lib/strategies/StrategyHandler.js";
44
10
  import { disableNavigationPreload, enableNavigationPreload, isNavigationPreloadSupported } from "./navigationPreload.js";
45
11
  import { registerQuotaErrorCallback } from "./registerQuotaErrorCallback.js";
46
12
  import { setCacheNameDetails } from "./setCacheNameDetails.js";
47
- export { Serwist, cacheNames, copyResponse, disableDevLogs, disableNavigationPreload, enableNavigationPreload, isNavigationPreloadSupported, registerQuotaErrorCallback, setCacheNameDetails, CacheFirst, CacheOnly, NetworkFirst, NetworkOnly, PrecacheStrategy, StaleWhileRevalidate, Strategy, StrategyHandler, NavigationRoute, PrecacheRoute, RegExpRoute, Route, BackgroundSyncPlugin, BackgroundSyncQueue, BackgroundSyncQueueStore, StorableRequest, BroadcastCacheUpdate, BroadcastUpdatePlugin, BROADCAST_UPDATE_DEFAULT_HEADERS, responsesAreSame, CacheableResponse, CacheableResponsePlugin, CacheExpiration, ExpirationPlugin, PrecacheFallbackPlugin, initializeGoogleAnalytics, createPartialResponse, RangeRequestsPlugin, };
48
- export type { HTTPMethod, SerwistOptions, NetworkFirstOptions, NetworkOnlyOptions, StrategyOptions, NavigationRouteMatchOptions, BackgroundSyncQueueOptions, BackgroundSyncQueueEntry, BroadcastCacheUpdateOptions, BroadcastPayload, BroadcastPayloadGenerator, BroadcastMessage, CacheableResponseOptions, ExpirationPluginOptions, PrecacheFallbackEntry, PrecacheFallbackPluginOptions, GoogleAnalyticsInitializeOptions, };
13
+ export { BackgroundSyncPlugin, BackgroundSyncQueue, BackgroundSyncQueueStore, StorableRequest, type BackgroundSyncQueueOptions, type BackgroundSyncQueueEntry, } from "#lib/backgroundSync/index.js";
14
+ export { BroadcastCacheUpdate, BroadcastUpdatePlugin, BROADCAST_UPDATE_DEFAULT_HEADERS, responsesAreSame, type BroadcastCacheUpdateOptions, type BroadcastPayload, type BroadcastPayloadGenerator, type BroadcastMessage, } from "#lib/broadcastUpdate/index.js";
15
+ export { CacheableResponse, CacheableResponsePlugin, type CacheableResponseOptions, } from "#lib/cacheableResponse/index.js";
16
+ export { PrecacheStrategy, PrecacheRoute, RuntimeCacheController } from "#lib/controllers/index.js";
17
+ export { CacheExpiration, ExpirationPlugin, type ExpirationPluginOptions, } from "#lib/expiration/index.js";
18
+ export { initializeGoogleAnalytics, type GoogleAnalyticsInitializeOptions } from "#lib/googleAnalytics/index.js";
19
+ export { PrecacheFallbackPlugin, type PrecacheFallbackEntry, type PrecacheFallbackPluginOptions, } from "#lib/precaching/index.js";
20
+ export { createPartialResponse, RangeRequestsPlugin, } from "#lib/rangeRequests/index.js";
21
+ export { CacheFirst, CacheOnly, NetworkFirst, NetworkOnly, StaleWhileRevalidate, Strategy, StrategyHandler, type NetworkFirstOptions, type NetworkOnlyOptions, type StrategyOptions, } from "#lib/strategies/index.js";
22
+ export { Serwist, cacheNames, copyResponse, disableDevLogs, disableNavigationPreload, enableNavigationPreload, isNavigationPreloadSupported, registerQuotaErrorCallback, setCacheNameDetails, NavigationRoute, RegExpRoute, Route, };
23
+ export type { HTTPMethod, SerwistOptions, NavigationRouteMatchOptions };
49
24
  export type * from "./types.js";
50
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACzH,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gCAAgC,EAChC,gBAAgB,EAChB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGpG,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,yBAAyB,EAAE,KAAK,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAGjH,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,OAAO,EACP,UAAU,EACV,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EAEnB,eAAe,EACf,WAAW,EACX,KAAK,GACN,CAAC;AACF,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC;AACxE,mBAAmB,YAAY,CAAC"}
@@ -1,18 +1,18 @@
1
- import { Deferred } from "./utils/Deferred.js";
2
- import { SerwistError } from "./utils/SerwistError.js";
3
- import { assert } from "./utils/assert.js";
4
- import { cacheMatchIgnoreParams } from "./utils/cacheMatchIgnoreParams.js";
5
- import { cacheNames as privateCacheNames } from "./utils/cacheNames.js";
6
- import { canConstructReadableStream } from "./utils/canConstructReadableStream.js";
7
- import { canConstructResponseFromBodyStream } from "./utils/canConstructResponseFromBodyStream.js";
8
- import { cleanupOutdatedCaches } from "./utils/cleanupOutdatedCaches.js";
9
- import { clientsClaim } from "./utils/clientsClaim.js";
10
- import { dontWaitFor } from "./utils/dontWaitFor.js";
11
- import { executeQuotaErrorCallbacks } from "./utils/executeQuotaErrorCallbacks.js";
12
- import { getFriendlyURL } from "./utils/getFriendlyURL.js";
13
- import { logger } from "./utils/logger.js";
14
- import { resultingClientExists } from "./utils/resultingClientExists.js";
15
- import { timeout } from "./utils/timeout.js";
16
- import { waitUntil } from "./utils/waitUntil.js";
1
+ import { Deferred } from "#utils/Deferred.js";
2
+ import { SerwistError } from "#utils/SerwistError.js";
3
+ import { assert } from "#utils/assert.js";
4
+ import { cacheMatchIgnoreParams } from "#utils/cacheMatchIgnoreParams.js";
5
+ import { cacheNames as privateCacheNames } from "#utils/cacheNames.js";
6
+ import { canConstructReadableStream } from "#utils/canConstructReadableStream.js";
7
+ import { canConstructResponseFromBodyStream } from "#utils/canConstructResponseFromBodyStream.js";
8
+ import { cleanupOutdatedCaches } from "#utils/cleanupOutdatedCaches.js";
9
+ import { clientsClaim } from "#utils/clientsClaim.js";
10
+ import { dontWaitFor } from "#utils/dontWaitFor.js";
11
+ import { executeQuotaErrorCallbacks } from "#utils/executeQuotaErrorCallbacks.js";
12
+ import { getFriendlyURL } from "#utils/getFriendlyURL.js";
13
+ import { logger } from "#utils/logger.js";
14
+ import { resultingClientExists } from "#utils/resultingClientExists.js";
15
+ import { timeout } from "#utils/timeout.js";
16
+ import { waitUntil } from "#utils/waitUntil.js";
17
17
  export { Deferred, SerwistError, assert, cleanupOutdatedCaches, clientsClaim, cacheMatchIgnoreParams, privateCacheNames, canConstructReadableStream, canConstructResponseFromBodyStream, dontWaitFor, executeQuotaErrorCallbacks, getFriendlyURL, logger, resultingClientExists, timeout, waitUntil, };
18
18
  //# sourceMappingURL=index.internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.internal.d.ts","sourceRoot":"","sources":["../src/index.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,EAClC,WAAW,EACX,0BAA0B,EAC1B,cAAc,EACd,MAAM,EACN,qBAAqB,EACrB,OAAO,EACP,SAAS,GACV,CAAC"}
1
+ {"version":3,"file":"index.internal.d.ts","sourceRoot":"","sources":["../src/index.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,EAClC,WAAW,EACX,0BAA0B,EAC1B,cAAc,EACd,MAAM,EACN,qBAAqB,EACrB,OAAO,EACP,SAAS,GACV,CAAC"}
@@ -1,5 +1,5 @@
1
- export { D as Deferred, S as SerwistError, f as assert, d as cacheMatchIgnoreParams, h as canConstructResponseFromBodyStream, b as cleanupOutdatedCaches, a as clientsClaim, e as executeQuotaErrorCallbacks, g as getFriendlyURL, l as logger, c as privateCacheNames, t as timeout, w as waitUntil } from './chunks/waitUntil.js';
2
- export { r as resultingClientExists } from './chunks/resultingClientExists.js';
1
+ import { b as cacheNames, l as logger } from './chunks/waitUntil.js';
2
+ export { D as Deferred, S as SerwistError, f as assert, a as cacheMatchIgnoreParams, c as canConstructResponseFromBodyStream, d as clientsClaim, e as executeQuotaErrorCallbacks, g as getFriendlyURL, r as resultingClientExists, t as timeout, w as waitUntil } from './chunks/waitUntil.js';
3
3
 
4
4
  let supportStatus;
5
5
  function canConstructReadableStream() {
@@ -16,8 +16,30 @@ function canConstructReadableStream() {
16
16
  return supportStatus;
17
17
  }
18
18
 
19
+ const SUBSTRING_TO_FIND = "-precache-";
20
+ const deleteOutdatedCaches = async (currentPrecacheName, substringToFind = SUBSTRING_TO_FIND)=>{
21
+ const cacheNames = await self.caches.keys();
22
+ const cacheNamesToDelete = cacheNames.filter((cacheName)=>{
23
+ return cacheName.includes(substringToFind) && cacheName.includes(self.registration.scope) && cacheName !== currentPrecacheName;
24
+ });
25
+ await Promise.all(cacheNamesToDelete.map((cacheName)=>self.caches.delete(cacheName)));
26
+ return cacheNamesToDelete;
27
+ };
28
+
29
+ const cleanupOutdatedCaches = (cacheName)=>{
30
+ self.addEventListener("activate", (event)=>{
31
+ event.waitUntil(deleteOutdatedCaches(cacheNames.getPrecacheName(cacheName)).then((cachesDeleted)=>{
32
+ if (process.env.NODE_ENV !== "production") {
33
+ if (cachesDeleted.length > 0) {
34
+ logger.log("The following out-of-date precaches were cleaned up automatically:", cachesDeleted);
35
+ }
36
+ }
37
+ }));
38
+ });
39
+ };
40
+
19
41
  function dontWaitFor(promise) {
20
42
  void promise.then(()=>{});
21
43
  }
22
44
 
23
- export { canConstructReadableStream, dontWaitFor };
45
+ export { canConstructReadableStream, cleanupOutdatedCaches, dontWaitFor, logger, cacheNames as privateCacheNames };