google-protobuf
Advanced tools
Comparing version 3.0.0-alpha.5 to 3.0.0-alpha.6
@@ -363,2 +363,54 @@ // Protocol Buffers - Google's data interchange format | ||
/** | ||
* Tests reading a field from hexadecimal string (format: '08 BE EF'). | ||
* @param {Function} readField | ||
* @param {number} expected | ||
* @param {string} hexString | ||
*/ | ||
function doTestHexStringVarint_(readField, expected, hexString) { | ||
var bytesCount = (hexString.length + 1) / 3; | ||
var bytes = new Uint8Array(bytesCount); | ||
for (var i = 0; i < bytesCount; i++) { | ||
byte = parseInt(hexString.substring(i * 3, i * 3 + 2), 16); | ||
bytes[i] = byte; | ||
} | ||
var reader = jspb.BinaryReader.alloc(bytes); | ||
reader.nextField(); | ||
assertEquals(expected, readField.call(reader)); | ||
} | ||
/** | ||
* Tests non-canonical redundant varint decoding. | ||
*/ | ||
it('testRedundantVarintFields', function() { | ||
assertNotNull(jspb.BinaryReader.prototype.readUint32); | ||
assertNotNull(jspb.BinaryReader.prototype.readUint64); | ||
assertNotNull(jspb.BinaryReader.prototype.readSint32); | ||
assertNotNull(jspb.BinaryReader.prototype.readSint64); | ||
// uint32 and sint32 take no more than 5 bytes | ||
// 08 - field prefix (type = 0 means varint) | ||
doTestHexStringVarint_( | ||
jspb.BinaryReader.prototype.readUint32, | ||
12, '08 8C 80 80 80 00'); | ||
// 11 stands for -6 in zigzag encoding | ||
doTestHexStringVarint_( | ||
jspb.BinaryReader.prototype.readSint32, | ||
-6, '08 8B 80 80 80 00'); | ||
// uint64 and sint64 take no more than 10 bytes | ||
// 08 - field prefix (type = 0 means varint) | ||
doTestHexStringVarint_( | ||
jspb.BinaryReader.prototype.readUint64, | ||
12, '08 8C 80 80 80 80 80 80 80 80 00'); | ||
// 11 stands for -6 in zigzag encoding | ||
doTestHexStringVarint_( | ||
jspb.BinaryReader.prototype.readSint64, | ||
-6, '08 8B 80 80 80 80 80 80 80 80 00'); | ||
}); | ||
/** | ||
* Tests 64-bit fields that are handled as strings. | ||
@@ -365,0 +417,0 @@ */ |
@@ -200,3 +200,38 @@ // Protocol Buffers - Google's data interchange format | ||
/* | ||
* Going from decimal strings to hash strings should be lossless. | ||
*/ | ||
it('testDecimalToHashConversion', function() { | ||
var result; | ||
var convert = jspb.utils.decimalStringToHash64; | ||
result = convert('0'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), result); | ||
result = convert('-1'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]), result); | ||
result = convert('18446744073709551615'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]), result); | ||
result = convert('9223372036854775808'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]), result); | ||
result = convert('-9223372036854775808'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]), result); | ||
result = convert('123456789123456789'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0x15, 0x5F, 0xD0, 0xAC, 0x4B, 0x9B, 0xB6, 0x01]), result); | ||
result = convert('-123456789123456789'); | ||
assertEquals(String.fromCharCode.apply(null, | ||
[0xEB, 0xA0, 0x2F, 0x53, 0xB4, 0x64, 0x49, 0xFE]), result); | ||
}); | ||
/** | ||
@@ -203,0 +238,0 @@ * Going from hash strings to hex strings should be lossless. |
@@ -571,2 +571,52 @@ // Protocol Buffers - Google's data interchange format | ||
/** | ||
* Converts a signed or unsigned decimal string into its hash string | ||
* representation. | ||
* @param {string} dec | ||
* @return {string} | ||
*/ | ||
jspb.utils.decimalStringToHash64 = function(dec) { | ||
goog.asserts.assert(dec.length > 0); | ||
// Check for minus sign. | ||
var minus = false; | ||
if (dec[0] === '-') { | ||
minus = true; | ||
dec = dec.slice(1); | ||
} | ||
// Store result as a byte array. | ||
var resultBytes = [0, 0, 0, 0, 0, 0, 0, 0]; | ||
// Set result to m*result + c. | ||
function muladd(m, c) { | ||
for (var i = 0; i < 8 && (m !== 1 || c > 0); i++) { | ||
var r = m * resultBytes[i] + c; | ||
resultBytes[i] = r & 0xFF; | ||
c = r >>> 8; | ||
} | ||
} | ||
// Negate the result bits. | ||
function neg() { | ||
for (var i = 0; i < 8; i++) { | ||
resultBytes[i] = (~resultBytes[i]) & 0xFF; | ||
} | ||
} | ||
// For each decimal digit, set result to 10*result + digit. | ||
for (var i = 0; i < dec.length; i++) { | ||
muladd(10, jspb.utils.DIGITS.indexOf(dec[i])); | ||
} | ||
// If there's a minus sign, convert into two's complement. | ||
if (minus) { | ||
neg(); | ||
muladd(1, 1); | ||
} | ||
return String.fromCharCode.apply(null, resultBytes); | ||
}; | ||
/** | ||
* Converts an 8-character hash string into its hexadecimal representation. | ||
@@ -573,0 +623,0 @@ * @param {string} hash |
var gulp = require('gulp'); | ||
var exec = require('child_process').exec; | ||
var execFile = require('child_process').execFile; | ||
var glob = require('glob'); | ||
function exec(command, cb) { | ||
execFile('sh', ['-c', command], cb); | ||
} | ||
var protoc = process.env.PROTOC || '../src/protoc'; | ||
@@ -45,3 +49,12 @@ | ||
gulp.task('make_commonjs_out', ['dist', 'genproto_commonjs', 'commonjs_asserts'], function (cb) { | ||
gulp.task('commonjs_testdeps', function (cb) { | ||
exec('mkdir -p commonjs_out/test_node_modules && ./node_modules/google-closure-library/closure/bin/calcdeps.py -i commonjs/export_testdeps.js -p . -p node_modules/google-closure-library/closure -o compiled --compiler_jar node_modules/google-closure-compiler/compiler.jar > commonjs_out/test_node_modules/testdeps_commonjs.js', | ||
function (err, stdout, stderr) { | ||
console.log(stdout); | ||
console.log(stderr); | ||
cb(err); | ||
}); | ||
}); | ||
gulp.task('make_commonjs_out', ['dist', 'genproto_commonjs', 'commonjs_asserts', 'commonjs_testdeps'], function (cb) { | ||
// TODO(haberman): minify this more aggressively. | ||
@@ -48,0 +61,0 @@ // Will require proper externs/exports. |
{ | ||
"name": "google-protobuf", | ||
"version": "3.0.0-alpha.5", | ||
"version": "3.0.0-alpha.6", | ||
"description": "Protocol Buffers for JavaScript", | ||
"main": "google-protobuf.js", | ||
"dependencies": { | ||
}, | ||
"devDependencies": { | ||
"glob": "~6.0.4", | ||
"google-closure-compiler": "~20151216.2.0", | ||
"google-closure-library": "~20160125.0.0", | ||
@@ -15,4 +11,8 @@ "gulp": "~3.9.0", | ||
}, | ||
"devDependencies": { | ||
"google-closure-compiler": "~20151216.2.0", | ||
"glob": "~6.0.4" | ||
}, | ||
"scripts": { | ||
"test": "./node_modules/gulp/bin/gulp.js test" | ||
"test": "node ./node_modules/gulp/bin/gulp.js test" | ||
}, | ||
@@ -19,0 +19,0 @@ "repository": { |
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
2
3
593637
3
43
11244
+ Addedgulp@~3.9.0
+ Addedjasmine@~2.4.1
+ Addedansi-gray@0.1.1(transitive)
+ Addedansi-regex@2.1.1(transitive)
+ Addedansi-styles@2.2.1(transitive)
+ Addedansi-wrap@0.1.0(transitive)
+ Addedarchy@1.0.0(transitive)
+ Addedarr-diff@4.0.0(transitive)
+ Addedarr-flatten@1.1.0(transitive)
+ Addedarr-union@3.1.0(transitive)
+ Addedarray-differ@1.0.0(transitive)
+ Addedarray-each@1.0.1(transitive)
+ Addedarray-slice@1.1.0(transitive)
+ Addedarray-uniq@1.0.3(transitive)
+ Addedarray-unique@0.3.2(transitive)
+ Addedassign-symbols@1.0.0(transitive)
+ Addedatob@2.1.2(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbase@0.11.2(transitive)
+ Addedbeeper@1.1.1(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedbraces@2.3.2(transitive)
+ Addedcache-base@1.0.1(transitive)
+ Addedchalk@1.1.3(transitive)
+ Addedclass-utils@0.3.6(transitive)
+ Addedclone@0.2.01.0.4(transitive)
+ Addedclone-stats@0.0.1(transitive)
+ Addedcollection-visit@1.0.0(transitive)
+ Addedcolor-support@1.1.3(transitive)
+ Addedcomponent-emitter@1.3.1(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedcopy-descriptor@0.1.1(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addeddateformat@2.2.0(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddecode-uri-component@0.2.2(transitive)
+ Addeddefaults@1.0.4(transitive)
+ Addeddefine-property@0.2.51.0.02.0.2(transitive)
+ Addeddeprecated@0.0.1(transitive)
+ Addeddetect-file@1.0.0(transitive)
+ Addedduplexer2@0.0.2(transitive)
+ Addedend-of-stream@0.1.5(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedexit@0.1.2(transitive)
+ Addedexpand-brackets@2.1.4(transitive)
+ Addedexpand-tilde@2.0.2(transitive)
+ Addedextend@3.0.2(transitive)
+ Addedextend-shallow@2.0.13.0.2(transitive)
+ Addedextglob@2.0.4(transitive)
+ Addedfancy-log@1.3.3(transitive)
+ Addedfill-range@4.0.0(transitive)
+ Addedfind-index@0.1.1(transitive)
+ Addedfindup-sync@2.0.0(transitive)
+ Addedfined@1.2.0(transitive)
+ Addedfirst-chunk-stream@1.0.0(transitive)
+ Addedflagged-respawn@1.0.1(transitive)
+ Addedfor-in@1.0.2(transitive)
+ Addedfor-own@1.0.0(transitive)
+ Addedfragment-cache@0.2.1(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedgaze@0.5.2(transitive)
+ Addedget-value@2.0.6(transitive)
+ Addedglob@3.1.213.2.114.5.3(transitive)
+ Addedglob-stream@3.1.18(transitive)
+ Addedglob-watcher@0.0.6(transitive)
+ Addedglob2base@0.0.12(transitive)
+ Addedglobal-modules@1.0.0(transitive)
+ Addedglobal-prefix@1.0.2(transitive)
+ Addedglobule@0.1.0(transitive)
+ Addedglogg@1.0.2(transitive)
+ Addedgoogle-closure-library@20160125.0.0(transitive)
+ Addedgraceful-fs@1.2.33.0.12(transitive)
+ Addedgulp@3.9.1(transitive)
+ Addedgulp-util@3.0.8(transitive)
+ Addedgulplog@1.0.0(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedhas-gulplog@0.1.0(transitive)
+ Addedhas-value@0.3.11.0.0(transitive)
+ Addedhas-values@0.1.41.0.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhomedir-polyfill@1.0.3(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedinherits@1.0.22.0.4(transitive)
+ Addedini@1.3.8(transitive)
+ Addedinterpret@1.4.0(transitive)
+ Addedis-absolute@1.0.0(transitive)
+ Addedis-accessor-descriptor@1.0.1(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedis-core-module@2.13.1(transitive)
+ Addedis-data-descriptor@1.0.1(transitive)
+ Addedis-descriptor@0.1.71.0.3(transitive)
+ Addedis-extendable@0.1.11.0.1(transitive)
+ Addedis-extglob@2.1.1(transitive)
+ Addedis-glob@3.1.0(transitive)
+ Addedis-number@3.0.0(transitive)
+ Addedis-plain-object@2.0.4(transitive)
+ Addedis-relative@1.0.0(transitive)
+ Addedis-unc-path@1.0.0(transitive)
+ Addedis-utf8@0.2.1(transitive)
+ Addedis-windows@1.0.2(transitive)
+ Addedisarray@0.0.11.0.0(transitive)
+ Addedisexe@2.0.0(transitive)
+ Addedisobject@2.1.03.0.1(transitive)
+ Addedjasmine@2.4.1(transitive)
+ Addedjasmine-core@2.4.1(transitive)
+ Addedkind-of@3.2.24.0.06.0.3(transitive)
+ Addedliftoff@2.5.0(transitive)
+ Addedlodash@1.0.2(transitive)
+ Addedlodash._basecopy@3.0.1(transitive)
+ Addedlodash._basetostring@3.0.1(transitive)
+ Addedlodash._basevalues@3.0.0(transitive)
+ Addedlodash._getnative@3.9.1(transitive)
+ Addedlodash._isiterateecall@3.0.9(transitive)
+ Addedlodash._reescape@3.0.0(transitive)
+ Addedlodash._reevaluate@3.0.0(transitive)
+ Addedlodash._reinterpolate@3.0.0(transitive)
+ Addedlodash._root@3.0.1(transitive)
+ Addedlodash.escape@3.2.0(transitive)
+ Addedlodash.isarguments@3.1.0(transitive)
+ Addedlodash.isarray@3.0.4(transitive)
+ Addedlodash.keys@3.1.2(transitive)
+ Addedlodash.restparam@3.6.1(transitive)
+ Addedlodash.template@3.6.2(transitive)
+ Addedlodash.templatesettings@3.1.1(transitive)
+ Addedlru-cache@2.7.3(transitive)
+ Addedmake-iterator@1.0.1(transitive)
+ Addedmap-cache@0.2.2(transitive)
+ Addedmap-visit@1.0.0(transitive)
+ Addedmicromatch@3.1.10(transitive)
+ Addedminimatch@0.2.140.3.02.0.10(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmixin-deep@1.3.2(transitive)
+ Addedmkdirp@0.5.6(transitive)
+ Addedms@2.0.0(transitive)
+ Addedmultipipe@0.1.2(transitive)
+ Addednanomatch@1.2.13(transitive)
+ Addednatives@1.1.6(transitive)
+ Addedobject-assign@3.0.0(transitive)
+ Addedobject-copy@0.1.0(transitive)
+ Addedobject-visit@1.0.1(transitive)
+ Addedobject.defaults@1.1.0(transitive)
+ Addedobject.map@1.0.1(transitive)
+ Addedobject.pick@1.3.0(transitive)
+ Addedonce@1.3.3(transitive)
+ Addedorchestrator@0.3.8(transitive)
+ Addedordered-read-streams@0.1.0(transitive)
+ Addedos-homedir@1.0.2(transitive)
+ Addedparse-filepath@1.0.2(transitive)
+ Addedparse-node-version@1.0.1(transitive)
+ Addedparse-passwd@1.0.0(transitive)
+ Addedpascalcase@0.1.1(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpath-root@0.1.1(transitive)
+ Addedpath-root-regex@0.1.2(transitive)
+ Addedposix-character-classes@0.1.1(transitive)
+ Addedpretty-hrtime@1.0.3(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedreadable-stream@1.0.341.1.142.3.8(transitive)
+ Addedrechoir@0.6.2(transitive)
+ Addedregex-not@1.0.2(transitive)
+ Addedrepeat-element@1.1.4(transitive)
+ Addedrepeat-string@1.6.1(transitive)
+ Addedreplace-ext@0.0.1(transitive)
+ Addedresolve@1.22.8(transitive)
+ Addedresolve-dir@1.0.1(transitive)
+ Addedresolve-url@0.2.1(transitive)
+ Addedret@0.1.15(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsafe-regex@1.1.0(transitive)
+ Addedsemver@4.3.6(transitive)
+ Addedsequencify@0.0.7(transitive)
+ Addedset-value@2.0.1(transitive)
+ Addedsigmund@1.0.1(transitive)
+ Addedsnapdragon@0.8.2(transitive)
+ Addedsnapdragon-node@2.1.1(transitive)
+ Addedsnapdragon-util@3.0.1(transitive)
+ Addedsource-map@0.5.7(transitive)
+ Addedsource-map-resolve@0.5.3(transitive)
+ Addedsource-map-url@0.4.1(transitive)
+ Addedsparkles@1.0.1(transitive)
+ Addedsplit-string@3.1.0(transitive)
+ Addedstatic-extend@0.1.2(transitive)
+ Addedstream-consume@0.1.1(transitive)
+ Addedstring_decoder@0.10.311.1.1(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedstrip-bom@1.0.0(transitive)
+ Addedsupports-color@2.0.0(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedthrough2@0.6.52.0.5(transitive)
+ Addedtildify@1.2.0(transitive)
+ Addedtime-stamp@1.1.0(transitive)
+ Addedto-object-path@0.3.0(transitive)
+ Addedto-regex@3.0.2(transitive)
+ Addedto-regex-range@2.1.1(transitive)
+ Addedunc-path-regex@0.1.2(transitive)
+ Addedunion-value@1.0.1(transitive)
+ Addedunique-stream@1.0.0(transitive)
+ Addedunset-value@1.0.0(transitive)
+ Addedurix@0.1.0(transitive)
+ Addeduse@3.1.1(transitive)
+ Addeduser-home@1.1.1(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedv8flags@2.1.1(transitive)
+ Addedvinyl@0.4.60.5.3(transitive)
+ Addedvinyl-fs@0.3.14(transitive)
+ Addedwhich@1.3.1(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedxtend@4.0.2(transitive)