@microblink/blinkid-core 7.4.1 → 7.4.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.
Files changed (40) hide show
  1. package/dist/blinkid-core.js +656 -599
  2. package/dist/resources/blinkid-worker.js +517 -707
  3. package/dist/resources/full/advanced/BlinkIdModule.js +4 -4
  4. package/dist/resources/full/advanced/BlinkIdModule.wasm +0 -0
  5. package/dist/resources/full/advanced-threads/BlinkIdModule.js +12 -13
  6. package/dist/resources/full/advanced-threads/BlinkIdModule.wasm +0 -0
  7. package/dist/resources/full/basic/BlinkIdModule.js +8 -8
  8. package/dist/resources/full/basic/BlinkIdModule.wasm +0 -0
  9. package/dist/resources/lightweight/advanced/BlinkIdModule.js +3 -3
  10. package/dist/resources/lightweight/advanced/BlinkIdModule.wasm +0 -0
  11. package/dist/resources/lightweight/advanced-threads/BlinkIdModule.js +5 -5
  12. package/dist/resources/lightweight/advanced-threads/BlinkIdModule.wasm +0 -0
  13. package/dist/resources/lightweight/basic/BlinkIdModule.js +5 -5
  14. package/dist/resources/lightweight/basic/BlinkIdModule.wasm +0 -0
  15. package/dist/resources/size-manifest.json +30 -0
  16. package/package.json +1 -1
  17. package/types/deviceInfo/createDerivedDeviceInfo.d.ts +7 -0
  18. package/types/deviceInfo/createDerivedDeviceInfo.d.ts.map +1 -0
  19. package/types/deviceInfo/createDerivedDeviceInfo.test.d.ts +5 -0
  20. package/types/deviceInfo/createDerivedDeviceInfo.test.d.ts.map +1 -0
  21. package/types/deviceInfo/deviceInfo.d.ts +54 -0
  22. package/types/deviceInfo/deviceInfo.d.ts.map +1 -0
  23. package/types/deviceInfo/getAppleDeviceModel.d.ts +13 -0
  24. package/types/deviceInfo/getAppleDeviceModel.d.ts.map +1 -0
  25. package/types/deviceInfo/getAppleDeviceModel.test.d.ts +5 -0
  26. package/types/deviceInfo/getAppleDeviceModel.test.d.ts.map +1 -0
  27. package/types/deviceInfo/getBrowserFromUserAgent.d.ts +18 -0
  28. package/types/deviceInfo/getBrowserFromUserAgent.d.ts.map +1 -0
  29. package/types/deviceInfo/getBrowserFromUserAgent.test.d.ts +5 -0
  30. package/types/deviceInfo/getBrowserFromUserAgent.test.d.ts.map +1 -0
  31. package/types/deviceInfo/getOsFromUserAgent.d.ts +18 -0
  32. package/types/deviceInfo/getOsFromUserAgent.d.ts.map +1 -0
  33. package/types/deviceInfo/getOsFromUserAgent.test.d.ts +5 -0
  34. package/types/deviceInfo/getOsFromUserAgent.test.d.ts.map +1 -0
  35. package/types/deviceInfo/navigator-types.d.ts +79 -0
  36. package/types/deviceInfo/navigator-types.d.ts.map +1 -0
  37. package/types/index.d.ts +1 -0
  38. package/types/index.d.ts.map +1 -1
  39. package/dist/blinkid-core.js.map +0 -1
  40. package/types/index.rollup.d.ts +0 -2877
@@ -3,422 +3,316 @@
3
3
  * Copyright 2019 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- const proxyMarker = Symbol("Comlink.proxy");
7
- const createEndpoint = Symbol("Comlink.endpoint");
8
- const releaseProxy = Symbol("Comlink.releaseProxy");
9
- const finalizer = Symbol("Comlink.finalizer");
10
- const throwMarker = Symbol("Comlink.thrown");
11
- const isObject = (val) => typeof val === "object" && val !== null || typeof val === "function";
12
- const proxyTransferHandler = {
13
- canHandle: (val) => isObject(val) && val[proxyMarker],
14
- serialize(obj) {
15
- const { port1, port2 } = new MessageChannel();
16
- expose(obj, port1);
17
- return [port2, [port2]];
6
+ const C = Symbol("Comlink.proxy"), $ = Symbol("Comlink.endpoint"), _ = Symbol("Comlink.releaseProxy"), k = Symbol("Comlink.finalizer"), I = Symbol("Comlink.thrown"), D = (e) => typeof e == "object" && e !== null || typeof e == "function", q = {
7
+ canHandle: (e) => D(e) && e[C],
8
+ serialize(e) {
9
+ const { port1: n, port2: r } = new MessageChannel();
10
+ return F(e, n), [r, [r]];
18
11
  },
19
- deserialize(port) {
20
- port.start();
21
- return wrap(port);
12
+ deserialize(e) {
13
+ return e.start(), W(e);
22
14
  }
23
- };
24
- const throwTransferHandler = {
25
- canHandle: (value) => isObject(value) && throwMarker in value,
26
- serialize({ value }) {
27
- let serialized;
28
- if (value instanceof Error) {
29
- serialized = {
30
- isError: true,
31
- value: {
32
- message: value.message,
33
- name: value.name,
34
- stack: value.stack
35
- }
36
- };
37
- } else {
38
- serialized = { isError: false, value };
39
- }
40
- return [serialized, []];
15
+ }, K = {
16
+ canHandle: (e) => D(e) && I in e,
17
+ serialize({ value: e }) {
18
+ let n;
19
+ return e instanceof Error ? n = {
20
+ isError: !0,
21
+ value: {
22
+ message: e.message,
23
+ name: e.name,
24
+ stack: e.stack
25
+ }
26
+ } : n = { isError: !1, value: e }, [n, []];
41
27
  },
42
- deserialize(serialized) {
43
- if (serialized.isError) {
44
- throw Object.assign(new Error(serialized.value.message), serialized.value);
45
- }
46
- throw serialized.value;
28
+ deserialize(e) {
29
+ throw e.isError ? Object.assign(new Error(e.value.message), e.value) : e.value;
47
30
  }
48
- };
49
- const transferHandlers = /* @__PURE__ */ new Map([
50
- ["proxy", proxyTransferHandler],
51
- ["throw", throwTransferHandler]
31
+ }, B = /* @__PURE__ */ new Map([
32
+ ["proxy", q],
33
+ ["throw", K]
52
34
  ]);
53
- function isAllowedOrigin(allowedOrigins, origin) {
54
- for (const allowedOrigin of allowedOrigins) {
55
- if (origin === allowedOrigin || allowedOrigin === "*") {
56
- return true;
57
- }
58
- if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {
59
- return true;
60
- }
61
- }
62
- return false;
35
+ function X(e, n) {
36
+ for (const r of e)
37
+ if (n === r || r === "*" || r instanceof RegExp && r.test(n))
38
+ return !0;
39
+ return !1;
63
40
  }
64
- function expose(obj, ep = globalThis, allowedOrigins = ["*"]) {
65
- ep.addEventListener("message", function callback(ev) {
66
- if (!ev || !ev.data) {
41
+ function F(e, n = globalThis, r = ["*"]) {
42
+ n.addEventListener("message", function t(o) {
43
+ if (!o || !o.data)
67
44
  return;
68
- }
69
- if (!isAllowedOrigin(allowedOrigins, ev.origin)) {
70
- console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);
45
+ if (!X(r, o.origin)) {
46
+ console.warn(`Invalid origin '${o.origin}' for comlink proxy`);
71
47
  return;
72
48
  }
73
- const { id, type: type2, path } = Object.assign({ path: [] }, ev.data);
74
- const argumentList = (ev.data.argumentList || []).map(fromWireValue);
75
- let returnValue;
49
+ const { id: a, type: i, path: s } = Object.assign({ path: [] }, o.data), u = (o.data.argumentList || []).map(p);
50
+ let c;
76
51
  try {
77
- const parent = path.slice(0, -1).reduce((obj2, prop) => obj2[prop], obj);
78
- const rawValue = path.reduce((obj2, prop) => obj2[prop], obj);
79
- switch (type2) {
52
+ const l = s.slice(0, -1).reduce((f, y) => f[y], e), m = s.reduce((f, y) => f[y], e);
53
+ switch (i) {
80
54
  case "GET":
81
- {
82
- returnValue = rawValue;
83
- }
55
+ c = m;
84
56
  break;
85
57
  case "SET":
86
- {
87
- parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);
88
- returnValue = true;
89
- }
58
+ l[s.slice(-1)[0]] = p(o.data.value), c = !0;
90
59
  break;
91
60
  case "APPLY":
92
- {
93
- returnValue = rawValue.apply(parent, argumentList);
94
- }
61
+ c = m.apply(l, u);
95
62
  break;
96
63
  case "CONSTRUCT":
97
64
  {
98
- const value = new rawValue(...argumentList);
99
- returnValue = proxy(value);
65
+ const f = new m(...u);
66
+ c = z(f);
100
67
  }
101
68
  break;
102
69
  case "ENDPOINT":
103
70
  {
104
- const { port1, port2 } = new MessageChannel();
105
- expose(obj, port2);
106
- returnValue = transfer(port1, [port1]);
71
+ const { port1: f, port2: y } = new MessageChannel();
72
+ F(e, y), c = ee(f, [f]);
107
73
  }
108
74
  break;
109
75
  case "RELEASE":
110
- {
111
- returnValue = void 0;
112
- }
76
+ c = void 0;
113
77
  break;
114
78
  default:
115
79
  return;
116
80
  }
117
- } catch (value) {
118
- returnValue = { value, [throwMarker]: 0 };
81
+ } catch (l) {
82
+ c = { value: l, [I]: 0 };
119
83
  }
120
- Promise.resolve(returnValue).catch((value) => {
121
- return { value, [throwMarker]: 0 };
122
- }).then((returnValue2) => {
123
- const [wireValue, transferables] = toWireValue(returnValue2);
124
- ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);
125
- if (type2 === "RELEASE") {
126
- ep.removeEventListener("message", callback);
127
- closeEndPoint(ep);
128
- if (finalizer in obj && typeof obj[finalizer] === "function") {
129
- obj[finalizer]();
130
- }
131
- }
132
- }).catch((error) => {
133
- const [wireValue, transferables] = toWireValue({
84
+ Promise.resolve(c).catch((l) => ({ value: l, [I]: 0 })).then((l) => {
85
+ const [m, f] = T(l);
86
+ n.postMessage(Object.assign(Object.assign({}, m), { id: a }), f), i === "RELEASE" && (n.removeEventListener("message", t), N(n), k in e && typeof e[k] == "function" && e[k]());
87
+ }).catch((l) => {
88
+ const [m, f] = T({
134
89
  value: new TypeError("Unserializable return value"),
135
- [throwMarker]: 0
90
+ [I]: 0
136
91
  });
137
- ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);
92
+ n.postMessage(Object.assign(Object.assign({}, m), { id: a }), f);
138
93
  });
139
- });
140
- if (ep.start) {
141
- ep.start();
142
- }
94
+ }), n.start && n.start();
143
95
  }
144
- function isMessagePort(endpoint) {
145
- return endpoint.constructor.name === "MessagePort";
96
+ function J(e) {
97
+ return e.constructor.name === "MessagePort";
146
98
  }
147
- function closeEndPoint(endpoint) {
148
- if (isMessagePort(endpoint))
149
- endpoint.close();
99
+ function N(e) {
100
+ J(e) && e.close();
150
101
  }
151
- function wrap(ep, target) {
152
- const pendingListeners = /* @__PURE__ */ new Map();
153
- ep.addEventListener("message", function handleMessage(ev) {
154
- const { data } = ev;
155
- if (!data || !data.id) {
102
+ function W(e, n) {
103
+ const r = /* @__PURE__ */ new Map();
104
+ return e.addEventListener("message", function(o) {
105
+ const { data: a } = o;
106
+ if (!a || !a.id)
156
107
  return;
157
- }
158
- const resolver = pendingListeners.get(data.id);
159
- if (!resolver) {
160
- return;
161
- }
162
- try {
163
- resolver(data);
164
- } finally {
165
- pendingListeners.delete(data.id);
166
- }
167
- });
168
- return createProxy(ep, pendingListeners, [], target);
108
+ const i = r.get(a.id);
109
+ if (i)
110
+ try {
111
+ i(a);
112
+ } finally {
113
+ r.delete(a.id);
114
+ }
115
+ }), P(e, r, [], n);
169
116
  }
170
- function throwIfProxyReleased(isReleased) {
171
- if (isReleased) {
117
+ function E(e) {
118
+ if (e)
172
119
  throw new Error("Proxy has been released and is not useable");
173
- }
174
120
  }
175
- function releaseEndpoint(ep) {
176
- return requestResponseMessage(ep, /* @__PURE__ */ new Map(), {
121
+ function U(e) {
122
+ return v(e, /* @__PURE__ */ new Map(), {
177
123
  type: "RELEASE"
178
124
  }).then(() => {
179
- closeEndPoint(ep);
125
+ N(e);
180
126
  });
181
127
  }
182
- const proxyCounter = /* @__PURE__ */ new WeakMap();
183
- const proxyFinalizers = "FinalizationRegistry" in globalThis && new FinalizationRegistry((ep) => {
184
- const newCount = (proxyCounter.get(ep) || 0) - 1;
185
- proxyCounter.set(ep, newCount);
186
- if (newCount === 0) {
187
- releaseEndpoint(ep);
188
- }
128
+ const x = /* @__PURE__ */ new WeakMap(), R = "FinalizationRegistry" in globalThis && new FinalizationRegistry((e) => {
129
+ const n = (x.get(e) || 0) - 1;
130
+ x.set(e, n), n === 0 && U(e);
189
131
  });
190
- function registerProxy(proxy2, ep) {
191
- const newCount = (proxyCounter.get(ep) || 0) + 1;
192
- proxyCounter.set(ep, newCount);
193
- if (proxyFinalizers) {
194
- proxyFinalizers.register(proxy2, ep, proxy2);
195
- }
132
+ function Y(e, n) {
133
+ const r = (x.get(n) || 0) + 1;
134
+ x.set(n, r), R && R.register(e, n, e);
196
135
  }
197
- function unregisterProxy(proxy2) {
198
- if (proxyFinalizers) {
199
- proxyFinalizers.unregister(proxy2);
200
- }
136
+ function Q(e) {
137
+ R && R.unregister(e);
201
138
  }
202
- function createProxy(ep, pendingListeners, path = [], target = function() {
139
+ function P(e, n, r = [], t = function() {
203
140
  }) {
204
- let isProxyReleased = false;
205
- const proxy2 = new Proxy(target, {
206
- get(_target, prop) {
207
- throwIfProxyReleased(isProxyReleased);
208
- if (prop === releaseProxy) {
141
+ let o = !1;
142
+ const a = new Proxy(t, {
143
+ get(i, s) {
144
+ if (E(o), s === _)
209
145
  return () => {
210
- unregisterProxy(proxy2);
211
- releaseEndpoint(ep);
212
- pendingListeners.clear();
213
- isProxyReleased = true;
146
+ Q(a), U(e), n.clear(), o = !0;
214
147
  };
215
- }
216
- if (prop === "then") {
217
- if (path.length === 0) {
218
- return { then: () => proxy2 };
219
- }
220
- const r = requestResponseMessage(ep, pendingListeners, {
148
+ if (s === "then") {
149
+ if (r.length === 0)
150
+ return { then: () => a };
151
+ const u = v(e, n, {
221
152
  type: "GET",
222
- path: path.map((p) => p.toString())
223
- }).then(fromWireValue);
224
- return r.then.bind(r);
153
+ path: r.map((c) => c.toString())
154
+ }).then(p);
155
+ return u.then.bind(u);
225
156
  }
226
- return createProxy(ep, pendingListeners, [...path, prop]);
157
+ return P(e, n, [...r, s]);
227
158
  },
228
- set(_target, prop, rawValue) {
229
- throwIfProxyReleased(isProxyReleased);
230
- const [value, transferables] = toWireValue(rawValue);
231
- return requestResponseMessage(ep, pendingListeners, {
159
+ set(i, s, u) {
160
+ E(o);
161
+ const [c, l] = T(u);
162
+ return v(e, n, {
232
163
  type: "SET",
233
- path: [...path, prop].map((p) => p.toString()),
234
- value
235
- }, transferables).then(fromWireValue);
164
+ path: [...r, s].map((m) => m.toString()),
165
+ value: c
166
+ }, l).then(p);
236
167
  },
237
- apply(_target, _thisArg, rawArgumentList) {
238
- throwIfProxyReleased(isProxyReleased);
239
- const last = path[path.length - 1];
240
- if (last === createEndpoint) {
241
- return requestResponseMessage(ep, pendingListeners, {
168
+ apply(i, s, u) {
169
+ E(o);
170
+ const c = r[r.length - 1];
171
+ if (c === $)
172
+ return v(e, n, {
242
173
  type: "ENDPOINT"
243
- }).then(fromWireValue);
244
- }
245
- if (last === "bind") {
246
- return createProxy(ep, pendingListeners, path.slice(0, -1));
247
- }
248
- const [argumentList, transferables] = processArguments(rawArgumentList);
249
- return requestResponseMessage(ep, pendingListeners, {
174
+ }).then(p);
175
+ if (c === "bind")
176
+ return P(e, n, r.slice(0, -1));
177
+ const [l, m] = A(u);
178
+ return v(e, n, {
250
179
  type: "APPLY",
251
- path: path.map((p) => p.toString()),
252
- argumentList
253
- }, transferables).then(fromWireValue);
180
+ path: r.map((f) => f.toString()),
181
+ argumentList: l
182
+ }, m).then(p);
254
183
  },
255
- construct(_target, rawArgumentList) {
256
- throwIfProxyReleased(isProxyReleased);
257
- const [argumentList, transferables] = processArguments(rawArgumentList);
258
- return requestResponseMessage(ep, pendingListeners, {
184
+ construct(i, s) {
185
+ E(o);
186
+ const [u, c] = A(s);
187
+ return v(e, n, {
259
188
  type: "CONSTRUCT",
260
- path: path.map((p) => p.toString()),
261
- argumentList
262
- }, transferables).then(fromWireValue);
189
+ path: r.map((l) => l.toString()),
190
+ argumentList: u
191
+ }, c).then(p);
263
192
  }
264
193
  });
265
- registerProxy(proxy2, ep);
266
- return proxy2;
194
+ return Y(a, e), a;
267
195
  }
268
- function myFlat(arr) {
269
- return Array.prototype.concat.apply([], arr);
196
+ function Z(e) {
197
+ return Array.prototype.concat.apply([], e);
270
198
  }
271
- function processArguments(argumentList) {
272
- const processed = argumentList.map(toWireValue);
273
- return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];
199
+ function A(e) {
200
+ const n = e.map(T);
201
+ return [n.map((r) => r[0]), Z(n.map((r) => r[1]))];
274
202
  }
275
- const transferCache = /* @__PURE__ */ new WeakMap();
276
- function transfer(obj, transfers) {
277
- transferCache.set(obj, transfers);
278
- return obj;
203
+ const j = /* @__PURE__ */ new WeakMap();
204
+ function ee(e, n) {
205
+ return j.set(e, n), e;
279
206
  }
280
- function proxy(obj) {
281
- return Object.assign(obj, { [proxyMarker]: true });
207
+ function z(e) {
208
+ return Object.assign(e, { [C]: !0 });
282
209
  }
283
- function toWireValue(value) {
284
- for (const [name, handler] of transferHandlers) {
285
- if (handler.canHandle(value)) {
286
- const [serializedValue, transferables] = handler.serialize(value);
210
+ function T(e) {
211
+ for (const [n, r] of B)
212
+ if (r.canHandle(e)) {
213
+ const [t, o] = r.serialize(e);
287
214
  return [
288
215
  {
289
216
  type: "HANDLER",
290
- name,
291
- value: serializedValue
217
+ name: n,
218
+ value: t
292
219
  },
293
- transferables
220
+ o
294
221
  ];
295
222
  }
296
- }
297
223
  return [
298
224
  {
299
225
  type: "RAW",
300
- value
226
+ value: e
301
227
  },
302
- transferCache.get(value) || []
228
+ j.get(e) || []
303
229
  ];
304
230
  }
305
- function fromWireValue(value) {
306
- switch (value.type) {
231
+ function p(e) {
232
+ switch (e.type) {
307
233
  case "HANDLER":
308
- return transferHandlers.get(value.name).deserialize(value.value);
234
+ return B.get(e.name).deserialize(e.value);
309
235
  case "RAW":
310
- return value.value;
236
+ return e.value;
311
237
  }
312
238
  }
313
- function requestResponseMessage(ep, pendingListeners, msg, transfers) {
314
- return new Promise((resolve) => {
315
- const id = generateUUID();
316
- pendingListeners.set(id, resolve);
317
- if (ep.start) {
318
- ep.start();
319
- }
320
- ep.postMessage(Object.assign({ id }, msg), transfers);
239
+ function v(e, n, r, t) {
240
+ return new Promise((o) => {
241
+ const a = ne();
242
+ n.set(a, o), e.start && e.start(), e.postMessage(Object.assign({ id: a }, r), t);
321
243
  });
322
244
  }
323
- function generateUUID() {
245
+ function ne() {
324
246
  return new Array(4).fill(0).map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)).join("-");
325
247
  }
326
- const type = "application/javascript";
327
- const getCrossOriginWorkerURL = (originalWorkerUrl, _options = {}) => {
328
- const options = {
329
- skipSameOrigin: true,
330
- useBlob: true,
331
- ..._options
248
+ const V = "application/javascript", re = (e, n = {}) => {
249
+ const r = {
250
+ skipSameOrigin: !0,
251
+ useBlob: !0,
252
+ ...n
332
253
  };
333
- if (options.skipSameOrigin && new URL(originalWorkerUrl).origin === self.location.origin) {
334
- return Promise.resolve(originalWorkerUrl);
335
- }
336
- let signal;
254
+ if (r.skipSameOrigin && new URL(e).origin === self.location.origin)
255
+ return Promise.resolve(e);
256
+ let t;
337
257
  try {
338
- const controller = new AbortController();
339
- signal = controller.signal;
340
- const timeout = setTimeout(() => {
341
- controller.abort();
342
- }, 3e3);
343
- const cleanup = () => {
344
- clearTimeout(timeout);
345
- controller.abort();
258
+ const o = new AbortController();
259
+ t = o.signal;
260
+ const a = setTimeout(() => {
261
+ o.abort();
262
+ }, 3e3), i = () => {
263
+ clearTimeout(a), o.abort();
346
264
  };
347
- signal.addEventListener("abort", cleanup);
348
- } catch (error) {
265
+ t.addEventListener("abort", i);
266
+ } catch {
349
267
  }
350
268
  return new Promise(
351
- (resolve, reject) => void fetch(originalWorkerUrl, {
269
+ (o, a) => void fetch(e, {
352
270
  // abort if the worker is not fetched in a reasonable time
353
- signal
354
- }).then((res) => res.text()).then((codeString) => {
355
- let finalURL = "";
356
- if (options.useBlob) {
357
- const blob = new Blob([codeString], { type });
358
- finalURL = URL.createObjectURL(blob);
359
- } else {
360
- finalURL = `data:${type},` + encodeURIComponent(codeString);
361
- }
362
- resolve(finalURL);
271
+ signal: t
272
+ }).then((i) => i.text()).then((i) => {
273
+ let s = "";
274
+ if (r.useBlob) {
275
+ const u = new Blob([i], { type: V });
276
+ s = URL.createObjectURL(u);
277
+ } else
278
+ s = `data:${V},` + encodeURIComponent(i);
279
+ o(s);
363
280
  }).catch(() => {
364
- reject(new Error(`Failed to fetch worker from ${originalWorkerUrl}`));
281
+ a(new Error(`Failed to fetch worker from ${e}`));
365
282
  })
366
283
  );
367
284
  };
368
- var _createClass = /* @__PURE__ */ function() {
369
- function defineProperties(target, props) {
370
- for (var i = 0; i < props.length; i++) {
371
- var descriptor = props[i];
372
- descriptor.enumerable = descriptor.enumerable || false;
373
- descriptor.configurable = true;
374
- if ("value" in descriptor) descriptor.writable = true;
375
- Object.defineProperty(target, descriptor.key, descriptor);
285
+ var te = /* @__PURE__ */ function() {
286
+ function e(n, r) {
287
+ for (var t = 0; t < r.length; t++) {
288
+ var o = r[t];
289
+ o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(n, o.key, o);
376
290
  }
377
291
  }
378
- return function(Constructor, protoProps, staticProps) {
379
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
380
- if (staticProps) defineProperties(Constructor, staticProps);
381
- return Constructor;
292
+ return function(n, r, t) {
293
+ return r && e(n.prototype, r), t && e(n, t), n;
382
294
  };
383
- }();
384
- var _templateObject = _taggedTemplateLiteral(["", ""], ["", ""]);
385
- function _taggedTemplateLiteral(strings, raw) {
386
- return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } }));
295
+ }(), oe = ae(["", ""], ["", ""]);
296
+ function ae(e, n) {
297
+ return Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(n) } }));
387
298
  }
388
- function _classCallCheck(instance, Constructor) {
389
- if (!(instance instanceof Constructor)) {
299
+ function ie(e, n) {
300
+ if (!(e instanceof n))
390
301
  throw new TypeError("Cannot call a class as a function");
391
- }
392
302
  }
393
- var TemplateTag = function() {
394
- function TemplateTag2() {
395
- var _this = this;
396
- for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {
397
- transformers[_key] = arguments[_key];
398
- }
399
- _classCallCheck(this, TemplateTag2);
400
- this.tag = function(strings) {
401
- for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
402
- expressions[_key2 - 1] = arguments[_key2];
403
- }
404
- if (typeof strings === "function") {
405
- return _this.interimTag.bind(_this, strings);
406
- }
407
- if (typeof strings === "string") {
408
- return _this.transformEndResult(strings);
409
- }
410
- strings = strings.map(_this.transformString.bind(_this));
411
- return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));
412
- };
413
- if (transformers.length > 0 && Array.isArray(transformers[0])) {
414
- transformers = transformers[0];
415
- }
416
- this.transformers = transformers.map(function(transformer) {
417
- return typeof transformer === "function" ? transformer() : transformer;
418
- });
419
- return this.tag;
303
+ var g = function() {
304
+ function e() {
305
+ for (var n = this, r = arguments.length, t = Array(r), o = 0; o < r; o++)
306
+ t[o] = arguments[o];
307
+ return ie(this, e), this.tag = function(a) {
308
+ for (var i = arguments.length, s = Array(i > 1 ? i - 1 : 0), u = 1; u < i; u++)
309
+ s[u - 1] = arguments[u];
310
+ return typeof a == "function" ? n.interimTag.bind(n, a) : typeof a == "string" ? n.transformEndResult(a) : (a = a.map(n.transformString.bind(n)), n.transformEndResult(a.reduce(n.processSubstitutions.bind(n, s))));
311
+ }, t.length > 0 && Array.isArray(t[0]) && (t = t[0]), this.transformers = t.map(function(a) {
312
+ return typeof a == "function" ? a() : a;
313
+ }), this.tag;
420
314
  }
421
- _createClass(TemplateTag2, [{
315
+ return te(e, [{
422
316
  key: "interimTag",
423
317
  /**
424
318
  * An intermediary template tag that receives a template tag and passes the result of calling the template with the received
@@ -428,11 +322,10 @@ var TemplateTag = function() {
428
322
  * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template
429
323
  * @return {*} - the final processed value
430
324
  */
431
- value: function interimTag(previousTag, template) {
432
- for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
433
- substitutions[_key3 - 2] = arguments[_key3];
434
- }
435
- return this.tag(_templateObject, previousTag.apply(void 0, [template].concat(substitutions)));
325
+ value: function(r, t) {
326
+ for (var o = arguments.length, a = Array(o > 2 ? o - 2 : 0), i = 2; i < o; i++)
327
+ a[i - 2] = arguments[i];
328
+ return this.tag(oe, r.apply(void 0, [t].concat(a)));
436
329
  }
437
330
  /**
438
331
  * Performs bulk processing on the tagged template, transforming each substitution and then
@@ -444,9 +337,9 @@ var TemplateTag = function() {
444
337
  */
445
338
  }, {
446
339
  key: "processSubstitutions",
447
- value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {
448
- var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);
449
- return "".concat(resultSoFar, substitution, remainingPart);
340
+ value: function(r, t, o) {
341
+ var a = this.transformSubstitution(r.shift(), t);
342
+ return "".concat(t, a, o);
450
343
  }
451
344
  /**
452
345
  * Iterate through each transformer, applying the transformer's `onString` method to the template
@@ -456,11 +349,11 @@ var TemplateTag = function() {
456
349
  */
457
350
  }, {
458
351
  key: "transformString",
459
- value: function transformString(str) {
460
- var cb = function cb2(res, transform) {
461
- return transform.onString ? transform.onString(res) : res;
352
+ value: function(r) {
353
+ var t = function(a, i) {
354
+ return i.onString ? i.onString(a) : a;
462
355
  };
463
- return this.transformers.reduce(cb, str);
356
+ return this.transformers.reduce(t, r);
464
357
  }
465
358
  /**
466
359
  * When a substitution is encountered, iterates through each transformer and applies the transformer's
@@ -471,11 +364,11 @@ var TemplateTag = function() {
471
364
  */
472
365
  }, {
473
366
  key: "transformSubstitution",
474
- value: function transformSubstitution(substitution, resultSoFar) {
475
- var cb = function cb2(res, transform) {
476
- return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;
367
+ value: function(r, t) {
368
+ var o = function(i, s) {
369
+ return s.onSubstitution ? s.onSubstitution(i, t) : i;
477
370
  };
478
- return this.transformers.reduce(cb, substitution);
371
+ return this.transformers.reduce(o, r);
479
372
  }
480
373
  /**
481
374
  * Iterates through each transformer, applying the transformer's `onEndResult` method to the
@@ -485,376 +378,540 @@ var TemplateTag = function() {
485
378
  */
486
379
  }, {
487
380
  key: "transformEndResult",
488
- value: function transformEndResult(endResult) {
489
- var cb = function cb2(res, transform) {
490
- return transform.onEndResult ? transform.onEndResult(res) : res;
381
+ value: function(r) {
382
+ var t = function(a, i) {
383
+ return i.onEndResult ? i.onEndResult(a) : a;
491
384
  };
492
- return this.transformers.reduce(cb, endResult);
385
+ return this.transformers.reduce(t, r);
493
386
  }
494
- }]);
495
- return TemplateTag2;
496
- }();
497
- var trimResultTransformer = function trimResultTransformer2() {
498
- var side = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
387
+ }]), e;
388
+ }(), d = function() {
389
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
499
390
  return {
500
- onEndResult: function onEndResult(endResult) {
501
- if (side === "") {
502
- return endResult.trim();
503
- }
504
- side = side.toLowerCase();
505
- if (side === "start" || side === "left") {
506
- return endResult.replace(/^\s*/, "");
507
- }
508
- if (side === "end" || side === "right") {
509
- return endResult.replace(/\s*$/, "");
510
- }
511
- throw new Error("Side not supported: " + side);
391
+ onEndResult: function(t) {
392
+ if (n === "")
393
+ return t.trim();
394
+ if (n = n.toLowerCase(), n === "start" || n === "left")
395
+ return t.replace(/^\s*/, "");
396
+ if (n === "end" || n === "right")
397
+ return t.replace(/\s*$/, "");
398
+ throw new Error("Side not supported: " + n);
512
399
  }
513
400
  };
514
401
  };
515
- function _toConsumableArray(arr) {
516
- if (Array.isArray(arr)) {
517
- for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
518
- arr2[i] = arr[i];
519
- }
520
- return arr2;
521
- } else {
522
- return Array.from(arr);
523
- }
402
+ function se(e) {
403
+ if (Array.isArray(e)) {
404
+ for (var n = 0, r = Array(e.length); n < e.length; n++)
405
+ r[n] = e[n];
406
+ return r;
407
+ } else
408
+ return Array.from(e);
524
409
  }
525
- var stripIndentTransformer = function stripIndentTransformer2() {
526
- var type2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "initial";
410
+ var w = function() {
411
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "initial";
527
412
  return {
528
- onEndResult: function onEndResult(endResult) {
529
- if (type2 === "initial") {
530
- var match = endResult.match(/^[^\S\n]*(?=\S)/gm);
531
- var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function(el) {
532
- return el.length;
413
+ onEndResult: function(t) {
414
+ if (n === "initial") {
415
+ var o = t.match(/^[^\S\n]*(?=\S)/gm), a = o && Math.min.apply(Math, se(o.map(function(s) {
416
+ return s.length;
533
417
  })));
534
- if (indent) {
535
- var regexp = new RegExp("^.{" + indent + "}", "gm");
536
- return endResult.replace(regexp, "");
418
+ if (a) {
419
+ var i = new RegExp("^.{" + a + "}", "gm");
420
+ return t.replace(i, "");
537
421
  }
538
- return endResult;
539
- }
540
- if (type2 === "all") {
541
- return endResult.replace(/^[^\S\n]+/gm, "");
422
+ return t;
542
423
  }
543
- throw new Error("Unknown type: " + type2);
424
+ if (n === "all")
425
+ return t.replace(/^[^\S\n]+/gm, "");
426
+ throw new Error("Unknown type: " + n);
544
427
  }
545
428
  };
546
- };
547
- var replaceResultTransformer = function replaceResultTransformer2(replaceWhat, replaceWith) {
429
+ }, S = function(n, r) {
548
430
  return {
549
- onEndResult: function onEndResult(endResult) {
550
- if (replaceWhat == null || replaceWith == null) {
431
+ onEndResult: function(o) {
432
+ if (n == null || r == null)
551
433
  throw new Error("replaceResultTransformer requires at least 2 arguments.");
552
- }
553
- return endResult.replace(replaceWhat, replaceWith);
434
+ return o.replace(n, r);
554
435
  }
555
436
  };
556
- };
557
- var replaceSubstitutionTransformer = function replaceSubstitutionTransformer2(replaceWhat, replaceWith) {
437
+ }, b = function(n, r) {
558
438
  return {
559
- onSubstitution: function onSubstitution(substitution, resultSoFar) {
560
- if (replaceWhat == null || replaceWith == null) {
439
+ onSubstitution: function(o, a) {
440
+ if (n == null || r == null)
561
441
  throw new Error("replaceSubstitutionTransformer requires at least 2 arguments.");
562
- }
563
- if (substitution == null) {
564
- return substitution;
565
- } else {
566
- return substitution.toString().replace(replaceWhat, replaceWith);
567
- }
442
+ return o == null ? o : o.toString().replace(n, r);
568
443
  }
569
444
  };
570
- };
571
- var defaults = {
445
+ }, ce = {
572
446
  separator: "",
573
447
  conjunction: "",
574
- serial: false
575
- };
576
- var inlineArrayTransformer = function inlineArrayTransformer2() {
577
- var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaults;
448
+ serial: !1
449
+ }, h = function() {
450
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ce;
578
451
  return {
579
- onSubstitution: function onSubstitution(substitution, resultSoFar) {
580
- if (Array.isArray(substitution)) {
581
- var arrayLength = substitution.length;
582
- var separator = opts.separator;
583
- var conjunction = opts.conjunction;
584
- var serial = opts.serial;
585
- var indent = resultSoFar.match(/(\n?[^\S\n]+)$/);
586
- if (indent) {
587
- substitution = substitution.join(separator + indent[1]);
588
- } else {
589
- substitution = substitution.join(separator + " ");
590
- }
591
- if (conjunction && arrayLength > 1) {
592
- var separatorIndex = substitution.lastIndexOf(separator);
593
- substitution = substitution.slice(0, separatorIndex) + (serial ? separator : "") + " " + conjunction + substitution.slice(separatorIndex + 1);
452
+ onSubstitution: function(t, o) {
453
+ if (Array.isArray(t)) {
454
+ var a = t.length, i = n.separator, s = n.conjunction, u = n.serial, c = o.match(/(\n?[^\S\n]+)$/);
455
+ if (c ? t = t.join(i + c[1]) : t = t.join(i + " "), s && a > 1) {
456
+ var l = t.lastIndexOf(i);
457
+ t = t.slice(0, l) + (u ? i : "") + " " + s + t.slice(l + 1);
594
458
  }
595
459
  }
596
- return substitution;
460
+ return t;
597
461
  }
598
462
  };
599
- };
600
- var splitStringTransformer = function splitStringTransformer2(splitBy) {
463
+ }, H = function(n) {
601
464
  return {
602
- onSubstitution: function onSubstitution(substitution, resultSoFar) {
603
- {
604
- if (typeof substitution === "string" && substitution.includes(splitBy)) {
605
- substitution = substitution.split(splitBy);
606
- }
607
- }
608
- return substitution;
465
+ onSubstitution: function(t, o) {
466
+ return typeof t == "string" && t.includes(n) && (t = t.split(n)), t;
609
467
  }
610
468
  };
611
- };
612
- var isValidValue = function isValidValue2(x) {
613
- return x != null && !Number.isNaN(x) && typeof x !== "boolean";
614
- };
615
- var removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer2() {
469
+ }, M = function(n) {
470
+ return n != null && !Number.isNaN(n) && typeof n != "boolean";
471
+ }, ue = function() {
616
472
  return {
617
- onSubstitution: function onSubstitution(substitution) {
618
- if (Array.isArray(substitution)) {
619
- return substitution.filter(isValidValue);
620
- }
621
- if (isValidValue(substitution)) {
622
- return substitution;
623
- }
624
- return "";
473
+ onSubstitution: function(r) {
474
+ return Array.isArray(r) ? r.filter(M) : M(r) ? r : "";
625
475
  }
626
476
  };
627
477
  };
628
- new TemplateTag(inlineArrayTransformer({ separator: "," }), stripIndentTransformer, trimResultTransformer);
629
- new TemplateTag(inlineArrayTransformer({ separator: ",", conjunction: "and" }), stripIndentTransformer, trimResultTransformer);
630
- new TemplateTag(inlineArrayTransformer({ separator: ",", conjunction: "or" }), stripIndentTransformer, trimResultTransformer);
631
- new TemplateTag(splitStringTransformer("\n"), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);
632
- new TemplateTag(splitStringTransformer("\n"), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, "&amp;"), replaceSubstitutionTransformer(/</g, "&lt;"), replaceSubstitutionTransformer(/>/g, "&gt;"), replaceSubstitutionTransformer(/"/g, "&quot;"), replaceSubstitutionTransformer(/'/g, "&#x27;"), replaceSubstitutionTransformer(/`/g, "&#x60;"));
633
- new TemplateTag(replaceResultTransformer(/(?:\n(?:\s*))+/g, " "), trimResultTransformer);
634
- var oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\n\s*)/g, ""), trimResultTransformer);
635
- new TemplateTag(inlineArrayTransformer({ separator: "," }), replaceResultTransformer(/(?:\s+)/g, " "), trimResultTransformer);
636
- new TemplateTag(inlineArrayTransformer({ separator: ",", conjunction: "or" }), replaceResultTransformer(/(?:\s+)/g, " "), trimResultTransformer);
637
- new TemplateTag(inlineArrayTransformer({ separator: ",", conjunction: "and" }), replaceResultTransformer(/(?:\s+)/g, " "), trimResultTransformer);
638
- new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);
639
- new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\s+)/g, " "), trimResultTransformer);
640
- new TemplateTag(stripIndentTransformer, trimResultTransformer);
641
- new TemplateTag(stripIndentTransformer("all"), trimResultTransformer);
642
- const isDataUrl = (url) => {
643
- return url.startsWith("data:");
644
- };
645
- const isBlobUrl = (url) => {
646
- return url.startsWith("blob:");
647
- };
648
- const needsHttpValidation = (url) => {
649
- return !isDataUrl(url) && !isBlobUrl(url);
650
- };
651
- const validateHttpWorkerFile = async (workerUrl) => {
652
- const response = await fetch(workerUrl, { method: "HEAD" });
653
- const contentType = response.headers.get("content-type");
654
- const isJavascript = contentType?.includes("javascript");
655
- const isHtml = contentType?.includes("html");
656
- if (isHtml) {
478
+ new g(h({ separator: "," }), w, d);
479
+ new g(h({ separator: ",", conjunction: "and" }), w, d);
480
+ new g(h({ separator: ",", conjunction: "or" }), w, d);
481
+ new g(H(`
482
+ `), ue, h, w, d);
483
+ new g(H(`
484
+ `), h, w, d, b(/&/g, "&amp;"), b(/</g, "&lt;"), b(/>/g, "&gt;"), b(/"/g, "&quot;"), b(/'/g, "&#x27;"), b(/`/g, "&#x60;"));
485
+ new g(S(/(?:\n(?:\s*))+/g, " "), d);
486
+ var le = new g(S(/(?:\n\s*)/g, ""), d);
487
+ new g(h({ separator: "," }), S(/(?:\s+)/g, " "), d);
488
+ new g(h({ separator: ",", conjunction: "or" }), S(/(?:\s+)/g, " "), d);
489
+ new g(h({ separator: ",", conjunction: "and" }), S(/(?:\s+)/g, " "), d);
490
+ new g(h, w, d);
491
+ new g(h, S(/(?:\s+)/g, " "), d);
492
+ new g(w, d);
493
+ new g(w("all"), d);
494
+ const fe = (e) => e.startsWith("data:"), ge = (e) => e.startsWith("blob:"), de = (e) => !fe(e) && !ge(e), me = async (e) => {
495
+ const n = await fetch(e, { method: "HEAD" }), r = n.headers.get("content-type"), t = r?.includes("javascript");
496
+ if (r?.includes("html"))
657
497
  throw new Error(
658
- oneLineTrim`${workerUrl} resolved to a resource with the content type ${contentType}.
498
+ le`${e} resolved to a resource with the content type ${r}.
659
499
  This is likely an issue with the server configuration redirecting to an index.html file.
660
500
  Check that your resources are properly hosted`
661
501
  );
662
- }
663
- if (!isJavascript) {
664
- throw new Error(`Worker file is not a JavaScript file: ${contentType}`);
665
- }
666
- if (!response.ok) {
502
+ if (!t)
503
+ throw new Error(`Worker file is not a JavaScript file: ${r}`);
504
+ if (!n.ok)
667
505
  throw new Error(
668
- `Worker file not found or inaccessible: ${response.status} ${response.statusText}`
506
+ `Worker file not found or inaccessible: ${n.status} ${n.statusText}`
669
507
  );
670
- }
671
- };
672
- const createProxyWorker = async (resourcesLocation = window.location.href) => {
673
- const workerUrl = await getCrossOriginWorkerURL(
674
- new URL("resources/blinkid-worker.js", resourcesLocation).toString()
508
+ }, he = async (e = window.location.href) => {
509
+ const n = await re(
510
+ new URL("resources/blinkid-worker.js", e).toString()
675
511
  );
676
- if (needsHttpValidation(workerUrl)) {
677
- await validateHttpWorkerFile(workerUrl);
678
- }
679
- const worker = new Worker(workerUrl, {
512
+ de(n) && await me(n);
513
+ const r = new Worker(n, {
680
514
  type: "module"
681
515
  });
682
- worker.onerror = (e) => {
683
- console.error("Worker error:", e);
684
- proxyWorker[releaseProxy]();
516
+ r.onerror = (o) => {
517
+ console.error("Worker error:", o), t[_]();
685
518
  };
686
- const proxyWorker = wrap(worker);
687
- return proxyWorker;
519
+ const t = W(r);
520
+ return t;
688
521
  };
689
- let nanoid = (size = 21) => crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
690
- byte &= 63;
691
- if (byte < 36) {
692
- id += byte.toString(36);
693
- } else if (byte < 62) {
694
- id += (byte - 26).toString(36).toUpperCase();
695
- } else if (byte > 62) {
696
- id += "-";
697
- } else {
698
- id += "_";
699
- }
700
- return id;
701
- }, "");
702
- const key = "blinkid-userid";
703
- function getUserId() {
704
- const hasLocalStorage = testLocalStorage();
705
- if (!hasLocalStorage) {
706
- return nanoid();
707
- }
708
- const previousId = localStorage.getItem(key);
709
- if (previousId) {
710
- return previousId;
711
- }
712
- const randomId = nanoid();
713
- localStorage.setItem(key, randomId);
714
- return randomId;
522
+ let O = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((n, r) => (r &= 63, r < 36 ? n += r.toString(36) : r < 62 ? n += (r - 26).toString(36).toUpperCase() : r > 62 ? n += "-" : n += "_", n), "");
523
+ const L = "blinkid-userid";
524
+ function we() {
525
+ if (!pe())
526
+ return O();
527
+ const n = localStorage.getItem(L);
528
+ if (n)
529
+ return n;
530
+ const r = O();
531
+ return localStorage.setItem(L, r), r;
715
532
  }
716
- function testLocalStorage() {
533
+ function pe() {
717
534
  try {
718
- localStorage.setItem("test", "test");
719
- localStorage.removeItem("test");
720
- return true;
535
+ return localStorage.setItem("test", "test"), localStorage.removeItem("test"), !0;
721
536
  } catch {
722
- return false;
537
+ return !1;
723
538
  }
724
539
  }
725
- const defaultSessionSettings = {
540
+ const be = {
726
541
  inputImageSource: "video",
727
542
  scanningMode: "automatic",
728
543
  scanningSettings: {
729
- allowUncertainFrontSideScan: false,
544
+ allowUncertainFrontSideScan: !1,
730
545
  blurDetectionLevel: "mid",
731
546
  glareDetectionLevel: "mid",
732
547
  tiltDetectionLevel: "mid",
733
- skipImagesWithBlur: true,
734
- skipImagesWithGlare: true,
735
- skipImagesOccludedByHand: true,
736
- skipImagesWithInadequateLightingConditions: true,
737
- combineResultsFromMultipleInputImages: true,
548
+ skipImagesWithBlur: !0,
549
+ skipImagesWithGlare: !0,
550
+ skipImagesOccludedByHand: !0,
551
+ skipImagesWithInadequateLightingConditions: !0,
552
+ combineResultsFromMultipleInputImages: !0,
738
553
  croppedImageSettings: {
739
554
  dotsPerInch: 250,
740
555
  extensionFactor: 0,
741
- returnDocumentImage: false,
742
- returnFaceImage: false,
743
- returnSignatureImage: false
556
+ returnDocumentImage: !1,
557
+ returnFaceImage: !1,
558
+ returnSignatureImage: !1
744
559
  },
745
560
  customDocumentAnonymizationSettings: [],
746
561
  customDocumentRules: [],
747
- enableBarcodeScanOnly: false,
748
- enableCharacterValidation: true,
562
+ enableBarcodeScanOnly: !1,
563
+ enableCharacterValidation: !0,
749
564
  inputImageMargin: 0.02,
750
565
  maxAllowedMismatchesPerField: 0,
751
566
  recognitionModeFilter: {
752
- enableBarcodeId: true,
753
- enableFullDocumentRecognition: true,
754
- enableMrzId: true,
755
- enableMrzPassport: true,
756
- enableMrzVisa: true,
757
- enablePhotoId: true
567
+ enableBarcodeId: !0,
568
+ enableFullDocumentRecognition: !0,
569
+ enableMrzId: !0,
570
+ enableMrzPassport: !0,
571
+ enableMrzVisa: !0,
572
+ enablePhotoId: !0
758
573
  },
759
- returnInputImages: false,
760
- scanCroppedDocumentImage: false,
761
- scanPassportDataPageOnly: true,
762
- scanUnsupportedBack: false,
574
+ returnInputImages: !1,
575
+ scanCroppedDocumentImage: !1,
576
+ scanPassportDataPageOnly: !0,
577
+ scanUnsupportedBack: !1,
763
578
  anonymizationMode: "full-result"
764
579
  }
765
580
  };
766
- async function loadBlinkIdCore(settings, progressCallback) {
767
- const remoteWorker = await createProxyWorker(settings.resourcesLocation);
768
- if (!settings.userId) {
769
- settings.userId = getUserId();
770
- }
771
- if (!settings.resourcesLocation) {
772
- settings.resourcesLocation = window.location.href;
773
- }
774
- if (settings.useLightweightBuild === void 0) {
775
- settings.useLightweightBuild = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
776
- navigator.userAgent
777
- );
778
- }
779
- const proxyProgressCallback = progressCallback ? proxy(progressCallback) : void 0;
581
+ async function Pe(e, n) {
582
+ const r = await he(e.resourcesLocation);
583
+ e.userId || (e.userId = we()), e.resourcesLocation || (e.resourcesLocation = window.location.href), e.useLightweightBuild === void 0 && (e.useLightweightBuild = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
584
+ navigator.userAgent
585
+ ));
586
+ const t = n ? z(n) : void 0;
780
587
  try {
781
- await remoteWorker.initBlinkId(
782
- settings,
783
- defaultSessionSettings,
784
- proxyProgressCallback
785
- );
786
- return remoteWorker;
787
- } catch (error) {
588
+ return await r.initBlinkId(
589
+ e,
590
+ be,
591
+ t
592
+ ), r;
593
+ } catch (o) {
788
594
  throw new Error("Failed to initialize BlinkID", {
789
- cause: error
595
+ cause: o
790
596
  });
791
597
  }
792
598
  }
793
- function createCustomImageData(imageData) {
794
- const customImageData = {
599
+ function Ae(e) {
600
+ return {
795
601
  /**
796
602
  * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.
797
603
  *
798
604
  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data)
799
605
  */
800
- data: imageData.data,
606
+ data: e.data,
801
607
  /**
802
608
  * Returns the actual dimensions of the data in the ImageData object, in pixels.
803
609
  *
804
610
  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width)
805
611
  */
806
- width: imageData.width,
612
+ width: e.width,
807
613
  /**
808
614
  * Returns the actual dimensions of the data in the ImageData object, in pixels.
809
615
  *
810
616
  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height)
811
617
  */
812
- height: imageData.height,
618
+ height: e.height,
813
619
  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/colorSpace) */
814
- colorSpace: imageData.colorSpace
620
+ colorSpace: e.colorSpace
815
621
  };
816
- return customImageData;
817
622
  }
818
- function extractSideInputImage(blinkIdScanningResult, side) {
819
- const sideIndex = side === "first" ? 0 : 1;
820
- return blinkIdScanningResult.subResults[sideIndex]?.inputImage ?? null;
623
+ function Ve(e, n) {
624
+ const r = n === "first" ? 0 : 1;
625
+ return e.subResults[r]?.inputImage ?? null;
821
626
  }
822
- function extractBarcodeImage(blinkIdScanningResult) {
823
- return blinkIdScanningResult.subResults.find(
824
- (subResult) => subResult.barcodeInputImage
627
+ function Me(e) {
628
+ return e.subResults.find(
629
+ (n) => n.barcodeInputImage
825
630
  )?.barcodeInputImage ?? null;
826
631
  }
827
- function extractSideDocumentImage(blinkIdScanningResult, side) {
828
- const sideIndex = side === "first" ? 0 : 1;
829
- return blinkIdScanningResult.subResults[sideIndex]?.documentImage ?? null;
632
+ function Oe(e, n) {
633
+ const r = n === "first" ? 0 : 1;
634
+ return e.subResults[r]?.documentImage ?? null;
830
635
  }
831
- function extractFaceImage(blinkIdScanningResult) {
832
- return blinkIdScanningResult.subResults.find((subResult) => subResult.faceImage)?.faceImage?.image ?? null;
636
+ function Le(e) {
637
+ return e.subResults.find((n) => n.faceImage)?.faceImage?.image ?? null;
833
638
  }
834
- function extractSignatureImage(blinkIdScanningResult) {
835
- return blinkIdScanningResult.subResults.find(
836
- (subResult) => subResult.signatureImage
639
+ function Ce(e) {
640
+ return e.subResults.find(
641
+ (n) => n.signatureImage
837
642
  )?.signatureImage?.image ?? null;
838
643
  }
839
- const testSymbol = Symbol();
840
- globalThis.__BLINKID_CORE__ ||= testSymbol;
841
- if (globalThis.__BLINKID_CORE__ !== testSymbol) {
842
- console.warn(
843
- "Detected multiple instances of @microblink/blinkid-core. This can lead to unexpected behavior."
844
- );
644
+ function ve() {
645
+ const e = navigator.userAgent;
646
+ if (/iPad/.test(e) || /Macintosh/.test(e) && navigator.maxTouchPoints > 1)
647
+ return "iPad";
648
+ if (/iPhone/.test(e))
649
+ return "iPhone";
650
+ if (/Macintosh/.test(e))
651
+ return "Mac";
652
+ }
653
+ const Se = [
654
+ // 1. In-App Browsers
655
+ {
656
+ name: "Facebook In-App",
657
+ regex: /FBAV\/([\d.]+)/,
658
+ getVersion: (e) => e[1]
659
+ },
660
+ {
661
+ name: "Instagram In-App",
662
+ regex: /Instagram ([\d.]+)/,
663
+ getVersion: (e) => e[1]
664
+ },
665
+ { name: "TikTok In-App", regex: /TikTok/, getVersion: () => "" },
666
+ // 2. Niche/Alternate Browsers (must be checked before generic Chrome)
667
+ { name: "Edge", regex: /Edg\/([\d.]+)/, getVersion: (e) => e[1] },
668
+ {
669
+ name: "DuckDuckGo",
670
+ regex: /DuckDuckGo\/([\d.]+)/,
671
+ getVersion: (e) => e[1]
672
+ },
673
+ {
674
+ name: "Vivaldi",
675
+ regex: /Vivaldi\/([\d.]+)/,
676
+ getVersion: (e) => e[1]
677
+ },
678
+ { name: "Opera", regex: /OPR\/([\d.]+)/, getVersion: (e) => e[1] },
679
+ {
680
+ name: "Samsung Browser",
681
+ regex: /SamsungBrowser\/([\d.]+)/,
682
+ getVersion: (e) => e[1]
683
+ },
684
+ // 3. Platform-specific browsers (e.g., on iOS)
685
+ {
686
+ name: "Firefox",
687
+ regex: /FxiOS\/([\S]+)/,
688
+ // Firefox on iOS
689
+ getVersion: (e) => e[1]
690
+ },
691
+ {
692
+ name: "Chrome",
693
+ regex: /CriOS\/([\S]+)/,
694
+ // Chrome on iOS
695
+ getVersion: (e) => e[1]
696
+ },
697
+ // 4. WebViews (must be checked before generic Chrome/Safari)
698
+ {
699
+ name: "Android WebView",
700
+ regex: /; wv\)/,
701
+ getVersion: (e, n) => n.match(/Chrome\/([\d.]+)/)?.[1] ?? ""
702
+ },
703
+ // 5. Major Mainstream Browsers (the final fallbacks)
704
+ {
705
+ name: "Brave",
706
+ regex: /Brave/,
707
+ getVersion: (e, n) => n.match(/Chrome\/([\d.]+)/)?.[1] ?? ""
708
+ },
709
+ {
710
+ name: "Chrome",
711
+ regex: /Chrome\/([\d.]+)/,
712
+ getVersion: (e) => e[1]
713
+ },
714
+ {
715
+ name: "Firefox",
716
+ regex: /Firefox\/([\d.]+)/,
717
+ getVersion: (e) => e[1]
718
+ },
719
+ {
720
+ name: "Safari",
721
+ regex: /Version\/([\d.]+).*Safari/,
722
+ getVersion: (e) => e[1]
723
+ }
724
+ ];
725
+ function ye() {
726
+ const e = navigator.userAgent;
727
+ if (window.webkit?.messageHandlers) {
728
+ const n = e.match(/OS ([\d_]+)/);
729
+ return {
730
+ name: "iOS WebView",
731
+ version: n ? n[1].replace(/_/g, ".") : ""
732
+ };
733
+ }
734
+ for (const n of Se) {
735
+ const r = e.match(n.regex);
736
+ if (r)
737
+ return {
738
+ name: n.name,
739
+ version: n.getVersion(r, e)
740
+ };
741
+ }
742
+ return { name: "Unknown", version: "" };
743
+ }
744
+ function Ee(e, n) {
745
+ if (!n.versionRegex)
746
+ return "";
747
+ const r = e.match(n.versionRegex);
748
+ return r?.[1] ? n.versionTransform ? n.versionTransform(r[1]) : r[1] : "";
749
+ }
750
+ function Ie() {
751
+ const e = navigator.userAgent, n = {
752
+ "10.0": "10 or 11",
753
+ "6.3": "8.1",
754
+ "6.2": "8",
755
+ "6.1": "7"
756
+ }, r = [
757
+ {
758
+ os: "iPadOS",
759
+ condition: /Macintosh/.test(e) && navigator.maxTouchPoints > 1,
760
+ versionRegex: /Mac OS X ([\d_]+)/,
761
+ versionTransform: (t) => t.replace(/_/g, ".")
762
+ },
763
+ {
764
+ os: "iOS",
765
+ condition: /iPhone/.test(e),
766
+ versionRegex: /iPhone OS ([\d_]+)/,
767
+ versionTransform: (t) => t.replace(/_/g, ".")
768
+ },
769
+ {
770
+ os: "macOS",
771
+ condition: /Macintosh/.test(e),
772
+ versionRegex: /Mac OS X ([\d_]+)/,
773
+ versionTransform: (t) => t.replace(/_/g, ".")
774
+ },
775
+ {
776
+ os: "Windows",
777
+ condition: /Win/.test(e),
778
+ versionRegex: /Windows NT ([\d.]+)/,
779
+ versionTransform: (t) => n[t] || t
780
+ },
781
+ {
782
+ os: "Android",
783
+ condition: /Android/.test(e),
784
+ versionRegex: /Android ([\d.]+)/
785
+ },
786
+ {
787
+ os: "Linux",
788
+ condition: /Linux/.test(e)
789
+ }
790
+ ];
791
+ for (const t of r)
792
+ if (t.condition) {
793
+ const o = Ee(e, t);
794
+ return { os: t.os, version: o };
795
+ }
796
+ return { os: "", version: "" };
797
+ }
798
+ function xe(e, n) {
799
+ const r = ve();
800
+ let t = "";
801
+ if (e?.model)
802
+ t = e.model;
803
+ else if (r)
804
+ t = r;
805
+ else {
806
+ const u = n.match(/Android.*?; ([^)]+)\)/);
807
+ u?.[1] && (t = u[1]);
808
+ }
809
+ let o = ["Desktop"];
810
+ e?.formFactors?.length ? o = e.formFactors : e?.mobile ? o = ["Mobile"] : r && (r === "iPhone" ? o = ["Mobile"] : r === "iPad" && (o = ["Tablet"]));
811
+ let a = "";
812
+ e?.platform ? a = e.platform : a = Ie().os;
813
+ let i = "", s = "";
814
+ if (e?.brands?.length)
815
+ i = (e.brands.find(
816
+ (c) => !/not.a.brand/i.test(c.brand) && c.brand !== "Chromium"
817
+ ) ?? e.brands.find((c) => !/not.a.brand/i.test(c.brand)))?.brand ?? "", e.fullVersionList ? s = e.fullVersionList.find((c) => c.brand === i)?.version ?? "" : s = e.brands.find((c) => c.brand === i)?.version ?? "";
818
+ else {
819
+ const u = ye();
820
+ i = u.name, s = u.version;
821
+ }
822
+ return t === "" && a === "macOS" && (t = "Mac"), {
823
+ model: t,
824
+ formFactor: o,
825
+ platform: a,
826
+ browser: {
827
+ brand: i,
828
+ version: s
829
+ }
830
+ };
831
+ }
832
+ function Re() {
833
+ const n = document.createElement("canvas").getContext("webgl");
834
+ if (n && n instanceof WebGLRenderingContext) {
835
+ const r = n.getExtension("WEBGL_debug_renderer_info");
836
+ return {
837
+ renderer: r ? n.getParameter(r.UNMASKED_RENDERER_WEBGL) : n.getParameter(n.RENDERER),
838
+ shadingLanguageVersion: n.getParameter(n.SHADING_LANGUAGE_VERSION),
839
+ vendor: r ? n.getParameter(r.UNMASKED_VENDOR_WEBGL) : n.getParameter(n.VENDOR),
840
+ version: n.getParameter(n.VERSION)
841
+ };
842
+ }
843
+ }
844
+ function Te() {
845
+ try {
846
+ const e = "__storage_test__";
847
+ return window.localStorage.setItem(e, e), window.localStorage.removeItem(e), !0;
848
+ } catch {
849
+ return !1;
850
+ }
851
+ }
852
+ async function ke() {
853
+ let e;
854
+ try {
855
+ e = await navigator.userAgentData?.getHighEntropyValues([
856
+ "brands",
857
+ "mobile",
858
+ "platform",
859
+ "architecture",
860
+ "bitness",
861
+ "formFactors",
862
+ "model",
863
+ "platformVersion",
864
+ "fullVersionList",
865
+ "wow64"
866
+ ]);
867
+ } catch {
868
+ }
869
+ return e;
870
+ }
871
+ async function _e() {
872
+ const e = await ke();
873
+ return {
874
+ userAgentData: e,
875
+ userAgent: navigator.userAgent,
876
+ threads: navigator.hardwareConcurrency,
877
+ memory: navigator.deviceMemory,
878
+ gpu: Re(),
879
+ screen: {
880
+ screenWidth: window.screen.width,
881
+ screenHeight: window.screen.height,
882
+ devicePixelRatio: window.devicePixelRatio,
883
+ physicalScreenWidth: window.screen.width * window.devicePixelRatio,
884
+ physicalScreenHeight: window.screen.height * window.devicePixelRatio,
885
+ maxTouchPoints: navigator.maxTouchPoints
886
+ },
887
+ browserStorageSupport: {
888
+ cookieEnabled: navigator.cookieEnabled,
889
+ localStorageEnabled: Te()
890
+ },
891
+ derivedDeviceInfo: xe(
892
+ e,
893
+ navigator.userAgent
894
+ )
895
+ };
845
896
  }
897
+ const G = Symbol();
898
+ globalThis.__BLINKID_CORE__ ||= G;
899
+ globalThis.__BLINKID_CORE__ !== G && console.warn(
900
+ "Detected multiple instances of @microblink/blinkid-core. This can lead to unexpected behavior."
901
+ );
846
902
  export {
847
- createCustomImageData,
848
- createProxyWorker,
849
- defaultSessionSettings,
850
- extractBarcodeImage,
851
- extractFaceImage,
852
- extractSideDocumentImage,
853
- extractSideInputImage,
854
- extractSignatureImage,
855
- getCrossOriginWorkerURL,
856
- getUserId,
857
- loadBlinkIdCore,
858
- testLocalStorage
903
+ Ae as createCustomImageData,
904
+ he as createProxyWorker,
905
+ be as defaultSessionSettings,
906
+ Me as extractBarcodeImage,
907
+ Le as extractFaceImage,
908
+ Oe as extractSideDocumentImage,
909
+ Ve as extractSideInputImage,
910
+ Ce as extractSignatureImage,
911
+ re as getCrossOriginWorkerURL,
912
+ _e as getDeviceInfo,
913
+ ke as getUserAgentData,
914
+ we as getUserId,
915
+ Pe as loadBlinkIdCore,
916
+ pe as testLocalStorage
859
917
  };
860
- //# sourceMappingURL=blinkid-core.js.map