@auxilium/datalynk-client 1.6.1 โ†’ 1.6.2

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 CHANGED
@@ -289,7 +289,8 @@ api.pwa.prompt();
289
289
 
290
290
  #### Static assets
291
291
  Upload the [service worker](https://datalynk-client.primary.auxilium.world/dist/service.worker.mjs) `dist/service.worker.mjs` to the *root* directory of the server
292
- to cache all files for use offline
292
+ to cache app files for use offline. Replace `/service.worker.mjs` on every client release; updating the library alone does not replace the server's copy.
293
+ Serve the worker with `Cache-Control: no-cache` so browsers can detect changes. The client checks for updates on startup and when it comes back online. A device must reconnect to receive a new worker.
293
294
  ```ts
294
295
  const api = new Api(`https://${spoke}.auxiliumgroup.com`, {
295
296
  serviceWorker: 'https://.../service.worker.mjs', // Shouldnt be needed but can be overriden
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -3410,7 +3410,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3410
3410
  } });
3411
3411
  }
3412
3412
  }
3413
- const version = "1.6.1";
3413
+ const version = "1.6.2";
3414
3414
  class WebRtc {
3415
3415
  constructor(api) {
3416
3416
  __publicField(this, "ice");
@@ -4095,25 +4095,40 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4095
4095
  (_b = this.options.offline) == null ? void 0 : _b.forEach((id) => this.slice(id));
4096
4096
  if (this.options.serviceWorker && typeof navigator["serviceWorker"] != "undefined") {
4097
4097
  (async () => {
4098
- const init = () => {
4099
- var _a2, _b2;
4100
- (_a2 = navigator.serviceWorker.controller) == null ? void 0 : _a2.postMessage({ options: { ...this.options, url: this.url } });
4101
- this.token$.subscribe((token) => {
4102
- var _a3;
4103
- return (_a3 = navigator.serviceWorker.controller) == null ? void 0 : _a3.postMessage({ token });
4104
- });
4098
+ let initialized = false;
4099
+ const sendAssets = () => {
4100
+ var _a2;
4105
4101
  const assets = [
4106
4102
  location.pathname,
4107
4103
  ...Array.from(document.querySelectorAll('script[src], link[rel="stylesheet"][href], link[rel="icon"][href], img[src]')).map((element) => element.getAttribute("src") || element.getAttribute("href") || ""),
4108
4104
  ...performance.getEntriesByType("resource").filter((entry) => ["script", "link", "css", "img", "font"].includes(entry.initiatorType)).map((entry) => entry.name),
4109
4105
  ...this.options.offlineAssets || []
4110
4106
  ].filter(Boolean).map((value) => new URL(value, location.href).href);
4111
- (_b2 = navigator.serviceWorker.controller) == null ? void 0 : _b2.postMessage({ offlineAssets: assets });
4107
+ (_a2 = navigator.serviceWorker.controller) == null ? void 0 : _a2.postMessage({ offlineAssets: assets });
4112
4108
  };
4113
- await navigator.serviceWorker.getRegistration(this.options.serviceWorker).then((reg) => reg ?? navigator.serviceWorker.register(this.options.serviceWorker, { scope: "/", type: "module" }));
4109
+ const init = () => {
4110
+ var _a2;
4111
+ (_a2 = navigator.serviceWorker.controller) == null ? void 0 : _a2.postMessage({ options: { ...this.options, url: this.url } });
4112
+ if (!initialized) {
4113
+ initialized = true;
4114
+ this.token$.subscribe((token) => {
4115
+ var _a3;
4116
+ return (_a3 = navigator.serviceWorker.controller) == null ? void 0 : _a3.postMessage({ token });
4117
+ });
4118
+ }
4119
+ sendAssets();
4120
+ };
4121
+ const registration = await navigator.serviceWorker.getRegistration(this.options.serviceWorker).then((reg) => reg ?? navigator.serviceWorker.register(this.options.serviceWorker, { scope: "/", type: "module" }));
4122
+ navigator.serviceWorker.addEventListener("controllerchange", () => {
4123
+ if (navigator.serviceWorker.controller) init();
4124
+ });
4114
4125
  navigator.serviceWorker.ready.then(() => {
4115
- if (navigator.serviceWorker.controller) navigator.serviceWorker.ready.then(() => init());
4116
- else navigator.serviceWorker.addEventListener("controllerchange", () => init(), { once: true });
4126
+ if (navigator.serviceWorker.controller) init();
4127
+ });
4128
+ registration.update().catch((error) => console.warn("Service worker update check failed", error));
4129
+ window.addEventListener("online", () => {
4130
+ registration.update().catch((error) => console.warn("Service worker update check failed", error));
4131
+ if (navigator.serviceWorker.controller) sendAssets();
4117
4132
  });
4118
4133
  })();
4119
4134
  }
package/dist/index.mjs CHANGED
@@ -3406,7 +3406,7 @@ class Superuser {
3406
3406
  } });
3407
3407
  }
3408
3408
  }
3409
- const version = "1.6.1";
3409
+ const version = "1.6.2";
3410
3410
  class WebRtc {
3411
3411
  constructor(api) {
3412
3412
  __publicField(this, "ice");
@@ -4091,25 +4091,40 @@ const _Api = class _Api {
4091
4091
  (_b = this.options.offline) == null ? void 0 : _b.forEach((id) => this.slice(id));
4092
4092
  if (this.options.serviceWorker && typeof navigator["serviceWorker"] != "undefined") {
4093
4093
  (async () => {
4094
- const init = () => {
4095
- var _a2, _b2;
4096
- (_a2 = navigator.serviceWorker.controller) == null ? void 0 : _a2.postMessage({ options: { ...this.options, url: this.url } });
4097
- this.token$.subscribe((token) => {
4098
- var _a3;
4099
- return (_a3 = navigator.serviceWorker.controller) == null ? void 0 : _a3.postMessage({ token });
4100
- });
4094
+ let initialized = false;
4095
+ const sendAssets = () => {
4096
+ var _a2;
4101
4097
  const assets = [
4102
4098
  location.pathname,
4103
4099
  ...Array.from(document.querySelectorAll('script[src], link[rel="stylesheet"][href], link[rel="icon"][href], img[src]')).map((element) => element.getAttribute("src") || element.getAttribute("href") || ""),
4104
4100
  ...performance.getEntriesByType("resource").filter((entry) => ["script", "link", "css", "img", "font"].includes(entry.initiatorType)).map((entry) => entry.name),
4105
4101
  ...this.options.offlineAssets || []
4106
4102
  ].filter(Boolean).map((value) => new URL(value, location.href).href);
4107
- (_b2 = navigator.serviceWorker.controller) == null ? void 0 : _b2.postMessage({ offlineAssets: assets });
4103
+ (_a2 = navigator.serviceWorker.controller) == null ? void 0 : _a2.postMessage({ offlineAssets: assets });
4108
4104
  };
4109
- await navigator.serviceWorker.getRegistration(this.options.serviceWorker).then((reg) => reg ?? navigator.serviceWorker.register(this.options.serviceWorker, { scope: "/", type: "module" }));
4105
+ const init = () => {
4106
+ var _a2;
4107
+ (_a2 = navigator.serviceWorker.controller) == null ? void 0 : _a2.postMessage({ options: { ...this.options, url: this.url } });
4108
+ if (!initialized) {
4109
+ initialized = true;
4110
+ this.token$.subscribe((token) => {
4111
+ var _a3;
4112
+ return (_a3 = navigator.serviceWorker.controller) == null ? void 0 : _a3.postMessage({ token });
4113
+ });
4114
+ }
4115
+ sendAssets();
4116
+ };
4117
+ const registration = await navigator.serviceWorker.getRegistration(this.options.serviceWorker).then((reg) => reg ?? navigator.serviceWorker.register(this.options.serviceWorker, { scope: "/", type: "module" }));
4118
+ navigator.serviceWorker.addEventListener("controllerchange", () => {
4119
+ if (navigator.serviceWorker.controller) init();
4120
+ });
4110
4121
  navigator.serviceWorker.ready.then(() => {
4111
- if (navigator.serviceWorker.controller) navigator.serviceWorker.ready.then(() => init());
4112
- else navigator.serviceWorker.addEventListener("controllerchange", () => init(), { once: true });
4122
+ if (navigator.serviceWorker.controller) init();
4123
+ });
4124
+ registration.update().catch((error) => console.warn("Service worker update check failed", error));
4125
+ window.addEventListener("online", () => {
4126
+ registration.update().catch((error) => console.warn("Service worker update check failed", error));
4127
+ if (navigator.serviceWorker.controller) sendAssets();
4113
4128
  });
4114
4129
  })();
4115
4130
  }
@@ -1,11 +1,9 @@
1
- import {Api} from 'https://datalynk-client.primary.auxilium.world/dist/index.mjs';
2
-
3
- let api = null;
4
1
  const CACHE_NAME = 'datalynk';
5
2
  const STATE_CACHE = 'datalynk-app-state';
6
3
  let ONLINE = true;
7
4
  const netChan = 'BroadcastChannel' in self ? new BroadcastChannel('sw-net') : null;
8
5
  let updateQueue = Promise.resolve();
6
+ let settingsQueue = Promise.resolve();
9
7
 
10
8
  function safeAsset(url) {
11
9
  return ['http:', 'https:'].includes(url.protocol)
@@ -13,6 +11,25 @@ function safeAsset(url) {
13
11
  && ![...url.searchParams.keys()].some(key => /token|auth|secret|key|session|password/i.test(key));
14
12
  }
15
13
 
14
+ function assetKey(url, destination) {
15
+ const key = new URL(url);
16
+ if(destination !== 'navigate' && destination !== 'json') key.searchParams.delete('bust');
17
+ if(destination === 'navigate') key.search = '';
18
+ return key.href;
19
+ }
20
+
21
+ async function savedAsset(cache, request, destination) {
22
+ const key = assetKey(request.url || request, destination);
23
+ return await cache.match(key) || (destination !== 'json' && await cache.match(key, {ignoreSearch: true}));
24
+ }
25
+
26
+ async function removeOtherVersions(cache, key) {
27
+ const current = new URL(key);
28
+ for(const old of await cache.keys())
29
+ if(old.url !== key && new URL(old.url).origin === current.origin && new URL(old.url).pathname === current.pathname)
30
+ await cache.delete(old);
31
+ }
32
+
16
33
  async function activeCacheName() {
17
34
  const state = await caches.open(STATE_CACHE);
18
35
  const response = await state.match(self.location.origin + '/datalynk-app-active');
@@ -47,17 +64,22 @@ function updateAppAssets(values) {
47
64
  }
48
65
  for(const url of urls) {
49
66
  const response = await fetch(url, {mode: new URL(url).origin === self.location.origin ? 'same-origin' : 'no-cors'});
50
- if((!response.ok && response.type !== 'opaque') || response.headers.has('set-cookie')
67
+ if((response.status !== 200 && response.type !== 'opaque') || response.headers.has('set-cookie')
51
68
  || /private|no-store/i.test(response.headers.get('cache-control') || '')
52
69
  || (/\.json$/i.test(new URL(url).pathname) && !/\bpublic\b/i.test(response.headers.get('cache-control') || ''))
53
70
  || (/\.(?:m?js|css)(?:$|\?)/i.test(url) && /text\/html/i.test(response.headers.get('content-type') || '')))
54
71
  throw new Error('Offline app update incomplete: ' + url);
55
- if(response.type === 'opaque' && await previous.match(url)) continue;
56
- await next.put(url, response);
72
+ const destination = /\.json$/i.test(new URL(url).pathname) ? 'json' : 'asset';
73
+ if(response.type === 'opaque' && await savedAsset(previous, url, destination)) continue;
74
+ const key = assetKey(url, destination);
75
+ await next.put(key, response);
76
+ await removeOtherVersions(next, key);
57
77
  }
58
78
  for(const request of await previous.keys()) {
59
79
  if(new URL(request.url).pathname === new URL(urls[0]).pathname
60
80
  && new URL(request.url).origin === new URL(urls[0]).origin) continue;
81
+ if(urls.some(url => new URL(url).origin === new URL(request.url).origin
82
+ && new URL(url).pathname === new URL(request.url).pathname)) continue;
61
83
  if(await next.match(request)) continue;
62
84
  const saved = await previous.match(request);
63
85
  if(saved && safeAsset(new URL(request.url))) await next.put(request, saved);
@@ -104,6 +126,11 @@ async function setSettings(settings) {
104
126
  return newSettings;
105
127
  }
106
128
 
129
+ function saveSettings(settings) {
130
+ settingsQueue = settingsQueue.catch(() => {}).then(() => setSettings(settings));
131
+ return settingsQueue;
132
+ }
133
+
107
134
  self.addEventListener('install', (event) => {
108
135
  event.waitUntil(self.skipWaiting());
109
136
  });
@@ -128,11 +155,6 @@ self.addEventListener('activate', (event) => {
128
155
  .map((k) => caches.delete(k))
129
156
  );
130
157
 
131
- const settings = await getSettings();
132
- if(settings?.url) {
133
- api = new Api(settings.url, { ...(settings.options || {}), serviceWorker: false, replayOfflineQueue: false });
134
- if(settings.token) api.token = settings.token;
135
- }
136
158
  })());
137
159
  });
138
160
 
@@ -164,37 +186,35 @@ self.addEventListener('fetch', (event) => {
164
186
  const staticJson = url.origin === self.location.origin && /\.json$/i.test(url.pathname) && !request.destination;
165
187
  const cacheable = (appFile || staticJson) && safeAsset(url) && !request.headers.has('authorization')
166
188
  && !request.headers.has('range') && (url.origin === self.location.origin || request.destination !== 'image');
189
+ const destination = request.mode === 'navigate' ? 'navigate' : staticJson ? 'json' : 'asset';
167
190
  try {
168
191
  const networkResponse = await fetch(request);
169
192
  broadcastStatus(true);
170
193
  if((networkResponse.status === 404 || networkResponse.status >= 500) && cacheable) {
171
- const cached = await (await activeCache()).match(request, {ignoreSearch: request.mode === 'navigate'});
194
+ const cached = await savedAsset(await activeCache(), request, destination);
172
195
  if(cached) { broadcastStatus(false); return cached; }
173
196
  }
174
- const isCacheable = networkResponse.ok || networkResponse.type === 'opaque';
175
- const saved = cacheable && await cache.match(request, {ignoreSearch: request.mode === 'navigate'});
176
- if(isCacheable && cacheable && (networkResponse.ok || !saved)
177
- && (!staticJson || /\bpublic\b/i.test(networkResponse.headers.get('cache-control') || ''))
178
- && !networkResponse.headers.has('set-cookie')
179
- && !/private|no-store/i.test(networkResponse.headers.get('cache-control') || '')
180
- && !(/\.(?:m?js|css)(?:$|\?)/i.test(url.href) && /text\/html/i.test(networkResponse.headers.get('content-type') || ''))) {
197
+ const isCacheable = networkResponse.status === 200 || networkResponse.type === 'opaque';
198
+ const saved = cacheable && await savedAsset(cache, request, destination);
199
+ if(isCacheable && cacheable && (networkResponse.status === 200 || !saved)
200
+ && (!staticJson || /\bpublic\b/i.test(networkResponse.headers.get('cache-control') || ''))
201
+ && !networkResponse.headers.has('set-cookie')
202
+ && !/private|no-store/i.test(networkResponse.headers.get('cache-control') || '')
203
+ && !(/\.(?:m?js|css)(?:$|\?)/i.test(url.href) && /text\/html/i.test(networkResponse.headers.get('content-type') || ''))) {
181
204
  const isOpaqueNav = networkResponse.type === 'opaque' && request.mode === 'navigate';
182
205
  if (!isOpaqueNav) {
183
206
  event.waitUntil((async () => {
184
207
  const current = await activeCache();
185
- const key = request.mode === 'navigate' ? url.origin + url.pathname : request;
208
+ const key = assetKey(url.href, destination);
186
209
  await current.put(key, networkResponse.clone());
187
- if(request.mode === 'navigate')
188
- for(const old of await current.keys())
189
- if(old.url !== key && new URL(old.url).origin === url.origin && new URL(old.url).pathname === url.pathname)
190
- await current.delete(old);
191
- })());
210
+ if(destination !== 'json') await removeOtherVersions(current, key);
211
+ })().catch(error => console.warn('Unable to save offline app file', error)));
192
212
  }
193
213
  }
194
214
  return networkResponse;
195
215
  } catch {
196
216
  broadcastStatus(false);
197
- const cached = cacheable && await (await activeCache()).match(request, {ignoreSearch: request.mode === 'navigate'});
217
+ const cached = cacheable && await savedAsset(await activeCache(), request, destination);
198
218
  if(cached) return cached;
199
219
  if(cacheable && request.mode === 'navigate') {
200
220
  const fallback = (await cache.match('/')) || (await cache.match('/index.html'));
@@ -215,15 +235,13 @@ self.addEventListener('message', async (event) => {
215
235
  event.waitUntil(updateAppAssets(event.data.offlineAssets));
216
236
  }
217
237
  if(event.data?.options) { // ๐Ÿ”ง Update settings
218
- api = new Api(event.data.options.url, { ...event.data.options, serviceWorker: false, replayOfflineQueue: false });
219
- await setSettings(event.data.options);
238
+ event.waitUntil(saveSettings(event.data.options));
220
239
  }
221
240
  // `null` is an intentional token update during logout/expiry, so check for the
222
241
  // property rather than truthiness.
223
242
  if(event.data && Object.prototype.hasOwnProperty.call(event.data, 'token')) { // ๐Ÿ”‘ Update token
224
243
  const token = event.data.token ?? null;
225
- if(api) api.token = token;
226
- await setSettings({token});
244
+ event.waitUntil(saveSettings({token}));
227
245
  }
228
246
  if(event.data?.clearCache) { // ๐Ÿงน Clear cache
229
247
  await caches.delete(await activeCacheName());
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@auxilium/datalynk-client",
3
3
  "description": "Datalynk client library",
4
4
  "repository": "https://gitlab.auxiliumgroup.com/auxilium/datalynk/datalynk-client",
5
- "version": "1.6.1",
5
+ "version": "1.6.2",
6
6
  "author": "Auxilium Group <devops@auxiliumgroup.com>",
7
7
  "private": false,
8
8
  "main": "./dist/index.cjs",