| Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/int.js
|
| diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/int.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/int.js
|
| index 81b1ef8b1fcfc5e15295e3cfab69eb090bb939c2..efada887e44524b0f39340c3166c86438917382f 100644
|
| --- a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/int.js
|
| +++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/int.js
|
| @@ -1,50 +1,143 @@
|
| 'use strict';
|
|
|
| +var common = require('../common');
|
| +var Type = require('../type');
|
|
|
| -var Type = require('../type');
|
| +function isHexCode(c) {
|
| + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
|
| + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
|
| + ((0x61/* a */ <= c) && (c <= 0x66/* f */));
|
| +}
|
|
|
| +function isOctCode(c) {
|
| + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
|
| +}
|
|
|
| -var YAML_INTEGER_PATTERN = new RegExp(
|
| - '^(?:[-+]?0b[0-1_]+' +
|
| - '|[-+]?0[0-7_]+' +
|
| - '|[-+]?(?:0|[1-9][0-9_]*)' +
|
| - '|[-+]?0x[0-9a-fA-F_]+' +
|
| - '|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$');
|
| +function isDecCode(c) {
|
| + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
|
| +}
|
|
|
| +function resolveYamlInteger(data) {
|
| + if (null === data) {
|
| + return false;
|
| + }
|
|
|
| -function resolveYamlInteger(state) {
|
| - var value, sign, base, digits,
|
| - object = state.result;
|
| + var max = data.length,
|
| + index = 0,
|
| + hasDigits = false,
|
| + ch;
|
|
|
| - if (!YAML_INTEGER_PATTERN.test(object)) {
|
| - return false;
|
| + if (!max) { return false; }
|
| +
|
| + ch = data[index];
|
| +
|
| + // sign
|
| + if (ch === '-' || ch === '+') {
|
| + ch = data[++index];
|
| + }
|
| +
|
| + if (ch === '0') {
|
| + // 0
|
| + if (index+1 === max) { return true; }
|
| + ch = data[++index];
|
| +
|
| + // base 2, base 8, base 16
|
| +
|
| + if (ch === 'b') {
|
| + // base 2
|
| + index++;
|
| +
|
| + for (; index < max; index++) {
|
| + ch = data[index];
|
| + if (ch === '_') { continue; }
|
| + if (ch !== '0' && ch !== '1') {
|
| + return false;
|
| + }
|
| + hasDigits = true;
|
| + }
|
| + return hasDigits;
|
| + }
|
| +
|
| +
|
| + if (ch === 'x') {
|
| + // base 16
|
| + index++;
|
| +
|
| + for (; index < max; index++) {
|
| + ch = data[index];
|
| + if (ch === '_') { continue; }
|
| + if (!isHexCode(data.charCodeAt(index))) {
|
| + return false;
|
| + }
|
| + hasDigits = true;
|
| + }
|
| + return hasDigits;
|
| + }
|
| +
|
| + // base 8
|
| + for (; index < max; index++) {
|
| + ch = data[index];
|
| + if (ch === '_') { continue; }
|
| + if (!isOctCode(data.charCodeAt(index))) {
|
| + return false;
|
| + }
|
| + hasDigits = true;
|
| + }
|
| + return hasDigits;
|
| + }
|
| +
|
| + // base 10 (except 0) or base 60
|
| +
|
| + for (; index < max; index++) {
|
| + ch = data[index];
|
| + if (ch === '_') { continue; }
|
| + if (ch === ':') { break; }
|
| + if (!isDecCode(data.charCodeAt(index))) {
|
| + return false;
|
| + }
|
| + hasDigits = true;
|
| }
|
|
|
| - value = object.replace(/_/g, '');
|
| - sign = '-' === value[0] ? -1 : 1;
|
| - digits = [];
|
| + if (!hasDigits) { return false; }
|
|
|
| - if (0 <= '+-'.indexOf(value[0])) {
|
| + // if !base60 - done;
|
| + if (ch !== ':') { return true; }
|
| +
|
| + // base60 almost not used, no needs to optimize
|
| + return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
|
| +}
|
| +
|
| +function constructYamlInteger(data) {
|
| + var value = data, sign = 1, ch, base, digits = [];
|
| +
|
| + if (value.indexOf('_') !== -1) {
|
| + value = value.replace(/_/g, '');
|
| + }
|
| +
|
| + ch = value[0];
|
| +
|
| + if (ch === '-' || ch === '+') {
|
| + if (ch === '-') { sign = -1; }
|
| value = value.slice(1);
|
| + ch = value[0];
|
| }
|
|
|
| if ('0' === value) {
|
| - state.result = 0;
|
| - return true;
|
| -
|
| - } else if (/^0b/.test(value)) {
|
| - state.result = sign * parseInt(value.slice(2), 2);
|
| - return true;
|
| + return 0;
|
| + }
|
|
|
| - } else if (/^0x/.test(value)) {
|
| - state.result = sign * parseInt(value, 16);
|
| - return true;
|
| + if (ch === '0') {
|
| + if (value[1] === 'b') {
|
| + return sign * parseInt(value.slice(2), 2);
|
| + }
|
| + if (value[1] === 'x') {
|
| + return sign * parseInt(value, 16);
|
| + }
|
| + return sign * parseInt(value, 8);
|
|
|
| - } else if ('0' === value[0]) {
|
| - state.result = sign * parseInt(value, 8);
|
| - return true;
|
| + }
|
|
|
| - } else if (0 <= value.indexOf(':')) {
|
| + if (value.indexOf(':') !== -1) {
|
| value.split(':').forEach(function (v) {
|
| digits.unshift(parseInt(v, 10));
|
| });
|
| @@ -57,34 +150,31 @@ function resolveYamlInteger(state) {
|
| base *= 60;
|
| });
|
|
|
| - state.result = sign * value;
|
| - return true;
|
| + return sign * value;
|
|
|
| - } else {
|
| - state.result = sign * parseInt(value, 10);
|
| - return true;
|
| }
|
| -}
|
|
|
| + return sign * parseInt(value, 10);
|
| +}
|
|
|
| function isInteger(object) {
|
| return ('[object Number]' === Object.prototype.toString.call(object)) &&
|
| - (0 === object % 1);
|
| + (0 === object % 1 && !common.isNegativeZero(object));
|
| }
|
|
|
| -
|
| module.exports = new Type('tag:yaml.org,2002:int', {
|
| - loadKind: 'scalar',
|
| - loadResolver: resolveYamlInteger,
|
| - dumpPredicate: isInteger,
|
| - dumpRepresenter: {
|
| + kind: 'scalar',
|
| + resolve: resolveYamlInteger,
|
| + construct: constructYamlInteger,
|
| + predicate: isInteger,
|
| + represent: {
|
| binary: function (object) { return '0b' + object.toString(2); },
|
| octal: function (object) { return '0' + object.toString(8); },
|
| decimal: function (object) { return object.toString(10); },
|
| hexadecimal: function (object) { return '0x' + object.toString(16).toUpperCase(); }
|
| },
|
| - dumpDefaultStyle: 'decimal',
|
| - dumpStyleAliases: {
|
| + defaultStyle: 'decimal',
|
| + styleAliases: {
|
| binary: [ 2, 'bin' ],
|
| octal: [ 8, 'oct' ],
|
| decimal: [ 10, 'dec' ],
|
|
|