UNPKG

@bwip-js/browser

Version:

JavaScript barcode generator supporting over 100 types and standards.

1,566 lines (1,522 loc) 1.97 MB
// This file is part of the bwip-js project available at: // // http://metafloor.github.io/bwip-js // // Copyright (c) 2011-2025 Mark Warren // // This file contains code automatically generated from: // Barcode Writer in Pure PostScript - Version 2025-04-19 // Copyright (c) 2004-2024 Terry Burton // // The MIT License // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // "use strict"; // bwip-js // Barcode Writer in Pure JavaScript // https://github.com/metafloor/bwip-js // // This code was automatically generated from: // Barcode Writer in Pure PostScript - Version 2025-04-19 // // Copyright (c) 2011-2025 Mark Warren // Copyright (c) 2004-2024 Terry Burton // // Licensed MIT. See the LICENSE file in the bwip-js root directory. // bwip-js/barcode-hdr.js // // This code is injected above the cross-compiled barcode.js. // The BWIPJS object (graphics interface) var $$ = null; var $j = 0; // stack pointer var $k = []; // operand stack var $_ = {}; // base of the dictionary stack // Array ctor // $a() : Build a new array up to the Infinity-marker on the stack. // $a(arr) : Convert native array to a "view" of the array. // $a(len) : Create a new array of length `len` function $a(a) { if (!arguments.length) { for (var i = $j - 1; i >= 0 && $k[i] !== Infinity; i--); if (i < 0) { throw new Error('array-marker-not-found'); } a = $k.splice(i + 1, $j - 1 - i); $j = i; } else if (!(a instanceof Array)) { a = new Array(+arguments[0]); for (var i = 0, l = a.length; i < l; i++) { a[i] = null; } } a.b = a; // base array a.o = 0; // offset into base return a; } // dict ctor // $d() : look for the Infinity marker on the stack function $d() { // Build the dictionary in the order the keys/values were pushed so enumeration // occurs in the correct sequence. for (var mark = $j - 1; mark >= 0 && $k[mark] !== Infinity; mark -= 2) { if ($k[mark - 1] === Infinity) { throw new Error('dict-malformed-stack'); } } if (mark < 0) { throw new Error('dict-marker-not-found'); } var d = new Map; for (var i = mark + 1; i < $j; i += 2) { // Unlike javascript, postscript dict keys differentiate between // numbers and the string representation of a number. var k = $k[i]; // "key" into the dict entry var t = typeof k; if (t == 'number' || t == 'string') { d.set(k, $k[i + 1]); } else if (k instanceof Uint8Array) { d.set($z(k), $k[i + 1]); } else { throw new Error('dict-not-a-valid-key(' + k + ')'); } } $j = mark; return d; } // string ctor // s(number) : create zero-filled string of number-length // s(string) : make a copy of the string // s(uint8[]) : make a copy of the string // // Returns a Uint8Array-string. function $s(v) { var t = typeof v; if (t === 'number') { return new Uint8Array(v); } if (t !== 'string') { v = '' + v; } var s = new Uint8Array(v.length); for (var i = 0, l = v.length; i < l; i++) { s[i] = v.charCodeAt(i); } return s; } // ... n c roll function $r(n, c) { if ($j < n) { throw new Error('roll: --stack-underflow--'); } if (!c) { return; } if (c < 0) { var t = $k.splice($j - n, -c); } else { var t = $k.splice($j - n, n - c); } $k.splice.apply($k, [$j - t.length, 0].concat(t)); } // Primarily designed to convert uint8-string to string, but will call the // the toString() method on any value. function $z(s) { if (s instanceof Uint8Array) { return String.fromCharCode.apply(null, s); } return '' + s; } // Copies source to dest and returns a view of just the copied characters function $strcpy(dst, src) { if (typeof dst === 'string') { dst = $s(dst); } if (src instanceof Uint8Array) { for (var i = 0, l = src.length; i < l; i++) { dst[i] = src[i]; } } else { for (var i = 0, l = src.length; i < l; i++) { dst[i] = src.charCodeAt(i); } } return src.length < dst.length ? dst.subarray(0, src.length) : dst; } // Copies source to dest and should (but doesn't) return a view of just the copied elements function $arrcpy(dst, src) { for (var i = 0, l = src.length; i < l; i++) { dst[i] = src[i]; } dst.length = src.length; return dst; } // cvs operator - convert a value to its string representation // s : string to store into // v : any value function $cvs(s, v) { var t = typeof v; if (t == 'number' || t == 'boolean' || v === null) { v = '' + v; } else if (t !== 'string') { v = '--nostringval--'; } for (var i = 0, l = v.length; i < l; i++) { s[i] = v.charCodeAt(i); } $k[$j++] = i < s.length ? s.subarray(0, i) : s; } // cvi operator - converts a numeric string value to integer. function $cvi(s) { if (s instanceof Uint8Array) { // nul-chars on the end of a string are ignored by postscript but cause javascript // to return a zero result. return String.fromCharCode.apply(null, s).replace(/\0+$/, '') | 0; } return ('' + s) | 0; } // cvrs operator - convert a number to a radix string // s : string to store into // n : number // r : radix function $cvrs(s, n, r) { return $strcpy(s, (~~n).toString(r).toUpperCase()); } // cvx - convert to executable. // This is only used by BWIPP to convert <XX> string literals. function $cvx(s) { s = $z(s) var m = /^\s*<((?:[0-9a-fA-F]{2})+)>\s*$/.exec(s); if (!m) { throw new Error('cvx: not a <HH> hex string literal'); } var h = m[1]; var l = h.length >> 1; var u = new Uint8Array(l); for (var i = 0, j = 0; i < l; i++) { var c0 = h.charCodeAt(j++); var c1 = h.charCodeAt(j++); u[i] = ((c0 < 58 ? c0 - 48 : (c0 & 15) + 9) << 4) + (c1 < 58 ? c1 - 48 : (c1 & 15) + 9); } return u; } // get operator // s : source // k : key function $get(s, k) { if (s instanceof Uint8Array) { return s[k]; } if (typeof s === 'string') { return s.charCodeAt(k); } if (s instanceof Array) { return s.b[s.o + k]; } if (k instanceof Uint8Array) { return s.get($z(k)); } return s.get(k); } // put operator // d : dest // k : key // v : value function $put(d, k, v) { if (d instanceof Uint8Array) { d[k] = v; } else if (d instanceof Array) { d.b[d.o + k] = v; } else if (typeof d == 'object') { if (k instanceof Uint8Array) { d.set($z(k), v); } else { d.set(k, v); } } else { throw new Error('put-not-writable-' + (typeof d)); } } // getinterval operator // s : src // o : offset // l : length function $geti(s, o, l) { if (s instanceof Uint8Array) { return s.subarray(o, o + l); } if (s instanceof Array) { var a = new Array(l); a.b = s.b; // base array a.o = s.o + o; // offset into base return a; } // Must be a string return s.substr(o, l); } // putinterval operator // d : dst // o : offset // s : src function $puti(d, o, s) { if (d instanceof Uint8Array) { if (typeof s == 'string') { for (var i = 0, l = s.length; i < l; i++) { d[o + i] = s.charCodeAt(i); } } else { // When both d and s are the same, we want to copy // backwards, which works for the general case as well. for (var i = s.length - 1; i >= 0; i--) { d[o + i] = s[i]; } } } else if (d instanceof Array) { // Operate on the base arrays var darr = d.b; var doff = o + d.o; var sarr = s.b; var soff = s.o; for (var i = 0, l = s.length; i < l; i++) { darr[doff + i] = sarr[soff + i]; } } else { throw new Error('putinterval-not-writable-' + (typeof d)); } } // type operator function $type(v) { // null can be mis-typed - get it out of the way if (v == null) { return 'nulltype'; } var t = typeof v; if (t == 'number') { return v % 1 ? 'realtype' : 'integertype'; } if (t == 'boolean') { return 'booleantype'; } if (t == 'string' || v instanceof Uint8Array) { return 'stringtype'; } if (t == 'function') { return 'operatortype'; } if (v instanceof Array) { return 'arraytype'; } return 'dicttype'; // filetype // fonttype // gstatetype // marktype (v === Infinity) // nametype // savetype } // anchorsearch operator // string seek anchorsearch suffix seek true %if-found // string false %if-not-found function $anchorsearch(str, seek) { if (!(str instanceof Uint8Array)) { str = $s(str); } var i = 0, ls = str.length, lk = seek.length; // Optimize for single characters. if (lk == 1) { var cd = seek instanceof Uint8Array ? seek[0] : seek.charCodeAt(0); i = str[0] == cd ? 1 : ls; } else if (seek.length <= ls) { // Slow path, if (!(seek instanceof Uint8Array)) { seek = $s(seek); } for (; i < lk && str[i] == seek[i]; i++); } if (i == lk) { $k[$j++] = str.subarray(lk); $k[$j++] = str.subarray(0, lk); $k[$j++] = true; } else { $k[$j++] = str; $k[$j++] = false; } } // search operator // string seek search suffix match prefix true %if-found // string false %if-not-found function $search(str, seek) { if (!(str instanceof Uint8Array)) { str = $s(str); } var ls = str.length; // Virtually all uses of search in BWIPP are for single-characters. // Optimize for that case. if (seek.length == 1) { var lk = 1; var cd = seek instanceof Uint8Array ? seek[0] : seek.charCodeAt(0); for (var i = 0; i < ls && str[i] != cd; i++); } else { // Slow path, if (!(seek instanceof Uint8Array)) { seek = $s(seek); } var lk = seek.length; var cd = seek[0]; for (var i = 0; i < ls && str[i] != cd; i++); while (i < ls) { for (var j = 1; j < lk && str[i + j] === seek[j]; j++); if (j === lk) { break; } for (i++; i < ls && str[i] != cd; i++); } } if (i < ls) { $k[$j++] = str.subarray(i + lk); $k[$j++] = str.subarray(i, i + lk); $k[$j++] = str.subarray(0, i); $k[$j++] = true; } else { $k[$j++] = str; $k[$j++] = false; } } // The callback is omitted when forall is being used just to push onto the // stack. The callback normally returns undefined. A return of true means break. function $forall(o, cb) { if (o instanceof Uint8Array) { for (var i = 0, l = o.length; i < l; i++) { $k[$j++] = o[i]; if (cb && cb()) break; } } else if (o instanceof Array) { // The array may be a view. for (var a = o.b, i = o.o, l = o.o + o.length; i < l; i++) { $k[$j++] = a[i]; if (cb && cb()) break; } } else if (typeof o === 'string') { for (var i = 0, l = o.length; i < l; i++) { $k[$j++] = o.charCodeAt(i); if (cb && cb()) break; } } else if (o instanceof Map) { for (var keys = o.keys(), i = 0, l = o.size; i < l; i++) { var id = keys.next().value; $k[$j++] = id; $k[$j++] = o.get(id); if (cb && cb()) break; } } else { for (var id in o) { $k[$j++] = id; $k[$j++] = o[id]; if (cb && cb()) break; } } } function $cleartomark() { while ($j > 0 && $k[--$j] !== Infinity); } function $counttomark() { for (var i = $j - 1; i >= 0 && $k[i] !== Infinity; i--); return $j - i - 1; } function $aload(a) { for (var i = 0, l = a.length, b = a.b, o = a.o; i < l; i++) { $k[$j++] = b[o + i]; } // This push has been optimized out. See $.aload() in psc.js. //$k[$j++] = a; } function $astore(a) { for (var i = 0, l = a.length, b = a.b, o = a.o + l - 1; i < l; i++) { b[o - i] = $k[--$j]; } $k[$j++] = a; } function $eq(a, b) { if (typeof a === 'string' && typeof b === 'string') { return a == b; } if (a instanceof Uint8Array && b instanceof Uint8Array) { if (a.length != b.length) { return false; } for (var i = 0, l = a.length; i < l; i++) { if (a[i] != b[i]) { return false; } } return true; } if (a instanceof Uint8Array && typeof b === 'string' || b instanceof Uint8Array && typeof a === 'string') { if (a instanceof Uint8Array) { a = $z(a); } else { b = $z(b); } return a == b; } return a == b; } function $ne(a, b) { return !$eq(a, b); } function $lt(a, b) { if (a instanceof Uint8Array) { a = $z(a); } if (b instanceof Uint8Array) { b = $z(b); } return a < b; } function $le(a, b) { if (a instanceof Uint8Array) { a = $z(a); } if (b instanceof Uint8Array) { b = $z(b); } return a <= b; } function $gt(a, b) { if (a instanceof Uint8Array) { a = $z(a); } if (b instanceof Uint8Array) { b = $z(b); } return a > b; } function $ge(a, b) { if (a instanceof Uint8Array) { a = $z(a); } if (b instanceof Uint8Array) { b = $z(b); } return a >= b; } function $an(a, b) { // and return (typeof a === 'boolean') ? a && b : a & b; } function $or(a, b) { // or return (typeof a === 'boolean') ? a || b : a | b; } function $xo(a, b) { // xor return (typeof a === 'boolean') ? !a && b || a && !b : a ^ b; } function $nt(a) { return typeof a == 'boolean' ? !a : ~a; } // emulate single-precision floating-point (pseudo-polyfill for Math.fround) var $f = (function(fa) { return function(v) { return Number.isInteger(v) ? v : (fa[0] = v, fa[0]); }; })(new Float32Array(1)); // This is a replacement for the BWIPP raiseerror function. function bwipp_raiseerror() { var info = $k[--$j]; var name = $k[--$j]; if (typeof info == 'string' || info instanceof Uint8Array) { throw new Error($z(name) + ": " + $z(info)); } else { $k[$j++] = info; // see mktests debugEqual // Match ghostscript output throw $z(name) + '\nAdditional information: ' + tostring(info); } function tostring(v) { if (v instanceof Array) { let s = ''; for (let i = v.o, l = v.o + v.length; i < l; i++) { s += ' ' + tostring(v.b[i]); } return '[' + s.substr(1) + ']'; } else if (v instanceof Uint8Array) { return String.fromCharCode.apply(String, v); } else if (v instanceof Map) { let s = ''; for (const [key, val] of v) { s += ' ' + tostring(key) + ' ' + tostring(val); } return '<<' + s.substr(1) + '>>'; } else if (v && typeof v == 'object') { let s = ''; for (let id in v) { s += ' ' + tostring(id) + ' ' + tostring(v[id]); } return '<<' + s.substr(1) + '>>'; } else { return '' + v; } } } // This is a replacement for the BWIPP processoptions function. // We cannot use the BWIPP version due to two reasons: // - legacy code allows strings to be numbers and numbers to be strings // - in javascript, there is no way to tell the difference between a real // number that is an integer, and an actual integer. // // options currentdict processoptions exec -> options function bwipp_processoptions() { var dict = $k[--$j]; var opts = $k[$j - 1]; if (typeof opts == 'string') { let vals = opts.trim().split(/ +/g) $k[$j - 1] = opts = new Map(); for (let i = 0; i < vals.length; i++) { let pair = vals[i].split('='); if (pair.length == 1) { opts.set(pair[0], true); } else { opts.set(pair[0], pair[1]); } } } for (var id in dict) { var val; if (!opts.has(id)) { continue; } val = opts.get(id); var def = dict[id]; var typ = typeof def; // null is a placeholder for realtype if (def == null || typ == 'number') { // This allows for numeric strings if (!isFinite(+val)) { throw new Error('bwipp.invalidOptionType: ' + id + ': not a realtype: ' + val); } if (typeof val == 'string') { val = +val; opts.set(id, val); } } else if (typ == 'boolean') { if (val !== true && val !== false) { // In keeping with the ethos of javascript, allow a more relaxed // interpretation of boolean. if (val == null || (val | 0) === val) { val = !!val; } else if (val == 'true') { val = true; } else if (val == 'false') { val = false; } else { throw new Error('bwipp.invalidOptionType: ' + id + ': not a booleantype: ' + val); } opts.set(id, val); } } else if (typ == 'string' || def instanceof Uint8Array) { // This allows numbers to be strings if (typeof val == 'number') { val = '' + val; opts.set(id, val); } else if (typeof val != 'string' && !(val instanceof Uint8Array)) { throw new Error('bwipp.invalidOptionType: ' + id + ': not a stringtype: ' + val); } } // Set the option into the dictionary dict[id] = val; } } // Replacement for loadctx which contains complex postscript operations // that we don't implement correctly. // f is a reference to the enclosing function. function bwipp_loadctx(f) { if (!f.$ctx) { f.$ctx = {}; } var next = Object.getPrototypeOf($_); Object.setPrototypeOf(f.$ctx, next); Object.setPrototypeOf($_, f.$ctx); } function bwipp_parseinput() { $_ = Object.create($_); //#200 bwipp_loadctx(bwipp_parseinput); //#202 $_.fncvals = $k[--$j]; //#204 $_.barcode = $k[--$j]; //#205 var _2 = 'parse'; //#207 $_[_2] = $get($_.fncvals, _2); //#207 delete $_.fncvals[_2]; //#207 var _6 = 'parsefnc'; //#208 $_[_6] = $get($_.fncvals, _6); //#208 delete $_.fncvals[_6]; //#208 var _A = 'parseonly'; //#209 var _C = $get($_.fncvals, _A) !== undefined; //#209 $_[_A] = _C; //#209 delete $_.fncvals[_A]; //#209 var _E = 'eci'; //#210 var _G = $get($_.fncvals, _E) !== undefined; //#210 $_[_E] = _G; //#210 delete $_.fncvals[_E]; //#210 if (!bwipp_parseinput.__225__) { //#225 $_ = Object.create($_); //#225 $k[$j++] = Infinity; //#214 var _I = $a(['NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'TAB', 'LF', 'VT', 'FF', 'CR', "", "", 'DLE', 'DC1', 'DC2', 'DC3', 'DC4', 'NAK', 'SYN', 'ETB', 'CAN', 'EM', 'SUB', 'ESC', 'FS', 'GS', 'RS', 'US']); //#219 $k[$j++] = 0; //#223 for (var _J = 0, _K = _I.length; _J < _K; _J++) { //#223 var _M = $k[--$j]; //#222 $k[$j++] = $get(_I, _J); //#222 $k[$j++] = _M; //#222 $k[$j++] = $f(_M + 1); //#222 } //#222 $j--; //#223 $_.ctrl = $d(); //#224 for (var id in $_) $_.hasOwnProperty(id) && (bwipp_parseinput.$ctx[id] = $_[id]); //#224 bwipp_parseinput.__225__ = 1; //#224 $_ = Object.getPrototypeOf($_); //#224 } //#224 $_.msg = $a($_.barcode.length); //#227 $_.j = 0; //#228 $k[$j++] = $_.barcode; //#351 for (;;) { //#351 $search($k[--$j], "^"); //#230 var _T = $k[--$j]; //#230 var _U = $k[--$j]; //#230 $k[$j++] = _T; //#233 $k[$j++] = _U.length; //#233 $k[$j++] = $_.msg; //#233 $k[$j++] = $_.j; //#233 $k[$j++] = _U; //#233 $k[$j++] = Infinity; //#233 var _X = $k[--$j]; //#233 var _Y = $k[--$j]; //#233 $k[$j++] = _X; //#233 $forall(_Y); //#233 var _Z = $a(); //#233 var _a = $k[--$j]; //#233 $puti($k[--$j], _a, _Z); //#233 $_.j = $f($k[--$j] + $_.j); //#234 if ($k[--$j]) { //#349 $j--; //#236 for (var _f = 0, _g = 1; _f < _g; _f++) { //#347 if ($an($nt($_.parse), $nt($_.parsefnc))) { //#243 $put($_.msg, $_.j, 94); //#240 $_.j = $f($_.j + 1); //#241 break; //#242 } //#242 $put($_.msg, $_.j, 94); //#246 $_.j = $f($_.j + 1); //#247 if ($_.parse) { //#290 var _q = $k[--$j]; //#251 $k[$j++] = _q; //#262 if (_q.length >= 3) { //#262 var _r = $k[--$j]; //#252 var _s = $geti(_r, 0, 3); //#252 var _t = $_.ctrl; //#252 var _u = $get(_t, _s) !== undefined; //#253 $k[$j++] = _r; //#261 $k[$j++] = _t; //#261 $k[$j++] = _s; //#261 if (_u) { //#260 $_.j = $f($_.j - 1); //#254 var _w = $k[--$j]; //#255 $put($_.msg, $_.j, $get($k[--$j], _w)); //#255 $_.j = $f($_.j + 1); //#256 var _12 = $k[--$j]; //#257 $k[$j++] = $geti(_12, 3, _12.length - 3); //#258 break; //#258 } else { //#260 $j -= 2; //#260 } //#260 } //#260 var _14 = $k[--$j]; //#263 $k[$j++] = _14; //#274 if (_14.length >= 2) { //#274 var _15 = $k[--$j]; //#264 var _16 = $geti(_15, 0, 2); //#264 var _17 = $_.ctrl; //#264 var _18 = $get(_17, _16) !== undefined; //#265 $k[$j++] = _15; //#273 $k[$j++] = _17; //#273 $k[$j++] = _16; //#273 if (_18) { //#272 $_.j = $f($_.j - 1); //#266 var _1A = $k[--$j]; //#267 $put($_.msg, $_.j, $get($k[--$j], _1A)); //#267 $_.j = $f($_.j + 1); //#268 var _1G = $k[--$j]; //#269 $k[$j++] = $geti(_1G, 2, _1G.length - 2); //#270 break; //#270 } else { //#272 $j -= 2; //#272 } //#272 } //#272 var _1I = $k[--$j]; //#275 $k[$j++] = _1I; //#289 if (_1I.length >= 3) { //#289 var _1J = $k[--$j]; //#276 var _1K = $geti(_1J, 0, 3); //#276 $k[$j++] = _1J; //#278 $k[$j++] = true; //#278 for (var _1L = 0, _1M = _1K.length; _1L < _1M; _1L++) { //#278 var _1N = $get(_1K, _1L); //#278 if ((_1N < 48) || (_1N > 57)) { //#277 $j--; //#277 $k[$j++] = false; //#277 } //#277 } //#277 if ($k[--$j]) { //#288 var _1P = $k[--$j]; //#280 var _1R = $cvi($geti(_1P, 0, 3)); //#280 $k[$j++] = _1P; //#283 $k[$j++] = _1R; //#283 if (_1R > 255) { //#283 $j -= 2; //#281 $k[$j++] = 'bwipp.invalidOrdinal#282'; //#282 $k[$j++] = "Ordinal must be 000 to 255"; //#282 bwipp_raiseerror(); //#282 } //#282 $_.j = $f($_.j - 1); //#284 $put($_.msg, $_.j, $k[--$j]); //#285 $_.j = $f($_.j + 1); //#286 var _1X = $k[--$j]; //#287 $k[$j++] = $geti(_1X, 3, _1X.length - 3); //#287 } //#287 } //#287 } //#287 if (($or($_.parseonly, $nt($_.parsefnc))) || ($get($_.msg, $f($_.j - 1)) != 94)) { //#295 break; //#295 } //#295 $_.j = $f($_.j - 1); //#298 var _1f = $k[--$j]; //#299 $k[$j++] = _1f; //#302 if (_1f.length < 1) { //#302 $j--; //#300 $k[$j++] = 'bwipp.truncatedCaret#301'; //#301 $k[$j++] = "Caret character truncated"; //#301 bwipp_raiseerror(); //#301 } //#301 var _1g = $k[--$j]; //#303 $k[$j++] = _1g; //#308 if ($get(_1g, 0) == 94) { //#308 $put($_.msg, $_.j, 94); //#304 $_.j = $f($_.j + 1); //#305 var _1l = $k[--$j]; //#306 $k[$j++] = $geti(_1l, 1, _1l.length - 1); //#307 break; //#307 } //#307 var _1n = $k[--$j]; //#309 $k[$j++] = _1n; //#312 if (_1n.length < 3) { //#312 $j--; //#310 $k[$j++] = 'bwipp.truncatedFNC#311'; //#311 $k[$j++] = "Function character truncated"; //#311 bwipp_raiseerror(); //#311 } //#311 var _1o = $k[--$j]; //#313 $k[$j++] = _1o; //#330 if ($eq($geti(_1o, 0, 3), "ECI") && $_.eci) { //#330 var _1r = $k[--$j]; //#314 $k[$j++] = _1r; //#317 if (_1r.length < 9) { //#317 $j--; //#315 $k[$j++] = 'bwipp.truncatedECI#316'; //#316 $k[$j++] = "ECI truncated"; //#316 bwipp_raiseerror(); //#316 } //#316 var _1s = $k[--$j]; //#318 var _1t = $geti(_1s, 3, 6); //#318 $k[$j++] = _1s; //#324 $k[$j++] = _1t; //#324 for (var _1u = 0, _1v = _1t.length; _1u < _1v; _1u++) { //#324 var _1w = $get(_1t, _1u); //#324 if ((_1w < 48) || (_1w > 57)) { //#323 $j -= 2; //#321 $k[$j++] = 'bwipp.invalidECI#322'; //#322 $k[$j++] = "ECI must be 000000 to 999999"; //#322 bwipp_raiseerror(); //#322 } //#322 } //#322 var _1x = $k[--$j]; //#325 $k[$j++] = 0; //#325 $forall(_1x, function() { //#325 var _1y = $k[--$j]; //#325 var _1z = $k[--$j]; //#325 $k[$j++] = ($f(_1z - $f(_1y - 48))) * 10; //#325 }); //#325 $put($_.msg, $_.j, (~~($k[--$j] / 10)) - 1000000); //#326 $_.j = $f($_.j + 1); //#327 var _24 = $k[--$j]; //#328 $k[$j++] = $geti(_24, 9, _24.length - 9); //#329 break; //#329 } //#329 var _26 = $k[--$j]; //#331 $k[$j++] = _26; //#334 if (_26.length < 4) { //#334 $j--; //#332 $k[$j++] = 'bwipp.truncatedFNC#333'; //#333 $k[$j++] = "Function character truncated"; //#333 bwipp_raiseerror(); //#333 } //#333 var _27 = $k[--$j]; //#335 var _28 = $geti(_27, 0, 4); //#335 var _2A = $get($_.fncvals, _28) !== undefined; //#335 $k[$j++] = _27; //#340 $k[$j++] = _28; //#340 if (!_2A) { //#340 var _2B = $k[--$j]; //#336 var _2C = $s(_2B.length + 28); //#336 $puti(_2C, 28, _2B); //#336 $puti(_2C, 0, "Unknown function character: "); //#337 var _2D = $k[--$j]; //#338 $k[$j++] = _2C; //#338 $k[$j++] = _2D; //#338 $j--; //#338 var _2E = $k[--$j]; //#339 $k[$j++] = 'bwipp.unknownFNC#339'; //#339 $k[$j++] = _2E; //#339 bwipp_raiseerror(); //#339 } //#339 $put($_.msg, $_.j, $get($_.fncvals, $k[--$j])); //#342 $_.j = $f($_.j + 1); //#343 var _2L = $k[--$j]; //#344 $k[$j++] = $geti(_2L, 4, _2L.length - 4); //#345 break; //#345 } //#345 } else { //#349 break; //#349 } //#349 } //#349 if ($nt($_.parseonly)) { //#357 $k[$j++] = $geti($_.msg, 0, $_.j); //#354 } else { //#357 $k[$j++] = $s($_.j); //#357 for (var _2V = 0, _2U = $f($_.j - 1); _2V <= _2U; _2V += 1) { //#357 var _2W = $k[--$j]; //#357 $put(_2W, _2V, $get($_.msg, _2V)); //#357 $k[$j++] = _2W; //#357 } //#357 } //#357 $_ = Object.getPrototypeOf($_); //#360 $_ = Object.getPrototypeOf($_); //#362 } //bwipp_parseinput function bwipp_gs1process() { $_ = Object.create($_); //#387 bwipp_loadctx(bwipp_gs1process); //#389 if (!bwipp_gs1process.__2486__) { //#2486 $_ = Object.create($_); //#2486 var _1 = new Map([ ["cset", 'N'], ["min", 18], ["max", 18], ["opt", false], ["linters", $a(['lintcsum', 'lintkeyoff1'])] ]); //#397 var _2 = $a([_1]); //#397 var _3 = $a([]); //#399 var _4 = new Map([ ["parts", _2], ["dlpkey", _3] ]); //#399 var _5 = $a(['lintcsum', 'lintkeyoff1']); //#406 var _6 = new Map([ ["cset", 'N'], ["min", 14], ["max", 14], ["opt", false], ["linters", _5] ]); //#406 var _7 = $a([_6]); //#406 var _8 = $a(["255", "37"]); //#408 var _9 = $a(["22", "10", "21"]); //#409 var _A = $a(["235"]); //#409 var _B = $a([_9, _A]); //#409 var _C = new Map([ ["parts", _7], ["ex", _8], ["dlpkey", _B] ]); //#409 var _D = $a(['lintcsum', 'lintkeyoff1']); //#416 var _E = new Map([ ["cset", 'N'], ["min", 14], ["max", 14], ["opt", false], ["linters", _D] ]); //#416 var _F = $a([_E]); //#416 var _G = $a(["01", "03"]); //#418 var _H = $a(["37"]); //#419 var _I = $a([_H]); //#419 var _J = $a([_I]); //#419 var _K = new Map([ ["parts", _F], ["ex", _G], ["req", _J] ]); //#419 var _L = $a(['lintcsum', 'lintkeyoff1']); //#426 var _M = new Map([ ["cset", 'N'], ["min", 14], ["max", 14], ["opt", false], ["linters", _L] ]); //#426 var _N = $a([_M]); //#426 var _O = $a(["01", "02", "37"]); //#428 var _P = new Map([ ["parts", _N], ["ex", _O], ["dlattr", false] ]); //#429 var _R = new Map([ ["cset", 'X'], ["min", 1], ["max", 20], ["opt", false], ["linters", $a([])] ]); //#436 var _a = new Map([ ["parts", $a([_R])], ["req", $a([$a([$a(["01"]), $a(["02"]), $a(["03"]), $a(["8006"]), $a(["8026"])])])] ]); //#438 var _c = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a(['lintyymmd0'])] ]); //#445 var _k = new Map([ ["parts", $a([_c])], ["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])] ]); //#447 var _m = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a(['lintyymmd0'])] ]); //#454 var _r = new Map([ ["parts", $a([_m])], ["req", $a([$a([$a(["8020"])])])] ]); //#456 var _t = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a(['lintyymmd0'])] ]); //#463 var _11 = new Map([ ["parts", $a([_t])], ["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])] ]); //#465 var _13 = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a(['lintyymmd0'])] ]); //#474 var _1C = new Map([ ["parts", $a([_13])], ["req", $a([$a([$a(["01"]), $a(["02"]), $a(["255"]), $a(["8006"]), $a(["8026"])])])] ]); //#476 var _1E = new Map([ ["cset", 'N'], ["min", 2], ["max", 2], ["opt", false], ["linters", $a([])] ]); //#483 var _1M = new Map([ ["parts", $a([_1E])], ["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])] ]); //#485 var _1O = new Map([ ["cset", 'X'], ["min", 1], ["max", 20], ["opt", false], ["linters", $a([])] ]); //#492 var _1W = new Map([ ["parts", $a([_1O])], ["ex", $a(["235"])], ["req", $a([$a([$a(["01"]), $a(["03"]), $a(["8006"])])])], ["dlattr", false] ]); //#496 var _1Y = new Map([ ["cset", 'X'], ["min", 1], ["max", 20], ["opt", false], ["linters", $a([])] ]); //#503 var _1d = new Map([ ["parts", $a([_1Y])], ["req", $a([$a([$a(["01"])])])], ["dlattr", false] ]); //#506 var _1f = new Map([ ["cset", 'X'], ["min", 1], ["max", 28], ["opt", false], ["linters", $a([])] ]); //#513 var _1k = new Map([ ["parts", $a([_1f])], ["req", $a([$a([$a(["01"])])])], ["dlattr", false] ]); //#516 var _1m = new Map([ ["cset", 'X'], ["min", 1], ["max", 30], ["opt", false], ["linters", $a([])] ]); //#523 var _1u = new Map([ ["parts", $a([_1m])], ["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])] ]); //#525 var _1w = new Map([ ["cset", 'N'], ["min", 1], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#533 var _24 = $a([$a([$a(["01"]), $a(["02"]), $a(["03"]), $a(["8006"]), $a(["8026"])])]); //#535 var _25 = new Map([ ["parts", $a([_1w])], ["req", _24] ]); //#535 var _27 = new Map([ ["cset", 'X'], ["min", 1], ["max", 20], ["opt", false], ["linters", $a([])] ]); //#542 var _2C = new Map([ ["parts", $a([_27])], ["req", $a([$a([$a(["01"])])])] ]); //#544 var _2E = new Map([ ["cset", 'X'], ["min", 1], ["max", 30], ["opt", false], ["linters", $a([])] ]); //#551 var _2M = new Map([ ["parts", $a([_2E])], ["req", $a([$a([$a(["01"]), $a(["8006"])]), $a([$a(["21"])])])] ]); //#553 var _2O = new Map([ ["cset", 'X'], ["min", 1], ["max", 30], ["opt", false], ["linters", $a([])] ]); //#560 var _2U = new Map([ ["parts", $a([_2O])], ["req", $a([$a([$a(["01"]), $a(["8006"])])])] ]); //#562 var _2W = new Map([ ["cset", 'N'], ["min", 13], ["max", 13], ["opt", false], ["linters", $a(['lintcsum', 'lintkey'])] ]); //#569 var _2Y = new Map([ ["cset", 'X'], ["min", 1], ["max", 17], ["opt", true], ["linters", $a([])] ]); //#570 var _2b = new Map([ ["parts", $a([_2W, _2Y])], ["dlpkey", $a([])] ]); //#572 var _2d = new Map([ ["cset", 'X'], ["min", 1], ["max", 20], ["opt", false], ["linters", $a([])] ]); //#579 var _2i = new Map([ ["parts", $a([_2d])], ["req", $a([$a([$a(["414"])])])], ["dlattr", false] ]); //#582 var _2k = new Map([ ["cset", 'N'], ["min", 13], ["max", 13], ["opt", false], ["linters", $a(['lintcsum', 'lintkey'])] ]); //#589 var _2m = new Map([ ["cset", 'N'], ["min", 1], ["max", 12], ["opt", true], ["linters", $a([])] ]); //#590 var _2q = new Map([ ["parts", $a([_2k, _2m])], ["ex", $a(["01", "02", "415", "8006", "8020", "8026"])], ["dlpkey", $a([])] ]); //#593 var _2s = new Map([ ["cset", 'N'], ["min", 1], ["max", 8], ["opt", false], ["linters", $a([])] ]); //#600 var _2y = new Map([ ["parts", $a([_2s])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#602 var _30 = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#609 var _37 = new Map([ ["parts", $a([_30])], ["ex", $a(["310n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#612 var _39 = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#624 var _3G = new Map([ ["parts", $a([_39])], ["ex", $a(["311n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#627 var _3I = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#639 var _3P = new Map([ ["parts", $a([_3I])], ["ex", $a(["312n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#642 var _3R = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#654 var _3Y = new Map([ ["parts", $a([_3R])], ["ex", $a(["313n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#657 var _3a = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#669 var _3h = new Map([ ["parts", $a([_3a])], ["ex", $a(["314n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#672 var _3j = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#684 var _3q = new Map([ ["parts", $a([_3j])], ["ex", $a(["315n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#687 var _3s = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#699 var _3z = new Map([ ["parts", $a([_3s])], ["ex", $a(["316n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#702 var _41 = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#714 var _48 = new Map([ ["parts", $a([_41])], ["ex", $a(["320n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#717 var _4A = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#729 var _4H = new Map([ ["parts", $a([_4A])], ["ex", $a(["321n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#732 var _4J = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#744 var _4Q = new Map([ ["parts", $a([_4J])], ["ex", $a(["322n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#747 var _4S = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#759 var _4Z = new Map([ ["parts", $a([_4S])], ["ex", $a(["323n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#762 var _4b = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#774 var _4i = new Map([ ["parts", $a([_4b])], ["ex", $a(["324n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#777 var _4k = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#789 var _4r = new Map([ ["parts", $a([_4k])], ["ex", $a(["325n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#792 var _4t = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#804 var _50 = new Map([ ["parts", $a([_4t])], ["ex", $a(["326n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#807 var _52 = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#819 var _59 = new Map([ ["parts", $a([_52])], ["ex", $a(["327n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#822 var _5B = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#834 var _5I = new Map([ ["parts", $a([_5B])], ["ex", $a(["328n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#837 var _5K = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#849 var _5R = new Map([ ["parts", $a([_5K])], ["ex", $a(["329n"])], ["req", $a([$a([$a(["01"]), $a(["02"])])])] ]); //#852 var _5T = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#864 var _5a = new Map([ ["parts", $a([_5T])], ["ex", $a(["330n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#867 var _5c = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#879 var _5j = new Map([ ["parts", $a([_5c])], ["ex", $a(["331n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#882 var _5l = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#894 var _5s = new Map([ ["parts", $a([_5l])], ["ex", $a(["332n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#897 var _5u = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#909 var _61 = new Map([ ["parts", $a([_5u])], ["ex", $a(["333n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#912 var _63 = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#924 var _6A = new Map([ ["parts", $a([_63])], ["ex", $a(["334n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#927 var _6C = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#939 var _6J = new Map([ ["parts", $a([_6C])], ["ex", $a(["335n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#942 var _6L = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#954 var _6S = new Map([ ["parts", $a([_6L])], ["ex", $a(["336n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#957 var _6U = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#969 var _6a = new Map([ ["parts", $a([_6U])], ["ex", $a(["337n"])], ["req", $a([$a([$a(["01"])])])] ]); //#972 var _6c = new Map([ ["cset", 'N'], ["min", 6], ["max", 6], ["opt", false], ["linters", $a([])] ]); //#984 var _6j = new Map([ ["parts", $a([_6c])], ["ex", $a(["340n"])], ["req", $a([$a([$a(["00"]), $a(["01"])])])] ]); //#987 var _6l = new Map([ ["cset", 'N'], ["min", 6],