mirror of
https://github.com/bower/bower.git
synced 2026-04-24 03:00:19 -04:00
Fix failing test.
This commit is contained in:
@@ -1 +1 @@
|
||||
9e1ea691c15d1fcbd4df08a43381e52c6b4b8f83
|
||||
90ed234fb0708235a733bcae0e5b90bd4fac5321
|
||||
|
||||
Binary file not shown.
@@ -3,3 +3,10 @@ b5d79d8a18b8b95a3747a377ab09958577a2c978 9e1ea691c15d1fcbd4df08a43381e52c6b4b8f8
|
||||
9e1ea691c15d1fcbd4df08a43381e52c6b4b8f83 01df57df1726b7a1a07e981c1ce316436a381e35 André Cruz <andremiguelcruz@msn.com> 1353273682 +0000 checkout: moving from master to 01df57df1726b7a1a07e981c1ce316436a381e35
|
||||
01df57df1726b7a1a07e981c1ce316436a381e35 9e1ea691c15d1fcbd4df08a43381e52c6b4b8f83 André Cruz <andremiguelcruz@msn.com> 1353273726 +0000 checkout: moving from 01df57df1726b7a1a07e981c1ce316436a381e35 to master
|
||||
9e1ea691c15d1fcbd4df08a43381e52c6b4b8f83 90ed234fb0708235a733bcae0e5b90bd4fac5321 André Cruz <andremiguelcruz@msn.com> 1353273739 +0000 pull -v --progress origin: Fast-forward
|
||||
90ed234fb0708235a733bcae0e5b90bd4fac5321 90ed234fb0708235a733bcae0e5b90bd4fac5321 André Cruz <andremiguelcruz@msn.com> 1353274892 +0000 checkout: moving from master to master
|
||||
90ed234fb0708235a733bcae0e5b90bd4fac5321 01df57df1726b7a1a07e981c1ce316436a381e35 André Cruz <andremiguelcruz@msn.com> 1353274939 +0000 checkout: moving from master to 0.0.1
|
||||
01df57df1726b7a1a07e981c1ce316436a381e35 90ed234fb0708235a733bcae0e5b90bd4fac5321 André Cruz <andremiguelcruz@msn.com> 1353275053 +0000 checkout: moving from 01df57df1726b7a1a07e981c1ce316436a381e35 to master
|
||||
90ed234fb0708235a733bcae0e5b90bd4fac5321 ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce André Cruz <andremiguelcruz@msn.com> 1353275130 +0000 checkout: moving from master to ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce
|
||||
ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce 90ed234fb0708235a733bcae0e5b90bd4fac5321 André Cruz <andremiguelcruz@msn.com> 1353275237 +0000 checkout: moving from ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce to master
|
||||
90ed234fb0708235a733bcae0e5b90bd4fac5321 ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce André Cruz <andremiguelcruz@msn.com> 1353275825 +0000 checkout: moving from master to 0.0.1
|
||||
ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce 90ed234fb0708235a733bcae0e5b90bd4fac5321 André Cruz <andremiguelcruz@msn.com> 1353275834 +0000 checkout: moving from ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce to master
|
||||
|
||||
@@ -1 +1 @@
|
||||
01df57df1726b7a1a07e981c1ce316436a381e35
|
||||
ee947ec6a8a56f6c57d3fb48d10f8c104c66f4ce
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1,481 @@
|
||||
(function(e){if(typeof exports=="object")module.exports.SparkMD5=e();else if(typeof define=="function"&&define.amd)define("spark-md5",e);else{var t;try{t=window}catch(n){t=self}t.SparkMD5=e()}})(function(e){"use strict";function r(e,n,r,i,s,o){return n=t(t(n,e),t(i,o)),t(n<<s|n>>>32-s,r)}function i(e,t,n,i,s,o,u){return r(t&n|~t&i,e,t,s,o,u)}function s(e,t,n,i,s,o,u){return r(t&i|n&~i,e,t,s,o,u)}function o(e,t,n,i,s,o,u){return r(t^n^i,e,t,s,o,u)}function u(e,t,n,i,s,o,u){return r(n^(t|~i),e,t,s,o,u)}function a(e,n){var r=e[0],a=e[1],f=e[2],l=e[3];r=i(r,a,f,l,n[0],7,-680876936),l=i(l,r,a,f,n[1],12,-389564586),f=i(f,l,r,a,n[2],17,606105819),a=i(a,f,l,r,n[3],22,-1044525330),r=i(r,a,f,l,n[4],7,-176418897),l=i(l,r,a,f,n[5],12,1200080426),f=i(f,l,r,a,n[6],17,-1473231341),a=i(a,f,l,r,n[7],22,-45705983),r=i(r,a,f,l,n[8],7,1770035416),l=i(l,r,a,f,n[9],12,-1958414417),f=i(f,l,r,a,n[10],17,-42063),a=i(a,f,l,r,n[11],22,-1990404162),r=i(r,a,f,l,n[12],7,1804603682),l=i(l,r,a,f,n[13],12,-40341101),f=i(f,l,r,a,n[14],17,-1502002290),a=i(a,f,l,r,n[15],22,1236535329),r=s(r,a,f,l,n[1],5,-165796510),l=s(l,r,a,f,n[6],9,-1069501632),f=s(f,l,r,a,n[11],14,643717713),a=s(a,f,l,r,n[0],20,-373897302),r=s(r,a,f,l,n[5],5,-701558691),l=s(l,r,a,f,n[10],9,38016083),f=s(f,l,r,a,n[15],14,-660478335),a=s(a,f,l,r,n[4],20,-405537848),r=s(r,a,f,l,n[9],5,568446438),l=s(l,r,a,f,n[14],9,-1019803690),f=s(f,l,r,a,n[3],14,-187363961),a=s(a,f,l,r,n[8],20,1163531501),r=s(r,a,f,l,n[13],5,-1444681467),l=s(l,r,a,f,n[2],9,-51403784),f=s(f,l,r,a,n[7],14,1735328473),a=s(a,f,l,r,n[12],20,-1926607734),r=o(r,a,f,l,n[5],4,-378558),l=o(l,r,a,f,n[8],11,-2022574463),f=o(f,l,r,a,n[11],16,1839030562),a=o(a,f,l,r,n[14],23,-35309556),r=o(r,a,f,l,n[1],4,-1530992060),l=o(l,r,a,f,n[4],11,1272893353),f=o(f,l,r,a,n[7],16,-155497632),a=o(a,f,l,r,n[10],23,-1094730640),r=o(r,a,f,l,n[13],4,681279174),l=o(l,r,a,f,n[0],11,-358537222),f=o(f,l,r,a,n[3],16,-722521979),a=o(a,f,l,r,n[6],23,76029189),r=o(r,a,f,l,n[9],4,-640364487),l=o(l,r,a,f,n[12],11,-421815835),f=o(f,l,r,a,n[15],16,530742520),a=o(a,f,l,r,n[2],23,-995338651),r=u(r,a,f,l,n[0],6,-198630844),l=u(l,r,a,f,n[7],10,1126891415),f=u(f,l,r,a,n[14],15,-1416354905),a=u(a,f,l,r,n[5],21,-57434055),r=u(r,a,f,l,n[12],6,1700485571),l=u(l,r,a,f,n[3],10,-1894986606),f=u(f,l,r,a,n[10],15,-1051523),a=u(a,f,l,r,n[1],21,-2054922799),r=u(r,a,f,l,n[8],6,1873313359),l=u(l,r,a,f,n[15],10,-30611744),f=u(f,l,r,a,n[6],15,-1560198380),a=u(a,f,l,r,n[13],21,1309151649),r=u(r,a,f,l,n[4],6,-145523070),l=u(l,r,a,f,n[11],10,-1120210379),f=u(f,l,r,a,n[2],15,718787259),a=u(a,f,l,r,n[9],21,-343485551),e[0]=t(r,e[0]),e[1]=t(a,e[1]),e[2]=t(f,e[2]),e[3]=t(l,e[3])}function f(e){var t=[],n;for(n=0;n<64;n+=4)t[n>>2]=e.charCodeAt(n)+(e.charCodeAt(n+1)<<8)+(e.charCodeAt(n+2)<<16)+(e.charCodeAt(n+3)<<24);return t}function l(e){var t=e.length,n=[1732584193,-271733879,-1732584194,271733878],r,i,s,o,u,l;for(r=64;r<=t;r+=64)a(n,f(e.substring(r-64,r)));e=e.substring(r-64),i=e.length,s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<i;r+=1)s[r>>2]|=e.charCodeAt(r)<<(r%4<<3);s[r>>2]|=128<<(r%4<<3);if(r>55){a(n,s);for(r=0;r<16;r+=1)s[r]=0}return o=t*8,o=o.toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(o[2],16),l=parseInt(o[1],16)||0,s[14]=u,s[15]=l,a(n,s),n}function h(e){var t="",n;for(n=0;n<4;n+=1)t+=c[e>>n*8+4&15]+c[e>>n*8&15];return t}function p(e){var t;for(t=0;t<e.length;t+=1)e[t]=h(e[t]);return e.join("")}function d(e){return p(l(e))}var t=function(e,t){return e+t&4294967295},n,c=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return d("hello")!=="5d41402abc4b2a76b9719d911017c592"&&(t=function(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}),n=function(){this.reset()},n.prototype.append=function(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),this.appendBinary(e),this},n.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t=this._buff.length,n;for(n=64;n<=t;n+=64)a(this._state,f(this._buff.substring(n-64,n)));return this._buff=this._buff.substr(n-64),this},n.prototype.end=function(e){var t=this._buff,n=t.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i,s,o,u,f;for(i=0;i<n;i+=1)r[i>>2]|=t.charCodeAt(i)<<(i%4<<3);r[i>>2]|=128<<(i%4<<3);if(i>55){a(this._state,r);for(i=0;i<16;i+=1)r[i]=0}return o=this._length*8,o=o.toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(o[2],16),f=parseInt(o[1],16)||0,r[14]=u,r[15]=f,a(this._state,r),s=e?this._state:p(this._state),this.reset(),s},n.prototype.reset=function(){return this._buff="",this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},n.prototype.destroy=function(){delete this._state,delete this._buff,delete this._length},n.hash=function(e,t){/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e)));var n=l(e);return t?n:p(n)},n.hashBinary=function(e,t){var n=l(e);return t?n:p(n)},n});
|
||||
/*jshint bitwise:false*/
|
||||
/*global unescape*/
|
||||
|
||||
/**
|
||||
* SparkMD5 is a fast md5 implementation of the MD5 algorithm.
|
||||
* This script is based in the JKM md5 library which is the
|
||||
* fastest algorithm around (see: http://jsperf.com/md5-shootout/7).
|
||||
*
|
||||
* NOTE: Please disable Firebug while testing this script!
|
||||
* Firebug consumes a lot of memory and CPU and slows down by a great margin.
|
||||
* Opera Dragonfly also slows down by a great margin.
|
||||
* Safari/Chrome developer tools seems not to slow it down.
|
||||
*
|
||||
* Improvements over the JKM md5 library:
|
||||
*
|
||||
* - Functionality wrapped in a closure
|
||||
* - Object oriented library
|
||||
* - Incremental md5 (see bellow)
|
||||
* - Validates using jslint
|
||||
*
|
||||
* Incremental md5 performs a lot better for hashing large ammounts of data, such as
|
||||
* files. One could read files in chunks, using the FileReader & Blob's, and append
|
||||
* each chunk for md5 hashing while keeping memory usage low. See example bellow.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* Normal usage:
|
||||
*
|
||||
* var hexHash = SparkMD5.hash('Hi there'); // hex hash
|
||||
* var rawHash = SparkMD5.hash('Hi there', true); // raw hash
|
||||
*
|
||||
* Incremental usage:
|
||||
*
|
||||
* var spark = new SparkMD5();
|
||||
* spark.append('Hi');
|
||||
* spark.append(' there');
|
||||
* var hexHash = spark.end(); // hex hash
|
||||
* var rawHash = spark.end(true); // raw hash
|
||||
*
|
||||
* Hash a file incrementally:
|
||||
*
|
||||
* NOTE: If you test the code bellow using the file:// protocol in chrome you must start the browser with -allow-file-access-from-files argument.
|
||||
* Please see: http://code.google.com/p/chromium/issues/detail?id=60889
|
||||
*
|
||||
* document.getElementById("file").addEventListener("change", function() {
|
||||
*
|
||||
* var fileReader = new FileReader(),
|
||||
* blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,
|
||||
* file = document.getElementById("file").files[0],
|
||||
* chunkSize = 2097152, // read in chunks of 2MB
|
||||
* chunks = Math.ceil(file.size / chunkSize),
|
||||
* currentChunk = 0,
|
||||
* spark = new SparkMD5();
|
||||
*
|
||||
* fileReader.onload = function(e) {
|
||||
* console.log("read chunk nr", currentChunk + 1, "of", chunks);
|
||||
* spark.appendBinary(e.target.result); // append binary string
|
||||
* currentChunk++;
|
||||
*
|
||||
* if (currentChunk < chunks) {
|
||||
* loadNext();
|
||||
* }
|
||||
* else {
|
||||
* console.log("finished loading");
|
||||
* console.info("computed hash", spark.end()); // compute hash
|
||||
* }
|
||||
* };
|
||||
*
|
||||
* function loadNext() {
|
||||
* var start = currentChunk * chunkSize,
|
||||
* end = start + chunkSize >= file.size ? file.size : start + chunkSize;
|
||||
*
|
||||
* fileReader.readAsBinaryString(blobSlice.call(file, start, end));
|
||||
* };
|
||||
*
|
||||
* loadNext();
|
||||
* });
|
||||
*
|
||||
* @TODO: Add native support for reading files? Maybe add it as an extension?
|
||||
*/
|
||||
(function (factory) {
|
||||
if (typeof exports === 'object') {
|
||||
// Node/CommonJS
|
||||
module.exports = factory();
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
// AMD
|
||||
define('spark-md5', factory);
|
||||
} else {
|
||||
// Browser globals (with support for web workers)
|
||||
var glob;
|
||||
try {
|
||||
glob = window;
|
||||
} catch (e) {
|
||||
glob = self;
|
||||
}
|
||||
|
||||
glob.SparkMD5 = factory();
|
||||
}
|
||||
}(function (undefined) {
|
||||
|
||||
'use strict';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
* Fastest md5 implementation around (JKM md5)
|
||||
* Credits: Joseph Myers
|
||||
*
|
||||
* @see http://www.myersdaily.org/joseph/javascript/md5-text.html
|
||||
* @see http://jsperf.com/md5-shootout/7
|
||||
*/
|
||||
|
||||
/* this function is much faster,
|
||||
so if possible we use it. Some IEs
|
||||
are the only ones I know of that
|
||||
need the idiotic second function,
|
||||
generated by an if clause. */
|
||||
var add32 = function (a, b) {
|
||||
return (a + b) & 0xFFFFFFFF;
|
||||
};
|
||||
|
||||
function cmn(q, a, b, x, s, t) {
|
||||
a = add32(add32(a, q), add32(x, t));
|
||||
return add32((a << s) | (a >>> (32 - s)), b);
|
||||
}
|
||||
|
||||
function ff(a, b, c, d, x, s, t) {
|
||||
return cmn((b & c) | ((~b) & d), a, b, x, s, t);
|
||||
}
|
||||
|
||||
function gg(a, b, c, d, x, s, t) {
|
||||
return cmn((b & d) | (c & (~d)), a, b, x, s, t);
|
||||
}
|
||||
|
||||
function hh(a, b, c, d, x, s, t) {
|
||||
return cmn(b ^ c ^ d, a, b, x, s, t);
|
||||
}
|
||||
|
||||
function ii(a, b, c, d, x, s, t) {
|
||||
return cmn(c ^ (b | (~d)), a, b, x, s, t);
|
||||
}
|
||||
|
||||
function md5cycle(x, k) {
|
||||
var a = x[0],
|
||||
b = x[1],
|
||||
c = x[2],
|
||||
d = x[3];
|
||||
|
||||
a = ff(a, b, c, d, k[0], 7, -680876936);
|
||||
d = ff(d, a, b, c, k[1], 12, -389564586);
|
||||
c = ff(c, d, a, b, k[2], 17, 606105819);
|
||||
b = ff(b, c, d, a, k[3], 22, -1044525330);
|
||||
a = ff(a, b, c, d, k[4], 7, -176418897);
|
||||
d = ff(d, a, b, c, k[5], 12, 1200080426);
|
||||
c = ff(c, d, a, b, k[6], 17, -1473231341);
|
||||
b = ff(b, c, d, a, k[7], 22, -45705983);
|
||||
a = ff(a, b, c, d, k[8], 7, 1770035416);
|
||||
d = ff(d, a, b, c, k[9], 12, -1958414417);
|
||||
c = ff(c, d, a, b, k[10], 17, -42063);
|
||||
b = ff(b, c, d, a, k[11], 22, -1990404162);
|
||||
a = ff(a, b, c, d, k[12], 7, 1804603682);
|
||||
d = ff(d, a, b, c, k[13], 12, -40341101);
|
||||
c = ff(c, d, a, b, k[14], 17, -1502002290);
|
||||
b = ff(b, c, d, a, k[15], 22, 1236535329);
|
||||
|
||||
a = gg(a, b, c, d, k[1], 5, -165796510);
|
||||
d = gg(d, a, b, c, k[6], 9, -1069501632);
|
||||
c = gg(c, d, a, b, k[11], 14, 643717713);
|
||||
b = gg(b, c, d, a, k[0], 20, -373897302);
|
||||
a = gg(a, b, c, d, k[5], 5, -701558691);
|
||||
d = gg(d, a, b, c, k[10], 9, 38016083);
|
||||
c = gg(c, d, a, b, k[15], 14, -660478335);
|
||||
b = gg(b, c, d, a, k[4], 20, -405537848);
|
||||
a = gg(a, b, c, d, k[9], 5, 568446438);
|
||||
d = gg(d, a, b, c, k[14], 9, -1019803690);
|
||||
c = gg(c, d, a, b, k[3], 14, -187363961);
|
||||
b = gg(b, c, d, a, k[8], 20, 1163531501);
|
||||
a = gg(a, b, c, d, k[13], 5, -1444681467);
|
||||
d = gg(d, a, b, c, k[2], 9, -51403784);
|
||||
c = gg(c, d, a, b, k[7], 14, 1735328473);
|
||||
b = gg(b, c, d, a, k[12], 20, -1926607734);
|
||||
|
||||
a = hh(a, b, c, d, k[5], 4, -378558);
|
||||
d = hh(d, a, b, c, k[8], 11, -2022574463);
|
||||
c = hh(c, d, a, b, k[11], 16, 1839030562);
|
||||
b = hh(b, c, d, a, k[14], 23, -35309556);
|
||||
a = hh(a, b, c, d, k[1], 4, -1530992060);
|
||||
d = hh(d, a, b, c, k[4], 11, 1272893353);
|
||||
c = hh(c, d, a, b, k[7], 16, -155497632);
|
||||
b = hh(b, c, d, a, k[10], 23, -1094730640);
|
||||
a = hh(a, b, c, d, k[13], 4, 681279174);
|
||||
d = hh(d, a, b, c, k[0], 11, -358537222);
|
||||
c = hh(c, d, a, b, k[3], 16, -722521979);
|
||||
b = hh(b, c, d, a, k[6], 23, 76029189);
|
||||
a = hh(a, b, c, d, k[9], 4, -640364487);
|
||||
d = hh(d, a, b, c, k[12], 11, -421815835);
|
||||
c = hh(c, d, a, b, k[15], 16, 530742520);
|
||||
b = hh(b, c, d, a, k[2], 23, -995338651);
|
||||
|
||||
a = ii(a, b, c, d, k[0], 6, -198630844);
|
||||
d = ii(d, a, b, c, k[7], 10, 1126891415);
|
||||
c = ii(c, d, a, b, k[14], 15, -1416354905);
|
||||
b = ii(b, c, d, a, k[5], 21, -57434055);
|
||||
a = ii(a, b, c, d, k[12], 6, 1700485571);
|
||||
d = ii(d, a, b, c, k[3], 10, -1894986606);
|
||||
c = ii(c, d, a, b, k[10], 15, -1051523);
|
||||
b = ii(b, c, d, a, k[1], 21, -2054922799);
|
||||
a = ii(a, b, c, d, k[8], 6, 1873313359);
|
||||
d = ii(d, a, b, c, k[15], 10, -30611744);
|
||||
c = ii(c, d, a, b, k[6], 15, -1560198380);
|
||||
b = ii(b, c, d, a, k[13], 21, 1309151649);
|
||||
a = ii(a, b, c, d, k[4], 6, -145523070);
|
||||
d = ii(d, a, b, c, k[11], 10, -1120210379);
|
||||
c = ii(c, d, a, b, k[2], 15, 718787259);
|
||||
b = ii(b, c, d, a, k[9], 21, -343485551);
|
||||
|
||||
x[0] = add32(a, x[0]);
|
||||
x[1] = add32(b, x[1]);
|
||||
x[2] = add32(c, x[2]);
|
||||
x[3] = add32(d, x[3]);
|
||||
}
|
||||
|
||||
/* there needs to be support for Unicode here,
|
||||
* unless we pretend that we can redefine the MD-5
|
||||
* algorithm for multi-byte characters (perhaps
|
||||
* by adding every four 16-bit characters and
|
||||
* shortening the sum to 32 bits). Otherwise
|
||||
* I suggest performing MD-5 as if every character
|
||||
* was two bytes--e.g., 0040 0025 = @%--but then
|
||||
* how will an ordinary MD-5 sum be matched?
|
||||
* There is no way to standardize text to something
|
||||
* like UTF-8 before transformation; speed cost is
|
||||
* utterly prohibitive. The JavaScript standard
|
||||
* itself needs to look at this: it should start
|
||||
* providing access to strings as preformed UTF-8
|
||||
* 8-bit unsigned value arrays.
|
||||
*/
|
||||
function md5blk(s) { /* I figured global was faster. */
|
||||
var md5blks = [],
|
||||
i; /* Andy King said do it this way. */
|
||||
for (i = 0; i < 64; i += 4) {
|
||||
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
|
||||
}
|
||||
return md5blks;
|
||||
}
|
||||
|
||||
function md51(s) {
|
||||
var n = s.length,
|
||||
state = [1732584193, -271733879, -1732584194, 271733878],
|
||||
i,
|
||||
length,
|
||||
tail,
|
||||
tmp,
|
||||
lo,
|
||||
hi;
|
||||
|
||||
for (i = 64; i <= n; i += 64) {
|
||||
md5cycle(state, md5blk(s.substring(i - 64, i)));
|
||||
}
|
||||
s = s.substring(i - 64);
|
||||
length = s.length;
|
||||
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
for (i = 0; i < length; i += 1) {
|
||||
tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
|
||||
}
|
||||
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
||||
if (i > 55) {
|
||||
md5cycle(state, tail);
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
tail[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Beware that the final length might not fit in 32 bits so we take care of that
|
||||
tmp = n * 8;
|
||||
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
||||
lo = parseInt(tmp[2], 16);
|
||||
hi = parseInt(tmp[1], 16) || 0;
|
||||
|
||||
tail[14] = lo;
|
||||
tail[15] = hi;
|
||||
|
||||
md5cycle(state, tail);
|
||||
return state;
|
||||
}
|
||||
|
||||
var hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
|
||||
|
||||
function rhex(n) {
|
||||
var s = '',
|
||||
j;
|
||||
for (j = 0; j < 4; j += 1) {
|
||||
s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
function hex(x) {
|
||||
var i;
|
||||
for (i = 0; i < x.length; i += 1) {
|
||||
x[i] = rhex(x[i]);
|
||||
}
|
||||
return x.join('');
|
||||
}
|
||||
|
||||
function md5(s) {
|
||||
return hex(md51(s));
|
||||
}
|
||||
|
||||
// In some cases the fast add32 function cannot be used..
|
||||
if (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {
|
||||
add32 = function (x, y) {
|
||||
var lsw = (x & 0xFFFF) + (y & 0xFFFF),
|
||||
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | (lsw & 0xFFFF);
|
||||
};
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* SparkMD5 OOP implementation.
|
||||
*
|
||||
* Use this class to perform an incremental md5, otherwise use the
|
||||
* static methods instead.
|
||||
*/
|
||||
var SparkMD5 = function () {
|
||||
// call reset to init the instance
|
||||
this.reset();
|
||||
};
|
||||
|
||||
/**
|
||||
* Appends a string.
|
||||
* A conversion will be applied if an utf8 string is detected.
|
||||
*
|
||||
* @param {String} str The string to be appended
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.append = function (str) {
|
||||
// converts the string to utf8 bytes if necessary
|
||||
if (/[\u0080-\uFFFF]/.test(str)) {
|
||||
str = unescape(encodeURIComponent(str));
|
||||
}
|
||||
|
||||
// then append as binary
|
||||
this.appendBinary(str);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Appends a binary string.
|
||||
*
|
||||
* @param {String} contents The binary string to be appended
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.appendBinary = function (contents) {
|
||||
this._buff += contents;
|
||||
this._length += contents.length;
|
||||
|
||||
var length = this._buff.length,
|
||||
i;
|
||||
|
||||
for (i = 64; i <= length; i += 64) {
|
||||
md5cycle(this._state, md5blk(this._buff.substring(i - 64, i)));
|
||||
}
|
||||
|
||||
this._buff = this._buff.substr(i - 64);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Finishes the incremental computation, reseting the internal state and
|
||||
* returning the result.
|
||||
* Use the raw parameter to obtain the raw result instead of the hex one.
|
||||
*
|
||||
* @param {Boolean} raw True to get the raw result, false to get the hex result
|
||||
*
|
||||
* @return {String|Array} The result
|
||||
*/
|
||||
SparkMD5.prototype.end = function (raw) {
|
||||
var buff = this._buff,
|
||||
length = buff.length,
|
||||
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
i,
|
||||
ret,
|
||||
tmp,
|
||||
lo,
|
||||
hi;
|
||||
|
||||
for (i = 0; i < length; i += 1) {
|
||||
tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);
|
||||
}
|
||||
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
||||
if (i > 55) {
|
||||
md5cycle(this._state, tail);
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
tail[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Do the final computation based on the tail and length
|
||||
// Beware that the final length may not fit in 32 bits so we take care of that
|
||||
tmp = this._length * 8;
|
||||
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
||||
lo = parseInt(tmp[2], 16);
|
||||
hi = parseInt(tmp[1], 16) || 0;
|
||||
|
||||
tail[14] = lo;
|
||||
tail[15] = hi;
|
||||
md5cycle(this._state, tail);
|
||||
|
||||
ret = !!raw ? this._state : hex(this._state);
|
||||
|
||||
this.reset();
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
/**
|
||||
* Resets the internal state of the computation.
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.reset = function () {
|
||||
this._buff = "";
|
||||
this._length = 0;
|
||||
this._state = [1732584193, -271733879, -1732584194, 271733878];
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Releases memory used by the incremental buffer and other aditional
|
||||
* resources. If you plan to use the instance again, use reset instead.
|
||||
*/
|
||||
SparkMD5.prototype.destroy = function () {
|
||||
delete this._state;
|
||||
delete this._buff;
|
||||
delete this._length;
|
||||
};
|
||||
|
||||
/**
|
||||
* Performs the md5 hash on a string.
|
||||
* A conversion will be applied if utf8 string is detected.
|
||||
*
|
||||
* @param {String} str The string
|
||||
* @param {Boolean} raw True to get the raw result, false to get the hex result
|
||||
*
|
||||
* @return {String|Array} The result
|
||||
*/
|
||||
SparkMD5.hash = function (str, raw) {
|
||||
// converts the string to utf8 bytes if necessary
|
||||
if (/[\u0080-\uFFFF]/.test(str)) {
|
||||
str = unescape(encodeURIComponent(str));
|
||||
}
|
||||
|
||||
var hash = md51(str);
|
||||
|
||||
return !!raw ? hash : hex(hash);
|
||||
};
|
||||
|
||||
/**
|
||||
* Performs the md5 hash on a binary string.
|
||||
*
|
||||
* @param {String} content The binary string
|
||||
* @param {Boolean} raw True to get the raw result, false to get the hex result
|
||||
*
|
||||
* @return {String|Array} The result
|
||||
*/
|
||||
SparkMD5.hashBinary = function (content, raw) {
|
||||
var hash = md51(content);
|
||||
|
||||
return !!raw ? hash : hex(hash);
|
||||
};
|
||||
|
||||
return SparkMD5;
|
||||
}));
|
||||
|
||||
2
test/assets/package-repo/spark-md5.min.js
vendored
2
test/assets/package-repo/spark-md5.min.js
vendored
@@ -1 +1 @@
|
||||
(function(e){if(typeof exports=="object")module.exports.SparkMD5=e();else if(typeof define=="function"&&define.amd)define("spark-md5",e);else{var t;try{t=window}catch(n){t=self}t.SparkMD5=e()}})(function(e){"use strict";function r(e,n,r,i,s,o){return n=t(t(n,e),t(i,o)),t(n<<s|n>>>32-s,r)}function i(e,t,n,i,s,o,u){return r(t&n|~t&i,e,t,s,o,u)}function s(e,t,n,i,s,o,u){return r(t&i|n&~i,e,t,s,o,u)}function o(e,t,n,i,s,o,u){return r(t^n^i,e,t,s,o,u)}function u(e,t,n,i,s,o,u){return r(n^(t|~i),e,t,s,o,u)}function a(e,n){var r=e[0],a=e[1],f=e[2],l=e[3];r=i(r,a,f,l,n[0],7,-680876936),l=i(l,r,a,f,n[1],12,-389564586),f=i(f,l,r,a,n[2],17,606105819),a=i(a,f,l,r,n[3],22,-1044525330),r=i(r,a,f,l,n[4],7,-176418897),l=i(l,r,a,f,n[5],12,1200080426),f=i(f,l,r,a,n[6],17,-1473231341),a=i(a,f,l,r,n[7],22,-45705983),r=i(r,a,f,l,n[8],7,1770035416),l=i(l,r,a,f,n[9],12,-1958414417),f=i(f,l,r,a,n[10],17,-42063),a=i(a,f,l,r,n[11],22,-1990404162),r=i(r,a,f,l,n[12],7,1804603682),l=i(l,r,a,f,n[13],12,-40341101),f=i(f,l,r,a,n[14],17,-1502002290),a=i(a,f,l,r,n[15],22,1236535329),r=s(r,a,f,l,n[1],5,-165796510),l=s(l,r,a,f,n[6],9,-1069501632),f=s(f,l,r,a,n[11],14,643717713),a=s(a,f,l,r,n[0],20,-373897302),r=s(r,a,f,l,n[5],5,-701558691),l=s(l,r,a,f,n[10],9,38016083),f=s(f,l,r,a,n[15],14,-660478335),a=s(a,f,l,r,n[4],20,-405537848),r=s(r,a,f,l,n[9],5,568446438),l=s(l,r,a,f,n[14],9,-1019803690),f=s(f,l,r,a,n[3],14,-187363961),a=s(a,f,l,r,n[8],20,1163531501),r=s(r,a,f,l,n[13],5,-1444681467),l=s(l,r,a,f,n[2],9,-51403784),f=s(f,l,r,a,n[7],14,1735328473),a=s(a,f,l,r,n[12],20,-1926607734),r=o(r,a,f,l,n[5],4,-378558),l=o(l,r,a,f,n[8],11,-2022574463),f=o(f,l,r,a,n[11],16,1839030562),a=o(a,f,l,r,n[14],23,-35309556),r=o(r,a,f,l,n[1],4,-1530992060),l=o(l,r,a,f,n[4],11,1272893353),f=o(f,l,r,a,n[7],16,-155497632),a=o(a,f,l,r,n[10],23,-1094730640),r=o(r,a,f,l,n[13],4,681279174),l=o(l,r,a,f,n[0],11,-358537222),f=o(f,l,r,a,n[3],16,-722521979),a=o(a,f,l,r,n[6],23,76029189),r=o(r,a,f,l,n[9],4,-640364487),l=o(l,r,a,f,n[12],11,-421815835),f=o(f,l,r,a,n[15],16,530742520),a=o(a,f,l,r,n[2],23,-995338651),r=u(r,a,f,l,n[0],6,-198630844),l=u(l,r,a,f,n[7],10,1126891415),f=u(f,l,r,a,n[14],15,-1416354905),a=u(a,f,l,r,n[5],21,-57434055),r=u(r,a,f,l,n[12],6,1700485571),l=u(l,r,a,f,n[3],10,-1894986606),f=u(f,l,r,a,n[10],15,-1051523),a=u(a,f,l,r,n[1],21,-2054922799),r=u(r,a,f,l,n[8],6,1873313359),l=u(l,r,a,f,n[15],10,-30611744),f=u(f,l,r,a,n[6],15,-1560198380),a=u(a,f,l,r,n[13],21,1309151649),r=u(r,a,f,l,n[4],6,-145523070),l=u(l,r,a,f,n[11],10,-1120210379),f=u(f,l,r,a,n[2],15,718787259),a=u(a,f,l,r,n[9],21,-343485551),e[0]=t(r,e[0]),e[1]=t(a,e[1]),e[2]=t(f,e[2]),e[3]=t(l,e[3])}function f(e){var t=[],n;for(n=0;n<64;n+=4)t[n>>2]=e.charCodeAt(n)+(e.charCodeAt(n+1)<<8)+(e.charCodeAt(n+2)<<16)+(e.charCodeAt(n+3)<<24);return t}function l(e){var t=e.length,n=[1732584193,-271733879,-1732584194,271733878],r,i,s,o,u,l;for(r=64;r<=t;r+=64)a(n,f(e.substring(r-64,r)));e=e.substring(r-64),i=e.length,s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<i;r+=1)s[r>>2]|=e.charCodeAt(r)<<(r%4<<3);s[r>>2]|=128<<(r%4<<3);if(r>55){a(n,s);for(r=0;r<16;r+=1)s[r]=0}return o=t*8,o=o.toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(o[2],16),l=parseInt(o[1],16)||0,s[14]=u,s[15]=l,a(n,s),n}function h(e){var t="",n;for(n=0;n<4;n+=1)t+=c[e>>n*8+4&15]+c[e>>n*8&15];return t}function p(e){var t;for(t=0;t<e.length;t+=1)e[t]=h(e[t]);return e.join("")}function d(e){return p(l(e))}var t=function(e,t){return e+t&4294967295},n,c=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return d("hello")!=="5d41402abc4b2a76b9719d911017c592"&&(t=function(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}),n=function(){this.reset()},n.prototype.append=function(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),this.appendBinary(e),this},n.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t=this._buff.length,n;for(n=64;n<=t;n+=64)a(this._state,f(this._buff.substring(n-64,n)));return this._buff=this._buff.substr(n-64),this},n.prototype.end=function(e){var t=this._buff,n=t.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i,s,o,u,f;for(i=0;i<n;i+=1)r[i>>2]|=t.charCodeAt(i)<<(i%4<<3);r[i>>2]|=128<<(i%4<<3);if(i>55){a(this._state,r);for(i=0;i<16;i+=1)r[i]=0}return o=this._length*8,o=o.toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(o[2],16),f=parseInt(o[1],16)||0,r[14]=u,r[15]=f,a(this._state,r),s=e?this._state:p(this._state),this.reset(),s},n.prototype.reset=function(){return this._buff="",this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},n.prototype.destroy=function(){delete this._state,delete this._buff,delete this._length},n.hash=function(e,t){/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e)));var n=l(e);return t?n:p(n)},n.hashBinary=function(e,t){var n=l(e);return t?n:p(n)},n});
|
||||
(function(e){if(typeof exports=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define("spark-md5",e);else{var t;try{t=window}catch(n){t=self}t.SparkMD5=e()}})(function(e){"use strict";function r(e,n,r,i,s,o){return n=t(t(n,e),t(i,o)),t(n<<s|n>>>32-s,r)}function i(e,t,n,i,s,o,u){return r(t&n|~t&i,e,t,s,o,u)}function s(e,t,n,i,s,o,u){return r(t&i|n&~i,e,t,s,o,u)}function o(e,t,n,i,s,o,u){return r(t^n^i,e,t,s,o,u)}function u(e,t,n,i,s,o,u){return r(n^(t|~i),e,t,s,o,u)}function a(e,n){var r=e[0],a=e[1],f=e[2],l=e[3];r=i(r,a,f,l,n[0],7,-680876936),l=i(l,r,a,f,n[1],12,-389564586),f=i(f,l,r,a,n[2],17,606105819),a=i(a,f,l,r,n[3],22,-1044525330),r=i(r,a,f,l,n[4],7,-176418897),l=i(l,r,a,f,n[5],12,1200080426),f=i(f,l,r,a,n[6],17,-1473231341),a=i(a,f,l,r,n[7],22,-45705983),r=i(r,a,f,l,n[8],7,1770035416),l=i(l,r,a,f,n[9],12,-1958414417),f=i(f,l,r,a,n[10],17,-42063),a=i(a,f,l,r,n[11],22,-1990404162),r=i(r,a,f,l,n[12],7,1804603682),l=i(l,r,a,f,n[13],12,-40341101),f=i(f,l,r,a,n[14],17,-1502002290),a=i(a,f,l,r,n[15],22,1236535329),r=s(r,a,f,l,n[1],5,-165796510),l=s(l,r,a,f,n[6],9,-1069501632),f=s(f,l,r,a,n[11],14,643717713),a=s(a,f,l,r,n[0],20,-373897302),r=s(r,a,f,l,n[5],5,-701558691),l=s(l,r,a,f,n[10],9,38016083),f=s(f,l,r,a,n[15],14,-660478335),a=s(a,f,l,r,n[4],20,-405537848),r=s(r,a,f,l,n[9],5,568446438),l=s(l,r,a,f,n[14],9,-1019803690),f=s(f,l,r,a,n[3],14,-187363961),a=s(a,f,l,r,n[8],20,1163531501),r=s(r,a,f,l,n[13],5,-1444681467),l=s(l,r,a,f,n[2],9,-51403784),f=s(f,l,r,a,n[7],14,1735328473),a=s(a,f,l,r,n[12],20,-1926607734),r=o(r,a,f,l,n[5],4,-378558),l=o(l,r,a,f,n[8],11,-2022574463),f=o(f,l,r,a,n[11],16,1839030562),a=o(a,f,l,r,n[14],23,-35309556),r=o(r,a,f,l,n[1],4,-1530992060),l=o(l,r,a,f,n[4],11,1272893353),f=o(f,l,r,a,n[7],16,-155497632),a=o(a,f,l,r,n[10],23,-1094730640),r=o(r,a,f,l,n[13],4,681279174),l=o(l,r,a,f,n[0],11,-358537222),f=o(f,l,r,a,n[3],16,-722521979),a=o(a,f,l,r,n[6],23,76029189),r=o(r,a,f,l,n[9],4,-640364487),l=o(l,r,a,f,n[12],11,-421815835),f=o(f,l,r,a,n[15],16,530742520),a=o(a,f,l,r,n[2],23,-995338651),r=u(r,a,f,l,n[0],6,-198630844),l=u(l,r,a,f,n[7],10,1126891415),f=u(f,l,r,a,n[14],15,-1416354905),a=u(a,f,l,r,n[5],21,-57434055),r=u(r,a,f,l,n[12],6,1700485571),l=u(l,r,a,f,n[3],10,-1894986606),f=u(f,l,r,a,n[10],15,-1051523),a=u(a,f,l,r,n[1],21,-2054922799),r=u(r,a,f,l,n[8],6,1873313359),l=u(l,r,a,f,n[15],10,-30611744),f=u(f,l,r,a,n[6],15,-1560198380),a=u(a,f,l,r,n[13],21,1309151649),r=u(r,a,f,l,n[4],6,-145523070),l=u(l,r,a,f,n[11],10,-1120210379),f=u(f,l,r,a,n[2],15,718787259),a=u(a,f,l,r,n[9],21,-343485551),e[0]=t(r,e[0]),e[1]=t(a,e[1]),e[2]=t(f,e[2]),e[3]=t(l,e[3])}function f(e){var t=[],n;for(n=0;n<64;n+=4)t[n>>2]=e.charCodeAt(n)+(e.charCodeAt(n+1)<<8)+(e.charCodeAt(n+2)<<16)+(e.charCodeAt(n+3)<<24);return t}function l(e){var t=e.length,n=[1732584193,-271733879,-1732584194,271733878],r,i,s,o,u,l;for(r=64;r<=t;r+=64)a(n,f(e.substring(r-64,r)));e=e.substring(r-64),i=e.length,s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<i;r+=1)s[r>>2]|=e.charCodeAt(r)<<(r%4<<3);s[r>>2]|=128<<(r%4<<3);if(r>55){a(n,s);for(r=0;r<16;r+=1)s[r]=0}return o=t*8,o=o.toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(o[2],16),l=parseInt(o[1],16)||0,s[14]=u,s[15]=l,a(n,s),n}function h(e){var t="",n;for(n=0;n<4;n+=1)t+=c[e>>n*8+4&15]+c[e>>n*8&15];return t}function p(e){var t;for(t=0;t<e.length;t+=1)e[t]=h(e[t]);return e.join("")}function d(e){return p(l(e))}var t=function(e,t){return e+t&4294967295},n,c=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return d("hello")!=="5d41402abc4b2a76b9719d911017c592"&&(t=function(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}),n=function(){this.reset()},n.prototype.append=function(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),this.appendBinary(e),this},n.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t=this._buff.length,n;for(n=64;n<=t;n+=64)a(this._state,f(this._buff.substring(n-64,n)));return this._buff=this._buff.substr(n-64),this},n.prototype.end=function(e){var t=this._buff,n=t.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i,s,o,u,f;for(i=0;i<n;i+=1)r[i>>2]|=t.charCodeAt(i)<<(i%4<<3);r[i>>2]|=128<<(i%4<<3);if(i>55){a(this._state,r);for(i=0;i<16;i+=1)r[i]=0}return o=this._length*8,o=o.toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(o[2],16),f=parseInt(o[1],16)||0,r[14]=u,r[15]=f,a(this._state,r),s=e?this._state:p(this._state),this.reset(),s},n.prototype.reset=function(){return this._buff="",this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},n.prototype.destroy=function(){delete this._state,delete this._buff,delete this._length},n.hash=function(e,t){/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e)));var n=l(e);return t?n:p(n)},n.hashBinary=function(e,t){var n=l(e);return t?n:p(n)},n});
|
||||
@@ -236,15 +236,22 @@ describe('package', function () {
|
||||
|
||||
|
||||
it('Should treat local packages as git repositories if there is a .git', function (next) {
|
||||
var pkg = new Package('spark-md5', __dirname + '/assets/package-repo');
|
||||
var dir = __dirname + '/assets/package-repo';
|
||||
|
||||
fs.renameSync(dir + '/git_repo', dir + '/.git');
|
||||
|
||||
var pkg = new Package('spark-md5', dir);
|
||||
|
||||
pkg.on('resolve', function () {
|
||||
fs.renameSync(dir + '/.git', dir + '/git_repo');
|
||||
assert(fs.existsSync(pkg.path + '/spark-md5.js'));
|
||||
assert(fs.existsSync(pkg.path + '/spark-md5.min.js'));
|
||||
assert(fs.existsSync(pkg.path + '/.jshintrc'));
|
||||
next();
|
||||
});
|
||||
|
||||
pkg.on('error', function (err) {
|
||||
fs.renameSync(dir + '/.git', dir + '/git_repo');
|
||||
throw new Error(err);
|
||||
});
|
||||
|
||||
@@ -252,15 +259,22 @@ describe('package', function () {
|
||||
});
|
||||
|
||||
it('Should treat local packages as git repositories if there is a .git (and handle versions)', function (next) {
|
||||
var pkg = new Package('spark-md5', __dirname + '/assets/package-repo#0.0.1');
|
||||
var dir = __dirname + '/assets/package-repo';
|
||||
|
||||
fs.renameSync(dir + '/git_repo', dir + '/.git');
|
||||
|
||||
var pkg = new Package('spark-md5', dir + '#0.0.1');
|
||||
|
||||
pkg.on('resolve', function () {
|
||||
assert(fs.existsSync(pkg.path + '/spark-md5.js') === false);
|
||||
fs.renameSync(dir + '/.git', dir + '/git_repo');
|
||||
assert(fs.existsSync(pkg.path + '/spark-md5.js'));
|
||||
assert(fs.existsSync(pkg.path + '/spark-md5.min.js'));
|
||||
assert(fs.existsSync(pkg.path + '/.jshintrc') === false);
|
||||
next();
|
||||
});
|
||||
|
||||
pkg.on('error', function (err) {
|
||||
fs.renameSync(dir + '/.git', dir + '/git_repo');
|
||||
throw new Error(err);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user