First commit

This commit is contained in:
2026-01-12 13:12:46 +01:00
parent b2d9501f6d
commit a1fbd8acf5
4413 changed files with 1245183 additions and 0 deletions

155
node_modules/swissqrbill/lib/cjs/shared/qr-code.cjs generated vendored Normal file
View File

@@ -0,0 +1,155 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const cleaner = require("./cleaner.cjs");
const qrCodeGenerator = require("./qr-code-generator.cjs");
const validator = require("./validator.cjs");
const utils = require("./utils.cjs");
function generateQRData(data) {
var _a, _b, _c, _d, _e, _f;
const cleanedData = cleaner.cleanData(data);
validator.validateData(cleanedData);
const amount = (_a = cleanedData.amount) == null ? void 0 : _a.toFixed(2);
const reference = utils.getReferenceType(cleanedData.reference);
const qrData = [
"SPC",
// Swiss Payments Code
"0200",
// Version
"1",
// Coding Type UTF-8
(_b = cleanedData.creditor.account) != null ? _b : "",
// IBAN
"S",
// Address Type
cleanedData.creditor.name,
// Name
cleanedData.creditor.address,
// Address
cleanedData.creditor.buildingNumber ? `${cleanedData.creditor.buildingNumber}` : "",
`${cleanedData.creditor.zip}`,
// Zip
cleanedData.creditor.city,
// City
cleanedData.creditor.country,
// Country
"",
// 1x Empty
"",
// 2x Empty
"",
// 3x Empty
"",
// 4x Empty
"",
// 5x Empty
"",
// 6x Empty
"",
// 7x Empty
amount != null ? amount : "",
// Amount
cleanedData.currency,
// Currency
...cleanedData.debtor ? [
"S",
// Address Type
cleanedData.debtor.name,
// Name
cleanedData.debtor.address,
// Address
cleanedData.debtor.buildingNumber ? `${cleanedData.debtor.buildingNumber}` : "",
`${cleanedData.debtor.zip}`,
// Zip
cleanedData.debtor.city,
// City
(_c = cleanedData.debtor.country) != null ? _c : ""
// Country
] : [
"",
// Empty address type
"",
// Empty name
"",
// Empty address
"",
// Empty building number
"",
// Empty zip field
"",
// Empty city field
""
// Empty country
],
reference,
// Reference type
(_d = cleanedData.reference) != null ? _d : "",
// Reference
(_e = cleanedData.message) != null ? _e : "",
// Unstructured message
"EPD",
// End of payment data
(_f = cleanedData.additionalInformation) != null ? _f : "",
// Additional information
...cleanedData.av1 ? [
cleanedData.av1
] : [],
...cleanedData.av2 ? [
cleanedData.av2
] : []
];
return qrData.join("\n");
}
function renderQRCode(data, size, renderBlockFunction) {
const qrData = generateQRData(data);
const eci = qrCodeGenerator.qrcodegen.QrSegment.makeEci(26);
const segments = qrCodeGenerator.qrcodegen.QrSegment.makeSegments(qrData);
const qrCode = qrCodeGenerator.qrcodegen.QrCode.encodeSegments([eci, ...segments], qrCodeGenerator.qrcodegen.QrCode.Ecc.MEDIUM, 10, 25);
const blockSize = size / qrCode.size;
for (let x = 0; x < qrCode.size; x++) {
const xPos = x * blockSize;
for (let y = 0; y < qrCode.size; y++) {
const yPos = y * blockSize;
if (qrCode.getModule(x, y)) {
renderBlockFunction(xPos, yPos, blockSize);
}
}
}
}
function renderSwissCross(size, renderRectFunction) {
const scale = size / utils.mm2pt(46);
const swissCrossWhiteBackgroundSize = utils.mm2pt(7) * scale;
const swissCrossBlackBackgroundSize = utils.mm2pt(6) * scale;
const swissCrossThickness = utils.mm2pt(1.17) * scale;
const swissCrossLength = utils.mm2pt(3.89) * scale;
renderRectFunction(
size / 2 - swissCrossWhiteBackgroundSize / 2,
size / 2 - swissCrossWhiteBackgroundSize / 2,
swissCrossWhiteBackgroundSize,
swissCrossWhiteBackgroundSize,
"white"
);
renderRectFunction(
size / 2 - swissCrossBlackBackgroundSize / 2,
size / 2 - swissCrossBlackBackgroundSize / 2,
swissCrossBlackBackgroundSize,
swissCrossBlackBackgroundSize,
"black"
);
renderRectFunction(
size / 2 - swissCrossLength / 2,
size / 2 - swissCrossThickness / 2,
swissCrossLength,
swissCrossThickness,
"white"
);
renderRectFunction(
size / 2 - swissCrossThickness / 2,
size / 2 - swissCrossLength / 2,
swissCrossThickness,
swissCrossLength,
"white"
);
}
exports.generateQRData = generateQRData;
exports.renderQRCode = renderQRCode;
exports.renderSwissCross = renderSwissCross;