/
pico.min.js
2 lines (2 loc) · 14.3 KB
/
pico.min.js
1
2
(function(e,r,t){var n,i,o=function(){},a=function(){arguments[arguments.length-1]()},u={run:o,build:o,reload:o,parse:o,define:o,"import":o,"export":o,env:o,ajax:o},s={"&":"&","'":"'","\n":"\\n","\r":"\\n"},l={},c={},f=".js",p=".json",d="pico.define('URL','FUNC')\n",h='"use strict";\n',v="//# sourceURL=",g="return arguments.callee.__proto__.apply(this,arguments)",m={},b={},y={},S=function(e){return e.substring(e.indexOf("{")+1,e.lastIndexOf("}"))},x=function(e){if(!e)return null;var r=e.lastIndexOf(".");return-1!==r&&-1===e.indexOf("/",r)?e.substr(r):null},k=function(e,r){return e.length?void T(e.shift(),function(t){return t?r(t):void k(e,r)}):r()},T=function(e,r){if(l[e])return r(null,l[e]);var t=x(e),i=e.indexOf("/"),o=m[-1===i?e:e.substr(0,i)];o||(i=-1,o=m["*"]||"");var a=-1===i?e:e.substr(i+1);o instanceof Function?o(a,function(t,n){return t?r(t):(l[e]=n,void r(null,n))}):n("get",o+a+(t?"":f),null,null,function(n,i,o){if(n)return r(n);if(4===i)switch(t||f){case f:return F(e,o,r);default:return r(null,N(e,o))}})},I=function(){return Function(g)},O=function(e,r){var t=l[e];return t?(setTimeout(r||o,0,null,t),t):r?T(e,r):l[e]=I()},w=function(e,r,t,n,i){i=i||u;var a=e?h+r+(b.live?"":v+e):r,s=function(e){return l[e]||t.push(e),l[e]},c=function(e){n.unshift(e),s(e)};try{var f=Function("exports","require","module","define","inherit","pico",a)}catch(p){return console.error(e,p.message)}return f.call({},{},s,{},o,c,i),f},N=function(e,r,t,n){var i=x(e)||f,a=y[i];switch(a&&(r=a(e,r)),i){case f:var u={exports:{}},s={},d=r.call(n?{}:s,u.exports,O,u,N,o,J)||u.exports;if(t&&(d.__proto__=t),s.load&&s.load(),!e)return d;c[e]=s;var h=l[e];return h?(h.prototype=d.prototype,h.__proto__=d,l[e]=h):l[e]=d;case p:try{return l[e]=JSON.parse(r)}catch(v){return console.error(e,v.message)}default:return l[e]=r}},F=function(e,r,t){if(t=t||o,l[e])return t(null,l[e]);var n=[],i=[],a=w(e,r,n,i);e&&(l[e]=I()),k(n,function(r){return r?t(r):void t(null,N(e,a,l[i[0]]))})},J=e[r]={run:function(e,r){J.ajax=n=e.ajax||n,m=e.paths||m,b=e.env||b,y=e.preprocessors||y;var t;for(var o in l)t=y[x(o)||f],t&&(l[o]=t(o,l[o]));(e.onLoad||a)(function(){F(e.name||null,S(r.toString()),function(e,r){return e?console.error(e):(r instanceof Function&&r(),void(i&&i()))})})},build:function(e){var r=t("fs"),n=e.entry,o=e.output,a=e.exclude,u=N,l=function(e,t){t&&t.length&&(r.appendFileSync(e,r.readFileSync(t.shift())),r.appendFileSync(e,"\n"),l(e,t))},c=function(e,r){return e&&e.length?void T(e.shift(),function(t){c(e,r)}):r()};N=function(e,t,n){if(u(e,t,n,!0),e&&-1===a.indexOf(e))switch(x(e)||f){case f:return r.appendFileSync(o,d.replace("URL",e).replace("'FUNC'",t.toString()));case p:return r.appendFileSync(o,d.replace("URL",e).replace("FUNC",JSON.stringify(JSON.parse(t))));default:return r.appendFileSync(o,d.replace("URL",e).replace("FUNC",t.replace(/[&'\n\r]/g,function(e){return s[e]})))}},r.unlink(o,function(){l(o,e.deps),r.readFile(n,"utf8",function(t,u){if(t)return console.error(t);var s=w(null,u,[],[],J);-1===a.indexOf(n)&&(i=function(){r.appendFileSync(o,S(s.toString())),c(e.include,function(e){e&&console.error(e),process.exit()})})})})},reload:function(e,r,t){"function"==typeof r&&(t=r),t=t||o;var n=l[e];if(delete l[e],f!==(x(e)||f))return t(null,n);var i=function(r,i){return r?t(r):n?(n.prototype=i.prototype,n.__proto__=i,t(null,l[e]=n)):t(null,i)};"string"==typeof r?F(e,r,i):T(e,i)},parse:F,define:N,"import":t,"export":O,env:function(e){return b[e]}};"object"==typeof process&&(n=n||function(e,r,n,i,o,a){var u=t("fs").readFileSync(r,"utf8");return u?process.nextTick(o,null,4,u,a):void process.nextTick(o,"failed",2,null,a)}),N("pico/obj",function(){var r=["object","function"];return{extend:function(e,t,n){var i=r.indexOf(typeof e);if(-1===i)return t;var o=r.indexOf(typeof t);if(-1===o)return e;if(1===o&&o===i)return t;n=n||{};var a,u,s=n.tidy,l=arguments.callee;if(1===o||void 0===t.length)for(a in t)u=t[a],void 0===u&&s||(e[a]=l(e[a],u,n));else if(n.mergeArr){var c,f,p={};for(c=0,f=e.length;f>c;c++)void 0===(u=e[c])&&s||(p[u]=u);for(c=0,f=t.length;f>c;c++)void 0===(u=t[c])&&s||(p[u]=u);e=[];for(a in p)e.push(p[a])}else e=t;return e},"extends":function(e,r,t){for(var n,i=this.extend,o=0;n=r[o];o++)e=i(e,n,t);return e},parseInts:function(e){for(var r=0,t=e.length;t>r;r++)e[r]=parseInt(e[r]);return e},pluck:function(e,r){var t=[];if(e.length){var n,i,o,a,u,s={};for(o=0,a=e.length;a>o;o++)n=e[o],n&&(i=n[r],void 0!==i&&(s[i]=i));for(u in s)t.push(s[u])}return t},strip:function(e,r){if(e.length)for(var t,n=0;t=e[n];n++)t[r]=void 0;return e},keyValues:function(e,r,t){for(var n,i={},o=0;n=e[o];o++)i[n[r]]=n[t];return i},map:function(e,r,t,n){for(var i,o={},a=0;i=e[a];a++)o[r[i[t]]]=i[n];return o},replace:function(e,r,t){for(var n,i=0;n=e[i];i++)n[t]=r[n[t]];return e},group:function(e,r,t){for(var n,i,o={},a=0;i=e[a];a++)n=i[t],n=r[n]||n,o[n]=o[n]||[],o[n].push(i);return o},values:function(e,r){for(var t,n=[],i=0;t=e[i];i++)n.push(r[t]);return n},merge:function(e,r){if(!e)return r;if(!r)return e;for(var t,n=0,i=Object.keys(r);t=i[n];n++)e[t]=r[t];return e},mergeByKey:function(r,t,n){var i,o=e.exports.merge,a={},u=[];if(r)for(var s,l=0;s=r[l];l++)i=s[n],void 0!==i&&(a[i]=s);if(t)for(var c,f=0;c=t[f];f++)i=c[n],void 0!==i&&(s=a[i],a[i]=s?o(s,c):c);for(i in a)u.push(a[i]);return u},filter:function(e,r,t){for(var n,i,o=[],a=0;i=e[a];a++)n=i[t],n&&-1===r.indexOf(n)&&o.push(i);return o},insert:function(r,t){for(var n,i=e.exports.merge,o=0;n=r[o];o++)n=i(n,t);return r}}}),N("pico/str",function(){var e=(Math.ceil,Math.random),r=function(e,r){var t=r[0];return"["+(t.getFunctionName()||t.getTypeName()+"."+t.getMethodName())+"@"+t.getFileName()+":"+t.getLineNumber()+":"+t.getColumnNumber()+"]"};return{codec:function(e,r){for(var t,n="",i=0;t=r.charCodeAt(i);i++)n+=String.fromCharCode(t^e);return n},hash:function(e){for(var r,t=0,n=0;r=e.charCodeAt(n);n++)t=(t<<5)-t+r,t&=t;return t},rand:function(){return e().toString(36).substr(2)},tab:function(e,r,t){var n="",i=r-e.length;if(!i||1>i)return n;t=t||" ";for(var o=0;i>o;o++)n+=t;return n},log:function(){var e=Error.prepareStackTrace,t=Error.stackTraceLimit;Error.prepareStackTrace=r,Error.stackTraceLimit=1;var n=new Error;Error.captureStackTrace(n,arguments.callee);var i=[(new Date).toISOString(),n.stack];console.log.apply(console,i.concat(Array.prototype.slice.call(arguments))),Error.prepareStackTrace=e,Error.stackTraceLimit=t},error:function(){var e=Error.stackTraceLimit;Error.stackTraceLimit=4;var r=new Error;Error.captureStackTrace(r,arguments.callee);var t=[(new Date).toISOString()];t=t.concat(Array.prototype.slice.call(arguments)),t.push("\n"),console.error.apply(console,t.concat(r.stack)),Error.stackTraceLimit=e}}}),N("pico/test",function(){var e=J["export"]("pico/str"),r="undefined"==typeof t?JSON.stringify:t("util").inspect;return{ensure:function(t,n){n(function(n,i){return n?console.error(t+":"+e.tab(t,100,"-")+n):void console.log(t+":"+e.tab(t,100,".")+r(i,{colors:!0}))})}}}),N("pico/time",function(){var e=Math.max,r=Math.min,t=Math.floor,n=864e5,i=36e5,o=6e4,a=1e3,u=function(e,r,t){var n=e.split("/"),i=n[0];if("*"===i)n[0]=r;else if(i=n[0]=parseInt(i),r>i||i>t)return;return 1===n.length?n.push(0):n[1]=parseInt(n[1]),n},s=function(e,r,t){if("*"===e)return 0;var n=[];list=e.split(",");for(var i,o,a,s,l,c,f,p=0;i=list[p];p++){if(a=i.split("-"),!a.length)return null;if(s=u(a[0],r,t),1!==a.length)if(l=u(a[1],r,t),o=s[0],c=l[0],f=l[1]||1,o>c){for(c=t;c>=o;o+=f)n.push(o);for(o=r,c=l[0];c>=o;o+=f)n.push(o)}else for(;c>=o;o+=f)n.push(o);else if(f=s[1])for(o=s[0];t>=o;o+=f)n.push(o);else n.push(s[0])}return n.sort(function(e,r){return e-r}),n},l=function(t,n,i){if(!n)return t;if(e.apply(Math,n.concat(t))===t)return t+(i-t)+r.apply(Math,n);for(var o=0,a=n.length;a>o;o++)if(n[o]>=t)return n[o];console.error("not suppose to be here",t,n,i)},c=function(e,r,a,u,s,f,p,d,h){if(r++>1)return h(0);var v=l(e.getMinutes(),a,60),g=l(e.getHours()+t(v/60),u,24),m=e.getDate(),b=e.getMonth(),y=e.getFullYear(),S=new Date(y,b,0).getDate();if(p){var x=e.getDay()+t(g/24),k=l(x,p,7);m+=k-x}else m=l(m+t(g/24),s,S);if(b=l(b+1+t(m/S),f,12),e.getMonth()+1!==b)return c(new Date(y,b-1),r,a,u,s,f,p,d,h);if(y=l(y+t((b-1)/12),d,0),e.getFullYear()!==y)return c(new Date(y,b-1),r,a,u,s,f,p,d,h);var T=new Date(y,(b-1)%12).getTime();return T+=(m%S-1)*n,T+=g%24*i,T+=v%60*o,h(T)};return{deltaToNext:function(e,r,t,n,u){var s=new Date,l=s.getTime()%i-((t||0)*o+(n||0)*a+(u||0)),c=(r||0)+24*e-s.getHours();return c*i-l},timeOfNext:function(e,r,t,n,i){return new Date(Date.now()+this.deltaToNext(e,r,t,n,i)).getTime()},parse:function(e){var r=e.split(" ");if(r.length<6)return 0;var t=s(r[0],0,59);if(null==t)return 0;var n=s(r[1],0,23);if(null==n)return 0;var i=s(r[2],1,31);if(null==i)return 0;var o=s(r[3],1,12);if(null==o)return 0;var a=s(r[4],0,6);if(null==a)return 0;var u=s(r[5],1975,2075);return null==u?0:[t,n,i,o,a,u]},nearest:function(e,r,t,n,i,a){var u=new Date,s=l(u.getFullYear(),a,0),f=l(u.getMonth()+1,n,12)-1;if(u.getFullYear()!==s||u.getMonth()!==f)u=new Date(s,f);else{var p=u.getTime();u=new Date(p+o)}return c(u,0,e,r,t,n,i,a,function(e){return e})}}}),N("pico/web",function(e,r,t,i,o,a){function u(e){return e.url?(k(this,e),this.reqId=1+l(1e3*c()),this.inbox=[],this.outbox=[],this.uploads=[],this.callbacks={},this.acks=[],this.reqs=[],this.resEndPos=0,this.head=null,this.body=[],this.currPT=p,this.serverTime=0,this.serverTimeAtClient=0,void(this.beatId=0)):console.error("url is not set")}var s=Math.abs,l=Math.floor,c=Math.random,f="ack",p=1,d=2,h=!0,v=function(e){e&&console.error(e)},g=function(e,r,t){e.append(r,t)},m=function(e,r,t){e[r]=t},b=function(e,r){r=r||v,n("get",e.url,null,null,function(t,n,i){if(4===n){if(t)return r(t);var o=parseInt(i);if(isNaN(o))return r("invalid timesync response");e.serverTime=o,e.serverTimeAtClient=Date.now(),e.beatId=setInterval(S,e.beatRate,e),r()}})},y=function(e,r,t,n){if(e){if(4!==r)return;var i,o;if(t){try{i=JSON.parse(t).reqId}catch(a){return console.error(a)}return o=n.callbacks[i],void(o&&(delete n.callbacks[i],o(e)))}for(var u,l=n.reqs,c=n.delimiter,h=0,v=l.length;v>h;h++)if(u=l[h]){try{i=JSON.parse(u.split(c)[0]).reqId}catch(a){console.error(a);continue}o=n.callbacks[i],o&&(delete n.callbacks[i],o(e))}return l.length=0,b(n)}switch(r){case 2:n.head=null,n.currPT=p;break;case 3:break;case 4:n.beatId||(n.beatId=setInterval(S,n.beatRate,n))}var g,m=n.resEndPos,y=-1,c=n.delimiter,x=c.length,k=n.body;try{for(;;){if(y=t.indexOf(c,m),-1===y)break;switch(n.currPT){case p:n.head=JSON.parse(t.substring(m,y)),k.length=0,n.currPT=d;break;case d:k.push(t.substring(m,y))}if(g=n.head,g&&g.len===k.length){if(n.currPT=p,g.resId&&n.request(f,{resId:g.resId}),!g.reqId)return void console.error("incomplete response header: "+JSON.stringify(g));if(n.cullAge&&n.cullAge<s(n.getServerTime()-g.date))return void console.error("invalid server time: "+JSON.stringify(g)+" "+s(n.getServerTime()-g.date));if(n.secretKey&&k.length){for(var T=CryptoJS.algo.HMAC.create(CryptoJS.algo.MD5,n.secretKey+g.date),h=0,v=k.length;v>h;h++)T.update(k[h]);if(g.key!==T.finalize().toString(CryptoJS.enc.Base64))return void console.error("invalid server key: "+JSON.stringify(g))}g.len&&(g.data=JSON.parse(k[0],function(e,r){switch(e){case"json":return JSON.parse(k[r]);case"blob":return k[r];default:return r}})),n.inbox.push(g),n.head=null}m=y+x}}catch(a){console.error(a)}n.resEndPos=m},S=function(e){if(e.inbox.length)for(var r,t,i,o=e.inbox,a=e.callbacks;i=o.pop();)r=i.reqId,t=a[r],t&&(delete a[r],t(i.error,i.data));if(h&&(e.uploads.length||e.outbox.length||e.acks.length)){if(e.resEndPos=0,e.uploads.length)n("post",e.url,e.uploads.shift(),null,y,e);else{var u=e.reqs=e.acks.concat(e.outbox);e.acks.length=e.outbox.length=0,n("post",e.url,u.join(e.delimiter)+e.delimiter,null,y,e)}return clearInterval(e.beatId),void(e.beatId=0)}},x=function(e,r,t,n){n=n||"";for(var i,o,a,u,s=t instanceof FormData?g:m,l=e.baseURI,c=0,f=e.elements;u=f[c];c++)if(u.hasAttribute("name"))if(i=u.hasAttribute("type")?u.getAttribute("type").toUpperCase():"TEXT","FILE"===i)for(o=0,a=u.files.length;a>o;s(t,n+u.name,u.files[o++]));else("RADIO"!==i&&"CHECKBOX"!==i||u.checked)&&s(t,n+u.name,u.value);for(var p in r)s(t,n+p,r[p]);return l=l.substring(0,l.lastIndexOf("/")+1),e.action.substr(l.length)},k=function(e,r){e.url=r.url||e.url,e.secretKey=r.secretKey||e.secretKey,e.cullAge=r.cullAge||e.cullAge||0,e.delimiter=r.delimiter?JSON.stringify(r.delimiter):e.delimiter||JSON.stringify(["&"]),e.beatRate=!r.beatRate||r.beatRate<100?e.beatRate||5e3:r.beatRate},T=function(e){e.resEndPos=e.outbox.length=e.acks.length=0,e.currPT=p};return u.prototype={reconnect:function(e,r){k(this,e),T(this),b(this,function(e){r(e,this)})},submit:function(e,r,t){if(!("undefined"!=typeof window&&e&&e instanceof HTMLFormElement))return console.error("No HTMLFormElement submitted");var n=0;t&&(n=this.reqId++,this.callbacks[n]=t);var i=new FormData;i.append("api",x(e,r,i,"data/")),i.append("reqId",n),this.uploads.push(i),this.beatId||(this.beatId=setInterval(S,this.beatRate,this))},request:function(e,r,t,n){switch(arguments.length){case 2:r instanceof Function&&(n=r,r=t=void 0);break;case 3:t instanceof Function&&(n=t,t=void 0);break;case 4:break;default:return console.error("wrong request params!")}if("undefined"!=typeof window&&r instanceof HTMLFormElement){var i={};e=x(r,t,i),r=i}else if(t)for(var o in t)r[o]=t[o];if(!e)return console.error("Missing api, data["+JSON.stringify(r)+"]");var a=this.acks;if(e!==f&&(a=this.outbox,a.length)){var u=a.shift();-1===u.indexOf(e)&&a.unshift(u)}var s=0;n&&(s=this.reqId++,this.callbacks[s]=n);var l=[];if(r&&l.unshift(JSON.stringify(r,function(e,r){switch(e){case"json":return l.push(JSON.stringify(r));case"blob":return l.push(r);default:return r}})),l.length&&this.secretKey){for(var c=this.getServerTime(),p=CryptoJS.algo.HMAC.create(CryptoJS.algo.MD5,this.secretKey+c),d=0,h=l.length;h>d;d++)p.update(l[d]);l.unshift(JSON.stringify({api:e,reqId:s,len:l.length,date:c,key:p.finalize().toString(CryptoJS.enc.Base64)}))}else l.unshift(JSON.stringify({api:e,reqId:s,len:l.length}));a.push(l.join(this.delimiter)),this.beatId||(this.beatId=setInterval(S,this.beatRate,this))},getServerTime:function(){return this.serverTime+(Date.now()-this.serverTimeAtClient)}},{create:function(e,r){var t=new u(e);b(t,function(e){r(e,t)})},ajax:n,online:function(){h=!0},offline:function(){h=!1}}})}).apply(null,"undefined"==typeof window?[module,"exports",require]:[window,"pico"]);
//# sourceMappingURL=/var/node/pico/common/pico.min.js.map