create-qwik 0.0.108-dev20220914022956 → 0.0.109-0

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.
@@ -0,0 +1,167 @@
1
+ /* Qwik Service Worker */
2
+ const appBundles=[["@qwik-city-entries.js",[40]],["@qwik-city-plan.js",[40]],["entry_____slug_.js",[40],["ka0hlr6QzZc"]],["entry__id_.js",[40],["lz5fUgqIg0k","Su1JqxAuf5Q"]],["entry_about_us.js",[40],["Hm2iCxmEwPU"]],["entry_Breadcrumbs.js",[13,19,40],["4iUgD00bac8","7RRY6XBONP8"]],["entry_dashboard.js",[40],["qNEEbvpCkDo"]],["entry_docs.js",[40],["HPWwM5ITvKw"]],["entry_footer.js",[40],["cj9ZVB0Fla8","fLHnZgqH9Ss"]],["entry_Head.js",[40],["62TTxKadIG8"]],["entry_header.js",[40],["EqiDdxC5oCg","q2ZiFPIhnRY"]],["entry_index_api.js",[40],["r1zOEK3uvrE","5wjtnwJM61o"]],["entry_layout.js",[19,40],["cP1MN6aKI1E","Z38JINctLvc"]],["entry_layout_.js",[19,40],["3vmOtZFNja8","IpEw2cQaLBs","0vFw6sjzoiI","sBSnbJkWlgw"]],["entry_layout_api.js",[40],["LchrSne39gg","NEVycXm2DbI"]],["entry_Menu.js",[40],["K1eRBSD0Gpc","6tTHmIfcOQ8"]],["entry_profile.js",[40],["xCyaa0wPF6s"]],["entry_routes.js",[40],["LqnNyU1Iy8c"]],["entry_settings.js",[40],["soEjIdhmYDQ"]],["header.js",[40]],["index.js",[40]],["index10.js",[40]],["index11.js",[40]],["index12.js",[40]],["index2.js",[40]],["index3.js",[40]],["index4.js",[40]],["index5.js",[40]],["index6.js",[40]],["index7.js",[40]],["index8.js",[40]],["index9.js",[40]],["index@api.js",[40]],["layout!.js",[40]],["layout!2.js",[40]],["layout-api.js",[40]],["layout.js",[40]],["layout2.js",[40]],["menu.js",[]],["root.js",[40]],["root2.js",[]],["service-worker.js",[]]];
3
+ const libraryBundleIds=[1];
4
+ const linkBundles=[[/^\/$/,[37,12,20,17]],[/^\/about-us\/?$/,[37,12,24,4]],[/^\/api\/?$/,[37,12,35,14,32,11]],[/^\/blog\/?$/,[37,12,36,25]],[/^\/dashboard\/?$/,[33,13,26,6]],[/^\/docs\/?$/,[34,13,27,7]],[/^\/api\/data\.json$/,[37,12]],[/^\/dashboard\/profile\/?$/,[33,13,28,16]],[/^\/dashboard\/settings\/?$/,[33,13,29,18]],[/^\/docs\/getting-started\/?$/,[34,13,30]],[/^\/docs\/overview\/?$/,[34,13,31]],[/^\/products\/([^/]+?)\/?$/,[37,12,21,3]],[/^\/api\/([^/]+?)\/([^/]+?)\.json$/,[37,12]],[/^\/docs\/([^/]+?)\/([^/]+?)\/?$/,[34,13,22,3]],[/^\/blog(?:\/(.*))?\/?$/,[37,12,36,23,2]]];
5
+ const qBuildCacheName = "QwikBuild";
6
+ const existingPrefetches = /* @__PURE__ */ new Set();
7
+ const awaitingRequests = /* @__PURE__ */ new Map();
8
+ const getCacheToDelete = (appBundles2, cachedUrls) => {
9
+ return cachedUrls.filter((url) => !appBundles2.some((appBundle) => url.endsWith(appBundle[0])));
10
+ };
11
+ const useCache = (request, response) => !!response && !hasNoCacheHeader(request) && !hasNoCacheHeader(response);
12
+ const hasNoCacheHeader = (r) => {
13
+ const cacheControl = r.headers.get("Cache-Control") || "";
14
+ return cacheControl.includes("no-cache") || cacheControl.includes("max-age=0");
15
+ };
16
+ const isAppBundleRequest = (appBundles2, requestPathname) => appBundles2.some((b) => requestPathname.endsWith("/" + b[0]));
17
+ const getAppBundleByName = (appBundles2, appBundleName) => appBundles2.find((b) => b[0] === appBundleName);
18
+ const getAppBundlesNamesFromIds = (appBundles2, bundleIds) => bundleIds.map((bundleId) => appBundles2[bundleId] ? appBundles2[bundleId][0] : null);
19
+ const cachedFetch = (cache, fetch2, awaitingRequests2, request) => new Promise((promiseResolve, promiseReject) => {
20
+ const url = request.url;
21
+ const awaitingRequestResolves = awaitingRequests2.get(url);
22
+ if (awaitingRequestResolves) {
23
+ awaitingRequestResolves.push([promiseResolve, promiseReject]);
24
+ } else {
25
+ const resolve = (response) => {
26
+ const resolves = awaitingRequests2.get(url);
27
+ if (resolves) {
28
+ awaitingRequests2.delete(url);
29
+ for (const [awaitingResolve] of resolves) {
30
+ awaitingResolve(response.clone());
31
+ }
32
+ } else {
33
+ promiseResolve(response.clone());
34
+ }
35
+ };
36
+ const reject = (msg) => {
37
+ const resolves = awaitingRequests2.get(url);
38
+ if (resolves) {
39
+ awaitingRequests2.delete(url);
40
+ for (const [_, awaitingReject] of resolves) {
41
+ awaitingReject(msg);
42
+ }
43
+ } else {
44
+ promiseReject(msg);
45
+ }
46
+ };
47
+ awaitingRequests2.set(url, [[promiseResolve, promiseReject]]);
48
+ cache.match(url).then((cachedResponse) => {
49
+ if (useCache(request, cachedResponse)) {
50
+ resolve(cachedResponse);
51
+ } else {
52
+ return fetch2(request).then((networkResponse) => {
53
+ return cache.put(url, networkResponse.clone()).then(() => {
54
+ resolve(networkResponse);
55
+ });
56
+ });
57
+ }
58
+ }).catch((err) => {
59
+ return cache.match(url).then((cachedResponse) => {
60
+ if (cachedResponse) {
61
+ resolve(cachedResponse);
62
+ } else {
63
+ reject(err);
64
+ }
65
+ });
66
+ });
67
+ }
68
+ });
69
+ const prefetchBundleNames = (appBundles2, qBuildCache, fetch2, baseUrl, prefetchAppBundleNames) => {
70
+ const prefetchAppBundle = (prefetchAppBundleName) => {
71
+ try {
72
+ const appBundle = getAppBundleByName(appBundles2, prefetchAppBundleName);
73
+ if (appBundle && !existingPrefetches.has(prefetchAppBundleName)) {
74
+ existingPrefetches.add(prefetchAppBundleName);
75
+ const importedBundleNames = getAppBundlesNamesFromIds(appBundles2, appBundle[1]);
76
+ const url = new URL(prefetchAppBundleName, baseUrl);
77
+ const request = new Request(url);
78
+ cachedFetch(qBuildCache, fetch2, awaitingRequests, request);
79
+ importedBundleNames.forEach(prefetchAppBundle);
80
+ }
81
+ } catch (e) {
82
+ console.error(e);
83
+ }
84
+ };
85
+ if (Array.isArray(prefetchAppBundleNames)) {
86
+ prefetchAppBundleNames.forEach(prefetchAppBundle);
87
+ }
88
+ };
89
+ const prefetchLinkBundles = (appBundles2, libraryBundleIds2, linkBundles2, qBuildCache, fetch2, baseUrl, linkPathnames) => {
90
+ try {
91
+ prefetchBundleNames(appBundles2, qBuildCache, fetch2, baseUrl, getAppBundlesNamesFromIds(appBundles2, libraryBundleIds2));
92
+ } catch (e) {
93
+ console.error(e);
94
+ }
95
+ for (const linkPathname of linkPathnames) {
96
+ try {
97
+ for (const linkBundle of linkBundles2) {
98
+ const [route, linkBundleIds] = linkBundle;
99
+ console;
100
+ if (route.test(linkPathname)) {
101
+ prefetchBundleNames(appBundles2, qBuildCache, fetch2, baseUrl, getAppBundlesNamesFromIds(appBundles2, linkBundleIds));
102
+ break;
103
+ }
104
+ }
105
+ } catch (e) {
106
+ console.error(e);
107
+ }
108
+ }
109
+ };
110
+ const prefetchWaterfall = (appBundles2, qBuildCache, fetch2, requestedBuildUrl) => {
111
+ try {
112
+ const segments = requestedBuildUrl.href.split("/");
113
+ const requestedBundleName = segments[segments.length - 1];
114
+ segments[segments.length - 1] = "";
115
+ const baseUrl = new URL(segments.join("/"));
116
+ prefetchBundleNames(appBundles2, qBuildCache, fetch2, baseUrl, [requestedBundleName]);
117
+ } catch (e) {
118
+ console.error(e);
119
+ }
120
+ };
121
+ const setupServiceWorkerScope = (swScope, appBundles2, libraryBundleIds2, linkBundles2) => {
122
+ swScope.addEventListener("fetch", (ev) => {
123
+ const request = ev.request;
124
+ if (request.method === "GET") {
125
+ const url = new URL(request.url);
126
+ if (isAppBundleRequest(appBundles2, url.pathname)) {
127
+ const nativeFetch = swScope.fetch.bind(swScope);
128
+ ev.respondWith(swScope.caches.open(qBuildCacheName).then((qBuildCache) => {
129
+ prefetchWaterfall(appBundles2, qBuildCache, nativeFetch, url);
130
+ return cachedFetch(qBuildCache, nativeFetch, awaitingRequests, request);
131
+ }));
132
+ }
133
+ }
134
+ });
135
+ swScope.addEventListener("message", async ({ data }) => {
136
+ if (data.type === "qprefetch" && typeof data.base === "string") {
137
+ const nativeFetch = swScope.fetch.bind(swScope);
138
+ const qBuildCache = await swScope.caches.open(qBuildCacheName);
139
+ const baseUrl = new URL(data.base, swScope.origin);
140
+ if (Array.isArray(data.links)) {
141
+ prefetchLinkBundles(appBundles2, libraryBundleIds2, linkBundles2, qBuildCache, fetch, baseUrl, data.links);
142
+ }
143
+ if (Array.isArray(data.bundles)) {
144
+ prefetchBundleNames(appBundles2, qBuildCache, nativeFetch, baseUrl, data.bundles);
145
+ }
146
+ }
147
+ });
148
+ swScope.addEventListener("activate", async () => {
149
+ try {
150
+ const qBuildCache = await swScope.caches.open(qBuildCacheName);
151
+ const cachedRequestKeys = await qBuildCache.keys();
152
+ const cachedUrls = cachedRequestKeys.map((r) => r.url);
153
+ const cachedRequestsToDelete = getCacheToDelete(appBundles2, cachedUrls);
154
+ await Promise.all(cachedRequestsToDelete.map((r) => qBuildCache.delete(r)));
155
+ } catch (e) {
156
+ console.error(e);
157
+ }
158
+ });
159
+ };
160
+ const setupServiceWorker = () => {
161
+ if (typeof self !== "undefined" && typeof appBundles !== "undefined") {
162
+ setupServiceWorkerScope(self, appBundles, libraryBundleIds, linkBundles);
163
+ }
164
+ };
165
+ setupServiceWorker();
166
+ addEventListener("install", () => self.skipWaiting());
167
+ addEventListener("activate", () => self.clients.claim());