New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@nuintun/qrcode

Package Overview
Dependencies
Maintainers
1
Versions
89
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nuintun/qrcode - npm Package Compare versions

Comparing version 0.10.2 to 0.11.0

es5/encoding/UTF16.js

8

es5/encoding/SJIS.js

@@ -44,4 +44,4 @@ "use strict";

var v = (b2 << 8) | b3;
SJIS2UTFTable[k] = v;
UTF2SJISTable[v] = k;
UTF2SJISTable[k] = v;
SJIS2UTFTable[v] = k;
count++;

@@ -71,3 +71,3 @@ }

else {
var byte = exports.SJIS2UTFTable[code];
var byte = exports.UTF2SJISTable[code];
if (byte != null) {

@@ -80,3 +80,3 @@ if ((byte & 0xff) === byte) {

// 2bytes
bytes.push(byte >>> 8);
bytes.push(byte >> 8);
bytes.push(byte & 0xff);

@@ -83,0 +83,0 @@ }

@@ -13,3 +13,3 @@ "use strict";

function decodeNumeric(stream, size) {
var text = '';
var data = '';
var bytes = [];

@@ -28,3 +28,3 @@ var characterCountSize = [10, 12, 14][size];

bytes.push(48 + a, 48 + b, 48 + c);
text += a.toString() + b.toString() + c.toString();
data += a.toString() + b.toString() + c.toString();
length -= 3;

@@ -41,3 +41,3 @@ }

bytes.push(48 + a, 48 + b);
text += a.toString() + b.toString();
data += a.toString() + b.toString();
}

@@ -50,5 +50,5 @@ else if (length === 1) {

bytes.push(48 + num);
text += num.toString();
data += num.toString();
}
return { bytes: bytes, text: text };
return { bytes: bytes, data: data };
}

@@ -64,3 +64,3 @@ // prettier-ignore

function decodeAlphanumeric(stream, size) {
var text = '';
var data = '';
var bytes = [];

@@ -74,3 +74,3 @@ var characterCountSize = [9, 11, 13][size];

bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0), AlphanumericCharacterCodes[b].charCodeAt(0));
text += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];
data += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];
length -= 2;

@@ -81,53 +81,49 @@ }

bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0));
text += AlphanumericCharacterCodes[a];
data += AlphanumericCharacterCodes[a];
}
return { bytes: bytes, text: text };
return { bytes: bytes, data: data };
}
/**
* @function bytesToUTF8
* @param {number[]} bytes
* @returns {string}
* @see https://github.com/google/closure-library/blob/master/closure/goog/crypt/crypt.js
*/
function bytesToUTF8(bytes) {
// TODO(user): Use native implementations if/when available
var pos = 0;
var output = '';
while (pos < bytes.length) {
var c1 = bytes[pos++];
function decodeByte(stream, size) {
var data = '';
var bytes = [];
var characterCountSize = [8, 16, 16][size];
var length = stream.readBits(characterCountSize);
for (var i = 0; i < length; i++) {
var c1 = stream.readBits(8);
bytes.push(c1);
if (c1 < 128) {
output += String.fromCharCode(c1);
data += String.fromCharCode(c1);
}
else if (c1 > 191 && c1 < 224) {
var c2 = bytes[pos++];
output += String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
var c2 = stream.readBits(8);
bytes.push(c2);
data += String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
i++;
}
else if (c1 > 239 && c1 < 365) {
// Surrogate Pair
var c2 = bytes[pos++];
var c3 = bytes[pos++];
var c4 = bytes[pos++];
var c2 = stream.readBits(8);
var c3 = stream.readBits(8);
var c4 = stream.readBits(8);
var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) - 0x10000;
output += String.fromCharCode(0xd800 + (u >> 10));
output += String.fromCharCode(0xdc00 + (u & 1023));
bytes.push(c2, c3, c4);
data += String.fromCharCode(0xd800 + (u >> 10));
data += String.fromCharCode(0xdc00 + (u & 1023));
i += 3;
}
else {
var c2 = bytes[pos++];
var c3 = bytes[pos++];
output += String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
var c2 = stream.readBits(8);
var c3 = stream.readBits(8);
bytes.push(c2, c3);
data += String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 2;
}
}
return output;
return { bytes: bytes, data: data };
}
function decodeByte(stream, size) {
var bytes = [];
var characterCountSize = [8, 16, 16][size];
var length = stream.readBits(characterCountSize);
for (var i = 0; i < length; i++) {
bytes.push(stream.readBits(8));
}
return { bytes: bytes, text: bytesToUTF8(bytes) };
}
function decodeKanji(stream, size) {
var text = '';
var data = '';
var bytes = [];

@@ -146,5 +142,6 @@ var characterCountSize = [8, 10, 12][size];

bytes.push(c >> 8, c & 0xff);
text += String.fromCharCode(SJIS_1.UTF2SJISTable[c]);
var b = SJIS_1.SJIS2UTFTable[c];
data += String.fromCharCode(b != null ? b : c);
}
return { bytes: bytes, text: text };
return { bytes: bytes, data: data };
}

@@ -156,3 +153,3 @@ function decode(data, version, errorCorrectionLevel) {

var size = version <= 9 ? 0 : version <= 26 ? 1 : 2;
var result = { text: '', bytes: [], chunks: [], version: version, errorCorrectionLevel: errorCorrectionLevel };
var result = { data: '', bytes: [], chunks: [], version: version, errorCorrectionLevel: errorCorrectionLevel };
while (stream.available() >= 4) {

@@ -166,3 +163,3 @@ var mode = stream.readBits(4);

result.chunks.push({
type: Mode_1.default.ECI,
mode: Mode_1.default.ECI,
assignmentNumber: stream.readBits(7)

@@ -173,3 +170,3 @@ });

result.chunks.push({
type: Mode_1.default.ECI,
mode: Mode_1.default.ECI,
assignmentNumber: stream.readBits(14)

@@ -180,3 +177,3 @@ });

result.chunks.push({
type: Mode_1.default.ECI,
mode: Mode_1.default.ECI,
assignmentNumber: stream.readBits(21)

@@ -188,3 +185,3 @@ });

result.chunks.push({
type: Mode_1.default.ECI,
mode: Mode_1.default.ECI,
assignmentNumber: -1

@@ -196,6 +193,6 @@ });

var numericResult = decodeNumeric(stream, size);
result.text += numericResult.text;
result.data += numericResult.data;
result.chunks.push({
type: Mode_1.default.Numeric,
text: numericResult.text,
mode: Mode_1.default.Numeric,
data: numericResult.data,
bytes: numericResult.bytes

@@ -207,6 +204,6 @@ });

var alphanumericResult = decodeAlphanumeric(stream, size);
result.text += alphanumericResult.text;
result.data += alphanumericResult.data;
result.chunks.push({
type: Mode_1.default.Alphanumeric,
text: alphanumericResult.text,
mode: Mode_1.default.Alphanumeric,
data: alphanumericResult.data,
bytes: alphanumericResult.bytes

@@ -224,10 +221,10 @@ });

};
result.chunks.push(tslib_1.__assign({ type: Mode_1.default.StructuredAppend }, structuredAppend));
result.chunks.push(tslib_1.__assign({ mode: Mode_1.default.StructuredAppend }, structuredAppend));
}
else if (mode === Mode_1.default.Byte) {
var byteResult = decodeByte(stream, size);
result.text += byteResult.text;
result.data += byteResult.data;
result.chunks.push({
type: Mode_1.default.Byte,
text: byteResult.text,
mode: Mode_1.default.Byte,
data: byteResult.data,
bytes: byteResult.bytes

@@ -239,6 +236,6 @@ });

var kanjiResult = decodeKanji(stream, size);
result.text += kanjiResult.text;
result.data += kanjiResult.data;
result.chunks.push({
type: Mode_1.default.Kanji,
text: kanjiResult.text,
mode: Mode_1.default.Kanji,
data: kanjiResult.data,
bytes: kanjiResult.bytes

@@ -245,0 +242,0 @@ });

@@ -11,2 +11,46 @@ "use strict";

var Mode_1 = require("../common/Mode");
var UTF16_1 = require("../../encoding/UTF16");
function getCode(byte) {
if (0x30 <= byte && byte <= 0x39) {
// 0 - 9
return byte - 0x30;
}
else if (0x41 <= byte && byte <= 0x5a) {
// A - Z
return byte - 0x41 + 10;
}
else {
switch (byte) {
// space
case 0x20:
return 36;
// $
case 0x24:
return 37;
// %
case 0x25:
return 38;
// *
case 0x2a:
return 39;
// +
case 0x2b:
return 40;
// -
case 0x2d:
return 41;
// .
case 0x2e:
return 42;
// /
case 0x2f:
return 43;
// :
case 0x3a:
return 44;
default:
throw "illegal char: " + String.fromCharCode(byte);
}
}
}
var QRAlphanumeric = /** @class */ (function (_super) {

@@ -19,3 +63,5 @@ tslib_1.__extends(QRAlphanumeric, _super);

function QRAlphanumeric(data) {
return _super.call(this, Mode_1.default.Alphanumeric, data) || this;
var _this = _super.call(this, Mode_1.default.Alphanumeric, data) || this;
_this.bytes = UTF16_1.default(data);
return _this;
}

@@ -29,10 +75,10 @@ /**

var i = 0;
var data = this.getData();
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
while (i + 1 < length) {
buffer.put(QRAlphanumeric.getCode(data.charAt(i)) * 45 + QRAlphanumeric.getCode(data.charAt(i + 1)), 11);
buffer.put(getCode(bytes[i]) * 45 + getCode(bytes[i + 1]), 11);
i += 2;
}
if (i < data.length) {
buffer.put(QRAlphanumeric.getCode(data.charAt(i)), 6);
if (i < length) {
buffer.put(getCode(bytes[i]), 6);
}

@@ -46,40 +92,6 @@ };

QRAlphanumeric.prototype.getLength = function () {
return this.getData().length;
return this.bytes.length;
};
QRAlphanumeric.getCode = function (ch) {
if ('0' <= ch && ch <= '9') {
// 0
return ch.charCodeAt(0) - 0x30;
}
else if ('A' <= ch && ch <= 'Z') {
// A
return ch.charCodeAt(0) - 0x41 + 10;
}
else {
switch (ch) {
case ' ':
return 36;
case '$':
return 37;
case '%':
return 38;
case '*':
return 39;
case '+':
return 40;
case '-':
return 41;
case '.':
return 42;
case '/':
return 43;
case ':':
return 44;
default:
throw "illegal char: " + ch;
}
}
};
return QRAlphanumeric;
}(QRData_1.default));
exports.default = QRAlphanumeric;

@@ -19,3 +19,5 @@ "use strict";

function QRByte(data) {
return _super.call(this, Mode_1.default.Byte, data) || this;
var _this = _super.call(this, Mode_1.default.Byte, data) || this;
_this.bytes = UTF8_1.default(data);
return _this;
}

@@ -28,6 +30,6 @@ /**

QRByte.prototype.write = function (buffer) {
var data = UTF8_1.default(this.getData());
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
for (var i = 0; i < length; i++) {
buffer.put(data[i], 8);
buffer.put(bytes[i], 8);
}

@@ -41,3 +43,3 @@ };

QRByte.prototype.getLength = function () {
return UTF8_1.default(this.getData()).length;
return this.bytes.length;
};

@@ -44,0 +46,0 @@ return QRByte;

@@ -17,5 +17,2 @@ "use strict";

};
QRData.prototype.getData = function () {
return this.data;
};
QRData.prototype.getLengthInBits = function (version) {

@@ -22,0 +19,0 @@ var mode = this.mode;

@@ -13,4 +13,8 @@ "use strict";

var SJIS_1 = require("../../encoding/SJIS");
function createCharError(index, data) {
return "illegal char: " + String.fromCharCode(data[index]);
function createCharError(bytes, index) {
var byte = bytes[index];
if (0xa0 <= byte && byte <= 0xdf) {
byte += 0xfec0;
}
return "illegal char: " + String.fromCharCode(byte);
}

@@ -24,3 +28,5 @@ var QRKanji = /** @class */ (function (_super) {

function QRKanji(data) {
return _super.call(this, Mode_1.default.Kanji, data) || this;
var _this = _super.call(this, Mode_1.default.Kanji, data) || this;
_this.bytes = SJIS_1.default(data);
return _this;
}

@@ -34,6 +40,6 @@ /**

var index = 0;
var data = SJIS_1.default(this.getData());
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
while (index + 1 < length) {
var code = ((0xff & data[index]) << 8) | (0xff & data[index + 1]);
var code = ((0xff & bytes[index]) << 8) | (0xff & bytes[index + 1]);
if (0x8140 <= code && code <= 0x9ffc) {

@@ -46,10 +52,10 @@ code -= 0x8140;

else {
throw createCharError(index, data);
throw createCharError(bytes, index);
}
code = ((code >>> 8) & 0xff) * 0xc0 + (code & 0xff);
code = ((code >> 8) & 0xff) * 0xc0 + (code & 0xff);
buffer.put(code, 13);
index += 2;
}
if (index < data.length) {
throw createCharError(index, data);
if (index < length) {
throw createCharError(bytes, index);
}

@@ -63,3 +69,3 @@ };

QRKanji.prototype.getLength = function () {
return SJIS_1.default(this.getData()).length / 2;
return Math.floor(this.bytes.length / 2);
};

@@ -66,0 +72,0 @@ return QRKanji;

@@ -11,2 +11,18 @@ "use strict";

var Mode_1 = require("../common/Mode");
var UTF16_1 = require("../../encoding/UTF16");
function getCode(byte) {
// 0 - 9
if (0x30 <= byte && byte <= 0x39) {
return byte - 0x30;
}
throw "illegal char: " + String.fromCharCode(byte);
}
function getBatchCode(bytes) {
var num = 0;
var length = bytes.length;
for (var i = 0; i < length; i++) {
num = num * 10 + getCode(bytes[i]);
}
return num;
}
var QRNumeric = /** @class */ (function (_super) {

@@ -19,3 +35,5 @@ tslib_1.__extends(QRNumeric, _super);

function QRNumeric(data) {
return _super.call(this, Mode_1.default.Numeric, data) || this;
var _this = _super.call(this, Mode_1.default.Numeric, data) || this;
_this.bytes = UTF16_1.default(data);
return _this;
}

@@ -29,6 +47,6 @@ /**

var i = 0;
var data = this.getData();
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
while (i + 2 < length) {
buffer.put(QRNumeric.strToNum(data.substring(i, i + 3)), 10);
buffer.put(getBatchCode([bytes[i], bytes[i + 1], bytes[i + 2]]), 10);
i += 3;

@@ -38,6 +56,6 @@ }

if (length - i === 1) {
buffer.put(QRNumeric.strToNum(data.substring(i, i + 1)), 4);
buffer.put(getBatchCode([bytes[i]]), 4);
}
else if (length - i === 2) {
buffer.put(QRNumeric.strToNum(data.substring(i, i + 2)), 7);
buffer.put(getBatchCode([bytes[i], bytes[i + 1]]), 7);
}

@@ -52,21 +70,6 @@ }

QRNumeric.prototype.getLength = function () {
return this.getData().length;
return this.bytes.length;
};
QRNumeric.strToNum = function (str) {
var num = 0;
var length = str.length;
for (var i = 0; i < length; i++) {
num = num * 10 + QRNumeric.charToNum(str.charAt(i));
}
return num;
};
QRNumeric.charToNum = function (ch) {
if ('0' <= ch && ch <= '9') {
// 0
return ch.charCodeAt(0) - 0x30;
}
throw "illegal char: " + ch;
};
return QRNumeric;
}(QRData_1.default));
exports.default = QRNumeric;

@@ -42,4 +42,4 @@ /**

var v = (b2 << 8) | b3;
SJIS2UTFTable[k] = v;
UTF2SJISTable[v] = k;
UTF2SJISTable[k] = v;
SJIS2UTFTable[v] = k;
count++;

@@ -69,3 +69,3 @@ }

else {
var byte = SJIS2UTFTable[code];
var byte = UTF2SJISTable[code];
if (byte != null) {

@@ -78,3 +78,3 @@ if ((byte & 0xff) === byte) {

// 2bytes
bytes.push(byte >>> 8);
bytes.push(byte >> 8);
bytes.push(byte & 0xff);

@@ -81,0 +81,0 @@ }

@@ -9,5 +9,5 @@ /**

import Mode from '../../../common/Mode';
import { UTF2SJISTable } from '../../../../encoding/SJIS';
import { SJIS2UTFTable } from '../../../../encoding/SJIS';
function decodeNumeric(stream, size) {
var text = '';
var data = '';
var bytes = [];

@@ -26,3 +26,3 @@ var characterCountSize = [10, 12, 14][size];

bytes.push(48 + a, 48 + b, 48 + c);
text += a.toString() + b.toString() + c.toString();
data += a.toString() + b.toString() + c.toString();
length -= 3;

@@ -39,3 +39,3 @@ }

bytes.push(48 + a, 48 + b);
text += a.toString() + b.toString();
data += a.toString() + b.toString();
}

@@ -48,5 +48,5 @@ else if (length === 1) {

bytes.push(48 + num);
text += num.toString();
data += num.toString();
}
return { bytes: bytes, text: text };
return { bytes: bytes, data: data };
}

@@ -62,3 +62,3 @@ // prettier-ignore

function decodeAlphanumeric(stream, size) {
var text = '';
var data = '';
var bytes = [];

@@ -72,3 +72,3 @@ var characterCountSize = [9, 11, 13][size];

bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0), AlphanumericCharacterCodes[b].charCodeAt(0));
text += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];
data += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];
length -= 2;

@@ -79,53 +79,49 @@ }

bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0));
text += AlphanumericCharacterCodes[a];
data += AlphanumericCharacterCodes[a];
}
return { bytes: bytes, text: text };
return { bytes: bytes, data: data };
}
/**
* @function bytesToUTF8
* @param {number[]} bytes
* @returns {string}
* @see https://github.com/google/closure-library/blob/master/closure/goog/crypt/crypt.js
*/
function bytesToUTF8(bytes) {
// TODO(user): Use native implementations if/when available
var pos = 0;
var output = '';
while (pos < bytes.length) {
var c1 = bytes[pos++];
function decodeByte(stream, size) {
var data = '';
var bytes = [];
var characterCountSize = [8, 16, 16][size];
var length = stream.readBits(characterCountSize);
for (var i = 0; i < length; i++) {
var c1 = stream.readBits(8);
bytes.push(c1);
if (c1 < 128) {
output += String.fromCharCode(c1);
data += String.fromCharCode(c1);
}
else if (c1 > 191 && c1 < 224) {
var c2 = bytes[pos++];
output += String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
var c2 = stream.readBits(8);
bytes.push(c2);
data += String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
i++;
}
else if (c1 > 239 && c1 < 365) {
// Surrogate Pair
var c2 = bytes[pos++];
var c3 = bytes[pos++];
var c4 = bytes[pos++];
var c2 = stream.readBits(8);
var c3 = stream.readBits(8);
var c4 = stream.readBits(8);
var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) - 0x10000;
output += String.fromCharCode(0xd800 + (u >> 10));
output += String.fromCharCode(0xdc00 + (u & 1023));
bytes.push(c2, c3, c4);
data += String.fromCharCode(0xd800 + (u >> 10));
data += String.fromCharCode(0xdc00 + (u & 1023));
i += 3;
}
else {
var c2 = bytes[pos++];
var c3 = bytes[pos++];
output += String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
var c2 = stream.readBits(8);
var c3 = stream.readBits(8);
bytes.push(c2, c3);
data += String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 2;
}
}
return output;
return { bytes: bytes, data: data };
}
function decodeByte(stream, size) {
var bytes = [];
var characterCountSize = [8, 16, 16][size];
var length = stream.readBits(characterCountSize);
for (var i = 0; i < length; i++) {
bytes.push(stream.readBits(8));
}
return { bytes: bytes, text: bytesToUTF8(bytes) };
}
function decodeKanji(stream, size) {
var text = '';
var data = '';
var bytes = [];

@@ -144,5 +140,6 @@ var characterCountSize = [8, 10, 12][size];

bytes.push(c >> 8, c & 0xff);
text += String.fromCharCode(UTF2SJISTable[c]);
var b = SJIS2UTFTable[c];
data += String.fromCharCode(b != null ? b : c);
}
return { bytes: bytes, text: text };
return { bytes: bytes, data: data };
}

@@ -154,3 +151,3 @@ export function decode(data, version, errorCorrectionLevel) {

var size = version <= 9 ? 0 : version <= 26 ? 1 : 2;
var result = { text: '', bytes: [], chunks: [], version: version, errorCorrectionLevel: errorCorrectionLevel };
var result = { data: '', bytes: [], chunks: [], version: version, errorCorrectionLevel: errorCorrectionLevel };
while (stream.available() >= 4) {

@@ -164,3 +161,3 @@ var mode = stream.readBits(4);

result.chunks.push({
type: Mode.ECI,
mode: Mode.ECI,
assignmentNumber: stream.readBits(7)

@@ -171,3 +168,3 @@ });

result.chunks.push({
type: Mode.ECI,
mode: Mode.ECI,
assignmentNumber: stream.readBits(14)

@@ -178,3 +175,3 @@ });

result.chunks.push({
type: Mode.ECI,
mode: Mode.ECI,
assignmentNumber: stream.readBits(21)

@@ -186,3 +183,3 @@ });

result.chunks.push({
type: Mode.ECI,
mode: Mode.ECI,
assignmentNumber: -1

@@ -194,6 +191,6 @@ });

var numericResult = decodeNumeric(stream, size);
result.text += numericResult.text;
result.data += numericResult.data;
result.chunks.push({
type: Mode.Numeric,
text: numericResult.text,
mode: Mode.Numeric,
data: numericResult.data,
bytes: numericResult.bytes

@@ -205,6 +202,6 @@ });

var alphanumericResult = decodeAlphanumeric(stream, size);
result.text += alphanumericResult.text;
result.data += alphanumericResult.data;
result.chunks.push({
type: Mode.Alphanumeric,
text: alphanumericResult.text,
mode: Mode.Alphanumeric,
data: alphanumericResult.data,
bytes: alphanumericResult.bytes

@@ -222,10 +219,10 @@ });

};
result.chunks.push(tslib_1.__assign({ type: Mode.StructuredAppend }, structuredAppend));
result.chunks.push(tslib_1.__assign({ mode: Mode.StructuredAppend }, structuredAppend));
}
else if (mode === Mode.Byte) {
var byteResult = decodeByte(stream, size);
result.text += byteResult.text;
result.data += byteResult.data;
result.chunks.push({
type: Mode.Byte,
text: byteResult.text,
mode: Mode.Byte,
data: byteResult.data,
bytes: byteResult.bytes

@@ -237,6 +234,6 @@ });

var kanjiResult = decodeKanji(stream, size);
result.text += kanjiResult.text;
result.data += kanjiResult.data;
result.chunks.push({
type: Mode.Kanji,
text: kanjiResult.text,
mode: Mode.Kanji,
data: kanjiResult.data,
bytes: kanjiResult.bytes

@@ -243,0 +240,0 @@ });

@@ -9,2 +9,46 @@ /**

import Mode from '../common/Mode';
import { default as stringToBytes } from '../../encoding/UTF16';
function getCode(byte) {
if (0x30 <= byte && byte <= 0x39) {
// 0 - 9
return byte - 0x30;
}
else if (0x41 <= byte && byte <= 0x5a) {
// A - Z
return byte - 0x41 + 10;
}
else {
switch (byte) {
// space
case 0x20:
return 36;
// $
case 0x24:
return 37;
// %
case 0x25:
return 38;
// *
case 0x2a:
return 39;
// +
case 0x2b:
return 40;
// -
case 0x2d:
return 41;
// .
case 0x2e:
return 42;
// /
case 0x2f:
return 43;
// :
case 0x3a:
return 44;
default:
throw "illegal char: " + String.fromCharCode(byte);
}
}
}
var QRAlphanumeric = /** @class */ (function (_super) {

@@ -17,3 +61,5 @@ tslib_1.__extends(QRAlphanumeric, _super);

function QRAlphanumeric(data) {
return _super.call(this, Mode.Alphanumeric, data) || this;
var _this = _super.call(this, Mode.Alphanumeric, data) || this;
_this.bytes = stringToBytes(data);
return _this;
}

@@ -27,10 +73,10 @@ /**

var i = 0;
var data = this.getData();
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
while (i + 1 < length) {
buffer.put(QRAlphanumeric.getCode(data.charAt(i)) * 45 + QRAlphanumeric.getCode(data.charAt(i + 1)), 11);
buffer.put(getCode(bytes[i]) * 45 + getCode(bytes[i + 1]), 11);
i += 2;
}
if (i < data.length) {
buffer.put(QRAlphanumeric.getCode(data.charAt(i)), 6);
if (i < length) {
buffer.put(getCode(bytes[i]), 6);
}

@@ -44,40 +90,6 @@ };

QRAlphanumeric.prototype.getLength = function () {
return this.getData().length;
return this.bytes.length;
};
QRAlphanumeric.getCode = function (ch) {
if ('0' <= ch && ch <= '9') {
// 0
return ch.charCodeAt(0) - 0x30;
}
else if ('A' <= ch && ch <= 'Z') {
// A
return ch.charCodeAt(0) - 0x41 + 10;
}
else {
switch (ch) {
case ' ':
return 36;
case '$':
return 37;
case '%':
return 38;
case '*':
return 39;
case '+':
return 40;
case '-':
return 41;
case '.':
return 42;
case '/':
return 43;
case ':':
return 44;
default:
throw "illegal char: " + ch;
}
}
};
return QRAlphanumeric;
}(QRData));
export default QRAlphanumeric;

@@ -17,3 +17,5 @@ /**

function QRByte(data) {
return _super.call(this, Mode.Byte, data) || this;
var _this = _super.call(this, Mode.Byte, data) || this;
_this.bytes = stringToBytes(data);
return _this;
}

@@ -26,6 +28,6 @@ /**

QRByte.prototype.write = function (buffer) {
var data = stringToBytes(this.getData());
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
for (var i = 0; i < length; i++) {
buffer.put(data[i], 8);
buffer.put(bytes[i], 8);
}

@@ -39,3 +41,3 @@ };

QRByte.prototype.getLength = function () {
return stringToBytes(this.getData()).length;
return this.bytes.length;
};

@@ -42,0 +44,0 @@ return QRByte;

@@ -15,5 +15,2 @@ /**

};
QRData.prototype.getData = function () {
return this.data;
};
QRData.prototype.getLengthInBits = function (version) {

@@ -20,0 +17,0 @@ var mode = this.mode;

@@ -11,4 +11,8 @@ /**

import stringToBytes from '../../encoding/SJIS';
function createCharError(index, data) {
return "illegal char: " + String.fromCharCode(data[index]);
function createCharError(bytes, index) {
var byte = bytes[index];
if (0xa0 <= byte && byte <= 0xdf) {
byte += 0xfec0;
}
return "illegal char: " + String.fromCharCode(byte);
}

@@ -22,3 +26,5 @@ var QRKanji = /** @class */ (function (_super) {

function QRKanji(data) {
return _super.call(this, Mode.Kanji, data) || this;
var _this = _super.call(this, Mode.Kanji, data) || this;
_this.bytes = stringToBytes(data);
return _this;
}

@@ -32,6 +38,6 @@ /**

var index = 0;
var data = stringToBytes(this.getData());
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
while (index + 1 < length) {
var code = ((0xff & data[index]) << 8) | (0xff & data[index + 1]);
var code = ((0xff & bytes[index]) << 8) | (0xff & bytes[index + 1]);
if (0x8140 <= code && code <= 0x9ffc) {

@@ -44,10 +50,10 @@ code -= 0x8140;

else {
throw createCharError(index, data);
throw createCharError(bytes, index);
}
code = ((code >>> 8) & 0xff) * 0xc0 + (code & 0xff);
code = ((code >> 8) & 0xff) * 0xc0 + (code & 0xff);
buffer.put(code, 13);
index += 2;
}
if (index < data.length) {
throw createCharError(index, data);
if (index < length) {
throw createCharError(bytes, index);
}

@@ -61,3 +67,3 @@ };

QRKanji.prototype.getLength = function () {
return stringToBytes(this.getData()).length / 2;
return Math.floor(this.bytes.length / 2);
};

@@ -64,0 +70,0 @@ return QRKanji;

@@ -9,2 +9,18 @@ /**

import Mode from '../common/Mode';
import { default as stringToBytes } from '../../encoding/UTF16';
function getCode(byte) {
// 0 - 9
if (0x30 <= byte && byte <= 0x39) {
return byte - 0x30;
}
throw "illegal char: " + String.fromCharCode(byte);
}
function getBatchCode(bytes) {
var num = 0;
var length = bytes.length;
for (var i = 0; i < length; i++) {
num = num * 10 + getCode(bytes[i]);
}
return num;
}
var QRNumeric = /** @class */ (function (_super) {

@@ -17,3 +33,5 @@ tslib_1.__extends(QRNumeric, _super);

function QRNumeric(data) {
return _super.call(this, Mode.Numeric, data) || this;
var _this = _super.call(this, Mode.Numeric, data) || this;
_this.bytes = stringToBytes(data);
return _this;
}

@@ -27,6 +45,6 @@ /**

var i = 0;
var data = this.getData();
var length = data.length;
var bytes = this.bytes;
var length = bytes.length;
while (i + 2 < length) {
buffer.put(QRNumeric.strToNum(data.substring(i, i + 3)), 10);
buffer.put(getBatchCode([bytes[i], bytes[i + 1], bytes[i + 2]]), 10);
i += 3;

@@ -36,6 +54,6 @@ }

if (length - i === 1) {
buffer.put(QRNumeric.strToNum(data.substring(i, i + 1)), 4);
buffer.put(getBatchCode([bytes[i]]), 4);
}
else if (length - i === 2) {
buffer.put(QRNumeric.strToNum(data.substring(i, i + 2)), 7);
buffer.put(getBatchCode([bytes[i], bytes[i + 1]]), 7);
}

@@ -50,21 +68,6 @@ }

QRNumeric.prototype.getLength = function () {
return this.getData().length;
return this.bytes.length;
};
QRNumeric.strToNum = function (str) {
var num = 0;
var length = str.length;
for (var i = 0; i < length; i++) {
num = num * 10 + QRNumeric.charToNum(str.charAt(i));
}
return num;
};
QRNumeric.charToNum = function (ch) {
if ('0' <= ch && ch <= '9') {
// 0
return ch.charCodeAt(0) - 0x30;
}
throw "illegal char: " + ch;
};
return QRNumeric;
}(QRData));
export default QRNumeric;
{
"name": "@nuintun/qrcode",
"version": "0.10.2",
"version": "0.11.0",
"description": "QRCode encode and decode library.",

@@ -5,0 +5,0 @@ "main": "es5/index.js",

@@ -9,8 +9,8 @@ /**

interface ByteChunk {
type: Mode.Numeric | Mode.Alphanumeric | Mode.Byte | Mode.Kanji;
text: string;
mode: Mode.Numeric | Mode.Alphanumeric | Mode.Byte | Mode.Kanji;
data: string;
bytes: number[];
}
interface ECIChunk {
type: Mode.ECI;
mode: Mode.ECI;
assignmentNumber: number;

@@ -24,6 +24,6 @@ }

interface StructuredAppendChunk extends StructuredAppend {
type: Mode.StructuredAppend;
mode: Mode.StructuredAppend;
}
interface DecodeData {
text: string;
data: string;
bytes: number[];

@@ -30,0 +30,0 @@ }

@@ -26,3 +26,2 @@ /**

getLength(): number;
private static getCode;
}

@@ -9,7 +9,7 @@ /**

export default abstract class QRData {
private mode;
private data;
protected mode: Mode;
protected data: string;
protected bytes: number[];
constructor(mode: Mode, data: string);
getMode(): Mode;
getData(): string;
abstract getLength(): number;

@@ -16,0 +16,0 @@ abstract write(buffer: BitBuffer): void;

@@ -26,4 +26,2 @@ /**

getLength(): number;
private static strToNum;
private static charToNum;
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc