@juit/qrcode 0.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.
Files changed (82) hide show
  1. package/LICENSE.md +211 -0
  2. package/NOTICE.md +13 -0
  3. package/README.md +175 -0
  4. package/dist/encode.cjs +147 -0
  5. package/dist/encode.cjs.map +6 -0
  6. package/dist/encode.d.ts +11 -0
  7. package/dist/encode.mjs +122 -0
  8. package/dist/encode.mjs.map +6 -0
  9. package/dist/images/path.cjs +145 -0
  10. package/dist/images/path.cjs.map +6 -0
  11. package/dist/images/path.d.ts +6 -0
  12. package/dist/images/path.mjs +120 -0
  13. package/dist/images/path.mjs.map +6 -0
  14. package/dist/images/pdf.cjs +96 -0
  15. package/dist/images/pdf.cjs.map +6 -0
  16. package/dist/images/pdf.d.ts +3 -0
  17. package/dist/images/pdf.mjs +71 -0
  18. package/dist/images/pdf.mjs.map +6 -0
  19. package/dist/images/png.cjs +86 -0
  20. package/dist/images/png.cjs.map +6 -0
  21. package/dist/images/png.d.ts +3 -0
  22. package/dist/images/png.mjs +61 -0
  23. package/dist/images/png.mjs.map +6 -0
  24. package/dist/images/svg.cjs +64 -0
  25. package/dist/images/svg.cjs.map +6 -0
  26. package/dist/images/svg.d.ts +54 -0
  27. package/dist/images/svg.mjs +38 -0
  28. package/dist/images/svg.mjs.map +6 -0
  29. package/dist/index.cjs +110 -0
  30. package/dist/index.cjs.map +6 -0
  31. package/dist/index.d.ts +74 -0
  32. package/dist/index.mjs +74 -0
  33. package/dist/index.mjs.map +6 -0
  34. package/dist/matrix.cjs +360 -0
  35. package/dist/matrix.cjs.map +6 -0
  36. package/dist/matrix.d.ts +3 -0
  37. package/dist/matrix.mjs +335 -0
  38. package/dist/matrix.mjs.map +6 -0
  39. package/dist/qrcode.cjs +183 -0
  40. package/dist/qrcode.cjs.map +6 -0
  41. package/dist/qrcode.d.ts +20 -0
  42. package/dist/qrcode.mjs +158 -0
  43. package/dist/qrcode.mjs.map +6 -0
  44. package/dist/utils/crc32.cjs +53 -0
  45. package/dist/utils/crc32.cjs.map +6 -0
  46. package/dist/utils/crc32.d.ts +9 -0
  47. package/dist/utils/crc32.mjs +28 -0
  48. package/dist/utils/crc32.mjs.map +6 -0
  49. package/dist/utils/dataurl.cjs +35 -0
  50. package/dist/utils/dataurl.cjs.map +6 -0
  51. package/dist/utils/dataurl.d.ts +1 -0
  52. package/dist/utils/dataurl.mjs +10 -0
  53. package/dist/utils/dataurl.mjs.map +6 -0
  54. package/dist/utils/deflate.cjs +39 -0
  55. package/dist/utils/deflate.cjs.map +6 -0
  56. package/dist/utils/deflate.d.ts +2 -0
  57. package/dist/utils/deflate.mjs +14 -0
  58. package/dist/utils/deflate.mjs.map +6 -0
  59. package/dist/utils/ecc.cjs +93 -0
  60. package/dist/utils/ecc.cjs.map +6 -0
  61. package/dist/utils/ecc.d.ts +2 -0
  62. package/dist/utils/ecc.mjs +68 -0
  63. package/dist/utils/ecc.mjs.map +6 -0
  64. package/dist/utils/merge.cjs +41 -0
  65. package/dist/utils/merge.cjs.map +6 -0
  66. package/dist/utils/merge.d.ts +2 -0
  67. package/dist/utils/merge.mjs +16 -0
  68. package/dist/utils/merge.mjs.map +6 -0
  69. package/package.json +61 -0
  70. package/src/encode.ts +180 -0
  71. package/src/images/path.ts +131 -0
  72. package/src/images/pdf.ts +76 -0
  73. package/src/images/png.ts +105 -0
  74. package/src/images/svg.ts +102 -0
  75. package/src/index.ts +147 -0
  76. package/src/matrix.ts +392 -0
  77. package/src/qrcode.ts +217 -0
  78. package/src/utils/crc32.ts +50 -0
  79. package/src/utils/dataurl.ts +7 -0
  80. package/src/utils/deflate.ts +17 -0
  81. package/src/utils/ecc.ts +95 -0
  82. package/src/utils/merge.ts +13 -0
@@ -0,0 +1,335 @@
1
+ // matrix.ts
2
+ function init(version) {
3
+ const n = version * 4 + 17;
4
+ const matrix = new Array(n);
5
+ for (let i = 0; i < n; i++) {
6
+ matrix[i] = new Array(n).fill(0);
7
+ }
8
+ return matrix;
9
+ }
10
+ function fillFinders(matrix) {
11
+ const n = matrix.length;
12
+ for (let i = -3; i <= 3; i++) {
13
+ for (let j = -3; j <= 3; j++) {
14
+ const max = Math.max(i, j);
15
+ const min = Math.min(i, j);
16
+ const pixel = max == 2 && min >= -2 || min == -2 && max <= 2 ? 128 : 129;
17
+ matrix[3 + i][3 + j] = pixel;
18
+ matrix[3 + i][n - 4 + j] = pixel;
19
+ matrix[n - 4 + i][3 + j] = pixel;
20
+ }
21
+ }
22
+ for (let i = 0; i < 8; i++) {
23
+ matrix[7][i] = matrix[i][7] = matrix[7][n - i - 1] = matrix[i][n - 8] = matrix[n - 8][i] = matrix[n - 1 - i][7] = 128;
24
+ }
25
+ }
26
+ function fillAlignAndTiming(matrix) {
27
+ const n = matrix.length;
28
+ if (n > 21) {
29
+ const len = n - 13;
30
+ let delta = Math.round(len / Math.ceil(len / 28));
31
+ if (delta % 2)
32
+ delta++;
33
+ const res = [];
34
+ for (let p = len + 6; p > 10; p -= delta) {
35
+ res.unshift(p);
36
+ }
37
+ res.unshift(6);
38
+ for (let i = 0; i < res.length; i++) {
39
+ for (let j = 0; j < res.length; j++) {
40
+ const x = res[i];
41
+ const y = res[j];
42
+ if (matrix[x][y])
43
+ continue;
44
+ for (let r = -2; r <= 2; r++) {
45
+ for (let c = -2; c <= 2; c++) {
46
+ const max = Math.max(r, c);
47
+ const min = Math.min(r, c);
48
+ const pixel = max == 1 && min >= -1 || min == -1 && max <= 1 ? 128 : 129;
49
+ matrix[x + r][y + c] = pixel;
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ for (let i = 8; i < n - 8; i++) {
56
+ matrix[6][i] = matrix[i][6] = i % 2 ? 128 : 129;
57
+ }
58
+ }
59
+ function fillStub(matrix) {
60
+ const n = matrix.length;
61
+ for (let i = 0; i < 8; i++) {
62
+ if (i != 6) {
63
+ matrix[8][i] = matrix[i][8] = 128;
64
+ }
65
+ matrix[8][n - 1 - i] = 128;
66
+ matrix[n - 1 - i][8] = 128;
67
+ }
68
+ matrix[8][8] = 128;
69
+ matrix[n - 8][8] = 129;
70
+ if (n < 45)
71
+ return;
72
+ for (let i = n - 11; i < n - 8; i++) {
73
+ for (let j = 0; j < 6; j++) {
74
+ matrix[i][j] = matrix[j][i] = 128;
75
+ }
76
+ }
77
+ }
78
+ var fillReserved = (() => {
79
+ const FORMATS = new Array(32);
80
+ const VERSIONS = new Array(40);
81
+ const gf15 = 1335;
82
+ const gf18 = 7973;
83
+ const formatsMask = 21522;
84
+ for (let format = 0; format < 32; format++) {
85
+ let res = format << 10;
86
+ for (let i = 5; i > 0; i--) {
87
+ if (res >>> 9 + i) {
88
+ res = res ^ gf15 << i - 1;
89
+ }
90
+ }
91
+ FORMATS[format] = (res | format << 10) ^ formatsMask;
92
+ }
93
+ for (let version = 7; version <= 40; version++) {
94
+ let res = version << 12;
95
+ for (let i = 6; i > 0; i--) {
96
+ if (res >>> 11 + i) {
97
+ res = res ^ gf18 << i - 1;
98
+ }
99
+ }
100
+ VERSIONS[version] = res | version << 12;
101
+ }
102
+ const EC_LEVELS = { L: 1, M: 0, Q: 3, H: 2 };
103
+ return function fillReserved2(matrix, ecLevel, mask) {
104
+ const N = matrix.length;
105
+ const format = FORMATS[EC_LEVELS[ecLevel] << 3 | mask];
106
+ function _f(k) {
107
+ return format >> k & 1 ? 129 : 128;
108
+ }
109
+ for (let i = 0; i < 8; i++) {
110
+ matrix[8][N - 1 - i] = _f(i);
111
+ if (i < 6)
112
+ matrix[i][8] = _f(i);
113
+ }
114
+ for (let i = 8; i < 15; i++) {
115
+ matrix[N - 15 + i][8] = _f(i);
116
+ if (i > 8)
117
+ matrix[8][14 - i] = _f(i);
118
+ }
119
+ matrix[7][8] = _f(6);
120
+ matrix[8][8] = _f(7);
121
+ matrix[8][7] = _f(8);
122
+ const version = VERSIONS[(N - 17) / 4];
123
+ if (!version)
124
+ return;
125
+ function _v(k) {
126
+ return version >> k & 1 ? 129 : 128;
127
+ }
128
+ for (let i = 0; i < 6; i++) {
129
+ for (let j = 0; j < 3; j++) {
130
+ matrix[N - 11 + j][i] = matrix[i][N - 11 + j] = _v(i * 3 + j);
131
+ }
132
+ }
133
+ };
134
+ })();
135
+ var fillData = /* @__PURE__ */ (() => {
136
+ const MASK_FUNCTIONS = [
137
+ function(i, j) {
138
+ return (i + j) % 2 == 0;
139
+ },
140
+ function(i, j) {
141
+ return i % 2 == 0;
142
+ },
143
+ function(i, j) {
144
+ return j % 3 == 0;
145
+ },
146
+ function(i, j) {
147
+ return (i + j) % 3 == 0;
148
+ },
149
+ function(i, j) {
150
+ return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;
151
+ },
152
+ function(i, j) {
153
+ return i * j % 2 + i * j % 3 == 0;
154
+ },
155
+ function(i, j) {
156
+ return (i * j % 2 + i * j % 3) % 2 == 0;
157
+ },
158
+ function(i, j) {
159
+ return (i * j % 3 + (i + j) % 2) % 2 == 0;
160
+ }
161
+ ];
162
+ return function fillData2(matrix, data, mask) {
163
+ const N = matrix.length;
164
+ let row;
165
+ let col;
166
+ let dir = -1;
167
+ row = col = N - 1;
168
+ const maskFn = MASK_FUNCTIONS[mask];
169
+ let len = data.blockData[data.blockData.length - 1].length;
170
+ for (let i = 0; i < len; i++) {
171
+ for (let b = 0; b < data.blockData.length; b++) {
172
+ if (data.blockData[b].length <= i)
173
+ continue;
174
+ put(data.blockData[b][i]);
175
+ }
176
+ }
177
+ len = data.ecData[0].length;
178
+ for (let i = 0; i < len; i++) {
179
+ for (let b = 0; b < data.ecData.length; b++) {
180
+ put(data.ecData[b][i]);
181
+ }
182
+ }
183
+ if (col > -1) {
184
+ do {
185
+ matrix[row][col] = maskFn(row, col) ? 1 : 0;
186
+ } while (next());
187
+ }
188
+ function put(byte) {
189
+ for (let mask2 = 128; mask2; mask2 = mask2 >> 1) {
190
+ let pixel = !!(mask2 & byte);
191
+ if (maskFn(row, col))
192
+ pixel = !pixel;
193
+ matrix[row][col] = pixel ? 1 : 0;
194
+ next();
195
+ }
196
+ }
197
+ function next() {
198
+ do {
199
+ if (col % 2 ^ (col < 6 ? 1 : 0)) {
200
+ if (dir < 0 && row == 0 || dir > 0 && row == N - 1) {
201
+ col--;
202
+ dir = -dir;
203
+ } else {
204
+ col++;
205
+ row += dir;
206
+ }
207
+ } else {
208
+ col--;
209
+ }
210
+ if (col == 6) {
211
+ col--;
212
+ }
213
+ if (col < 0) {
214
+ return false;
215
+ }
216
+ } while (matrix[row][col] & 240);
217
+ return true;
218
+ }
219
+ };
220
+ })();
221
+ function calculatePenalty(matrix) {
222
+ const N = matrix.length;
223
+ let penalty = 0;
224
+ for (let i2 = 0; i2 < N; i2++) {
225
+ let pixel = matrix[i2][0] & 1;
226
+ let len = 1;
227
+ for (let j2 = 1; j2 < N; j2++) {
228
+ const p = matrix[i2][j2] & 1;
229
+ if (p == pixel) {
230
+ len++;
231
+ continue;
232
+ }
233
+ if (len >= 5) {
234
+ penalty += len - 2;
235
+ }
236
+ pixel = p;
237
+ len = 1;
238
+ }
239
+ if (len >= 5) {
240
+ penalty += len - 2;
241
+ }
242
+ }
243
+ for (let j2 = 0; j2 < N; j2++) {
244
+ let pixel = matrix[0][j2] & 1;
245
+ let len = 1;
246
+ for (let i2 = 1; i2 < N; i2++) {
247
+ const p = matrix[i2][j2] & 1;
248
+ if (p == pixel) {
249
+ len++;
250
+ continue;
251
+ }
252
+ if (len >= 5) {
253
+ penalty += len - 2;
254
+ }
255
+ pixel = p;
256
+ len = 1;
257
+ }
258
+ if (len >= 5) {
259
+ penalty += len - 2;
260
+ }
261
+ }
262
+ for (let i2 = 0; i2 < N - 1; i2++) {
263
+ for (let j2 = 0; j2 < N - 1; j2++) {
264
+ const s = matrix[i2][j2] + matrix[i2][j2 + 1] + matrix[i2 + 1][j2] + matrix[i2 + 1][j2 + 1] & 7;
265
+ if (s == 0 || s == 4) {
266
+ penalty += 3;
267
+ }
268
+ }
269
+ }
270
+ let i;
271
+ let j;
272
+ function _i(k) {
273
+ return matrix[i][j + k] & 1;
274
+ }
275
+ function _j(k) {
276
+ return matrix[i + k][j] & 1;
277
+ }
278
+ for (i = 0; i < N; i++) {
279
+ for (j = 0; j < N; j++) {
280
+ if (j < N - 6 && _i(0) && !_i(1) && _i(2) && _i(3) && _i(4) && !_i(5) && _i(6)) {
281
+ if (j >= 4 && !(_i(-4) || _i(-3) || _i(-2) || _i(-1))) {
282
+ penalty += 40;
283
+ }
284
+ if (j < N - 10 && !(_i(7) || _i(8) || _i(9) || _i(10))) {
285
+ penalty += 40;
286
+ }
287
+ }
288
+ if (i < N - 6 && _j(0) && !_j(1) && _j(2) && _j(3) && _j(4) && !_j(5) && _j(6)) {
289
+ if (i >= 4 && !(_j(-4) || _j(-3) || _j(-2) || _j(-1))) {
290
+ penalty += 40;
291
+ }
292
+ if (i < N - 10 && !(_j(7) || _j(8) || _j(9) || _j(10))) {
293
+ penalty += 40;
294
+ }
295
+ }
296
+ }
297
+ }
298
+ let numDark = 0;
299
+ for (let i2 = 0; i2 < N; i2++) {
300
+ for (let j2 = 0; j2 < N; j2++) {
301
+ if (matrix[i2][j2] & 1)
302
+ numDark++;
303
+ }
304
+ }
305
+ penalty += 10 * Math.floor(Math.abs(10 - 20 * numDark / (N * N)));
306
+ return penalty;
307
+ }
308
+ function generateQrCodeMatrix(code) {
309
+ const matrix = init(code.version);
310
+ fillFinders(matrix);
311
+ fillAlignAndTiming(matrix);
312
+ fillStub(matrix);
313
+ let penalty = Infinity;
314
+ let bestMask = 0;
315
+ for (let mask = 0; mask < 8; mask++) {
316
+ fillData(matrix, code, mask);
317
+ fillReserved(matrix, code.ecLevel, mask);
318
+ const p = calculatePenalty(matrix);
319
+ if (p < penalty) {
320
+ penalty = p;
321
+ bestMask = mask;
322
+ }
323
+ }
324
+ fillData(matrix, code, bestMask);
325
+ fillReserved(matrix, code.ecLevel, bestMask);
326
+ return matrix.map((row) => {
327
+ return row.map((cell) => {
328
+ return !!(cell & 1);
329
+ });
330
+ });
331
+ }
332
+ export {
333
+ generateQrCodeMatrix
334
+ };
335
+ //# sourceMappingURL=matrix.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/matrix.ts"],
4
+ "mappings": "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",
5
+ "names": ["fillReserved", "fillData", "mask", "i", "j"]
6
+ }
@@ -0,0 +1,183 @@
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
+ // qrcode.ts
21
+ var qrcode_exports = {};
22
+ __export(qrcode_exports, {
23
+ generateQrCodeData: () => generateQrCodeData
24
+ });
25
+ module.exports = __toCommonJS(qrcode_exports);
26
+ var import_ecc = require("./utils/ecc.cjs");
27
+ var EC_LEVELS = ["L", "M", "Q", "H"];
28
+ var CODEWORDS = [
29
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1],
30
+ // there is no version 0
31
+ [26, 7, 1, 10, 1, 13, 1, 17, 1],
32
+ [44, 10, 1, 16, 1, 22, 1, 28, 1],
33
+ [70, 15, 1, 26, 1, 36, 2, 44, 2],
34
+ [100, 20, 1, 36, 2, 52, 2, 64, 4],
35
+ [134, 26, 1, 48, 2, 72, 4, 88, 4],
36
+ // 5
37
+ [172, 36, 2, 64, 4, 96, 4, 112, 4],
38
+ [196, 40, 2, 72, 4, 108, 6, 130, 5],
39
+ [242, 48, 2, 88, 4, 132, 6, 156, 6],
40
+ [292, 60, 2, 110, 5, 160, 8, 192, 8],
41
+ [346, 72, 4, 130, 5, 192, 8, 224, 8],
42
+ // 10
43
+ [404, 80, 4, 150, 5, 224, 8, 264, 11],
44
+ [466, 96, 4, 176, 8, 260, 10, 308, 11],
45
+ [532, 104, 4, 198, 9, 288, 12, 352, 16],
46
+ [581, 120, 4, 216, 9, 320, 16, 384, 16],
47
+ [655, 132, 6, 240, 10, 360, 12, 432, 18],
48
+ // 15
49
+ [733, 144, 6, 280, 10, 408, 17, 480, 16],
50
+ [815, 168, 6, 308, 11, 448, 16, 532, 19],
51
+ [901, 180, 6, 338, 13, 504, 18, 588, 21],
52
+ [991, 196, 7, 364, 14, 546, 21, 650, 25],
53
+ [1085, 224, 8, 416, 16, 600, 20, 700, 25],
54
+ // 20
55
+ [1156, 224, 8, 442, 17, 644, 23, 750, 25],
56
+ [1258, 252, 9, 476, 17, 690, 23, 816, 34],
57
+ [1364, 270, 9, 504, 18, 750, 25, 900, 30],
58
+ [1474, 300, 10, 560, 20, 810, 27, 960, 32],
59
+ [1588, 312, 12, 588, 21, 870, 29, 1050, 35],
60
+ // 25
61
+ [1706, 336, 12, 644, 23, 952, 34, 1110, 37],
62
+ [1828, 360, 12, 700, 25, 1020, 34, 1200, 40],
63
+ [1921, 390, 13, 728, 26, 1050, 35, 1260, 42],
64
+ [2051, 420, 14, 784, 28, 1140, 38, 1350, 45],
65
+ [2185, 450, 15, 812, 29, 1200, 40, 1440, 48],
66
+ // 30
67
+ [2323, 480, 16, 868, 31, 1290, 43, 1530, 51],
68
+ [2465, 510, 17, 924, 33, 1350, 45, 1620, 54],
69
+ [2611, 540, 18, 980, 35, 1440, 48, 1710, 57],
70
+ [2761, 570, 19, 1036, 37, 1530, 51, 1800, 60],
71
+ [2876, 570, 19, 1064, 38, 1590, 53, 1890, 63],
72
+ // 35
73
+ [3034, 600, 20, 1120, 40, 1680, 56, 1980, 66],
74
+ [3196, 630, 21, 1204, 43, 1770, 59, 2100, 70],
75
+ [3362, 660, 22, 1260, 45, 1860, 62, 2220, 74],
76
+ [3532, 720, 24, 1316, 47, 1950, 65, 2310, 77],
77
+ [3706, 750, 25, 1372, 49, 2040, 68, 2430, 81]
78
+ // 40
79
+ ];
80
+ var VERSIONS = CODEWORDS.map((v, index) => {
81
+ if (!index)
82
+ return null;
83
+ const res = {};
84
+ for (let i = 1; i < 8; i += 2) {
85
+ const length = v[0] - v[i];
86
+ const template = v[i + 1];
87
+ const ecLevel = EC_LEVELS[i / 2 | 0];
88
+ const blocks = [];
89
+ for (let k = template, n = length; k > 0; k--) {
90
+ const block = n / k | 0;
91
+ blocks.push(block);
92
+ n -= block;
93
+ }
94
+ res[ecLevel] = {
95
+ version: index,
96
+ ecLevel,
97
+ dataLen: length,
98
+ ecLen: v[i] / template,
99
+ blockLengths: blocks
100
+ };
101
+ }
102
+ return res;
103
+ });
104
+ function getTemplate(message, ecLevel) {
105
+ let len = NaN;
106
+ let i = 1;
107
+ if (message.data1) {
108
+ len = Math.ceil(message.data1.length / 8);
109
+ } else {
110
+ i = 10;
111
+ }
112
+ for (; i < 10; i++) {
113
+ const version = VERSIONS[i][ecLevel];
114
+ if (version.dataLen >= len) {
115
+ return structuredClone(version);
116
+ }
117
+ }
118
+ if (message.data10) {
119
+ len = Math.ceil(message.data10.length / 8);
120
+ } else {
121
+ i = 27;
122
+ }
123
+ for (; i < 27; i++) {
124
+ const version = VERSIONS[i][ecLevel];
125
+ if (version.dataLen >= len) {
126
+ return structuredClone(version);
127
+ }
128
+ }
129
+ len = Math.ceil(message.data27.length / 8);
130
+ for (; i < 41; i++) {
131
+ const version = VERSIONS[i][ecLevel];
132
+ if (version.dataLen >= len) {
133
+ return structuredClone(version);
134
+ }
135
+ }
136
+ throw new Error("Too much data to encode in QR code");
137
+ }
138
+ function fillTemplate(encoded, template) {
139
+ const blocks = new Array(template.dataLen).fill(0);
140
+ let message;
141
+ if (template.version < 10) {
142
+ message = encoded.data1;
143
+ } else if (template.version < 27) {
144
+ message = encoded.data10;
145
+ } else {
146
+ message = encoded.data27;
147
+ }
148
+ const len = message.length;
149
+ for (let i = 0; i < len; i += 8) {
150
+ let b = 0;
151
+ for (let j = 0; j < 8; j++) {
152
+ b = b << 1 | (message[i + j] ? 1 : 0);
153
+ }
154
+ blocks[i / 8] = b;
155
+ }
156
+ let pad = 236;
157
+ for (let i = Math.ceil((len + 4) / 8); i < blocks.length; i++) {
158
+ blocks[i] = pad;
159
+ pad = pad == 236 ? 17 : 236;
160
+ }
161
+ let offset = 0;
162
+ const ecData = [];
163
+ const blockData = template.blockLengths.map((n) => {
164
+ const b = blocks.slice(offset, offset + n);
165
+ offset += n;
166
+ ecData.push((0, import_ecc.calculateEcc)(b, template.ecLen));
167
+ return b;
168
+ });
169
+ return {
170
+ version: template.version,
171
+ ecLevel: template.ecLevel,
172
+ ecData,
173
+ blockData
174
+ };
175
+ }
176
+ function generateQrCodeData(data, ecLevel) {
177
+ return fillTemplate(data, getTemplate(data, ecLevel));
178
+ }
179
+ // Annotate the CommonJS export names for ESM import in node:
180
+ 0 && (module.exports = {
181
+ generateQrCodeData
182
+ });
183
+ //# sourceMappingURL=qrcode.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/qrcode.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ import type { QrCodeMessage } from './encode';
2
+ import type { ECLevel } from './index';
3
+ /** The internal structure of a QR code */
4
+ export interface QrCodeData {
5
+ /** The version of the QR code (1...40) */
6
+ readonly version: number;
7
+ /** The error correction level for the QR code */
8
+ readonly ecLevel: ECLevel;
9
+ /** The data blocks of the QR code */
10
+ readonly blockData: number[][];
11
+ /** The ECC blocks of the QR code */
12
+ readonly ecData: number[][];
13
+ }
14
+ /**
15
+ * Create the QR code structure for the given text or binary data.
16
+ *
17
+ * @param data The {@link QrCodeMessage} structure containing the message
18
+ * @param ecLevel The error correction level for the QR code
19
+ */
20
+ export declare function generateQrCodeData(data: QrCodeMessage, ecLevel: ECLevel): QrCodeData;