@gongbaodd/qr-renderer 0.1.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/dist/node.js +3130 -0
  4. package/dist/types/core/artifacts.d.ts +2 -0
  5. package/dist/types/core/assemble.d.ts +36 -0
  6. package/dist/types/core/errors.d.ts +6 -0
  7. package/dist/types/core/export-sizes.d.ts +21 -0
  8. package/dist/types/core/image.d.ts +14 -0
  9. package/dist/types/core/imaging/browser.d.ts +23 -0
  10. package/dist/types/core/imaging/cloudflare.d.ts +2 -0
  11. package/dist/types/core/imaging/index.d.ts +5 -0
  12. package/dist/types/core/imaging/node.d.ts +4 -0
  13. package/dist/types/core/imaging/pixels.d.ts +28 -0
  14. package/dist/types/core/imaging/types.d.ts +45 -0
  15. package/dist/types/core/mask.d.ts +11 -0
  16. package/dist/types/core/module-cut.d.ts +107 -0
  17. package/dist/types/core/palette.d.ts +80 -0
  18. package/dist/types/core/pattern-cut.d.ts +96 -0
  19. package/dist/types/core/pattern.d.ts +119 -0
  20. package/dist/types/core/placement.d.ts +9 -0
  21. package/dist/types/core/qr.d.ts +57 -0
  22. package/dist/types/core/rotate.d.ts +149 -0
  23. package/dist/types/core/squircle.d.ts +2 -0
  24. package/dist/types/core/types.d.ts +475 -0
  25. package/dist/types/engine/engine.d.ts +68 -0
  26. package/dist/types/engine/index.d.ts +34 -0
  27. package/dist/types/engine/mapping.d.ts +14 -0
  28. package/dist/types/engine/pipeline.d.ts +77 -0
  29. package/dist/types/engine/types.d.ts +66 -0
  30. package/dist/types/node.d.ts +17 -0
  31. package/dist/types/png-guard.d.ts +17 -0
  32. package/dist/types/recipe.d.ts +132 -0
  33. package/dist/types/schema.d.ts +211 -0
  34. package/dist/types/worker-shim.d.ts +12 -0
  35. package/package.json +79 -0
  36. package/src/core/artifacts.ts +6 -0
  37. package/src/core/assemble.ts +1195 -0
  38. package/src/core/errors.ts +24 -0
  39. package/src/core/export-sizes.ts +179 -0
  40. package/src/core/image.ts +57 -0
  41. package/src/core/imaging/browser.ts +186 -0
  42. package/src/core/imaging/cloudflare.ts +15 -0
  43. package/src/core/imaging/index.ts +14 -0
  44. package/src/core/imaging/node.ts +95 -0
  45. package/src/core/imaging/pixels.ts +121 -0
  46. package/src/core/imaging/types.ts +56 -0
  47. package/src/core/mask.ts +295 -0
  48. package/src/core/module-cut.ts +523 -0
  49. package/src/core/palette.ts +227 -0
  50. package/src/core/pattern-cut.ts +522 -0
  51. package/src/core/pattern.ts +478 -0
  52. package/src/core/placement.ts +94 -0
  53. package/src/core/qr.ts +695 -0
  54. package/src/core/rotate.ts +267 -0
  55. package/src/core/squircle.ts +53 -0
  56. package/src/core/types.ts +477 -0
  57. package/src/engine/engine.ts +316 -0
  58. package/src/engine/index.ts +58 -0
  59. package/src/engine/mapping.ts +66 -0
  60. package/src/engine/pipeline.ts +501 -0
  61. package/src/engine/types.ts +61 -0
  62. package/src/node.ts +45 -0
  63. package/src/png-guard.ts +66 -0
  64. package/src/recipe.ts +161 -0
  65. package/src/schema.ts +137 -0
  66. package/src/wasm.d.ts +5 -0
  67. package/src/worker-shim.ts +15 -0
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@gongbaodd/qr-renderer",
3
+ "version": "0.1.0",
4
+ "description": "Generate artistic QR posters from mahu-QR portable recipe JSON.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/gongbaodd/QR_Cool.git",
9
+ "directory": "packages/renderer"
10
+ },
11
+ "files": [
12
+ "src/",
13
+ "dist/node.js",
14
+ "dist/types/",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "type": "module",
19
+ "sideEffects": [
20
+ "./src/worker-shim.ts"
21
+ ],
22
+ "exports": {
23
+ "./node": {
24
+ "types": "./dist/types/node.d.ts",
25
+ "import": "./dist/node.js"
26
+ },
27
+ "./core/artifacts": "./src/core/artifacts.ts",
28
+ "./core/assemble": "./src/core/assemble.ts",
29
+ "./core/errors": "./src/core/errors.ts",
30
+ "./core/export-sizes": "./src/core/export-sizes.ts",
31
+ "./core/image": "./src/core/image.ts",
32
+ "./core/imaging/browser": "./src/core/imaging/browser.ts",
33
+ "./core/imaging/cloudflare": "./src/core/imaging/cloudflare.ts",
34
+ "./core/imaging": "./src/core/imaging/index.ts",
35
+ "./core/imaging/node": "./src/core/imaging/node.ts",
36
+ "./core/imaging/pixels": "./src/core/imaging/pixels.ts",
37
+ "./core/imaging/types": "./src/core/imaging/types.ts",
38
+ "./core/mask": "./src/core/mask.ts",
39
+ "./core/module-cut": "./src/core/module-cut.ts",
40
+ "./core/palette": "./src/core/palette.ts",
41
+ "./core/pattern-cut": "./src/core/pattern-cut.ts",
42
+ "./core/pattern": "./src/core/pattern.ts",
43
+ "./core/placement": "./src/core/placement.ts",
44
+ "./core/qr": "./src/core/qr.ts",
45
+ "./core/rotate": "./src/core/rotate.ts",
46
+ "./core/squircle": "./src/core/squircle.ts",
47
+ "./core/types": "./src/core/types.ts",
48
+ "./engine": "./src/engine/index.ts",
49
+ "./engine/pipeline": "./src/engine/pipeline.ts",
50
+ "./schema": "./src/schema.ts",
51
+ "./png-guard": "./src/png-guard.ts",
52
+ "./recipe": "./src/recipe.ts",
53
+ "./worker-shim": "./src/worker-shim.ts"
54
+ },
55
+ "publishConfig": {
56
+ "access": "public"
57
+ },
58
+ "scripts": {
59
+ "build": "pnpm exec esbuild src/node.ts --bundle --platform=node --format=esm --packages=external --outfile=dist/node.js && tsc -p tsconfig.build.json",
60
+ "prepack": "pnpm build",
61
+ "typecheck": "tsc --noEmit -p tsconfig.json"
62
+ },
63
+ "dependencies": {
64
+ "@jsquash/png": "^3.1.1",
65
+ "@resvg/resvg-wasm": "^2.6.2",
66
+ "@zxing/library": "^0.23.0",
67
+ "jsqr": "^1.4.0",
68
+ "sharp": "^0.35.4",
69
+ "uqr": "^0.1.3",
70
+ "zod": "^4.6.5"
71
+ },
72
+ "devDependencies": {
73
+ "@types/node": "^24.0.0",
74
+ "esbuild": "^0.28.2"
75
+ },
76
+ "engines": {
77
+ "node": ">=22"
78
+ }
79
+ }
@@ -0,0 +1,6 @@
1
+ import type { RegionMask } from './types'
2
+ import { grayscaleToPng } from './image'
3
+
4
+ export function renderRegionMask(mask: RegionMask): Promise<Uint8Array> {
5
+ return grayscaleToPng(mask.data, mask.width, mask.height)
6
+ }