@polyguard/sdk 1.0.9 → 1.1.1

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/dist/sdk.js CHANGED
@@ -11037,12 +11037,16 @@
11037
11037
  return new Promise(async (resolve, reject) => {
11038
11038
  let ws = null;
11039
11039
  let closed = false;
11040
- function showError(msg) {
11040
+ function returnError(msg, score = "OFFLINE") {
11041
11041
  const errDiv = modal.querySelector("#polyguard-error");
11042
11042
  if (errDiv) {
11043
11043
  errDiv.textContent = msg;
11044
11044
  errDiv.style.display = "block";
11045
11045
  }
11046
+ setTimeout(() => {
11047
+ cleanup();
11048
+ resolve({ presence: { score, msg } });
11049
+ }, 1250);
11046
11050
  }
11047
11051
  function clearError() {
11048
11052
  const errDiv = modal.querySelector("#polyguard-error");
@@ -11065,17 +11069,24 @@
11065
11069
  body: JSON.stringify({ requiredProofs: this.requiredProofs, scanType: this.scanType })
11066
11070
  });
11067
11071
  if (!ticketRes.ok) {
11068
- showError("Failed to get ticket");
11072
+ returnError("Failed to get ticket");
11069
11073
  return;
11070
11074
  }
11071
11075
  const ticketData = await ticketRes.json();
11072
11076
  const newTicket = ticketData.ticket;
11073
11077
  if (!newTicket) {
11074
- showError("No ticket returned from server");
11078
+ returnError("No ticket returned from server");
11075
11079
  return;
11076
11080
  }
11077
11081
  const wsUrl = `${wsProtocol}://${this.apiServer}/v2/realtime/${newTicket}`;
11078
- ws = new reconnecting_websocket_mjs_default(wsUrl);
11082
+ const options = {
11083
+ maxRetries: 10,
11084
+ minTimeout: 1e3,
11085
+ maxTimeout: 1e4,
11086
+ reconnectionDelay: 1e3,
11087
+ reconnectionDelayGrowFactor: 1.5
11088
+ };
11089
+ ws = new reconnecting_websocket_mjs_default(wsUrl, options);
11079
11090
  ws.addEventListener("message", (event) => {
11080
11091
  try {
11081
11092
  const data = JSON.parse(event.data);
@@ -11118,32 +11129,36 @@
11118
11129
  return;
11119
11130
  } else if (data && data.jwt) {
11120
11131
  cleanup();
11121
- resolve(data.jwt);
11122
11132
  ws.close();
11133
+ resolve(data.jwt);
11123
11134
  return;
11124
11135
  } else if (data && data.status) {
11125
11136
  const qrDiv2 = modal.querySelector("#polyguard-qr");
11126
11137
  if (!qrDiv2) return;
11127
11138
  qrDiv2.innerHTML = LOADING_SPINNER;
11128
11139
  return;
11140
+ } else if (data && data.error) {
11141
+ returnError(data.error);
11142
+ ws.close();
11143
+ return;
11129
11144
  } else {
11130
11145
  console.error("Unknown message type from server", data);
11131
- showError(`Unknown message type from server`);
11146
+ returnError(`Unknown message type from server`);
11132
11147
  }
11133
11148
  } catch (e) {
11134
11149
  console.error("Invalid message format from server", e);
11135
- showError("Invalid message format from server");
11150
+ returnError("Invalid message format from server");
11136
11151
  }
11137
11152
  });
11138
11153
  ws.addEventListener("error", () => {
11139
11154
  console.error("WebSocket error");
11140
- showError("WebSocket error");
11155
+ returnError("WebSocket error");
11141
11156
  });
11142
11157
  ws.addEventListener("close", () => {
11143
11158
  if (!closed) cleanup();
11144
11159
  });
11145
11160
  } catch (err) {
11146
- showError("Failed to connect to WebSocket");
11161
+ returnError("Failed to connect to WebSocket");
11147
11162
  }
11148
11163
  });
11149
11164
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyguard/sdk",
3
- "version": "1.0.9",
3
+ "version": "1.1.1",
4
4
  "main": "dist/sdk.js",
5
5
  "module": "dist/sdk.js",
6
6
  "browser": "dist/sdk.js",
@@ -106,12 +106,16 @@ export class PolyguardWebsocketClientImpl {
106
106
  let ws = null;
107
107
  let closed = false;
108
108
 
109
- function showError(msg) {
110
- const errDiv = modal.querySelector('#polyguard-error');
111
- if (errDiv) {
112
- errDiv.textContent = msg;
113
- errDiv.style.display = 'block';
114
- }
109
+ function returnError(msg, score = "OFFLINE") {
110
+ const errDiv = modal.querySelector('#polyguard-error');
111
+ if (errDiv) {
112
+ errDiv.textContent = msg;
113
+ errDiv.style.display = 'block';
114
+ }
115
+ setTimeout(() => {
116
+ cleanup();
117
+ resolve({presence: { score: score, msg: msg }});
118
+ }, 1250);
115
119
  }
116
120
  function clearError() {
117
121
  const errDiv = modal.querySelector('#polyguard-error');
@@ -139,17 +143,24 @@ export class PolyguardWebsocketClientImpl {
139
143
  body: JSON.stringify({ requiredProofs: this.requiredProofs, scanType: this.scanType }),
140
144
  });
141
145
  if (!ticketRes.ok) {
142
- showError('Failed to get ticket');
146
+ returnError('Failed to get ticket');
143
147
  return;
144
148
  }
145
149
  const ticketData = await ticketRes.json();
146
150
  const newTicket = ticketData.ticket;
147
151
  if (!newTicket) {
148
- showError('No ticket returned from server');
152
+ returnError('No ticket returned from server');
149
153
  return;
150
154
  }
151
155
  const wsUrl = `${wsProtocol}://${this.apiServer}/v2/realtime/${newTicket}`;
152
- ws = new ReconnectingWebSocket(wsUrl);
156
+ const options = {
157
+ maxRetries: 10,
158
+ minTimeout: 1000,
159
+ maxTimeout: 10000,
160
+ reconnectionDelay: 1000,
161
+ reconnectionDelayGrowFactor: 1.5,
162
+ };
163
+ ws = new ReconnectingWebSocket(wsUrl, options);
153
164
  ws.addEventListener('message', (event) => {
154
165
  try {
155
166
  const data = JSON.parse(event.data);
@@ -203,8 +214,8 @@ export class PolyguardWebsocketClientImpl {
203
214
  return;
204
215
  } else if (data && data.jwt) {
205
216
  cleanup();
206
- resolve(data.jwt);
207
217
  ws.close();
218
+ resolve(data.jwt);
208
219
  return;
209
220
  } else if (data && data.status) {
210
221
  // ignore
@@ -213,25 +224,30 @@ export class PolyguardWebsocketClientImpl {
213
224
  if (!qrDiv) return;
214
225
  qrDiv.innerHTML = LOADING_SPINNER;
215
226
  return;
227
+
228
+ } else if (data && data.error) {
229
+ returnError(data.error);
230
+ ws.close();
231
+ return;
216
232
  } else {
217
233
  console.error('Unknown message type from server', data);
218
- showError(`Unknown message type from server`);
234
+ returnError(`Unknown message type from server`);
219
235
  }
220
236
  } catch (e) {
221
237
  console.error('Invalid message format from server', e);
222
- showError('Invalid message format from server');
238
+ returnError('Invalid message format from server');
223
239
  // ws.close();
224
240
  }
225
241
  });
226
242
  ws.addEventListener('error', () => {
227
243
  console.error('WebSocket error');
228
- showError('WebSocket error');
244
+ returnError('WebSocket error');
229
245
  });
230
246
  ws.addEventListener('close', () => {
231
247
  if (!closed) cleanup();
232
248
  });
233
249
  } catch (err) {
234
- showError('Failed to connect to WebSocket');
250
+ returnError('Failed to connect to WebSocket');
235
251
  }
236
252
  });
237
253
  }