@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.
@@ -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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/ean.ts"],
4
+ "mappings": "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",
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;