summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js')
-rw-r--r--deps/node/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js462
1 files changed, 0 insertions, 462 deletions
diff --git a/deps/node/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js b/deps/node/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js
deleted file mode 100644
index 0fb6c393..00000000
--- a/deps/node/deps/npm/node_modules/qrcode-terminal/vendor/QRCode/index.js
+++ /dev/null
@@ -1,462 +0,0 @@
-//---------------------------------------------------------------------
-// QRCode for JavaScript
-//
-// Copyright (c) 2009 Kazuhiko Arase
-//
-// URL: http://www.d-project.com/
-//
-// Licensed under the MIT license:
-// http://www.opensource.org/licenses/mit-license.php
-//
-// The word "QR Code" is registered trademark of
-// DENSO WAVE INCORPORATED
-// http://www.denso-wave.com/qrcode/faqpatent-e.html
-//
-//---------------------------------------------------------------------
-// Modified to work in node for this project (and some refactoring)
-//---------------------------------------------------------------------
-
-var QR8bitByte = require('./QR8bitByte');
-var QRUtil = require('./QRUtil');
-var QRPolynomial = require('./QRPolynomial');
-var QRRSBlock = require('./QRRSBlock');
-var QRBitBuffer = require('./QRBitBuffer');
-
-function QRCode(typeNumber, errorCorrectLevel) {
- this.typeNumber = typeNumber;
- this.errorCorrectLevel = errorCorrectLevel;
- this.modules = null;
- this.moduleCount = 0;
- this.dataCache = null;
- this.dataList = [];
-}
-
-QRCode.prototype = {
-
- addData : function(data) {
- var newData = new QR8bitByte(data);
- this.dataList.push(newData);
- this.dataCache = null;
- },
-
- isDark : function(row, col) {
- if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {
- throw new Error(row + "," + col);
- }
- return this.modules[row][col];
- },
-
- getModuleCount : function() {
- return this.moduleCount;
- },
-
- make : function() {
- // Calculate automatically typeNumber if provided is < 1
- if (this.typeNumber < 1 ){
- var typeNumber = 1;
- for (typeNumber = 1; typeNumber < 40; typeNumber++) {
- var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);
-
- var buffer = new QRBitBuffer();
- var totalDataCount = 0;
- for (var i = 0; i < rsBlocks.length; i++) {
- totalDataCount += rsBlocks[i].dataCount;
- }
-
- for (var x = 0; x < this.dataList.length; x++) {
- var data = this.dataList[x];
- buffer.put(data.mode, 4);
- buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );
- data.write(buffer);
- }
- if (buffer.getLengthInBits() <= totalDataCount * 8)
- break;
- }
- this.typeNumber = typeNumber;
- }
- this.makeImpl(false, this.getBestMaskPattern() );
- },
-
- makeImpl : function(test, maskPattern) {
-
- this.moduleCount = this.typeNumber * 4 + 17;
- this.modules = new Array(this.moduleCount);
-
- for (var row = 0; row < this.moduleCount; row++) {
-
- this.modules[row] = new Array(this.moduleCount);
-
- for (var col = 0; col < this.moduleCount; col++) {
- this.modules[row][col] = null;//(col + row) % 3;
- }
- }
-
- this.setupPositionProbePattern(0, 0);
- this.setupPositionProbePattern(this.moduleCount - 7, 0);
- this.setupPositionProbePattern(0, this.moduleCount - 7);
- this.setupPositionAdjustPattern();
- this.setupTimingPattern();
- this.setupTypeInfo(test, maskPattern);
-
- if (this.typeNumber >= 7) {
- this.setupTypeNumber(test);
- }
-
- if (this.dataCache === null) {
- this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
- }
-
- this.mapData(this.dataCache, maskPattern);
- },
-
- setupPositionProbePattern : function(row, col) {
-
- for (var r = -1; r <= 7; r++) {
-
- if (row + r <= -1 || this.moduleCount <= row + r) continue;
-
- for (var c = -1; c <= 7; c++) {
-
- if (col + c <= -1 || this.moduleCount <= col + c) continue;
-
- if ( (0 <= r && r <= 6 && (c === 0 || c === 6) ) ||
- (0 <= c && c <= 6 && (r === 0 || r === 6) ) ||
- (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {
- this.modules[row + r][col + c] = true;
- } else {
- this.modules[row + r][col + c] = false;
- }
- }
- }
- },
-
- getBestMaskPattern : function() {
-
- var minLostPoint = 0;
- var pattern = 0;
-
- for (var i = 0; i < 8; i++) {
-
- this.makeImpl(true, i);
-
- var lostPoint = QRUtil.getLostPoint(this);
-
- if (i === 0 || minLostPoint > lostPoint) {
- minLostPoint = lostPoint;
- pattern = i;
- }
- }
-
- return pattern;
- },
-
- createMovieClip : function(target_mc, instance_name, depth) {
-
- var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
- var cs = 1;
-
- this.make();
-
- for (var row = 0; row < this.modules.length; row++) {
-
- var y = row * cs;
-
- for (var col = 0; col < this.modules[row].length; col++) {
-
- var x = col * cs;
- var dark = this.modules[row][col];
-
- if (dark) {
- qr_mc.beginFill(0, 100);
- qr_mc.moveTo(x, y);
- qr_mc.lineTo(x + cs, y);
- qr_mc.lineTo(x + cs, y + cs);
- qr_mc.lineTo(x, y + cs);
- qr_mc.endFill();
- }
- }
- }
-
- return qr_mc;
- },
-
- setupTimingPattern : function() {
-
- for (var r = 8; r < this.moduleCount - 8; r++) {
- if (this.modules[r][6] !== null) {
- continue;
- }
- this.modules[r][6] = (r % 2 === 0);
- }
-
- for (var c = 8; c < this.moduleCount - 8; c++) {
- if (this.modules[6][c] !== null) {
- continue;
- }
- this.modules[6][c] = (c % 2 === 0);
- }
- },
-
- setupPositionAdjustPattern : function() {
-
- var pos = QRUtil.getPatternPosition(this.typeNumber);
-
- for (var i = 0; i < pos.length; i++) {
-
- for (var j = 0; j < pos.length; j++) {
-
- var row = pos[i];
- var col = pos[j];
-
- if (this.modules[row][col] !== null) {
- continue;
- }
-
- for (var r = -2; r <= 2; r++) {
-
- for (var c = -2; c <= 2; c++) {
-
- if (Math.abs(r) === 2 ||
- Math.abs(c) === 2 ||
- (r === 0 && c === 0) ) {
- this.modules[row + r][col + c] = true;
- } else {
- this.modules[row + r][col + c] = false;
- }
- }
- }
- }
- }
- },
-
- setupTypeNumber : function(test) {
-
- var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
- var mod;
-
- for (var i = 0; i < 18; i++) {
- mod = (!test && ( (bits >> i) & 1) === 1);
- this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
- }
-
- for (var x = 0; x < 18; x++) {
- mod = (!test && ( (bits >> x) & 1) === 1);
- this.modules[x % 3 + this.moduleCount - 8 - 3][Math.floor(x / 3)] = mod;
- }
- },
-
- setupTypeInfo : function(test, maskPattern) {
-
- var data = (this.errorCorrectLevel << 3) | maskPattern;
- var bits = QRUtil.getBCHTypeInfo(data);
- var mod;
-
- // vertical
- for (var v = 0; v < 15; v++) {
-
- mod = (!test && ( (bits >> v) & 1) === 1);
-
- if (v < 6) {
- this.modules[v][8] = mod;
- } else if (v < 8) {
- this.modules[v + 1][8] = mod;
- } else {
- this.modules[this.moduleCount - 15 + v][8] = mod;
- }
- }
-
- // horizontal
- for (var h = 0; h < 15; h++) {
-
- mod = (!test && ( (bits >> h) & 1) === 1);
-
- if (h < 8) {
- this.modules[8][this.moduleCount - h - 1] = mod;
- } else if (h < 9) {
- this.modules[8][15 - h - 1 + 1] = mod;
- } else {
- this.modules[8][15 - h - 1] = mod;
- }
- }
-
- // fixed module
- this.modules[this.moduleCount - 8][8] = (!test);
-
- },
-
- mapData : function(data, maskPattern) {
-
- var inc = -1;
- var row = this.moduleCount - 1;
- var bitIndex = 7;
- var byteIndex = 0;
-
- for (var col = this.moduleCount - 1; col > 0; col -= 2) {
-
- if (col === 6) col--;
-
- while (true) {
-
- for (var c = 0; c < 2; c++) {
-
- if (this.modules[row][col - c] === null) {
-
- var dark = false;
-
- if (byteIndex < data.length) {
- dark = ( ( (data[byteIndex] >>> bitIndex) & 1) === 1);
- }
-
- var mask = QRUtil.getMask(maskPattern, row, col - c);
-
- if (mask) {
- dark = !dark;
- }
-
- this.modules[row][col - c] = dark;
- bitIndex--;
-
- if (bitIndex === -1) {
- byteIndex++;
- bitIndex = 7;
- }
- }
- }
-
- row += inc;
-
- if (row < 0 || this.moduleCount <= row) {
- row -= inc;
- inc = -inc;
- break;
- }
- }
- }
-
- }
-
-};
-
-QRCode.PAD0 = 0xEC;
-QRCode.PAD1 = 0x11;
-
-QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {
-
- var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
-
- var buffer = new QRBitBuffer();
-
- for (var i = 0; i < dataList.length; i++) {
- var data = dataList[i];
- buffer.put(data.mode, 4);
- buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );
- data.write(buffer);
- }
-
- // calc num max data.
- var totalDataCount = 0;
- for (var x = 0; x < rsBlocks.length; x++) {
- totalDataCount += rsBlocks[x].dataCount;
- }
-
- if (buffer.getLengthInBits() > totalDataCount * 8) {
- throw new Error("code length overflow. (" +
- buffer.getLengthInBits() +
- ">" +
- totalDataCount * 8 +
- ")");
- }
-
- // end code
- if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
- buffer.put(0, 4);
- }
-
- // padding
- while (buffer.getLengthInBits() % 8 !== 0) {
- buffer.putBit(false);
- }
-
- // padding
- while (true) {
-
- if (buffer.getLengthInBits() >= totalDataCount * 8) {
- break;
- }
- buffer.put(QRCode.PAD0, 8);
-
- if (buffer.getLengthInBits() >= totalDataCount * 8) {
- break;
- }
- buffer.put(QRCode.PAD1, 8);
- }
-
- return QRCode.createBytes(buffer, rsBlocks);
-};
-
-QRCode.createBytes = function(buffer, rsBlocks) {
-
- var offset = 0;
-
- var maxDcCount = 0;
- var maxEcCount = 0;
-
- var dcdata = new Array(rsBlocks.length);
- var ecdata = new Array(rsBlocks.length);
-
- for (var r = 0; r < rsBlocks.length; r++) {
-
- var dcCount = rsBlocks[r].dataCount;
- var ecCount = rsBlocks[r].totalCount - dcCount;
-
- maxDcCount = Math.max(maxDcCount, dcCount);
- maxEcCount = Math.max(maxEcCount, ecCount);
-
- dcdata[r] = new Array(dcCount);
-
- for (var i = 0; i < dcdata[r].length; i++) {
- dcdata[r][i] = 0xff & buffer.buffer[i + offset];
- }
- offset += dcCount;
-
- var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
- var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
-
- var modPoly = rawPoly.mod(rsPoly);
- ecdata[r] = new Array(rsPoly.getLength() - 1);
- for (var x = 0; x < ecdata[r].length; x++) {
- var modIndex = x + modPoly.getLength() - ecdata[r].length;
- ecdata[r][x] = (modIndex >= 0)? modPoly.get(modIndex) : 0;
- }
-
- }
-
- var totalCodeCount = 0;
- for (var y = 0; y < rsBlocks.length; y++) {
- totalCodeCount += rsBlocks[y].totalCount;
- }
-
- var data = new Array(totalCodeCount);
- var index = 0;
-
- for (var z = 0; z < maxDcCount; z++) {
- for (var s = 0; s < rsBlocks.length; s++) {
- if (z < dcdata[s].length) {
- data[index++] = dcdata[s][z];
- }
- }
- }
-
- for (var xx = 0; xx < maxEcCount; xx++) {
- for (var t = 0; t < rsBlocks.length; t++) {
- if (xx < ecdata[t].length) {
- data[index++] = ecdata[t][xx];
- }
- }
- }
-
- return data;
-
-};
-
-module.exports = QRCode;