@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.
- package/LICENSE.md +211 -0
- package/NOTICE.md +13 -0
- package/README.md +175 -0
- package/dist/encode.cjs +147 -0
- package/dist/encode.cjs.map +6 -0
- package/dist/encode.d.ts +11 -0
- package/dist/encode.mjs +122 -0
- package/dist/encode.mjs.map +6 -0
- package/dist/images/path.cjs +145 -0
- package/dist/images/path.cjs.map +6 -0
- package/dist/images/path.d.ts +6 -0
- package/dist/images/path.mjs +120 -0
- package/dist/images/path.mjs.map +6 -0
- package/dist/images/pdf.cjs +96 -0
- package/dist/images/pdf.cjs.map +6 -0
- package/dist/images/pdf.d.ts +3 -0
- package/dist/images/pdf.mjs +71 -0
- package/dist/images/pdf.mjs.map +6 -0
- package/dist/images/png.cjs +86 -0
- package/dist/images/png.cjs.map +6 -0
- package/dist/images/png.d.ts +3 -0
- package/dist/images/png.mjs +61 -0
- package/dist/images/png.mjs.map +6 -0
- package/dist/images/svg.cjs +64 -0
- package/dist/images/svg.cjs.map +6 -0
- package/dist/images/svg.d.ts +54 -0
- package/dist/images/svg.mjs +38 -0
- package/dist/images/svg.mjs.map +6 -0
- package/dist/index.cjs +110 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.mjs +74 -0
- package/dist/index.mjs.map +6 -0
- package/dist/matrix.cjs +360 -0
- package/dist/matrix.cjs.map +6 -0
- package/dist/matrix.d.ts +3 -0
- package/dist/matrix.mjs +335 -0
- package/dist/matrix.mjs.map +6 -0
- package/dist/qrcode.cjs +183 -0
- package/dist/qrcode.cjs.map +6 -0
- package/dist/qrcode.d.ts +20 -0
- package/dist/qrcode.mjs +158 -0
- package/dist/qrcode.mjs.map +6 -0
- package/dist/utils/crc32.cjs +53 -0
- package/dist/utils/crc32.cjs.map +6 -0
- package/dist/utils/crc32.d.ts +9 -0
- package/dist/utils/crc32.mjs +28 -0
- package/dist/utils/crc32.mjs.map +6 -0
- package/dist/utils/dataurl.cjs +35 -0
- package/dist/utils/dataurl.cjs.map +6 -0
- package/dist/utils/dataurl.d.ts +1 -0
- package/dist/utils/dataurl.mjs +10 -0
- package/dist/utils/dataurl.mjs.map +6 -0
- package/dist/utils/deflate.cjs +39 -0
- package/dist/utils/deflate.cjs.map +6 -0
- package/dist/utils/deflate.d.ts +2 -0
- package/dist/utils/deflate.mjs +14 -0
- package/dist/utils/deflate.mjs.map +6 -0
- package/dist/utils/ecc.cjs +93 -0
- package/dist/utils/ecc.cjs.map +6 -0
- package/dist/utils/ecc.d.ts +2 -0
- package/dist/utils/ecc.mjs +68 -0
- package/dist/utils/ecc.mjs.map +6 -0
- package/dist/utils/merge.cjs +41 -0
- package/dist/utils/merge.cjs.map +6 -0
- package/dist/utils/merge.d.ts +2 -0
- package/dist/utils/merge.mjs +16 -0
- package/dist/utils/merge.mjs.map +6 -0
- package/package.json +61 -0
- package/src/encode.ts +180 -0
- package/src/images/path.ts +131 -0
- package/src/images/pdf.ts +76 -0
- package/src/images/png.ts +105 -0
- package/src/images/svg.ts +102 -0
- package/src/index.ts +147 -0
- package/src/matrix.ts +392 -0
- package/src/qrcode.ts +217 -0
- package/src/utils/crc32.ts +50 -0
- package/src/utils/dataurl.ts +7 -0
- package/src/utils/deflate.ts +17 -0
- package/src/utils/ecc.ts +95 -0
- package/src/utils/merge.ts +13 -0
package/dist/matrix.mjs
ADDED
|
@@ -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
|
+
}
|
package/dist/qrcode.cjs
ADDED
|
@@ -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": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA6B;AAsC7B,IAAM,YAAY,CAAE,KAAK,KAAK,KAAK,GAAI;AAGvC,IAAM,YAAY;AAAA,EAChB,CAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAG;AAAA;AAAA,EACrC,CAAE,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAE;AAAA,EAChC,CAAE,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAE;AAAA,EACjC,CAAE,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAE;AAAA,EACjC,CAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAE;AAAA,EAClC,CAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAE;AAAA;AAAA,EAClC,CAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAE;AAAA,EACnC,CAAE,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAE;AAAA,EACpC,CAAE,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAE;AAAA,EACpC,CAAE,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAE;AAAA,EACrC,CAAE,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAE;AAAA;AAAA,EACrC,CAAE,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAG;AAAA,EACtC,CAAE,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,EAAG;AAAA,EACvC,CAAE,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,EAAG;AAAA,EACxC,CAAE,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,EAAG;AAAA,EACxC,CAAE,KAAK,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA;AAAA,EACzC,CAAE,KAAK,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EACzC,CAAE,KAAK,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EACzC,CAAE,KAAK,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EACzC,CAAE,KAAK,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EACzC,CAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA;AAAA,EAC1C,CAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EAC1C,CAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EAC1C,CAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EAC1C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAG;AAAA,EAC3C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,EAAG;AAAA;AAAA,EAC5C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,EAAG;AAAA,EAC5C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC7C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC9C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA;AAAA,EAC9C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC9C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC9C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC9C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA,EAC9C,CAAE,MAAM,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAG;AAAA;AAChD;AAEA,IAAM,WAAsB,UAAU,IAAI,CAAC,GAAa,UAAmB;AACzE,MAAI,CAAE;AAAO,WAAO;AAEpB,QAAM,MAAgC,CAAC;AACvC,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;AAC7B,UAAM,SAAS,EAAE,CAAC,IAAK,EAAE,CAAC;AAC1B,UAAM,WAAW,EAAE,IAAE,CAAC;AACtB,UAAM,UAAU,UAAW,IAAE,IAAG,CAAC;AACjC,UAAM,SAAmB,CAAC;AAE1B,aAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,GAAG,KAAK;AAC7C,YAAM,QAAS,IAAI,IAAK;AACxB,aAAO,KAAK,KAAK;AACjB,WAAK;AAAA,IACP;AAEA,QAAI,OAAO,IAAI;AAAA,MACb,SAAS;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT,OAAO,EAAE,CAAC,IAAK;AAAA,MACf,cAAc;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT,CAAC;AAOD,SAAS,YAAY,SAAwB,SAA4B;AACvE,MAAI,MAAc;AAClB,MAAI,IAAI;AAER,MAAI,QAAQ,OAAO;AACjB,UAAM,KAAK,KAAK,QAAQ,MAAM,SAAS,CAAC;AAAA,EAC1C,OAAO;AACL,QAAI;AAAA,EACN;AAEA,SAAc,IAAI,IAAI,KAAK;AACzB,UAAM,UAAU,SAAS,CAAC,EAAG,OAAO;AACpC,QAAI,QAAQ,WAAW,KAAK;AAC1B,aAAO,gBAAgB,OAAO;AAAA,IAChC;AAAA,EACF;AAEA,MAAI,QAAQ,QAAQ;AAClB,UAAM,KAAK,KAAK,QAAQ,OAAO,SAAS,CAAC;AAAA,EAC3C,OAAO;AACL,QAAI;AAAA,EACN;AAEA,SAAc,IAAI,IAAI,KAAK;AACzB,UAAM,UAAU,SAAS,CAAC,EAAG,OAAO;AACpC,QAAI,QAAQ,WAAW,KAAK;AAC1B,aAAO,gBAAgB,OAAO;AAAA,IAChC;AAAA,EACF;AAEA,QAAM,KAAK,KAAK,QAAQ,OAAO,SAAS,CAAC;AACzC,SAAc,IAAI,IAAI,KAAK;AACzB,UAAM,UAAU,SAAS,CAAC,EAAG,OAAO;AACpC,QAAI,QAAQ,WAAW,KAAK;AAC1B,aAAO,gBAAgB,OAAO;AAAA,IAChC;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,oCAAoC;AACtD;AAGA,SAAS,aAAa,SAAwB,UAAgC;AAC5E,QAAM,SAAS,IAAI,MAAc,SAAS,OAAO,EAAE,KAAK,CAAC;AAEzD,MAAI;AACJ,MAAI,SAAS,UAAU,IAAI;AACzB,cAAU,QAAQ;AAAA,EACpB,WAAW,SAAS,UAAU,IAAI;AAChC,cAAU,QAAQ;AAAA,EACpB,OAAO;AACL,cAAU,QAAQ;AAAA,EACpB;AAEA,QAAM,MAAM,QAAQ;AAEpB,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAC/B,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAK,KAAK,KAAM,QAAQ,IAAI,CAAC,IAAI,IAAI;AAAA,IACvC;AACA,WAAO,IAAI,CAAC,IAAI;AAAA,EAClB;AAEA,MAAI,MAAM;AACV,WAAS,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK;AAC7D,WAAO,CAAC,IAAI;AACZ,UAAO,OAAO,MAAO,KAAK;AAAA,EAC5B;AAEA,MAAI,SAAS;AACb,QAAM,SAAqB,CAAC;AAC5B,QAAM,YAAY,SAAS,aAAa,IAAI,CAAC,MAAM;AACjD,UAAM,IAAI,OAAO,MAAM,QAAQ,SAAS,CAAC;AACzC,cAAU;AACV,WAAO,SAAK,yBAAa,GAAG,SAAS,KAAK,CAAC;AAC3C,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AAAA,IACL,SAAS,SAAS;AAAA,IAClB,SAAS,SAAS;AAAA,IAClB;AAAA,IACA;AAAA,EACF;AACF;AAYO,SAAS,mBAAmB,MAAqB,SAA8B;AACpF,SAAO,aAAa,MAAM,YAAY,MAAM,OAAO,CAAC;AACtD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/qrcode.d.ts
ADDED
|
@@ -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;
|