livedesk 0.1.621 → 0.1.623

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.
@@ -16,14 +16,85 @@
16
16
  <link rel="manifest" href="/app.webmanifest" />
17
17
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
18
18
  <link rel="icon" href="/favicon.ico" sizes="any" />
19
- <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
20
- <title>VuvoDesk — Every computer. One calm command center.</title>
21
- <script type="module" crossorigin src="/assets/index-DCjdwnVX.js"></script>
19
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
20
+ <title>VuvoDesk — Every computer. One calm command center.</title>
21
+ <style>
22
+ html, body { min-height: 100%; margin: 0; background: #f3f6f9; }
23
+ .vuvodesk-static-boot {
24
+ min-height: 100vh;
25
+ display: grid;
26
+ place-content: center;
27
+ justify-items: center;
28
+ gap: 10px;
29
+ background: #f3f6f9;
30
+ color: #111827;
31
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
32
+ }
33
+ .vuvodesk-static-boot-mark {
34
+ width: 30px;
35
+ height: 30px;
36
+ border: 3px solid rgba(15, 118, 110, .18);
37
+ border-top-color: #0f766e;
38
+ border-radius: 999px;
39
+ animation: vuvodesk-static-boot-spin .8s linear infinite;
40
+ }
41
+ .vuvodesk-static-boot strong { font-size: 15px; }
42
+ .vuvodesk-static-boot p { margin: 0; color: #667085; font-size: 12px; }
43
+ .vuvodesk-static-boot button {
44
+ min-width: 108px;
45
+ min-height: 40px;
46
+ margin-top: 4px;
47
+ border: 0;
48
+ border-radius: 10px;
49
+ background: #0f766e;
50
+ color: #ffffff;
51
+ font: inherit;
52
+ font-size: 13px;
53
+ font-weight: 700;
54
+ }
55
+ .vuvodesk-static-boot button[hidden] { display: none; }
56
+ @keyframes vuvodesk-static-boot-spin { to { transform: rotate(360deg); } }
57
+ </style>
58
+ <script type="module" crossorigin src="/assets/index-Dwc5iKP6.js"></script>
22
59
  <link rel="modulepreload" crossorigin href="/assets/icons-GaObu1Hf.js">
23
60
  <link rel="modulepreload" crossorigin href="/assets/react-BF-iFH2F.js">
24
- <link rel="stylesheet" crossorigin href="/assets/index-Dp70stjV.css">
25
- </head>
26
- <body>
27
- <div id="root"></div>
28
- </body>
29
- </html>
61
+ <link rel="stylesheet" crossorigin href="/assets/index-BPCr88xM.css">
62
+ </head>
63
+ <body>
64
+ <div id="root">
65
+ <main class="vuvodesk-static-boot" data-vuvodesk-static-boot aria-label="Starting VuvoDesk" aria-busy="true">
66
+ <span class="vuvodesk-static-boot-mark" aria-hidden="true"></span>
67
+ <strong data-vuvodesk-static-boot-title>Starting VuvoDesk</strong>
68
+ <p data-vuvodesk-static-boot-detail>Loading the current app...</p>
69
+ <button type="button" data-vuvodesk-static-boot-retry hidden>Try again</button>
70
+ </main>
71
+ </div>
72
+ <script>
73
+ (() => {
74
+ const boot = document.querySelector('[data-vuvodesk-static-boot]');
75
+ const title = document.querySelector('[data-vuvodesk-static-boot-title]');
76
+ const detail = document.querySelector('[data-vuvodesk-static-boot-detail]');
77
+ const retry = document.querySelector('[data-vuvodesk-static-boot-retry]');
78
+ const revealFailure = () => {
79
+ if (!boot || !boot.isConnected) return;
80
+ boot.setAttribute('aria-busy', 'false');
81
+ const mark = boot.querySelector('.vuvodesk-static-boot-mark');
82
+ if (mark) mark.remove();
83
+ if (title) title.textContent = 'VuvoDesk could not start';
84
+ if (detail) detail.textContent = 'The app files did not start. Check the connection, then try again.';
85
+ if (retry) retry.hidden = false;
86
+ };
87
+ window.__vuvodeskStaticBootTimer = window.setTimeout(revealFailure, 12_000);
88
+ window.addEventListener('error', event => {
89
+ if (event instanceof ErrorEvent || event.target instanceof HTMLScriptElement) revealFailure();
90
+ }, true);
91
+ window.addEventListener('unhandledrejection', revealFailure, { once: true });
92
+ retry?.addEventListener('click', () => {
93
+ const url = new URL(window.location.href);
94
+ url.searchParams.set('startup-retry', `static-${Date.now()}`);
95
+ window.location.replace(url.toString());
96
+ });
97
+ })();
98
+ </script>
99
+ </body>
100
+ </html>
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "kind": "livedesk-production-web-source-evidence",
4
- "generatedAt": "2026-08-26T05:11:54.641Z",
5
- "pwaRelease": "0.1.620",
6
- "sourceHash": "a70e0b8fa1501726e21e9057e02a89e5f6f8c27c05fc77931db157588073b2fc",
7
- "sourceFileCount": 169,
8
- "sourceBytes": 2431888,
4
+ "generatedAt": "2026-08-26T06:55:46.320Z",
5
+ "pwaRelease": "0.1.623",
6
+ "sourceHash": "218c9dff9cfb456ae561bd71e974783215ae7923d1a7efd6fc99fb60b6e85735",
7
+ "sourceFileCount": 172,
8
+ "sourceBytes": 2449606,
9
9
  "viteEnvironmentHash": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
10
- "outputHash": "4ce96a59cda36c77debfb4d564a1fdd92b27037cd3a05cc933db27244908b253",
10
+ "outputHash": "0dee098979545940f6acce40b0310bdaa8a7dec144e9d18f56b7640cb83dfe13",
11
11
  "outputFileCount": 20,
12
- "outputBytes": 1719005,
12
+ "outputBytes": 1726582,
13
13
  "outputManifest": [
14
14
  {
15
15
  "path": "_headers",
@@ -19,7 +19,7 @@
19
19
  {
20
20
  "path": "app.webmanifest",
21
21
  "bytes": 841,
22
- "sha256": "ad4384b7616e79ab76a67ecd36a2f4d8934686bb118152cc1cbec476de1c323a"
22
+ "sha256": "73cd747ca6bd7d9cd95dc71b2c29ff4ff9f8322eb9d596948b2586e6e42efe0d"
23
23
  },
24
24
  {
25
25
  "path": "apple-touch-icon.png",
@@ -32,14 +32,14 @@
32
32
  "sha256": "dca8729710d4b1654d2c0c9882f617d345ea4ff38bf6b99a9bb21a403fa6edb2"
33
33
  },
34
34
  {
35
- "path": "assets/index-DCjdwnVX.js",
36
- "bytes": 224826,
37
- "sha256": "eb26e0c953c1f0b5eea277aa60becf2a7bc50ae6f7c099edefdb09f65504e107"
35
+ "path": "assets/index-BPCr88xM.css",
36
+ "bytes": 152132,
37
+ "sha256": "fb18a3a7d256405f30dd0c596af05929f3377bcae8bd7c13a6263e017cd0a94d"
38
38
  },
39
39
  {
40
- "path": "assets/index-Dp70stjV.css",
41
- "bytes": 151758,
42
- "sha256": "21cdefaa2dcaab0154966ce7d4baa8a8a11f934a1a27acc66e7385be4c2fada2"
40
+ "path": "assets/index-Dwc5iKP6.js",
41
+ "bytes": 228869,
42
+ "sha256": "96f2e65726f67132012e1f2f242e30e17399d199634371ec55835000b6ad6dfb"
43
43
  },
44
44
  {
45
45
  "path": "assets/LiveDeskApp-ChGXEkMA.css",
@@ -47,9 +47,9 @@
47
47
  "sha256": "7a0fd24bdd85c2df6493ef78c5fb3dc92a1b32bb4adaf1092728c11fc9420163"
48
48
  },
49
49
  {
50
- "path": "assets/LiveDeskApp-DIq0K1le.js",
51
- "bytes": 827763,
52
- "sha256": "7328d21e128448586ab4d6d105dfdc62204965db1566598ca5a757ec0cc5159e"
50
+ "path": "assets/LiveDeskApp-DttTf-QD.js",
51
+ "bytes": 827762,
52
+ "sha256": "c5162685f931083abc650b979bc99e1a5f7343379cfa8e87d7420815617269f6"
53
53
  },
54
54
  {
55
55
  "path": "assets/react-BF-iFH2F.js",
@@ -83,8 +83,8 @@
83
83
  },
84
84
  {
85
85
  "path": "index.html",
86
- "bytes": 1684,
87
- "sha256": "45d789ee4bfc90377651f065f2cbefcc980ed1541c84b88596e404addb8ee156"
86
+ "bytes": 4845,
87
+ "sha256": "41ae986d083b132c0128e895c75d2aa3df04ddd688ba026d71460ee87e198859"
88
88
  },
89
89
  {
90
90
  "path": "offline.html",
@@ -109,7 +109,7 @@
109
109
  {
110
110
  "path": "sw.js",
111
111
  "bytes": 1460,
112
- "sha256": "b14eb402c47d7e6ae47bbce765f4844ae5885cfff8da8955387aa68796b87bf7"
112
+ "sha256": "9844c31263a3d5974e785074e0484de98b4d459e7100438fa11ca8e2227c95ff"
113
113
  }
114
114
  ]
115
115
  }
package/web/dist/sw.js CHANGED
@@ -1,4 +1,4 @@
1
- const PWA_RELEASE = '0.1.620';
1
+ const PWA_RELEASE = '0.1.623';
2
2
  const OFFLINE_CACHE = `livedesk-pwa-offline-${PWA_RELEASE}`;
3
3
  const OFFLINE_URL = '/offline.html';
4
4