Comparing version 0.3.0-alpha.16 to 0.3.0-alpha.17
@@ -1,2 +0,2 @@ | ||
/*! lazychain v0.3.0-alpha.16 | (c) 2014, falsandtru | MIT Licence */ | ||
!new function(a,b){"use strict";var c;!function(a){var b;!function(a){a.args2array=function(a){for(var b=a.length,c=Array(b),d=0;b>d;d++)c[d]=a[d];return c}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b,c){var d=void 0===b;switch(c.length){case 0:return d?a():a.call(b);case 1:return d?a(c[0]):a.call(b,c[0]);case 2:return d?a(c[0],c[1]):a.call(b,c[0],c[1]);case 3:return d?a(c[0],c[1],c[2]):a.call(b,c[0],c[1],c[2]);case 4:return d?a(c[0],c[1],c[2],c[3]):a.call(b,c[0],c[1],c[2],c[3]);case 5:return d?a(c[0],c[1],c[2],c[3],c[4]):a.call(b,c[0],c[1],c[2],c[3],c[4]);case 6:return d?a(c[0],c[1],c[2],c[3],c[4],c[5]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5]);case 7:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6]);case 8:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]);case 9:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]);default:return a.apply(b,c)}}a.apply=b}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){if(0>a){for(var c=-a,d=c%8;d--;)b(--c);for(;c;)b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c)}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)b(c++);for(;f--;)b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++)}}function c(a,b){if(0>a){for(var c=-a,d=c%8;d--;)if(!1===b(--c))return;for(;c;){if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return}}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)if(!1===b(c++))return;for(;f--;){if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return}}}a.duff=b,a.duffbk=c}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){switch(!0){case"string"==typeof a:var d=a;return Array(b+1).join(d);case a instanceof Array:var e=a.length;if(300>b){var f=Array(b);c(-b,function(b){return f[b]=a[b%e]})}else{for(var f=a.slice();2*f.length<=b;)f=f.concat(f);f=f.concat(f.slice(0,b-f.length))}return f}}var c=a.duff;a.repeat=b}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.UTILITY.repeat;b.id=function(){var a={};return{rest:function(){return a}}}(),b.type=function(){function a(e,f,g,h){switch(typeof f){case"undefined":if(null===e)return"null";var i=typeof e;return"object"===i||"function"===i?b[c.call(e)]||"object":i;case"string":var j=a(e);return f===j||f.length>j.length+5&&f.indexOf(j)>-1;default:return d(e,f,g,h)}}var b={},c=b.toString;return"Boolean Number String Function Array Date RegExp Object Error".split(/\s+/).forEach(function(a,c){return b["[object "+a+"]"]=a.toLowerCase()}),a}();var d=function(){function a(a,c,l,m,n,o){if(void 0===l&&(l=1),void 0===m&&(m=k),void 0===n&&(n=!1),void 0===o&&(o=[]),0>m)return!1;if(c.length>1&&c[c.length-1]===b.id.rest())return d(a,c.slice(0,-1),l,m,!0,o);if(0===o.length&&(a=e(a),a=f(a,c)),n&&c.length<a.length&&(c=g(a,c)),a.length!==c.length)return!1;for(var p,q,r=0,s=a.length;s>r;r++)switch(p=a[r],q=c[r],b.type(q)){case"undefined":continue;case"null":if(null===p||void 0===p)continue;return!1;case"boolean":case"string":if(q===p)continue;return!1;case"number":if(q===p||b.type(p,"number")&&isNaN(p)&&isNaN(q))continue;return!1;case"date":if(b.type(p,"date")&&p.getUTCMilliseconds()===q.getUTCMilliseconds())continue;return!1;case"array":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"array")&&i(p,q,l,m-1,o.concat([p])))continue;return!1;case"object":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"object")&&j(p,q,l,m-1,o.concat([p])))continue;return!1;case"function":if(void 0===p||null===p||b.type(p,"number")&&isNaN(p))return!1;switch(q){case Boolean:if(b.type(p,"boolean"))continue;return!1;case Number:if(b.type(p,"number"))continue;return!1;case String:if(b.type(p,"string"))continue;return!1;case Date:if(b.type(p,"date"))continue;return!1;case Array:if(b.type(p,"array"))continue;return!1;case Object:if(b.type(p,"object"))continue;return!1;case RegExp:if(b.type(p,"regexp"))continue;return!1;case Function:case Error:default:if(!b.type(p,"function")||p===Function||h(q)?p.constructor===q||p instanceof q&&!h(q):q===p||q.toString()===p.toString()&&j(p,q,l,m-1,o.concat([p])))continue;return!1}case"error":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.name===p.name&&q.message===p.message)continue;return!1;case"regexp":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.source===p.source&&q.global===p.global&&q.ignoreCase===p.ignoreCase&&q.multiline===p.multiline)continue;return!1;default:throw new Error("Undefined pattern.")}return!0}function e(a){if(a instanceof Array)return a.slice();for(var b=[],c=0;c<a.length;c++)b[c-0]=a[c];return b}function f(a,b){for(var c=a.length;void 0===a[--c]&&c+1>b.length;);return a.slice(0,c+1)}function g(a,b){return b.concat(c(b.slice(-1),a.length-b.length))}function h(a){var b="string"==typeof a.name?a.name:a.toString().match(l).pop()+" ",c=b.charAt(0),d=b.charAt(1);return c>="A"&&"Z">=c&&!(d>="A"&&"Z">=d)}function i(a,b,c,e,f){return a.length<b.length-1?!1:(1===b.length&&c>0&&a.length>2*c&&(a=a.slice(0,c).concat(a.slice(-c))),d(a,b,c,e,1===b.length,f))}function j(a,b,c,e,f){var g=!0;for(var h in b)if(g=!1,!(h in a&&d([a[h]],[b[h]],c,e,!1,f)))return!1;if(g){for(var h in a)return!1;return!0}return!0}var k=9,l=/function\s*([^(]*)/;return a}()}(b=a.TYPE||(a.TYPE={}))}(c||(c={}));var c;!function(a){var b;!function(b){function c(a){return e(a,"object")&&"then"in a}var d=a.FUNCTION.apply,e=a.TYPE.type;b.isThenable=c,b.resolve="function"==typeof Promise?Promise.resolve.bind(Promise):function(a){return b.deferred().resolve(a)},b.reject=function(a){return b.deferred().reject(a)},b.when=function(a){function e(a,b){c(b)?b.then(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return f(a,b)},g.reject,g.notify):f(a,[b])}function f(a,b){0!==h&&"pending"===g.state()&&(h-=1,i[a]=b,0===h&&d(g.resolve,void 0,i))}if(0===a.length)return b.deferred().resolve([]);for(var g=b.deferred(),h=a.length,i=Array(h),j=0,k=a.length;k>j;j++)e(j,a[j]);return g.promise()},b.deferred=function(){return function(a){function c(a,b,c){for(var d,e=0,g=b.length;g>e;e++){var h=b[e];c.push(h),d=f(a,[h])}return o!==l&&c.splice(0,c.length),d}function f(a,b){for(var c,e=0,f=a?b.length:0;f>e;e++)c=d(b[e],void 0,a);return c}function g(a){var b=[];if(a instanceof Array)for(var c=a.length;c--;){var d=a[c];d instanceof Array?b=b.concat(g(d)):b.push(d)}return b}var h,i,j,k,l="pending",m="resolved",n="rejected",o=l,p=[],q=[],r=[],s=[],t={state:function(){return o},progress:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&c(h,g(a),p),this},done:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===m)&&c(i,g(a),q),this},fail:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===n)&&c(j,g(a),r),this},always:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return c(k,g(a),s),this},then:function(a,f,g){function k(a,b,f,g){b&&c(a,[function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];var f;"function"==typeof b?(f=d(b,void 0,a),e(f,"object")&&e(f.then,"function")?f.then(s.notify,s.notify,s.notify):g(f)):(b.forEach(function(b){return d(b,void 0,a)}),g())}],f)}var s=b.deferred();return o===l&&k(h,g,p,s.notify),(o===l||o===m)&&k(i,a,q,s.resolve),(o===l||o===n)&&k(j,f,r,s.reject),s.promise()},promise:function(){return{state:t.state,progress:t.progress,done:t.done,fail:t.fail,always:t.always,then:t.then}},notify:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(h=a,f(h,p)),this},resolve:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(i=a,k=a,f(a,q.concat(s)),p=[],q=[],s=[],o=m),this},reject:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(j=a,k=a,f(a,r.concat(s)),p=[],r=[],s=[],o=n),this}};return a&&a(t.resolve,t.reject,t.notify),t}}()}(b=a.PROMISE||(a.PROMISE={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.memoize=function(a){var b;return function(){return void 0===b&&(b=a()),b}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.v4=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16).toUpperCase()})}}(b=a.UUID||(a.UUID={}))}(c||(c={}));var d;!function(a){a.APPLY=c.FUNCTION.apply,a.TYPE=c.TYPE.type,a.PROMISE=c.PROMISE,a.MEMOIZE=c.FUNCTION.memoize,a.UUID=c.UUID.v4;var b;!function(a){a.rest=c.TYPE.id.rest}(b=a.ID||(a.ID={}))}(d||(d={}));var d;!function(c){var d;!function(d){var e=function(){function e(f,g,h){var i=this;void 0===g&&(g=[]),void 0===h&&(h=null),this.NAME=a,this.VERSION=b,this.__LazyChain__={extensions:null,parent:null,child:null,deferred:null,command:null,monad:null,transfer:function(a,b){return i.__LazyChain__.command=[a,b],i.__LazyChain__.child=c.APPLY(d[a],void 0,[i].concat(b))}},this.lazy=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("lazy",b)}}(),this.stream=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("stream",b)}}(),this.pattern=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("pattern",b)}}(),this.monad=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monad",b)}}(),this.monadic=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monadic",b)}}(),this.array=function(){var a=i;return function(){var b;return a.some(function(a,c,d){return b=d}),b||[]}}(),this.prevChain=function(){var a=i;return function(){return a.__LazyChain__.parent}}(),this.nextChain=function(){var a=i;return function(){return a.__LazyChain__.child}}(),this.firstChain=function(){var a=i;return function(){return a.prevChain()&&a.prevChain().firstChain()||a}}(),this.lastChain=function(){var a=i;return function(){return a.nextChain()&&a.nextChain().lastChain()||a}}(),h&&(h.__LazyChain__.child=this,this.__LazyChain__.monad=h.__LazyChain__.monad,this.__LazyChain__.extensions=h.__LazyChain__.extensions),this.__LazyChain__.parent=h,e.map||d.extendStream_(!0,Array.prototype,0,["reverse","slice","sort","every","some","forEach","filter","map","reduce","reduceRight"]),d.mixin(this,this.__LazyChain__.deferred=c.PROMISE.deferred()),this.__LazyChain__.extensions=this.__LazyChain__.extensions||g,this.__LazyChain__.extensions.forEach(function(a){return d.emulate(i,a)});var j=this.__LazyChain__.deferred;f instanceof Array?f.length&&c.APPLY(j.notify,void 0,f):f instanceof e?f.progress(j.notify).done(j.resolve).fail(j.reject):c.PROMISE.isThenable(f)&&f.then(j.notify,j.notify,j.notify)}return e}();d.Stream=e}(d=c.CONTROLLER||(c.CONTROLLER={}))}(d||(d={}));var d;!function(a){var b;!function(b){function c(a,b){return"progress"in a&&"always"in a&&"notify"in b?a.progress(b.notify).always(b.resolve):a.then(b.resolve,b.reject),b}function d(a,b){return void 0===b&&(b=a),new v(b,a.__LazyChain__.extensions,a)}function f(b,c){return b.nextChain()?(c=c||new v(null,b.__LazyChain__.extensions),f(b.nextChain(),a.APPLY(c[b.__LazyChain__.command[0]],c,b.__LazyChain__.command[1]))):c}function g(b){if(!(a.TYPE(b,"object")&&"prototype"in b))return b;switch(b.prototype){case null:return Object.create(null);case void 0:case!1:return b;case!0:if(b.constructor&&b.constructor!==Object)return new b.constructor;var c=function(){};return c.prototype=b,new c;default:return Object.create(b)}}function h(b){var c="function"==typeof setImmediate?setImmediate:function(a){return setTimeout(a,1)};return b.lazy(function(b,d,f){if(!(d>0)){var g=e.deferred();return c(function(b){return a.APPLY(g.resolve,void 0,f)}),g}})}function i(b,c,e,f){function h(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return a.reduce(i,[])}function i(b,d,g,h){var i,m=l?c(d,g,h,e,i=a.PROMISE.deferred()):c(d,g,h,e);return(i=a.PROMISE.isThenable(m)?m:i)?(f?(b.push(i),g+1===h.length&&a.PROMISE.when(b).then(j,k.notify,k.notify)):"progress"in i&&"always"in i?i.progress(k.notify).always(k.notify):i.then(k.notify,k.notify,k.notify),b):b}function j(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return b.forEach(function(b){return a.APPLY(k.notify,void 0,b)})}"boolean"==typeof e&&void 0===f&&(f=e,e={}),e=g(e);var k=d(b,null),l=5===c.length;return c&&b.progress(h).always(h),k}function j(b,c){function f(){return i.notify(j.sentinel)}function g(a){return Date.now()-a>c}function h(a){return a===j.sentinel}var i=d(b),j={prototype:!0,buffer:[],sentinel:{},timer:0,last:0},k=0>c;return c=Math.abs(c),i.lazy(function(b,d,i,j){if(h(b)||j.buffer.push(b),0===j.timer)j.timer=setTimeout(f,c),j.last=Date.now();else if(k&&!h(b))clearTimeout(j.timer),j.timer=setTimeout(f,c);else if(g(j.last)||h(b)){clearTimeout(j.timer),j.timer=0,j.last=Date.now();var l=e.deferred();return a.APPLY(l.resolve,l,j.buffer.splice(0,j.buffer.length))}},j)}function k(a,b,c){function e(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];return a.forEach(function(a,d,e){return b(a,d,e,c)})}return void 0===c&&(c={}),c=g(c),b&&a.progress(e).always(e),d(a)}function l(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(d,a)}),f?b.cascade(d):d}function m(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(a,d)}),f?b.cascade(d):d}function n(a,b){return b.reduceRight(function(a,b){return m(f(b.firstChain()).firstChain(),[a],!1).lastChain()},a)}function o(b,c,e,f){function h(b,c){switch(!0){case!b:return[c,null];case a.PROMISE.isThenable(b):return[c,b];case b instanceof Array&&1===b.length&&!a.PROMISE.isThenable(b[0]):return b[0][""]=c,b[0];case b instanceof Array:return b.unshift(c),b[1]=b[1]||null,b}}void 0===f&&(f={}),f=g(f);var i=d(b,null),j=d(b);return e=h(e,i),j.reduce(function(a,b,d,e){a=d?a:Object.create(null);var g=c.call(void 0,b,d,e,f);return g="boolean"==typeof g?+!g:g,g in a||(a[g]=[]),a[g].push(b),a},null).forEach(function(b){Object.keys(b).filter(function(a){return!!b[a].length}).forEach(function(c){var d=c in e?e[c]||function(a){return void 0}:null;"function"==typeof d?a.APPLY(d,void 0,b[c]):a.APPLY(d.notify,void 0,b[c])})}),i}function p(b,c){function e(b){var d=Array(b.length);return b.forEach(function(b,e){for(var f,g=0,h=c.length;h>g;g++){f=g>0&&c[g-1][0]===c[g][0]?f:a.TYPE([b],[c[g][0]]);var i=c[g],j=i.length;if(f){if(1===j)return d[e]=b;if(2===j)return d[e]=i[1](b);if(3===j&&i[1](b))return d[e]=i[2](b)}}d[e]=b}),d}c=c.concat([[void 0,function(a){return a}]]);var f=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function q(a){return a}function r(a){return a}function s(b,c,e){switch(void 0===e&&(e=!0),b.__LazyChain__.monad=c,e){case!0:return q(d(b.map(function(a){return c["return"].call(void 0,a)})));case!1:return q(d(b));default:return q(d(b.map(function(b){return a.TYPE([b],[e])?c["return"].call(void 0,b):b})))}}function t(b,c){function e(d){var e=Array(d.length);return d.forEach(function(d,f){for(var g,h=0,i=c.length;i>h;h++){g=h>0&&c[h-1][0]===c[h][0]?g:a.TYPE([d],[c[h][0]]);var j=c[h],k=j.length,l=b.__LazyChain__.monad;if(g){if(1===k)return e[f]=d;if(2===k)return e[f]=l.bind(d,j[1]);if(3===k&&l.bind(d,j[1]))return e[f]=l.bind(d,j[2])}}e[f]=l.fail(d)}),e}c=c.concat([[void 0,r(b).__LazyChain__.monad.fail]]);var f=q(d(r(b),null));return r(b).progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function u(b,c,e,f,g){function h(b){var d,h=g?a.APPLY(f[e],f,[b].concat(c)):a.APPLY(f[e],b,c);switch(e){case"every":case"some":d=h?b:[];break;case"reduce":case"reduceRight":d=[h];break;case"forEach":d=[];break;default:d=h instanceof Array?h:[]}return d}var i=b.__LazyChain__.child=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.notify,void 0,h(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.resolve,void 0,h(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.reject,void 0,h(b))}),i}var v=a.CONTROLLER.Stream;b.cascade=d,b.immediate=h,b.lazy=i,b.buffer=j,b.stream=k,b.branch=l,b.merge=m,b.compose=n,b.split=o,b.pattern=p,b.monad=s,b.monadic=t,b.emulator=u}(b=a.MODEL||(a.MODEL={}))}(d||(d={}));var c;!function(a){var b;!function(b){function c(a){try{return a&&"object"==typeof a?JSON.stringify(a):a+""}catch(b){return a+""}}function d(a,b,c){var d;if(b in a){if(d=a[b],d[0][0]!==c)for(var e=1,f=d.length;f>e;e++)if(d[e][0]===c){d.unshift(d.splice(e,1).pop());break}}else d=a[b]=[[c,void 0,Object.create(null)]];return d}function e(a,b,c,d,e,g){var h=a[0];return 0===a.length||h[0]!==b?(h=[b,f(c,void 0,d),Object.create(null)],a.unshift(h)):void 0===h[1]&&(h[1]=f(c,void 0,d)),a.length>e+g&&a.splice(e,e+g),h}var f=a.FUNCTION.apply;b.cache=function(a,b){void 0===b&&(b=5);var f,g,h;return function(){for(var i=[],j=0;j<arguments.length;j++)i[j-0]=arguments[j];var k,l,m=arguments.length;if(0===m)return void 0===h&&(h=a()),h;g=void 0===g?b>20&&10||Math.floor(b/2):g;for(var n,o=f=f||Object.create(null),p=0;m>p;p++)o=p?n[2]:o,k=i[p],l=k&&"object"==typeof k?c(k):k+"",n=e(d(o,l,k),k,a,i,b,g);return n[1]}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.FUNCTION.cache;b.store=function(a){void 0===a&&(a=10);var b,d=c(function(a){return b},a),e=function(a,c){return b=c,d(a)};return function(a,b){if(void 0===b)return e(a);if(b===e(a,b))return b;throw Error(a)}}}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var d;!function(a){var b;!function(b){function d(){var d;return d=function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b.core,void 0,c)},d.id=a.ID,d.uuid=a.UUID,d.args2array=c.FUNCTION.args2array,d.type=a.TYPE,d.memoize=c.FUNCTION.memoize,d.cache=c.FUNCTION.cache,d.store=c.UTILITY.store,d.resolve=a.PROMISE.resolve,d.reject=a.PROMISE.reject,d.deferred=a.PROMISE.deferred,d.when=a.PROMISE.when,d.repeat=c.UTILITY.repeat,d.duff=c.UTILITY.duff,d.duffbk=c.UTILITY.duffbk,d}function f(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];switch(!0){case a.TYPE(c,[!0]):return void g(!0,!1);case a.TYPE(c,[!1]):return void g(!1,!1);case a.TYPE(c,[!0,Array.prototype]):return void g(!0,!0);case a.TYPE(c,[!1,Array.prototype]):return void g(!1,!0);case a.TYPE(c,[!0,Function]):return void h(!0,c[1],1);case a.TYPE(c,[!1,Function]):return void h(!1,c[1],1);case a.TYPE(c,[]):return new b.Stream;case a.TYPE(c,[Function]):return new b.Stream(void 0,[c[0]]);case a.TYPE(c,[Array]):return new b.Stream(c[0]);case a.TYPE(c,[Array,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,a.ID.rest()]):return(new b.Stream).stream(c)}}function g(c,d){["lazy","stream"].forEach(function(f){c?Object.defineProperty(Array.prototype,f,{configurable:!0,writable:!0,enumerable:d,value:function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b[f],void 0,[e(this)].concat(c))}}):delete Array.prototype[f]})}function h(c,d,e,f){void 0===f&&(f=[]),c?Object.keys(d).concat(f).filter(function(a){return!b.Stream.prototype[a]&&"function"==typeof d[a]}).forEach(function(c){b.Stream.prototype[c]=function(){for(var b=[],f=0;f<arguments.length;f++)b[f-0]=arguments[f];return this.__LazyChain__.command=[c,b],a.MODEL.emulator(this,b,c,d,e)},Object.defineProperty(b.Stream.prototype[c],"provider",{configurable:!1,writable:!1,enumerable:!1,value:d})}):Object.keys(d).concat(f).filter(function(a){return!!b.Stream.prototype[a]&&b.Stream.prototype[a].provider===d}).forEach(function(a){return delete b.Stream.prototype[a]})}function i(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.lazy(e,c[1]);case a.TYPE(c,[b.Stream,Function,Boolean]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0,Boolean]):return a.MODEL.lazy(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream]):return a.MODEL.immediate(e);case a.TYPE(c,[b.Stream,Number]):return a.MODEL.buffer(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function j(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.stream(e,c[1]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.stream(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Object,a.ID.rest()]):return a.MODEL.compose(e,c.slice(1));case a.TYPE(c,[b.Stream]):return e;case a.TYPE(c,[b.Stream,!0,[Object]]):return a.MODEL.branch(e,c[2]);case a.TYPE(c,[b.Stream,!1,[Object]]):return a.MODEL.branch(e,c[2]),a.MODEL.cascade(e,null);case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):return a.MODEL.split(e,function(b){return a.TYPE([b],c[1])},c[2]);case a.TYPE(c,[b.Stream,Function,Object,void 0]):case a.TYPE(c,[b.Stream,Function,[Object],void 0]):return a.MODEL.split(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream,String,Object]):case a.TYPE(c,[b.Stream,String,null]):return a.MODEL.split(e,function(b){return a.TYPE(b)===c[1]},c[2]);case a.TYPE(c,[b.Stream,[Object]]):return a.MODEL.merge(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function k(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.pattern(b,c)}function l(b,c,d){return a.MODEL.monad(b,c,d)}function m(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.monadic(b,c)}function n(a,b,c,d){return void 0===c&&(c=[]),void 0===d&&(d=1),Object.keys(b).concat(c).filter(function(c){return!a[c]&&"function"==typeof b[c]}).forEach(function(c){return a[c]=b[c]}),a}function o(b,c,d,e,f){return void 0===d&&(d=[]),void 0===e&&(e=1),void 0===f&&(f=!1),Object.keys(c).concat(d).filter(function(a){return f||!b[a]&&"function"==typeof c[a]}).forEach(function(d){return b[d]=function(){for(var f=[],g=0;g<arguments.length;g++)f[g-0]=arguments[g];return b.__LazyChain__.command=[d,f],a.MODEL.emulator(b,f,d,c,e)}}),b}b.handle=d,b.core=f,b.extendArray_=g,b.extendStream_=h,b.lazy=i,b.stream=j,b.pattern=k,b.monad=l,b.monadic=m,b.mixin=n,b.emulate=o}(b=a.CONTROLLER||(a.CONTROLLER={}))}(d||(d={}));var e,d;!function(a){switch(e=e||a.CONTROLLER.handle(),!0){case"object"==typeof module&&!!module&&module.exports instanceof Object:module.exports=e;break;case"object"==typeof window&&!!window&&window.window===window:window.LazyChain=e}}(d||(d={}))}("lazychain","0.3.0-alpha.16"); | ||
/*! lazychain v0.3.0-alpha.17 | (c) 2014, falsandtru | MIT Licence */ | ||
!new function(a,b){"use strict";var c;!function(a){var b;!function(a){a.args2array=function(a){for(var b=a.length,c=Array(b),d=0;b>d;d++)c[d]=a[d];return c}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b,c){var d=void 0===b;switch(c.length){case 0:return d?a():a.call(b);case 1:return d?a(c[0]):a.call(b,c[0]);case 2:return d?a(c[0],c[1]):a.call(b,c[0],c[1]);case 3:return d?a(c[0],c[1],c[2]):a.call(b,c[0],c[1],c[2]);case 4:return d?a(c[0],c[1],c[2],c[3]):a.call(b,c[0],c[1],c[2],c[3]);case 5:return d?a(c[0],c[1],c[2],c[3],c[4]):a.call(b,c[0],c[1],c[2],c[3],c[4]);case 6:return d?a(c[0],c[1],c[2],c[3],c[4],c[5]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5]);case 7:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6]);case 8:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]);case 9:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]);default:return a.apply(b,c)}}a.apply=b}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){if(0>a){for(var c=-a,d=c%8;d--;)b(--c);for(;c;)b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c)}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)b(c++);for(;f--;)b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++)}}function c(a,b){if(0>a){for(var c=-a,d=c%8;d--;)if(!1===b(--c))return;for(;c;){if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return}}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)if(!1===b(c++))return;for(;f--;){if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return}}}a.duff=b,a.duffbk=c}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){switch(!0){case"string"==typeof a:var d=a;return Array(b+1).join(d);case a instanceof Array:var e=a.length;if(300>b){var f=Array(b);c(-b,function(b){return f[b]=a[b%e]})}else{for(var f=a.slice();2*f.length<=b;)f=f.concat(f);f=f.concat(f.slice(0,b-f.length))}return f}}var c=a.duff;a.repeat=b}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.UTILITY.repeat;b.id=function(){var a={};return{rest:function(){return a}}}(),b.type=function(){function a(e,f,g,h){switch(typeof f){case"undefined":if(null===e)return"null";var i=typeof e;return"object"===i||"function"===i?b[c.call(e)]||"object":i;case"string":var j=a(e);return f===j||f.length>j.length+5&&f.indexOf(j)>-1;default:return d(e,f,g,h)}}var b={},c=b.toString;return"Boolean Number String Function Array Date RegExp Object Error".split(/\s+/).forEach(function(a,c){return b["[object "+a+"]"]=a.toLowerCase()}),a}();var d=function(){function a(a,c,l,m,n,o){if(void 0===l&&(l=1),void 0===m&&(m=k),void 0===n&&(n=!1),void 0===o&&(o=[]),0>m)return!1;if(c.length>1&&c[c.length-1]===b.id.rest())return d(a,c.slice(0,-1),l,m,!0,o);if(0===o.length&&(a=e(a),a=f(a,c)),n&&c.length<a.length&&(c=g(a,c)),a.length!==c.length)return!1;for(var p,q,r=0,s=a.length;s>r;r++)switch(p=a[r],q=c[r],b.type(q)){case"undefined":continue;case"null":if(null===p||void 0===p)continue;return!1;case"boolean":case"string":if(q===p)continue;return!1;case"number":if(q===p||b.type(p,"number")&&isNaN(p)&&isNaN(q))continue;return!1;case"date":if(b.type(p,"date")&&p.getUTCMilliseconds()===q.getUTCMilliseconds())continue;return!1;case"array":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"array")&&i(p,q,l,m-1,o.concat([p])))continue;return!1;case"object":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"object")&&j(p,q,l,m-1,o.concat([p])))continue;return!1;case"function":if(void 0===p||null===p||b.type(p,"number")&&isNaN(p))return!1;switch(q){case Boolean:if(b.type(p,"boolean"))continue;return!1;case Number:if(b.type(p,"number"))continue;return!1;case String:if(b.type(p,"string"))continue;return!1;case Date:if(b.type(p,"date"))continue;return!1;case Array:if(b.type(p,"array"))continue;return!1;case Object:if(b.type(p,"object"))continue;return!1;case RegExp:if(b.type(p,"regexp"))continue;return!1;case Function:case Error:default:if(!b.type(p,"function")||p===Function||h(q)?p.constructor===q||p instanceof q&&!h(q):q===p||q.toString()===p.toString()&&j(p,q,l,m-1,o.concat([p])))continue;return!1}case"error":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.name===p.name&&q.message===p.message)continue;return!1;case"regexp":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.source===p.source&&q.global===p.global&&q.ignoreCase===p.ignoreCase&&q.multiline===p.multiline)continue;return!1;default:throw new Error("Undefined pattern.")}return!0}function e(a){if(a instanceof Array)return a.slice();for(var b=[],c=0;c<a.length;c++)b[c-0]=a[c];return b}function f(a,b){for(var c=a.length;void 0===a[--c]&&c+1>b.length;);return a.slice(0,c+1)}function g(a,b){return b.concat(c(b.slice(-1),a.length-b.length))}function h(a){var b="string"==typeof a.name?a.name:a.toString().match(l).pop()+" ",c=b.charAt(0),d=b.charAt(1);return c>="A"&&"Z">=c&&!(d>="A"&&"Z">=d)}function i(a,b,c,e,f){return a.length<b.length-1?!1:(1===b.length&&c>0&&a.length>2*c&&(a=a.slice(0,c).concat(a.slice(-c))),d(a,b,c,e,1===b.length,f))}function j(a,b,c,e,f){var g=!0;for(var h in b)if(g=!1,!(h in a&&d([a[h]],[b[h]],c,e,!1,f)))return!1;if(g){for(var h in a)return!1;return!0}return!0}var k=9,l=/function\s*([^(]*)/;return a}()}(b=a.TYPE||(a.TYPE={}))}(c||(c={}));var c;!function(a){var b;!function(b){function c(a){return e(a,"object")&&"then"in a}var d=a.FUNCTION.apply,e=a.TYPE.type;b.isThenable=c,b.resolve="function"==typeof Promise?Promise.resolve.bind(Promise):function(a){return b.deferred().resolve(a)},b.reject=function(a){return b.deferred().reject(a)},b.when=function(a){function e(a,b){c(b)?b.then(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return f(a,b)},g.reject,g.notify):f(a,[b])}function f(a,b){0!==h&&"pending"===g.state()&&(h-=1,i[a]=b,0===h&&d(g.resolve,void 0,i))}if(0===a.length)return b.deferred().resolve([]);for(var g=b.deferred(),h=a.length,i=Array(h),j=0,k=a.length;k>j;j++)e(j,a[j]);return g.promise()},b.deferred=function(){return function(a){function c(a,b,c){for(var d,e=0,g=b.length;g>e;e++){var h=b[e];c.push(h),d=f(a,[h])}return o!==l&&c.splice(0,c.length),d}function f(a,b){for(var c,e=0,f=a?b.length:0;f>e;e++)c=d(b[e],void 0,a);return c}function g(a){var b=[];if(a instanceof Array)for(var c=a.length;c--;){var d=a[c];d instanceof Array?b=b.concat(g(d)):b.push(d)}return b}var h,i,j,k,l="pending",m="resolved",n="rejected",o=l,p=[],q=[],r=[],s=[],t={state:function(){return o},progress:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&c(h,g(a),p),this},done:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===m)&&c(i,g(a),q),this},fail:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===n)&&c(j,g(a),r),this},always:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return c(k,g(a),s),this},then:function(a,f,g){function k(a,b,f,g){b&&c(a,[function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];var f;"function"==typeof b?(f=d(b,void 0,a),e(f,"object")&&e(f.then,"function")?f.then(s.notify,s.notify,s.notify):g(f)):(b.forEach(function(b){return d(b,void 0,a)}),g())}],f)}var s=b.deferred();return o===l&&k(h,g,p,s.notify),(o===l||o===m)&&k(i,a,q,s.resolve),(o===l||o===n)&&k(j,f,r,s.reject),s.promise()},promise:function(){return{state:t.state,progress:t.progress,done:t.done,fail:t.fail,always:t.always,then:t.then}},notify:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(h=a,f(h,p)),this},resolve:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(i=a,k=a,f(a,q.concat(s)),p=[],q=[],s=[],o=m),this},reject:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(j=a,k=a,f(a,r.concat(s)),p=[],r=[],s=[],o=n),this}};return a&&a(t.resolve,t.reject,t.notify),t}}()}(b=a.PROMISE||(a.PROMISE={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.memoize=function(a){var b;return function(){return void 0===b&&(b=a()),b}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.v4=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16).toUpperCase()})}}(b=a.UUID||(a.UUID={}))}(c||(c={}));var d;!function(a){a.APPLY=c.FUNCTION.apply,a.TYPE=c.TYPE.type,a.PROMISE=c.PROMISE,a.MEMOIZE=c.FUNCTION.memoize,a.UUID=c.UUID.v4;var b;!function(a){a.rest=c.TYPE.id.rest}(b=a.ID||(a.ID={}))}(d||(d={}));var d;!function(c){var d;!function(d){var e=function(){function e(f,g,h){var i=this;void 0===g&&(g=[]),void 0===h&&(h=null),this.NAME=a,this.VERSION=b,this.__LazyChain__={extensions:null,parent:null,child:null,deferred:null,command:null,monad:null,transfer:function(a,b){return i.__LazyChain__.command=[a,b],i.__LazyChain__.child=c.APPLY(d[a],void 0,[i].concat(b))}},this.lazy=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("lazy",b)}}(),this.stream=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("stream",b)}}(),this.pattern=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("pattern",b)}}(),this.monad=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monad",b)}}(),this.monadic=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monadic",b)}}(),this.array=function(){var a=i;return function(){var b;return a.some(function(a,c,d){return b=d}),b||[]}}(),this.prevChain=function(){var a=i;return function(){return a.__LazyChain__.parent}}(),this.nextChain=function(){var a=i;return function(){return a.__LazyChain__.child}}(),this.firstChain=function(){var a=i;return function(){return a.prevChain()&&a.prevChain().firstChain()||a}}(),this.lastChain=function(){var a=i;return function(){return a.nextChain()&&a.nextChain().lastChain()||a}}(),h&&(h.__LazyChain__.child=this,this.__LazyChain__.monad=h.__LazyChain__.monad,this.__LazyChain__.extensions=h.__LazyChain__.extensions),this.__LazyChain__.parent=h,e.map||d.extendStream_(!0,Array.prototype,0,["reverse","slice","sort","every","some","forEach","filter","map","reduce","reduceRight"]),d.mixin(this,this.__LazyChain__.deferred=c.PROMISE.deferred()),this.__LazyChain__.extensions=this.__LazyChain__.extensions||g,this.__LazyChain__.extensions.forEach(function(a){return d.emulate(i,a)});var j=this.__LazyChain__.deferred;f instanceof Array?f.length&&c.APPLY(j.notify,void 0,f):f instanceof e?f.progress(j.notify).done(j.resolve).fail(j.reject):c.PROMISE.isThenable(f)&&f.then(j.notify,j.notify,j.notify)}return e}();d.Stream=e}(d=c.CONTROLLER||(c.CONTROLLER={}))}(d||(d={}));var d;!function(a){var b;!function(b){function c(a,b){return"progress"in a&&"always"in a&&"notify"in b?a.progress(b.notify).always(b.resolve):a.then(b.resolve,b.reject),b}function d(a,b){return void 0===b&&(b=a),new v(b,a.__LazyChain__.extensions,a)}function f(b,c){return b.nextChain()?(c=c||new v(null,b.__LazyChain__.extensions),f(b.nextChain(),a.APPLY(c[b.__LazyChain__.command[0]],c,b.__LazyChain__.command[1]))):c}function g(b){if(!(a.TYPE(b,"object")&&"prototype"in b))return b;switch(b.prototype){case null:return Object.create(null);case void 0:case!1:return b;case!0:if(b.constructor&&b.constructor!==Object)return new b.constructor;var c=function(){};return c.prototype=b,new c;default:return Object.create(b)}}function h(b){var c="function"==typeof setImmediate?setImmediate:function(a){return setTimeout(a,1)};return b.lazy(function(b,d,f){if(!(d>0)){var g=e.deferred();return c(function(b){return a.APPLY(g.resolve,void 0,f)}),g}})}function i(b,c,e,f){function h(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return a.reduce(i,[])}function i(b,d,g,h){var i,m=l?c(d,g,h,e,i=a.PROMISE.deferred()):c(d,g,h,e);return(i=a.PROMISE.isThenable(m)?m:i)?(f?(b.push(i),g+1===h.length&&a.PROMISE.when(b).then(j,k.notify,k.notify)):"progress"in i&&"always"in i?i.progress(k.notify).always(k.notify):i.then(k.notify,k.notify,k.notify),b):b}function j(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return b.forEach(function(b){return a.APPLY(k.notify,void 0,b)})}"boolean"==typeof e&&void 0===f&&(f=e,e={}),e=g(e);var k=d(b,null),l=5===c.length;return c&&b.progress(h).always(h),k}function j(b,c){function f(){return i.notify(j.sentinel)}function g(a){return Date.now()-a>c}function h(a){return a===j.sentinel}var i=d(b),j={prototype:!0,buffer:[],sentinel:{},timer:0,last:0},k=0>c;return c=Math.abs(c),i.lazy(function(b,d,i,j){if(h(b)||j.buffer.push(b),0===j.timer)j.timer=setTimeout(f,c),j.last=Date.now();else if(k&&!h(b))clearTimeout(j.timer),j.timer=setTimeout(f,c);else if(g(j.last)||h(b)){clearTimeout(j.timer),j.timer=0,j.last=Date.now();var l=e.deferred();return a.APPLY(l.resolve,l,j.buffer.splice(0,j.buffer.length))}},j)}function k(a,b,c){function e(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];return a.forEach(function(a,d,e){return b(a,d,e,c)})}return void 0===c&&(c={}),c=g(c),b&&a.progress(e).always(e),d(a)}function l(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(d,a)}),f?b.cascade(d):d}function m(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(a,d)}),f?b.cascade(d):d}function n(a,b){return b.reduceRight(function(a,b){return m(f(b.firstChain()).firstChain(),[a],!1).lastChain()},a)}function o(b,c,e,f){function h(b,c){switch(!0){case!b:return[c,null];case a.PROMISE.isThenable(b):return[c,b];case b instanceof Array&&1===b.length&&!a.PROMISE.isThenable(b[0]):return b[0][""]=c,b[0];case b instanceof Array:return b.unshift(c),b[1]=b[1]||null,b}}void 0===f&&(f={}),f=g(f);var i=d(b,null),j=d(b);return e=h(e,i),j.reduce(function(a,b,d,e){a=d?a:Object.create(null);var g=c.call(void 0,b,d,e,f);return g="boolean"==typeof g?+!g:g,g in a||(a[g]=[]),a[g].push(b),a},null).forEach(function(b){Object.keys(b).filter(function(a){return!!b[a].length}).forEach(function(c){var d=c in e?e[c]||function(a){return void 0}:null;"function"==typeof d?a.APPLY(d,void 0,b[c]):a.APPLY(d.notify,void 0,b[c])})}),i}function p(b,c){function e(b){var d=Array(b.length);return b.forEach(function(b,e){for(var f,g=0,h=c.length;h>g;g++){f=g>0&&c[g-1][0]===c[g][0]?f:a.TYPE([b],[c[g][0]]);var i=c[g],j=i.length;if(f){if(1===j)return d[e]=b;if(2===j)return d[e]=i[1](b);if(3===j&&i[1](b))return d[e]=i[2](b)}}d[e]=b}),d}c=c.concat([[void 0,function(a){return a}]]);var f=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function q(a){return a}function r(a){return a}function s(b,c,e){switch(void 0===e&&(e=!0),b.__LazyChain__.monad=c,e){case!0:return q(d(b.map(function(a){return c["return"].call(void 0,a)})));case!1:return q(d(b));default:return q(d(b.map(function(b){return a.TYPE([b],[e])?c["return"].call(void 0,b):b})))}}function t(b,c){function e(d){var e=Array(d.length);return d.forEach(function(d,f){for(var g,h=0,i=c.length;i>h;h++){g=h>0&&c[h-1][0]===c[h][0]?g:a.TYPE([d],[c[h][0]]);var j=c[h],k=j.length,l=b.__LazyChain__.monad;if(g){if(1===k)return e[f]=d;if(2===k)return e[f]=l.bind(d,j[1]);if(3===k&&l.bind(d,j[1]))return e[f]=l.bind(d,j[2])}}e[f]=l.fail(d)}),e}c=c.concat([[void 0,r(b).__LazyChain__.monad.fail]]);var f=q(d(r(b),null));return r(b).progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function u(b,c,e,f,g){function h(b){var d,h=g?a.APPLY(f[e],f,[b].concat(c)):a.APPLY(f[e],b,c);switch(e){case"every":case"some":d=h?b:[];break;case"reduce":case"reduceRight":d=[h];break;case"forEach":d=[];break;default:d=h instanceof Array?h:[]}return d}var i=b.__LazyChain__.child=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.notify,void 0,h(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.resolve,void 0,h(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.reject,void 0,h(b))}),i}var v=a.CONTROLLER.Stream;b.cascade=d,b.immediate=h,b.lazy=i,b.buffer=j,b.stream=k,b.branch=l,b.merge=m,b.compose=n,b.split=o,b.pattern=p,b.monad=s,b.monadic=t,b.emulator=u}(b=a.MODEL||(a.MODEL={}))}(d||(d={}));var c;!function(a){var b;!function(b){function c(a){try{return a&&"object"==typeof a?JSON.stringify(a):a+""}catch(b){return a+""}}function d(a,b,c){var d;if(b in a){if(d=a[b],d[0][0]!==c)for(var e=1,f=d.length;f>e;e++)if(d[e][0]===c){d.unshift(d.splice(e,1).pop());break}}else d=a[b]=[[c,void 0,Object.create(null)]];return d}function e(a,b,c,d,e,g){var h=a[0];return 0===a.length||h[0]!==b?(h=[b,f(c,void 0,d),Object.create(null)],a.unshift(h)):void 0===h[1]&&(h[1]=f(c,void 0,d)),a.length>e+g&&a.splice(e,e+g),h}var f=a.FUNCTION.apply;b.cache=function(a,b){void 0===b&&(b=5);var f,g,h;return function(){for(var i=[],j=0;j<arguments.length;j++)i[j-0]=arguments[j];var k,l,m=arguments.length;if(0===m)return void 0===h&&(h=a()),h;g=void 0===g?b>20&&10||Math.floor(b/2):g;for(var n,o=f=f||Object.create(null),p=0;m>p;p++)o=p?n[2]:o,k=i[p],l=k&&"object"==typeof k?c(k):k+"",n=e(d(o,l,k),k,a,i,b,g);return n[1]}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.FUNCTION.cache;b.store=function(a){void 0===a&&(a=10);var b,d=c(function(a){return b},a),e=function(a,c){return b=c,d(a)};return function(a,b){if(void 0===b)return e(a);if(b===e(a,b))return b;throw Error(a)}}}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var d;!function(a){var b;!function(b){function d(){var d;return d=function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b.core,void 0,c)},d.id=a.ID,d.uuid=a.UUID,d.args2array=c.FUNCTION.args2array,d.type=a.TYPE,d.memoize=c.FUNCTION.memoize,d.cache=c.FUNCTION.cache,d.store=c.UTILITY.store,d.resolve=a.PROMISE.resolve,d.reject=a.PROMISE.reject,d.deferred=a.PROMISE.deferred,d.when=a.PROMISE.when,d.repeat=c.UTILITY.repeat,d.duff=c.UTILITY.duff,d.duffbk=c.UTILITY.duffbk,d}function f(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];switch(!0){case a.TYPE(c,[!0]):return void g(!0,!1);case a.TYPE(c,[!1]):return void g(!1,!1);case a.TYPE(c,[!0,Array.prototype]):return void g(!0,!0);case a.TYPE(c,[!1,Array.prototype]):return void g(!1,!0);case a.TYPE(c,[!0,Function]):return void h(!0,c[1],1);case a.TYPE(c,[!1,Function]):return void h(!1,c[1],1);case a.TYPE(c,[]):return new b.Stream;case a.TYPE(c,[Function]):return new b.Stream(void 0,[c[0]]);case a.TYPE(c,[Array]):return new b.Stream(c[0]);case a.TYPE(c,[Array,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,a.ID.rest()]):return(new b.Stream).stream(c)}}function g(c,d){["lazy","stream"].forEach(function(f){c?Object.defineProperty(Array.prototype,f,{configurable:!0,writable:!0,enumerable:d,value:function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b[f],void 0,[e(this)].concat(c))}}):delete Array.prototype[f]})}function h(c,d,e,f){void 0===f&&(f=[]),c?Object.keys(d).concat(f).filter(function(a){return!b.Stream.prototype[a]&&"function"==typeof d[a]}).forEach(function(c){b.Stream.prototype[c]=function(){for(var b=[],f=0;f<arguments.length;f++)b[f-0]=arguments[f];return this.__LazyChain__.command=[c,b],a.MODEL.emulator(this,b,c,d,e)},Object.defineProperty(b.Stream.prototype[c],"provider",{configurable:!1,writable:!1,enumerable:!1,value:d})}):Object.keys(d).concat(f).filter(function(a){return!!b.Stream.prototype[a]&&b.Stream.prototype[a].provider===d}).forEach(function(a){return delete b.Stream.prototype[a]})}function i(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.lazy(e,c[1]);case a.TYPE(c,[b.Stream,Function,Boolean]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0,Boolean]):return a.MODEL.lazy(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream]):return a.MODEL.immediate(e);case a.TYPE(c,[b.Stream,Number]):return a.MODEL.buffer(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function j(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.stream(e,c[1]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.stream(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Object,a.ID.rest()]):return a.MODEL.compose(e,c.slice(1));case a.TYPE(c,[b.Stream]):return e;case a.TYPE(c,[b.Stream,!0,[Object]]):return a.MODEL.branch(e,c[2]);case a.TYPE(c,[b.Stream,!1,[Object]]):return a.MODEL.branch(e,c[2]),a.MODEL.cascade(e,null);case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):return a.MODEL.split(e,function(b){return a.TYPE([b],c[1])},c[2]);case a.TYPE(c,[b.Stream,Function,Object,void 0]):case a.TYPE(c,[b.Stream,Function,[Object],void 0]):return a.MODEL.split(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream,String,Object]):case a.TYPE(c,[b.Stream,String,null]):return a.MODEL.split(e,function(b){return a.TYPE(b)===c[1]},c[2]);case a.TYPE(c,[b.Stream,[Object]]):return a.MODEL.merge(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function k(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.pattern(b,c)}function l(b,c,d){return a.MODEL.monad(b,c,d)}function m(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.monadic(b,c)}function n(a,b,c,d){return void 0===c&&(c=[]),void 0===d&&(d=1),Object.keys(b).concat(c).filter(function(c){return!a[c]&&"function"==typeof b[c]}).forEach(function(c){return a[c]=b[c]}),a}function o(b,c,d,e,f){return void 0===d&&(d=[]),void 0===e&&(e=1),void 0===f&&(f=!1),Object.keys(c).concat(d).filter(function(a){return f||!b[a]&&"function"==typeof c[a]}).forEach(function(d){return b[d]=function(){for(var f=[],g=0;g<arguments.length;g++)f[g-0]=arguments[g];return b.__LazyChain__.command=[d,f],a.MODEL.emulator(b,f,d,c,e)}}),b}b.handle=d,b.core=f,b.extendArray_=g,b.extendStream_=h,b.lazy=i,b.stream=j,b.pattern=k,b.monad=l,b.monadic=m,b.mixin=n,b.emulate=o}(b=a.CONTROLLER||(a.CONTROLLER={}))}(d||(d={}));var e,d;!function(a){switch(e=e||a.CONTROLLER.handle(),!0){case"object"==typeof module&&!!module&&module.exports instanceof Object:module.exports=e;break;case"object"==typeof window&&!!window&&window.window===window:window.LazyChain=e}}(d||(d={}))}("lazychain","0.3.0-alpha.17"); |
@@ -11,2 +11,36 @@ --- | ||
## 0.3.0 alpha 17 | ||
No difference on usage. | ||
### Highlights | ||
### Compatibility | ||
<table> | ||
<thead><tr><th>Behavior</th><th>Detail</th></tr></thead> | ||
<tr><td>Change</td><td>-</td></tr> | ||
<tr><td>Add</td><td>-</td></tr> | ||
<tr><td>Fix</td><td>-</td></tr> | ||
</table> | ||
<table> | ||
<thead><tr><th>Interface</th><th>Detail</th></tr></thead> | ||
<tr><td>Change</td><td>-</td></tr> | ||
<tr><td>Add</td><td>-</td></tr> | ||
<tr><td>Fix</td><td>-</td></tr> | ||
</table> | ||
<table> | ||
<thead><tr><th>Spec</th><th>Detail</th></tr></thead> | ||
<tr><td>Change</td><td>-</td></tr> | ||
<tr><td>Add</td><td>-</td></tr> | ||
<tr><td>Fix</td><td>-</td></tr> | ||
</table> | ||
### Diff | ||
[compare](https://github.com/falsandtru/lazychain/compare/v0.3.0-alpha.16...v0.3.0-alpha.17) | ||
## 0.3.0 alpha 16 | ||
@@ -13,0 +47,0 @@ |
{ | ||
"name": "lazychain", | ||
"version": "0.3.0-alpha.16", | ||
"version": "0.3.0-alpha.17", | ||
"description": "", | ||
@@ -16,3 +16,3 @@ "private": false, | ||
"devDependencies": { | ||
"chai": "^3.1.0", | ||
"chai": "^3.2.0", | ||
"grunt-cli": "^0.1.13", | ||
@@ -46,4 +46,3 @@ "grunt-contrib-clean": "^0.6.0", | ||
"phantomjs": "^1.9.17", | ||
"requirejs": "^2.1.19", | ||
"typescript": "1.5.0-beta" | ||
"requirejs": "^2.1.19" | ||
}, | ||
@@ -50,0 +49,0 @@ "author": "falsandtru", |
@@ -16,23 +16,23 @@ /// <reference path="../define.ts"/> | ||
export function handle(): typeof LazyChain { | ||
var LazyChain: typeof LazyChain; | ||
var lazychain: typeof LazyChain; | ||
LazyChain = ((...args) => APPLY(CONTROLLER.core, void 0, args)); | ||
lazychain = <any>((...args) => APPLY(CONTROLLER.core, void 0, args)); | ||
LazyChain.id = ID; | ||
LazyChain.uuid = UUID; | ||
LazyChain.args2array = LIBRALY.FUNCTION.args2array; | ||
LazyChain.type = TYPE; | ||
LazyChain.memoize = LIBRALY.FUNCTION.memoize; | ||
LazyChain.cache = LIBRALY.FUNCTION.cache; | ||
LazyChain.store = LIBRALY.UTILITY.store; | ||
LazyChain.resolve = PROMISE.resolve; | ||
LazyChain.reject = PROMISE.reject; | ||
LazyChain.deferred = PROMISE.deferred; | ||
LazyChain.when = PROMISE.when; | ||
lazychain.id = ID; | ||
lazychain.uuid = UUID; | ||
lazychain.args2array = LIBRALY.FUNCTION.args2array; | ||
lazychain.type = TYPE; | ||
lazychain.memoize = LIBRALY.FUNCTION.memoize; | ||
lazychain.cache = LIBRALY.FUNCTION.cache; | ||
lazychain.store = LIBRALY.UTILITY.store; | ||
lazychain.resolve = PROMISE.resolve; | ||
lazychain.reject = PROMISE.reject; | ||
lazychain.deferred = PROMISE.deferred; | ||
lazychain.when = PROMISE.when; | ||
(<any>LazyChain).repeat = LIBRALY.UTILITY.repeat; | ||
(<any>LazyChain).duff = LIBRALY.UTILITY.duff; | ||
(<any>LazyChain).duffbk = LIBRALY.UTILITY.duffbk; | ||
(<any>lazychain).repeat = LIBRALY.UTILITY.repeat; | ||
(<any>lazychain).duff = LIBRALY.UTILITY.duff; | ||
(<any>lazychain).duffbk = LIBRALY.UTILITY.duffbk; | ||
return LazyChain; | ||
return lazychain; | ||
} | ||
@@ -39,0 +39,0 @@ |
Sorry, the diff of this file is too big to display
1644329
30