@weapp-vite/qr 1.1.10 → 1.2.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/dist/index.d.mts +0 -16
- package/dist/index.mjs +36 -72
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
|
-
//#region src/codeType.d.ts
|
|
3
2
|
/** QRCodeType 的类型定义。 */
|
|
4
3
|
type QRCodeType = 'qr' | 'mini-program-code' | 'unknown';
|
|
5
4
|
/** detectCodeTypeFromBuffer 的方法封装。 */
|
|
@@ -8,16 +7,12 @@ export declare function detectCodeTypeFromBuffer(buffer: Buffer): Promise<"qr" |
|
|
|
8
7
|
export declare function detectCodeTypeFromBase64(content: string): Promise<"qr" | "mini-program-code" | "unknown">;
|
|
9
8
|
/** detectCodeTypeFromFile 的方法封装。 */
|
|
10
9
|
export declare function detectCodeTypeFromFile(filePath: string): Promise<"qr" | "mini-program-code" | "unknown">;
|
|
11
|
-
//#endregion
|
|
12
|
-
//#region src/decode.d.ts
|
|
13
10
|
/** decodeQrCodeFromBuffer 的方法封装。 */
|
|
14
11
|
export declare function decodeQrCodeFromBuffer(buffer: Buffer): Promise<string>;
|
|
15
12
|
/** decodeQrCodeFromBase64 的方法封装。 */
|
|
16
13
|
export declare function decodeQrCodeFromBase64(content: string): Promise<string>;
|
|
17
14
|
/** decodeQrCodeFromFile 的方法封装。 */
|
|
18
15
|
export declare function decodeQrCodeFromFile(filePath: string): Promise<string>;
|
|
19
|
-
//#endregion
|
|
20
|
-
//#region src/types.d.ts
|
|
21
16
|
/**
|
|
22
17
|
* @file 二维码内部类型定义。
|
|
23
18
|
*/
|
|
@@ -27,12 +22,8 @@ interface QRCodeRenderOptions {
|
|
|
27
22
|
}
|
|
28
23
|
/** QRCodeMatrix 的类型定义。 */
|
|
29
24
|
type QRCodeMatrix = boolean[][];
|
|
30
|
-
//#endregion
|
|
31
|
-
//#region src/encode.d.ts
|
|
32
25
|
/** createQrCodeMatrix 的方法封装。 */
|
|
33
26
|
export declare function createQrCodeMatrix(input: string): QRCodeMatrix;
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region src/miniProgramCode.d.ts
|
|
36
27
|
interface MiniProgramCodePoint {
|
|
37
28
|
x: number;
|
|
38
29
|
y: number;
|
|
@@ -113,8 +104,6 @@ export declare function detectMiniProgramCodeFromFile(filePath: string): Promise
|
|
|
113
104
|
height: number;
|
|
114
105
|
} | undefined;
|
|
115
106
|
} | null>;
|
|
116
|
-
//#endregion
|
|
117
|
-
//#region src/reader/core/types.d.ts
|
|
118
107
|
/** QRCodeReaderResult 的类型定义。 */
|
|
119
108
|
interface QRCodeReaderResult {
|
|
120
109
|
result: string;
|
|
@@ -131,15 +120,10 @@ interface QRCodeReaderInstance {
|
|
|
131
120
|
}
|
|
132
121
|
/** QRCodeReaderConstructor 的类型定义。 */
|
|
133
122
|
type QRCodeReaderConstructor = new () => QRCodeReaderInstance;
|
|
134
|
-
//#endregion
|
|
135
|
-
//#region src/reader/decode.d.ts
|
|
136
123
|
/** decodeWithQrReader 的方法封装。 */
|
|
137
124
|
export declare function decodeWithQrReader(input: QRCodeReaderInput): Promise<QRCodeReaderResult>;
|
|
138
|
-
//#endregion
|
|
139
|
-
//#region src/render.d.ts
|
|
140
125
|
/** renderTerminalQrCodeFromMatrix 的方法封装。 */
|
|
141
126
|
export declare function renderTerminalQrCodeFromMatrix(matrix: QRCodeMatrix, options?: QRCodeRenderOptions): string;
|
|
142
127
|
/** renderTerminalQrCode 的方法封装。 */
|
|
143
128
|
export declare function renderTerminalQrCode(input: string, options?: QRCodeRenderOptions): string;
|
|
144
|
-
//#endregion
|
|
145
129
|
export type { MiniProgramCodeDetectionResult, QRCodeMatrix, QRCodeReaderConstructor, QRCodeReaderInput, QRCodeReaderInstance, QRCodeReaderResult, QRCodeRenderOptions, QRCodeType };
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import sharp from "sharp";
|
|
4
|
-
|
|
4
|
+
// src/reader/core/result.ts
|
|
5
5
|
/** normalizeQrCodeReaderResult 的方法封装。 */
|
|
6
6
|
function normalizeQrCodeReaderResult(value) {
|
|
7
7
|
if (value && typeof value === "object" && "result" in value && typeof value.result === "string") return value;
|
|
8
8
|
throw new TypeError("Invalid QR code reader result");
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
//#region src/reader/parse/bitmat.ts
|
|
10
|
+
// src/reader/parse/bitmat.ts
|
|
12
11
|
/**
|
|
13
12
|
* @file 二维码解析内部模块:bitmat。
|
|
14
13
|
*/
|
|
@@ -59,8 +58,7 @@ var BitMatrix = class {
|
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
60
|
};
|
|
62
|
-
|
|
63
|
-
//#region src/reader/parse/errorlevel.ts
|
|
61
|
+
// src/reader/parse/errorlevel.ts
|
|
64
62
|
/**
|
|
65
63
|
* @file 二维码解析内部模块:errorlevel。
|
|
66
64
|
*/
|
|
@@ -83,8 +81,7 @@ var ErrorCorrectionLevel = class {
|
|
|
83
81
|
}
|
|
84
82
|
};
|
|
85
83
|
FOR_BITS.push(new ErrorCorrectionLevel(1, 0, "M"), new ErrorCorrectionLevel(0, 1, "L"), new ErrorCorrectionLevel(3, 2, "H"), new ErrorCorrectionLevel(2, 3, "Q"));
|
|
86
|
-
|
|
87
|
-
//#region src/reader/parse/formatinf.ts
|
|
84
|
+
// src/reader/parse/formatinf.ts
|
|
88
85
|
/**
|
|
89
86
|
* @file 二维码解析内部模块:formatinf。
|
|
90
87
|
*/
|
|
@@ -180,8 +177,7 @@ var FormatInformation = class FormatInformation {
|
|
|
180
177
|
return this.errorCorrectionLevel === o.errorCorrectionLevel && this.dataMask === o.dataMask;
|
|
181
178
|
}
|
|
182
179
|
};
|
|
183
|
-
|
|
184
|
-
//#region src/reader/parse/version.ts
|
|
180
|
+
// src/reader/parse/version.ts
|
|
185
181
|
/**
|
|
186
182
|
* @file 二维码解析内部模块:version。
|
|
187
183
|
*/
|
|
@@ -575,8 +571,7 @@ function buildVersions() {
|
|
|
575
571
|
];
|
|
576
572
|
}
|
|
577
573
|
Version.VERSIONS = buildVersions();
|
|
578
|
-
|
|
579
|
-
//#region src/reader/detect/alignpat.ts
|
|
574
|
+
// src/reader/detect/alignpat.ts
|
|
580
575
|
var AlignmentPattern = class {
|
|
581
576
|
x;
|
|
582
577
|
y;
|
|
@@ -729,8 +724,7 @@ var AlignmentPatternFinder = class {
|
|
|
729
724
|
throw new Error("Couldn't find enough alignment patterns");
|
|
730
725
|
}
|
|
731
726
|
};
|
|
732
|
-
|
|
733
|
-
//#region src/reader/detect/findpat.ts
|
|
727
|
+
// src/reader/detect/findpat.ts
|
|
734
728
|
/**
|
|
735
729
|
* @file 二维码解析内部模块:findpat。
|
|
736
730
|
*/
|
|
@@ -1106,8 +1100,7 @@ var FinderPatternFinder = class {
|
|
|
1106
1100
|
return new FinderPatternInfo(patternInfo);
|
|
1107
1101
|
}
|
|
1108
1102
|
};
|
|
1109
|
-
|
|
1110
|
-
//#region src/reader/detect/grid.ts
|
|
1103
|
+
// src/reader/detect/grid.ts
|
|
1111
1104
|
/**
|
|
1112
1105
|
* @file 二维码解析内部模块:grid。
|
|
1113
1106
|
*/
|
|
@@ -1179,8 +1172,7 @@ const GridSampler = {
|
|
|
1179
1172
|
return bits;
|
|
1180
1173
|
}
|
|
1181
1174
|
};
|
|
1182
|
-
|
|
1183
|
-
//#region src/reader/detect/detector.ts
|
|
1175
|
+
// src/reader/detect/detector.ts
|
|
1184
1176
|
var PerspectiveTransform = class PerspectiveTransform {
|
|
1185
1177
|
static quadrilateralToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3, x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p) {
|
|
1186
1178
|
const qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);
|
|
@@ -1414,8 +1406,7 @@ var Detector = class {
|
|
|
1414
1406
|
return this.processFinderPatternInfo(info);
|
|
1415
1407
|
}
|
|
1416
1408
|
};
|
|
1417
|
-
|
|
1418
|
-
//#region src/reader/error-correction/gf256poly.ts
|
|
1409
|
+
// src/reader/error-correction/gf256poly.ts
|
|
1419
1410
|
var GF256Poly = class GF256Poly {
|
|
1420
1411
|
field;
|
|
1421
1412
|
coefficients;
|
|
@@ -1519,8 +1510,7 @@ var GF256Poly = class GF256Poly {
|
|
|
1519
1510
|
return [quotient, remainder];
|
|
1520
1511
|
}
|
|
1521
1512
|
};
|
|
1522
|
-
|
|
1523
|
-
//#region src/reader/error-correction/gf256.ts
|
|
1513
|
+
// src/reader/error-correction/gf256.ts
|
|
1524
1514
|
/**
|
|
1525
1515
|
* @file 二维码解析内部模块:gf256。
|
|
1526
1516
|
*/
|
|
@@ -1580,8 +1570,7 @@ var GF256 = class {
|
|
|
1580
1570
|
};
|
|
1581
1571
|
GF256.QR_CODE_FIELD = new GF256(285);
|
|
1582
1572
|
GF256.DATA_MATRIX_FIELD = new GF256(301);
|
|
1583
|
-
|
|
1584
|
-
//#region src/reader/error-correction/rsdecoder.ts
|
|
1573
|
+
// src/reader/error-correction/rsdecoder.ts
|
|
1585
1574
|
var ReedSolomonDecoder = class {
|
|
1586
1575
|
field;
|
|
1587
1576
|
constructor(field) {
|
|
@@ -1673,8 +1662,7 @@ var ReedSolomonDecoder = class {
|
|
|
1673
1662
|
return result;
|
|
1674
1663
|
}
|
|
1675
1664
|
};
|
|
1676
|
-
|
|
1677
|
-
//#region src/reader/parse/datamask.ts
|
|
1665
|
+
// src/reader/parse/datamask.ts
|
|
1678
1666
|
/**
|
|
1679
1667
|
* @file 二维码解析内部模块:datamask。
|
|
1680
1668
|
*/
|
|
@@ -1709,8 +1697,7 @@ const DataMask = {
|
|
|
1709
1697
|
return DATA_MASKS[reference];
|
|
1710
1698
|
}
|
|
1711
1699
|
};
|
|
1712
|
-
|
|
1713
|
-
//#region src/reader/parse/bmparser.ts
|
|
1700
|
+
// src/reader/parse/bmparser.ts
|
|
1714
1701
|
var BitMatrixParser = class {
|
|
1715
1702
|
bitMatrix;
|
|
1716
1703
|
parsedVersion;
|
|
@@ -1793,8 +1780,7 @@ var BitMatrixParser = class {
|
|
|
1793
1780
|
return result;
|
|
1794
1781
|
}
|
|
1795
1782
|
};
|
|
1796
|
-
|
|
1797
|
-
//#region src/reader/parse/datablock.ts
|
|
1783
|
+
// src/reader/parse/datablock.ts
|
|
1798
1784
|
var DataBlock = class DataBlock {
|
|
1799
1785
|
static getDataBlocks(rawCodewords, version, ecLevel) {
|
|
1800
1786
|
if (rawCodewords.length !== version.totalCodewords) throw new Error("ArgumentException");
|
|
@@ -1837,8 +1823,7 @@ var DataBlock = class DataBlock {
|
|
|
1837
1823
|
this.codewords = codewords;
|
|
1838
1824
|
}
|
|
1839
1825
|
};
|
|
1840
|
-
|
|
1841
|
-
//#region src/reader/parse/databr.ts
|
|
1826
|
+
// src/reader/parse/databr.ts
|
|
1842
1827
|
/**
|
|
1843
1828
|
* @file 二维码解析内部模块:databr。
|
|
1844
1829
|
*/
|
|
@@ -2060,8 +2045,7 @@ var QRCodeDataBlockReader = class {
|
|
|
2060
2045
|
return output;
|
|
2061
2046
|
}
|
|
2062
2047
|
};
|
|
2063
|
-
|
|
2064
|
-
//#region src/reader/parse/decoder.ts
|
|
2048
|
+
// src/reader/parse/decoder.ts
|
|
2065
2049
|
/**
|
|
2066
2050
|
* @file 二维码解析内部模块:decoder。
|
|
2067
2051
|
*/
|
|
@@ -2096,8 +2080,7 @@ const Decoder = {
|
|
|
2096
2080
|
return new QRCodeDataBlockReader(resultBytes, version.versionNumber, ecLevel.bits);
|
|
2097
2081
|
}
|
|
2098
2082
|
};
|
|
2099
|
-
|
|
2100
|
-
//#region src/reader/core/qrcode.ts
|
|
2083
|
+
// src/reader/core/qrcode.ts
|
|
2101
2084
|
/**
|
|
2102
2085
|
* @file 二维码解析内部模块:qrcode。
|
|
2103
2086
|
*/
|
|
@@ -2289,8 +2272,7 @@ function URShift(number, bits) {
|
|
|
2289
2272
|
if (number >= 0) return number >> bits;
|
|
2290
2273
|
return (number >> bits) + (2 << ~bits);
|
|
2291
2274
|
}
|
|
2292
|
-
|
|
2293
|
-
//#region src/reader/core/runtime.ts
|
|
2275
|
+
// src/reader/core/runtime.ts
|
|
2294
2276
|
/**
|
|
2295
2277
|
* @file 二维码核心 reader 运行时适配。
|
|
2296
2278
|
*/
|
|
@@ -2298,14 +2280,12 @@ function URShift(number, bits) {
|
|
|
2298
2280
|
function createLegacyQrCodeReader() {
|
|
2299
2281
|
return new QrCode();
|
|
2300
2282
|
}
|
|
2301
|
-
|
|
2302
|
-
//#region src/reader/core/decode.ts
|
|
2283
|
+
// src/reader/core/decode.ts
|
|
2303
2284
|
/** decodeWithLegacyQrCodeCore 的方法封装。 */
|
|
2304
2285
|
async function decodeWithLegacyQrCodeCore(input) {
|
|
2305
2286
|
return normalizeQrCodeReaderResult(await createLegacyQrCodeReader().decode(input));
|
|
2306
2287
|
}
|
|
2307
|
-
|
|
2308
|
-
//#region src/reader/decode.ts
|
|
2288
|
+
// src/reader/decode.ts
|
|
2309
2289
|
/**
|
|
2310
2290
|
* @file 二维码 reader 纯函数解码入口。
|
|
2311
2291
|
*/
|
|
@@ -2313,8 +2293,7 @@ async function decodeWithLegacyQrCodeCore(input) {
|
|
|
2313
2293
|
async function decodeWithQrReader(input) {
|
|
2314
2294
|
return await decodeWithLegacyQrCodeCore(input);
|
|
2315
2295
|
}
|
|
2316
|
-
|
|
2317
|
-
//#region src/decode.ts
|
|
2296
|
+
// src/decode.ts
|
|
2318
2297
|
/**
|
|
2319
2298
|
* @file 基于 sharp 的二维码解码封装。
|
|
2320
2299
|
*/
|
|
@@ -2338,8 +2317,7 @@ async function decodeQrCodeFromBase64(content) {
|
|
|
2338
2317
|
async function decodeQrCodeFromFile(filePath) {
|
|
2339
2318
|
return await decodeQrCodeFromBuffer(await readFile(filePath));
|
|
2340
2319
|
}
|
|
2341
|
-
|
|
2342
|
-
//#region src/miniProgramCode.ts
|
|
2320
|
+
// src/miniProgramCode.ts
|
|
2343
2321
|
/**
|
|
2344
2322
|
* @file 微信小程序码结构识别封装。
|
|
2345
2323
|
*/
|
|
@@ -2527,8 +2505,7 @@ async function detectMiniProgramCodeFromBase64(content) {
|
|
|
2527
2505
|
async function detectMiniProgramCodeFromFile(filePath) {
|
|
2528
2506
|
return await detectMiniProgramCodeFromBuffer(await readFile(filePath));
|
|
2529
2507
|
}
|
|
2530
|
-
|
|
2531
|
-
//#region src/codeType.ts
|
|
2508
|
+
// src/codeType.ts
|
|
2532
2509
|
/**
|
|
2533
2510
|
* @file 二维码类型检测封装。
|
|
2534
2511
|
*/
|
|
@@ -2556,8 +2533,7 @@ async function detectCodeTypeFromBase64(content) {
|
|
|
2556
2533
|
async function detectCodeTypeFromFile(filePath) {
|
|
2557
2534
|
return await detectCodeTypeFromBuffer(await readFile(filePath));
|
|
2558
2535
|
}
|
|
2559
|
-
|
|
2560
|
-
//#region src/terminalEncoder/errorCorrectLevel.ts
|
|
2536
|
+
// src/terminalEncoder/errorCorrectLevel.ts
|
|
2561
2537
|
/**
|
|
2562
2538
|
* @file 终端二维码编码内部模块:errorCorrectLevel。
|
|
2563
2539
|
*/
|
|
@@ -2567,8 +2543,7 @@ const QRErrorCorrectLevel = {
|
|
|
2567
2543
|
Q: 3,
|
|
2568
2544
|
H: 2
|
|
2569
2545
|
};
|
|
2570
|
-
|
|
2571
|
-
//#region src/terminalEncoder/bitBuffer.ts
|
|
2546
|
+
// src/terminalEncoder/bitBuffer.ts
|
|
2572
2547
|
/**
|
|
2573
2548
|
* @file 终端二维码编码内部模块:bitBuffer。
|
|
2574
2549
|
*/
|
|
@@ -2596,8 +2571,7 @@ var QRBitBuffer = class {
|
|
|
2596
2571
|
this.length++;
|
|
2597
2572
|
}
|
|
2598
2573
|
};
|
|
2599
|
-
|
|
2600
|
-
//#region src/terminalEncoder/mode.ts
|
|
2574
|
+
// src/terminalEncoder/mode.ts
|
|
2601
2575
|
/**
|
|
2602
2576
|
* @file 终端二维码编码内部模块:mode。
|
|
2603
2577
|
*/
|
|
@@ -2607,8 +2581,7 @@ const QRMode = {
|
|
|
2607
2581
|
MODE_8BIT_BYTE: 4,
|
|
2608
2582
|
MODE_KANJI: 8
|
|
2609
2583
|
};
|
|
2610
|
-
|
|
2611
|
-
//#region src/terminalEncoder/byte.ts
|
|
2584
|
+
// src/terminalEncoder/byte.ts
|
|
2612
2585
|
/**
|
|
2613
2586
|
* @file 终端二维码编码内部模块:byte。
|
|
2614
2587
|
*/
|
|
@@ -2626,8 +2599,7 @@ var QR8bitByte = class {
|
|
|
2626
2599
|
for (let i = 0; i < this.data.length; i++) buffer.put(this.data.charCodeAt(i), 8);
|
|
2627
2600
|
}
|
|
2628
2601
|
};
|
|
2629
|
-
|
|
2630
|
-
//#region src/terminalEncoder/math.ts
|
|
2602
|
+
// src/terminalEncoder/math.ts
|
|
2631
2603
|
/**
|
|
2632
2604
|
* @file 终端二维码编码内部模块:math。
|
|
2633
2605
|
*/
|
|
@@ -2647,8 +2619,7 @@ const QRMath = {
|
|
|
2647
2619
|
for (let i = 0; i < 8; i++) EXP_TABLE[i] = 1 << i;
|
|
2648
2620
|
for (let i = 8; i < 256; i++) EXP_TABLE[i] = EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8];
|
|
2649
2621
|
for (let i = 0; i < 255; i++) LOG_TABLE[EXP_TABLE[i]] = i;
|
|
2650
|
-
|
|
2651
|
-
//#region src/terminalEncoder/polynomial.ts
|
|
2622
|
+
// src/terminalEncoder/polynomial.ts
|
|
2652
2623
|
/**
|
|
2653
2624
|
* @file 终端二维码编码内部模块:polynomial。
|
|
2654
2625
|
*/
|
|
@@ -2681,8 +2652,7 @@ var QRPolynomial = class QRPolynomial {
|
|
|
2681
2652
|
return new QRPolynomial(num, 0).mod(e);
|
|
2682
2653
|
}
|
|
2683
2654
|
};
|
|
2684
|
-
|
|
2685
|
-
//#region src/terminalEncoder/rsBlock.ts
|
|
2655
|
+
// src/terminalEncoder/rsBlock.ts
|
|
2686
2656
|
/**
|
|
2687
2657
|
* @file 终端二维码编码内部模块:rsBlock。
|
|
2688
2658
|
*/
|
|
@@ -3899,8 +3869,7 @@ var QRRSBlock = class QRRSBlock {
|
|
|
3899
3869
|
}
|
|
3900
3870
|
}
|
|
3901
3871
|
};
|
|
3902
|
-
|
|
3903
|
-
//#region src/terminalEncoder/maskPattern.ts
|
|
3872
|
+
// src/terminalEncoder/maskPattern.ts
|
|
3904
3873
|
/**
|
|
3905
3874
|
* @file 终端二维码编码内部模块:maskPattern。
|
|
3906
3875
|
*/
|
|
@@ -3914,8 +3883,7 @@ const QRMaskPattern = {
|
|
|
3914
3883
|
PATTERN110: 6,
|
|
3915
3884
|
PATTERN111: 7
|
|
3916
3885
|
};
|
|
3917
|
-
|
|
3918
|
-
//#region src/terminalEncoder/util.ts
|
|
3886
|
+
// src/terminalEncoder/util.ts
|
|
3919
3887
|
/**
|
|
3920
3888
|
* @file 终端二维码编码内部模块:util。
|
|
3921
3889
|
*/
|
|
@@ -4265,8 +4233,7 @@ const QRUtil = {
|
|
|
4265
4233
|
return lostPoint;
|
|
4266
4234
|
}
|
|
4267
4235
|
};
|
|
4268
|
-
|
|
4269
|
-
//#region src/terminalEncoder/qrCode.ts
|
|
4236
|
+
// src/terminalEncoder/qrCode.ts
|
|
4270
4237
|
/**
|
|
4271
4238
|
* @file 终端二维码编码内部模块:qrCode。
|
|
4272
4239
|
*/
|
|
@@ -4510,8 +4477,7 @@ var QRCode = class QRCode {
|
|
|
4510
4477
|
return data;
|
|
4511
4478
|
}
|
|
4512
4479
|
};
|
|
4513
|
-
|
|
4514
|
-
//#region src/encode.ts
|
|
4480
|
+
// src/encode.ts
|
|
4515
4481
|
const LOW_ERROR_CORRECTION_LEVEL = QRErrorCorrectLevel.L;
|
|
4516
4482
|
/** createQrCodeMatrix 的方法封装。 */
|
|
4517
4483
|
function createQrCodeMatrix(input) {
|
|
@@ -4520,8 +4486,7 @@ function createQrCodeMatrix(input) {
|
|
|
4520
4486
|
qrcode.make();
|
|
4521
4487
|
return qrcode.modules;
|
|
4522
4488
|
}
|
|
4523
|
-
|
|
4524
|
-
//#region src/render.ts
|
|
4489
|
+
// src/render.ts
|
|
4525
4490
|
const WHITE_ALL = "█";
|
|
4526
4491
|
const WHITE_BLACK = "▀";
|
|
4527
4492
|
const BLACK_WHITE = "▄";
|
|
@@ -4573,5 +4538,4 @@ function renderTerminalQrCodeFromMatrix(matrix, options = {}) {
|
|
|
4573
4538
|
function renderTerminalQrCode(input, options = {}) {
|
|
4574
4539
|
return renderTerminalQrCodeFromMatrix(createQrCodeMatrix(input), options);
|
|
4575
4540
|
}
|
|
4576
|
-
//#endregion
|
|
4577
4541
|
export { createQrCodeMatrix, decodeQrCodeFromBase64, decodeQrCodeFromBuffer, decodeQrCodeFromFile, decodeWithQrReader, detectCodeTypeFromBase64, detectCodeTypeFromBuffer, detectCodeTypeFromFile, detectMiniProgramCodeFromBase64, detectMiniProgramCodeFromBuffer, detectMiniProgramCodeFromFile, renderTerminalQrCode, renderTerminalQrCodeFromMatrix };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weapp-vite/qr",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"description": "weapp-vite 生态二维码编码、解码与终端渲染工具包",
|
|
6
6
|
"author": "ice breaker <1324318532@qq.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"dist"
|
|
44
44
|
],
|
|
45
45
|
"engines": {
|
|
46
|
-
"node": "^
|
|
46
|
+
"node": "^22.23.4 || ^24.22.1 || >=26.12.1"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"sharp": "^0.35.5"
|