buffer-crc32
Advanced tools
Comparing version
@@ -1,304 +0,50 @@ | ||
function getDefaultExportFromCjs (x) { | ||
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; | ||
} | ||
/** | ||
* crc32 that works with binary data and fancy character sets. | ||
* | ||
* @example | ||
* import crc32 = require('buffer-crc32'); | ||
* | ||
* // works with buffers | ||
* const buf = Buffer.from([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]); | ||
* crc32(buf); // -> <Buffer 94 5a ab 4a> | ||
* | ||
* // will cast to buffer if given a string, so you can | ||
* // directly use foreign characters safely | ||
* crc32('自動販売機'); // -> <Buffer cb 03 1a c5> | ||
* | ||
* // and works in append mode too | ||
* let partialCrc = crc32('hey'); | ||
* partialCrc = crc32(' ', partialCrc); | ||
* partialCrc = crc32('sup', partialCrc); | ||
* partialCrc = crc32(' ', partialCrc); | ||
* const finalCrc = crc32('bros', partialCrc); // -> <Buffer 47 fa 55 70> | ||
*/ | ||
declare function crc32(input: string | Buffer, partialCrc?: Buffer | number): Buffer; | ||
const CRC_TABLE = new Int32Array([ | ||
0, | ||
1996959894, | ||
3993919788, | ||
2567524794, | ||
124634137, | ||
1886057615, | ||
3915621685, | ||
2657392035, | ||
249268274, | ||
2044508324, | ||
3772115230, | ||
2547177864, | ||
162941995, | ||
2125561021, | ||
3887607047, | ||
2428444049, | ||
498536548, | ||
1789927666, | ||
4089016648, | ||
2227061214, | ||
450548861, | ||
1843258603, | ||
4107580753, | ||
2211677639, | ||
325883990, | ||
1684777152, | ||
4251122042, | ||
2321926636, | ||
335633487, | ||
1661365465, | ||
4195302755, | ||
2366115317, | ||
997073096, | ||
1281953886, | ||
3579855332, | ||
2724688242, | ||
1006888145, | ||
1258607687, | ||
3524101629, | ||
2768942443, | ||
901097722, | ||
1119000684, | ||
3686517206, | ||
2898065728, | ||
853044451, | ||
1172266101, | ||
3705015759, | ||
2882616665, | ||
651767980, | ||
1373503546, | ||
3369554304, | ||
3218104598, | ||
565507253, | ||
1454621731, | ||
3485111705, | ||
3099436303, | ||
671266974, | ||
1594198024, | ||
3322730930, | ||
2970347812, | ||
795835527, | ||
1483230225, | ||
3244367275, | ||
3060149565, | ||
1994146192, | ||
31158534, | ||
2563907772, | ||
4023717930, | ||
1907459465, | ||
112637215, | ||
2680153253, | ||
3904427059, | ||
2013776290, | ||
251722036, | ||
2517215374, | ||
3775830040, | ||
2137656763, | ||
141376813, | ||
2439277719, | ||
3865271297, | ||
1802195444, | ||
476864866, | ||
2238001368, | ||
4066508878, | ||
1812370925, | ||
453092731, | ||
2181625025, | ||
4111451223, | ||
1706088902, | ||
314042704, | ||
2344532202, | ||
4240017532, | ||
1658658271, | ||
366619977, | ||
2362670323, | ||
4224994405, | ||
1303535960, | ||
984961486, | ||
2747007092, | ||
3569037538, | ||
1256170817, | ||
1037604311, | ||
2765210733, | ||
3554079995, | ||
1131014506, | ||
879679996, | ||
2909243462, | ||
3663771856, | ||
1141124467, | ||
855842277, | ||
2852801631, | ||
3708648649, | ||
1342533948, | ||
654459306, | ||
3188396048, | ||
3373015174, | ||
1466479909, | ||
544179635, | ||
3110523913, | ||
3462522015, | ||
1591671054, | ||
702138776, | ||
2966460450, | ||
3352799412, | ||
1504918807, | ||
783551873, | ||
3082640443, | ||
3233442989, | ||
3988292384, | ||
2596254646, | ||
62317068, | ||
1957810842, | ||
3939845945, | ||
2647816111, | ||
81470997, | ||
1943803523, | ||
3814918930, | ||
2489596804, | ||
225274430, | ||
2053790376, | ||
3826175755, | ||
2466906013, | ||
167816743, | ||
2097651377, | ||
4027552580, | ||
2265490386, | ||
503444072, | ||
1762050814, | ||
4150417245, | ||
2154129355, | ||
426522225, | ||
1852507879, | ||
4275313526, | ||
2312317920, | ||
282753626, | ||
1742555852, | ||
4189708143, | ||
2394877945, | ||
397917763, | ||
1622183637, | ||
3604390888, | ||
2714866558, | ||
953729732, | ||
1340076626, | ||
3518719985, | ||
2797360999, | ||
1068828381, | ||
1219638859, | ||
3624741850, | ||
2936675148, | ||
906185462, | ||
1090812512, | ||
3747672003, | ||
2825379669, | ||
829329135, | ||
1181335161, | ||
3412177804, | ||
3160834842, | ||
628085408, | ||
1382605366, | ||
3423369109, | ||
3138078467, | ||
570562233, | ||
1426400815, | ||
3317316542, | ||
2998733608, | ||
733239954, | ||
1555261956, | ||
3268935591, | ||
3050360625, | ||
752459403, | ||
1541320221, | ||
2607071920, | ||
3965973030, | ||
1969922972, | ||
40735498, | ||
2617837225, | ||
3943577151, | ||
1913087877, | ||
83908371, | ||
2512341634, | ||
3803740692, | ||
2075208622, | ||
213261112, | ||
2463272603, | ||
3855990285, | ||
2094854071, | ||
198958881, | ||
2262029012, | ||
4057260610, | ||
1759359992, | ||
534414190, | ||
2176718541, | ||
4139329115, | ||
1873836001, | ||
414664567, | ||
2282248934, | ||
4279200368, | ||
1711684554, | ||
285281116, | ||
2405801727, | ||
4167216745, | ||
1634467795, | ||
376229701, | ||
2685067896, | ||
3608007406, | ||
1308918612, | ||
956543938, | ||
2808555105, | ||
3495958263, | ||
1231636301, | ||
1047427035, | ||
2932959818, | ||
3654703836, | ||
1088359270, | ||
936918e3, | ||
2847714899, | ||
3736837829, | ||
1202900863, | ||
817233897, | ||
3183342108, | ||
3401237130, | ||
1404277552, | ||
615818150, | ||
3134207493, | ||
3453421203, | ||
1423857449, | ||
601450431, | ||
3009837614, | ||
3294710456, | ||
1567103746, | ||
711928724, | ||
3020668471, | ||
3272380065, | ||
1510334235, | ||
755167117 | ||
]); | ||
function ensureBuffer(input) { | ||
if (Buffer.isBuffer(input)) { | ||
return input; | ||
} | ||
if (typeof input === "number") { | ||
return Buffer.alloc(input); | ||
} else if (typeof input === "string") { | ||
return Buffer.from(input); | ||
} else { | ||
throw new Error("input must be buffer, number, or string, received " + typeof input); | ||
} | ||
declare namespace crc32 { | ||
/** | ||
* Convenience method that returns a signed int instead of a `Buffer`. | ||
* | ||
* @example | ||
* import crc32 = require('buffer-crc32'); | ||
* | ||
* // works with buffers | ||
* const buf = Buffer.from([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]); | ||
* crc32.signed(buf); // -> -1805997238 | ||
*/ | ||
function signed(buffer: string | Buffer, partialCrc?: Buffer | number): number; | ||
/** | ||
* Convenience method that returns an unsigned int instead of a `Buffer`. | ||
* | ||
* @example | ||
* import crc32 = require('buffer-crc32'); | ||
* | ||
* // works with buffers | ||
* const buf = Buffer.from([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]); | ||
* crc32.unsigned(buf); // -> 2488970058 | ||
*/ | ||
function unsigned(buffer: string | Buffer, partialCrc?: Buffer | number): number; | ||
} | ||
function bufferizeInt(num) { | ||
const tmp = ensureBuffer(4); | ||
tmp.writeInt32BE(num, 0); | ||
return tmp; | ||
} | ||
function _crc32(buf, previous) { | ||
buf = ensureBuffer(buf); | ||
if (Buffer.isBuffer(previous)) { | ||
previous = previous.readUInt32BE(0); | ||
} | ||
let crc = ~~previous ^ -1; | ||
for (var n = 0; n < buf.length; n++) { | ||
crc = CRC_TABLE[(crc ^ buf[n]) & 255] ^ crc >>> 8; | ||
} | ||
return crc ^ -1; | ||
} | ||
function crc32() { | ||
return bufferizeInt(_crc32.apply(null, arguments)); | ||
} | ||
crc32.signed = function() { | ||
return _crc32.apply(null, arguments); | ||
}; | ||
crc32.unsigned = function() { | ||
return _crc32.apply(null, arguments) >>> 0; | ||
}; | ||
var bufferCrc32 = crc32; | ||
var index = /*@__PURE__*/getDefaultExportFromCjs(bufferCrc32); | ||
export { index as default }; | ||
export { crc32 as default }; |
@@ -5,3 +5,3 @@ { | ||
"description": "A pure javascript CRC32 algorithm that plays nice with binary data", | ||
"version": "1.0.0-RC2", | ||
"version": "1.0.0-RC3", | ||
"licenses": [ | ||
@@ -45,8 +45,16 @@ { | ||
"require": "./dist/index.cjs" | ||
}, | ||
"./types": { | ||
"import": "./dist/index.d.mts", | ||
"require": "./dist/index.d.cts" | ||
} | ||
}, | ||
"main": "./dist/index.cjs", | ||
"types": "./dist/index.d.cts", | ||
"files": [ | ||
"dist" | ||
"dist", | ||
"index.d.ts", | ||
"LICENSE", | ||
"README.md" | ||
] | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
9
12.5%20212
-26.81%701
-22.46%