@prabhask5/stellar-engine 1.1.6 → 1.1.8
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.
- package/README.md +68 -25
- package/dist/actions/remoteChange.d.ts +143 -18
- package/dist/actions/remoteChange.d.ts.map +1 -1
- package/dist/actions/remoteChange.js +182 -58
- package/dist/actions/remoteChange.js.map +1 -1
- package/dist/actions/truncateTooltip.d.ts +56 -0
- package/dist/actions/truncateTooltip.d.ts.map +1 -0
- package/dist/actions/truncateTooltip.js +312 -0
- package/dist/actions/truncateTooltip.js.map +1 -0
- package/dist/auth/admin.d.ts +40 -3
- package/dist/auth/admin.d.ts.map +1 -1
- package/dist/auth/admin.js +45 -5
- package/dist/auth/admin.js.map +1 -1
- package/dist/auth/crypto.d.ts +55 -5
- package/dist/auth/crypto.d.ts.map +1 -1
- package/dist/auth/crypto.js +58 -5
- package/dist/auth/crypto.js.map +1 -1
- package/dist/auth/deviceVerification.d.ts +236 -20
- package/dist/auth/deviceVerification.d.ts.map +1 -1
- package/dist/auth/deviceVerification.js +293 -40
- package/dist/auth/deviceVerification.js.map +1 -1
- package/dist/auth/displayUtils.d.ts +98 -0
- package/dist/auth/displayUtils.d.ts.map +1 -0
- package/dist/auth/displayUtils.js +133 -0
- package/dist/auth/displayUtils.js.map +1 -0
- package/dist/auth/loginGuard.d.ts +108 -14
- package/dist/auth/loginGuard.d.ts.map +1 -1
- package/dist/auth/loginGuard.js +153 -31
- package/dist/auth/loginGuard.js.map +1 -1
- package/dist/auth/offlineCredentials.d.ts +132 -15
- package/dist/auth/offlineCredentials.d.ts.map +1 -1
- package/dist/auth/offlineCredentials.js +167 -23
- package/dist/auth/offlineCredentials.js.map +1 -1
- package/dist/auth/offlineLogin.d.ts +96 -10
- package/dist/auth/offlineLogin.d.ts.map +1 -1
- package/dist/auth/offlineLogin.js +82 -15
- package/dist/auth/offlineLogin.js.map +1 -1
- package/dist/auth/offlineSession.d.ts +83 -9
- package/dist/auth/offlineSession.d.ts.map +1 -1
- package/dist/auth/offlineSession.js +104 -13
- package/dist/auth/offlineSession.js.map +1 -1
- package/dist/auth/resolveAuthState.d.ts +70 -8
- package/dist/auth/resolveAuthState.d.ts.map +1 -1
- package/dist/auth/resolveAuthState.js +142 -46
- package/dist/auth/resolveAuthState.js.map +1 -1
- package/dist/auth/singleUser.d.ts +390 -37
- package/dist/auth/singleUser.d.ts.map +1 -1
- package/dist/auth/singleUser.js +505 -133
- package/dist/auth/singleUser.js.map +1 -1
- package/dist/bin/install-pwa.d.ts +25 -0
- package/dist/bin/install-pwa.d.ts.map +1 -0
- package/dist/bin/install-pwa.js +2197 -0
- package/dist/bin/install-pwa.js.map +1 -0
- package/dist/config.d.ts +132 -12
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +87 -9
- package/dist/config.js.map +1 -1
- package/dist/conflicts.d.ts +246 -23
- package/dist/conflicts.d.ts.map +1 -1
- package/dist/conflicts.js +495 -46
- package/dist/conflicts.js.map +1 -1
- package/dist/data.d.ts +338 -18
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +385 -34
- package/dist/data.js.map +1 -1
- package/dist/database.d.ts +72 -14
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +120 -29
- package/dist/database.js.map +1 -1
- package/dist/debug.d.ts +77 -1
- package/dist/debug.d.ts.map +1 -1
- package/dist/debug.js +88 -1
- package/dist/debug.js.map +1 -1
- package/dist/deviceId.d.ts +38 -7
- package/dist/deviceId.d.ts.map +1 -1
- package/dist/deviceId.js +68 -10
- package/dist/deviceId.js.map +1 -1
- package/dist/engine.d.ts +175 -3
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +831 -110
- package/dist/engine.js.map +1 -1
- package/dist/entries/actions.d.ts +14 -0
- package/dist/entries/actions.d.ts.map +1 -1
- package/dist/entries/actions.js +27 -1
- package/dist/entries/actions.js.map +1 -1
- package/dist/entries/auth.d.ts +16 -0
- package/dist/entries/auth.d.ts.map +1 -1
- package/dist/entries/auth.js +73 -1
- package/dist/entries/auth.js.map +1 -1
- package/dist/entries/config.d.ts +12 -0
- package/dist/entries/config.d.ts.map +1 -1
- package/dist/entries/config.js +18 -1
- package/dist/entries/config.js.map +1 -1
- package/dist/entries/kit.d.ts +21 -9
- package/dist/entries/kit.d.ts.map +1 -1
- package/dist/entries/kit.js +57 -8
- package/dist/entries/kit.js.map +1 -1
- package/dist/entries/stores.d.ts +11 -0
- package/dist/entries/stores.d.ts.map +1 -1
- package/dist/entries/stores.js +43 -2
- package/dist/entries/stores.js.map +1 -1
- package/dist/entries/types.d.ts +11 -1
- package/dist/entries/types.d.ts.map +1 -1
- package/dist/entries/types.js +10 -0
- package/dist/entries/types.js.map +1 -1
- package/dist/entries/utils.d.ts +7 -1
- package/dist/entries/utils.d.ts.map +1 -1
- package/dist/entries/utils.js +23 -2
- package/dist/entries/utils.js.map +1 -1
- package/dist/entries/vite.d.ts +20 -0
- package/dist/entries/vite.d.ts.map +1 -0
- package/dist/entries/vite.js +26 -0
- package/dist/entries/vite.js.map +1 -0
- package/dist/index.d.ts +33 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +176 -21
- package/dist/index.js.map +1 -1
- package/dist/kit/auth.d.ts +80 -0
- package/dist/kit/auth.d.ts.map +1 -0
- package/dist/kit/auth.js +72 -0
- package/dist/kit/auth.js.map +1 -0
- package/dist/kit/confirm.d.ts +111 -0
- package/dist/kit/confirm.d.ts.map +1 -0
- package/dist/kit/confirm.js +169 -0
- package/dist/kit/confirm.js.map +1 -0
- package/dist/kit/loads.d.ts +189 -0
- package/dist/kit/loads.d.ts.map +1 -0
- package/dist/kit/loads.js +205 -0
- package/dist/kit/loads.js.map +1 -0
- package/dist/kit/server.d.ts +175 -0
- package/dist/kit/server.d.ts.map +1 -0
- package/dist/kit/server.js +297 -0
- package/dist/kit/server.js.map +1 -0
- package/dist/kit/sw.d.ts +176 -0
- package/dist/kit/sw.d.ts.map +1 -0
- package/dist/kit/sw.js +320 -0
- package/dist/kit/sw.js.map +1 -0
- package/dist/queue.d.ts +274 -0
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +556 -38
- package/dist/queue.js.map +1 -1
- package/dist/realtime.d.ts +241 -27
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +633 -109
- package/dist/realtime.js.map +1 -1
- package/dist/runtime/runtimeConfig.d.ts +91 -16
- package/dist/runtime/runtimeConfig.d.ts.map +1 -1
- package/dist/runtime/runtimeConfig.js +146 -19
- package/dist/runtime/runtimeConfig.js.map +1 -1
- package/dist/stores/authState.d.ts +150 -11
- package/dist/stores/authState.d.ts.map +1 -1
- package/dist/stores/authState.js +169 -17
- package/dist/stores/authState.js.map +1 -1
- package/dist/stores/network.d.ts +39 -0
- package/dist/stores/network.d.ts.map +1 -1
- package/dist/stores/network.js +169 -16
- package/dist/stores/network.js.map +1 -1
- package/dist/stores/remoteChanges.d.ts +327 -52
- package/dist/stores/remoteChanges.d.ts.map +1 -1
- package/dist/stores/remoteChanges.js +337 -75
- package/dist/stores/remoteChanges.js.map +1 -1
- package/dist/stores/sync.d.ts +130 -0
- package/dist/stores/sync.d.ts.map +1 -1
- package/dist/stores/sync.js +167 -7
- package/dist/stores/sync.js.map +1 -1
- package/dist/supabase/auth.d.ts +326 -19
- package/dist/supabase/auth.d.ts.map +1 -1
- package/dist/supabase/auth.js +374 -26
- package/dist/supabase/auth.js.map +1 -1
- package/dist/supabase/client.d.ts +79 -6
- package/dist/supabase/client.d.ts.map +1 -1
- package/dist/supabase/client.js +158 -15
- package/dist/supabase/client.js.map +1 -1
- package/dist/supabase/validate.d.ts +101 -7
- package/dist/supabase/validate.d.ts.map +1 -1
- package/dist/supabase/validate.js +117 -8
- package/dist/supabase/validate.js.map +1 -1
- package/dist/sw/build/vite-plugin.d.ts +74 -0
- package/dist/sw/build/vite-plugin.d.ts.map +1 -0
- package/dist/sw/build/vite-plugin.js +183 -0
- package/dist/sw/build/vite-plugin.js.map +1 -0
- package/dist/sw/sw.js +669 -0
- package/dist/types.d.ts +150 -45
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -10
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +55 -13
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +83 -22
- package/dist/utils.js.map +1 -1
- package/package.json +20 -22
- package/src/components/DeferredChangesBanner.svelte +477 -0
- package/src/components/SyncStatus.svelte +1732 -0
- package/dist/crdt/awareness.d.ts +0 -54
- package/dist/crdt/awareness.d.ts.map +0 -1
- package/dist/crdt/awareness.js +0 -219
- package/dist/crdt/awareness.js.map +0 -1
- package/dist/crdt/doc.d.ts +0 -56
- package/dist/crdt/doc.d.ts.map +0 -1
- package/dist/crdt/doc.js +0 -130
- package/dist/crdt/doc.js.map +0 -1
- package/dist/crdt/index.d.ts +0 -15
- package/dist/crdt/index.d.ts.map +0 -1
- package/dist/crdt/index.js +0 -20
- package/dist/crdt/index.js.map +0 -1
- package/dist/crdt/offline.d.ts +0 -91
- package/dist/crdt/offline.d.ts.map +0 -1
- package/dist/crdt/offline.js +0 -353
- package/dist/crdt/offline.js.map +0 -1
- package/dist/crdt/sync.d.ts +0 -58
- package/dist/crdt/sync.d.ts.map +0 -1
- package/dist/crdt/sync.js +0 -399
- package/dist/crdt/sync.js.map +0 -1
- package/dist/crdt/types.d.ts +0 -62
- package/dist/crdt/types.d.ts.map +0 -1
- package/dist/crdt/types.js +0 -7
- package/dist/crdt/types.js.map +0 -1
- package/dist/email/sendEmail.d.ts +0 -31
- package/dist/email/sendEmail.d.ts.map +0 -1
- package/dist/email/sendEmail.js +0 -39
- package/dist/email/sendEmail.js.map +0 -1
- package/dist/email/validateSmtp.d.ts +0 -18
- package/dist/email/validateSmtp.d.ts.map +0 -1
- package/dist/email/validateSmtp.js +0 -33
- package/dist/email/validateSmtp.js.map +0 -1
- package/dist/entries/crdt.d.ts +0 -3
- package/dist/entries/crdt.d.ts.map +0 -1
- package/dist/entries/crdt.js +0 -13
- package/dist/entries/crdt.js.map +0 -1
- package/dist/entries/email.d.ts +0 -4
- package/dist/entries/email.d.ts.map +0 -1
- package/dist/entries/email.js +0 -4
- package/dist/entries/email.js.map +0 -1
- package/dist/kit/authPresets.d.ts +0 -28
- package/dist/kit/authPresets.d.ts.map +0 -1
- package/dist/kit/authPresets.js +0 -23
- package/dist/kit/authPresets.js.map +0 -1
- package/dist/kit/configEndpoint.d.ts +0 -18
- package/dist/kit/configEndpoint.d.ts.map +0 -1
- package/dist/kit/configEndpoint.js +0 -27
- package/dist/kit/configEndpoint.js.map +0 -1
- package/dist/kit/deployEndpoint.d.ts +0 -22
- package/dist/kit/deployEndpoint.d.ts.map +0 -1
- package/dist/kit/deployEndpoint.js +0 -79
- package/dist/kit/deployEndpoint.js.map +0 -1
- package/dist/kit/layoutLoad.d.ts +0 -23
- package/dist/kit/layoutLoad.d.ts.map +0 -1
- package/dist/kit/layoutLoad.js +0 -41
- package/dist/kit/layoutLoad.js.map +0 -1
- package/dist/kit/protectedLoad.d.ts +0 -16
- package/dist/kit/protectedLoad.d.ts.map +0 -1
- package/dist/kit/protectedLoad.js +0 -28
- package/dist/kit/protectedLoad.js.map +0 -1
- package/dist/kit/setupLoad.d.ts +0 -11
- package/dist/kit/setupLoad.d.ts.map +0 -1
- package/dist/kit/setupLoad.js +0 -28
- package/dist/kit/setupLoad.js.map +0 -1
- package/dist/kit/validateEndpoint.d.ts +0 -9
- package/dist/kit/validateEndpoint.d.ts.map +0 -1
- package/dist/kit/validateEndpoint.js +0 -25
- package/dist/kit/validateEndpoint.js.map +0 -1
- package/dist/kit/vercelApi.d.ts +0 -6
- package/dist/kit/vercelApi.d.ts.map +0 -1
- package/dist/kit/vercelApi.js +0 -48
- package/dist/kit/vercelApi.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/supabase/validate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/supabase/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Vite plugin that generates the service worker and asset manifest
|
|
3
|
+
* at build time. Projects import this instead of maintaining their own SW logic.
|
|
4
|
+
*
|
|
5
|
+
* The plugin hooks into two Vite/Rollup lifecycle events:
|
|
6
|
+
* - **`buildStart`** — reads the compiled SW template from the stellar-engine
|
|
7
|
+
* package, patches in app-specific tokens, and writes `static/sw.js`.
|
|
8
|
+
* - **`closeBundle`** — after Rollup finishes writing chunks, scans the
|
|
9
|
+
* immutable output directory and writes `asset-manifest.json` listing
|
|
10
|
+
* all JS/CSS files for the service worker to precache.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // vite.config.ts
|
|
15
|
+
* import { sveltekit } from '@sveltejs/kit/vite';
|
|
16
|
+
* import { stellarPWA } from '@prabhask5/stellar-engine/vite';
|
|
17
|
+
* import { defineConfig } from 'vite';
|
|
18
|
+
*
|
|
19
|
+
* export default defineConfig({
|
|
20
|
+
* plugins: [
|
|
21
|
+
* sveltekit(),
|
|
22
|
+
* stellarPWA({ prefix: 'myapp', name: 'My App' })
|
|
23
|
+
* ]
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @see {@link stellarPWA} for the main plugin factory
|
|
28
|
+
* @see {@link SWConfig} for configuration options
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Configuration options for the stellarPWA Vite plugin.
|
|
32
|
+
*/
|
|
33
|
+
export interface SWConfig {
|
|
34
|
+
/**
|
|
35
|
+
* Cache name prefix used in the service worker (e.g., `'myapp'`).
|
|
36
|
+
* Becomes part of cache names like `myapp-assets-v1` and `myapp-shell-<version>`.
|
|
37
|
+
*/
|
|
38
|
+
prefix: string;
|
|
39
|
+
/**
|
|
40
|
+
* Human-readable application name. Used in the offline fallback page title
|
|
41
|
+
* and any other user-facing SW output.
|
|
42
|
+
*/
|
|
43
|
+
name: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Vite plugin factory that generates `static/sw.js` and `asset-manifest.json`
|
|
47
|
+
* at build time.
|
|
48
|
+
*
|
|
49
|
+
* **`buildStart` hook:**
|
|
50
|
+
* - Reads the compiled SW source from stellar-engine's `dist/sw/sw.js`.
|
|
51
|
+
* - Replaces placeholder tokens (`__SW_VERSION__`, `__SW_PREFIX__`, `__SW_NAME__`)
|
|
52
|
+
* with app-specific values and a unique version stamp (base-36 timestamp).
|
|
53
|
+
* - Strips the `export {};` that TypeScript adds (SW runs as a classic script).
|
|
54
|
+
* - Writes the final `static/sw.js`.
|
|
55
|
+
*
|
|
56
|
+
* **`closeBundle` hook:**
|
|
57
|
+
* - Scans SvelteKit's immutable output directory for JS and CSS files.
|
|
58
|
+
* - Writes `asset-manifest.json` to both `static/` and the build output
|
|
59
|
+
* directory so the service worker can precache all app chunks.
|
|
60
|
+
*
|
|
61
|
+
* @param config - The {@link SWConfig} with `prefix` and `name` values.
|
|
62
|
+
* @returns A Vite plugin object with `name`, `buildStart`, and `closeBundle` hooks.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* stellarPWA({ prefix: 'myapp', name: 'My App' })
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function stellarPWA(config: SWConfig): {
|
|
70
|
+
name: string;
|
|
71
|
+
buildStart(): void;
|
|
72
|
+
closeBundle(): void;
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=vite-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../src/sw/build/vite-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAmED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ;;;;EAyE1C"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Vite plugin that generates the service worker and asset manifest
|
|
3
|
+
* at build time. Projects import this instead of maintaining their own SW logic.
|
|
4
|
+
*
|
|
5
|
+
* The plugin hooks into two Vite/Rollup lifecycle events:
|
|
6
|
+
* - **`buildStart`** — reads the compiled SW template from the stellar-engine
|
|
7
|
+
* package, patches in app-specific tokens, and writes `static/sw.js`.
|
|
8
|
+
* - **`closeBundle`** — after Rollup finishes writing chunks, scans the
|
|
9
|
+
* immutable output directory and writes `asset-manifest.json` listing
|
|
10
|
+
* all JS/CSS files for the service worker to precache.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // vite.config.ts
|
|
15
|
+
* import { sveltekit } from '@sveltejs/kit/vite';
|
|
16
|
+
* import { stellarPWA } from '@prabhask5/stellar-engine/vite';
|
|
17
|
+
* import { defineConfig } from 'vite';
|
|
18
|
+
*
|
|
19
|
+
* export default defineConfig({
|
|
20
|
+
* plugins: [
|
|
21
|
+
* sveltekit(),
|
|
22
|
+
* stellarPWA({ prefix: 'myapp', name: 'My App' })
|
|
23
|
+
* ]
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @see {@link stellarPWA} for the main plugin factory
|
|
28
|
+
* @see {@link SWConfig} for configuration options
|
|
29
|
+
*/
|
|
30
|
+
import { readFileSync, writeFileSync, readdirSync, statSync, existsSync, mkdirSync } from 'fs';
|
|
31
|
+
import { resolve, join, dirname } from 'path';
|
|
32
|
+
import { fileURLToPath } from 'url';
|
|
33
|
+
import { createRequire } from 'module';
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// FILESYSTEM HELPERS
|
|
36
|
+
// =============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Recursively collects every file path under `dir`.
|
|
39
|
+
*
|
|
40
|
+
* Used after the build to enumerate all immutable assets so they can be written
|
|
41
|
+
* into the asset manifest consumed by the service worker.
|
|
42
|
+
*
|
|
43
|
+
* @param dir - The root directory to scan.
|
|
44
|
+
* @param files - Accumulator array (used internally for recursion).
|
|
45
|
+
* @returns A flat array of absolute file paths found under `dir`.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const allFiles = getAllFiles('/path/to/_app/immutable');
|
|
50
|
+
* // => ['/path/to/_app/immutable/chunks/foo.abc123.js', ...]
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
function getAllFiles(dir, files = []) {
|
|
54
|
+
if (!existsSync(dir))
|
|
55
|
+
return files;
|
|
56
|
+
const entries = readdirSync(dir);
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
const fullPath = join(dir, entry);
|
|
59
|
+
if (statSync(fullPath).isDirectory()) {
|
|
60
|
+
getAllFiles(fullPath, files);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
files.push(fullPath);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return files;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Locates the compiled SW source (`dist/sw/sw.js`) within the installed package.
|
|
70
|
+
*
|
|
71
|
+
* Uses two resolution strategies:
|
|
72
|
+
* 1. **Relative resolution** — resolves relative to this file's compiled
|
|
73
|
+
* location in `dist/sw/build/vite-plugin.js`, navigating up to `dist/sw/sw.js`.
|
|
74
|
+
* Works for both installed packages and locally-linked development.
|
|
75
|
+
* 2. **`createRequire` fallback** — uses Node's module resolution to find
|
|
76
|
+
* the package root via `package.json`, then appends the known dist path.
|
|
77
|
+
*
|
|
78
|
+
* @returns The absolute path to the compiled `sw.js` source file.
|
|
79
|
+
*
|
|
80
|
+
* @throws {Error} If the SW source cannot be found via either strategy
|
|
81
|
+
* (will throw from the `readFileSync` call in the consumer).
|
|
82
|
+
*/
|
|
83
|
+
function findSwSource() {
|
|
84
|
+
/* Resolve relative to this file's location in dist/sw/build/vite-plugin.js */
|
|
85
|
+
const thisDir = dirname(fileURLToPath(import.meta.url));
|
|
86
|
+
const swPath = join(thisDir, '..', 'sw.js');
|
|
87
|
+
if (existsSync(swPath))
|
|
88
|
+
return swPath;
|
|
89
|
+
/* Fallback: use createRequire to resolve from the package */
|
|
90
|
+
const require = createRequire(import.meta.url);
|
|
91
|
+
const pkgDir = dirname(require.resolve('@prabhask5/stellar-engine/package.json'));
|
|
92
|
+
return join(pkgDir, 'dist', 'sw', 'sw.js');
|
|
93
|
+
}
|
|
94
|
+
// =============================================================================
|
|
95
|
+
// VITE PLUGIN
|
|
96
|
+
// =============================================================================
|
|
97
|
+
/**
|
|
98
|
+
* Vite plugin factory that generates `static/sw.js` and `asset-manifest.json`
|
|
99
|
+
* at build time.
|
|
100
|
+
*
|
|
101
|
+
* **`buildStart` hook:**
|
|
102
|
+
* - Reads the compiled SW source from stellar-engine's `dist/sw/sw.js`.
|
|
103
|
+
* - Replaces placeholder tokens (`__SW_VERSION__`, `__SW_PREFIX__`, `__SW_NAME__`)
|
|
104
|
+
* with app-specific values and a unique version stamp (base-36 timestamp).
|
|
105
|
+
* - Strips the `export {};` that TypeScript adds (SW runs as a classic script).
|
|
106
|
+
* - Writes the final `static/sw.js`.
|
|
107
|
+
*
|
|
108
|
+
* **`closeBundle` hook:**
|
|
109
|
+
* - Scans SvelteKit's immutable output directory for JS and CSS files.
|
|
110
|
+
* - Writes `asset-manifest.json` to both `static/` and the build output
|
|
111
|
+
* directory so the service worker can precache all app chunks.
|
|
112
|
+
*
|
|
113
|
+
* @param config - The {@link SWConfig} with `prefix` and `name` values.
|
|
114
|
+
* @returns A Vite plugin object with `name`, `buildStart`, and `closeBundle` hooks.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* stellarPWA({ prefix: 'myapp', name: 'My App' })
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export function stellarPWA(config) {
|
|
122
|
+
return {
|
|
123
|
+
name: 'stellar-pwa',
|
|
124
|
+
/* ── buildStart — generate sw.js from compiled source ────────── */
|
|
125
|
+
buildStart() {
|
|
126
|
+
/* Generate a unique version stamp using base-36 timestamp */
|
|
127
|
+
const version = Date.now().toString(36);
|
|
128
|
+
const swSourcePath = findSwSource();
|
|
129
|
+
let swContent = readFileSync(swSourcePath, 'utf-8');
|
|
130
|
+
/* Replace placeholder tokens with app-specific values */
|
|
131
|
+
swContent = swContent
|
|
132
|
+
.replace(/__SW_VERSION__/g, version)
|
|
133
|
+
.replace(/__SW_PREFIX__/g, config.prefix)
|
|
134
|
+
.replace(/__SW_NAME__/g, config.name);
|
|
135
|
+
/* Strip the `export {};` that tsc adds (SW runs as a script, not a module) */
|
|
136
|
+
swContent = swContent.replace(/^export\s*\{\s*\}\s*;\s*$/m, '');
|
|
137
|
+
/* Ensure static/ directory exists */
|
|
138
|
+
const staticDir = resolve('static');
|
|
139
|
+
if (!existsSync(staticDir)) {
|
|
140
|
+
mkdirSync(staticDir, { recursive: true });
|
|
141
|
+
}
|
|
142
|
+
const swPath = resolve('static/sw.js');
|
|
143
|
+
writeFileSync(swPath, swContent);
|
|
144
|
+
console.log(`[stellar-pwa] Generated sw.js (version: ${version})`);
|
|
145
|
+
},
|
|
146
|
+
/* ── closeBundle — generate asset manifest ───────────────────── */
|
|
147
|
+
closeBundle() {
|
|
148
|
+
const buildDir = resolve('.svelte-kit/output/client/_app/immutable');
|
|
149
|
+
if (!existsSync(buildDir)) {
|
|
150
|
+
console.warn('[stellar-pwa] Build directory not found, skipping manifest generation');
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
const allFiles = getAllFiles(buildDir);
|
|
155
|
+
/**
|
|
156
|
+
* Only JS and CSS are worth precaching — images/fonts are better
|
|
157
|
+
* served on-demand via the SW's cache-first strategy, keeping the
|
|
158
|
+
* manifest small and the initial precache fast.
|
|
159
|
+
*/
|
|
160
|
+
const assets = allFiles
|
|
161
|
+
.map((f) => f.replace(resolve('.svelte-kit/output/client'), ''))
|
|
162
|
+
.filter((f) => f.endsWith('.js') || f.endsWith('.css'));
|
|
163
|
+
const manifest = {
|
|
164
|
+
version: Date.now().toString(36),
|
|
165
|
+
assets
|
|
166
|
+
};
|
|
167
|
+
const manifestContent = JSON.stringify(manifest, null, 2);
|
|
168
|
+
/* Write to `static/` — available to the dev server and future builds */
|
|
169
|
+
writeFileSync(resolve('static/asset-manifest.json'), manifestContent);
|
|
170
|
+
/* Write to build output — static files are already copied before
|
|
171
|
+
* `closeBundle` runs, so the manifest must also land in the output
|
|
172
|
+
* directory for it to be served from the production build. */
|
|
173
|
+
const buildOutputPath = resolve('.svelte-kit/output/client/asset-manifest.json');
|
|
174
|
+
writeFileSync(buildOutputPath, manifestContent);
|
|
175
|
+
console.log(`[stellar-pwa] Generated asset manifest with ${assets.length} files`);
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
console.warn('[stellar-pwa] Could not generate asset manifest:', e);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=vite-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../../../src/sw/build/vite-plugin.ts"],"names":[],"mappings":"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"}
|