qr 0.5.4 → 0.6.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/README.md +43 -36
- package/decode.d.ts +100 -13
- package/decode.d.ts.map +1 -1
- package/decode.js +623 -153
- package/decode.js.map +1 -1
- package/dom.d.ts +110 -13
- package/dom.d.ts.map +1 -1
- package/dom.js +138 -18
- package/dom.js.map +1 -1
- package/index.d.ts +175 -35
- package/index.d.ts.map +1 -1
- package/index.js +276 -83
- package/index.js.map +1 -1
- package/package.json +8 -4
- package/src/decode.ts +648 -177
- package/src/dom.ts +169 -31
- package/src/index.ts +500 -129
package/dom.js
CHANGED
|
@@ -23,6 +23,20 @@ limitations under the License.
|
|
|
23
23
|
* @module
|
|
24
24
|
*/
|
|
25
25
|
import decodeQR, {} from "./decode.js";
|
|
26
|
+
/**
|
|
27
|
+
* Read rendered element dimensions from computed CSS.
|
|
28
|
+
* @param elm - Element whose computed width and height should be parsed.
|
|
29
|
+
* @returns Pixel width and height parsed from computed styles.
|
|
30
|
+
* @example
|
|
31
|
+
* Read rendered element dimensions from computed CSS.
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { getSize } from 'qr/dom.js';
|
|
34
|
+
* if (typeof document !== 'undefined') {
|
|
35
|
+
* const video = document.querySelector('video')!;
|
|
36
|
+
* void getSize(video);
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
26
40
|
export const getSize = (elm) => {
|
|
27
41
|
const css = getComputedStyle(elm);
|
|
28
42
|
const width = Math.floor(+css.width.split('px')[0]);
|
|
@@ -46,7 +60,19 @@ const clearCanvas = ({ canvas, context }) => {
|
|
|
46
60
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
47
61
|
};
|
|
48
62
|
/**
|
|
49
|
-
* Handles canvases for QR code decoding
|
|
63
|
+
* Handles canvases for QR code decoding.
|
|
64
|
+
* @param elements - Optional output canvases. See {@link QRCanvasElements}.
|
|
65
|
+
* @param opts - Drawing and decode options for the helper canvases. See {@link QRCanvasOpts}.
|
|
66
|
+
* @example
|
|
67
|
+
* Create a `QRCanvas` that paints overlay highlights onto a DOM canvas.
|
|
68
|
+
* ```ts
|
|
69
|
+
* import { QRCanvas } from 'qr/dom.js';
|
|
70
|
+
* if (typeof document !== 'undefined') {
|
|
71
|
+
* const overlay = document.createElement('canvas');
|
|
72
|
+
* const canvas = new QRCanvas({ overlay });
|
|
73
|
+
* void canvas;
|
|
74
|
+
* }
|
|
75
|
+
* ```
|
|
50
76
|
*/
|
|
51
77
|
export class QRCanvas {
|
|
52
78
|
opts;
|
|
@@ -55,7 +81,8 @@ export class QRCanvas {
|
|
|
55
81
|
overlay;
|
|
56
82
|
bitmap;
|
|
57
83
|
resultQR;
|
|
58
|
-
constructor(
|
|
84
|
+
constructor(elements = {}, opts = {}) {
|
|
85
|
+
const { overlay, bitmap, resultQR } = elements;
|
|
59
86
|
this.opts = {
|
|
60
87
|
resultBlockSize: 8,
|
|
61
88
|
overlayMainColor: 'green',
|
|
@@ -77,6 +104,8 @@ export class QRCanvas {
|
|
|
77
104
|
}
|
|
78
105
|
}
|
|
79
106
|
setSize(height, width) {
|
|
107
|
+
// `resultQR` is resized in `drawResultQr()` because it tracks the decoded
|
|
108
|
+
// QR image size, not the current source frame dimensions.
|
|
80
109
|
setCanvasSize(this.main.canvas, height, width);
|
|
81
110
|
if (this.overlay)
|
|
82
111
|
setCanvasSize(this.overlay.canvas, height, width);
|
|
@@ -89,9 +118,11 @@ export class QRCanvas {
|
|
|
89
118
|
const imgData = new ImageData(Uint8ClampedArray.from(data), width, height);
|
|
90
119
|
let offset = { x: 0, y: 0 };
|
|
91
120
|
if (this.opts.cropToSquare) {
|
|
121
|
+
// Match `decodeQR()`'s center-crop offset so the bitmap debug view
|
|
122
|
+
// stays aligned with detected points remapped into the source frame.
|
|
92
123
|
offset = {
|
|
93
|
-
x: Math.
|
|
94
|
-
y: Math.
|
|
124
|
+
x: Math.floor((this.bitmap.canvas.width - width) / 2),
|
|
125
|
+
y: Math.floor((this.bitmap.canvas.height - height) / 2),
|
|
95
126
|
};
|
|
96
127
|
}
|
|
97
128
|
this.bitmap.context.putImageData(imgData, offset.x, offset.y);
|
|
@@ -103,6 +134,9 @@ export class QRCanvas {
|
|
|
103
134
|
setCanvasSize(this.resultQR.canvas, height, width);
|
|
104
135
|
const imgData = new ImageData(Uint8ClampedArray.from(data), width, height);
|
|
105
136
|
this.resultQR.context.putImageData(imgData, 0, 0);
|
|
137
|
+
// The result canvas owns these inline rendering/layout styles: CSS Images
|
|
138
|
+
// defines `image-rendering: pixelated`, and scaled QR modules become hard
|
|
139
|
+
// to read with default smoothing. Use class/id CSS for unrelated styling.
|
|
106
140
|
this.resultQR.canvas.style = `image-rendering: pixelated; width: ${blockSize * width}px; height: ${blockSize * height}px`;
|
|
107
141
|
}
|
|
108
142
|
drawOverlay(points) {
|
|
@@ -121,13 +155,17 @@ export class QRCanvas {
|
|
|
121
155
|
// Clear only central part (flickering)
|
|
122
156
|
ctx.clearRect(offset.x, offset.y, squareSize, squareSize);
|
|
123
157
|
ctx.fillStyle = this.opts.overlaySideColor;
|
|
158
|
+
// Trailing sidebars start where the floor-centered crop ends; odd
|
|
159
|
+
// remainders put the extra pixel on the trailing side.
|
|
124
160
|
if (width > height) {
|
|
161
|
+
const right = offset.x + squareSize;
|
|
125
162
|
ctx.fillRect(0, 0, offset.x, height); // left
|
|
126
|
-
ctx.fillRect(
|
|
163
|
+
ctx.fillRect(right, 0, width - right, height); // right
|
|
127
164
|
}
|
|
128
165
|
else if (height > width) {
|
|
166
|
+
const bottom = offset.y + squareSize;
|
|
129
167
|
ctx.fillRect(0, 0, width, offset.y); // top
|
|
130
|
-
ctx.fillRect(0,
|
|
168
|
+
ctx.fillRect(0, bottom, width, height - bottom); // bottom
|
|
131
169
|
}
|
|
132
170
|
}
|
|
133
171
|
else {
|
|
@@ -177,6 +215,9 @@ export class QRCanvas {
|
|
|
177
215
|
return res;
|
|
178
216
|
}
|
|
179
217
|
catch (e) {
|
|
218
|
+
// Camera-frame decoding is fail-soft UI policy: README says "even if
|
|
219
|
+
// one frame fails, the next frame can succeed", so decode hook errors
|
|
220
|
+
// are treated as frame misses here instead of breaking the loop.
|
|
180
221
|
if (this.overlay && Date.now() - this.lastDetect > this.opts.overlayTimeout)
|
|
181
222
|
this.drawOverlay();
|
|
182
223
|
}
|
|
@@ -203,6 +244,7 @@ class QRCamera {
|
|
|
203
244
|
setStream(stream) {
|
|
204
245
|
this.stream = stream;
|
|
205
246
|
const { player } = this;
|
|
247
|
+
// Keep camera preview autoplaying inline on mobile before attaching the stream.
|
|
206
248
|
player.setAttribute('autoplay', '');
|
|
207
249
|
player.setAttribute('muted', '');
|
|
208
250
|
player.setAttribute('playsinline', '');
|
|
@@ -228,6 +270,10 @@ class QRCamera {
|
|
|
228
270
|
* @param deviceId - devideId from '.listDevices'
|
|
229
271
|
*/
|
|
230
272
|
async setDevice(deviceId) {
|
|
273
|
+
// Stop-first is intentional for camera switching: WPT's Media Capture
|
|
274
|
+
// `GUM-deny` and `GUM-impossible-constraint` tests show getUserMedia()
|
|
275
|
+
// can reject, but this DOM helper prioritizes releasing constrained
|
|
276
|
+
// camera hardware before requesting the replacement stream.
|
|
231
277
|
this.stop();
|
|
232
278
|
const stream = await navigator.mediaDevices.getUserMedia({
|
|
233
279
|
video: { deviceId: { exact: deviceId } },
|
|
@@ -236,6 +282,8 @@ class QRCamera {
|
|
|
236
282
|
}
|
|
237
283
|
readFrame(canvas, fullSize = false) {
|
|
238
284
|
const { player } = this;
|
|
285
|
+
// Default to the rendered player box so overlay coordinates stay aligned
|
|
286
|
+
// with the on-screen preview; `fullSize` opts into intrinsic frame pixels.
|
|
239
287
|
if (fullSize)
|
|
240
288
|
return canvas.drawImage(player, player.videoHeight, player.videoWidth);
|
|
241
289
|
const size = getSize(player);
|
|
@@ -249,12 +297,19 @@ class QRCamera {
|
|
|
249
297
|
/**
|
|
250
298
|
* Creates new QRCamera from frontal camera
|
|
251
299
|
* @param player - HTML Video element
|
|
300
|
+
* @returns Camera wrapper backed by the selected media stream.
|
|
252
301
|
* @example
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
302
|
+
* Create a camera helper and read frames into a `QRCanvas`.
|
|
303
|
+
* ```ts
|
|
304
|
+
* import { QRCanvas, frontalCamera } from 'qr/dom.js';
|
|
305
|
+
* if (typeof document !== 'undefined') {
|
|
306
|
+
* const player = document.querySelector('video')!;
|
|
307
|
+
* const canvas = new QRCanvas();
|
|
308
|
+
* const camera = await frontalCamera(player);
|
|
309
|
+
* camera.readFrame(canvas);
|
|
310
|
+
* camera.stop();
|
|
311
|
+
* }
|
|
312
|
+
* ```
|
|
258
313
|
*/
|
|
259
314
|
export async function frontalCamera(player) {
|
|
260
315
|
const stream = await navigator.mediaDevices.getUserMedia({
|
|
@@ -262,23 +317,35 @@ export async function frontalCamera(player) {
|
|
|
262
317
|
// Ask for screen resolution
|
|
263
318
|
height: { ideal: window.screen.height },
|
|
264
319
|
width: { ideal: window.screen.width },
|
|
265
|
-
//
|
|
266
|
-
//
|
|
320
|
+
// Media Capture names the screen/user-facing camera "user" and the
|
|
321
|
+
// world-facing camera "environment". This helper intentionally treats the
|
|
322
|
+
// phone's camera side as "frontal", since it is the main QR scanning side.
|
|
267
323
|
facingMode: 'environment',
|
|
268
324
|
},
|
|
269
325
|
});
|
|
270
326
|
return new QRCamera(stream, player);
|
|
271
327
|
}
|
|
272
328
|
/**
|
|
273
|
-
* Run callback in a loop with requestAnimationFrame
|
|
274
|
-
* @param cb -
|
|
329
|
+
* Run callback in a loop with requestAnimationFrame.
|
|
330
|
+
* @param cb - Callback invoked for each requested animation frame.
|
|
331
|
+
* @returns Canceller that stops the scheduled loop.
|
|
275
332
|
* @example
|
|
276
|
-
*
|
|
277
|
-
*
|
|
333
|
+
* Run a callback on every animation frame until cancelled.
|
|
334
|
+
* ```ts
|
|
335
|
+
* import { frameLoop } from 'qr/dom.js';
|
|
336
|
+
* if (typeof requestAnimationFrame !== 'undefined') {
|
|
337
|
+
* const cancel = frameLoop(() => {});
|
|
338
|
+
* cancel();
|
|
339
|
+
* }
|
|
340
|
+
* ```
|
|
278
341
|
*/
|
|
279
342
|
export function frameLoop(cb) {
|
|
280
343
|
let handle = undefined;
|
|
281
344
|
function loop(ts) {
|
|
345
|
+
// HTML `AnimationFrameProvider` IDL defines `FrameRequestCallback` as
|
|
346
|
+
// `undefined (DOMHighResTimeStamp time)`. The returned canceller is for the
|
|
347
|
+
// scheduled handle between frames, not self-cancel from inside `cb`, because
|
|
348
|
+
// this loop requests the next frame only after `cb` returns.
|
|
282
349
|
cb(ts);
|
|
283
350
|
handle = requestAnimationFrame(loop);
|
|
284
351
|
}
|
|
@@ -290,6 +357,23 @@ export function frameLoop(cb) {
|
|
|
290
357
|
handle = undefined;
|
|
291
358
|
};
|
|
292
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* Convert an SVG string into a PNG data URL in browser environments.
|
|
362
|
+
* @param svgData - SVG markup to rasterize.
|
|
363
|
+
* @param width - Output PNG width in pixels.
|
|
364
|
+
* @param height - Output PNG height in pixels.
|
|
365
|
+
* @returns Promise that resolves to a PNG `data:` URL.
|
|
366
|
+
* @example
|
|
367
|
+
* Convert an SVG string into a PNG data URL in browser environments.
|
|
368
|
+
* ```ts
|
|
369
|
+
* import { svgToPng } from 'qr/dom.js';
|
|
370
|
+
* const svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1"><rect width="1" height="1"/></svg>';
|
|
371
|
+
* if (typeof DOMParser !== 'undefined' && typeof document !== 'undefined') {
|
|
372
|
+
* const pngUrl = await svgToPng(svg, 256, 256);
|
|
373
|
+
* void pngUrl;
|
|
374
|
+
* }
|
|
375
|
+
* ```
|
|
376
|
+
*/
|
|
293
377
|
export function svgToPng(svgData, width, height) {
|
|
294
378
|
return new Promise((resolve, reject) => {
|
|
295
379
|
if (!(Number.isSafeInteger(width) &&
|
|
@@ -312,7 +396,10 @@ export function svgToPng(svgData, width, height) {
|
|
|
312
396
|
const serializer = new XMLSerializer();
|
|
313
397
|
const source = serializer.serializeToString(doc);
|
|
314
398
|
const img = new Image();
|
|
315
|
-
|
|
399
|
+
// HTMLImageElement IDL exposes `src` as the URL attribute and `onload` /
|
|
400
|
+
// `onerror` as EventHandler attributes. Register handlers before mutating
|
|
401
|
+
// `src` so a fast image implementation cannot complete before listeners
|
|
402
|
+
// exist.
|
|
316
403
|
img.onload = function () {
|
|
317
404
|
const canvas = document.createElement('canvas');
|
|
318
405
|
canvas.width = width;
|
|
@@ -325,6 +412,39 @@ export function svgToPng(svgData, width, height) {
|
|
|
325
412
|
resolve(dataUrl);
|
|
326
413
|
};
|
|
327
414
|
img.onerror = reject;
|
|
415
|
+
img.src = 'data:image/svg+xml,' + encodeURIComponent(source);
|
|
328
416
|
});
|
|
329
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Convert GIF bytes into a PNG blob in browser environments.
|
|
420
|
+
* @param gifBytes - GIF file contents.
|
|
421
|
+
* @returns Promise that resolves to a PNG blob.
|
|
422
|
+
* @throws If the browser cannot create an image bitmap or rendering context for the GIF. {@link Error}
|
|
423
|
+
* @example
|
|
424
|
+
* Convert GIF bytes into a PNG blob in browser environments.
|
|
425
|
+
* ```ts
|
|
426
|
+
* import { gifToPng } from 'qr/dom.js';
|
|
427
|
+
* if (typeof window !== 'undefined') {
|
|
428
|
+
* const gif = new Uint8Array(await (await fetch('/qr.gif')).arrayBuffer());
|
|
429
|
+
* const png = await gifToPng(gif);
|
|
430
|
+
* void png;
|
|
431
|
+
* }
|
|
432
|
+
* ```
|
|
433
|
+
*/
|
|
434
|
+
export async function gifToPng(gifBytes) {
|
|
435
|
+
const blob = new Blob([gifBytes], { type: 'image/gif' });
|
|
436
|
+
const bitmap = await createImageBitmap(blob);
|
|
437
|
+
try {
|
|
438
|
+
const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
|
|
439
|
+
const ctx = canvas.getContext('bitmaprenderer', { alpha: false });
|
|
440
|
+
if (!ctx)
|
|
441
|
+
throw new Error('was not able to create bitmaprenderer context');
|
|
442
|
+
ctx.transferFromImageBitmap(bitmap);
|
|
443
|
+
return await canvas.convertToBlob({ type: 'image/png' });
|
|
444
|
+
}
|
|
445
|
+
finally {
|
|
446
|
+
// Release the decoded bitmap even when context creation or PNG encoding fails.
|
|
447
|
+
bitmap.close();
|
|
448
|
+
}
|
|
449
|
+
}
|
|
330
450
|
//# sourceMappingURL=dom.js.map
|
package/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["src/dom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["src/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;GAOG;AAEH,OAAO,QAAQ,EAAE,EAAsC,MAAM,aAAa,CAAC;AAG3E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAgB,EAIhB,EAAE;IACF,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAyB,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;IACjF,mFAAmF;IACnF,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACrD,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACnD,CAAC,CAAC;AAGF,MAAM,gBAAgB,GAAG,CAAC,MAAyB,EAAqB,EAAE;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAqB,EAAE,EAAE;IAC7D,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC;AAuCF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,QAAQ;IACX,IAAI,CAAe;IACnB,UAAU,GAAG,CAAC,CAAC;IACf,IAAI,CAAoB;IACxB,OAAO,CAAqB;IAC5B,MAAM,CAAqB;IAC3B,QAAQ,CAAqB;IAErC,YAAY,WAA6B,EAAE,EAAE,OAA8B,EAAE;QAC3E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG;YACV,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,OAAO;YACzB,kBAAkB,EAAE,MAAM;YAC1B,gBAAgB,EAAE,OAAO;YACzB,cAAc,EAAE,GAAG;YACnB,YAAY,EAAE,IAAI;YAClB,GAAG,IAAI;SACR,CAAC;QACF,+EAA+E;QAC/E,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACtD,CAAC;IACH,CAAC;IACO,OAAO,CAAC,MAAc,EAAE,KAAa;QAC3C,0EAA0E;QAC1E,0DAA0D;QAC1D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM;YAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IACO,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAS;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,mEAAmE;YACnE,qEAAqE;YACrE,MAAM,GAAG;gBACP,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;aACxD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACO,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAS;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAC5C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QACzE,IAAI,CAAC,QAAQ,CAAC,MAAc,CAAC,KAAK,GAAG,sCACpC,SAAS,GAAG,KACd,eAAe,SAAS,GAAG,MAAM,IAAI,CAAC;IACxC,CAAC;IACO,WAAW,CAAC,MAAqB;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC,QAAQ;QACR,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG;gBACb,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;aACzC,CAAC;YACF,uCAAuC;YACvC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAC1D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC3C,kEAAkE;YAClE,uDAAuD;YACvD,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC;gBACpC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO;gBAC7C,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ;YACzD,CAAC;iBAAM,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC;gBACrC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC3C,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;YAChC,YAAY;YACZ,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC3C,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,IAAI,EAAE,CAAC;YAEX,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,UAAU;YACV,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACnC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACjC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IACD,SAAS,CAAC,KAAwB,EAAE,MAAc,EAAE,KAAa;QAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,OAAO,GAAe;YAC1B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;SACnC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,cAAc,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qEAAqE;YACrE,sEAAsE;YACtE,iEAAiE;YACjE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;gBACzE,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QACD,OAAO;IACT,CAAC;IACD,KAAK;QACH,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO;YAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,QAAQ;IACJ,MAAM,CAAc;IACpB,MAAM,CAAmB;IACjC,YAAY,MAAmB,EAAE,MAAwB;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IACO,SAAS,CAAC,MAAmB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,gFAAgF;QAChF,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;IAC5B,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,WAAW;QAMf,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB;YACrE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAChE,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,QAAQ,EAAE;SACzC,CAAC,CAAC,CAAC;IACR,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,4DAA4D;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;YACvD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;SACzC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,SAAS,CAAC,MAAgB,EAAE,QAAQ,GAAG,KAAK;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,QAAQ;YAAE,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI;QACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;CACF;AACD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB;IAC1D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QACvD,KAAK,EAAE;YACL,4BAA4B;YAC5B,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YACvC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACrC,mEAAmE;YACnE,0EAA0E;YAC1E,2EAA2E;YAC3E,UAAU,EAAE,aAAa;SAC1B;KACF,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmB,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,EAAwB;IAChD,IAAI,MAAM,GAAuB,SAAS,CAAC;IAC3C,SAAS,IAAI,CAAC,EAAU;QACtB,sEAAsE;QACtE,4EAA4E;QAC5E,6EAA6E;QAC7E,6DAA6D;QAC7D,EAAE,CAAC,EAAE,CAAC,CAAC;QACP,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,GAAS,EAAE;QAChB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IACE,CAAC,CACC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3B,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC5B,KAAK,GAAG,CAAC;YACT,MAAM,GAAG,CAAC;YACV,KAAK,GAAG,IAAI;YACZ,MAAM,GAAG,IAAI,CACd;YAED,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAEhE,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC;QACvC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QAEvE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEjD,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,SAAS;QACT,GAAG,CAAC,MAAM,GAAG;YACX,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG;gBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACxE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;QACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAA0B;IACvD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,QAAwB,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC3E,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,+EAA+E;QAC/E,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;AACH,CAAC"}
|
package/index.d.ts
CHANGED
|
@@ -14,8 +14,75 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
14
14
|
See the License for the specific language governing permissions and
|
|
15
15
|
limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* Methods for encoding (generating) QR code patterns.
|
|
19
|
+
* Check out decode.ts for decoding (reading).
|
|
20
|
+
* @module
|
|
21
|
+
* @example
|
|
22
|
+
```js
|
|
23
|
+
import encodeQR from 'qr';
|
|
24
|
+
const txt = 'Hello world';
|
|
25
|
+
const ascii = encodeQR(txt, 'ascii'); // Not all fonts are supported
|
|
26
|
+
const terminalFriendly = encodeQR(txt, 'term'); // 2x larger, all fonts are OK
|
|
27
|
+
const gifBytes = encodeQR(txt, 'gif'); // Uncompressed GIF
|
|
28
|
+
const svgElement = encodeQR(txt, 'svg'); // SVG vector image element
|
|
29
|
+
const array = encodeQR(txt, 'raw'); // 2d array for canvas or other libs
|
|
30
|
+
// import decodeQR from 'qr/decode.js';
|
|
31
|
+
```
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Bytes API type helpers for old + new TypeScript.
|
|
35
|
+
*
|
|
36
|
+
* TS 5.6 has `Uint8Array`, while TS 5.9+ made it generic `Uint8Array<ArrayBuffer>`.
|
|
37
|
+
* We can't use specific return type, because TS 5.6 will error.
|
|
38
|
+
* We can't use generic return type, because most TS 5.9 software will expect specific type.
|
|
39
|
+
*
|
|
40
|
+
* Maps typed-array input leaves to broad forms.
|
|
41
|
+
* These are compatibility adapters, not ownership guarantees.
|
|
42
|
+
*
|
|
43
|
+
* - `TArg` keeps byte inputs broad.
|
|
44
|
+
* - `TRet` marks byte outputs for TS 5.6 and TS 5.9+ compatibility.
|
|
45
|
+
*/
|
|
46
|
+
export type TypedArg<T> = T extends BigInt64Array ? BigInt64Array : T extends BigUint64Array ? BigUint64Array : T extends Float32Array ? Float32Array : T extends Float64Array ? Float64Array : T extends Int16Array ? Int16Array : T extends Int32Array ? Int32Array : T extends Int8Array ? Int8Array : T extends Uint16Array ? Uint16Array : T extends Uint32Array ? Uint32Array : T extends Uint8ClampedArray ? Uint8ClampedArray : T extends Uint8Array ? Uint8Array : never;
|
|
47
|
+
/** Maps typed-array output leaves to narrow TS-compatible forms. */
|
|
48
|
+
export type TypedRet<T> = T extends BigInt64Array ? ReturnType<typeof BigInt64Array.of> : T extends BigUint64Array ? ReturnType<typeof BigUint64Array.of> : T extends Float32Array ? ReturnType<typeof Float32Array.of> : T extends Float64Array ? ReturnType<typeof Float64Array.of> : T extends Int16Array ? ReturnType<typeof Int16Array.of> : T extends Int32Array ? ReturnType<typeof Int32Array.of> : T extends Int8Array ? ReturnType<typeof Int8Array.of> : T extends Uint16Array ? ReturnType<typeof Uint16Array.of> : T extends Uint32Array ? ReturnType<typeof Uint32Array.of> : T extends Uint8ClampedArray ? ReturnType<typeof Uint8ClampedArray.of> : T extends Uint8Array ? ReturnType<typeof Uint8Array.of> : never;
|
|
49
|
+
/** Recursively adapts byte-carrying API input types. See {@link TypedArg}. */
|
|
50
|
+
export type TArg<T> = T | ([TypedArg<T>] extends [never] ? T extends (...args: infer A) => infer R ? ((...args: {
|
|
51
|
+
[K in keyof A]: TRet<A[K]>;
|
|
52
|
+
}) => TArg<R>) & {
|
|
53
|
+
[K in keyof T]: T[K] extends (...args: any) => any ? T[K] : TArg<T[K]>;
|
|
54
|
+
} : T extends [infer A, ...infer R] ? [TArg<A>, ...{
|
|
55
|
+
[K in keyof R]: TArg<R[K]>;
|
|
56
|
+
}] : T extends readonly [infer A, ...infer R] ? readonly [TArg<A>, ...{
|
|
57
|
+
[K in keyof R]: TArg<R[K]>;
|
|
58
|
+
}] : T extends (infer A)[] ? TArg<A>[] : T extends readonly (infer A)[] ? readonly TArg<A>[] : T extends Promise<infer A> ? Promise<TArg<A>> : T extends object ? {
|
|
59
|
+
[K in keyof T]: TArg<T[K]>;
|
|
60
|
+
} : T : TypedArg<T>);
|
|
61
|
+
/** Recursively adapts byte-carrying API output types. See {@link TypedArg}. */
|
|
62
|
+
export type TRet<T> = T extends unknown ? T & ([TypedRet<T>] extends [never] ? T extends (...args: infer A) => infer R ? ((...args: {
|
|
63
|
+
[K in keyof A]: TArg<A[K]>;
|
|
64
|
+
}) => TRet<R>) & {
|
|
65
|
+
[K in keyof T]: T[K] extends (...args: any) => any ? T[K] : TRet<T[K]>;
|
|
66
|
+
} : T extends [infer A, ...infer R] ? [TRet<A>, ...{
|
|
67
|
+
[K in keyof R]: TRet<R[K]>;
|
|
68
|
+
}] : T extends readonly [infer A, ...infer R] ? readonly [TRet<A>, ...{
|
|
69
|
+
[K in keyof R]: TRet<R[K]>;
|
|
70
|
+
}] : T extends (infer A)[] ? TRet<A>[] : T extends readonly (infer A)[] ? readonly TRet<A>[] : T extends Promise<infer A> ? Promise<TRet<A>> : T extends object ? {
|
|
71
|
+
[K in keyof T]: TRet<T[K]>;
|
|
72
|
+
} : T : TypedRet<T>) : never;
|
|
73
|
+
/** Bidirectional codec interface. */
|
|
17
74
|
export interface Coder<F, T> {
|
|
75
|
+
/**
|
|
76
|
+
* Encodes a source value into the target representation.
|
|
77
|
+
* @param from - Source value to encode.
|
|
78
|
+
* @returns Encoded representation.
|
|
79
|
+
*/
|
|
18
80
|
encode(from: F): T;
|
|
81
|
+
/**
|
|
82
|
+
* Decodes a target value back into the source representation.
|
|
83
|
+
* @param to - Encoded representation to decode.
|
|
84
|
+
* @returns Decoded source value.
|
|
85
|
+
*/
|
|
19
86
|
decode(to: T): F;
|
|
20
87
|
}
|
|
21
88
|
declare function validateVersion(ver: Version): void;
|
|
@@ -27,20 +94,40 @@ declare function best<T>(): {
|
|
|
27
94
|
get: () => T | undefined;
|
|
28
95
|
score: () => number;
|
|
29
96
|
};
|
|
97
|
+
/** Two-dimensional point. */
|
|
30
98
|
export type Point = {
|
|
99
|
+
/** Horizontal coordinate. */
|
|
31
100
|
x: number;
|
|
101
|
+
/** Vertical coordinate. */
|
|
32
102
|
y: number;
|
|
33
103
|
};
|
|
104
|
+
/** Width and height pair. */
|
|
34
105
|
export type Size = {
|
|
106
|
+
/** Pixel height. */
|
|
35
107
|
height: number;
|
|
108
|
+
/** Pixel width. */
|
|
36
109
|
width: number;
|
|
37
110
|
};
|
|
111
|
+
/** Raster image used by the encoder and decoder. */
|
|
38
112
|
export type Image = Size & {
|
|
113
|
+
/** Row-major RGB or RGBA pixel data. */
|
|
39
114
|
data: Uint8Array | Uint8ClampedArray | number[];
|
|
40
115
|
};
|
|
41
116
|
type DrawValue = boolean | undefined;
|
|
42
117
|
type DrawFn = DrawValue | ((c: Point, curr: DrawValue) => DrawValue);
|
|
43
118
|
type ReadFn = (c: Point, curr: DrawValue) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Mutable monochrome bitmap used as the internal QR representation.
|
|
121
|
+
* @param size - Square edge length or explicit bitmap dimensions.
|
|
122
|
+
* @param data - Optional row-major pixel matrix using `true`, `false`, or `undefined`.
|
|
123
|
+
* @example
|
|
124
|
+
* Create a bitmap, then scale it for display.
|
|
125
|
+
* ```ts
|
|
126
|
+
* import { Bitmap } from 'qr';
|
|
127
|
+
* const bitmap = Bitmap.fromString('X \n X');
|
|
128
|
+
* bitmap.scale(2);
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
44
131
|
export declare class Bitmap {
|
|
45
132
|
private static size;
|
|
46
133
|
static fromString(s: string): Bitmap;
|
|
@@ -94,81 +181,134 @@ export declare class Bitmap {
|
|
|
94
181
|
toGIF(): Uint8Array;
|
|
95
182
|
toImage(isRGB?: boolean): Image;
|
|
96
183
|
}
|
|
97
|
-
/** Error correction mode. low: 7%, medium: 15%, quartile: 25%, high: 30
|
|
98
|
-
export declare const ECMode: readonly [
|
|
99
|
-
/** Error correction mode. */
|
|
184
|
+
/** Error correction mode. low: 7%, medium: 15%, quartile: 25%, high: 30%. */
|
|
185
|
+
export declare const ECMode: readonly ['low', 'medium', 'quartile', 'high'];
|
|
186
|
+
/** Error correction mode name. */
|
|
100
187
|
export type ErrorCorrection = (typeof ECMode)[number];
|
|
101
|
-
/** QR Code version. */
|
|
188
|
+
/** QR Code version in the `[1..40]` range. */
|
|
102
189
|
export type Version = number;
|
|
103
|
-
/** QR Code mask
|
|
190
|
+
/** QR Code mask index. */
|
|
104
191
|
export type Mask = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7) & keyof typeof PATTERNS;
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
|
|
192
|
+
/**
|
|
193
|
+
* QR payload compaction mode names recognized by the type/validator.
|
|
194
|
+
* `kanji` and `eci` are spec modes, but `encodeQR` currently rejects them until implemented.
|
|
195
|
+
*/
|
|
196
|
+
export declare const Encoding: readonly ['numeric', 'alphanumeric', 'byte', 'kanji', 'eci'];
|
|
197
|
+
/** QR payload encoding name. */
|
|
108
198
|
export type EncodingType = (typeof Encoding)[number];
|
|
109
199
|
declare const PATTERNS: readonly ((x: number, y: number) => boolean)[];
|
|
110
|
-
declare function interleave(ver: Version, ecc: ErrorCorrection): Coder<Uint8Array, Uint8Array
|
|
111
|
-
declare function drawTemplate(ver: Version, ecc: ErrorCorrection, maskIdx: Mask, test?: boolean): Bitmap
|
|
112
|
-
declare function zigzag(tpl: Bitmap
|
|
200
|
+
declare function interleave(ver: Version, ecc: ErrorCorrection): TRet<Coder<Uint8Array, Uint8Array>>;
|
|
201
|
+
declare function drawTemplate(ver: Version, ecc: ErrorCorrection, maskIdx: Mask, test?: boolean): TRet<Bitmap>;
|
|
202
|
+
declare function zigzag(tpl: TArg<Bitmap>, maskIdx: Mask, fn: (x: number, y: number, mask: boolean) => void): void;
|
|
113
203
|
declare function detectType(str: string): EncodingType;
|
|
114
204
|
/**
|
|
115
|
-
*
|
|
205
|
+
* Encode a string as UTF-8 bytes.
|
|
206
|
+
* @param str - Text to encode into UTF-8.
|
|
207
|
+
* @returns UTF-8 bytes for the provided string.
|
|
208
|
+
* @throws If the input is not a string. {@link Error}
|
|
209
|
+
* @example
|
|
210
|
+
* Encode a string as UTF-8 bytes.
|
|
211
|
+
* ```ts
|
|
212
|
+
* const bytes = utf8ToBytes('abc'); // new Uint8Array([97, 98, 99])
|
|
213
|
+
* ```
|
|
116
214
|
*/
|
|
117
|
-
export declare function utf8ToBytes(str: string): Uint8Array
|
|
118
|
-
declare function encode(ver: Version, ecc: ErrorCorrection, data: string, type: EncodingType, encoder?: (value: string) => Uint8Array): Uint8Array
|
|
119
|
-
declare function drawQR(ver: Version, ecc: ErrorCorrection, data: Uint8Array
|
|
120
|
-
declare function penalty(bm: Bitmap): number;
|
|
215
|
+
export declare function utf8ToBytes(str: string): TRet<Uint8Array>;
|
|
216
|
+
declare function encode(ver: Version, ecc: ErrorCorrection, data: string, type: EncodingType, encoder?: TArg<(value: string) => Uint8Array>): TRet<Uint8Array>;
|
|
217
|
+
declare function drawQR(ver: Version, ecc: ErrorCorrection, data: TArg<Uint8Array>, maskIdx: Mask, test?: boolean): TRet<Bitmap>;
|
|
218
|
+
declare function penalty(bm: TArg<Bitmap>): number;
|
|
121
219
|
/** QR Code generation options. */
|
|
122
220
|
export type QrOpts = {
|
|
221
|
+
/** Error-correction level to encode into the symbol. */
|
|
123
222
|
ecc?: ErrorCorrection | undefined;
|
|
223
|
+
/** Explicit payload encoding, otherwise detected from the input text. */
|
|
124
224
|
encoding?: EncodingType | undefined;
|
|
125
|
-
|
|
225
|
+
/**
|
|
226
|
+
* Custom text encoder used for `byte` payloads.
|
|
227
|
+
*
|
|
228
|
+
* Receives the text payload and returns the encoded byte sequence.
|
|
229
|
+
* @param text - Text payload to encode.
|
|
230
|
+
* @returns Encoded byte sequence for the payload.
|
|
231
|
+
*/
|
|
232
|
+
textEncoder?: TArg<(text: string) => Uint8Array>;
|
|
233
|
+
/** Explicit QR version to use instead of auto-fitting. */
|
|
126
234
|
version?: Version | undefined;
|
|
235
|
+
/** Explicit mask pattern to apply instead of choosing the best one. */
|
|
127
236
|
mask?: number | undefined;
|
|
237
|
+
/** Quiet-zone border width in modules. */
|
|
128
238
|
border?: number | undefined;
|
|
239
|
+
/** Output scale multiplier for raster formats. */
|
|
129
240
|
scale?: number | undefined;
|
|
130
241
|
};
|
|
242
|
+
/** SVG-specific QR output options. */
|
|
131
243
|
export type SvgQrOpts = {
|
|
132
244
|
/**
|
|
133
245
|
* Controls how cells are generated within the SVG.
|
|
134
246
|
*
|
|
135
247
|
* If `true`:
|
|
136
248
|
* - Cells are drawn using a single `path` element.
|
|
137
|
-
* - Pro: significantly reduces the size of the QR code (
|
|
249
|
+
* - Pro: significantly reduces the size of the QR code (`70%` smaller than
|
|
138
250
|
* unoptimized).
|
|
139
251
|
* - Con: less flexible with visually customizing cell shapes.
|
|
140
252
|
*
|
|
141
253
|
* If `false`:
|
|
142
254
|
* - Each cell is drawn with its own `rect` element.
|
|
143
255
|
* - Pro: allows more flexibility with visually customizing cells shapes.
|
|
144
|
-
* - Con: significantly increases the QR code size (
|
|
256
|
+
* - Con: significantly increases the QR code size (`230%` larger than
|
|
145
257
|
* optimized).
|
|
146
258
|
*
|
|
147
|
-
*
|
|
259
|
+
* Default is `true`.
|
|
148
260
|
*/
|
|
149
261
|
optimize?: boolean | undefined;
|
|
150
262
|
};
|
|
263
|
+
/** Supported encoder outputs. */
|
|
151
264
|
export type Output = 'raw' | 'ascii' | 'term' | 'gif' | 'svg';
|
|
152
265
|
/**
|
|
153
266
|
* Encodes (creates / generates) QR code.
|
|
154
|
-
* @param text
|
|
155
|
-
* @param output
|
|
156
|
-
* @param opts
|
|
267
|
+
* @param text - Text payload that should be encoded into the QR symbol.
|
|
268
|
+
* @param output - Output format to generate: raw matrix, ASCII, terminal ANSI, GIF, or SVG.
|
|
269
|
+
* @param opts - Encoding and rendering options. See {@link QrOpts} and {@link SvgQrOpts}.
|
|
270
|
+
* @returns Encoded QR data in the format selected by `output`.
|
|
271
|
+
* @throws If the payload, options, QR capacity, or output format are invalid. {@link Error}
|
|
157
272
|
* @example
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const
|
|
161
|
-
const
|
|
162
|
-
const
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
|
|
273
|
+
* Encode one text payload into several QR output formats.
|
|
274
|
+
* ```ts
|
|
275
|
+
* const txt = 'Hello world';
|
|
276
|
+
* const ascii = encodeQR(txt, 'ascii'); // Not all fonts are supported
|
|
277
|
+
* const terminalFriendly = encodeQR(txt, 'term'); // 2x larger, all fonts are OK
|
|
278
|
+
* const gifBytes = encodeQR(txt, 'gif'); // Uncompressed GIF
|
|
279
|
+
* const svgElement = encodeQR(txt, 'svg'); // SVG vector image element
|
|
280
|
+
* const array = encodeQR(txt, 'raw'); // 2d array for canvas or other libs
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
export declare function encodeQR(text: string, output: 'raw', opts?: TArg<QrOpts>): boolean[][];
|
|
284
|
+
export declare function encodeQR(text: string, output: 'ascii' | 'term', opts?: TArg<QrOpts>): string;
|
|
285
|
+
export declare function encodeQR(text: string, output: 'svg', opts?: TArg<QrOpts & SvgQrOpts>): string;
|
|
286
|
+
export declare function encodeQR(text: string, output: 'gif', opts?: TArg<QrOpts>): TRet<Uint8Array>;
|
|
287
|
+
/**
|
|
288
|
+
* Default export alias for {@link encodeQR}.
|
|
289
|
+
* @param text - Text payload that should be encoded into the QR symbol.
|
|
290
|
+
* @param output - Output format to generate: raw matrix, ASCII, terminal ANSI, GIF, or SVG.
|
|
291
|
+
* @param opts - Encoding and rendering options. See {@link QrOpts} and {@link SvgQrOpts}.
|
|
292
|
+
* @returns Encoded QR data in the format selected by `output`.
|
|
293
|
+
* @throws If the payload, options, QR capacity, or output format are invalid. {@link Error}
|
|
294
|
+
* @example
|
|
295
|
+
* Encode text into the default export from the package root.
|
|
296
|
+
* ```ts
|
|
297
|
+
* import encodeQR from 'qr';
|
|
298
|
+
* encodeQR('Hello world', 'ascii');
|
|
299
|
+
* ```
|
|
166
300
|
*/
|
|
167
|
-
export declare function encodeQR(text: string, output: 'raw', opts?: QrOpts): boolean[][];
|
|
168
|
-
export declare function encodeQR(text: string, output: 'ascii' | 'term', opts?: QrOpts): string;
|
|
169
|
-
export declare function encodeQR(text: string, output: 'svg', opts?: QrOpts & SvgQrOpts): string;
|
|
170
|
-
export declare function encodeQR(text: string, output: 'gif', opts?: QrOpts): Uint8Array;
|
|
171
301
|
export default encodeQR;
|
|
302
|
+
/**
|
|
303
|
+
* Low-level helpers used by the encoder and test suite.
|
|
304
|
+
* Exports the shared helper tables/functions through a frozen container.
|
|
305
|
+
* @example
|
|
306
|
+
* Read low-level QR metadata tables.
|
|
307
|
+
* ```ts
|
|
308
|
+
* import { utils } from 'qr';
|
|
309
|
+
* const size = utils.info.size.encode(1); // 21
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
172
312
|
export declare const utils: {
|
|
173
313
|
best: typeof best;
|
|
174
314
|
bin: typeof bin;
|