@vielzeug/sigil 3.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/README.md +40 -0
- package/dist/_dev.cjs +2 -0
- package/dist/_dev.cjs.map +1 -0
- package/dist/_dev.d.ts +2 -0
- package/dist/_dev.d.ts.map +1 -0
- package/dist/_dev.js +6 -0
- package/dist/_dev.js.map +1 -0
- package/dist/_format.cjs +2 -0
- package/dist/_format.cjs.map +1 -0
- package/dist/_format.d.ts +11 -0
- package/dist/_format.d.ts.map +1 -0
- package/dist/_format.js +37 -0
- package/dist/_format.js.map +1 -0
- package/dist/_galois.cjs +2 -0
- package/dist/_galois.cjs.map +1 -0
- package/dist/_galois.d.ts +13 -0
- package/dist/_galois.d.ts.map +1 -0
- package/dist/_galois.js +22 -0
- package/dist/_galois.js.map +1 -0
- package/dist/_mask.cjs +2 -0
- package/dist/_mask.cjs.map +1 -0
- package/dist/_mask.d.ts +14 -0
- package/dist/_mask.d.ts.map +1 -0
- package/dist/_mask.js +81 -0
- package/dist/_mask.js.map +1 -0
- package/dist/_matrix.cjs +2 -0
- package/dist/_matrix.cjs.map +1 -0
- package/dist/_matrix.d.ts +18 -0
- package/dist/_matrix.d.ts.map +1 -0
- package/dist/_matrix.js +65 -0
- package/dist/_matrix.js.map +1 -0
- package/dist/_reed-solomon.cjs +2 -0
- package/dist/_reed-solomon.cjs.map +1 -0
- package/dist/_reed-solomon.d.ts +3 -0
- package/dist/_reed-solomon.d.ts.map +1 -0
- package/dist/_reed-solomon.js +22 -0
- package/dist/_reed-solomon.js.map +1 -0
- package/dist/_segments.cjs +2 -0
- package/dist/_segments.cjs.map +1 -0
- package/dist/_segments.d.ts +32 -0
- package/dist/_segments.d.ts.map +1 -0
- package/dist/_segments.js +70 -0
- package/dist/_segments.js.map +1 -0
- package/dist/_tables.cjs +2 -0
- package/dist/_tables.cjs.map +1 -0
- package/dist/_tables.d.ts +46 -0
- package/dist/_tables.d.ts.map +1 -0
- package/dist/_tables.js +409 -0
- package/dist/_tables.js.map +1 -0
- package/dist/canvas.cjs +2 -0
- package/dist/canvas.cjs.map +1 -0
- package/dist/canvas.d.ts +9 -0
- package/dist/canvas.d.ts.map +1 -0
- package/dist/canvas.js +14 -0
- package/dist/canvas.js.map +1 -0
- package/dist/encode.cjs +2 -0
- package/dist/encode.cjs.map +1 -0
- package/dist/encode.d.ts +9 -0
- package/dist/encode.d.ts.map +1 -0
- package/dist/encode.js +112 -0
- package/dist/encode.js.map +1 -0
- package/dist/errors.cjs +2 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.ts +30 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +17 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/scan.cjs +2 -0
- package/dist/scan.cjs.map +1 -0
- package/dist/scan.d.ts +12 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +141 -0
- package/dist/scan.js.map +1 -0
- package/dist/sigil.cjs +2 -0
- package/dist/sigil.cjs.map +1 -0
- package/dist/sigil.iife.js +2 -0
- package/dist/sigil.iife.js.map +1 -0
- package/dist/sigil.js +2 -0
- package/dist/sigil.js.map +1 -0
- package/dist/svg.cjs +2 -0
- package/dist/svg.cjs.map +1 -0
- package/dist/svg.d.ts +3 -0
- package/dist/svg.d.ts.map +1 -0
- package/dist/svg.js +26 -0
- package/dist/svg.js.map +1 -0
- package/dist/types.d.ts +118 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +48 -0
package/dist/svg.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.cjs","names":[],"sources":["../src/svg.ts"],"sourcesContent":["import type { QrMatrix, QrSvgOptions } from './types';\n\n/**\n * SVG rendering — pure string output, safe in any environment.\n * The optimized path merges each row's dark-module runs into `M x y hW v1 h-W z`\n * spans; `optimizePath: false` emits one subpath per module.\n */\n\nconst esc = (s: string): string =>\n s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n\nexport function toSvg(matrix: QrMatrix, options: QrSvgOptions = {}): string {\n const margin = options.margin ?? 4;\n const scale = options.scale ?? 1;\n const dark = options.dark ?? 'currentColor';\n const light = options.light ?? 'transparent';\n const optimize = options.optimizePath ?? true;\n const dim = (matrix.size + margin * 2) * scale;\n\n const parts: string[] = [`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${dim} ${dim}\" role=\"img\"`];\n if (options.label !== undefined) {\n parts.push(` aria-label=\"${esc(options.label)}\"`);\n }\n parts.push(` shape-rendering=\"crispEdges\">`);\n if (options.label !== undefined) parts.push(`<title>${esc(options.label)}</title>`);\n if (light !== 'transparent') parts.push(`<rect width=\"${dim}\" height=\"${dim}\" fill=\"${light}\"/>`);\n\n const path: string[] = [];\n for (let y = 0; y < matrix.size; y++) {\n let x = 0;\n while (x < matrix.size) {\n if (!matrix.get(x, y)) {\n x++;\n continue;\n }\n if (optimize) {\n let run = 1;\n while (x + run < matrix.size && matrix.get(x + run, y)) run++;\n path.push(`M${(x + margin) * scale} ${(y + margin) * scale}h${run * scale}v${scale}h${-run * scale}z`);\n x += run;\n } else {\n path.push(`M${(x + margin) * scale} ${(y + margin) * scale}h${scale}v${scale}h${-scale}z`);\n x++;\n }\n }\n }\n parts.push(`<path d=\"${path.join('')}\" fill=\"${dark}\"/>`);\n parts.push('</svg>');\n return parts.join('');\n}\n"],"mappings":"AAQA,IAAM,EAAO,GACX,EAAE,QAAQ,KAAM,OAAO,CAAC,CAAC,QAAQ,KAAM,MAAM,CAAC,CAAC,QAAQ,KAAM,MAAM,CAAC,CAAC,QAAQ,KAAM,QAAQ,EAE7F,SAAgB,EAAM,EAAkB,EAAwB,CAAC,EAAW,CAC1E,IAAM,EAAS,EAAQ,QAAU,EAC3B,EAAQ,EAAQ,OAAS,EACzB,EAAO,EAAQ,MAAQ,eACvB,EAAQ,EAAQ,OAAS,cACzB,EAAW,EAAQ,cAAgB,GACnC,GAAO,EAAO,KAAO,EAAS,GAAK,EAEnC,EAAkB,CAAC,wDAAwD,EAAI,GAAG,EAAI,aAAa,EACrG,EAAQ,QAAU,IAAA,IACpB,EAAM,KAAK,gBAAgB,EAAI,EAAQ,KAAK,EAAE,EAAE,EAElD,EAAM,KAAK,gCAAgC,EACvC,EAAQ,QAAU,IAAA,IAAW,EAAM,KAAK,UAAU,EAAI,EAAQ,KAAK,EAAE,SAAS,EAC9E,IAAU,eAAe,EAAM,KAAK,gBAAgB,EAAI,YAAY,EAAI,UAAU,EAAM,IAAI,EAEhG,IAAM,EAAiB,CAAC,EACxB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,KAAM,IAAK,CACpC,IAAI,EAAI,EACR,KAAO,EAAI,EAAO,MAAM,CACtB,GAAI,CAAC,EAAO,IAAI,EAAG,CAAC,EAAG,CACrB,IACA,QACF,CACA,GAAI,EAAU,CACZ,IAAI,EAAM,EACV,KAAO,EAAI,EAAM,EAAO,MAAQ,EAAO,IAAI,EAAI,EAAK,CAAC,GAAG,IACxD,EAAK,KAAK,KAAK,EAAI,GAAU,EAAM,IAAI,EAAI,GAAU,EAAM,GAAG,EAAM,EAAM,GAAG,EAAM,GAAG,CAAC,EAAM,EAAM,EAAE,EACrG,GAAK,CACP,MACE,EAAK,KAAK,KAAK,EAAI,GAAU,EAAM,IAAI,EAAI,GAAU,EAAM,GAAG,EAAM,GAAG,EAAM,GAAG,CAAC,EAAM,EAAE,EACzF,GAEJ,CACF,CAGA,OAFA,EAAM,KAAK,YAAY,EAAK,KAAK,EAAE,EAAE,UAAU,EAAK,IAAI,EACxD,EAAM,KAAK,QAAQ,EACZ,EAAM,KAAK,EAAE,CACtB"}
|
package/dist/svg.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWtD,wBAAgB,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAsC1E"}
|
package/dist/svg.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/svg.ts
|
|
2
|
+
var e = (e) => e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
3
|
+
function t(t, n = {}) {
|
|
4
|
+
let r = n.margin ?? 4, i = n.scale ?? 1, a = n.dark ?? "currentColor", o = n.light ?? "transparent", s = n.optimizePath ?? !0, c = (t.size + r * 2) * i, l = [`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${c} ${c}" role="img"`];
|
|
5
|
+
n.label !== void 0 && l.push(` aria-label="${e(n.label)}"`), l.push(" shape-rendering=\"crispEdges\">"), n.label !== void 0 && l.push(`<title>${e(n.label)}</title>`), o !== "transparent" && l.push(`<rect width="${c}" height="${c}" fill="${o}"/>`);
|
|
6
|
+
let u = [];
|
|
7
|
+
for (let e = 0; e < t.size; e++) {
|
|
8
|
+
let n = 0;
|
|
9
|
+
for (; n < t.size;) {
|
|
10
|
+
if (!t.get(n, e)) {
|
|
11
|
+
n++;
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
if (s) {
|
|
15
|
+
let a = 1;
|
|
16
|
+
for (; n + a < t.size && t.get(n + a, e);) a++;
|
|
17
|
+
u.push(`M${(n + r) * i} ${(e + r) * i}h${a * i}v${i}h${-a * i}z`), n += a;
|
|
18
|
+
} else u.push(`M${(n + r) * i} ${(e + r) * i}h${i}v${i}h${-i}z`), n++;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return l.push(`<path d="${u.join("")}" fill="${a}"/>`), l.push("</svg>"), l.join("");
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { t as toSvg };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=svg.js.map
|
package/dist/svg.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.js","names":[],"sources":["../src/svg.ts"],"sourcesContent":["import type { QrMatrix, QrSvgOptions } from './types';\n\n/**\n * SVG rendering — pure string output, safe in any environment.\n * The optimized path merges each row's dark-module runs into `M x y hW v1 h-W z`\n * spans; `optimizePath: false` emits one subpath per module.\n */\n\nconst esc = (s: string): string =>\n s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n\nexport function toSvg(matrix: QrMatrix, options: QrSvgOptions = {}): string {\n const margin = options.margin ?? 4;\n const scale = options.scale ?? 1;\n const dark = options.dark ?? 'currentColor';\n const light = options.light ?? 'transparent';\n const optimize = options.optimizePath ?? true;\n const dim = (matrix.size + margin * 2) * scale;\n\n const parts: string[] = [`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${dim} ${dim}\" role=\"img\"`];\n if (options.label !== undefined) {\n parts.push(` aria-label=\"${esc(options.label)}\"`);\n }\n parts.push(` shape-rendering=\"crispEdges\">`);\n if (options.label !== undefined) parts.push(`<title>${esc(options.label)}</title>`);\n if (light !== 'transparent') parts.push(`<rect width=\"${dim}\" height=\"${dim}\" fill=\"${light}\"/>`);\n\n const path: string[] = [];\n for (let y = 0; y < matrix.size; y++) {\n let x = 0;\n while (x < matrix.size) {\n if (!matrix.get(x, y)) {\n x++;\n continue;\n }\n if (optimize) {\n let run = 1;\n while (x + run < matrix.size && matrix.get(x + run, y)) run++;\n path.push(`M${(x + margin) * scale} ${(y + margin) * scale}h${run * scale}v${scale}h${-run * scale}z`);\n x += run;\n } else {\n path.push(`M${(x + margin) * scale} ${(y + margin) * scale}h${scale}v${scale}h${-scale}z`);\n x++;\n }\n }\n }\n parts.push(`<path d=\"${path.join('')}\" fill=\"${dark}\"/>`);\n parts.push('</svg>');\n return parts.join('');\n}\n"],"mappings":";AAQA,IAAM,KAAO,MACX,EAAE,QAAQ,MAAM,OAAO,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC,CAAC,QAAQ,MAAM,QAAQ;AAE7F,SAAgB,EAAM,GAAkB,IAAwB,CAAC,GAAW;CAC1E,IAAM,IAAS,EAAQ,UAAU,GAC3B,IAAQ,EAAQ,SAAS,GACzB,IAAO,EAAQ,QAAQ,gBACvB,IAAQ,EAAQ,SAAS,eACzB,IAAW,EAAQ,gBAAgB,IACnC,KAAO,EAAO,OAAO,IAAS,KAAK,GAEnC,IAAkB,CAAC,wDAAwD,EAAI,GAAG,EAAI,aAAa;CAMzG,AALI,EAAQ,UAAU,KAAA,KACpB,EAAM,KAAK,gBAAgB,EAAI,EAAQ,KAAK,EAAE,EAAE,GAElD,EAAM,KAAK,kCAAgC,GACvC,EAAQ,UAAU,KAAA,KAAW,EAAM,KAAK,UAAU,EAAI,EAAQ,KAAK,EAAE,SAAS,GAC9E,MAAU,iBAAe,EAAM,KAAK,gBAAgB,EAAI,YAAY,EAAI,UAAU,EAAM,IAAI;CAEhG,IAAM,IAAiB,CAAC;CACxB,KAAK,IAAI,IAAI,GAAG,IAAI,EAAO,MAAM,KAAK;EACpC,IAAI,IAAI;EACR,OAAO,IAAI,EAAO,OAAM;GACtB,IAAI,CAAC,EAAO,IAAI,GAAG,CAAC,GAAG;IACrB;IACA;GACF;GACA,IAAI,GAAU;IACZ,IAAI,IAAM;IACV,OAAO,IAAI,IAAM,EAAO,QAAQ,EAAO,IAAI,IAAI,GAAK,CAAC,IAAG;IAExD,AADA,EAAK,KAAK,KAAK,IAAI,KAAU,EAAM,IAAI,IAAI,KAAU,EAAM,GAAG,IAAM,EAAM,GAAG,EAAM,GAAG,CAAC,IAAM,EAAM,EAAE,GACrG,KAAK;GACP,OAEE,AADA,EAAK,KAAK,KAAK,IAAI,KAAU,EAAM,IAAI,IAAI,KAAU,EAAM,GAAG,EAAM,GAAG,EAAM,GAAG,CAAC,EAAM,EAAE,GACzF;EAEJ;CACF;CAGA,OAFA,EAAM,KAAK,YAAY,EAAK,KAAK,EAAE,EAAE,UAAU,EAAK,IAAI,GACxD,EAAM,KAAK,QAAQ,GACZ,EAAM,KAAK,EAAE;AACtB"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { SigilError } from './errors';
|
|
2
|
+
/** QR error-correction level: L (7%), M (15%), Q (25%), H (30%). */
|
|
3
|
+
export type QrErrorCorrection = 'L' | 'M' | 'Q' | 'H';
|
|
4
|
+
/** QR segment mode. `byte` encodes UTF-8 without an ECI header. */
|
|
5
|
+
export type QrMode = 'numeric' | 'alphanumeric' | 'byte';
|
|
6
|
+
export interface QrEncodeOptions {
|
|
7
|
+
/** Error-correction level. Default `'M'`. */
|
|
8
|
+
readonly errorCorrection?: QrErrorCorrection;
|
|
9
|
+
/** Force a mask 0–7; otherwise the lowest-penalty mask wins. Exposed for tests/vectors. */
|
|
10
|
+
readonly mask?: number;
|
|
11
|
+
/** Minimum version; useful to keep a stable size across payload changes. */
|
|
12
|
+
readonly minVersion?: number;
|
|
13
|
+
/** Force a mode; otherwise the most compact mode covering the whole input is used. */
|
|
14
|
+
readonly mode?: QrMode;
|
|
15
|
+
/** Pin a version 1–40; otherwise the smallest that fits is used. */
|
|
16
|
+
readonly version?: number;
|
|
17
|
+
}
|
|
18
|
+
/** An encoded QR symbol: a frozen square matrix of dark/light modules. */
|
|
19
|
+
export interface QrMatrix {
|
|
20
|
+
readonly errorCorrection: QrErrorCorrection;
|
|
21
|
+
/** `false` outside bounds. */
|
|
22
|
+
get(x: number, y: number): boolean;
|
|
23
|
+
readonly mask: number;
|
|
24
|
+
readonly mode: QrMode;
|
|
25
|
+
/** Row-major; `true` = dark module. Frozen. */
|
|
26
|
+
readonly modules: ReadonlyArray<ReadonlyArray<boolean>>;
|
|
27
|
+
/** Modules per side: `17 + 4 * version`. */
|
|
28
|
+
readonly size: number;
|
|
29
|
+
readonly version: number;
|
|
30
|
+
}
|
|
31
|
+
export interface QrSvgOptions {
|
|
32
|
+
/** Module colors; defaults `currentColor`/`transparent` so the SVG themes via CSS. */
|
|
33
|
+
readonly dark?: string;
|
|
34
|
+
/** Accessible label → `<title>` + `role="img"`. */
|
|
35
|
+
readonly label?: string;
|
|
36
|
+
readonly light?: string;
|
|
37
|
+
/** Quiet-zone width in modules. Default 4 (spec minimum). */
|
|
38
|
+
readonly margin?: number;
|
|
39
|
+
/** Merge adjacent dark modules into a single path. Default `true` → small output. */
|
|
40
|
+
readonly optimizePath?: boolean;
|
|
41
|
+
/** Module size in user units. Default 1 → `viewBox = size + 2*margin`; scale via CSS. */
|
|
42
|
+
readonly scale?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface QrCanvasOptions {
|
|
45
|
+
readonly dark?: string;
|
|
46
|
+
readonly light?: string;
|
|
47
|
+
/** Quiet-zone width in modules. Default 4. */
|
|
48
|
+
readonly margin?: number;
|
|
49
|
+
/** CSS pixels per module. Default 1. */
|
|
50
|
+
readonly scale?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface QrScanResult {
|
|
53
|
+
readonly cornerPoints?: ReadonlyArray<{
|
|
54
|
+
readonly x: number;
|
|
55
|
+
readonly y: number;
|
|
56
|
+
}>;
|
|
57
|
+
readonly value: string;
|
|
58
|
+
}
|
|
59
|
+
/** Injected QR detector — matches the native `BarcodeDetector` shape. */
|
|
60
|
+
export interface QrDetector {
|
|
61
|
+
detect(source: ImageBitmapSource): Promise<ReadonlyArray<{
|
|
62
|
+
rawValue: string;
|
|
63
|
+
cornerPoints?: ReadonlyArray<{
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
}>;
|
|
67
|
+
}>>;
|
|
68
|
+
}
|
|
69
|
+
export interface QrScannerOptions {
|
|
70
|
+
/** `MediaStreamConstraints['video']`; default `{ facingMode: 'environment' }`. */
|
|
71
|
+
readonly constraints?: MediaTrackConstraints;
|
|
72
|
+
/** Injection for tests; defaults to `new BarcodeDetector({ formats: ['qr_code'] })`. */
|
|
73
|
+
readonly detector?: QrDetector;
|
|
74
|
+
/** Minimum ms between detection passes. Default 200. */
|
|
75
|
+
readonly intervalMs?: number;
|
|
76
|
+
/** Injection for tests; defaults to `navigator.mediaDevices`. */
|
|
77
|
+
readonly mediaDevices?: Pick<MediaDevices, 'getUserMedia'>;
|
|
78
|
+
/** Stop after the first result. Default `true`. */
|
|
79
|
+
readonly once?: boolean;
|
|
80
|
+
readonly signal?: AbortSignal;
|
|
81
|
+
/** Video element the camera stream is attached to. */
|
|
82
|
+
readonly video: HTMLVideoElement;
|
|
83
|
+
}
|
|
84
|
+
export type QrScannerStatus = 'idle' | 'starting' | 'scanning' | 'stopped' | 'disposed';
|
|
85
|
+
export interface QrScanner {
|
|
86
|
+
readonly disposalSignal: AbortSignal;
|
|
87
|
+
dispose(): void;
|
|
88
|
+
readonly disposed: boolean;
|
|
89
|
+
/** Registers a result handler; returns an unsubscribe function. */
|
|
90
|
+
onResult(handler: (result: QrScanResult) => void): () => void;
|
|
91
|
+
/** Requests the camera, attaches the stream to `video`, and begins the detect loop. */
|
|
92
|
+
start(): Promise<void>;
|
|
93
|
+
readonly status: QrScannerStatus;
|
|
94
|
+
/** Stops the loop and tracks; the instance stays usable. */
|
|
95
|
+
stop(): void;
|
|
96
|
+
/** Side-channel observation; swallowing handler errors per conventions. */
|
|
97
|
+
tap(handler: (event: SigilEvent) => void, options?: {
|
|
98
|
+
readonly signal?: AbortSignal;
|
|
99
|
+
}): () => void;
|
|
100
|
+
[Symbol.dispose](): void;
|
|
101
|
+
}
|
|
102
|
+
export type SigilEvent = {
|
|
103
|
+
readonly type: 'status-change';
|
|
104
|
+
readonly status: QrScannerStatus;
|
|
105
|
+
} | {
|
|
106
|
+
readonly type: 'detect';
|
|
107
|
+
readonly value: string;
|
|
108
|
+
readonly elapsedMs: number;
|
|
109
|
+
} | {
|
|
110
|
+
readonly type: 'frame-skipped';
|
|
111
|
+
readonly reason: 'not-ready' | 'busy';
|
|
112
|
+
} | {
|
|
113
|
+
readonly type: 'error';
|
|
114
|
+
readonly error: SigilError;
|
|
115
|
+
} | {
|
|
116
|
+
readonly type: 'dispose';
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vielzeug/sigil",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "QR code generation and scanning — pure matrix encoder, SVG and canvas renderers, native BarcodeDetector scanning",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/helmuthdu/vielzeug",
|
|
8
|
+
"directory": "packages/sigil"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=22"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"main": "./dist/index.cjs",
|
|
18
|
+
"module": "./dist/index.js",
|
|
19
|
+
"types": "dist/index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"import": "./dist/index.js",
|
|
23
|
+
"require": "./dist/index.cjs",
|
|
24
|
+
"types": "./dist/index.d.ts"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"sideEffects": false,
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public",
|
|
30
|
+
"registry": "https://registry.npmjs.org/"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "vite build && pnpm --silent run build:bundle && pnpm --silent run build:types",
|
|
34
|
+
"build:bundle": "vite build --config vite.bundle.config.ts",
|
|
35
|
+
"build:types": "tsc -p tsconfig.declarations.json",
|
|
36
|
+
"fix": "biome check --write src",
|
|
37
|
+
"lint": "biome ci src",
|
|
38
|
+
"prepublishOnly": "pnpm --silent run build",
|
|
39
|
+
"test": "vitest"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^26.4.1",
|
|
43
|
+
"jsqr": "^1.4.0",
|
|
44
|
+
"typescript": "^6.0.3",
|
|
45
|
+
"vite": "^8.2.2",
|
|
46
|
+
"vitest": "^5.0.0"
|
|
47
|
+
}
|
|
48
|
+
}
|