@serwist/sw 9.0.0-preview.17 → 9.0.0-preview.18

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 (251) hide show
  1. package/dist/{Serwist.d.ts → abstractions/Serwist.d.ts} +6 -15
  2. package/dist/abstractions/Serwist.d.ts.map +1 -0
  3. package/dist/abstractions/disableDevLogs.d.ts.map +1 -0
  4. package/dist/{fallbacks.d.ts → abstractions/fallbacks.d.ts} +2 -2
  5. package/dist/abstractions/fallbacks.d.ts.map +1 -0
  6. package/dist/{handlePrecaching.d.ts → abstractions/handlePrecaching.d.ts} +1 -1
  7. package/dist/abstractions/handlePrecaching.d.ts.map +1 -0
  8. package/dist/abstractions/installSerwist.d.ts.map +1 -0
  9. package/dist/abstractions/registerRuntimeCaching.d.ts.map +1 -0
  10. package/dist/{types.d.ts → abstractions/types.d.ts} +1 -1
  11. package/dist/abstractions/types.d.ts.map +1 -0
  12. package/dist/chunks/NavigationRoute.js +54 -0
  13. package/dist/chunks/NetworkOnly.js +193 -0
  14. package/dist/chunks/PrecacheFallbackPlugin.js +573 -0
  15. package/dist/chunks/Strategy.js +410 -0
  16. package/dist/chunks/getOrCreatePrecacheController.js +429 -0
  17. package/dist/chunks/precacheAndRoute.js +112 -0
  18. package/dist/chunks/registerRoute.js +408 -0
  19. package/dist/index.d.ts +8 -8
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +11 -9
  22. package/dist/index.plugins.d.ts +40 -11
  23. package/dist/index.plugins.d.ts.map +1 -1
  24. package/dist/index.plugins.js +671 -5
  25. package/dist/index.precaching.d.ts +24 -0
  26. package/dist/index.precaching.d.ts.map +1 -0
  27. package/dist/index.precaching.js +24 -0
  28. package/dist/index.routing.d.ts +13 -0
  29. package/dist/index.routing.d.ts.map +1 -0
  30. package/dist/index.routing.js +21 -0
  31. package/dist/index.strategies.d.ts +19 -2
  32. package/dist/index.strategies.d.ts.map +1 -1
  33. package/dist/index.strategies.js +146 -1
  34. package/dist/plugins/backgroundSync/BackgroundSyncPlugin.d.ts +23 -0
  35. package/dist/plugins/backgroundSync/BackgroundSyncPlugin.d.ts.map +1 -0
  36. package/dist/plugins/backgroundSync/Queue.d.ts +166 -0
  37. package/dist/plugins/backgroundSync/Queue.d.ts.map +1 -0
  38. package/dist/plugins/backgroundSync/QueueDb.d.ts +90 -0
  39. package/dist/plugins/backgroundSync/QueueDb.d.ts.map +1 -0
  40. package/dist/plugins/backgroundSync/QueueStore.d.ts +75 -0
  41. package/dist/plugins/backgroundSync/QueueStore.d.ts.map +1 -0
  42. package/dist/plugins/backgroundSync/StorableRequest.d.ts +51 -0
  43. package/dist/plugins/backgroundSync/StorableRequest.d.ts.map +1 -0
  44. package/dist/plugins/broadcastUpdate/BroadcastCacheUpdate.d.ts +45 -0
  45. package/dist/plugins/broadcastUpdate/BroadcastCacheUpdate.d.ts.map +1 -0
  46. package/dist/plugins/broadcastUpdate/BroadcastUpdatePlugin.d.ts +27 -0
  47. package/dist/plugins/broadcastUpdate/BroadcastUpdatePlugin.d.ts.map +1 -0
  48. package/dist/plugins/broadcastUpdate/constants.d.ts +5 -0
  49. package/dist/plugins/broadcastUpdate/constants.d.ts.map +1 -0
  50. package/dist/plugins/broadcastUpdate/responsesAreSame.d.ts +11 -0
  51. package/dist/plugins/broadcastUpdate/responsesAreSame.d.ts.map +1 -0
  52. package/dist/plugins/broadcastUpdate/types.d.ts +34 -0
  53. package/dist/plugins/broadcastUpdate/types.d.ts.map +1 -0
  54. package/dist/plugins/cacheableResponse/CacheableResponse.d.ts +40 -0
  55. package/dist/plugins/cacheableResponse/CacheableResponse.d.ts.map +1 -0
  56. package/dist/plugins/cacheableResponse/CacheableResponsePlugin.d.ts +27 -0
  57. package/dist/plugins/cacheableResponse/CacheableResponsePlugin.d.ts.map +1 -0
  58. package/dist/plugins/expiration/CacheExpiration.d.ts +66 -0
  59. package/dist/plugins/expiration/CacheExpiration.d.ts.map +1 -0
  60. package/dist/plugins/expiration/ExpirationPlugin.d.ts +116 -0
  61. package/dist/plugins/expiration/ExpirationPlugin.d.ts.map +1 -0
  62. package/dist/plugins/expiration/models/CacheTimestampsModel.d.ts +73 -0
  63. package/dist/plugins/expiration/models/CacheTimestampsModel.d.ts.map +1 -0
  64. package/dist/plugins/googleAnalytics/constants.d.ts +10 -0
  65. package/dist/plugins/googleAnalytics/constants.d.ts.map +1 -0
  66. package/dist/plugins/googleAnalytics/initialize.d.ts +26 -0
  67. package/dist/plugins/googleAnalytics/initialize.d.ts.map +1 -0
  68. package/dist/plugins/precaching/PrecacheFallbackPlugin.d.ts +54 -0
  69. package/dist/plugins/precaching/PrecacheFallbackPlugin.d.ts.map +1 -0
  70. package/dist/plugins/rangeRequests/RangeRequestsPlugin.d.ts +19 -0
  71. package/dist/plugins/rangeRequests/RangeRequestsPlugin.d.ts.map +1 -0
  72. package/dist/plugins/rangeRequests/createPartialResponse.d.ts +18 -0
  73. package/dist/plugins/rangeRequests/createPartialResponse.d.ts.map +1 -0
  74. package/dist/plugins/rangeRequests/utils/calculateEffectiveBoundaries.d.ts +14 -0
  75. package/dist/plugins/rangeRequests/utils/calculateEffectiveBoundaries.d.ts.map +1 -0
  76. package/dist/plugins/rangeRequests/utils/parseRangeHeader.d.ts +12 -0
  77. package/dist/plugins/rangeRequests/utils/parseRangeHeader.d.ts.map +1 -0
  78. package/dist/precaching/PrecacheController.d.ts +145 -0
  79. package/dist/precaching/PrecacheController.d.ts.map +1 -0
  80. package/dist/precaching/PrecacheRoute.d.ts +20 -0
  81. package/dist/precaching/PrecacheRoute.d.ts.map +1 -0
  82. package/dist/precaching/PrecacheStrategy.d.ts +68 -0
  83. package/dist/precaching/PrecacheStrategy.d.ts.map +1 -0
  84. package/dist/precaching/addPlugins.d.ts +8 -0
  85. package/dist/precaching/addPlugins.d.ts.map +1 -0
  86. package/dist/precaching/addRoute.d.ts +15 -0
  87. package/dist/precaching/addRoute.d.ts.map +1 -0
  88. package/dist/precaching/cleanupOutdatedCaches.d.ts +6 -0
  89. package/dist/precaching/cleanupOutdatedCaches.d.ts.map +1 -0
  90. package/dist/precaching/createHandlerBoundToURL.d.ts +17 -0
  91. package/dist/precaching/createHandlerBoundToURL.d.ts.map +1 -0
  92. package/dist/precaching/getCacheKeyForURL.d.ts +20 -0
  93. package/dist/precaching/getCacheKeyForURL.d.ts.map +1 -0
  94. package/dist/precaching/matchPrecache.d.ts +14 -0
  95. package/dist/precaching/matchPrecache.d.ts.map +1 -0
  96. package/dist/precaching/precache.d.ts +19 -0
  97. package/dist/precaching/precache.d.ts.map +1 -0
  98. package/dist/precaching/precacheAndRoute.d.ts +14 -0
  99. package/dist/precaching/precacheAndRoute.d.ts.map +1 -0
  100. package/dist/precaching/types.d.ts +37 -0
  101. package/dist/precaching/types.d.ts.map +1 -0
  102. package/dist/precaching/utils/PrecacheCacheKeyPlugin.d.ts +17 -0
  103. package/dist/precaching/utils/PrecacheCacheKeyPlugin.d.ts.map +1 -0
  104. package/dist/precaching/utils/PrecacheInstallReportPlugin.d.ts +15 -0
  105. package/dist/precaching/utils/PrecacheInstallReportPlugin.d.ts.map +1 -0
  106. package/dist/precaching/utils/createCacheKey.d.ts +16 -0
  107. package/dist/precaching/utils/createCacheKey.d.ts.map +1 -0
  108. package/dist/precaching/utils/deleteOutdatedCaches.d.ts +18 -0
  109. package/dist/precaching/utils/deleteOutdatedCaches.d.ts.map +1 -0
  110. package/dist/precaching/utils/generateURLVariations.d.ts +12 -0
  111. package/dist/precaching/utils/generateURLVariations.d.ts.map +1 -0
  112. package/dist/precaching/utils/getCacheKeyForURL.d.ts +14 -0
  113. package/dist/precaching/utils/getCacheKeyForURL.d.ts.map +1 -0
  114. package/dist/precaching/utils/getOrCreatePrecacheController.d.ts +7 -0
  115. package/dist/precaching/utils/getOrCreatePrecacheController.d.ts.map +1 -0
  116. package/dist/precaching/utils/printCleanupDetails.d.ts +6 -0
  117. package/dist/precaching/utils/printCleanupDetails.d.ts.map +1 -0
  118. package/dist/precaching/utils/printInstallDetails.d.ts +7 -0
  119. package/dist/precaching/utils/printInstallDetails.d.ts.map +1 -0
  120. package/dist/precaching/utils/removeIgnoredSearchParams.d.ts +12 -0
  121. package/dist/precaching/utils/removeIgnoredSearchParams.d.ts.map +1 -0
  122. package/dist/routing/NavigationRoute.d.ts +57 -0
  123. package/dist/routing/NavigationRoute.d.ts.map +1 -0
  124. package/dist/routing/RegExpRoute.d.ts +24 -0
  125. package/dist/routing/RegExpRoute.d.ts.map +1 -0
  126. package/dist/routing/Route.d.ts +33 -0
  127. package/dist/routing/Route.d.ts.map +1 -0
  128. package/dist/routing/Router.d.ts +124 -0
  129. package/dist/routing/Router.d.ts.map +1 -0
  130. package/dist/routing/registerRoute.d.ts +15 -0
  131. package/dist/routing/registerRoute.d.ts.map +1 -0
  132. package/dist/routing/setCatchHandler.d.ts +9 -0
  133. package/dist/routing/setCatchHandler.d.ts.map +1 -0
  134. package/dist/routing/setDefaultHandler.d.ts +12 -0
  135. package/dist/routing/setDefaultHandler.d.ts.map +1 -0
  136. package/dist/routing/unregisterRoute.d.ts +8 -0
  137. package/dist/routing/unregisterRoute.d.ts.map +1 -0
  138. package/dist/routing/utils/constants.d.ts +15 -0
  139. package/dist/routing/utils/constants.d.ts.map +1 -0
  140. package/dist/routing/utils/getOrCreateDefaultRouter.d.ts +10 -0
  141. package/dist/routing/utils/getOrCreateDefaultRouter.d.ts.map +1 -0
  142. package/dist/routing/utils/normalizeHandler.d.ts +10 -0
  143. package/dist/routing/utils/normalizeHandler.d.ts.map +1 -0
  144. package/dist/routing/utils/parseRoute.d.ts +5 -0
  145. package/dist/routing/utils/parseRoute.d.ts.map +1 -0
  146. package/dist/strategies/CacheFirst.d.ts +23 -0
  147. package/dist/strategies/CacheFirst.d.ts.map +1 -0
  148. package/dist/strategies/CacheOnly.d.ts +20 -0
  149. package/dist/strategies/CacheOnly.d.ts.map +1 -0
  150. package/dist/strategies/NetworkFirst.d.ts +61 -0
  151. package/dist/strategies/NetworkFirst.d.ts.map +1 -0
  152. package/dist/strategies/NetworkOnly.d.ts +32 -0
  153. package/dist/strategies/NetworkOnly.d.ts.map +1 -0
  154. package/dist/strategies/StaleWhileRevalidate.d.ts +35 -0
  155. package/dist/strategies/StaleWhileRevalidate.d.ts.map +1 -0
  156. package/dist/strategies/Strategy.d.ts +83 -0
  157. package/dist/strategies/Strategy.d.ts.map +1 -0
  158. package/dist/strategies/StrategyHandler.d.ts +189 -0
  159. package/dist/strategies/StrategyHandler.d.ts.map +1 -0
  160. package/dist/strategies/plugins/cacheOkAndOpaquePlugin.d.ts +3 -0
  161. package/dist/strategies/plugins/cacheOkAndOpaquePlugin.d.ts.map +1 -0
  162. package/dist/strategies/utils/messages.d.ts +5 -0
  163. package/dist/strategies/utils/messages.d.ts.map +1 -0
  164. package/package.json +20 -14
  165. package/src/{Serwist.ts → abstractions/Serwist.ts} +16 -19
  166. package/src/{fallbacks.ts → abstractions/fallbacks.ts} +5 -5
  167. package/src/{handlePrecaching.ts → abstractions/handlePrecaching.ts} +6 -3
  168. package/src/{installSerwist.ts → abstractions/installSerwist.ts} +2 -2
  169. package/src/{registerRuntimeCaching.ts → abstractions/registerRuntimeCaching.ts} +1 -1
  170. package/src/{types.ts → abstractions/types.ts} +1 -1
  171. package/src/index.plugins.ts +65 -16
  172. package/src/index.precaching.ts +38 -0
  173. package/src/index.routing.ts +14 -0
  174. package/src/index.strategies.ts +22 -2
  175. package/src/index.ts +8 -8
  176. package/src/plugins/backgroundSync/BackgroundSyncPlugin.ts +39 -0
  177. package/src/plugins/backgroundSync/Queue.ts +438 -0
  178. package/src/plugins/backgroundSync/QueueDb.ts +176 -0
  179. package/src/plugins/backgroundSync/QueueStore.ts +161 -0
  180. package/src/plugins/backgroundSync/StorableRequest.ts +142 -0
  181. package/src/plugins/broadcastUpdate/BroadcastCacheUpdate.ts +159 -0
  182. package/src/plugins/broadcastUpdate/BroadcastUpdatePlugin.ts +43 -0
  183. package/src/plugins/broadcastUpdate/constants.ts +12 -0
  184. package/src/plugins/broadcastUpdate/responsesAreSame.ts +48 -0
  185. package/src/plugins/broadcastUpdate/types.ts +37 -0
  186. package/src/plugins/cacheableResponse/CacheableResponse.ts +141 -0
  187. package/src/plugins/cacheableResponse/CacheableResponsePlugin.ts +46 -0
  188. package/src/plugins/expiration/CacheExpiration.ts +192 -0
  189. package/src/plugins/expiration/ExpirationPlugin.ts +297 -0
  190. package/src/plugins/expiration/models/CacheTimestampsModel.ts +184 -0
  191. package/src/plugins/googleAnalytics/constants.ts +22 -0
  192. package/src/plugins/googleAnalytics/initialize.ts +200 -0
  193. package/src/plugins/precaching/PrecacheFallbackPlugin.ts +86 -0
  194. package/src/plugins/rangeRequests/RangeRequestsPlugin.ts +39 -0
  195. package/src/plugins/rangeRequests/createPartialResponse.ts +92 -0
  196. package/src/plugins/rangeRequests/utils/calculateEffectiveBoundaries.ts +58 -0
  197. package/src/plugins/rangeRequests/utils/parseRangeHeader.ts +54 -0
  198. package/src/precaching/PrecacheController.ts +332 -0
  199. package/src/precaching/PrecacheRoute.ts +50 -0
  200. package/src/precaching/PrecacheStrategy.ts +238 -0
  201. package/src/precaching/addPlugins.ts +21 -0
  202. package/src/precaching/addRoute.ts +30 -0
  203. package/src/precaching/cleanupOutdatedCaches.ts +33 -0
  204. package/src/precaching/createHandlerBoundToURL.ts +30 -0
  205. package/src/precaching/getCacheKeyForURL.ts +33 -0
  206. package/src/precaching/matchPrecache.ts +26 -0
  207. package/src/precaching/precache.ts +31 -0
  208. package/src/precaching/precacheAndRoute.ts +27 -0
  209. package/src/precaching/types.ts +46 -0
  210. package/src/precaching/utils/PrecacheCacheKeyPlugin.ts +36 -0
  211. package/src/precaching/utils/PrecacheInstallReportPlugin.ts +49 -0
  212. package/src/precaching/utils/createCacheKey.ts +68 -0
  213. package/src/precaching/utils/deleteOutdatedCaches.ts +40 -0
  214. package/src/precaching/utils/generateURLVariations.ts +55 -0
  215. package/src/precaching/utils/getCacheKeyForURL.ts +36 -0
  216. package/src/precaching/utils/getOrCreatePrecacheController.ts +22 -0
  217. package/src/precaching/utils/printCleanupDetails.ts +38 -0
  218. package/src/precaching/utils/printInstallDetails.ts +53 -0
  219. package/src/precaching/utils/removeIgnoredSearchParams.ts +29 -0
  220. package/src/routing/NavigationRoute.ts +119 -0
  221. package/src/routing/RegExpRoute.ts +74 -0
  222. package/src/routing/Route.ts +68 -0
  223. package/src/routing/Router.ts +432 -0
  224. package/src/routing/registerRoute.ts +33 -0
  225. package/src/routing/setCatchHandler.ts +22 -0
  226. package/src/routing/setDefaultHandler.ts +25 -0
  227. package/src/routing/unregisterRoute.ts +12 -0
  228. package/src/routing/utils/constants.ts +24 -0
  229. package/src/routing/utils/getOrCreateDefaultRouter.ts +29 -0
  230. package/src/routing/utils/normalizeHandler.ts +40 -0
  231. package/src/routing/utils/parseRoute.ts +67 -0
  232. package/src/strategies/CacheFirst.ts +87 -0
  233. package/src/strategies/CacheOnly.ts +58 -0
  234. package/src/strategies/NetworkFirst.ts +228 -0
  235. package/src/strategies/NetworkOnly.ts +96 -0
  236. package/src/strategies/StaleWhileRevalidate.ts +109 -0
  237. package/src/strategies/Strategy.ts +202 -0
  238. package/src/strategies/StrategyHandler.ts +557 -0
  239. package/src/strategies/plugins/cacheOkAndOpaquePlugin.ts +26 -0
  240. package/src/strategies/utils/messages.ts +20 -0
  241. package/dist/Serwist.d.ts.map +0 -1
  242. package/dist/disableDevLogs.d.ts.map +0 -1
  243. package/dist/fallbacks.d.ts.map +0 -1
  244. package/dist/handlePrecaching.d.ts.map +0 -1
  245. package/dist/installSerwist.d.ts.map +0 -1
  246. package/dist/registerRuntimeCaching.d.ts.map +0 -1
  247. package/dist/types.d.ts.map +0 -1
  248. /package/dist/{disableDevLogs.d.ts → abstractions/disableDevLogs.d.ts} +0 -0
  249. /package/dist/{installSerwist.d.ts → abstractions/installSerwist.d.ts} +0 -0
  250. /package/dist/{registerRuntimeCaching.d.ts → abstractions/registerRuntimeCaching.d.ts} +0 -0
  251. /package/src/{disableDevLogs.ts → abstractions/disableDevLogs.ts} +0 -0
@@ -0,0 +1,408 @@
1
+ import { assert, logger, getFriendlyURL, SerwistError } from '@serwist/core/internal';
2
+
3
+ const defaultMethod = "GET";
4
+ const validMethods = [
5
+ "DELETE",
6
+ "GET",
7
+ "HEAD",
8
+ "PATCH",
9
+ "POST",
10
+ "PUT"
11
+ ];
12
+
13
+ const normalizeHandler = (handler)=>{
14
+ if (handler && typeof handler === "object") {
15
+ if (process.env.NODE_ENV !== "production") {
16
+ assert.hasMethod(handler, "handle", {
17
+ moduleName: "@serwist/routing",
18
+ className: "Route",
19
+ funcName: "constructor",
20
+ paramName: "handler"
21
+ });
22
+ }
23
+ return handler;
24
+ }
25
+ if (process.env.NODE_ENV !== "production") {
26
+ assert.isType(handler, "function", {
27
+ moduleName: "@serwist/routing",
28
+ className: "Route",
29
+ funcName: "constructor",
30
+ paramName: "handler"
31
+ });
32
+ }
33
+ return {
34
+ handle: handler
35
+ };
36
+ };
37
+
38
+ class Route {
39
+ handler;
40
+ match;
41
+ method;
42
+ catchHandler;
43
+ constructor(match, handler, method = defaultMethod){
44
+ if (process.env.NODE_ENV !== "production") {
45
+ assert.isType(match, "function", {
46
+ moduleName: "@serwist/routing",
47
+ className: "Route",
48
+ funcName: "constructor",
49
+ paramName: "match"
50
+ });
51
+ if (method) {
52
+ assert.isOneOf(method, validMethods, {
53
+ paramName: "method"
54
+ });
55
+ }
56
+ }
57
+ this.handler = normalizeHandler(handler);
58
+ this.match = match;
59
+ this.method = method;
60
+ }
61
+ setCatchHandler(handler) {
62
+ this.catchHandler = normalizeHandler(handler);
63
+ }
64
+ }
65
+
66
+ class Router {
67
+ _routes;
68
+ _defaultHandlerMap;
69
+ _catchHandler;
70
+ constructor(){
71
+ this._routes = new Map();
72
+ this._defaultHandlerMap = new Map();
73
+ }
74
+ get routes() {
75
+ return this._routes;
76
+ }
77
+ addFetchListener() {
78
+ self.addEventListener("fetch", (event)=>{
79
+ const { request } = event;
80
+ const responsePromise = this.handleRequest({
81
+ request,
82
+ event
83
+ });
84
+ if (responsePromise) {
85
+ event.respondWith(responsePromise);
86
+ }
87
+ });
88
+ }
89
+ addCacheListener() {
90
+ self.addEventListener("message", (event)=>{
91
+ if (event.data && event.data.type === "CACHE_URLS") {
92
+ const { payload } = event.data;
93
+ if (process.env.NODE_ENV !== "production") {
94
+ logger.debug("Caching URLs from the window", payload.urlsToCache);
95
+ }
96
+ const requestPromises = Promise.all(payload.urlsToCache.map((entry)=>{
97
+ if (typeof entry === "string") {
98
+ entry = [
99
+ entry
100
+ ];
101
+ }
102
+ const request = new Request(...entry);
103
+ return this.handleRequest({
104
+ request,
105
+ event
106
+ });
107
+ }));
108
+ event.waitUntil(requestPromises);
109
+ if (event.ports?.[0]) {
110
+ void requestPromises.then(()=>event.ports[0].postMessage(true));
111
+ }
112
+ }
113
+ });
114
+ }
115
+ handleRequest({ request, event }) {
116
+ if (process.env.NODE_ENV !== "production") {
117
+ assert.isInstance(request, Request, {
118
+ moduleName: "@serwist/routing",
119
+ className: "Router",
120
+ funcName: "handleRequest",
121
+ paramName: "options.request"
122
+ });
123
+ }
124
+ const url = new URL(request.url, location.href);
125
+ if (!url.protocol.startsWith("http")) {
126
+ if (process.env.NODE_ENV !== "production") {
127
+ logger.debug("The Serwist router only supports URLs that start with 'http'.");
128
+ }
129
+ return;
130
+ }
131
+ const sameOrigin = url.origin === location.origin;
132
+ const { params, route } = this.findMatchingRoute({
133
+ event,
134
+ request,
135
+ sameOrigin,
136
+ url
137
+ });
138
+ let handler = route?.handler;
139
+ const debugMessages = [];
140
+ if (process.env.NODE_ENV !== "production") {
141
+ if (handler) {
142
+ debugMessages.push([
143
+ "Found a route to handle this request:",
144
+ route
145
+ ]);
146
+ if (params) {
147
+ debugMessages.push([
148
+ `Passing the following params to the route's handler:`,
149
+ params
150
+ ]);
151
+ }
152
+ }
153
+ }
154
+ const method = request.method;
155
+ if (!handler && this._defaultHandlerMap.has(method)) {
156
+ if (process.env.NODE_ENV !== "production") {
157
+ debugMessages.push(`Failed to find a matching route. Falling back to the default handler for ${method}.`);
158
+ }
159
+ handler = this._defaultHandlerMap.get(method);
160
+ }
161
+ if (!handler) {
162
+ if (process.env.NODE_ENV !== "production") {
163
+ logger.debug(`No route found for: ${getFriendlyURL(url)}`);
164
+ }
165
+ return;
166
+ }
167
+ if (process.env.NODE_ENV !== "production") {
168
+ logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);
169
+ for (const msg of debugMessages){
170
+ if (Array.isArray(msg)) {
171
+ logger.log(...msg);
172
+ } else {
173
+ logger.log(msg);
174
+ }
175
+ }
176
+ logger.groupEnd();
177
+ }
178
+ let responsePromise;
179
+ try {
180
+ responsePromise = handler.handle({
181
+ url,
182
+ request,
183
+ event,
184
+ params
185
+ });
186
+ } catch (err) {
187
+ responsePromise = Promise.reject(err);
188
+ }
189
+ const catchHandler = route?.catchHandler;
190
+ if (responsePromise instanceof Promise && (this._catchHandler || catchHandler)) {
191
+ responsePromise = responsePromise.catch(async (err)=>{
192
+ if (catchHandler) {
193
+ if (process.env.NODE_ENV !== "production") {
194
+ logger.groupCollapsed(`Error thrown when responding to: ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`);
195
+ logger.error("Error thrown by:", route);
196
+ logger.error(err);
197
+ logger.groupEnd();
198
+ }
199
+ try {
200
+ return await catchHandler.handle({
201
+ url,
202
+ request,
203
+ event,
204
+ params
205
+ });
206
+ } catch (catchErr) {
207
+ if (catchErr instanceof Error) {
208
+ err = catchErr;
209
+ }
210
+ }
211
+ }
212
+ if (this._catchHandler) {
213
+ if (process.env.NODE_ENV !== "production") {
214
+ logger.groupCollapsed(`Error thrown when responding to: ${getFriendlyURL(url)}. Falling back to global Catch Handler.`);
215
+ logger.error("Error thrown by:", route);
216
+ logger.error(err);
217
+ logger.groupEnd();
218
+ }
219
+ return this._catchHandler.handle({
220
+ url,
221
+ request,
222
+ event
223
+ });
224
+ }
225
+ throw err;
226
+ });
227
+ }
228
+ return responsePromise;
229
+ }
230
+ findMatchingRoute({ url, sameOrigin, request, event }) {
231
+ const routes = this._routes.get(request.method) || [];
232
+ for (const route of routes){
233
+ let params;
234
+ const matchResult = route.match({
235
+ url,
236
+ sameOrigin,
237
+ request,
238
+ event
239
+ });
240
+ if (matchResult) {
241
+ if (process.env.NODE_ENV !== "production") {
242
+ if (matchResult instanceof Promise) {
243
+ logger.warn(`While routing ${getFriendlyURL(url)}, an async matchCallback function was used. Please convert the following route to use a synchronous matchCallback function:`, route);
244
+ }
245
+ }
246
+ params = matchResult;
247
+ if (Array.isArray(params) && params.length === 0) {
248
+ params = undefined;
249
+ } else if (matchResult.constructor === Object && Object.keys(matchResult).length === 0) {
250
+ params = undefined;
251
+ } else if (typeof matchResult === "boolean") {
252
+ params = undefined;
253
+ }
254
+ return {
255
+ route,
256
+ params
257
+ };
258
+ }
259
+ }
260
+ return {};
261
+ }
262
+ setDefaultHandler(handler, method = defaultMethod) {
263
+ this._defaultHandlerMap.set(method, normalizeHandler(handler));
264
+ }
265
+ setCatchHandler(handler) {
266
+ this._catchHandler = normalizeHandler(handler);
267
+ }
268
+ registerRoute(route) {
269
+ if (process.env.NODE_ENV !== "production") {
270
+ assert.isType(route, "object", {
271
+ moduleName: "@serwist/routing",
272
+ className: "Router",
273
+ funcName: "registerRoute",
274
+ paramName: "route"
275
+ });
276
+ assert.hasMethod(route, "match", {
277
+ moduleName: "@serwist/routing",
278
+ className: "Router",
279
+ funcName: "registerRoute",
280
+ paramName: "route"
281
+ });
282
+ assert.isType(route.handler, "object", {
283
+ moduleName: "@serwist/routing",
284
+ className: "Router",
285
+ funcName: "registerRoute",
286
+ paramName: "route"
287
+ });
288
+ assert.hasMethod(route.handler, "handle", {
289
+ moduleName: "@serwist/routing",
290
+ className: "Router",
291
+ funcName: "registerRoute",
292
+ paramName: "route.handler"
293
+ });
294
+ assert.isType(route.method, "string", {
295
+ moduleName: "@serwist/routing",
296
+ className: "Router",
297
+ funcName: "registerRoute",
298
+ paramName: "route.method"
299
+ });
300
+ }
301
+ if (!this._routes.has(route.method)) {
302
+ this._routes.set(route.method, []);
303
+ }
304
+ this._routes.get(route.method).push(route);
305
+ }
306
+ unregisterRoute(route) {
307
+ if (!this._routes.has(route.method)) {
308
+ throw new SerwistError("unregister-route-but-not-found-with-method", {
309
+ method: route.method
310
+ });
311
+ }
312
+ const routeIndex = this._routes.get(route.method).indexOf(route);
313
+ if (routeIndex > -1) {
314
+ this._routes.get(route.method).splice(routeIndex, 1);
315
+ } else {
316
+ throw new SerwistError("unregister-route-route-not-registered");
317
+ }
318
+ }
319
+ }
320
+
321
+ let defaultRouter;
322
+ const getOrCreateDefaultRouter = ()=>{
323
+ if (!defaultRouter) {
324
+ defaultRouter = new Router();
325
+ defaultRouter.addFetchListener();
326
+ defaultRouter.addCacheListener();
327
+ }
328
+ return defaultRouter;
329
+ };
330
+
331
+ class RegExpRoute extends Route {
332
+ constructor(regExp, handler, method){
333
+ if (process.env.NODE_ENV !== "production") {
334
+ assert.isInstance(regExp, RegExp, {
335
+ moduleName: "@serwist/routing",
336
+ className: "RegExpRoute",
337
+ funcName: "constructor",
338
+ paramName: "pattern"
339
+ });
340
+ }
341
+ const match = ({ url })=>{
342
+ const result = regExp.exec(url.href);
343
+ if (!result) {
344
+ return;
345
+ }
346
+ if (url.origin !== location.origin && result.index !== 0) {
347
+ if (process.env.NODE_ENV !== "production") {
348
+ logger.debug(`The regular expression '${regExp.toString()}' only partially matched against the cross-origin URL '${url.toString()}'. RegExpRoute's will only handle cross-origin requests if they match the entire URL.`);
349
+ }
350
+ return;
351
+ }
352
+ return result.slice(1);
353
+ };
354
+ super(match, handler, method);
355
+ }
356
+ }
357
+
358
+ const parseRoute = (capture, handler, method)=>{
359
+ let route;
360
+ if (typeof capture === "string") {
361
+ const captureUrl = new URL(capture, location.href);
362
+ if (process.env.NODE_ENV !== "production") {
363
+ if (!(capture.startsWith("/") || capture.startsWith("http"))) {
364
+ throw new SerwistError("invalid-string", {
365
+ moduleName: "@serwist/routing",
366
+ funcName: "registerRoute",
367
+ paramName: "capture"
368
+ });
369
+ }
370
+ const valueToCheck = capture.startsWith("http") ? captureUrl.pathname : capture;
371
+ const wildcards = "[*:?+]";
372
+ if (new RegExp(`${wildcards}`).exec(valueToCheck)) {
373
+ logger.debug(`The '$capture' parameter contains an Express-style wildcard character (${wildcards}). Strings are now always interpreted as exact matches; use a RegExp for partial or wildcard matches.`);
374
+ }
375
+ }
376
+ const matchCallback = ({ url })=>{
377
+ if (process.env.NODE_ENV !== "production") {
378
+ if (url.pathname === captureUrl.pathname && url.origin !== captureUrl.origin) {
379
+ logger.debug(`${capture} only partially matches the cross-origin URL ${url.toString()}. This route will only handle cross-origin requests if they match the entire URL.`);
380
+ }
381
+ }
382
+ return url.href === captureUrl.href;
383
+ };
384
+ route = new Route(matchCallback, handler, method);
385
+ } else if (capture instanceof RegExp) {
386
+ route = new RegExpRoute(capture, handler, method);
387
+ } else if (typeof capture === "function") {
388
+ route = new Route(capture, handler, method);
389
+ } else if (capture instanceof Route) {
390
+ route = capture;
391
+ } else {
392
+ throw new SerwistError("unsupported-route-type", {
393
+ moduleName: "@serwist/routing",
394
+ funcName: "registerRoute",
395
+ paramName: "capture"
396
+ });
397
+ }
398
+ return route;
399
+ };
400
+
401
+ const registerRoute = (capture, handler, method)=>{
402
+ const route = parseRoute(capture, handler, method);
403
+ const defaultRouter = getOrCreateDefaultRouter();
404
+ defaultRouter.registerRoute(route);
405
+ return route;
406
+ };
407
+
408
+ export { Route as R, RegExpRoute as a, Router as b, getOrCreateDefaultRouter as g, parseRoute as p, registerRoute as r };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { Serwist, type SerwistOptions, type SerwistInstallOptions } from "./Serwist.js";
2
- import { disableDevLogs } from "./disableDevLogs.js";
3
- import type { FallbackEntry, FallbackMatcher, FallbacksOptions } from "./fallbacks.js";
4
- import { fallbacks } from "./fallbacks.js";
5
- import { type HandlePrecachingOptions, handlePrecaching } from "./handlePrecaching.js";
6
- import { type InstallSerwistOptions, installSerwist } from "./installSerwist.js";
7
- import { registerRuntimeCaching } from "./registerRuntimeCaching.js";
8
- import type { RuntimeCaching } from "./types.js";
1
+ import { Serwist, type SerwistInstallOptions, type SerwistOptions } from "./abstractions/Serwist.js";
2
+ import { disableDevLogs } from "./abstractions/disableDevLogs.js";
3
+ import type { FallbackEntry, FallbackMatcher, FallbacksOptions } from "./abstractions/fallbacks.js";
4
+ import { fallbacks } from "./abstractions/fallbacks.js";
5
+ import { type HandlePrecachingOptions, handlePrecaching } from "./abstractions/handlePrecaching.js";
6
+ import { type InstallSerwistOptions, installSerwist } from "./abstractions/installSerwist.js";
7
+ import { registerRuntimeCaching } from "./abstractions/registerRuntimeCaching.js";
8
+ import type { RuntimeCaching } from "./abstractions/types.js";
9
9
  export { disableDevLogs, fallbacks, handlePrecaching, installSerwist, Serwist, registerRuntimeCaching };
10
10
  export type { FallbackEntry, FallbackMatcher, FallbacksOptions, HandlePrecachingOptions, InstallSerwistOptions, SerwistOptions, SerwistInstallOptions, RuntimeCaching, };
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AACxG,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AACxG,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,cAAc,GACf,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  import { setCacheNameDetails, clientsClaim } from '@serwist/core';
2
- import { initialize } from '@serwist/google-analytics/initialize';
3
2
  import { enable } from '@serwist/navigation-preload';
4
- import { precacheAndRoute, PrecacheFallbackPlugin, PrecacheController, PrecacheRoute, cleanupOutdatedCaches, createHandlerBoundToURL } from '@serwist/precaching';
5
- import { Router, NavigationRoute, registerRoute } from '@serwist/routing';
6
- import { parseRoute, getOrCreateDefaultRouter } from '@serwist/routing/internal';
7
- import { Strategy } from '@serwist/strategies';
3
+ import { P as PrecacheFallbackPlugin, i as initialize } from './chunks/PrecacheFallbackPlugin.js';
4
+ import { p as precacheAndRoute, P as PrecacheRoute, c as cleanupOutdatedCaches, a as createHandlerBoundToURL } from './chunks/precacheAndRoute.js';
5
+ import { g as getOrCreatePrecacheController } from './chunks/getOrCreatePrecacheController.js';
6
+ import { N as NavigationRoute } from './chunks/NavigationRoute.js';
7
+ import { g as getOrCreateDefaultRouter, p as parseRoute, r as registerRoute } from './chunks/registerRoute.js';
8
+ import { S as Strategy } from './chunks/Strategy.js';
8
9
  import { logger } from '@serwist/core/internal';
9
- import { getOrCreatePrecacheController } from '@serwist/precaching/internal';
10
+ import './chunks/NetworkOnly.js';
11
+ import 'idb';
10
12
 
11
13
  const disableDevLogs = ()=>{
12
14
  self.__WB_DISABLE_DEV_LOGS = true;
@@ -29,9 +31,9 @@ const fallbacks = ({ runtimeCaching, entries, precacheOptions })=>{
29
31
  class Serwist {
30
32
  _precacheController;
31
33
  _router;
32
- constructor({ precacheController = new PrecacheController(), router = new Router() } = {}){
33
- this._precacheController = precacheController;
34
- this._router = router;
34
+ constructor({ precacheController, router } = {}){
35
+ this._precacheController = precacheController || getOrCreatePrecacheController();
36
+ this._router = router || getOrCreateDefaultRouter();
35
37
  }
36
38
  install({ precacheEntries, precacheOptions, cleanupOutdatedCaches: cleanupOutdatedCaches$1, navigateFallback, navigateFallbackAllowlist, navigateFallbackDenylist, skipWaiting = false, importScripts, navigationPreload = false, cacheId, clientsClaim: clientsClaim$1 = false, runtimeCaching, offlineAnalyticsConfig, disableDevLogs: disableDevLogs$1 = false, fallbacks: fallbacks$1 }) {
37
39
  if (!!importScripts && importScripts.length > 0) self.importScripts(...importScripts);
@@ -1,12 +1,41 @@
1
- import type { QueueEntry, QueueOptions } from "@serwist/background-sync";
2
- import { BackgroundSyncPlugin, Queue, QueueStore, StorableRequest } from "@serwist/background-sync";
3
- import type { BroadcastCacheUpdateOptions, BroadcastMessage, BroadcastPayload, BroadcastPayloadGenerator } from "@serwist/broadcast-update";
4
- import { BroadcastCacheUpdate, BroadcastUpdatePlugin, CACHE_UPDATED_MESSAGE_META as BROADCAST_UPDATE_MESSAGE_META, CACHE_UPDATED_MESSAGE_TYPE as BROADCAST_UPDATE_MESSAGE_TYPE, defaultHeadersToCheck as BROADCAST_UPDATE_DEFAULT_HEADERS, responsesAreSame } from "@serwist/broadcast-update";
5
- import type { CacheableResponseOptions } from "@serwist/cacheable-response";
6
- import { CacheableResponse, CacheableResponsePlugin } from "@serwist/cacheable-response";
7
- import type { ExpirationPluginOptions } from "@serwist/expiration";
8
- import { CacheExpiration, ExpirationPlugin } from "@serwist/expiration";
9
- import { RangeRequestsPlugin, createPartialResponse } from "@serwist/range-requests";
10
- export { BackgroundSyncPlugin, Queue as BackgroundSyncQueue, QueueStore as BackgroundSyncQueueStore, StorableRequest, BroadcastCacheUpdate, BroadcastUpdatePlugin, responsesAreSame, BROADCAST_UPDATE_MESSAGE_META, BROADCAST_UPDATE_MESSAGE_TYPE, BROADCAST_UPDATE_DEFAULT_HEADERS, CacheableResponse, CacheableResponsePlugin, CacheExpiration, ExpirationPlugin, createPartialResponse, RangeRequestsPlugin, };
11
- export type { QueueOptions as BackgroundSyncQueueOptions, QueueEntry as BackgroundSyncQueueEntry, BroadcastCacheUpdateOptions, BroadcastPayload, BroadcastPayloadGenerator, BroadcastMessage, CacheableResponseOptions, ExpirationPluginOptions, };
1
+ import { BackgroundSyncPlugin } from "./plugins/backgroundSync/BackgroundSyncPlugin.js";
2
+ import type { QueueEntry as BackgroundSyncQueueEntry, QueueOptions as BackgroundSyncQueueOptions } from "./plugins/backgroundSync/Queue.js";
3
+ import { Queue as BackgroundSyncQueue } from "./plugins/backgroundSync/Queue.js";
4
+ import { QueueStore as BackgroundSyncQueueStore } from "./plugins/backgroundSync/QueueStore.js";
5
+ import { StorableRequest } from "./plugins/backgroundSync/StorableRequest.js";
6
+ import { BroadcastCacheUpdate } from "./plugins/broadcastUpdate/BroadcastCacheUpdate.js";
7
+ import { BroadcastUpdatePlugin } from "./plugins/broadcastUpdate/BroadcastUpdatePlugin.js";
8
+ import { CACHE_UPDATED_MESSAGE_META as BROADCAST_UPDATE_MESSAGE_META, CACHE_UPDATED_MESSAGE_TYPE as BROADCAST_UPDATE_MESSAGE_TYPE, defaultHeadersToCheck as BROADCAST_UPDATE_DEFAULT_HEADERS } from "./plugins/broadcastUpdate/constants.js";
9
+ import { responsesAreSame } from "./plugins/broadcastUpdate/responsesAreSame.js";
10
+ import type { BroadcastCacheUpdateOptions, BroadcastMessage, BroadcastPayload, BroadcastPayloadGenerator } from "./plugins/broadcastUpdate/types.js";
11
+ import type { CacheableResponseOptions } from "./plugins/cacheableResponse/CacheableResponse.js";
12
+ import { CacheableResponse } from "./plugins/cacheableResponse/CacheableResponse.js";
13
+ import { CacheableResponsePlugin } from "./plugins/cacheableResponse/CacheableResponsePlugin.js";
14
+ import { CacheExpiration } from "./plugins/expiration/CacheExpiration.js";
15
+ import type { ExpirationPluginOptions } from "./plugins/expiration/ExpirationPlugin.js";
16
+ import { ExpirationPlugin } from "./plugins/expiration/ExpirationPlugin.js";
17
+ import type { GoogleAnalyticsInitializeOptions } from "./plugins/googleAnalytics/initialize.js";
18
+ import { initialize as initializeGoogleAnalytics } from "./plugins/googleAnalytics/initialize.js";
19
+ import type { PrecacheFallbackEntry, PrecacheFallbackPluginOptions } from "./plugins/precaching/PrecacheFallbackPlugin.js";
20
+ import { PrecacheFallbackPlugin } from "./plugins/precaching/PrecacheFallbackPlugin.js";
21
+ import { RangeRequestsPlugin } from "./plugins/rangeRequests/RangeRequestsPlugin.js";
22
+ import { createPartialResponse } from "./plugins/rangeRequests/createPartialResponse.js";
23
+ interface SyncManager {
24
+ getTags(): Promise<string[]>;
25
+ register(tag: string): Promise<void>;
26
+ }
27
+ declare global {
28
+ interface ServiceWorkerRegistration {
29
+ readonly sync: SyncManager;
30
+ }
31
+ interface SyncEvent extends ExtendableEvent {
32
+ readonly lastChance: boolean;
33
+ readonly tag: string;
34
+ }
35
+ interface ServiceWorkerGlobalScopeEventMap {
36
+ sync: SyncEvent;
37
+ }
38
+ }
39
+ export { BackgroundSyncPlugin, BackgroundSyncQueue, BackgroundSyncQueueStore, StorableRequest, BroadcastCacheUpdate, BroadcastUpdatePlugin, responsesAreSame, BROADCAST_UPDATE_MESSAGE_META, BROADCAST_UPDATE_MESSAGE_TYPE, BROADCAST_UPDATE_DEFAULT_HEADERS, CacheableResponse, CacheableResponsePlugin, CacheExpiration, ExpirationPlugin, PrecacheFallbackPlugin, createPartialResponse, RangeRequestsPlugin, initializeGoogleAnalytics, };
40
+ export type { BackgroundSyncQueueOptions, BackgroundSyncQueueEntry, BroadcastCacheUpdateOptions, BroadcastPayload, BroadcastPayloadGenerator, BroadcastMessage, CacheableResponseOptions, ExpirationPluginOptions, PrecacheFallbackEntry, PrecacheFallbackPluginOptions, GoogleAnalyticsInitializeOptions, };
12
41
  //# sourceMappingURL=index.plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.plugins.d.ts","sourceRoot":"","sources":["../src/index.plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC5I,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,IAAI,6BAA6B,EAC3D,0BAA0B,IAAI,6BAA6B,EAC3D,qBAAqB,IAAI,gCAAgC,EACzD,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EACL,oBAAoB,EACpB,KAAK,IAAI,mBAAmB,EAC5B,UAAU,IAAI,wBAAwB,EACtC,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,CAAC;AAEF,YAAY,EACV,YAAY,IAAI,0BAA0B,EAC1C,UAAU,IAAI,wBAAwB,EACtC,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,CAAC"}
1
+ {"version":3,"file":"index.plugins.d.ts","sourceRoot":"","sources":["../src/index.plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,IAAI,wBAAwB,EAAE,YAAY,IAAI,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC5I,OAAO,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,UAAU,IAAI,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EACL,0BAA0B,IAAI,6BAA6B,EAC3D,0BAA0B,IAAI,6BAA6B,EAC3D,qBAAqB,IAAI,gCAAgC,EAC1D,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACrJ,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,UAAU,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,KAAK,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC3H,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAGzF,UAAU,WAAW;IACnB,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,yBAAyB;QACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;KAC5B;IAED,UAAU,SAAU,SAAQ,eAAe;QACzC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB;IAED,UAAU,gCAAgC;QACxC,IAAI,EAAE,SAAS,CAAC;KACjB;CACF;AAED,OAAO,EAEL,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EAEf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAEhC,iBAAiB,EACjB,uBAAuB,EAEvB,eAAe,EACf,gBAAgB,EAEhB,sBAAsB,EAEtB,qBAAqB,EACrB,mBAAmB,EAEnB,yBAAyB,GAC1B,CAAC;AAEF,YAAY,EAEV,0BAA0B,EAC1B,wBAAwB,EAExB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAEhB,wBAAwB,EAExB,uBAAuB,EAEvB,qBAAqB,EACrB,6BAA6B,EAE7B,gCAAgC,GACjC,CAAC"}