vorzelajs 0.0.7 → 0.0.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAgEA,wBAAsB,MAAM,kBAqE3B"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAiEA,wBAAsB,MAAM,kBA4E3B"}
package/dist/cli/dev.js CHANGED
@@ -74,6 +74,12 @@ export async function runDev() {
74
74
  css: ['/src/styles.css'],
75
75
  js: [`/@fs/${entryClientPath}`],
76
76
  };
77
+ // Check if PWA plugin is active (user enabled pwa in their config)
78
+ const { getActivePwaConfig } = await import('../vite/pwa-plugin.js');
79
+ const pwaConfig = getActivePwaConfig();
80
+ if (pwaConfig) {
81
+ devAssets.pwa = { themeColor: pwaConfig.themeColor };
82
+ }
77
83
  const loadEntry = async () => {
78
84
  return vite.ssrLoadModule('virtual:vorzela/entry-server');
79
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAiBA,wBAAsB,QAAQ,kBAkD7B"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAiBA,wBAAsB,QAAQ,kBA2D7B"}
package/dist/cli/serve.js CHANGED
@@ -24,6 +24,15 @@ export async function runServe() {
24
24
  css: [...cssAssets].map((href) => `/${href}`),
25
25
  js: entry ? [`/${entry.file}`] : [],
26
26
  };
27
+ // Detect PWA: if manifest.webmanifest was generated during build, enable PWA in assets
28
+ const manifestWebPath = path.resolve(appRoot, 'dist/client/manifest.webmanifest');
29
+ try {
30
+ const manifestWeb = JSON.parse(await fs.readFile(manifestWebPath, 'utf-8'));
31
+ assets.pwa = { themeColor: manifestWeb.theme_color ?? '#09111f' };
32
+ }
33
+ catch {
34
+ // No PWA manifest — PWA not enabled
35
+ }
27
36
  const serverEntryPath = path.resolve(appRoot, 'dist/server/entry-server.js');
28
37
  const serverEntry = await import(serverEntryPath);
29
38
  const loadEntry = async () => serverEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/internal/document.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInC,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErF,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAoBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,eAiE5C"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/internal/document.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInC,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErF,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAoBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,eAuE5C"}
@@ -39,6 +39,10 @@ export function Document(props) {
39
39
  </script>)}
40
40
  </For>
41
41
  <NoncedHydrationScript nonce={props.nonce}/>
42
+ {props.assets.pwa && (<>
43
+ <link rel="manifest" href="/manifest.webmanifest"/>
44
+ <meta name="theme-color" content={props.assets.pwa.themeColor}/>
45
+ </>)}
42
46
  <For each={props.assets.css}>
43
47
  {(href) => <link rel="stylesheet" href={href}/>}
44
48
  </For>
@@ -4,5 +4,11 @@ import { createRouter, readBootstrapPayload } from '../runtime/index.jsx';
4
4
  async function start() {
5
5
  const router = createRouter(readBootstrapPayload());
6
6
  await router.init();
7
+ // Register service worker in production (when sw.js exists)
8
+ if (typeof navigator !== 'undefined' && 'serviceWorker' in navigator && !import.meta.env.DEV) {
9
+ navigator.serviceWorker.register('/sw.js').catch(() => {
10
+ // SW registration failed silently — likely no sw.js present (PWA not enabled)
11
+ });
12
+ }
7
13
  }
8
14
  void start();
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Clear all VorzelaJS PWA caches.
3
+ * Call this when you want to force-refresh all cached content.
4
+ */
5
+ export declare function clearCache(): Promise<void>;
6
+ /** Check if the browser is currently offline */
7
+ export declare function isOffline(): boolean;
8
+ /** Register a callback for when the browser goes offline */
9
+ export declare function onOffline(callback: () => void): () => void;
10
+ /** Register a callback for when the browser comes back online */
11
+ export declare function onOnline(callback: () => void): () => void;
12
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/pwa/cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAOhD;AAED,gDAAgD;AAChD,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK1D;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKzD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Clear all VorzelaJS PWA caches.
3
+ * Call this when you want to force-refresh all cached content.
4
+ */
5
+ export async function clearCache() {
6
+ if (typeof caches === 'undefined')
7
+ return;
8
+ const keys = await caches.keys();
9
+ await Promise.all(keys.filter((key) => key.startsWith('vorzela-')).map((key) => caches.delete(key)));
10
+ }
11
+ /** Check if the browser is currently offline */
12
+ export function isOffline() {
13
+ return typeof navigator !== 'undefined' ? !navigator.onLine : false;
14
+ }
15
+ /** Register a callback for when the browser goes offline */
16
+ export function onOffline(callback) {
17
+ if (typeof window === 'undefined')
18
+ return () => { };
19
+ window.addEventListener('offline', callback);
20
+ return () => window.removeEventListener('offline', callback);
21
+ }
22
+ /** Register a callback for when the browser comes back online */
23
+ export function onOnline(callback) {
24
+ if (typeof window === 'undefined')
25
+ return () => { };
26
+ window.addEventListener('online', callback);
27
+ return () => window.removeEventListener('online', callback);
28
+ }
@@ -0,0 +1,3 @@
1
+ import type { ResolvedPwaConfig } from '../vite/index.js';
2
+ export declare function generateOfflinePage(config: ResolvedPwaConfig): string;
3
+ //# sourceMappingURL=offline-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-template.d.ts","sourceRoot":"","sources":["../../src/pwa/offline-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA8CrE"}
@@ -0,0 +1,53 @@
1
+ export function generateOfflinePage(config) {
2
+ return `<!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <meta name="theme-color" content="${escapeAttr(config.themeColor)}">
8
+ <title>Offline — ${escapeHtml(config.name)}</title>
9
+ <style>
10
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
11
+ body {
12
+ font-family: system-ui, -apple-system, sans-serif;
13
+ background: ${escapeAttr(config.backgroundColor)};
14
+ color: #e2e8f0;
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ min-height: 100vh;
19
+ padding: 2rem;
20
+ }
21
+ .container { text-align: center; max-width: 28rem; }
22
+ .icon { font-size: 3rem; margin-bottom: 1.5rem; }
23
+ h1 { font-size: 1.5rem; margin-bottom: 0.75rem; }
24
+ p { color: #94a3b8; margin-bottom: 2rem; line-height: 1.6; }
25
+ button {
26
+ background: ${escapeAttr(config.themeColor)};
27
+ color: #fff;
28
+ border: 1px solid #334155;
29
+ padding: 0.75rem 2rem;
30
+ border-radius: 0.5rem;
31
+ font-size: 1rem;
32
+ cursor: pointer;
33
+ transition: opacity 0.15s;
34
+ }
35
+ button:hover { opacity: 0.85; }
36
+ </style>
37
+ </head>
38
+ <body>
39
+ <div class="container">
40
+ <div class="icon">📡</div>
41
+ <h1>You're offline</h1>
42
+ <p>Check your internet connection and try again.</p>
43
+ <button onclick="window.location.reload()">Retry</button>
44
+ </div>
45
+ </body>
46
+ </html>`;
47
+ }
48
+ function escapeHtml(s) {
49
+ return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
50
+ }
51
+ function escapeAttr(s) {
52
+ return s.replace(/&/g, '&amp;').replace(/"/g, '&quot;');
53
+ }
@@ -0,0 +1,2 @@
1
+ export declare function generateServiceWorker(precacheUrls: string[]): string;
2
+ //# sourceMappingURL=sw-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sw-template.d.ts","sourceRoot":"","sources":["../../src/pwa/sw-template.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA4EpE"}
@@ -0,0 +1,87 @@
1
+ const CACHE_PREFIX = 'vorzela-';
2
+ export function generateServiceWorker(precacheUrls) {
3
+ const cacheVersion = generateCacheVersion(precacheUrls);
4
+ const assetCacheName = `${CACHE_PREFIX}assets-${cacheVersion}`;
5
+ const runtimeCacheName = `${CACHE_PREFIX}runtime-${cacheVersion}`;
6
+ return `// VorzelaJS Service Worker — auto-generated, do not edit
7
+ const ASSET_CACHE = ${JSON.stringify(assetCacheName)};
8
+ const RUNTIME_CACHE = ${JSON.stringify(runtimeCacheName)};
9
+ const PRECACHE_URLS = ${JSON.stringify(precacheUrls, null, 2)};
10
+
11
+ self.addEventListener('install', (event) => {
12
+ event.waitUntil(
13
+ caches.open(ASSET_CACHE).then((cache) => cache.addAll([...PRECACHE_URLS, '/offline.html']))
14
+ );
15
+ self.skipWaiting();
16
+ });
17
+
18
+ self.addEventListener('activate', (event) => {
19
+ event.waitUntil(
20
+ caches.keys().then((keys) =>
21
+ Promise.all(
22
+ keys
23
+ .filter((key) => key.startsWith(${JSON.stringify(CACHE_PREFIX)}) && key !== ASSET_CACHE && key !== RUNTIME_CACHE)
24
+ .map((key) => caches.delete(key))
25
+ )
26
+ )
27
+ );
28
+ self.clients.claim();
29
+ });
30
+
31
+ self.addEventListener('fetch', (event) => {
32
+ const url = new URL(event.request.url);
33
+
34
+ // Skip non-GET and cross-origin
35
+ if (event.request.method !== 'GET' || url.origin !== self.location.origin) return;
36
+
37
+ // Cache-first for hashed assets
38
+ if (url.pathname.startsWith('/assets/')) {
39
+ event.respondWith(
40
+ caches.match(event.request).then((cached) => cached || fetch(event.request).then((response) => {
41
+ const clone = response.clone();
42
+ caches.open(ASSET_CACHE).then((cache) => cache.put(event.request, clone));
43
+ return response;
44
+ }))
45
+ );
46
+ return;
47
+ }
48
+
49
+ // Network-first for navigation requests
50
+ if (event.request.mode === 'navigate') {
51
+ event.respondWith(
52
+ fetch(event.request)
53
+ .then((response) => {
54
+ const clone = response.clone();
55
+ caches.open(RUNTIME_CACHE).then((cache) => cache.put(event.request, clone));
56
+ return response;
57
+ })
58
+ .catch(() => caches.match(event.request).then((cached) => cached || caches.match('/offline.html')))
59
+ );
60
+ return;
61
+ }
62
+
63
+ // Network-first for everything else
64
+ event.respondWith(
65
+ fetch(event.request)
66
+ .then((response) => {
67
+ if (response.ok) {
68
+ const clone = response.clone();
69
+ caches.open(RUNTIME_CACHE).then((cache) => cache.put(event.request, clone));
70
+ }
71
+ return response;
72
+ })
73
+ .catch(() => caches.match(event.request))
74
+ );
75
+ });
76
+ `;
77
+ }
78
+ function generateCacheVersion(urls) {
79
+ // Simple hash of the sorted URLs list for cache versioning
80
+ let hash = 0;
81
+ const str = urls.slice().sort().join('|');
82
+ for (let i = 0; i < str.length; i++) {
83
+ const char = str.charCodeAt(i);
84
+ hash = ((hash << 5) - hash + char) | 0;
85
+ }
86
+ return Math.abs(hash).toString(36);
87
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,GAAG,EAAE,MAAM,UAAU,CAAA;AAYxD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAEjB,kBAAkB,EAIlB,cAAc,EAId,mBAAmB,EAEnB,WAAW,EACX,iBAAiB,EAElB,MAAM,YAAY,CAAA;AAEnB,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAaD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,SAAS,EAAE,iBAAiB,CAAA;IAC5B,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;CACpC;AAsUD,wBAAgB,YAAY,CAC1B,cAAc,EAAE,gBAAgB,EAChC,OAAO,GAAE,mBAAwB,GAChC,aAAa,CA6Wf;AAMD,KAAK,4BAA4B,GAAG;IAClC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IAC/C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,CAAC,EACvG,OAAO,GAAE,4BAAiC,GACzC,GAAG,CAAC,OAAO,CA8Gb;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,eA2D9D;AAED,wBAAgB,MAAM,sEAErB;AAED,wBAAgB,SAAS,kBAQxB;AAED,wBAAgB,WAAW,KAGjB,IAAI,MAAM,GAAG,iBAAiB,EAAE,UAAU,iBAAiB,mBAOpE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAO1D,CAAC,CACzB;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,KAOZ,CAAC,CAC7B;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,aAgB5D;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAuBxF;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,CAQvD;AAED,KAAK,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,eAqFpC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,GAAG,EAAE,MAAM,UAAU,CAAA;AAYxD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAEjB,kBAAkB,EAIlB,cAAc,EAId,mBAAmB,EAEnB,WAAW,EACX,iBAAiB,EAElB,MAAM,YAAY,CAAA;AAEnB,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAaD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,SAAS,EAAE,iBAAiB,CAAA;IAC5B,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;CACpC;AAsUD,wBAAgB,YAAY,CAC1B,cAAc,EAAE,gBAAgB,EAChC,OAAO,GAAE,mBAAwB,GAChC,aAAa,CAqXf;AAMD,KAAK,4BAA4B,GAAG;IAClC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IAC/C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,CAAC,EACvG,OAAO,GAAE,4BAAiC,GACzC,GAAG,CAAC,OAAO,CA8Gb;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,eA2D9D;AAED,wBAAgB,MAAM,sEAErB;AAED,wBAAgB,SAAS,kBAQxB;AAED,wBAAgB,WAAW,KAGjB,IAAI,MAAM,GAAG,iBAAiB,EAAE,UAAU,iBAAiB,mBAOpE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAO1D,CAAC,CACzB;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,KAOZ,CAAC,CAC7B;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,aAgB5D;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAuBxF;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,CAQvD;AAED,KAAK,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,eAqFpC"}
@@ -1,5 +1,5 @@
1
1
  import { createContext, createEffect, createSignal, ErrorBoundary, onCleanup, sharedConfig, splitProps, useContext } from 'solid-js';
2
- import { hydrate } from 'solid-js/web';
2
+ import { hydrate, render } from 'solid-js/web';
3
3
  import { formatParsedStack, parseErrorStack } from '../debug/error-stack.js';
4
4
  import { syncHead } from './head.js';
5
5
  import { normalizeHref } from './path.js';
@@ -313,6 +313,7 @@ export function createRouter(initialPayload, options = {}) {
313
313
  }
314
314
  const mountPoints = Array.from(app.querySelectorAll(`[${ISLAND_ROOT_ATTRIBUTE}]`));
315
315
  const hydrationRoots = getHydrationRoots(nextState);
316
+ const isPayloadNavigation = nextState.renderSource === 'payload';
316
317
  for (const root of hydrationRoots) {
317
318
  const mount = mountPoints.find((candidate) => candidate.getAttribute(ISLAND_ROOT_ATTRIBUTE) === root.id);
318
319
  if (!mount) {
@@ -326,15 +327,23 @@ export function createRouter(initialPayload, options = {}) {
326
327
  scroll: false,
327
328
  });
328
329
  };
329
- const hctx = readIslandHydrationContext(mount);
330
- islandDisposers.push(hydrate(() => {
331
- if (hctx && sharedConfig.context) {
332
- sharedConfig.context.count = hctx.count;
333
- }
334
- return renderResolvedMatches(subtreeState, { retry });
335
- }, mount, {
336
- renderId: hctx?.id,
337
- }));
330
+ if (isPayloadNavigation) {
331
+ mount.textContent = '';
332
+ islandDisposers.push(render(() => {
333
+ return renderResolvedMatches(subtreeState, { retry });
334
+ }, mount));
335
+ }
336
+ else {
337
+ const hctx = readIslandHydrationContext(mount);
338
+ islandDisposers.push(hydrate(() => {
339
+ if (hctx && sharedConfig.context) {
340
+ sharedConfig.context.count = hctx.count;
341
+ }
342
+ return renderResolvedMatches(subtreeState, { retry });
343
+ }, mount, {
344
+ renderId: hctx?.id,
345
+ }));
346
+ }
338
347
  }
339
348
  logDevRouterEvent('hydrate', {
340
349
  islands: hydrationRoots.map((root) => root.id),
@@ -243,6 +243,9 @@ export type RouteNavigationEnvelope = RoutePayloadEnvelope | RouteRedirectEnvelo
243
243
  export interface RenderAssets {
244
244
  css: string[];
245
245
  js: string[];
246
+ pwa?: {
247
+ themeColor: string;
248
+ };
246
249
  }
247
250
  export {};
248
251
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAGhE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAI1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACnH,cAAc,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpG,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAChE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACvC,QAAQ,EAAE,MAAM,CAAA;QAChB,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;KACxB,CAAC,CAAA;IACF,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAqDD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB;cAEvB,QAAQ;eAAa;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;0CA6P3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAIhE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAI1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACnH,cAAc,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpG,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAChE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACvC,QAAQ,EAAE,MAAM,CAAA;QAChB,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;KACxB,CAAC,CAAA;IACF,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAqDD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB;cAEvB,QAAQ;eAAa;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;0CAmS3E"}
@@ -1,4 +1,6 @@
1
1
  import { randomBytes } from 'node:crypto';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
2
4
  import { serveStatic } from '@hono/node-server/serve-static';
3
5
  import { Hono } from 'hono';
4
6
  import { DEFAULT_ANALYTICS_ENDPOINT, handleAnalyticsRequest } from '../analytics.js';
@@ -46,6 +48,44 @@ export function createVorzelaApp(options) {
46
48
  if (isProd && staticRoot) {
47
49
  app.use('/assets/*', serveStatic({ root: './dist/client' }));
48
50
  app.use('/favicon.svg', serveStatic({ root: './dist/client' }));
51
+ // PWA files (generated by vorzelajs-pwa plugin)
52
+ app.get('/sw.js', async (c) => {
53
+ const filePath = path.resolve('./dist/client/sw.js');
54
+ try {
55
+ const content = await fs.promises.readFile(filePath, 'utf-8');
56
+ c.header('Content-Type', 'application/javascript; charset=utf-8');
57
+ c.header('Cache-Control', 'no-cache');
58
+ c.header('Service-Worker-Allowed', '/');
59
+ return c.body(content);
60
+ }
61
+ catch {
62
+ return c.notFound();
63
+ }
64
+ });
65
+ app.get('/manifest.webmanifest', async (c) => {
66
+ const filePath = path.resolve('./dist/client/manifest.webmanifest');
67
+ try {
68
+ const content = await fs.promises.readFile(filePath, 'utf-8');
69
+ c.header('Content-Type', 'application/manifest+json; charset=utf-8');
70
+ c.header('Cache-Control', 'public, max-age=3600');
71
+ return c.body(content);
72
+ }
73
+ catch {
74
+ return c.notFound();
75
+ }
76
+ });
77
+ app.get('/offline.html', async (c) => {
78
+ const filePath = path.resolve('./dist/client/offline.html');
79
+ try {
80
+ const content = await fs.promises.readFile(filePath, 'utf-8');
81
+ c.header('Content-Type', 'text/html; charset=utf-8');
82
+ c.header('Cache-Control', 'public, max-age=3600');
83
+ return c.body(content);
84
+ }
85
+ catch {
86
+ return c.notFound();
87
+ }
88
+ });
49
89
  }
50
90
  if (!isProd) {
51
91
  app.use('/favicon.svg', serveStatic({ root: './public' }));
@@ -1,5 +1,28 @@
1
1
  import type { Plugin, UserConfig } from 'vite';
2
+ export interface PwaIconDescriptor {
3
+ sizes: string;
4
+ src: string;
5
+ type?: string;
6
+ }
7
+ export interface VorzelaPwaOptions {
8
+ backgroundColor?: string;
9
+ display?: 'fullscreen' | 'standalone' | 'minimal-ui' | 'browser';
10
+ icons?: PwaIconDescriptor[];
11
+ name?: string;
12
+ shortName?: string;
13
+ themeColor?: string;
14
+ }
15
+ export interface ResolvedPwaConfig {
16
+ backgroundColor: string;
17
+ display: string;
18
+ icons: PwaIconDescriptor[];
19
+ name: string;
20
+ shortName: string;
21
+ themeColor: string;
22
+ }
2
23
  export interface VorzelaPluginOptions {
24
+ /** Enable PWA support. Pass `true` for defaults or an options object. */
25
+ pwa?: boolean | VorzelaPwaOptions;
3
26
  /** Override the Solid plugin. Pass `false` to disable auto-detection. */
4
27
  solid?: false | Plugin;
5
28
  /** Override the Tailwind plugin. Pass `false` to disable auto-detection. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAiB9C,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC1B;AA2FD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAO1E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,UAAU,CAAC,CAoCrB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,GACxB,UAAU,CAqCZ;AAED,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAkB9C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAA;IAChE,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAA;IACjC,yEAAyE;IACzE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC1B;AA0GD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAW1E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,UAAU,CAAC,CAoCrB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,GACxB,UAAU,CAqCZ;AAED,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import path from 'node:path';
2
2
  import url from 'node:url';
3
+ import { vorzelaPwaPlugin } from './pwa-plugin.js';
3
4
  import { vorzelaRoutesPlugin } from './routes-plugin.js';
4
5
  const VIRTUAL_ROUTES = 'virtual:vorzela/routes';
5
6
  const VIRTUAL_HYDRATION = 'virtual:vorzela/hydration';
@@ -11,6 +12,20 @@ const RESOLVED_VIRTUAL_HYDRATION = `\0${VIRTUAL_HYDRATION}`;
11
12
  const RESOLVED_VIRTUAL_STYLES = `\0${VIRTUAL_STYLES}`;
12
13
  const RESOLVED_VIRTUAL_ENTRY_CLIENT = `\0${VIRTUAL_ENTRY_CLIENT}`;
13
14
  const RESOLVED_VIRTUAL_ENTRY_SERVER = `\0${VIRTUAL_ENTRY_SERVER}`;
15
+ function resolvePwaConfig(pwa) {
16
+ const opts = pwa === true ? {} : pwa;
17
+ return {
18
+ backgroundColor: opts.backgroundColor ?? '#09111f',
19
+ display: opts.display ?? 'standalone',
20
+ icons: opts.icons ?? [
21
+ { src: '/icon-192.png', sizes: '192x192', type: 'image/png' },
22
+ { src: '/icon-512.png', sizes: '512x512', type: 'image/png' },
23
+ ],
24
+ name: opts.name ?? 'VorzelaJs App',
25
+ shortName: opts.shortName ?? 'VorzelaJs',
26
+ themeColor: opts.themeColor ?? '#09111f',
27
+ };
28
+ }
14
29
  function resolveFrameworkDir() {
15
30
  const thisFile = url.fileURLToPath(import.meta.url);
16
31
  // In built form: dist/vite/index.js -> dist/
@@ -100,6 +115,9 @@ export function vorzelaPlugin(options = {}) {
100
115
  vorzelaVirtualModulesPlugin(),
101
116
  vorzelaRoutesPlugin(),
102
117
  ];
118
+ if (options.pwa) {
119
+ plugins.push(vorzelaPwaPlugin(resolvePwaConfig(options.pwa)));
120
+ }
103
121
  return plugins;
104
122
  }
105
123
  export async function resolveVorzelaConfig(appRoot, options = {}) {
@@ -0,0 +1,8 @@
1
+ import type { Plugin } from 'vite';
2
+ import type { ResolvedPwaConfig } from './index.js';
3
+ /** Returns the PWA config if the plugin is active, null otherwise */
4
+ export declare function getActivePwaConfig(): ResolvedPwaConfig | null;
5
+ declare function generateManifestJson(config: ResolvedPwaConfig): string;
6
+ export declare function vorzelaPwaPlugin(config: ResolvedPwaConfig): Plugin;
7
+ export { generateManifestJson };
8
+ //# sourceMappingURL=pwa-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwa-plugin.d.ts","sourceRoot":"","sources":["../../src/vite/pwa-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInD,qEAAqE;AACrE,wBAAgB,kBAAkB,IAAI,iBAAiB,GAAG,IAAI,CAE7D;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAU/D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAgDlE;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,64 @@
1
+ import { generateOfflinePage } from '../pwa/offline-template.js';
2
+ import { generateServiceWorker } from '../pwa/sw-template.js';
3
+ let _activePwaConfig = null;
4
+ /** Returns the PWA config if the plugin is active, null otherwise */
5
+ export function getActivePwaConfig() {
6
+ return _activePwaConfig;
7
+ }
8
+ function generateManifestJson(config) {
9
+ return JSON.stringify({
10
+ name: config.name,
11
+ short_name: config.shortName,
12
+ start_url: '/',
13
+ display: config.display,
14
+ background_color: config.backgroundColor,
15
+ theme_color: config.themeColor,
16
+ icons: config.icons,
17
+ }, null, 2);
18
+ }
19
+ export function vorzelaPwaPlugin(config) {
20
+ let isBuild = false;
21
+ return {
22
+ name: 'vorzelajs-pwa',
23
+ configResolved(resolved) {
24
+ isBuild = resolved.command === 'build';
25
+ _activePwaConfig = config;
26
+ },
27
+ configureServer(server) {
28
+ server.middlewares.use((req, res, next) => {
29
+ if (req.url === '/manifest.webmanifest') {
30
+ res.setHeader('Content-Type', 'application/manifest+json');
31
+ res.setHeader('Cache-Control', 'no-cache');
32
+ res.end(generateManifestJson(config));
33
+ return;
34
+ }
35
+ next();
36
+ });
37
+ },
38
+ generateBundle(_, bundle) {
39
+ if (!isBuild)
40
+ return;
41
+ // Collect all asset URLs from the bundle
42
+ const assetUrls = [];
43
+ for (const fileName of Object.keys(bundle)) {
44
+ assetUrls.push(`/${fileName}`);
45
+ }
46
+ this.emitFile({
47
+ type: 'asset',
48
+ fileName: 'sw.js',
49
+ source: generateServiceWorker(assetUrls),
50
+ });
51
+ this.emitFile({
52
+ type: 'asset',
53
+ fileName: 'manifest.webmanifest',
54
+ source: generateManifestJson(config),
55
+ });
56
+ this.emitFile({
57
+ type: 'asset',
58
+ fileName: 'offline.html',
59
+ source: generateOfflinePage(config),
60
+ });
61
+ },
62
+ };
63
+ }
64
+ export { generateManifestJson };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vorzelajs",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "description": "Batteries-included SolidJS framework with file-based routing, streamed SSR, and server-only boundaries",
6
6
  "license": "MIT",
@@ -23,6 +23,10 @@
23
23
  "./vite": {
24
24
  "types": "./dist/vite/index.d.ts",
25
25
  "import": "./dist/vite/index.js"
26
+ },
27
+ "./pwa": {
28
+ "types": "./dist/pwa/cache.d.ts",
29
+ "import": "./dist/pwa/cache.js"
26
30
  }
27
31
  },
28
32
  "files": [