@auxilium/datalynk-client 1.5.1 โ†’ 1.6.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.
@@ -48,7 +48,7 @@ self.addEventListener('activate', (event) => {
48
48
 
49
49
  const settings = await getSettings();
50
50
  if(settings?.url) {
51
- api = new Api(settings.url, { ...(settings.options || {}), serviceWorker: false });
51
+ api = new Api(settings.url, { ...(settings.options || {}), serviceWorker: false, replayOfflineQueue: false });
52
52
  if(settings.token) api.token = settings.token;
53
53
  }
54
54
  })());
@@ -117,12 +117,17 @@ self.addEventListener('fetch', (event) => {
117
117
 
118
118
  self.addEventListener('message', async (event) => {
119
119
  if(event.data?.options) { // ๐Ÿ”ง Update settings
120
- api = new Api(event.data.options.url, { ...event.data.options, serviceWorker: false });
120
+ api = new Api(event.data.options.url, { ...event.data.options, serviceWorker: false, replayOfflineQueue: false });
121
121
  await setSettings(event.data.options);
122
- } else if(event.data?.token) { // ๐Ÿ”‘ Update token
123
- if(api) api.token = event.data.token;
124
- await setSettings({token: event.data.token});
125
- } else if(event.data?.clearCache) { // ๐Ÿงน Clear cache (debugging)
122
+ }
123
+ // `null` is an intentional token update during logout/expiry, so check for the
124
+ // property rather than truthiness.
125
+ if(event.data && Object.prototype.hasOwnProperty.call(event.data, 'token')) { // ๐Ÿ”‘ Update token
126
+ const token = event.data.token ?? null;
127
+ if(api) api.token = token;
128
+ await setSettings({token});
129
+ }
130
+ if(event.data?.clearCache) { // ๐Ÿงน Clear cache
126
131
  await caches.delete(CACHE_NAME);
127
132
  }
128
133
  });
package/dist/socket.d.ts CHANGED
@@ -43,6 +43,10 @@ export type WebRTCEvent = {
43
43
  export type SocketOptions = {
44
44
  /** Set connection URL or disable with false */
45
45
  url?: string | false;
46
+ /** Use one-time socket tickets only when explicitly enabled by a chat-capable host. */
47
+ authentication?: 'token' | 'ticket';
48
+ /** Optional realm used by backward-compatible token authentication. */
49
+ realm?: string;
46
50
  };
47
51
  /** Callback shape */
48
52
  export type SocketListener<T = SocketEvent<any>> = (event: T) => any;
@@ -55,6 +59,7 @@ export declare class Socket {
55
59
  private listeners;
56
60
  private retry?;
57
61
  private socket?;
62
+ private connectGeneration;
58
63
  open: boolean;
59
64
  constructor(api: Api, options?: SocketOptions);
60
65
  /**
@@ -76,7 +81,14 @@ export declare class Socket {
76
81
  * Connect socket client to socket server
77
82
  * @param {number} timeout Retry to connect every x seconds
78
83
  */
79
- connect(timeout?: number): void;
84
+ connect(timeout?: number): void | Promise<void>;
85
+ /**
86
+ * Ticket-authenticated connection path, used only once a chat-capable host switches
87
+ * this instance to `authentication: 'ticket'` (see Api.openChat). Entirely separate
88
+ * from the token path above so existing non-chat consumers are never affected.
89
+ */
90
+ private connectWithTicket;
91
+ private scheduleReconnect;
80
92
  /**
81
93
  * Send data to socket server
82
94
  *
@@ -91,5 +103,6 @@ export declare class Socket {
91
103
  * @return {Unsubscribe} Run returned function to unsubscribe callback
92
104
  */
93
105
  sliceEvents(slice: number | number[] | string | string[], callback: SocketListener<SocketEventSlice>): Unsubscribe;
106
+ private normalizeUrl;
94
107
  }
95
108
  //# sourceMappingURL=socket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAA;CACP,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GACvC,CAAC;IAAC,SAAS,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,GAC7C;IAAC,YAAY,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,GAC/C;IAAC,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,yBAAyB,CAAA;KAAC,CAAA;CAAC,GACtF;IAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,yBAAyB,CAAA;KAAC,CAAA;CAAC,CAAC,CAAC;AAE1F,yBAAyB;AACzB,MAAM,MAAM,aAAa,GAAG;IAC3B,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACrB,CAAA;AAED,qBAAqB;AACrB,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC;AACrE,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,iCAAiC;AACjC,qBAAa,MAAM;IAON,OAAO,CAAC,QAAQ,CAAC,GAAG;aAAuB,OAAO,EAAE,aAAa;IAN7E,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,KAAK,CAAC,CAAM;IACpB,OAAO,CAAC,MAAM,CAAC,CAAY;IAE3B,IAAI,UAAS;gBAEgB,GAAG,EAAE,GAAG,EAAkB,OAAO,GAAE,aAAkB;IAWlF;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,GAAG,WAAW;IAOnE;;OAEG;IACH,KAAK;IASL;;;OAGG;IACH,OAAO,CAAC,OAAO,GAAE,MAAW;IAgC5B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,GAAG;IAKjB;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC,GAAG,WAAW;CAUlH"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAA;CACP,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GACvC,CAAC;IAAC,SAAS,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,GAC7C;IAAC,YAAY,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,GAC/C;IAAC,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,yBAAyB,CAAA;KAAC,CAAA;CAAC,GACtF;IAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,yBAAyB,CAAA;KAAC,CAAA;CAAC,CAAC,CAAC;AAE1F,yBAAyB;AACzB,MAAM,MAAM,aAAa,GAAG;IAC3B,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACpC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAA;AAED,qBAAqB;AACrB,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC;AACrE,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,iCAAiC;AACjC,qBAAa,MAAM;IAQN,OAAO,CAAC,QAAQ,CAAC,GAAG;aAAuB,OAAO,EAAE,aAAa;IAP7E,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,KAAK,CAAC,CAAM;IACpB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAE9B,IAAI,UAAS;gBAEgB,GAAG,EAAE,GAAG,EAAkB,OAAO,GAAE,aAAkB;IAWlF;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,GAAG,WAAW;IAOnE;;OAEG;IACH,KAAK;IAUL;;;OAGG;IACH,OAAO,CAAC,OAAO,GAAE,MAAW;IAiC5B;;;;OAIG;YACW,iBAAiB;IA6D/B,OAAO,CAAC,iBAAiB;IASzB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,GAAG;IAKjB;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC,GAAG,WAAW;IAWlH,OAAO,CAAC,YAAY;CAUpB"}
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.5.1",
5
+ "version": "1.6.0",
6
6
  "author": "Auxilium Group <devops@auxiliumgroup.com>",
7
7
  "private": false,
8
8
  "main": "./dist/index.cjs",
@@ -13,13 +13,18 @@
13
13
  "types": "./dist/index.d.ts",
14
14
  "import": "./dist/index.mjs",
15
15
  "require": "./dist/index.cjs"
16
+ },
17
+ "./chat": {
18
+ "types": "./dist/chat-entry.d.ts",
19
+ "import": "./dist/chat.mjs",
20
+ "require": "./dist/chat.cjs"
16
21
  }
17
22
  },
18
23
  "bin": {
19
24
  "datalynk-models": "./bin/datalynk-models.mjs"
20
25
  },
21
26
  "scripts": {
22
- "build": "tsc && npx vite build",
27
+ "build": "tsc && npx vite build && npx vite build --config vite.chat.config.ts",
23
28
  "postbuild": "node -e \"const fs=require('fs');fs.cpSync('src/service.worker.mjs','dist/service.worker.mjs')\"",
24
29
  "test": "npm run build && node --test test/*.test.mjs",
25
30
  "datalynk-models": "node --no-warnings ./bin/datalynk-models.mjs",