Comparing version 0.4.0 to 0.4.1
88
crc32.js
/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ | ||
/* vim: set ts=2: */ | ||
/*exported CRC32 */ | ||
var CRC32; | ||
(function (factory) { | ||
/*jshint ignore:start */ | ||
if(typeof DO_NOT_EXPORT_CRC === 'undefined') { | ||
@@ -20,5 +22,7 @@ if('object' === typeof exports) { | ||
} | ||
/*jshint ignore:end */ | ||
}(function(CRC32) { | ||
CRC32.version = '0.4.0'; | ||
CRC32.version = '0.4.1'; | ||
/* see perf/crc32table.js */ | ||
/*global Int32Array */ | ||
function signed_crc_table() { | ||
@@ -43,14 +47,14 @@ var c = 0, table = new Array(256); | ||
var table = signed_crc_table(); | ||
/* charCodeAt is the best approach for binary strings */ | ||
var T = signed_crc_table(); | ||
/*global Buffer */ | ||
var use_buffer = typeof Buffer !== 'undefined'; | ||
function crc32_bstr(bstr) { | ||
if(bstr.length > 32768) if(use_buffer) return crc32_buf_8(new Buffer(bstr)); | ||
var crc = -1, L = bstr.length - 1; | ||
var C = -1, L = bstr.length - 1; | ||
for(var i = 0; i < L;) { | ||
crc = table[(crc ^ bstr.charCodeAt(i++)) & 0xFF] ^ (crc >>> 8); | ||
crc = table[(crc ^ bstr.charCodeAt(i++)) & 0xFF] ^ (crc >>> 8); | ||
C = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF]; | ||
C = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF]; | ||
} | ||
if(i === L) crc = (crc >>> 8) ^ table[(crc ^ bstr.charCodeAt(i)) & 0xFF]; | ||
return crc ^ -1; | ||
if(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF]; | ||
return C ^ -1; | ||
} | ||
@@ -60,51 +64,53 @@ | ||
if(buf.length > 10000) return crc32_buf_8(buf); | ||
for(var crc = -1, i = 0, L=buf.length-3; i < L;) { | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
var C = -1, L = buf.length - 3; | ||
for(var i = 0; i < L;) { | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
} | ||
while(i < L+3) crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
return crc ^ -1; | ||
while(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
return C ^ -1; | ||
} | ||
function crc32_buf_8(buf) { | ||
for(var crc = -1, i = 0, L=buf.length-7; i < L;) { | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
var C = -1, L = buf.length - 7; | ||
for(var i = 0; i < L;) { | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
} | ||
while(i < L+7) crc = (crc >>> 8) ^ table[(crc^buf[i++])&0xFF]; | ||
return crc ^ -1; | ||
while(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF]; | ||
return C ^ -1; | ||
} | ||
/* much much faster to intertwine utf8 and crc */ | ||
function crc32_str(str) { | ||
for(var crc = -1, i = 0, L=str.length, c, d; i < L;) { | ||
var C = -1; | ||
for(var i = 0, L=str.length, c, d; i < L;) { | ||
c = str.charCodeAt(i++); | ||
if(c < 0x80) { | ||
crc = (crc >>> 8) ^ table[(crc ^ c) & 0xFF]; | ||
C = (C>>>8) ^ T[(C ^ c)&0xFF]; | ||
} else if(c < 0x800) { | ||
crc = (crc >>> 8) ^ table[(crc ^ (192|((c>>6)&31))) & 0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc ^ (128|(c&63))) & 0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF]; | ||
} else if(c >= 0xD800 && c < 0xE000) { | ||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023; | ||
crc = (crc >>> 8) ^ table[(crc ^ (240|((c>>8)&7))) & 0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc ^ (128|((c>>2)&63))) & 0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc ^ (128|((d>>6)&15)|((c&3)<<4))) & 0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc ^ (128|(d&63))) & 0xFF]; | ||
c = (c&1023)+64; d = str.charCodeAt(i++)&1023; | ||
C = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF]; | ||
} else { | ||
crc = (crc >>> 8) ^ table[(crc ^ (224|((c>>12)&15))) & 0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc ^ (128|((c>>6)&63))) & 0xFF]; | ||
crc = (crc >>> 8) ^ table[(crc ^ (128|(c&63))) & 0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF]; | ||
C = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF]; | ||
} | ||
} | ||
return crc ^ -1; | ||
return C ^ -1; | ||
} | ||
CRC32.table = table; | ||
CRC32.table = T; | ||
CRC32.bstr = crc32_bstr; | ||
@@ -111,0 +117,0 @@ CRC32.buf = crc32_buf; |
{ | ||
"name": "crc-32", | ||
"version": "0.4.0", | ||
"version": "0.4.1", | ||
"author": "sheetjs", | ||
"description": "Pure-JS CRC-32", | ||
"keywords": [ "crc32", "checksum", "crc" ], | ||
"bin": { | ||
"crc32": "./bin/crc32.njs" | ||
}, | ||
"main": "./crc32", | ||
"dependencies": { | ||
"concat-stream":"", | ||
"exit-on-epipe":"" | ||
}, | ||
"devDependencies": { | ||
"codepage":"", | ||
"mocha":"", | ||
"uglify-js":"" | ||
"codepage":"" | ||
}, | ||
@@ -23,2 +29,3 @@ "repository": { "type":"git", "url":"git://github.com/SheetJS/js-crc32.git" }, | ||
}, | ||
"files": ["crc32.js", "bin/crc32.njs", "LICENSE", "README.md"], | ||
"bugs": { "url": "https://github.com/SheetJS/js-crc32/issues" }, | ||
@@ -25,0 +32,0 @@ "license": "Apache-2.0", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Wildcard dependency
QualityPackage has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.
Found 2 instances 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
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2
5659
2
4
110
3
0
1
+ Addedconcat-stream@
+ Addedexit-on-epipe@
+ Addedbuffer-from@1.1.2(transitive)
+ Addedconcat-stream@2.0.0(transitive)
+ Addedexit-on-epipe@1.0.1(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedtypedarray@0.0.6(transitive)
+ Addedutil-deprecate@1.0.2(transitive)