@veaba/qrcode-wasm 0.0.3 → 0.0.5
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/package.json +4 -3
- package/pkg/package.json +24 -0
- package/pkg/qrcodes.d.ts +370 -0
- package/pkg/qrcodes.js +1209 -0
- package/pkg/qrcodes_bg.wasm +0 -0
- package/pkg/qrcodes_bg.wasm.d.ts +73 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veaba/qrcode-wasm",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "WebAssembly QRCode generator - Unified API with qrcode-js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
16
|
"dist",
|
|
17
|
-
"pkg"
|
|
17
|
+
"pkg",
|
|
18
|
+
"pkg/**/*"
|
|
18
19
|
],
|
|
19
20
|
"keywords": [
|
|
20
21
|
"qrcode",
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
38
|
"typescript": "^5.0.0",
|
|
38
|
-
"@veaba/qrcode-js": "0.0.
|
|
39
|
+
"@veaba/qrcode-js": "0.0.5"
|
|
39
40
|
},
|
|
40
41
|
"scripts": {
|
|
41
42
|
"build:wasm": "wasm-pack build --target web --out-dir pkg && node scripts/fix-pkg.js",
|
package/pkg/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "qrcodes",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"collaborators": [
|
|
5
|
+
"veaba< Godpu@outlook.com>"
|
|
6
|
+
],
|
|
7
|
+
"description": "QRcode for rust wasm.",
|
|
8
|
+
"version": "0.0.1-alpha",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/veaba/qrcodes"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"qrcodes_bg.wasm",
|
|
16
|
+
"qrcodes.js",
|
|
17
|
+
"qrcodes.d.ts"
|
|
18
|
+
],
|
|
19
|
+
"main": "qrcodes.js",
|
|
20
|
+
"types": "qrcodes.d.ts",
|
|
21
|
+
"sideEffects": [
|
|
22
|
+
"./snippets/*"
|
|
23
|
+
]
|
|
24
|
+
}
|
package/pkg/qrcodes.d.ts
ADDED
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Canvas 渲染器
|
|
6
|
+
*/
|
|
7
|
+
export class CanvasRenderer {
|
|
8
|
+
free(): void;
|
|
9
|
+
[Symbol.dispose](): void;
|
|
10
|
+
/**
|
|
11
|
+
* 获取推荐的 Canvas 尺寸
|
|
12
|
+
*/
|
|
13
|
+
static get_recommended_size(module_count: number, cell_size: number): number;
|
|
14
|
+
constructor(width: number, height: number);
|
|
15
|
+
/**
|
|
16
|
+
* 生成 QRCode 并返回像素数据 (RGBA)
|
|
17
|
+
* 返回 Uint8Array,可以直接用于 ImageData
|
|
18
|
+
*/
|
|
19
|
+
render(text: string, correct_level: number): Uint8Array;
|
|
20
|
+
/**
|
|
21
|
+
* 生成带边距的 QRCode 像素数据
|
|
22
|
+
*/
|
|
23
|
+
render_with_quiet_zone(text: string, correct_level: number, quiet_zone: number): Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* 设置颜色 (RGBA)
|
|
26
|
+
*/
|
|
27
|
+
set_colors(dark_r: number, dark_g: number, dark_b: number, dark_a: number, light_r: number, light_g: number, light_b: number, light_a: number): void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 错误纠正级别
|
|
32
|
+
*/
|
|
33
|
+
export enum CorrectLevel {
|
|
34
|
+
L = 1,
|
|
35
|
+
M = 0,
|
|
36
|
+
Q = 3,
|
|
37
|
+
H = 2,
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* 可复用的 QRCode 生成器
|
|
42
|
+
*/
|
|
43
|
+
export class QRCodeGenerator {
|
|
44
|
+
free(): void;
|
|
45
|
+
[Symbol.dispose](): void;
|
|
46
|
+
/**
|
|
47
|
+
* 清除缓存
|
|
48
|
+
*/
|
|
49
|
+
clear(): void;
|
|
50
|
+
/**
|
|
51
|
+
* 生成 QRCode(复用实例)
|
|
52
|
+
*/
|
|
53
|
+
generate(text: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* 批量生成 QRCode
|
|
56
|
+
*/
|
|
57
|
+
generate_batch(texts: string[]): string[];
|
|
58
|
+
/**
|
|
59
|
+
* 获取模块数量
|
|
60
|
+
*/
|
|
61
|
+
get_module_count(): number;
|
|
62
|
+
/**
|
|
63
|
+
* 获取模块数据作为 JSON
|
|
64
|
+
*/
|
|
65
|
+
get_modules_json(): string;
|
|
66
|
+
/**
|
|
67
|
+
* 生成并返回 Uint8Array(原始模块数据)
|
|
68
|
+
*/
|
|
69
|
+
get_modules_raw(): Uint8Array | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* 获取 SVG 字符串(优化版本)
|
|
72
|
+
*/
|
|
73
|
+
get_svg(): string;
|
|
74
|
+
/**
|
|
75
|
+
* 判断指定位置是否为深色
|
|
76
|
+
*/
|
|
77
|
+
is_dark(row: number, col: number): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* 创建新的生成器
|
|
80
|
+
*/
|
|
81
|
+
constructor();
|
|
82
|
+
/**
|
|
83
|
+
* 设置选项
|
|
84
|
+
*/
|
|
85
|
+
set_options(width: number, height: number, correct_level: number): void;
|
|
86
|
+
/**
|
|
87
|
+
* 使用选项创建
|
|
88
|
+
*/
|
|
89
|
+
static with_options(width: number, height: number, correct_level: number): QRCodeGenerator;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* QRCode 样式选项
|
|
94
|
+
*/
|
|
95
|
+
export class QRCodeStyle {
|
|
96
|
+
free(): void;
|
|
97
|
+
[Symbol.dispose](): void;
|
|
98
|
+
constructor();
|
|
99
|
+
set_border_radius(radius: number): void;
|
|
100
|
+
set_colors(dark: string, light: string): void;
|
|
101
|
+
set_gradient(enabled: boolean, color1: string, color2: string): void;
|
|
102
|
+
set_logo(enabled: boolean, ratio: number): void;
|
|
103
|
+
set_quiet_zone(zone: number): void;
|
|
104
|
+
set_size(size: number): void;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* QRCode WASM 包装器(向后兼容)
|
|
109
|
+
*/
|
|
110
|
+
export class QRCodeWasm {
|
|
111
|
+
free(): void;
|
|
112
|
+
[Symbol.dispose](): void;
|
|
113
|
+
/**
|
|
114
|
+
* 获取模块数量
|
|
115
|
+
*/
|
|
116
|
+
get_module_count(): number;
|
|
117
|
+
/**
|
|
118
|
+
* 获取模块数据作为 JSON 字符串
|
|
119
|
+
*/
|
|
120
|
+
get_modules_json(): string;
|
|
121
|
+
/**
|
|
122
|
+
* 获取 SVG 字符串
|
|
123
|
+
*/
|
|
124
|
+
get_svg(): string;
|
|
125
|
+
/**
|
|
126
|
+
* 判断指定位置是否为深色
|
|
127
|
+
*/
|
|
128
|
+
is_dark(row: number, col: number): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 生成 QRCode
|
|
131
|
+
*/
|
|
132
|
+
make_code(text: string): void;
|
|
133
|
+
/**
|
|
134
|
+
* 创建新的 QRCode
|
|
135
|
+
*/
|
|
136
|
+
constructor();
|
|
137
|
+
/**
|
|
138
|
+
* 使用选项创建 QRCode
|
|
139
|
+
*/
|
|
140
|
+
static with_options(width: number, height: number, correct_level: CorrectLevel): QRCodeWasm;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* 样式化 QRCode 生成器
|
|
145
|
+
*/
|
|
146
|
+
export class StyledQRCode {
|
|
147
|
+
free(): void;
|
|
148
|
+
[Symbol.dispose](): void;
|
|
149
|
+
/**
|
|
150
|
+
* 生成 QRCode
|
|
151
|
+
*/
|
|
152
|
+
generate(text: string, correct_level: number): void;
|
|
153
|
+
/**
|
|
154
|
+
* 获取 Logo 区域信息(用于外部添加 Logo)
|
|
155
|
+
*/
|
|
156
|
+
get_logo_area(): Int32Array | undefined;
|
|
157
|
+
/**
|
|
158
|
+
* 获取模块数量
|
|
159
|
+
*/
|
|
160
|
+
get_module_count(): number;
|
|
161
|
+
/**
|
|
162
|
+
* 获取 SVG(带样式)
|
|
163
|
+
*/
|
|
164
|
+
get_styled_svg(): string;
|
|
165
|
+
constructor();
|
|
166
|
+
static with_style(style: QRCodeStyle): StyledQRCode;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* 支付宝样式 QRCode - 蓝色主题
|
|
171
|
+
*/
|
|
172
|
+
export function generate_alipay_style_qrcode(text: string, size: number): string;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* 赛博朋克样式 QRCode - 霓虹效果
|
|
176
|
+
*/
|
|
177
|
+
export function generate_cyberpunk_style_qrcode(text: string, size: number): string;
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* 抖音样式 QRCode - 黑色背景,青色/洋红渐变
|
|
181
|
+
*/
|
|
182
|
+
export function generate_douyin_style_qrcode(text: string, size: number): string;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* 快速生成渐变 QRCode
|
|
186
|
+
*/
|
|
187
|
+
export function generate_gradient_qrcode(text: string, size: number, color1: string, color2: string): string;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* 极简样式 QRCode - 细边框,大圆角
|
|
191
|
+
*/
|
|
192
|
+
export function generate_minimal_style_qrcode(text: string, size: number): string;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* 生成 QRCode 并返回模块数据(向后兼容)
|
|
196
|
+
*/
|
|
197
|
+
export function generate_qrcode(text: string, correct_level: CorrectLevel): QRCodeWasm;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* 批量生成工具函数
|
|
201
|
+
*/
|
|
202
|
+
export function generate_qrcode_batch(texts: string[], correct_level: number): string[];
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* 快速生成单个 QRCode
|
|
206
|
+
*/
|
|
207
|
+
export function generate_qrcode_fast(text: string, size: number): string;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* 快速生成带 Logo 区域的 QRCode
|
|
211
|
+
*/
|
|
212
|
+
export function generate_qrcode_with_logo_area(text: string, size: number, logo_ratio: number): string;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* 复古样式 QRCode - sepia 色调
|
|
216
|
+
*/
|
|
217
|
+
export function generate_retro_style_qrcode(text: string, size: number): string;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* 快速生成圆角 QRCode
|
|
221
|
+
*/
|
|
222
|
+
export function generate_rounded_qrcode(text: string, size: number, radius: number): string;
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* 微信样式 QRCode - 绿色主题
|
|
226
|
+
*/
|
|
227
|
+
export function generate_wechat_style_qrcode(text: string, size: number): string;
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* 小红书样式 QRCode - 红色主题
|
|
231
|
+
*/
|
|
232
|
+
export function generate_xiaohongshu_style_qrcode(text: string, size: number): string;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* 获取版本信息
|
|
236
|
+
*/
|
|
237
|
+
export function get_version_info(): string;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* 简单的问候函数
|
|
241
|
+
*/
|
|
242
|
+
export function greet(): void;
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* 初始化线程池(用于并行计算)
|
|
246
|
+
*/
|
|
247
|
+
export function init_thread_pool(num_threads: number): void;
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* 检查是否支持并行
|
|
251
|
+
*/
|
|
252
|
+
export function is_parallel_supported(): boolean;
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* 批量渲染到像素数组 (返回 js_sys::Array)
|
|
256
|
+
*/
|
|
257
|
+
export function render_qrcode_batch_pixels(texts: string[], width: number, height: number): Array<any>;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* 快速渲染函数
|
|
261
|
+
*/
|
|
262
|
+
export function render_qrcode_to_pixels(text: string, width: number, height: number): Uint8Array;
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* 初始化 panic hook
|
|
266
|
+
*/
|
|
267
|
+
export function start(): void;
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* 获取版本号
|
|
271
|
+
*/
|
|
272
|
+
export function version(): string;
|
|
273
|
+
|
|
274
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
275
|
+
|
|
276
|
+
export interface InitOutput {
|
|
277
|
+
readonly memory: WebAssembly.Memory;
|
|
278
|
+
readonly __wbg_canvasrenderer_free: (a: number, b: number) => void;
|
|
279
|
+
readonly __wbg_qrcodegenerator_free: (a: number, b: number) => void;
|
|
280
|
+
readonly __wbg_qrcodestyle_free: (a: number, b: number) => void;
|
|
281
|
+
readonly __wbg_qrcodewasm_free: (a: number, b: number) => void;
|
|
282
|
+
readonly __wbg_styledqrcode_free: (a: number, b: number) => void;
|
|
283
|
+
readonly canvasrenderer_get_recommended_size: (a: number, b: number) => number;
|
|
284
|
+
readonly canvasrenderer_new: (a: number, b: number) => number;
|
|
285
|
+
readonly canvasrenderer_render: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
286
|
+
readonly canvasrenderer_render_with_quiet_zone: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
287
|
+
readonly canvasrenderer_set_colors: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
288
|
+
readonly generate_alipay_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
289
|
+
readonly generate_cyberpunk_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
290
|
+
readonly generate_douyin_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
291
|
+
readonly generate_gradient_qrcode: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
292
|
+
readonly generate_minimal_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
293
|
+
readonly generate_qrcode: (a: number, b: number, c: number) => number;
|
|
294
|
+
readonly generate_qrcode_batch: (a: number, b: number, c: number) => [number, number];
|
|
295
|
+
readonly generate_qrcode_fast: (a: number, b: number, c: number) => [number, number];
|
|
296
|
+
readonly generate_qrcode_with_logo_area: (a: number, b: number, c: number, d: number) => [number, number];
|
|
297
|
+
readonly generate_retro_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
298
|
+
readonly generate_rounded_qrcode: (a: number, b: number, c: number, d: number) => [number, number];
|
|
299
|
+
readonly generate_wechat_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
300
|
+
readonly generate_xiaohongshu_style_qrcode: (a: number, b: number, c: number) => [number, number];
|
|
301
|
+
readonly get_version_info: () => [number, number];
|
|
302
|
+
readonly init_thread_pool: (a: number) => [number, number];
|
|
303
|
+
readonly is_parallel_supported: () => number;
|
|
304
|
+
readonly qrcodegenerator_clear: (a: number) => void;
|
|
305
|
+
readonly qrcodegenerator_generate: (a: number, b: number, c: number) => [number, number];
|
|
306
|
+
readonly qrcodegenerator_generate_batch: (a: number, b: number, c: number) => [number, number];
|
|
307
|
+
readonly qrcodegenerator_get_module_count: (a: number) => number;
|
|
308
|
+
readonly qrcodegenerator_get_modules_json: (a: number) => [number, number];
|
|
309
|
+
readonly qrcodegenerator_get_modules_raw: (a: number) => [number, number];
|
|
310
|
+
readonly qrcodegenerator_get_svg: (a: number) => [number, number];
|
|
311
|
+
readonly qrcodegenerator_is_dark: (a: number, b: number, c: number) => number;
|
|
312
|
+
readonly qrcodegenerator_new: () => number;
|
|
313
|
+
readonly qrcodegenerator_set_options: (a: number, b: number, c: number, d: number) => void;
|
|
314
|
+
readonly qrcodegenerator_with_options: (a: number, b: number, c: number) => number;
|
|
315
|
+
readonly qrcodestyle_new: () => number;
|
|
316
|
+
readonly qrcodestyle_set_border_radius: (a: number, b: number) => void;
|
|
317
|
+
readonly qrcodestyle_set_colors: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
318
|
+
readonly qrcodestyle_set_gradient: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
319
|
+
readonly qrcodestyle_set_logo: (a: number, b: number, c: number) => void;
|
|
320
|
+
readonly qrcodestyle_set_quiet_zone: (a: number, b: number) => void;
|
|
321
|
+
readonly qrcodestyle_set_size: (a: number, b: number) => void;
|
|
322
|
+
readonly qrcodewasm_get_module_count: (a: number) => number;
|
|
323
|
+
readonly qrcodewasm_get_modules_json: (a: number) => [number, number];
|
|
324
|
+
readonly qrcodewasm_get_svg: (a: number) => [number, number];
|
|
325
|
+
readonly qrcodewasm_is_dark: (a: number, b: number, c: number) => number;
|
|
326
|
+
readonly qrcodewasm_make_code: (a: number, b: number, c: number) => void;
|
|
327
|
+
readonly qrcodewasm_new: () => number;
|
|
328
|
+
readonly qrcodewasm_with_options: (a: number, b: number, c: number) => number;
|
|
329
|
+
readonly render_qrcode_batch_pixels: (a: number, b: number, c: number, d: number) => any;
|
|
330
|
+
readonly render_qrcode_to_pixels: (a: number, b: number, c: number, d: number) => [number, number];
|
|
331
|
+
readonly styledqrcode_generate: (a: number, b: number, c: number, d: number) => [number, number];
|
|
332
|
+
readonly styledqrcode_get_logo_area: (a: number) => [number, number];
|
|
333
|
+
readonly styledqrcode_get_module_count: (a: number) => number;
|
|
334
|
+
readonly styledqrcode_get_styled_svg: (a: number) => [number, number];
|
|
335
|
+
readonly styledqrcode_new: () => number;
|
|
336
|
+
readonly styledqrcode_with_style: (a: number) => number;
|
|
337
|
+
readonly version: () => [number, number];
|
|
338
|
+
readonly start: () => void;
|
|
339
|
+
readonly greet: () => void;
|
|
340
|
+
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
341
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
342
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
343
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
344
|
+
readonly __externref_table_dealloc: (a: number) => void;
|
|
345
|
+
readonly __externref_table_alloc: () => number;
|
|
346
|
+
readonly __externref_drop_slice: (a: number, b: number) => void;
|
|
347
|
+
readonly __wbindgen_start: () => void;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
354
|
+
* a precompiled `WebAssembly.Module`.
|
|
355
|
+
*
|
|
356
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
357
|
+
*
|
|
358
|
+
* @returns {InitOutput}
|
|
359
|
+
*/
|
|
360
|
+
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
364
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
365
|
+
*
|
|
366
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
367
|
+
*
|
|
368
|
+
* @returns {Promise<InitOutput>}
|
|
369
|
+
*/
|
|
370
|
+
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|