From 537b594e0d6d732aca86c5be1e81c2e93ea81276 Mon Sep 17 00:00:00 2001 From: Yandrik Date: Tue, 19 May 2026 15:32:05 +0200 Subject: [PATCH] feat: INITIAL COMMIT --- .dockerignore | 8 + Dockerfile | 15 ++ README.md | 44 ++++ docker-compose.yml | 12 + docs/assets/code-canvas-generator.png | Bin 0 -> 207281 bytes package.json | 20 ++ public/app.js | 313 ++++++++++++++++++++++++++ public/index.html | 171 ++++++++++++++ public/style.css | 264 ++++++++++++++++++++++ src/input.js | 173 ++++++++++++++ src/render.js | 234 +++++++++++++++++++ src/server.js | 95 ++++++++ src/symbologies.js | 97 ++++++++ 13 files changed, 1446 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 docs/assets/code-canvas-generator.png create mode 100644 package.json create mode 100644 public/app.js create mode 100644 public/index.html create mode 100644 public/style.css create mode 100644 src/input.js create mode 100644 src/render.js create mode 100644 src/server.js create mode 100644 src/symbologies.js diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c4dd1ca --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +node_modules +npm-debug.log +.git +.gitignore +.DS_Store +.env +coverage +*.zip diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4f31f98 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:24-bookworm-slim + +WORKDIR /app +ENV NODE_ENV=production + +COPY package*.json ./ +RUN npm install --omit=dev + +COPY --chown=node:node src ./src +COPY --chown=node:node public ./public + +USER node +EXPOSE 8080 + +CMD ["node", "src/server.js"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..54df6cc --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# Code Canvas Generator + +Self-hosted barcode / QR generator with a browser canvas preview, query-parameter state, PNG download, and copyable image/page URLs. + +![Code Canvas Generator screenshot](docs/assets/code-canvas-generator.png) + +## Run locally + +```bash +npm install +npm start +``` + +Open `http://localhost:8080`. + +## Run with Docker Compose + +```bash +docker compose up --build +``` + +Open `http://localhost:8080`. + +## Main query parameters + +- `type`: bwip-js encoder id, for example `qrcode`, `azteccode`, `datamatrix`, `pdf417`, `code128`, `ean13`, `gs1-128`. +- `input`: `text`, `ascii`, `latin1`, `base64`, `base64url`, `hex`, `binary`, `urlencoded`, or `json`. +- `data`: payload in the selected input format. +- `size`: inner code area in pixels. Default: `256`. +- `margin`: explicit white padding around the code in pixels. Default: `0`. +- `scale`: bwip-js module render scale before final fitting. Default: `4`. +- `rotate`: `N`, `R`, `L`, or `I`. +- `fg`, `bg`: 6-digit hex colors. +- `includetext`: `true` or `false`. + +The final PNG dimensions are `size + 2 * margin` square pixels. + +## Example direct PNG URL + +```text +http://localhost:8080/api/code.png?type=qrcode&input=text&data=https%3A%2F%2Fexample.com&size=256&margin=32&scale=4&rotate=N&fg=000000&bg=ffffff&includetext=false&textalign=center +``` + +![Example QR code](http://127.0.0.1:8080/api/code.png?type=qrcode&input=text&data=https%3A%2F%2Fexample.com%2F%3Fhello%3Dworld&size=256&margin=9&scale=4&rotate=N&fg=000000&bg=ffffff&includetext=false&textalign=center) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..52b9f09 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + code-canvas-generator: + build: . + container_name: code-canvas-generator + ports: + - "8080:8080" + environment: + PORT: "8080" + MAX_DATA_BYTES: "8192" + MAX_CODE_SIZE: "4096" + MAX_MARGIN: "2000" + restart: unless-stopped diff --git a/docs/assets/code-canvas-generator.png b/docs/assets/code-canvas-generator.png new file mode 100644 index 0000000000000000000000000000000000000000..42c8c9273ed639292ef99748c5439afdd9adc897 GIT binary patch literal 207281 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

#K-+R{>i@;Eq4M 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 F{|ipAIA{O> literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..5c63234 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "code-canvas-generator", + "version": "1.0.0", + "private": true, + "description": "Self-hosted canvas barcode and QR code generator with query-parameter share URLs.", + "main": "src/server.js", + "scripts": { + "start": "node src/server.js", + "dev": "node --watch src/server.js", + "check": "node --check src/server.js && node --check src/input.js && node --check src/render.js && node --check src/symbologies.js" + }, + "engines": { + "node": ">=20.9.0" + }, + "dependencies": { + "@bwip-js/node": "^4.10.1", + "express": "^5.2.1", + "sharp": "^0.34.5" + } +} diff --git a/public/app.js b/public/app.js new file mode 100644 index 0000000..bf549ab --- /dev/null +++ b/public/app.js @@ -0,0 +1,313 @@ +'use strict'; + +const els = { + form: document.getElementById('controls'), + type: document.getElementById('type'), + typeList: document.getElementById('type-list'), + input: document.getElementById('input'), + data: document.getElementById('data'), + size: document.getElementById('size'), + margin: document.getElementById('margin'), + scale: document.getElementById('scale'), + rotate: document.getElementById('rotate'), + fg: document.getElementById('fg'), + bg: document.getElementById('bg'), + includetext: document.getElementById('includetext'), + textalign: document.getElementById('textalign'), + heightmm: document.getElementById('heightmm'), + eclevel: document.getElementById('eclevel'), + parsefnc: document.getElementById('parsefnc'), + parse: document.getElementById('parse'), + sample: document.getElementById('sample'), + copyPage: document.getElementById('copy-page'), + copyImage: document.getElementById('copy-image'), + download: document.getElementById('download'), + canvas: document.getElementById('canvas'), + status: document.getElementById('status'), + meta: document.getElementById('meta'), + imageUrl: document.getElementById('image-url') +}; + +const DEFAULTS = { + type: 'qrcode', + input: 'text', + data: 'https://example.com/?hello=world', + size: '256', + margin: '0', + scale: '4', + rotate: 'N', + fg: '#000000', + bg: '#ffffff', + includetext: 'false', + textalign: 'center' +}; + +let renderGeneration = 0; +let popularTypes = []; +let debounceTimer = null; + +main().catch((error) => { + setStatus(`Startup error: ${error.message || error}`, true); +}); + +async function main() { + await loadTypes(); + hydrateFromQuery(); + bindEvents(); + await render(); +} + +async function loadTypes() { + const response = await fetch('/api/types'); + if (!response.ok) { + throw new Error('Could not load supported code types.'); + } + + const payload = await response.json(); + popularTypes = payload.popular || []; + + els.typeList.innerHTML = ''; + for (const item of popularTypes) { + const option = document.createElement('option'); + option.value = item.id; + option.label = `${item.label} · ${item.kind}`; + els.typeList.appendChild(option); + } +} + +function bindEvents() { + els.form.addEventListener('input', scheduleRender); + els.form.addEventListener('change', scheduleRender); + + els.sample.addEventListener('click', async () => { + const type = els.type.value.trim() || DEFAULTS.type; + try { + const response = await fetch(`/api/sample/${encodeURIComponent(type)}`); + const payload = await response.json(); + if (!response.ok) { + throw new Error(payload.error || 'No sample available.'); + } + els.data.value = payload.data; + scheduleRender(); + } catch (error) { + setStatus(error.message || String(error), true); + } + }); + + els.copyPage.addEventListener('click', async () => { + const url = buildPageUrl(); + await copyText(url, 'Page URL copied'); + }); + + els.copyImage.addEventListener('click', async () => { + const url = buildAbsoluteImageUrl(); + await copyText(url, 'Image URL copied'); + }); + + els.download.addEventListener('click', () => { + const filename = filenameForCurrentCode(); + els.canvas.toBlob((blob) => { + if (!blob) { + setStatus('Could not create PNG blob.', true); + return; + } + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = filename; + document.body.appendChild(link); + link.click(); + link.remove(); + URL.revokeObjectURL(url); + setStatus('PNG downloaded'); + }, 'image/png'); + }); +} + +function hydrateFromQuery() { + const params = new URLSearchParams(window.location.search); + + setValue(els.type, params.get('type') || params.get('bcid') || DEFAULTS.type); + setValue(els.input, params.get('input') || params.get('format') || DEFAULTS.input); + setValue(els.data, params.get('data') ?? params.get('text') ?? DEFAULTS.data); + setValue(els.size, params.get('size') || params.get('codeSize') || DEFAULTS.size); + setValue(els.margin, params.get('margin') || DEFAULTS.margin); + setValue(els.scale, params.get('scale') || DEFAULTS.scale); + setValue(els.rotate, params.get('rotate') || DEFAULTS.rotate); + setValue(els.fg, normalizeColorForInput(params.get('fg') || params.get('foreground') || DEFAULTS.fg)); + setValue(els.bg, normalizeColorForInput(params.get('bg') || params.get('background') || DEFAULTS.bg)); + setValue(els.includetext, params.get('includetext') || DEFAULTS.includetext); + setValue(els.textalign, params.get('textalign') || DEFAULTS.textalign); + setValue(els.heightmm, params.get('heightmm') || params.get('height') || ''); + setValue(els.eclevel, params.get('eclevel') || ''); + setValue(els.parsefnc, params.get('parsefnc') || ''); + setValue(els.parse, params.get('parse') || ''); +} + +function setValue(element, value) { + element.value = value; +} + +function normalizeColorForInput(value) { + const stripped = String(value || '').trim().replace(/^#/, ''); + return /^[0-9a-fA-F]{6}$/.test(stripped) ? `#${stripped}` : value; +} + +function scheduleRender() { + window.clearTimeout(debounceTimer); + debounceTimer = window.setTimeout(() => { + render().catch((error) => setStatus(error.message || String(error), true)); + }, 120); +} + +async function render() { + const generation = ++renderGeneration; + const params = buildParams(); + const imagePath = `/api/code.png?${params.toString()}`; + const imageUrl = `${window.location.origin}${imagePath}`; + + els.imageUrl.value = imageUrl; + updateMeta(); + window.history.replaceState(null, '', buildPageUrl()); + setStatus('Rendering…'); + + const response = await fetch(imagePath, { headers: { Accept: 'image/png, application/json' } }); + if (generation !== renderGeneration) { + return; + } + + if (!response.ok) { + const message = await readError(response); + setStatus(message, true); + return; + } + + const blob = await response.blob(); + const image = await blobToImage(blob); + if (generation !== renderGeneration) { + URL.revokeObjectURL(image.src); + return; + } + + drawImageToCanvas(image); + URL.revokeObjectURL(image.src); + setStatus('Ready'); +} + +function buildParams() { + const params = new URLSearchParams(); + + params.set('type', els.type.value.trim() || DEFAULTS.type); + params.set('input', els.input.value || DEFAULTS.input); + params.set('data', els.data.value); + params.set('size', els.size.value || DEFAULTS.size); + params.set('margin', els.margin.value || DEFAULTS.margin); + params.set('scale', els.scale.value || DEFAULTS.scale); + params.set('rotate', els.rotate.value || DEFAULTS.rotate); + params.set('fg', stripHash(els.fg.value || DEFAULTS.fg)); + params.set('bg', stripHash(els.bg.value || DEFAULTS.bg)); + params.set('includetext', els.includetext.value || DEFAULTS.includetext); + params.set('textalign', els.textalign.value || DEFAULTS.textalign); + + setOptional(params, 'heightmm', els.heightmm.value); + setOptional(params, 'eclevel', els.eclevel.value); + setOptional(params, 'parsefnc', els.parsefnc.value); + setOptional(params, 'parse', els.parse.value); + + return params; +} + +function setOptional(params, key, value) { + if (value !== undefined && String(value).trim() !== '') { + params.set(key, String(value).trim()); + } +} + +function buildPageUrl() { + return `${window.location.origin}${window.location.pathname}?${buildParams().toString()}`; +} + +function buildAbsoluteImageUrl() { + return `${window.location.origin}/api/code.png?${buildParams().toString()}`; +} + +function stripHash(color) { + return String(color || '').replace(/^#/, ''); +} + +function updateMeta() { + const size = Math.max(0, Number.parseInt(els.size.value || DEFAULTS.size, 10)); + const margin = Math.max(0, Number.parseInt(els.margin.value || DEFAULTS.margin, 10)); + const output = size + margin * 2; + els.meta.textContent = `Output: ${output} × ${output} px`; +} + +function drawImageToCanvas(image) { + const canvas = els.canvas; + canvas.width = image.naturalWidth; + canvas.height = image.naturalHeight; + + const ctx = canvas.getContext('2d'); + ctx.imageSmoothingEnabled = false; + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.drawImage(image, 0, 0); +} + +function blobToImage(blob) { + return new Promise((resolve, reject) => { + const url = URL.createObjectURL(blob); + const img = new Image(); + img.onload = () => resolve(img); + img.onerror = () => { + URL.revokeObjectURL(url); + reject(new Error('Could not load generated image.')); + }; + img.src = url; + }); +} + +async function readError(response) { + const contentType = response.headers.get('content-type') || ''; + if (contentType.includes('application/json')) { + const payload = await response.json(); + return payload.error || `Render failed with HTTP ${response.status}`; + } + return response.text(); +} + +async function copyText(text, successMessage) { + try { + if (navigator.clipboard && window.isSecureContext) { + await navigator.clipboard.writeText(text); + } else { + fallbackCopy(text); + } + setStatus(successMessage); + } catch (error) { + setStatus(`Copy failed: ${error.message || error}`, true); + } +} + +function fallbackCopy(text) { + const textarea = document.createElement('textarea'); + textarea.value = text; + textarea.setAttribute('readonly', ''); + textarea.style.position = 'fixed'; + textarea.style.top = '-1000px'; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand('copy'); + textarea.remove(); +} + +function filenameForCurrentCode() { + const safeType = (els.type.value || DEFAULTS.type).replace(/[^a-z0-9_-]+/gi, '-').slice(0, 64); + const size = els.size.value || DEFAULTS.size; + const margin = els.margin.value || DEFAULTS.margin; + return `${safeType}-${size}px-m${margin}.png`; +} + +function setStatus(message, error = false) { + els.status.textContent = message; + els.status.dataset.error = error ? 'true' : 'false'; +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..72799e0 --- /dev/null +++ b/public/index.html @@ -0,0 +1,171 @@ + + + + + + Code Canvas Generator + + + + +

+
+
+

Code Canvas Generator

+

Self-hosted barcode and QR generator. All state is encoded as query parameters.

+
+ +
+ + +
+ + + +
+ + + +
+ + + +
+ +
+ + +
+ +
+ Advanced options +
+ + + +
+ +
+ + + +
+
+ +
+ + + + +
+
+
+ +
+
+
+

Live preview

+

Output: 256 × 256 px

+
+ Ready +
+ +
+ +
+ + + +

+ Margin is explicit white padding around the generated symbol. With margin 200 and size 256, the final PNG is 656 × 656 px. +

+
+
+ + diff --git a/public/style.css b/public/style.css new file mode 100644 index 0000000..1719a15 --- /dev/null +++ b/public/style.css @@ -0,0 +1,264 @@ +:root { + color-scheme: light dark; + --bg: #0d1117; + --panel: #161b22; + --panel-2: #0f141b; + --text: #e6edf3; + --muted: #8b949e; + --border: #30363d; + --accent: #58a6ff; + --danger: #ff7b72; + --button: #238636; + --button-hover: #2ea043; + --input: #0d1117; +} + +* { + box-sizing: border-box; +} + +html, +body { + min-height: 100%; +} + +body { + margin: 0; + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + line-height: 1.5; + background: radial-gradient(circle at top left, #1f2a44, var(--bg) 45%); + color: var(--text); +} + +.layout { + display: grid; + grid-template-columns: minmax(340px, 560px) minmax(320px, 1fr); + gap: 24px; + width: min(1440px, 100%); + margin: 0 auto; + padding: 24px; +} + +.panel { + border: 1px solid var(--border); + border-radius: 18px; + background: color-mix(in srgb, var(--panel) 92%, transparent); + box-shadow: 0 24px 80px rgba(0, 0, 0, 0.25); +} + +.controls, +.preview { + padding: 22px; +} + +.header-block h1, +.preview h2 { + margin: 0; + line-height: 1.1; +} + +.header-block p, +.preview p, +.note { + margin: 8px 0 0; + color: var(--muted); +} + +form { + display: grid; + gap: 16px; + margin-top: 20px; +} + +label { + display: grid; + gap: 7px; + font-size: 0.9rem; + color: var(--muted); +} + +input, +select, +textarea, +button { + font: inherit; +} + +input, +select, +textarea { + width: 100%; + border: 1px solid var(--border); + border-radius: 10px; + padding: 10px 11px; + background: var(--input); + color: var(--text); + outline: none; +} + +input:focus, +select:focus, +textarea:focus { + border-color: var(--accent); + box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); +} + +input[type="color"] { + min-height: 42px; + padding: 4px; +} + +textarea { + resize: vertical; + min-height: 120px; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; +} + +.row { + display: grid; + gap: 14px; +} + +.row.two { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.row.three { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +details { + border: 1px solid var(--border); + border-radius: 12px; + padding: 12px; + background: var(--panel-2); +} + +summary { + cursor: pointer; + color: var(--text); +} + +.advanced-grid { + margin-top: 12px; +} + +.actions { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; +} + +button { + border: 1px solid color-mix(in srgb, var(--button) 65%, white); + border-radius: 10px; + padding: 10px 12px; + cursor: pointer; + background: var(--button); + color: white; + font-weight: 650; +} + +button:hover { + background: var(--button-hover); +} + +.preview { + display: grid; + align-content: start; + gap: 18px; +} + +.preview-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; +} + +#status { + display: inline-flex; + align-items: center; + max-width: 50%; + min-height: 32px; + border: 1px solid var(--border); + border-radius: 999px; + padding: 5px 10px; + color: var(--muted); + background: var(--panel-2); + overflow-wrap: anywhere; +} + +#status[data-error="true"] { + color: var(--danger); + border-color: color-mix(in srgb, var(--danger) 45%, var(--border)); +} + +.canvas-shell { + display: grid; + place-items: center; + min-height: 420px; + border: 1px dashed var(--border); + border-radius: 16px; + padding: 24px; + background: + linear-gradient(45deg, rgba(255,255,255,0.035) 25%, transparent 25%), + linear-gradient(-45deg, rgba(255,255,255,0.035) 25%, transparent 25%), + linear-gradient(45deg, transparent 75%, rgba(255,255,255,0.035) 75%), + linear-gradient(-45deg, transparent 75%, rgba(255,255,255,0.035) 75%); + background-size: 20px 20px; + background-position: 0 0, 0 10px, 10px -10px, -10px 0; +} + +canvas { + display: block; + max-width: 100%; + max-height: 70vh; + image-rendering: pixelated; + background: #fff; + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3); +} + +#image-url { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; +} + +.note { + font-size: 0.9rem; +} + +@media (max-width: 980px) { + .layout { + grid-template-columns: 1fr; + } +} + +@media (max-width: 620px) { + .layout { + padding: 12px; + } + + .controls, + .preview { + padding: 16px; + } + + .row.two, + .row.three, + .actions { + grid-template-columns: 1fr; + } + + .preview-header { + display: grid; + } + + #status { + max-width: 100%; + } + + .canvas-shell { + min-height: 300px; + padding: 12px; + } +} diff --git a/src/input.js b/src/input.js new file mode 100644 index 0000000..1b1eea3 --- /dev/null +++ b/src/input.js @@ -0,0 +1,173 @@ +'use strict'; + +const DEFAULT_MAX_BYTES = Number.parseInt(process.env.MAX_DATA_BYTES || '8192', 10); + +function byteLengthUtf8(text) { + return Buffer.byteLength(text, 'utf8'); +} + +function assertMaxBytes(bytes, maxBytes = DEFAULT_MAX_BYTES) { + if (bytes > maxBytes) { + throw new Error(`Input is too large. Max decoded payload is ${maxBytes} bytes.`); + } +} + +function assertAscii(text) { + for (const char of text) { + if (char.codePointAt(0) > 0x7f) { + throw new Error('ASCII input may only contain characters from 0x00 to 0x7F.'); + } + } +} + +function assertLatin1(text) { + for (const char of text) { + if (char.codePointAt(0) > 0xff) { + throw new Error('Latin-1 input may only contain characters from 0x00 to 0xFF.'); + } + } +} + +function strictBase64ToBuffer(raw, urlSafe = false) { + const compact = String(raw || '').replace(/\s+/g, ''); + + if (!compact) { + return Buffer.alloc(0); + } + + const pattern = urlSafe + ? /^[A-Za-z0-9_-]*={0,2}$/ + : /^[A-Za-z0-9+/]*={0,2}$/; + + if (!pattern.test(compact) || compact.length % 4 === 1) { + throw new Error(urlSafe ? 'Invalid Base64URL input.' : 'Invalid Base64 input.'); + } + + const normalized = urlSafe + ? compact.replace(/-/g, '+').replace(/_/g, '/') + : compact; + const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, '='); + + return Buffer.from(padded, 'base64'); +} + +function hexToBuffer(raw) { + const cleaned = String(raw || '') + .replace(/0x/gi, '') + .replace(/[\s:_-]/g, ''); + + if (!cleaned) { + return Buffer.alloc(0); + } + + if (!/^[0-9a-fA-F]+$/.test(cleaned) || cleaned.length % 2 !== 0) { + throw new Error('Hex input must contain an even number of hex digits. Separators are allowed.'); + } + + return Buffer.from(cleaned, 'hex'); +} + +function binaryToBuffer(raw) { + const cleaned = String(raw || '').replace(/[\s:_-]/g, ''); + + if (!cleaned) { + return Buffer.alloc(0); + } + + if (!/^[01]+$/.test(cleaned) || cleaned.length % 8 !== 0) { + throw new Error('Binary input must contain only 0/1 bits and the bit count must be divisible by 8.'); + } + + const bytes = []; + for (let i = 0; i < cleaned.length; i += 8) { + bytes.push(Number.parseInt(cleaned.slice(i, i + 8), 2)); + } + return Buffer.from(bytes); +} + +function decodeInput(rawData, inputFormat = 'text', maxBytes = DEFAULT_MAX_BYTES) { + const format = String(inputFormat || 'text').trim().toLowerCase(); + const data = rawData == null ? '' : String(rawData); + + switch (format) { + case 'text': + case 'utf8': { + assertMaxBytes(byteLengthUtf8(data), maxBytes); + return { text: data, binarytext: false, format }; + } + + case 'ascii': { + assertAscii(data); + assertMaxBytes(Buffer.byteLength(data, 'ascii'), maxBytes); + return { text: data, binarytext: false, format }; + } + + case 'latin1': + case 'binary-string': { + assertLatin1(data); + assertMaxBytes(Buffer.byteLength(data, 'latin1'), maxBytes); + return { text: Buffer.from(data, 'latin1').toString('latin1'), binarytext: true, format: 'latin1' }; + } + + case 'base64': { + const bytes = strictBase64ToBuffer(data, false); + assertMaxBytes(bytes.length, maxBytes); + return { text: bytes.toString('latin1'), binarytext: true, format }; + } + + case 'base64url': { + const bytes = strictBase64ToBuffer(data, true); + assertMaxBytes(bytes.length, maxBytes); + return { text: bytes.toString('latin1'), binarytext: true, format }; + } + + case 'hex': + case 'hexdump': { + const bytes = hexToBuffer(data); + assertMaxBytes(bytes.length, maxBytes); + return { text: bytes.toString('latin1'), binarytext: true, format: 'hex' }; + } + + case 'binary': + case 'bits': { + const bytes = binaryToBuffer(data); + assertMaxBytes(bytes.length, maxBytes); + return { text: bytes.toString('latin1'), binarytext: true, format: 'binary' }; + } + + case 'urlencoded': + case 'url': { + let decoded; + try { + decoded = decodeURIComponent(data.replace(/\+/g, ' ')); + } catch { + throw new Error('Invalid URL-encoded input.'); + } + assertMaxBytes(byteLengthUtf8(decoded), maxBytes); + return { text: decoded, binarytext: false, format: 'urlencoded' }; + } + + case 'json': + case 'json-string': { + let parsed; + try { + parsed = JSON.parse(data); + } catch { + throw new Error('Invalid JSON input. Expected a JSON string or JSON value.'); + } + const text = typeof parsed === 'string' ? parsed : JSON.stringify(parsed); + assertMaxBytes(byteLengthUtf8(text), maxBytes); + return { text, binarytext: false, format: 'json' }; + } + + default: + throw new Error('Unsupported input format. Use text, ascii, latin1, base64, base64url, hex, binary, urlencoded, or json.'); + } +} + +module.exports = { + decodeInput, + strictBase64ToBuffer, + hexToBuffer, + binaryToBuffer +}; diff --git a/src/render.js b/src/render.js new file mode 100644 index 0000000..18f64ca --- /dev/null +++ b/src/render.js @@ -0,0 +1,234 @@ +'use strict'; + +const bwipjs = require('@bwip-js/node'); +const sharp = require('sharp'); +const { decodeInput } = require('./input'); +const { normalizeBcid } = require('./symbologies'); + +const DEFAULT_SIZE = 256; +const DEFAULT_MARGIN = 0; +const DEFAULT_SCALE = 4; +const MAX_SIZE = Number.parseInt(process.env.MAX_CODE_SIZE || '4096', 10); +const MAX_MARGIN = Number.parseInt(process.env.MAX_MARGIN || '2000', 10); +const MAX_OUTPUT_PIXELS = Number.parseInt(process.env.MAX_OUTPUT_PIXELS || '67108864', 10); // 8192 * 8192 + +function asSingle(value) { + return Array.isArray(value) ? value[0] : value; +} + +function parseInteger(query, names, fallback, min, max) { + const keys = Array.isArray(names) ? names : [names]; + const raw = keys.map((key) => asSingle(query[key])).find((value) => value !== undefined && value !== ''); + + if (raw === undefined) { + return fallback; + } + + const value = Number.parseInt(String(raw), 10); + if (!Number.isFinite(value) || String(raw).trim() === '') { + throw new Error(`${keys[0]} must be an integer.`); + } + + if (value < min || value > max) { + throw new Error(`${keys[0]} must be between ${min} and ${max}.`); + } + + return value; +} + +function parseBoolean(query, name, fallback = false) { + const raw = asSingle(query[name]); + if (raw === undefined || raw === '') { + return fallback; + } + + const value = String(raw).trim().toLowerCase(); + if (['1', 'true', 'yes', 'on'].includes(value)) { + return true; + } + if (['0', 'false', 'no', 'off'].includes(value)) { + return false; + } + + throw new Error(`${name} must be true/false or 1/0.`); +} + +function normalizeColor(raw, fallback) { + const value = String(raw || fallback).trim().replace(/^#/, ''); + if (!/^[0-9a-fA-F]{6}$/.test(value)) { + throw new Error('Colors must be 6-digit hex values, for example 000000 or ffffff.'); + } + return value.toLowerCase(); +} + +function cssColor(hex) { + return `#${hex}`; +} + +function normalizeRotate(raw) { + const value = String(raw || 'N').trim().toUpperCase(); + if (!['N', 'R', 'L', 'I'].includes(value)) { + throw new Error('rotate must be one of N, R, L, or I.'); + } + return value; +} + +function normalizeTextAlign(raw) { + const value = String(raw || 'center').trim().toLowerCase(); + if (!['left', 'center', 'right', 'justify'].includes(value)) { + throw new Error('textalign must be left, center, right, or justify.'); + } + return value; +} + +function applyOptionalBwippOptions(query, options) { + const stringOptions = ['eclevel', 'mode', 'version', 'symbolversion', 'primary']; + const numericOptions = ['columns', 'rows', 'layers', 'securitylevel']; + const booleanOptions = ['parse', 'parsefnc', 'guardwhitespace', 'dotty']; + + for (const key of stringOptions) { + const raw = asSingle(query[key]); + if (raw !== undefined && raw !== '') { + options[key] = String(raw).trim(); + } + } + + for (const key of numericOptions) { + const raw = asSingle(query[key]); + if (raw !== undefined && raw !== '') { + const parsed = Number.parseInt(String(raw), 10); + if (!Number.isFinite(parsed)) { + throw new Error(`${key} must be an integer.`); + } + options[key] = parsed; + } + } + + for (const key of booleanOptions) { + const raw = asSingle(query[key]); + if (raw !== undefined && raw !== '') { + options[key] = parseBoolean(query, key, false); + } + } +} + +function normalizeRequest(query) { + const type = normalizeBcid(asSingle(query.type) || asSingle(query.bcid) || 'qrcode'); + const input = String(asSingle(query.input) || asSingle(query.format) || 'text').trim().toLowerCase(); + const data = asSingle(query.data) ?? asSingle(query.text) ?? ''; + const size = parseInteger(query, ['size', 'codeSize'], DEFAULT_SIZE, 16, MAX_SIZE); + const margin = parseInteger(query, 'margin', DEFAULT_MARGIN, 0, MAX_MARGIN); + const scale = parseInteger(query, 'scale', DEFAULT_SCALE, 1, 20); + const rotate = normalizeRotate(asSingle(query.rotate)); + const includetext = parseBoolean(query, 'includetext', false); + const textalign = normalizeTextAlign(asSingle(query.textalign) || asSingle(query.textxalign)); + const fg = normalizeColor(asSingle(query.fg) || asSingle(query.foreground) || asSingle(query.barcolor), '000000'); + const bg = normalizeColor(asSingle(query.bg) || asSingle(query.background) || asSingle(query.backgroundcolor), 'ffffff'); + const heightmmRaw = asSingle(query.heightmm) || asSingle(query.height); + const heightmm = heightmmRaw === undefined || heightmmRaw === '' + ? undefined + : parseInteger(query, ['heightmm', 'height'], 25, 1, 200); + + const outputSize = size + margin * 2; + if (outputSize * outputSize > MAX_OUTPUT_PIXELS) { + throw new Error(`Output image is too large. Current limit is ${MAX_OUTPUT_PIXELS} pixels.`); + } + + return { + type, + input, + data: String(data), + size, + margin, + scale, + rotate, + includetext, + textalign, + fg, + bg, + heightmm, + outputSize + }; +} + +async function trimBarcodeWhitespace(png, background) { + try { + return await sharp(png) + .flatten({ background: cssColor(background) }) + .trim({ background: cssColor(background), threshold: 1 }) + .png({ compressionLevel: 9 }) + .toBuffer(); + } catch { + return png; + } +} + +async function renderCodePng(query) { + const normalized = normalizeRequest(query); + const decoded = decodeInput(normalized.data, normalized.input); + + const bwipOptions = { + bcid: normalized.type, + text: decoded.text, + scale: normalized.scale, + rotate: normalized.rotate, + padding: 0, + backgroundcolor: normalized.bg, + barcolor: normalized.fg, + includetext: normalized.includetext, + textxalign: normalized.textalign + }; + + if (decoded.binarytext) { + bwipOptions.binarytext = true; + } + + if (normalized.heightmm !== undefined) { + bwipOptions.height = normalized.heightmm; + } + + applyOptionalBwippOptions(query, bwipOptions); + + const rawPng = await bwipjs.toBuffer(bwipOptions); + const trimmedPng = await trimBarcodeWhitespace(rawPng, normalized.bg); + + const fittedCode = await sharp(trimmedPng) + .flatten({ background: cssColor(normalized.bg) }) + .resize({ + width: normalized.size, + height: normalized.size, + fit: 'contain', + background: cssColor(normalized.bg), + kernel: sharp.kernel.nearest + }) + .png({ compressionLevel: 9 }) + .toBuffer(); + + const png = normalized.margin === 0 + ? fittedCode + : await sharp({ + create: { + width: normalized.outputSize, + height: normalized.outputSize, + channels: 3, + background: cssColor(normalized.bg) + } + }) + .composite([{ input: fittedCode, left: normalized.margin, top: normalized.margin }]) + .png({ compressionLevel: 9 }) + .toBuffer(); + + return { + png, + normalized, + bwipOptions + }; +} + +module.exports = { + renderCodePng, + normalizeRequest, + parseBoolean, + parseInteger, + normalizeColor +}; diff --git a/src/server.js b/src/server.js new file mode 100644 index 0000000..3dfd55c --- /dev/null +++ b/src/server.js @@ -0,0 +1,95 @@ +'use strict'; + +const path = require('node:path'); +const express = require('express'); +const { renderCodePng } = require('./render'); +const { POPULAR_TYPES, sampleForType } = require('./symbologies'); + +const app = express(); +const port = Number.parseInt(process.env.PORT || '8080', 10); +const publicDir = path.join(__dirname, '..', 'public'); + +app.disable('x-powered-by'); +app.set('query parser', 'simple'); + +app.use((req, res, next) => { + res.setHeader('Content-Security-Policy', [ + "default-src 'self'", + "script-src 'self'", + "style-src 'self'", + "img-src 'self' blob:", + "connect-src 'self'", + "base-uri 'self'", + "form-action 'none'", + "frame-ancestors 'self'" + ].join('; ')); + next(); +}); + +app.use(express.static(publicDir, { + extensions: ['html'], + maxAge: process.env.NODE_ENV === 'production' ? '1h' : 0 +})); + +app.get('/api/types', (req, res) => { + res.json({ + popular: POPULAR_TYPES, + note: 'The UI lists popular barcode ids. The backend also accepts any safe bwip-js encoder id in the type query parameter.' + }); +}); + +app.get('/api/sample/:type', (req, res) => { + try { + res.json({ data: sampleForType(req.params.type) }); + } catch (error) { + res.status(400).json({ error: messageFromError(error) }); + } +}); + +app.get('/api/code.png', async (req, res) => { + try { + const result = await renderCodePng(req.query); + res.setHeader('Content-Type', 'image/png'); + res.setHeader('Cache-Control', 'no-store'); + res.setHeader('X-Code-Type', result.normalized.type); + res.setHeader('X-Code-Size', String(result.normalized.size)); + res.setHeader('X-Code-Margin', String(result.normalized.margin)); + res.setHeader('X-Output-Size', String(result.normalized.outputSize)); + res.send(result.png); + } catch (error) { + const message = messageFromError(error); + res.status(400); + if (acceptsJson(req)) { + res.json({ error: message }); + } else { + res.type('text/plain').send(message); + } + } +}); + +app.get('/healthz', (req, res) => { + res.json({ ok: true }); +}); + +app.use((req, res) => { + res.status(404).type('text/plain').send('Not found'); +}); + +app.listen(port, '0.0.0.0', () => { + console.log(`Code Canvas Generator listening on http://0.0.0.0:${port}`); +}); + +function acceptsJson(req) { + const accept = String(req.headers.accept || ''); + return accept.includes('application/json') || accept.includes('*/*'); +} + +function messageFromError(error) { + if (!error) { + return 'Unknown error'; + } + if (typeof error === 'string') { + return error; + } + return error.message || String(error); +} diff --git a/src/symbologies.js b/src/symbologies.js new file mode 100644 index 0000000..b861217 --- /dev/null +++ b/src/symbologies.js @@ -0,0 +1,97 @@ +'use strict'; + +const POPULAR_TYPES = [ + { id: 'qrcode', label: 'QR Code', kind: '2D', sample: 'https://example.com/?hello=world' }, + { id: 'gs1qrcode', label: 'GS1 QR Code', kind: '2D / GS1', sample: '(01)09501101530003(10)ABC123' }, + { id: 'microqrcode', label: 'Micro QR Code', kind: '2D', sample: 'A12345' }, + { id: 'rectangularmicroqrcode', label: 'Rectangular Micro QR Code', kind: '2D', sample: 'A12345' }, + { id: 'azteccode', label: 'Aztec Code', kind: '2D', sample: 'Aztec payload 123' }, + { id: 'azteccodecompact', label: 'Compact Aztec Code', kind: '2D', sample: 'Compact Aztec 123' }, + { id: 'datamatrix', label: 'Data Matrix', kind: '2D', sample: 'Data Matrix payload 123' }, + { id: 'datamatrixrectangular', label: 'Data Matrix Rectangular', kind: '2D', sample: 'RECT-1234567890' }, + { id: 'gs1datamatrix', label: 'GS1 Data Matrix', kind: '2D / GS1', sample: '(01)09501101530003(17)261231(10)ABC123' }, + { id: 'pdf417', label: 'PDF417', kind: 'Stacked', sample: 'PDF417 payload with more text 1234567890' }, + { id: 'pdf417compact', label: 'Compact PDF417', kind: 'Stacked', sample: 'Compact PDF417 1234567890' }, + { id: 'micropdf417', label: 'MicroPDF417', kind: 'Stacked', sample: 'MicroPDF417 123456' }, + { id: 'maxicode', label: 'MaxiCode', kind: '2D', sample: 'MaxiCode payload 1234567890' }, + { id: 'dotcode', label: 'DotCode', kind: '2D', sample: 'DotCode payload 1234567890' }, + { id: 'hanxin', label: 'Han Xin Code', kind: '2D', sample: 'Han Xin payload 123' }, + { id: 'ultracode', label: 'Ultracode', kind: '2D', sample: 'Ultracode payload 123' }, + { id: 'code128', label: 'Code 128', kind: 'Linear', sample: 'CODE128-1234567890' }, + { id: 'gs1-128', label: 'GS1-128', kind: 'Linear / GS1', sample: '(01)09501101530003(10)ABC123' }, + { id: 'code39', label: 'Code 39', kind: 'Linear', sample: 'CODE39-123' }, + { id: 'code39ext', label: 'Code 39 Extended', kind: 'Linear', sample: 'Code39 extended: abc-123' }, + { id: 'code93', label: 'Code 93', kind: 'Linear', sample: 'CODE93-123' }, + { id: 'code93ext', label: 'Code 93 Extended', kind: 'Linear', sample: 'Code93 extended: abc-123' }, + { id: 'ean13', label: 'EAN-13', kind: 'Retail', sample: '5901234123457' }, + { id: 'ean8', label: 'EAN-8', kind: 'Retail', sample: '96385074' }, + { id: 'upca', label: 'UPC-A', kind: 'Retail', sample: '012345678905' }, + { id: 'upce', label: 'UPC-E', kind: 'Retail', sample: '01234565' }, + { id: 'isbn', label: 'ISBN', kind: 'Retail', sample: '9781565812314' }, + { id: 'itf14', label: 'ITF-14', kind: 'Logistics', sample: '04601234567893' }, + { id: 'interleaved2of5', label: 'Interleaved 2 of 5', kind: 'Linear', sample: '0123456789' }, + { id: 'rationalizedCodabar', label: 'Codabar', kind: 'Linear', sample: 'A0123456789B' }, + { id: 'msi', label: 'MSI Modified Plessey', kind: 'Linear', sample: '0123456789' }, + { id: 'telepen', label: 'Telepen', kind: 'Linear', sample: 'ABC123xyz' }, + { id: 'postnet', label: 'USPS POSTNET', kind: 'Postal', sample: '01234567890' }, + { id: 'planet', label: 'USPS PLANET', kind: 'Postal', sample: '01234567890' }, + { id: 'onecode', label: 'USPS Intelligent Mail', kind: 'Postal', sample: '01234567094987654321-01234567891' }, + { id: 'royalmail', label: 'Royal Mail 4 State', kind: 'Postal', sample: 'LE28HS9Z' } +]; + +const TYPE_ALIASES = Object.freeze({ + qr: 'qrcode', + 'qr-code': 'qrcode', + qrcode: 'qrcode', + aztec: 'azteccode', + 'aztec-code': 'azteccode', + 'compact-aztec': 'azteccodecompact', + datamatrix: 'datamatrix', + 'data-matrix': 'datamatrix', + dm: 'datamatrix', + pdf: 'pdf417', + pdf417: 'pdf417', + 'compact-pdf417': 'pdf417compact', + code128: 'code128', + 'code-128': 'code128', + code39: 'code39', + 'code-39': 'code39', + ean13: 'ean13', + 'ean-13': 'ean13', + ean8: 'ean8', + 'ean-8': 'ean8', + upca: 'upca', + 'upc-a': 'upca', + upce: 'upce', + 'upc-e': 'upce', + itf14: 'itf14', + 'itf-14': 'itf14', + codabar: 'rationalizedCodabar', + intelligentmail: 'onecode', + 'intelligent-mail': 'onecode' +}); + +const SAFE_BCID = /^[A-Za-z0-9_-]{2,64}$/; + +function normalizeBcid(raw) { + const requested = String(raw || 'qrcode').trim(); + const alias = TYPE_ALIASES[requested.toLowerCase()] || requested; + + if (!SAFE_BCID.test(alias)) { + throw new Error('Invalid type. Use a bwip-js encoder id such as qrcode, azteccode, datamatrix, pdf417, code128, or gs1-128.'); + } + + return alias; +} + +function sampleForType(type) { + const normalized = normalizeBcid(type); + return POPULAR_TYPES.find((item) => item.id === normalized)?.sample || 'Hello from Code Canvas'; +} + +module.exports = { + POPULAR_TYPES, + TYPE_ALIASES, + normalizeBcid, + sampleForType +};