@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 +24 -9
- package/package.json +1 -1
- package/src/PolyguardWebsocketClientImpl.js +30 -14
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
|
|
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
|
-
|
|
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
|
-
|
|
11078
|
+
returnError("No ticket returned from server");
|
|
11075
11079
|
return;
|
|
11076
11080
|
}
|
|
11077
11081
|
const wsUrl = `${wsProtocol}://${this.apiServer}/v2/realtime/${newTicket}`;
|
|
11078
|
-
|
|
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
|
-
|
|
11146
|
+
returnError(`Unknown message type from server`);
|
|
11132
11147
|
}
|
|
11133
11148
|
} catch (e) {
|
|
11134
11149
|
console.error("Invalid message format from server", e);
|
|
11135
|
-
|
|
11150
|
+
returnError("Invalid message format from server");
|
|
11136
11151
|
}
|
|
11137
11152
|
});
|
|
11138
11153
|
ws.addEventListener("error", () => {
|
|
11139
11154
|
console.error("WebSocket error");
|
|
11140
|
-
|
|
11155
|
+
returnError("WebSocket error");
|
|
11141
11156
|
});
|
|
11142
11157
|
ws.addEventListener("close", () => {
|
|
11143
11158
|
if (!closed) cleanup();
|
|
11144
11159
|
});
|
|
11145
11160
|
} catch (err) {
|
|
11146
|
-
|
|
11161
|
+
returnError("Failed to connect to WebSocket");
|
|
11147
11162
|
}
|
|
11148
11163
|
});
|
|
11149
11164
|
}
|
package/package.json
CHANGED
|
@@ -106,12 +106,16 @@ export class PolyguardWebsocketClientImpl {
|
|
|
106
106
|
let ws = null;
|
|
107
107
|
let closed = false;
|
|
108
108
|
|
|
109
|
-
function
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
-
|
|
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
|
-
|
|
152
|
+
returnError('No ticket returned from server');
|
|
149
153
|
return;
|
|
150
154
|
}
|
|
151
155
|
const wsUrl = `${wsProtocol}://${this.apiServer}/v2/realtime/${newTicket}`;
|
|
152
|
-
|
|
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
|
-
|
|
234
|
+
returnError(`Unknown message type from server`);
|
|
219
235
|
}
|
|
220
236
|
} catch (e) {
|
|
221
237
|
console.error('Invalid message format from server', e);
|
|
222
|
-
|
|
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
|
-
|
|
244
|
+
returnError('WebSocket error');
|
|
229
245
|
});
|
|
230
246
|
ws.addEventListener('close', () => {
|
|
231
247
|
if (!closed) cleanup();
|
|
232
248
|
});
|
|
233
249
|
} catch (err) {
|
|
234
|
-
|
|
250
|
+
returnError('Failed to connect to WebSocket');
|
|
235
251
|
}
|
|
236
252
|
});
|
|
237
253
|
}
|