zxing-wasm
Version:
ZXing-C++ WebAssembly as an ES/CJS module with types
638 lines (637 loc) • 10.7 kB
JavaScript
//#region src/bindings/barcodeFormat.ts
var e = [
[
"All",
"*",
"*",
" ",
0,
"All"
],
[
"AllReadable",
"*",
"r",
" ",
0,
"All Readable"
],
[
"AllCreatable",
"*",
"w",
" ",
0,
"All Creatable"
],
[
"AllLinear",
"*",
"l",
" ",
0,
"All Linear"
],
[
"AllMatrix",
"*",
"m",
" ",
0,
"All Matrix"
],
[
"AllGS1",
"*",
"G",
" ",
0,
"All GS1"
],
[
"AllRetail",
"*",
"R",
" ",
0,
"All Retail"
],
[
"AllIndustrial",
"*",
"I",
" ",
0,
"All Industrial"
],
[
"Codabar",
"F",
" ",
"lrw ",
18,
"Codabar"
],
[
"Code39",
"A",
" ",
"lrw I",
8,
"Code 39"
],
[
"Code39Std",
"A",
"s",
"lrw I",
8,
"Code 39 Standard"
],
[
"Code39Ext",
"A",
"e",
"lr I",
9,
"Code 39 Extended"
],
[
"Code32",
"A",
"2",
"lr I",
129,
"Code 32"
],
[
"PZN",
"A",
"p",
"lr I",
52,
"Pharmazentralnummer"
],
[
"Code93",
"G",
" ",
"lrw I",
25,
"Code 93"
],
[
"Code128",
"C",
" ",
"lrwGI",
20,
"Code 128"
],
[
"ITF",
"I",
" ",
"lrw I",
3,
"ITF"
],
[
"ITF14",
"I",
"4",
"lr I",
89,
"ITF-14"
],
[
"DataBar",
"e",
" ",
"lr GR",
29,
"DataBar"
],
[
"DataBarOmni",
"e",
"o",
"lr GR",
29,
"DataBar Omni"
],
[
"DataBarStk",
"e",
"s",
"lr GR",
79,
"DataBar Stacked"
],
[
"DataBarStkOmni",
"e",
"O",
"lr GR",
80,
"DataBar Stacked Omni"
],
[
"DataBarLtd",
"e",
"l",
"lr GR",
30,
"DataBar Limited"
],
[
"DataBarExp",
"e",
"e",
"lr GR",
31,
"DataBar Expanded"
],
[
"DataBarExpStk",
"e",
"E",
"lr GR",
81,
"DataBar Expanded Stacked"
],
[
"EANUPC",
"E",
" ",
"lr R",
15,
"EAN/UPC"
],
[
"EAN13",
"E",
"1",
"lrw R",
15,
"EAN-13"
],
[
"EAN8",
"E",
"8",
"lrw R",
10,
"EAN-8"
],
[
"EAN5",
"E",
"5",
"l R",
12,
"EAN-5"
],
[
"EAN2",
"E",
"2",
"l R",
11,
"EAN-2"
],
[
"ISBN",
"E",
"i",
"lr R",
69,
"ISBN"
],
[
"UPCA",
"E",
"a",
"lrw R",
34,
"UPC-A"
],
[
"UPCE",
"E",
"e",
"lrw R",
37,
"UPC-E"
],
[
"OtherBarcode",
"X",
" ",
" r ",
0,
"Other barcode"
],
[
"DXFilmEdge",
"X",
"x",
"lr ",
147,
"DX Film Edge"
],
[
"PDF417",
"L",
" ",
"mrw ",
55,
"PDF417"
],
[
"CompactPDF417",
"L",
"c",
"mr ",
56,
"Compact PDF417"
],
[
"MicroPDF417",
"L",
"m",
"m ",
84,
"MicroPDF417"
],
[
"Aztec",
"z",
" ",
"mr G ",
92,
"Aztec"
],
[
"AztecCode",
"z",
"c",
"mrwG ",
92,
"Aztec Code"
],
[
"AztecRune",
"z",
"r",
"mr ",
128,
"Aztec Rune"
],
[
"QRCode",
"Q",
" ",
"mrwG ",
58,
"QR Code"
],
[
"QRCodeModel1",
"Q",
"1",
"mr ",
0,
"QR Code Model 1"
],
[
"QRCodeModel2",
"Q",
"2",
"mr ",
58,
"QR Code Model 2"
],
[
"MicroQRCode",
"Q",
"m",
"mr ",
97,
"Micro QR Code"
],
[
"RMQRCode",
"Q",
"r",
"mr G ",
145,
"rMQR Code"
],
[
"DataMatrix",
"d",
" ",
"mrwG ",
71,
"Data Matrix"
],
[
"MaxiCode",
"U",
" ",
"mr ",
57,
"MaxiCode"
]
], t = {
DataBarExpanded: "DataBarExp",
DataBarLimited: "DataBarLtd",
"Linear-Codes": "AllLinear",
"Matrix-Codes": "AllMatrix",
Any: "All",
rMQRCode: "RMQRCode"
}, n = e.map((e) => e[5]), r = e.filter((e) => e[1] === "*").map((e) => e[0]), i = e.filter((e) => e[1] !== "*").map((e) => e[0]), a = i, o = e.filter((e) => e[2] === " ").map((e) => e[0]), s = e.filter((e) => e[3][0] === "l").map((e) => e[0]), c = s, l = e.filter((e) => e[3][0] === "m").map((e) => e[0]), u = l, d = e.filter((e) => e[3][1] === "r").map((e) => e[0]), f = e.filter((e) => e[3][2] === "w" || e[4] !== 0).map((e) => e[0]), p = e.filter((e) => e[3][3] === "G").map((e) => e[0]), m = e.filter((e) => e[3][4] === "R").map((e) => e[0]), h = e.filter((e) => e[3][4] === "I").map((e) => e[0]);
function g(t) {
let n = [], r;
for (let i of e) if (i[1] !== "*") if (!r) i[0] === t && (n.push(i[0]), r = i[1]);
else if (i[1] === r) n.push(i[0]);
else break;
return n;
}
function _(t) {
let n;
for (let r of e) if (r[1] !== "*" && (r[2] === " " && (n = r[0]), r[0] === t)) return n;
}
function v(n) {
var r;
let i = (r = t[n]) == null ? n : r;
for (let t of e) if (t[0] === i || t[5] === i) return t[5];
}
function y(e) {
var n;
return (n = t[e]) == null ? e : n;
}
function b(e) {
return e.map(y).join(",");
}
//#endregion
//#region src/bindings/binarizer.ts
var x = [
"LocalAverage",
"GlobalHistogram",
"FixedThreshold",
"BoolCast"
], S = x;
function C(e) {
return x.indexOf(e);
}
//#endregion
//#region src/bindings/characterSet.ts
var w = /* @__PURE__ */ "Unknown.ASCII.ISO8859_1.ISO8859_2.ISO8859_3.ISO8859_4.ISO8859_5.ISO8859_6.ISO8859_7.ISO8859_8.ISO8859_9.ISO8859_10.ISO8859_11.ISO8859_13.ISO8859_14.ISO8859_15.ISO8859_16.Cp437.Cp1250.Cp1251.Cp1252.Cp1256.Shift_JIS.Big5.GB2312.GB18030.EUC_JP.EUC_KR.UTF16BE.UTF8.UTF16LE.UTF32BE.UTF32LE.BINARY".split("."), T = w;
function E(e) {
return e === "UnicodeBig" ? w.indexOf("UTF16BE") : w.indexOf(e);
}
//#endregion
//#region src/bindings/contentType.ts
var D = [
"Text",
"Binary",
"Mixed",
"GS1",
"ISO15434",
"UnknownECI"
], O = D;
function k(e) {
return D[e];
}
//#endregion
//#region src/bindings/eanAddOnSymbol.ts
var A = [
"Ignore",
"Read",
"Require"
], j = A;
function M(e) {
return A.indexOf(e);
}
//#endregion
//#region src/bindings/textMode.ts
var N = [
"Plain",
"ECI",
"HRI",
"Escaped",
"Hex",
"HexECI"
], P = N;
function F(e) {
return N.indexOf(e);
}
//#endregion
//#region src/bindings/readerOptions.ts
var I = {
formats: [],
tryHarder: !0,
tryRotate: !0,
tryInvert: !0,
tryDownscale: !0,
tryDenoise: !1,
binarizer: "LocalAverage",
isPure: !1,
downscaleFactor: 3,
downscaleThreshold: 500,
minLineCount: 2,
maxNumberOfSymbols: 255,
validateOptionalChecksum: !1,
returnErrors: !1,
eanAddOnSymbol: "Ignore",
textMode: "HRI",
characterSet: "Unknown",
tryCode39ExtendedMode: !0
};
function L(e) {
var t;
return {
...e,
formats: b(e.formats),
binarizer: C(e.binarizer),
eanAddOnSymbol: M(e.eanAddOnSymbol),
textMode: F(e.textMode),
characterSet: E(e.characterSet),
tryCode39ExtendedMode: (t = e.tryCode39ExtendedMode) == null ? !0 : t
};
}
//#endregion
//#region src/bindings/readResult.ts
function R(e) {
return {
...e,
format: e.format,
symbology: e.symbology,
contentType: k(e.contentType)
};
}
//#endregion
//#region src/bindings/writeResult.ts
function z(e) {
var t;
return {
...e,
image: (t = e.image && new Blob([e.image], { type: "image/png" })) == null ? null : t
};
}
//#endregion
//#region src/bindings/writerOptions.ts
var B = {
format: "QRCode",
readerInit: !1,
forceSquareDataMatrix: !1,
ecLevel: "",
scale: 1,
sizeHint: 0,
rotate: 0,
invert: !1,
withHRT: !1,
withQuietZones: !0,
addHRT: !1,
addQuietZones: !0,
options: ""
};
function V(e = B) {
var t, n;
let { format: r = B.format, sizeHint: i = B.sizeHint, readerInit: a = B.readerInit, forceSquareDataMatrix: o = B.forceSquareDataMatrix, ecLevel: s = B.ecLevel, withHRT: c, withQuietZones: l, addHRT: u, addQuietZones: d, options: f = B.options, scale: p, rotate: m = B.rotate, invert: h = B.invert } = e, g = f.split(",").map((e) => e.trim()).filter(Boolean), _ = (e) => {
let t = e.split("=")[0];
g.some((e) => e.split("=")[0] === t) || g.push(e);
};
a && _("readerInit"), o && _("forceSquare"), s && _(`ecLevel=${s}`);
let v = p == null ? i > 0 ? -Math.trunc(Math.abs(i)) : B.scale : p;
return {
format: y(r),
options: g.join(","),
scale: v,
rotate: m,
invert: h,
addHRT: (t = u == null ? c : u) == null ? B.addHRT : t,
addQuietZones: (n = d == null ? l : d) == null ? B.addQuietZones : n
};
}
//#endregion
//#region src/share.ts
var H = "3.0.3", U = "1681c2e7bde3b43073a58fde4083dc68ef424763", W = { locateFile: (e, t) => {
let n = e.match(/_(.+?)\.wasm$/);
return n ? `https://fastly.jsdelivr.net/npm/zxing-wasm@3.0.3/dist/${n[1]}/${e}` : t + e;
} }, G = /* @__PURE__ */ new WeakMap();
function K(e, t) {
return Object.is(e, t) || Object.keys(e).length === Object.keys(t).length && Object.keys(e).every((n) => Object.hasOwn(t, n) && e[n] === t[n]);
}
function q(e, { overrides: t, equalityFn: n = K, fireImmediately: r = !1 } = {}) {
var i, a;
let [o, s] = (i = G.get(e)) == null ? [W] : i, c = t == null ? o : t, l;
if (r) {
if (s && (l = n(o, c))) return s;
let t = e({ ...c });
return G.set(e, [c, t]), t;
}
((a = l) == null ? n(o, c) : a) || G.set(e, [c]);
}
function J(e) {
G.delete(e);
}
function Y(e) {
let t = e.byteLength >> 2, n = new Uint8Array(t);
for (let r = 0; r < t; r++) {
let t = r << 2;
n[r] = 306 * e[t] + 601 * e[t + 1] + 117 * e[t + 2] + 512 >> 10;
}
return n;
}
async function X(e, t, n = I) {
let r = {
...I,
...n
}, i = await q(e, { fireImmediately: !0 }), a, o;
if ("width" in t && "height" in t && "data" in t) {
let { data: e, width: n, height: s } = t, c = Y(e), l = c.byteLength;
if (o = i._malloc(l), !o) throw Error(`Failed to allocate ${l} bytes in WASM memory`);
try {
i.HEAPU8.set(c, o), a = i.readBarcodesFromPixmap(o, n, s, L(r));
} finally {
i._free(o);
}
} else {
let e, n;
if ("buffer" in t) [e, n] = [t.byteLength, t];
else if ("byteLength" in t) [e, n] = [t.byteLength, new Uint8Array(t)];
else if ("size" in t) [e, n] = [t.size, new Uint8Array(await t.arrayBuffer())];
else throw TypeError("Invalid input type");
if (o = i._malloc(e), !o) throw Error(`Failed to allocate ${e} bytes in WASM memory`);
try {
i.HEAPU8.set(n, o), a = i.readBarcodesFromImage(o, e, L(r));
} finally {
i._free(o);
}
}
let s = [];
for (let e = 0; e < a.size(); ++e) s.push(R(a.get(e)));
return s;
}
async function Z(e, t, n = B) {
let r = V(n), i = await q(e, { fireImmediately: !0 });
if (typeof t == "string") return z(i.writeBarcodeFromText(t, r));
let { byteLength: a } = t, o = i._malloc(a);
if (!o) throw Error(`Failed to allocate ${a} bytes in WASM memory`);
try {
return i.HEAPU8.set(t, o), z(i.writeBarcodeFromBytes(o, a, r));
} finally {
i._free(o);
}
}
//#endregion
//#region src/bindings/exposedReaderBindings.ts
var Q = {
...I,
formats: [...I.formats]
}, $ = { ...B };
//#endregion
export { a as A, f as C, l as D, s as E, c as F, u as I, g as L, b as M, v as N, d as O, _ as P, o as S, h as T, x as _, q as a, n as b, Z as c, A as d, j as f, T as g, w as h, H as i, y as j, m as k, N as l, O as m, Q as n, J as o, D as p, U as r, X as s, $ as t, P as u, S as v, p as w, r as x, i as y };