@juit/librebarcode 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-ASL.md +211 -0
- package/LICENSE-OFL.md +97 -0
- package/README.md +126 -0
- package/assets/LibreBarcode128-Regular.ttf +0 -0
- package/assets/LibreBarcode128Text-Regular.ttf +0 -0
- package/assets/LibreBarcodeEAN13Text-Regular.ttf +0 -0
- package/dist/checksum.cjs +2 -0
- package/dist/checksum.cjs.map +6 -0
- package/dist/checksum.d.ts +0 -0
- package/dist/checksum.mjs +1 -0
- package/dist/checksum.mjs.map +6 -0
- package/dist/code128.cjs +379 -0
- package/dist/code128.cjs.map +6 -0
- package/dist/code128.d.ts +66 -0
- package/dist/code128.mjs +336 -0
- package/dist/code128.mjs.map +6 -0
- package/dist/ean.cjs +194 -0
- package/dist/ean.cjs.map +6 -0
- package/dist/ean.d.ts +5 -0
- package/dist/ean.mjs +168 -0
- package/dist/ean.mjs.map +6 -0
- package/dist/index.cjs +52 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.mjs +20 -0
- package/dist/index.mjs.map +6 -0
- package/package.json +59 -0
- package/src/checksum.ts +0 -0
- package/src/code128.ts +374 -0
- package/src/ean.ts +235 -0
- package/src/index.ts +10 -0
package/dist/code128.mjs
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
// code128.ts
|
|
2
|
+
var FNC1 = "\uF001";
|
|
3
|
+
var FNC2 = "\uF002";
|
|
4
|
+
var FNC3 = "\uF003";
|
|
5
|
+
var FNC4 = "\uF004";
|
|
6
|
+
var DATA = [
|
|
7
|
+
// CODESET A CODESET B CODESET C FONT CHARACTER
|
|
8
|
+
[0, " ", " ", "00", "\xC2"],
|
|
9
|
+
// "Â"
|
|
10
|
+
[1, "!", "!", "01", "!"],
|
|
11
|
+
[2, '"', '"', "02", '"'],
|
|
12
|
+
[3, "#", "#", "03", "#"],
|
|
13
|
+
[4, "$", "$", "04", "$"],
|
|
14
|
+
[5, "%", "%", "05", "%"],
|
|
15
|
+
[6, "&", "&", "06", "&"],
|
|
16
|
+
[7, "'", "'", "07", "'"],
|
|
17
|
+
// single quote "'"
|
|
18
|
+
[8, "(", "(", "08", "("],
|
|
19
|
+
[9, ")", ")", "09", ")"],
|
|
20
|
+
[10, "*", "*", "10", "*"],
|
|
21
|
+
[11, "+", "+", "11", "+"],
|
|
22
|
+
[12, ",", ",", "12", ","],
|
|
23
|
+
[13, "-", "-", "13", "-"],
|
|
24
|
+
[14, ".", ".", "14", "."],
|
|
25
|
+
[15, "/", "/", "15", "/"],
|
|
26
|
+
[16, "0", "0", "16", "0"],
|
|
27
|
+
[17, "1", "1", "17", "1"],
|
|
28
|
+
[18, "2", "2", "18", "2"],
|
|
29
|
+
[19, "3", "3", "19", "3"],
|
|
30
|
+
[20, "4", "4", "20", "4"],
|
|
31
|
+
[21, "5", "5", "21", "5"],
|
|
32
|
+
[22, "6", "6", "22", "6"],
|
|
33
|
+
[23, "7", "7", "23", "7"],
|
|
34
|
+
[24, "8", "8", "24", "8"],
|
|
35
|
+
[25, "9", "9", "25", "9"],
|
|
36
|
+
[26, ":", ":", "26", ":"],
|
|
37
|
+
[27, ";", ";", "27", ";"],
|
|
38
|
+
[28, "<", "<", "28", "<"],
|
|
39
|
+
[29, "=", "=", "29", "="],
|
|
40
|
+
[30, ">", ">", "30", ">"],
|
|
41
|
+
[31, "?", "?", "31", "?"],
|
|
42
|
+
[32, "@", "@", "32", "@"],
|
|
43
|
+
[33, "A", "A", "33", "A"],
|
|
44
|
+
[34, "B", "B", "34", "B"],
|
|
45
|
+
[35, "C", "C", "35", "C"],
|
|
46
|
+
[36, "D", "D", "36", "D"],
|
|
47
|
+
[37, "E", "E", "37", "E"],
|
|
48
|
+
[38, "F", "F", "38", "F"],
|
|
49
|
+
[39, "G", "G", "39", "G"],
|
|
50
|
+
[40, "H", "H", "40", "H"],
|
|
51
|
+
[41, "I", "I", "41", "I"],
|
|
52
|
+
[42, "J", "J", "42", "J"],
|
|
53
|
+
[43, "K", "K", "43", "K"],
|
|
54
|
+
[44, "L", "L", "44", "L"],
|
|
55
|
+
[45, "M", "M", "45", "M"],
|
|
56
|
+
[46, "N", "N", "46", "N"],
|
|
57
|
+
[47, "O", "O", "47", "O"],
|
|
58
|
+
[48, "P", "P", "48", "P"],
|
|
59
|
+
[49, "Q", "Q", "49", "Q"],
|
|
60
|
+
[50, "R", "R", "50", "R"],
|
|
61
|
+
[51, "S", "S", "51", "S"],
|
|
62
|
+
[52, "T", "T", "52", "T"],
|
|
63
|
+
[53, "U", "U", "53", "U"],
|
|
64
|
+
[54, "V", "V", "54", "V"],
|
|
65
|
+
[55, "W", "W", "55", "W"],
|
|
66
|
+
[56, "X", "X", "56", "X"],
|
|
67
|
+
[57, "Y", "Y", "57", "Y"],
|
|
68
|
+
[58, "Z", "Z", "58", "Z"],
|
|
69
|
+
[59, "[", "[", "59", "["],
|
|
70
|
+
[60, "\\", "\\", "60", "\\"],
|
|
71
|
+
// backslash "\"
|
|
72
|
+
[61, "]", "]", "61", "]"],
|
|
73
|
+
[62, "^", "^", "62", "^"],
|
|
74
|
+
[63, "_", "_", "63", "_"],
|
|
75
|
+
[64, "\0", "`", "64", "`"],
|
|
76
|
+
// NUL
|
|
77
|
+
[65, "", "a", "65", "a"],
|
|
78
|
+
// SOH
|
|
79
|
+
[66, "", "b", "66", "b"],
|
|
80
|
+
// STX
|
|
81
|
+
[67, "", "c", "67", "c"],
|
|
82
|
+
// ETX
|
|
83
|
+
[68, "", "d", "68", "d"],
|
|
84
|
+
// EOT
|
|
85
|
+
[69, "", "e", "69", "e"],
|
|
86
|
+
// ENQ
|
|
87
|
+
[70, "", "f", "70", "f"],
|
|
88
|
+
// ACK
|
|
89
|
+
[71, "\x07", "g", "71", "g"],
|
|
90
|
+
// BEL
|
|
91
|
+
[72, "\b", "h", "72", "h"],
|
|
92
|
+
// BS
|
|
93
|
+
[73, " ", "i", "73", "i"],
|
|
94
|
+
// HT
|
|
95
|
+
[74, "\n", "j", "74", "j"],
|
|
96
|
+
// LF
|
|
97
|
+
[75, "\v", "k", "75", "k"],
|
|
98
|
+
// VT
|
|
99
|
+
[76, "\f", "l", "76", "l"],
|
|
100
|
+
// FF
|
|
101
|
+
[77, "\r", "m", "77", "m"],
|
|
102
|
+
// CR
|
|
103
|
+
[78, "", "n", "78", "n"],
|
|
104
|
+
// SO
|
|
105
|
+
[79, "", "o", "79", "o"],
|
|
106
|
+
// SI
|
|
107
|
+
[80, "", "p", "80", "p"],
|
|
108
|
+
// DLE
|
|
109
|
+
[81, "", "q", "81", "q"],
|
|
110
|
+
// DC1
|
|
111
|
+
[82, "", "r", "82", "r"],
|
|
112
|
+
// DC2
|
|
113
|
+
[83, "", "s", "83", "s"],
|
|
114
|
+
// DC3
|
|
115
|
+
[84, "", "t", "84", "t"],
|
|
116
|
+
// DC4
|
|
117
|
+
[85, "", "u", "85", "u"],
|
|
118
|
+
// NAK
|
|
119
|
+
[86, "", "v", "86", "v"],
|
|
120
|
+
// SYN
|
|
121
|
+
[87, "", "w", "87", "w"],
|
|
122
|
+
// ETB
|
|
123
|
+
[88, "", "x", "88", "x"],
|
|
124
|
+
// CAN
|
|
125
|
+
[89, "", "y", "89", "y"],
|
|
126
|
+
// EM
|
|
127
|
+
[90, "", "z", "90", "z"],
|
|
128
|
+
// SUB
|
|
129
|
+
[91, "\x1B", "{", "91", "{"],
|
|
130
|
+
// ESC
|
|
131
|
+
[92, "", "|", "92", "|"],
|
|
132
|
+
// FS
|
|
133
|
+
[93, "", "}", "93", "}"],
|
|
134
|
+
// GS
|
|
135
|
+
[94, "", "~", "94", "~"],
|
|
136
|
+
// RS
|
|
137
|
+
[95, "", "\x7F", "95", "\xC3"],
|
|
138
|
+
// US // DEL // Ã
|
|
139
|
+
[96, FNC3, FNC3, "96", "\xC4"],
|
|
140
|
+
// FNC 3 // Ä
|
|
141
|
+
[97, FNC2, FNC2, "97", "\xC5"],
|
|
142
|
+
// FNC 2 // Å
|
|
143
|
+
[98, , , "98", "\xC6"],
|
|
144
|
+
// Æ
|
|
145
|
+
[99, , , "99", "\xC7"],
|
|
146
|
+
// Ç
|
|
147
|
+
[100, , FNC4, , "\xC8"],
|
|
148
|
+
// FNC 4 // È
|
|
149
|
+
[101, FNC4, , , "\xC9"],
|
|
150
|
+
// FNC 4 // É
|
|
151
|
+
[102, FNC1, FNC1, FNC1, "\xCA"],
|
|
152
|
+
// FNC 1 // Ê
|
|
153
|
+
[103, , , , "\xCB"],
|
|
154
|
+
// Ë
|
|
155
|
+
[104, , , , "\xCC"],
|
|
156
|
+
// Ì
|
|
157
|
+
[105, , , , "\xCD"]
|
|
158
|
+
// Í
|
|
159
|
+
];
|
|
160
|
+
var CODESET_A = DATA.reduce((data, [val, csa, _csb, _csc, _chr]) => {
|
|
161
|
+
if (csa !== void 0) data[csa] = val;
|
|
162
|
+
return data;
|
|
163
|
+
}, {});
|
|
164
|
+
var CODESET_B = DATA.reduce((data, [val, _csa, csb, _csc, _chr]) => {
|
|
165
|
+
if (csb !== void 0) data[csb] = val;
|
|
166
|
+
return data;
|
|
167
|
+
}, {});
|
|
168
|
+
var CODESET_C = DATA.reduce((data, [val, _csa, _csb, csc, _chr]) => {
|
|
169
|
+
if (csc !== void 0) data[csc] = val;
|
|
170
|
+
return data;
|
|
171
|
+
}, {});
|
|
172
|
+
var CODESETS = {
|
|
173
|
+
A: CODESET_A,
|
|
174
|
+
B: CODESET_B,
|
|
175
|
+
C: CODESET_C
|
|
176
|
+
};
|
|
177
|
+
var CHARACTERS = [];
|
|
178
|
+
DATA.forEach(([val, _csa, _csb, _csc, chr]) => CHARACTERS[val] = chr);
|
|
179
|
+
var SHIFT = 98;
|
|
180
|
+
var CODE_C = 99;
|
|
181
|
+
var CODE_B = 100;
|
|
182
|
+
var CODE_A = 101;
|
|
183
|
+
var START_A = 103;
|
|
184
|
+
var START_B = 104;
|
|
185
|
+
var START_C = 105;
|
|
186
|
+
var STOP = "\xCE";
|
|
187
|
+
function match(string, codeset) {
|
|
188
|
+
for (const [sequence, value] of Object.entries(CODESETS[codeset])) {
|
|
189
|
+
if (string.startsWith(sequence)) return [value, string.substring(sequence.length)];
|
|
190
|
+
}
|
|
191
|
+
return [null, string];
|
|
192
|
+
}
|
|
193
|
+
function unicode(string) {
|
|
194
|
+
const hex = string.charCodeAt(0).toString(16).padStart(4, "0");
|
|
195
|
+
return `\\u${hex}`;
|
|
196
|
+
}
|
|
197
|
+
var Encoder = class _Encoder {
|
|
198
|
+
/** The _current_ code-set of this encoder */
|
|
199
|
+
_codeset;
|
|
200
|
+
/** The array of values encoded so far */
|
|
201
|
+
_values;
|
|
202
|
+
/** The remainder of the string to encode */
|
|
203
|
+
_string;
|
|
204
|
+
/** An array of encoders to add forks of this encoder to */
|
|
205
|
+
_encoders;
|
|
206
|
+
constructor(codeset, string, encoders, values) {
|
|
207
|
+
this._codeset = codeset;
|
|
208
|
+
this._string = string;
|
|
209
|
+
this._encoders = encoders;
|
|
210
|
+
if (values) {
|
|
211
|
+
this._values = values;
|
|
212
|
+
} else {
|
|
213
|
+
switch (codeset) {
|
|
214
|
+
case "A":
|
|
215
|
+
this._values = [START_A];
|
|
216
|
+
break;
|
|
217
|
+
case "B":
|
|
218
|
+
this._values = [START_B];
|
|
219
|
+
break;
|
|
220
|
+
case "C":
|
|
221
|
+
this._values = [START_C];
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
this._encoders.push(this);
|
|
226
|
+
}
|
|
227
|
+
/** Whether this encoder is done or not */
|
|
228
|
+
get done() {
|
|
229
|
+
return this._string.length === 0;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Do the next round of encoding, returning `true` if _this_ instance has
|
|
233
|
+
* finished encoding.
|
|
234
|
+
*/
|
|
235
|
+
encode(length) {
|
|
236
|
+
if (this._string.length == 0) return true;
|
|
237
|
+
if (this._values.length >= length) return false;
|
|
238
|
+
const [value, remaining] = match(this._string, this._codeset);
|
|
239
|
+
if (value !== null) {
|
|
240
|
+
this._values.push(value);
|
|
241
|
+
this._string = remaining;
|
|
242
|
+
if (this._codeset === "A" || this._codeset === "B") {
|
|
243
|
+
const [valuec, remainingc] = match(this._string, "C");
|
|
244
|
+
if (valuec !== null) {
|
|
245
|
+
new _Encoder("C", remainingc, this._encoders, [...this._values, CODE_C, valuec]);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return this.done;
|
|
249
|
+
}
|
|
250
|
+
if (this._codeset === "A") {
|
|
251
|
+
const [valueb, remainingb] = match(this._string, "B");
|
|
252
|
+
if (valueb !== null) {
|
|
253
|
+
new _Encoder("B", remainingb, this._encoders, [...this._values, CODE_B, valueb]);
|
|
254
|
+
this._values.push(SHIFT, valueb);
|
|
255
|
+
this._string = remainingb;
|
|
256
|
+
return this.done;
|
|
257
|
+
} else {
|
|
258
|
+
throw new Error(`Unable to encode character "${unicode(remaining)}"`);
|
|
259
|
+
}
|
|
260
|
+
} else if (this._codeset === "B") {
|
|
261
|
+
const [valuea, remaininga] = match(this._string, "A");
|
|
262
|
+
if (valuea !== null) {
|
|
263
|
+
new _Encoder("A", remaininga, this._encoders, [...this._values, CODE_A, valuea]);
|
|
264
|
+
this._values.push(SHIFT, valuea);
|
|
265
|
+
this._string = remaininga;
|
|
266
|
+
return this.done;
|
|
267
|
+
} else {
|
|
268
|
+
throw new Error(`Unable to encode character "${unicode(remaining)}"`);
|
|
269
|
+
}
|
|
270
|
+
} else {
|
|
271
|
+
const [valuea, remaininga] = match(this._string, "A");
|
|
272
|
+
const [valueb, remainingb] = match(this._string, "B");
|
|
273
|
+
if (valuea !== null && valueb !== null) {
|
|
274
|
+
new _Encoder("A", remaininga, this._encoders, [...this._values, CODE_A, valuea]);
|
|
275
|
+
this._values.push(CODE_B, valueb);
|
|
276
|
+
this._string = remainingb;
|
|
277
|
+
this._codeset = "B";
|
|
278
|
+
return this.done;
|
|
279
|
+
} else if (valuea !== null && valueb === null) {
|
|
280
|
+
this._values.push(CODE_A, valuea);
|
|
281
|
+
this._string = remaininga;
|
|
282
|
+
this._codeset = "A";
|
|
283
|
+
return this.done;
|
|
284
|
+
} else if (valuea === null && valueb !== null) {
|
|
285
|
+
this._values.push(CODE_B, valueb);
|
|
286
|
+
this._string = remainingb;
|
|
287
|
+
this._codeset = "B";
|
|
288
|
+
return this.done;
|
|
289
|
+
} else {
|
|
290
|
+
throw new Error(`Unable to encode character "${unicode(remaining)}"`);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/** Finish the encoding, and return the string for our barcode */
|
|
295
|
+
finish() {
|
|
296
|
+
let sum = 0;
|
|
297
|
+
for (let i = 0; i < this._values.length; i++) {
|
|
298
|
+
sum += this._values[i] * (i || 1);
|
|
299
|
+
}
|
|
300
|
+
return [...this._values, sum % 103].map((value) => CHARACTERS[value]).join("") + STOP;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
function code128(string) {
|
|
304
|
+
const encoders = [];
|
|
305
|
+
new Encoder("C", string, encoders);
|
|
306
|
+
new Encoder("B", string, encoders);
|
|
307
|
+
new Encoder("A", string, encoders);
|
|
308
|
+
for (let length = 1; ; length++) {
|
|
309
|
+
for (const encoder of encoders) encoder.encode(length);
|
|
310
|
+
for (const encoder of encoders) {
|
|
311
|
+
if (encoder.done) return encoder.finish();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
export {
|
|
316
|
+
CHARACTERS,
|
|
317
|
+
CODESETS,
|
|
318
|
+
CODESET_A,
|
|
319
|
+
CODESET_B,
|
|
320
|
+
CODESET_C,
|
|
321
|
+
CODE_A,
|
|
322
|
+
CODE_B,
|
|
323
|
+
CODE_C,
|
|
324
|
+
Encoder,
|
|
325
|
+
FNC1,
|
|
326
|
+
FNC2,
|
|
327
|
+
FNC3,
|
|
328
|
+
FNC4,
|
|
329
|
+
SHIFT,
|
|
330
|
+
START_A,
|
|
331
|
+
START_B,
|
|
332
|
+
START_C,
|
|
333
|
+
STOP,
|
|
334
|
+
code128
|
|
335
|
+
};
|
|
336
|
+
//# sourceMappingURL=code128.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/code128.ts"],
|
|
4
|
+
"mappings": ";AAiBO,IAAM,OAAO;AAEb,IAAM,OAAO;AAEb,IAAM,OAAO;AAEb,IAAM,OAAO;AAEpB,IAAM,OAAO;AAAA;AAAA,EAEX,CAAE,GAAK,KAAY,KAAY,MAAY,MAAS;AAAA;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,GAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,MAAY,MAAY,MAAY,IAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA,EACpD,CAAE,IAAK,MAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,QAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,MAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,MAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,MAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,MAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,MAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,EACpD,CAAE,IAAK,KAAY,KAAY,MAAY,GAAS;AAAA;AAAA,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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/ean.cjs
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// ean.ts
|
|
21
|
+
var ean_exports = {};
|
|
22
|
+
__export(ean_exports, {
|
|
23
|
+
checksum: () => checksum,
|
|
24
|
+
ean: () => ean
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(ean_exports);
|
|
27
|
+
var CODESET_L = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];
|
|
28
|
+
var CODESET_G = ["K", "L", "M", "N", "O", "P", "Q", "R", "S", "T"];
|
|
29
|
+
var CODESET_R = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"];
|
|
30
|
+
var CODESETS = {
|
|
31
|
+
L: CODESET_L,
|
|
32
|
+
G: CODESET_G
|
|
33
|
+
};
|
|
34
|
+
var PATTERNS_EAN13 = [
|
|
35
|
+
["L", "L", "L", "L", "L", "L"],
|
|
36
|
+
["L", "L", "G", "L", "G", "G"],
|
|
37
|
+
["L", "L", "G", "G", "L", "G"],
|
|
38
|
+
["L", "L", "G", "G", "G", "L"],
|
|
39
|
+
["L", "G", "L", "L", "G", "G"],
|
|
40
|
+
["L", "G", "G", "L", "L", "G"],
|
|
41
|
+
["L", "G", "G", "G", "L", "L"],
|
|
42
|
+
["L", "G", "L", "G", "L", "G"],
|
|
43
|
+
["L", "G", "L", "G", "G", "L"],
|
|
44
|
+
["L", "G", "G", "L", "G", "L"]
|
|
45
|
+
];
|
|
46
|
+
var PATTERNS_ADDON5 = [
|
|
47
|
+
["G", "G", "L", "L", "L"],
|
|
48
|
+
["G", "L", "G", "L", "L"],
|
|
49
|
+
["G", "L", "L", "G", "L"],
|
|
50
|
+
["G", "L", "L", "L", "G"],
|
|
51
|
+
["L", "G", "G", "L", "L"],
|
|
52
|
+
["L", "L", "G", "G", "L"],
|
|
53
|
+
["L", "L", "L", "G", "G"],
|
|
54
|
+
["L", "G", "L", "G", "L"],
|
|
55
|
+
["L", "G", "L", "L", "G"],
|
|
56
|
+
["L", "L", "G", "L", "G"]
|
|
57
|
+
];
|
|
58
|
+
var PATTERNS_ADDON2 = [
|
|
59
|
+
["L", "L"],
|
|
60
|
+
["L", "G"],
|
|
61
|
+
["G", "L"],
|
|
62
|
+
["G", "G"]
|
|
63
|
+
];
|
|
64
|
+
var SEPARATOR = "*";
|
|
65
|
+
var START = ":";
|
|
66
|
+
var END = "+";
|
|
67
|
+
var ADDON_START = "[";
|
|
68
|
+
var ADDON_SEPARATOR = "\\";
|
|
69
|
+
function encodeEan13(digits) {
|
|
70
|
+
const pattern = PATTERNS_EAN13[digits[0]];
|
|
71
|
+
return [
|
|
72
|
+
digits[0].toString(),
|
|
73
|
+
// this is to encode the first digit as text
|
|
74
|
+
CODESETS[pattern[0]][digits[1]],
|
|
75
|
+
CODESETS[pattern[1]][digits[2]],
|
|
76
|
+
CODESETS[pattern[2]][digits[3]],
|
|
77
|
+
CODESETS[pattern[3]][digits[4]],
|
|
78
|
+
CODESETS[pattern[4]][digits[5]],
|
|
79
|
+
CODESETS[pattern[5]][digits[6]],
|
|
80
|
+
SEPARATOR,
|
|
81
|
+
CODESET_R[digits[7]],
|
|
82
|
+
CODESET_R[digits[8]],
|
|
83
|
+
CODESET_R[digits[9]],
|
|
84
|
+
CODESET_R[digits[10]],
|
|
85
|
+
CODESET_R[digits[11]],
|
|
86
|
+
CODESET_R[digits[12]],
|
|
87
|
+
END
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
function encodeEan8(digits) {
|
|
91
|
+
return [
|
|
92
|
+
START,
|
|
93
|
+
CODESET_L[digits[0]],
|
|
94
|
+
CODESET_L[digits[1]],
|
|
95
|
+
CODESET_L[digits[2]],
|
|
96
|
+
CODESET_L[digits[3]],
|
|
97
|
+
SEPARATOR,
|
|
98
|
+
CODESET_R[digits[4]],
|
|
99
|
+
CODESET_R[digits[5]],
|
|
100
|
+
CODESET_R[digits[6]],
|
|
101
|
+
CODESET_R[digits[7]],
|
|
102
|
+
END
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
function encodeAdd5(digits) {
|
|
106
|
+
const checksum2 = ((digits[0] + digits[2] + digits[4]) * 3 + (digits[1] + digits[3]) * 9) % 10;
|
|
107
|
+
const pattern = PATTERNS_ADDON5[checksum2];
|
|
108
|
+
return [
|
|
109
|
+
ADDON_START,
|
|
110
|
+
CODESETS[pattern[0]][digits[0]],
|
|
111
|
+
ADDON_SEPARATOR,
|
|
112
|
+
CODESETS[pattern[1]][digits[1]],
|
|
113
|
+
ADDON_SEPARATOR,
|
|
114
|
+
CODESETS[pattern[2]][digits[2]],
|
|
115
|
+
ADDON_SEPARATOR,
|
|
116
|
+
CODESETS[pattern[3]][digits[3]],
|
|
117
|
+
ADDON_SEPARATOR,
|
|
118
|
+
CODESETS[pattern[4]][digits[4]]
|
|
119
|
+
];
|
|
120
|
+
}
|
|
121
|
+
function encodeAdd2(digits) {
|
|
122
|
+
const checksum2 = (digits[0] * 10 + digits[1]) % 4;
|
|
123
|
+
const pattern = PATTERNS_ADDON2[checksum2];
|
|
124
|
+
return [
|
|
125
|
+
ADDON_START,
|
|
126
|
+
CODESETS[pattern[0]][digits[0]],
|
|
127
|
+
ADDON_SEPARATOR,
|
|
128
|
+
CODESETS[pattern[1]][digits[1]]
|
|
129
|
+
];
|
|
130
|
+
}
|
|
131
|
+
function toDigits(string) {
|
|
132
|
+
const digits = [];
|
|
133
|
+
for (let i = 0; i < string.length; i++) {
|
|
134
|
+
const digit = string.charCodeAt(i) - 48;
|
|
135
|
+
if (digit < 0 || digit > 9) {
|
|
136
|
+
throw new Error(`Invalid character to encode "${string[i]}"`);
|
|
137
|
+
} else {
|
|
138
|
+
digits.push(digit);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return digits;
|
|
142
|
+
}
|
|
143
|
+
function ean(string) {
|
|
144
|
+
const digits = toDigits(string);
|
|
145
|
+
switch (digits.length) {
|
|
146
|
+
case 18:
|
|
147
|
+
return [
|
|
148
|
+
...encodeEan13(digits.slice(0, 13)),
|
|
149
|
+
...encodeAdd5(digits.slice(13))
|
|
150
|
+
].join("");
|
|
151
|
+
case 17:
|
|
152
|
+
return [
|
|
153
|
+
...encodeEan13([0, ...digits.slice(0, 12)]),
|
|
154
|
+
...encodeAdd5(digits.slice(12))
|
|
155
|
+
].join("");
|
|
156
|
+
case 15:
|
|
157
|
+
return [
|
|
158
|
+
...encodeEan13(digits.slice(0, 13)),
|
|
159
|
+
...encodeAdd2(digits.slice(13))
|
|
160
|
+
].join("");
|
|
161
|
+
case 14:
|
|
162
|
+
return [
|
|
163
|
+
...encodeEan13([0, ...digits.slice(0, 12)]),
|
|
164
|
+
...encodeAdd2(digits.slice(12))
|
|
165
|
+
].join("");
|
|
166
|
+
case 13:
|
|
167
|
+
return encodeEan13(digits).join("");
|
|
168
|
+
case 12:
|
|
169
|
+
return encodeEan13([0, ...digits]).join("");
|
|
170
|
+
case 8:
|
|
171
|
+
return encodeEan8(digits).join("");
|
|
172
|
+
case 5:
|
|
173
|
+
return encodeAdd5(digits).join("");
|
|
174
|
+
case 2:
|
|
175
|
+
return encodeAdd2(digits).join("");
|
|
176
|
+
default:
|
|
177
|
+
throw new Error(`Unable to encode string ${digits.length} characters long`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function checksum(string) {
|
|
181
|
+
const digits = toDigits(string);
|
|
182
|
+
if (digits.length % 2) digits.unshift(0);
|
|
183
|
+
let sum = 0;
|
|
184
|
+
for (let i = 0; i < digits.length; i++) {
|
|
185
|
+
sum += digits[i] * (i % 2 ? 3 : 1);
|
|
186
|
+
}
|
|
187
|
+
return (10 - sum % 10) % 10;
|
|
188
|
+
}
|
|
189
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
190
|
+
0 && (module.exports = {
|
|
191
|
+
checksum,
|
|
192
|
+
ean
|
|
193
|
+
});
|
|
194
|
+
//# sourceMappingURL=ean.cjs.map
|
package/dist/ean.cjs.map
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/ean.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,IAAM,YAAY,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAErE,IAAM,YAAY,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAErE,IAAM,YAAY,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAGrE,IAAM,WAAW;AAAA,EACf,GAAG;AAAA,EACH,GAAG;AACL;AAMA,IAAM,iBAA0F;AAAA,EAC9F,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC/B,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAI;AACjC;AAMA,IAAM,kBAAkF;AAAA,EACtF,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAAA,EAC1B,CAAE,KAAK,KAAK,KAAK,KAAK,GAAI;AAC5B;AAMA,IAAM,kBAAuD;AAAA,EAC3D,CAAE,KAAK,GAAI;AAAA,EACX,CAAE,KAAK,GAAI;AAAA,EACX,CAAE,KAAK,GAAI;AAAA,EACX,CAAE,KAAK,GAAI;AACb;AAGA,IAAM,YAAY;AAElB,IAAM,QAAQ;AAEd,IAAM,MAAM;AAEZ,IAAM,cAAc;AAEpB,IAAM,kBAAkB;AAOxB,SAAS,YAAY,QAA2B;AAC9C,QAAM,UAAU,eAAe,OAAO,CAAC,CAAE;AAEzC,SAAO;AAAA,IACL,OAAO,CAAC,EAAG,SAAS;AAAA;AAAA,IACpB,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B;AAAA,IACA,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,EAAE,CAAE;AAAA,IACrB,UAAU,OAAO,EAAE,CAAE;AAAA,IACrB,UAAU,OAAO,EAAE,CAAE;AAAA,IACrB;AAAA,EACF;AACF;AAGA,SAAS,WAAW,QAA2B;AAC7C,SAAO;AAAA,IACL;AAAA,IACA,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB;AAAA,IACA,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB,UAAU,OAAO,CAAC,CAAE;AAAA,IACpB;AAAA,EACF;AACF;AAGA,SAAS,WAAW,QAA2B;AAC7C,QAAMA,cACF,OAAO,CAAC,IAAK,OAAO,CAAC,IAAK,OAAO,CAAC,KAAM,KACxC,OAAO,CAAC,IAAK,OAAO,CAAC,KAAM,KAC3B;AACJ,QAAM,UAAU,gBAAgBA,SAAQ;AAExC,SAAO;AAAA,IACL;AAAA,IACA,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAAG;AAAA,IAClC,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAAG;AAAA,IAClC,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAAG;AAAA,IAClC,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAAG;AAAA,IAClC,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,EACjC;AACF;AAGA,SAAS,WAAW,QAA2B;AAC7C,QAAMA,aAAa,OAAO,CAAC,IAAK,KAAM,OAAO,CAAC,KAAM;AACpD,QAAM,UAAU,gBAAgBA,SAAQ;AAExC,SAAO;AAAA,IACL;AAAA,IACA,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,IAC/B;AAAA,IACA,SAAS,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAE;AAAA,EACjC;AACF;AAGA,SAAS,SAAS,QAAyB;AACzC,QAAM,SAAkB,CAAC;AACzB,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAM;AACvC,UAAM,QAAQ,OAAO,WAAW,CAAC,IAAI;AACrC,QAAK,QAAQ,KAAO,QAAQ,GAAI;AAC9B,YAAM,IAAI,MAAM,gCAAgC,OAAO,CAAC,CAAC,GAAG;AAAA,IAC9D,OAAO;AACL,aAAO,KAAK,KAAc;AAAA,IAC5B;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,IAAI,QAAwB;AAC1C,QAAM,SAAS,SAAS,MAAM;AAE9B,UAAQ,OAAO,QAAQ;AAAA,IACrB,KAAK;AACH,aAAO;AAAA,QACL,GAAG,YAAY,OAAO,MAAM,GAAG,EAAE,CAAC;AAAA,QAClC,GAAG,WAAW,OAAO,MAAM,EAAE,CAAC;AAAA,MAChC,EAAE,KAAK,EAAE;AAAA,IAEX,KAAK;AACH,aAAO;AAAA,QACL,GAAG,YAAY,CAAE,GAAG,GAAG,OAAO,MAAM,GAAG,EAAE,CAAE,CAAC;AAAA,QAC5C,GAAG,WAAW,OAAO,MAAM,EAAE,CAAC;AAAA,MAChC,EAAE,KAAK,EAAE;AAAA,IAEX,KAAK;AACH,aAAO;AAAA,QACL,GAAG,YAAY,OAAO,MAAM,GAAG,EAAE,CAAC;AAAA,QAClC,GAAG,WAAW,OAAO,MAAM,EAAE,CAAC;AAAA,MAChC,EAAE,KAAK,EAAE;AAAA,IAEX,KAAK;AACH,aAAO;AAAA,QACL,GAAG,YAAY,CAAE,GAAG,GAAG,OAAO,MAAM,GAAG,EAAE,CAAE,CAAC;AAAA,QAC5C,GAAG,WAAW,OAAO,MAAM,EAAE,CAAC;AAAA,MAChC,EAAE,KAAK,EAAE;AAAA,IAEX,KAAK;AACH,aAAO,YAAY,MAAM,EAAE,KAAK,EAAE;AAAA,IAEpC,KAAK;AACH,aAAO,YAAY,CAAE,GAAG,GAAG,MAAO,CAAC,EAAE,KAAK,EAAE;AAAA,IAE9C,KAAK;AACH,aAAO,WAAW,MAAM,EAAE,KAAK,EAAE;AAAA,IAEnC,KAAK;AACH,aAAO,WAAW,MAAM,EAAE,KAAK,EAAE;AAAA,IAEnC,KAAK;AACH,aAAO,WAAW,MAAM,EAAE,KAAK,EAAE;AAAA,IAEnC;AACE,YAAM,IAAI,MAAM,2BAA2B,OAAO,MAAM,kBAAkB;AAAA,EAC9E;AACF;AAGO,SAAS,SAAS,QAAuB;AAC9C,QAAM,SAAS,SAAS,MAAM;AAG9B,MAAI,OAAO,SAAS,EAAG,QAAO,QAAQ,CAAC;AAGvC,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAM;AACvC,WAAO,OAAO,CAAC,KAAO,IAAI,IAAK,IAAI;AAAA,EACrC;AAEA,UAAQ,KAAM,MAAM,MAAO;AAC7B;",
|
|
5
|
+
"names": ["checksum"]
|
|
6
|
+
}
|
package/dist/ean.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** A digit in a EAN8/EAN13 string */
|
|
2
|
+
export type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
3
|
+
/** Encode an EAN8/EAN13 with potential 2-digits or 5-digits extensions */
|
|
4
|
+
export declare function ean(string: string): string;
|
|
5
|
+
export declare function checksum(string: string): Digit;
|