@juit/qrcode 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/LICENSE.md +211 -0
  2. package/NOTICE.md +13 -0
  3. package/README.md +175 -0
  4. package/dist/encode.cjs +147 -0
  5. package/dist/encode.cjs.map +6 -0
  6. package/dist/encode.d.ts +11 -0
  7. package/dist/encode.mjs +122 -0
  8. package/dist/encode.mjs.map +6 -0
  9. package/dist/images/path.cjs +145 -0
  10. package/dist/images/path.cjs.map +6 -0
  11. package/dist/images/path.d.ts +6 -0
  12. package/dist/images/path.mjs +120 -0
  13. package/dist/images/path.mjs.map +6 -0
  14. package/dist/images/pdf.cjs +96 -0
  15. package/dist/images/pdf.cjs.map +6 -0
  16. package/dist/images/pdf.d.ts +3 -0
  17. package/dist/images/pdf.mjs +71 -0
  18. package/dist/images/pdf.mjs.map +6 -0
  19. package/dist/images/png.cjs +86 -0
  20. package/dist/images/png.cjs.map +6 -0
  21. package/dist/images/png.d.ts +3 -0
  22. package/dist/images/png.mjs +61 -0
  23. package/dist/images/png.mjs.map +6 -0
  24. package/dist/images/svg.cjs +64 -0
  25. package/dist/images/svg.cjs.map +6 -0
  26. package/dist/images/svg.d.ts +54 -0
  27. package/dist/images/svg.mjs +38 -0
  28. package/dist/images/svg.mjs.map +6 -0
  29. package/dist/index.cjs +110 -0
  30. package/dist/index.cjs.map +6 -0
  31. package/dist/index.d.ts +74 -0
  32. package/dist/index.mjs +74 -0
  33. package/dist/index.mjs.map +6 -0
  34. package/dist/matrix.cjs +360 -0
  35. package/dist/matrix.cjs.map +6 -0
  36. package/dist/matrix.d.ts +3 -0
  37. package/dist/matrix.mjs +335 -0
  38. package/dist/matrix.mjs.map +6 -0
  39. package/dist/qrcode.cjs +183 -0
  40. package/dist/qrcode.cjs.map +6 -0
  41. package/dist/qrcode.d.ts +20 -0
  42. package/dist/qrcode.mjs +158 -0
  43. package/dist/qrcode.mjs.map +6 -0
  44. package/dist/utils/crc32.cjs +53 -0
  45. package/dist/utils/crc32.cjs.map +6 -0
  46. package/dist/utils/crc32.d.ts +9 -0
  47. package/dist/utils/crc32.mjs +28 -0
  48. package/dist/utils/crc32.mjs.map +6 -0
  49. package/dist/utils/dataurl.cjs +35 -0
  50. package/dist/utils/dataurl.cjs.map +6 -0
  51. package/dist/utils/dataurl.d.ts +1 -0
  52. package/dist/utils/dataurl.mjs +10 -0
  53. package/dist/utils/dataurl.mjs.map +6 -0
  54. package/dist/utils/deflate.cjs +39 -0
  55. package/dist/utils/deflate.cjs.map +6 -0
  56. package/dist/utils/deflate.d.ts +2 -0
  57. package/dist/utils/deflate.mjs +14 -0
  58. package/dist/utils/deflate.mjs.map +6 -0
  59. package/dist/utils/ecc.cjs +93 -0
  60. package/dist/utils/ecc.cjs.map +6 -0
  61. package/dist/utils/ecc.d.ts +2 -0
  62. package/dist/utils/ecc.mjs +68 -0
  63. package/dist/utils/ecc.mjs.map +6 -0
  64. package/dist/utils/merge.cjs +41 -0
  65. package/dist/utils/merge.cjs.map +6 -0
  66. package/dist/utils/merge.d.ts +2 -0
  67. package/dist/utils/merge.mjs +16 -0
  68. package/dist/utils/merge.mjs.map +6 -0
  69. package/package.json +61 -0
  70. package/src/encode.ts +180 -0
  71. package/src/images/path.ts +131 -0
  72. package/src/images/pdf.ts +76 -0
  73. package/src/images/png.ts +105 -0
  74. package/src/images/svg.ts +102 -0
  75. package/src/index.ts +147 -0
  76. package/src/matrix.ts +392 -0
  77. package/src/qrcode.ts +217 -0
  78. package/src/utils/crc32.ts +50 -0
  79. package/src/utils/dataurl.ts +7 -0
  80. package/src/utils/deflate.ts +17 -0
  81. package/src/utils/ecc.ts +95 -0
  82. package/src/utils/merge.ts +13 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // images/png.ts
21
+ var png_exports = {};
22
+ __export(png_exports, {
23
+ generatePng: () => generatePng
24
+ });
25
+ module.exports = __toCommonJS(png_exports);
26
+ var import_crc32 = require("../utils/crc32.cjs");
27
+ var import_deflate = require("../utils/deflate.cjs");
28
+ var PNG_HEAD = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]);
29
+ var PNG_IHDR = new Uint8Array([0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0]);
30
+ var PNG_IDAT = new Uint8Array([0, 0, 0, 0, 73, 68, 65, 84]);
31
+ var PNG_IEND = new Uint8Array([0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]);
32
+ async function png(bitmap2) {
33
+ const chunks = [];
34
+ chunks.push(PNG_HEAD);
35
+ const imageHeader = new Uint8Array(PNG_IHDR);
36
+ const imageHeaderView = new DataView(imageHeader.buffer);
37
+ imageHeaderView.setUint32(8, bitmap2.size, false);
38
+ imageHeaderView.setUint32(12, bitmap2.size, false);
39
+ imageHeaderView.setUint32(21, (0, import_crc32.crc32)(imageHeader, 4, -4), false);
40
+ chunks.push(imageHeader);
41
+ const data = await (0, import_deflate.deflate)(bitmap2.data);
42
+ const imageData = new Uint8Array(PNG_IDAT.length + data.length + 4);
43
+ const imageDataView = new DataView(imageData.buffer);
44
+ imageData.set(PNG_IDAT, 0);
45
+ imageData.set(data, PNG_IDAT.length);
46
+ imageDataView.setUint32(0, imageData.length - 12, false);
47
+ imageDataView.setUint32(imageData.length - 4, (0, import_crc32.crc32)(imageData, 4, -4), false);
48
+ chunks.push(imageData);
49
+ chunks.push(PNG_IEND);
50
+ return new Uint8Array(await new Blob(chunks).arrayBuffer());
51
+ }
52
+ function bitmap(matrix, scale, margin) {
53
+ const n = matrix.length;
54
+ const x = (n + 2 * margin) * scale;
55
+ const data = new Uint8Array((x + 1) * x).fill(255);
56
+ for (let i = 0; i < x; i++) {
57
+ data[i * (x + 1)] = 0;
58
+ }
59
+ for (let i = 0; i < n; i++) {
60
+ for (let j = 0; j < n; j++) {
61
+ if (matrix[i][j]) {
62
+ const offset = ((margin + i) * (x + 1) + (margin + j)) * scale + 1;
63
+ data.fill(0, offset, offset + scale);
64
+ for (let c = 1; c < scale; c++) {
65
+ const chunk = data.subarray(offset, offset + scale);
66
+ data.set(chunk, offset + c * (x + 1));
67
+ }
68
+ }
69
+ }
70
+ }
71
+ return {
72
+ data,
73
+ size: x
74
+ };
75
+ }
76
+ async function generatePng(code, options) {
77
+ const { margin = 4, scale = 1 } = { ...options };
78
+ const result = bitmap(code.matrix, scale, margin);
79
+ const image = await png(result);
80
+ return image;
81
+ }
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {
84
+ generatePng
85
+ });
86
+ //# sourceMappingURL=png.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/images/png.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AACtB,qBAAwB;AAiBxB,IAAM,WAAW,IAAI,WAAW,CAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAG,CAAC;AACnE,IAAM,WAAW,IAAI,WAAW,CAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,CAAC;AAClH,IAAM,WAAW,IAAI,WAAW,CAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAG,CAAC;AAC9D,IAAM,WAAW,IAAI,WAAW,CAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAI,CAAC;AAOhF,eAAe,IAAIA,SAAqC;AACtD,QAAM,SAAuB,CAAC;AAG9B,SAAO,KAAK,QAAQ;AAGpB,QAAM,cAAc,IAAI,WAAW,QAAQ;AAC3C,QAAM,kBAAkB,IAAI,SAAS,YAAY,MAAM;AAEvD,kBAAgB,UAAU,GAAGA,QAAO,MAAM,KAAK;AAC/C,kBAAgB,UAAU,IAAIA,QAAO,MAAM,KAAK;AAChD,kBAAgB,UAAU,QAAI,oBAAM,aAAa,GAAG,EAAE,GAAG,KAAK;AAE9D,SAAO,KAAK,WAAW;AAGvB,QAAM,OAAO,UAAM,wBAAQA,QAAO,IAAI;AAGtC,QAAM,YAAY,IAAI,WAAW,SAAS,SAAS,KAAK,SAAS,CAAC;AAClE,QAAM,gBAAgB,IAAI,SAAS,UAAU,MAAM;AAEnD,YAAU,IAAI,UAAU,CAAC;AACzB,YAAU,IAAI,MAAM,SAAS,MAAM;AACnC,gBAAc,UAAU,GAAG,UAAU,SAAS,IAAI,KAAK;AACvD,gBAAc,UAAU,UAAU,SAAS,OAAG,oBAAM,WAAW,GAAG,EAAE,GAAG,KAAK;AAE5E,SAAO,KAAK,SAAS;AAGrB,SAAO,KAAK,QAAQ;AAGpB,SAAO,IAAI,WAAW,MAAM,IAAI,KAAK,MAAM,EAAE,YAAY,CAAC;AAC5D;AAGA,SAAS,OAAO,QAA8B,OAAe,QAAwB;AACnF,QAAM,IAAI,OAAO;AACjB,QAAM,KAAK,IAAI,IAAI,UAAU;AAC7B,QAAM,OAAO,IAAI,YAAY,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG;AAEjD,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,SAAK,KAAK,IAAI,EAAE,IAAI;AAAA,EACtB;AAEA,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAI,OAAO,CAAC,EAAG,CAAC,GAAG;AACjB,cAAM,WAAW,SAAS,MAAM,IAAI,MAAM,SAAS,MAAM,QAAQ;AACjE,aAAK,KAAK,GAAG,QAAQ,SAAS,KAAK;AACnC,iBAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,gBAAM,QAAQ,KAAK,SAAS,QAAQ,SAAS,KAAK;AAClD,eAAK,IAAI,OAAO,SAAS,KAAK,IAAI,EAAE;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,EACR;AACF;AAOA,eAAsB,YAAY,MAAc,SAAmD;AACjG,QAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ;AAC/C,QAAM,SAAS,OAAO,KAAK,QAAQ,OAAO,MAAM;AAChD,QAAM,QAAQ,MAAM,IAAI,MAAM;AAC9B,SAAO;AACT;",
5
+ "names": ["bitmap"]
6
+ }
@@ -0,0 +1,3 @@
1
+ import type { QrCode, QrCodeImageOptions } from '../index';
2
+ /** Generate a PNG image for the given {@link QrCode} */
3
+ export declare function generatePng(code: QrCode, options?: QrCodeImageOptions): Promise<Uint8Array>;
@@ -0,0 +1,61 @@
1
+ // images/png.ts
2
+ import { crc32 } from "../utils/crc32.mjs";
3
+ import { deflate } from "../utils/deflate.mjs";
4
+ var PNG_HEAD = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]);
5
+ var PNG_IHDR = new Uint8Array([0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0]);
6
+ var PNG_IDAT = new Uint8Array([0, 0, 0, 0, 73, 68, 65, 84]);
7
+ var PNG_IEND = new Uint8Array([0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]);
8
+ async function png(bitmap2) {
9
+ const chunks = [];
10
+ chunks.push(PNG_HEAD);
11
+ const imageHeader = new Uint8Array(PNG_IHDR);
12
+ const imageHeaderView = new DataView(imageHeader.buffer);
13
+ imageHeaderView.setUint32(8, bitmap2.size, false);
14
+ imageHeaderView.setUint32(12, bitmap2.size, false);
15
+ imageHeaderView.setUint32(21, crc32(imageHeader, 4, -4), false);
16
+ chunks.push(imageHeader);
17
+ const data = await deflate(bitmap2.data);
18
+ const imageData = new Uint8Array(PNG_IDAT.length + data.length + 4);
19
+ const imageDataView = new DataView(imageData.buffer);
20
+ imageData.set(PNG_IDAT, 0);
21
+ imageData.set(data, PNG_IDAT.length);
22
+ imageDataView.setUint32(0, imageData.length - 12, false);
23
+ imageDataView.setUint32(imageData.length - 4, crc32(imageData, 4, -4), false);
24
+ chunks.push(imageData);
25
+ chunks.push(PNG_IEND);
26
+ return new Uint8Array(await new Blob(chunks).arrayBuffer());
27
+ }
28
+ function bitmap(matrix, scale, margin) {
29
+ const n = matrix.length;
30
+ const x = (n + 2 * margin) * scale;
31
+ const data = new Uint8Array((x + 1) * x).fill(255);
32
+ for (let i = 0; i < x; i++) {
33
+ data[i * (x + 1)] = 0;
34
+ }
35
+ for (let i = 0; i < n; i++) {
36
+ for (let j = 0; j < n; j++) {
37
+ if (matrix[i][j]) {
38
+ const offset = ((margin + i) * (x + 1) + (margin + j)) * scale + 1;
39
+ data.fill(0, offset, offset + scale);
40
+ for (let c = 1; c < scale; c++) {
41
+ const chunk = data.subarray(offset, offset + scale);
42
+ data.set(chunk, offset + c * (x + 1));
43
+ }
44
+ }
45
+ }
46
+ }
47
+ return {
48
+ data,
49
+ size: x
50
+ };
51
+ }
52
+ async function generatePng(code, options) {
53
+ const { margin = 4, scale = 1 } = { ...options };
54
+ const result = bitmap(code.matrix, scale, margin);
55
+ const image = await png(result);
56
+ return image;
57
+ }
58
+ export {
59
+ generatePng
60
+ };
61
+ //# sourceMappingURL=png.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/images/png.ts"],
4
+ "mappings": ";AAAA,SAAS,aAAa;AACtB,SAAS,eAAe;AAiBxB,IAAM,WAAW,IAAI,WAAW,CAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAG,CAAC;AACnE,IAAM,WAAW,IAAI,WAAW,CAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,CAAC;AAClH,IAAM,WAAW,IAAI,WAAW,CAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAG,CAAC;AAC9D,IAAM,WAAW,IAAI,WAAW,CAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAI,CAAC;AAOhF,eAAe,IAAIA,SAAqC;AACtD,QAAM,SAAuB,CAAC;AAG9B,SAAO,KAAK,QAAQ;AAGpB,QAAM,cAAc,IAAI,WAAW,QAAQ;AAC3C,QAAM,kBAAkB,IAAI,SAAS,YAAY,MAAM;AAEvD,kBAAgB,UAAU,GAAGA,QAAO,MAAM,KAAK;AAC/C,kBAAgB,UAAU,IAAIA,QAAO,MAAM,KAAK;AAChD,kBAAgB,UAAU,IAAI,MAAM,aAAa,GAAG,EAAE,GAAG,KAAK;AAE9D,SAAO,KAAK,WAAW;AAGvB,QAAM,OAAO,MAAM,QAAQA,QAAO,IAAI;AAGtC,QAAM,YAAY,IAAI,WAAW,SAAS,SAAS,KAAK,SAAS,CAAC;AAClE,QAAM,gBAAgB,IAAI,SAAS,UAAU,MAAM;AAEnD,YAAU,IAAI,UAAU,CAAC;AACzB,YAAU,IAAI,MAAM,SAAS,MAAM;AACnC,gBAAc,UAAU,GAAG,UAAU,SAAS,IAAI,KAAK;AACvD,gBAAc,UAAU,UAAU,SAAS,GAAG,MAAM,WAAW,GAAG,EAAE,GAAG,KAAK;AAE5E,SAAO,KAAK,SAAS;AAGrB,SAAO,KAAK,QAAQ;AAGpB,SAAO,IAAI,WAAW,MAAM,IAAI,KAAK,MAAM,EAAE,YAAY,CAAC;AAC5D;AAGA,SAAS,OAAO,QAA8B,OAAe,QAAwB;AACnF,QAAM,IAAI,OAAO;AACjB,QAAM,KAAK,IAAI,IAAI,UAAU;AAC7B,QAAM,OAAO,IAAI,YAAY,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG;AAEjD,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,SAAK,KAAK,IAAI,EAAE,IAAI;AAAA,EACtB;AAEA,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAI,OAAO,CAAC,EAAG,CAAC,GAAG;AACjB,cAAM,WAAW,SAAS,MAAM,IAAI,MAAM,SAAS,MAAM,QAAQ;AACjE,aAAK,KAAK,GAAG,QAAQ,SAAS,KAAK;AACnC,iBAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,gBAAM,QAAQ,KAAK,SAAS,QAAQ,SAAS,KAAK;AAClD,eAAK,IAAI,OAAO,SAAS,KAAK,IAAI,EAAE;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,MAAM;AAAA,EACR;AACF;AAOA,eAAsB,YAAY,MAAc,SAAmD;AACjG,QAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ;AAC/C,QAAM,SAAS,OAAO,KAAK,QAAQ,OAAO,MAAM;AAChD,QAAM,QAAQ,MAAM,IAAI,MAAM;AAC9B,SAAO;AACT;",
5
+ "names": ["bitmap"]
6
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // images/svg.ts
21
+ var svg_exports = {};
22
+ __export(svg_exports, {
23
+ generateSvg: () => generateSvg,
24
+ generateSvgPath: () => generateSvgPath
25
+ });
26
+ module.exports = __toCommonJS(svg_exports);
27
+ var import_path = require("./path.cjs");
28
+ function convertPath(chunks, code, margin) {
29
+ (0, import_path.generatePaths)(code).forEach((path) => {
30
+ for (let k = 0; k < path.length; k++) {
31
+ const item = path[k];
32
+ switch (item[0]) {
33
+ case "M":
34
+ chunks.push(`M${item[1] + margin} ${item[2] + margin}`);
35
+ break;
36
+ default:
37
+ chunks.push(...item);
38
+ }
39
+ }
40
+ chunks.push("z");
41
+ });
42
+ return chunks;
43
+ }
44
+ function generateSvgPath(code) {
45
+ return convertPath([], code, 0).join();
46
+ }
47
+ function generateSvg(code, options) {
48
+ const { margin = 4, scale = 1 } = { ...options };
49
+ const size = code.size + 2 * margin;
50
+ const scaled = size * scale;
51
+ const chunks = convertPath([
52
+ `<svg xmlns="http://www.w3.org/2000/svg" width="${scaled}" height="${scaled}" viewBox="0 0 ${size} ${size}">`,
53
+ '<path d="'
54
+ // beginning of the path "d" attribute...
55
+ ], code, margin);
56
+ chunks.push('"/></svg>');
57
+ return chunks.join("");
58
+ }
59
+ // Annotate the CommonJS export names for ESM import in node:
60
+ 0 && (module.exports = {
61
+ generateSvg,
62
+ generateSvgPath
63
+ });
64
+ //# sourceMappingURL=svg.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/images/svg.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA8B;AAQ9B,SAAS,YACL,QACA,MACA,QACmB;AACrB,iCAAc,IAAI,EAAE,QAAQ,CAAC,SAAS;AACpC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,OAAO,KAAK,CAAC;AACnB,cAAQ,KAAK,CAAC,GAAG;AAAA,QACf,KAAK;AACH,iBAAO,KAAK,IAAI,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,EAAE;AACtD;AAAA,QACF;AACE,iBAAO,KAAK,GAAG,IAAI;AAAA,MACvB;AAAA,IACF;AACA,WAAO,KAAK,GAAG;AAAA,EACjB,CAAC;AAED,SAAO;AACT;AAwDO,SAAS,gBAAgB,MAAsB;AACpD,SAAO,YAAY,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK;AACvC;AAGO,SAAS,YAAY,MAAc,SAAsC;AAC9E,QAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ;AAC/C,QAAM,OAAO,KAAK,OAAO,IAAI;AAC7B,QAAM,SAAS,OAAO;AAEtB,QAAM,SAAS,YAAY;AAAA,IACzB,kDAAkD,MAAM,aAAa,MAAM,kBAAkB,IAAI,IAAI,IAAI;AAAA,IACzG;AAAA;AAAA,EACF,GAAG,MAAM,MAAM;AAEf,SAAO,KAAK,WAAW;AACvB,SAAO,OAAO,KAAK,EAAE;AACvB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,54 @@
1
+ import type { QrCode, QrCodeImageOptions } from '..';
2
+ /**
3
+ * Generate a SVG _path_ for the given {@link QrCode}.
4
+ *
5
+ * The returned SVG path will be a simple conversion of the QR code's own
6
+ * {@link QrCode.matrix matrix} into a square path of _**N**_ "pixels"
7
+ * (where _**N**_ is the size of the {@link QrCode.size size} of the matrix).
8
+ *
9
+ * This can be scaled and positioned into a final SVG using the `scale(...)` and
10
+ * `translate(...)` [basic SVG transformations](https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Basic_Transformations).
11
+ *
12
+ * This is also particulary useful with [PDFKit](https://pdfkit.org/)'s own
13
+ * implementation of [SVG paths](https://pdfkit.org/docs/vector.html#svg_paths).
14
+ *
15
+ * We can use it together with `translate(...)` and `scale(...)` to draw our QR
16
+ * code anywhere on the page, in any size. For example, to prepare a simple A4
17
+ * document with a 10cm QR code smack in the middle we can:
18
+ *
19
+ * ```typescript
20
+ * // generate the QR code _structure_ for our message
21
+ * const code = generateQrCode('https://www.juit.com/')
22
+ *
23
+ * // generate the SVG path for our QR code
24
+ * const path = generateSvgPath(code)
25
+ *
26
+ * // calculate how to translate and scale our QR code in the page
27
+ * const dpcm = 72 / 2.54 // PDFKit uses 72dpi (inches) we want metric!
28
+ * const size = 10 * dpcm // 10 cm (size of our QR code) in dots
29
+ * const scale = size / code.size // scale factor for our QR code to be 10 cm
30
+ * const x = ((21 - 10) / 2) * dpcm // center horizontally
31
+ * const y = ((29.7 - 10) / 2) * dpcm // center vertically
32
+ *
33
+ * // create a new A4 document, and stream it to "test.pdf"
34
+ * const document = new PDFDocument({ size: 'A4' })
35
+ * const stream = createWriteStream('test.pdf')
36
+ * document.pipe(stream)
37
+ *
38
+ * // draw our 10cm QR code right in the middle of the page
39
+ * document
40
+ * .translate(x, y) // move to x = 5.5cm, y = 9.85cm
41
+ * .scale(scale) // scale our QR code to 10cm width and height
42
+ * .path(path) // draw our QR code smack in the middle of the page
43
+ * .fill('black') // fill our QR code in black
44
+ * .end() // finish up and close the document
45
+ *
46
+ * // wait for the stream to finish
47
+ * stream.on('finish', () => {
48
+ * // your PDF file is ready!
49
+ * })
50
+ * ```
51
+ */
52
+ export declare function generateSvgPath(code: QrCode): string;
53
+ /** Generate a SVG image for the given {@link QrCode} */
54
+ export declare function generateSvg(code: QrCode, options?: QrCodeImageOptions): string;
@@ -0,0 +1,38 @@
1
+ // images/svg.ts
2
+ import { generatePaths } from "./path.mjs";
3
+ function convertPath(chunks, code, margin) {
4
+ generatePaths(code).forEach((path) => {
5
+ for (let k = 0; k < path.length; k++) {
6
+ const item = path[k];
7
+ switch (item[0]) {
8
+ case "M":
9
+ chunks.push(`M${item[1] + margin} ${item[2] + margin}`);
10
+ break;
11
+ default:
12
+ chunks.push(...item);
13
+ }
14
+ }
15
+ chunks.push("z");
16
+ });
17
+ return chunks;
18
+ }
19
+ function generateSvgPath(code) {
20
+ return convertPath([], code, 0).join();
21
+ }
22
+ function generateSvg(code, options) {
23
+ const { margin = 4, scale = 1 } = { ...options };
24
+ const size = code.size + 2 * margin;
25
+ const scaled = size * scale;
26
+ const chunks = convertPath([
27
+ `<svg xmlns="http://www.w3.org/2000/svg" width="${scaled}" height="${scaled}" viewBox="0 0 ${size} ${size}">`,
28
+ '<path d="'
29
+ // beginning of the path "d" attribute...
30
+ ], code, margin);
31
+ chunks.push('"/></svg>');
32
+ return chunks.join("");
33
+ }
34
+ export {
35
+ generateSvg,
36
+ generateSvgPath
37
+ };
38
+ //# sourceMappingURL=svg.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/images/svg.ts"],
4
+ "mappings": ";AAAA,SAAS,qBAAqB;AAQ9B,SAAS,YACL,QACA,MACA,QACmB;AACrB,gBAAc,IAAI,EAAE,QAAQ,CAAC,SAAS;AACpC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,YAAM,OAAO,KAAK,CAAC;AACnB,cAAQ,KAAK,CAAC,GAAG;AAAA,QACf,KAAK;AACH,iBAAO,KAAK,IAAI,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,EAAE;AACtD;AAAA,QACF;AACE,iBAAO,KAAK,GAAG,IAAI;AAAA,MACvB;AAAA,IACF;AACA,WAAO,KAAK,GAAG;AAAA,EACjB,CAAC;AAED,SAAO;AACT;AAwDO,SAAS,gBAAgB,MAAsB;AACpD,SAAO,YAAY,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK;AACvC;AAGO,SAAS,YAAY,MAAc,SAAsC;AAC9E,QAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ;AAC/C,QAAM,OAAO,KAAK,OAAO,IAAI;AAC7B,QAAM,SAAS,OAAO;AAEtB,QAAM,SAAS,YAAY;AAAA,IACzB,kDAAkD,MAAM,aAAa,MAAM,kBAAkB,IAAI,IAAI,IAAI;AAAA,IACzG;AAAA;AAAA,EACF,GAAG,MAAM,MAAM;AAEf,SAAO,KAAK,WAAW;AACvB,SAAO,OAAO,KAAK,EAAE;AACvB;",
5
+ "names": []
6
+ }
package/dist/index.cjs ADDED
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ generate: () => generate,
24
+ generatePdf: () => import_pdf2.generatePdf,
25
+ generatePdfDataQrCode: () => generatePdfDataQrCode,
26
+ generatePdfQrCode: () => generatePdfQrCode,
27
+ generatePng: () => import_png2.generatePng,
28
+ generatePngDataQrCode: () => generatePngDataQrCode,
29
+ generatePngQrCode: () => generatePngQrCode,
30
+ generateQrCode: () => generateQrCode,
31
+ generateSvg: () => import_svg2.generateSvg,
32
+ generateSvgDataQrCode: () => generateSvgDataQrCode,
33
+ generateSvgPath: () => import_svg2.generateSvgPath,
34
+ generateSvgQrCode: () => generateSvgQrCode
35
+ });
36
+ module.exports = __toCommonJS(src_exports);
37
+ var import_encode = require("./encode.cjs");
38
+ var import_pdf = require("./images/pdf.cjs");
39
+ var import_png = require("./images/png.cjs");
40
+ var import_svg = require("./images/svg.cjs");
41
+ var import_matrix = require("./matrix.cjs");
42
+ var import_qrcode = require("./qrcode.cjs");
43
+ var import_dataurl = require("./utils/dataurl.cjs");
44
+ var import_pdf2 = require("./images/pdf.cjs");
45
+ var import_png2 = require("./images/png.cjs");
46
+ var import_svg2 = require("./images/svg.cjs");
47
+ function generateQrCode(message, options) {
48
+ const { ecLevel = "M", url = false } = { ...options };
49
+ const encoded = (0, import_encode.encodeQrCodeMessage)(message, url);
50
+ const qrcode = (0, import_qrcode.generateQrCodeData)(encoded, ecLevel);
51
+ const matrix = (0, import_matrix.generateQrCodeMatrix)(qrcode);
52
+ return {
53
+ version: qrcode.version,
54
+ ecLevel: qrcode.ecLevel,
55
+ size: matrix.length,
56
+ matrix
57
+ };
58
+ }
59
+ async function generatePngQrCode(message, options) {
60
+ return await (0, import_png.generatePng)(generateQrCode(message, options), options);
61
+ }
62
+ async function generatePdfQrCode(message, options) {
63
+ return await (0, import_pdf.generatePdf)(generateQrCode(message, options), options);
64
+ }
65
+ function generateSvgQrCode(message, options) {
66
+ return (0, import_svg.generateSvg)(generateQrCode(message, options), options);
67
+ }
68
+ async function generatePngDataQrCode(message, options) {
69
+ return (0, import_dataurl.generateDataUrl)(await (0, import_png.generatePng)(generateQrCode(message, options), options), "image/png");
70
+ }
71
+ async function generatePdfDataQrCode(message, options) {
72
+ return (0, import_dataurl.generateDataUrl)(await (0, import_pdf.generatePdf)(generateQrCode(message, options), options), "application/pdf");
73
+ }
74
+ function generateSvgDataQrCode(message, options) {
75
+ return (0, import_dataurl.generateDataUrl)((0, import_svg.generateSvg)(generateQrCode(message, options), options), "image/svg+xml");
76
+ }
77
+ async function generate(message, format, options) {
78
+ switch (format) {
79
+ case "png":
80
+ return await generatePngQrCode(message, options);
81
+ case "pdf":
82
+ return await generatePdfQrCode(message, options);
83
+ case "svg":
84
+ return generateSvgQrCode(message, options);
85
+ case "pngData":
86
+ return await generatePngDataQrCode(message, options);
87
+ case "pdfData":
88
+ return await generatePdfDataQrCode(message, options);
89
+ case "svgData":
90
+ return generateSvgDataQrCode(message, options);
91
+ default:
92
+ throw new Error(`Unsupported format "${format}"`);
93
+ }
94
+ }
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ generate,
98
+ generatePdf,
99
+ generatePdfDataQrCode,
100
+ generatePdfQrCode,
101
+ generatePng,
102
+ generatePngDataQrCode,
103
+ generatePngQrCode,
104
+ generateQrCode,
105
+ generateSvg,
106
+ generateSvgDataQrCode,
107
+ generateSvgPath,
108
+ generateSvgQrCode
109
+ });
110
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAoC;AACpC,iBAA4B;AAC5B,iBAA4B;AAC5B,iBAA4B;AAC5B,oBAAqC;AACrC,oBAAmC;AACnC,qBAAgC;AAEhC,IAAAA,cAA4B;AAC5B,IAAAC,cAA4B;AAC5B,IAAAC,cAA6C;AAkDtC,SAAS,eAAe,SAA8B,SAA2C;AACtG,QAAM,EAAE,UAAU,KAAK,MAAM,MAAM,IAAI,EAAE,GAAG,QAAQ;AAEpD,QAAM,cAAU,mCAAoB,SAAS,GAAG;AAChD,QAAM,aAAS,kCAAmB,SAAS,OAAO;AAClD,QAAM,aAAS,oCAAqB,MAAM;AAE1C,SAAO;AAAA,IACL,SAAS,OAAO;AAAA,IAChB,SAAS,OAAO;AAAA,IAChB,MAAM,OAAO;AAAA,IACb;AAAA,EACF;AACF;AAKA,eAAsB,kBAAkB,SAA8B,SAA8C;AAClH,SAAO,UAAM,wBAAY,eAAe,SAAS,OAAO,GAAG,OAAO;AACpE;AAGA,eAAsB,kBAAkB,SAA8B,SAA8C;AAClH,SAAO,UAAM,wBAAY,eAAe,SAAS,OAAO,GAAG,OAAO;AACpE;AAGO,SAAS,kBAAkB,SAA8B,SAAiC;AAC/F,aAAO,wBAAY,eAAe,SAAS,OAAO,GAAG,OAAO;AAC9D;AAGA,eAAsB,sBAAsB,SAA8B,SAA0C;AAClH,aAAO,gCAAgB,UAAM,wBAAY,eAAe,SAAS,OAAO,GAAG,OAAO,GAAG,WAAW;AAClG;AAGA,eAAsB,sBAAsB,SAA8B,SAA0C;AAClH,aAAO,gCAAgB,UAAM,wBAAY,eAAe,SAAS,OAAO,GAAG,OAAO,GAAG,iBAAiB;AACxG;AAGO,SAAS,sBAAsB,SAA8B,SAAiC;AACnG,aAAO,oCAAgB,wBAAY,eAAe,SAAS,OAAO,GAAG,OAAO,GAAG,eAAe;AAChG;AAwBA,eAAsB,SAClB,SACA,QACA,SAC4B;AAC9B,UAAQ,QAAQ;AAAA,IAEd,KAAK;AAAO,aAAO,MAAM,kBAAkB,SAAS,OAAO;AAAA,IAC3D,KAAK;AAAO,aAAO,MAAM,kBAAkB,SAAS,OAAO;AAAA,IAC3D,KAAK;AAAO,aAAO,kBAAkB,SAAS,OAAO;AAAA,IAErD,KAAK;AAAW,aAAO,MAAM,sBAAsB,SAAS,OAAO;AAAA,IACnE,KAAK;AAAW,aAAO,MAAM,sBAAsB,SAAS,OAAO;AAAA,IACnE,KAAK;AAAW,aAAO,sBAAsB,SAAS,OAAO;AAAA,IAE7D;AAAS,YAAM,IAAI,MAAM,uBAAuB,MAAM,GAAG;AAAA,EAC3D;AACF;",
5
+ "names": ["import_pdf", "import_png", "import_svg"]
6
+ }
@@ -0,0 +1,74 @@
1
+ export { generatePdf } from './images/pdf';
2
+ export { generatePng } from './images/png';
3
+ export { generateSvg, generateSvgPath } from './images/svg';
4
+ /**
5
+ * The error correction level for QR codes (`L`, `M`, `Q`, or `H`)
6
+ *
7
+ * * `L`: approximately 7% of error correction capability
8
+ * * `M`: approximately 15% of error correction capability
9
+ * * `Q`: approximately 25% of error correction capability
10
+ * * `H`: approximately 30% of error correction capability
11
+ */
12
+ export type ECLevel = 'L' | 'M' | 'Q' | 'H';
13
+ /** The structure of a _generated_ QR code */
14
+ export interface QrCode {
15
+ /** The version of the QR code (1...40) */
16
+ readonly version: number;
17
+ /** The error correction level for the QR code */
18
+ readonly ecLevel: ECLevel;
19
+ /** The size (in pixels) of the QR code */
20
+ readonly size: number;
21
+ /** The QR code matrix */
22
+ readonly matrix: readonly boolean[][];
23
+ }
24
+ /** Options for the generation of a {@link QrCode} */
25
+ export interface QrCodeGenerationOptions {
26
+ /** The error correction level for the QR code (default: `M`) */
27
+ ecLevel?: ECLevel;
28
+ /** Whether to optimize URLs in QR codes (default: `false`) */
29
+ url?: boolean;
30
+ }
31
+ /** Options to render a {@link QrCode} into an image */
32
+ export interface QrCodeImageOptions {
33
+ /**
34
+ * The number of pixels used for each dot in the matrix
35
+ * (default: `1` for PNG/SVG and `9` for PDF)
36
+ */
37
+ scale?: number;
38
+ /**
39
+ * The size of the margin around the QR code in matrix modules
40
+ * (default: `4` as per the QR code specification - the _quiet area_)
41
+ */
42
+ margin?: number;
43
+ }
44
+ /** QR code options */
45
+ export interface QrCodeOptions extends QrCodeGenerationOptions, QrCodeImageOptions {
46
+ }
47
+ /** Generate a {@link QrCode} from a string or binary message */
48
+ export declare function generateQrCode(message: string | Uint8Array, options?: QrCodeGenerationOptions): QrCode;
49
+ /** Generate a QR code in PNG format from a string or binary message */
50
+ export declare function generatePngQrCode(message: string | Uint8Array, options?: QrCodeOptions): Promise<Uint8Array>;
51
+ /** Generate a QR code in PDF format from a string or binary message */
52
+ export declare function generatePdfQrCode(message: string | Uint8Array, options?: QrCodeOptions): Promise<Uint8Array>;
53
+ /** Generate a QR code in SVG format from a string or binary message */
54
+ export declare function generateSvgQrCode(message: string | Uint8Array, options?: QrCodeOptions): string;
55
+ /** Generate a QR code as a PNG data URL from a string or binary message */
56
+ export declare function generatePngDataQrCode(message: string | Uint8Array, options?: QrCodeOptions): Promise<string>;
57
+ /** Generate a QR code as a PDF data URL from a string or binary message */
58
+ export declare function generatePdfDataQrCode(message: string | Uint8Array, options?: QrCodeOptions): Promise<string>;
59
+ /** Generate a QR code as a SVG data URL from a string or binary message */
60
+ export declare function generateSvgDataQrCode(message: string | Uint8Array, options?: QrCodeOptions): string;
61
+ /** Generate a QR code in PNG format from a string or binary message */
62
+ export declare function generate(message: string | Uint8Array, format: 'png', options?: QrCodeOptions): Promise<Uint8Array>;
63
+ /** Generate a QR code in PDF format from a string or binary message */
64
+ export declare function generate(message: string | Uint8Array, format: 'pdf', options?: QrCodeOptions): Promise<Uint8Array>;
65
+ /** Generate a QR code in SVG format from a string or binary message */
66
+ export declare function generate(message: string | Uint8Array, format: 'svg', options?: QrCodeOptions): Promise<string>;
67
+ /** Generate a QR code as a PNG data URL from a string or binary message */
68
+ export declare function generate(message: string | Uint8Array, format: 'pngData', options?: QrCodeOptions): Promise<string>;
69
+ /** Generate a QR code as a PDF data URL from a string or binary message */
70
+ export declare function generate(message: string | Uint8Array, format: 'pdfData', options?: QrCodeOptions): Promise<string>;
71
+ /** Generate a QR code as a SVG data URL from a string or binary message */
72
+ export declare function generate(message: string | Uint8Array, format: 'svgData', options?: QrCodeOptions): Promise<string>;
73
+ /** Generate a QR code as an image */
74
+ export declare function generate<Format extends 'png' | 'pdf' | 'svg' | 'pngData' | 'pdfData' | 'svgData'>(message: string | Uint8Array, format: Format, options?: QrCodeOptions): Promise<Format extends 'png' ? Uint8Array : Format extends 'pdf' ? Uint8Array : string>;
package/dist/index.mjs ADDED
@@ -0,0 +1,74 @@
1
+ // index.ts
2
+ import { encodeQrCodeMessage } from "./encode.mjs";
3
+ import { generatePdf } from "./images/pdf.mjs";
4
+ import { generatePng } from "./images/png.mjs";
5
+ import { generateSvg } from "./images/svg.mjs";
6
+ import { generateQrCodeMatrix } from "./matrix.mjs";
7
+ import { generateQrCodeData } from "./qrcode.mjs";
8
+ import { generateDataUrl } from "./utils/dataurl.mjs";
9
+ import { generatePdf as generatePdf2 } from "./images/pdf.mjs";
10
+ import { generatePng as generatePng2 } from "./images/png.mjs";
11
+ import { generateSvg as generateSvg2, generateSvgPath } from "./images/svg.mjs";
12
+ function generateQrCode(message, options) {
13
+ const { ecLevel = "M", url = false } = { ...options };
14
+ const encoded = encodeQrCodeMessage(message, url);
15
+ const qrcode = generateQrCodeData(encoded, ecLevel);
16
+ const matrix = generateQrCodeMatrix(qrcode);
17
+ return {
18
+ version: qrcode.version,
19
+ ecLevel: qrcode.ecLevel,
20
+ size: matrix.length,
21
+ matrix
22
+ };
23
+ }
24
+ async function generatePngQrCode(message, options) {
25
+ return await generatePng(generateQrCode(message, options), options);
26
+ }
27
+ async function generatePdfQrCode(message, options) {
28
+ return await generatePdf(generateQrCode(message, options), options);
29
+ }
30
+ function generateSvgQrCode(message, options) {
31
+ return generateSvg(generateQrCode(message, options), options);
32
+ }
33
+ async function generatePngDataQrCode(message, options) {
34
+ return generateDataUrl(await generatePng(generateQrCode(message, options), options), "image/png");
35
+ }
36
+ async function generatePdfDataQrCode(message, options) {
37
+ return generateDataUrl(await generatePdf(generateQrCode(message, options), options), "application/pdf");
38
+ }
39
+ function generateSvgDataQrCode(message, options) {
40
+ return generateDataUrl(generateSvg(generateQrCode(message, options), options), "image/svg+xml");
41
+ }
42
+ async function generate(message, format, options) {
43
+ switch (format) {
44
+ case "png":
45
+ return await generatePngQrCode(message, options);
46
+ case "pdf":
47
+ return await generatePdfQrCode(message, options);
48
+ case "svg":
49
+ return generateSvgQrCode(message, options);
50
+ case "pngData":
51
+ return await generatePngDataQrCode(message, options);
52
+ case "pdfData":
53
+ return await generatePdfDataQrCode(message, options);
54
+ case "svgData":
55
+ return generateSvgDataQrCode(message, options);
56
+ default:
57
+ throw new Error(`Unsupported format "${format}"`);
58
+ }
59
+ }
60
+ export {
61
+ generate,
62
+ generatePdf2 as generatePdf,
63
+ generatePdfDataQrCode,
64
+ generatePdfQrCode,
65
+ generatePng2 as generatePng,
66
+ generatePngDataQrCode,
67
+ generatePngQrCode,
68
+ generateQrCode,
69
+ generateSvg2 as generateSvg,
70
+ generateSvgDataQrCode,
71
+ generateSvgPath,
72
+ generateSvgQrCode
73
+ };
74
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "mappings": ";AAAA,SAAS,2BAA2B;AACpC,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAEhC,SAAS,eAAAA,oBAAmB;AAC5B,SAAS,eAAAC,oBAAmB;AAC5B,SAAS,eAAAC,cAAa,uBAAuB;AAkDtC,SAAS,eAAe,SAA8B,SAA2C;AACtG,QAAM,EAAE,UAAU,KAAK,MAAM,MAAM,IAAI,EAAE,GAAG,QAAQ;AAEpD,QAAM,UAAU,oBAAoB,SAAS,GAAG;AAChD,QAAM,SAAS,mBAAmB,SAAS,OAAO;AAClD,QAAM,SAAS,qBAAqB,MAAM;AAE1C,SAAO;AAAA,IACL,SAAS,OAAO;AAAA,IAChB,SAAS,OAAO;AAAA,IAChB,MAAM,OAAO;AAAA,IACb;AAAA,EACF;AACF;AAKA,eAAsB,kBAAkB,SAA8B,SAA8C;AAClH,SAAO,MAAM,YAAY,eAAe,SAAS,OAAO,GAAG,OAAO;AACpE;AAGA,eAAsB,kBAAkB,SAA8B,SAA8C;AAClH,SAAO,MAAM,YAAY,eAAe,SAAS,OAAO,GAAG,OAAO;AACpE;AAGO,SAAS,kBAAkB,SAA8B,SAAiC;AAC/F,SAAO,YAAY,eAAe,SAAS,OAAO,GAAG,OAAO;AAC9D;AAGA,eAAsB,sBAAsB,SAA8B,SAA0C;AAClH,SAAO,gBAAgB,MAAM,YAAY,eAAe,SAAS,OAAO,GAAG,OAAO,GAAG,WAAW;AAClG;AAGA,eAAsB,sBAAsB,SAA8B,SAA0C;AAClH,SAAO,gBAAgB,MAAM,YAAY,eAAe,SAAS,OAAO,GAAG,OAAO,GAAG,iBAAiB;AACxG;AAGO,SAAS,sBAAsB,SAA8B,SAAiC;AACnG,SAAO,gBAAgB,YAAY,eAAe,SAAS,OAAO,GAAG,OAAO,GAAG,eAAe;AAChG;AAwBA,eAAsB,SAClB,SACA,QACA,SAC4B;AAC9B,UAAQ,QAAQ;AAAA,IAEd,KAAK;AAAO,aAAO,MAAM,kBAAkB,SAAS,OAAO;AAAA,IAC3D,KAAK;AAAO,aAAO,MAAM,kBAAkB,SAAS,OAAO;AAAA,IAC3D,KAAK;AAAO,aAAO,kBAAkB,SAAS,OAAO;AAAA,IAErD,KAAK;AAAW,aAAO,MAAM,sBAAsB,SAAS,OAAO;AAAA,IACnE,KAAK;AAAW,aAAO,MAAM,sBAAsB,SAAS,OAAO;AAAA,IACnE,KAAK;AAAW,aAAO,sBAAsB,SAAS,OAAO;AAAA,IAE7D;AAAS,YAAM,IAAI,MAAM,uBAAuB,MAAM,GAAG;AAAA,EAC3D;AACF;",
5
+ "names": ["generatePdf", "generatePng", "generateSvg"]
6
+ }