curl-amd
Version:
curl.js is small, fast, extensible module loader that handles AMD, CommonJS Modules/1.1, CSS, HTML/text, and legacy scripts.
27 lines (26 loc) • 11 kB
JavaScript
(function(){/*
MIT License (c) copyright 2010-2013 B Cavalier & J Hann */
(function(l){function p(){}function v(a,b){return 0==T.call(a).indexOf("[object "+b)}function x(a){return a&&"/"==a.charAt(a.length-1)?a.substr(0,a.length-1):a}function D(a,b){var d,c,f,g;d=1;c=a;"."==c.charAt(0)&&(f=!0,c=c.replace(U,function(a,b,c,f){c&&d++;return f||""}));if(f){f=b.split("/");g=f.length-d;if(0>g)return a;f.splice(g,d);return f.concat(c||[]).join("/")}return c}function C(a){var b=a.indexOf("!");return{g:a.substr(b+1),d:0<=b&&a.substr(0,b)}}function A(){}function y(a,b){A.prototype=
a||N;var d=new A;A.prototype=N;for(var c in b)d[c]=b[c];return d}function E(){function a(a,b,d){c.push([a,b,d])}function b(a,b){for(var d,f=0;d=c[f++];)(d=d[a])&&d(b)}var d,c,f;d=this;c=[];f=function(d,n){a=d?function(a){a&&a(n)}:function(a,b){b&&b(n)};f=p;b(d?0:1,n);b=p;c=s};this.then=function(b,c,f){a(b,c,f);return d};this.h=function(a){d.B=a;f(!0,a)};this.f=function(a){d.pa=a;f(!1,a)};this.v=function(a){b(2,a)}}function z(a){return a instanceof E||a instanceof h}function t(a,b,d,c){z(a)?a.then(b,
d,c):b(a)}function B(a,b,d){var c;return function(){0<=--a&&b&&(c=b.apply(s,arguments));0==a&&d&&d(c);return c}}function e(){var a,b;r="";a=[].slice.call(arguments);v(a[0],"Object")&&(b=a.shift(),b=w(b));return new h(a[0],a[1],a[2],b)}function w(a,b,d){var c;r="";if(a&&(k.Q(a),q=k.b(a),"preloads"in a&&(c=new h(a.preloads,s,d,I,!0),k.l(function(){I=c})),a=a.main))return new h(a,b,d)}function h(a,b,d,c,f){var g;g=k.k(q,s,[].concat(a),f);this.then=this.then=a=function(a,b){t(g,function(b){a&&a.apply(s,
b)},function(a){if(b)b(a);else throw a;});return this};this.next=function(a,b,c){return new h(a,b,c,g)};this.config=w;(b||d)&&a(b,d);k.l(function(){t(f||I,function(){t(c,function(){k.q(g)},d)})})}function K(a){var b,d;b=a.id;b==s&&(J!==s?J={H:"Multiple anonymous defines encountered"}:(b=k.ca())||(J=a));if(b!=s){d=u[b];b in u||(d=k.j(b,q),d=k.D(d.b,b),u[b]=d);if(!z(d))throw Error("duplicate define: "+b);d.ga=!1;k.F(d,a)}}function F(){var a=k.$(arguments);K(a)}var r,q,G,H,m=l.document,O=m&&(m.head||
m.getElementsByTagName("head")[0]),V=O&&O.getElementsByTagName("base")[0]||null,Q={},R={},L={},W="addEventListener"in l?{}:{loaded:1,complete:1},N={},T=N.toString,s,u={},M={},I=!1,J,S=/^\/|^[^:]+:\/\//,U=/(\.)(\.?)(?:$|\/([^\.\/]+.*)?)/g,X=/\/\*[\s\S]*?\*\/|\/\/.*?[\n\r]/g,Y=/require\s*\(\s*(["'])(.*?[^\\])\1\s*\)|[^\\]?(["'])/g,Z=/\s*,\s*/,P,k;k={m:function(a,b,d){var c;a=D(a,b);if("."==a.charAt(0))return a;c=C(a);a=(b=c.d)||c.g;a in d.c&&(a=d.c[a].L||a);b&&(0>b.indexOf("/")&&!(b in d.c)&&(a=x(d.O)+
"/"+b),a=a+"!"+c.g);return a},k:function(a,b,d,c){function f(b,c){var d,g;d=k.m(b,n.id,a);if(!c)return d;g=C(d);if(!g.d)return d;d=u[g.d];g.g="normalize"in d?d.normalize(g.g,f,n.b)||"":f(g.g);return g.d+"!"+g.g}function g(b,d,g){var e;e=d&&function(a){d.apply(s,a)};if(v(b,"String")){if(e)throw Error("require(id, callback) not allowed");g=f(b,!0);b=u[g];if(!(g in u))throw Error("Module not resolved: "+g);return(g=z(b)&&b.a)||b}t(k.q(k.k(a,n.id,b,c)),e,g)}var n;n=new E;n.id=b||"";n.da=c;n.G=d;n.b=a;
n.w=g;g.toUrl=function(b){return k.j(f(b,!0),a).url};n.m=f;return n},D:function(a,b,d){var c,f,g;c=k.k(a,b,s,d);f=c.h;g=B(1,function(a){c.p=a;try{return k.U(c)}catch(b){c.f(b)}});c.h=function(a){t(d||I,function(){f(u[c.id]=M[c.url]=g(a))})};c.I=function(a){t(d||I,function(){c.a&&(g(a),c.v(R))})};return c},T:function(a,b,d,c){return k.k(a,d,s,c)},ba:function(a){return a.w},J:function(a){return a.a||(a.a={})},aa:function(a){var b=a.s;b||(b=a.s={id:a.id,uri:k.K(a),exports:k.J(a),config:function(){return a.b}},
b.a=b.exports);return b},K:function(a){return a.url||(a.url=k.C(a.w.toUrl(a.id),a.b))},Q:function(a){var b,d,c,f,g;b="curl";d="define";c=f=l;if(a&&(g=a.overwriteApi||a.na,b=a.apiName||a.ia||b,c=a.apiContext||a.ha||c,d=a.defineName||a.ka||d,f=a.defineContext||a.ja||f,G&&v(G,"Function")&&(l.curl=G),G=null,H&&v(H,"Function")&&(l.define=H),H=null,!g)){if(c[b]&&c[b]!=e)throw Error(b+" already exists");if(f[d]&&f[d]!=F)throw Error(d+" already exists");}c[b]=e;f[d]=F},b:function(a){function b(a,b){var d,
c,n,e,q;for(q in a){n=a[q];v(n,"String")&&(n={path:a[q]});n.name=n.name||q;e=f;c=C(x(n.name));d=c.g;if(c=c.d)e=g[c],e||(e=g[c]=y(f),e.c=y(f.c),e.e=[]),delete a[q];c=n;var r=b,h=void 0;c.path=x(c.path||c.location||"");r&&(h=c.main||"./main","."==h.charAt(0)||(h="./"+h),c.L=D(h,c.name+"/"));c.b=c.config;c.b&&(c.b=y(f,c.b));c.R=d.split("/").length;d?(e.c[d]=c,e.e.push(d)):e.n=k.P(n.path,f)}}function d(a){var b=a.c;a.N=RegExp("^("+a.e.sort(function(a,c){return b[c].R-b[a].R}).join("|").replace(/\/|\./g,
"\\$&")+")(?=\\/|$)");delete a.e}var c,f,g,n;"baseUrl"in a&&(a.n=a.baseUrl);"main"in a&&(a.L=a.main);"preloads"in a&&(a.oa=a.preloads);"pluginPath"in a&&(a.O=a.pluginPath);if("dontAddFileExt"in a||a.i)a.i=RegExp(a.dontAddFileExt||a.i);c=q;f=y(c,a);f.c=y(c.c);g=a.plugins||{};f.plugins=y(c.plugins);f.u=y(c.u,a.u);f.t=y(c.t,a.t);f.e=[];b(a.packages,!0);b(a.paths,!1);for(n in g)a=k.m(n+"!","",f),f.plugins[a.substr(0,a.length-1)]=g[n];g=f.plugins;for(n in g)if(g[n]=y(f,g[n]),a=g[n].e)g[n].e=a.concat(f.e),
d(g[n]);for(n in c.c)f.c.hasOwnProperty(n)||f.e.push(n);d(f);return f},j:function(a,b){var d,c,f,g;d=b.c;f=S.test(a)?a:a.replace(b.N,function(a){c=d[a]||{};g=c.b;return c.path||""});return{b:g||q,url:k.P(f,b)}},P:function(a,b){var d=b.n;return d&&!S.test(a)?x(d)+"/"+a:a},C:function(a,b){return a+((b||q).i.test(a)?"":".js")},r:function(a,b,d){var c=m.createElement("script");c.onload=c.onreadystatechange=function(d){d=d||l.event;if("load"==d.type||W[c.readyState])delete L[a.id],c.onload=c.onreadystatechange=
c.onerror="",b()};c.onerror=function(){d(Error("Syntax or http error: "+a.url))};c.type=a.M||"text/javascript";c.charset="utf-8";c.async=!a.ea;c.src=a.url;L[a.id]=c;O.insertBefore(c,V);return c},V:function(a){var b=[],d;("string"==typeof a?a:a.toSource?a.toSource():a.toString()).replace(X,"").replace(Y,function(a,f,g,e){e?d=d==e?s:d:d||b.push(g);return""});return b},$:function(a){var b,d,c,f,g,e;g=a.length;c=a[g-1];f=v(c,"Function")?c.length:-1;2==g?v(a[0],"Array")?d=a[0]:b=a[0]:3==g&&(b=a[0],d=a[1]);
!d&&0<f&&(e=!0,d=["require","exports","module"].slice(0,f).concat(k.V(c)));return{id:b,p:d||[],A:0<=f?c:function(){return c},o:e}},U:function(a){var b;b=a.A.apply(a.o?a.a:s,a.p);b===s&&a.a&&(b=a.s?a.a=a.s.exports:a.a);return b},F:function(a,b){a.A=b.A;a.o=b.o;a.G=b.p;k.q(a)},q:function(a){function b(a,b,c){e[b]=a;c&&r(a,b)}function d(b,c){var d,f,g,e;d=B(1,function(a){f(a);m(a,c)});f=B(1,function(a){r(a,c)});g=k.X(b,a);(e=z(g)&&g.a)&&f(e);t(g,d,a.f,a.a&&function(a){g.a&&(a==Q?f(g.a):a==R&&d(g.a))})}
function c(){a.h(e)}var f,g,e,q,h,r,m;e=[];g=a.G;q=g.length;0==g.length&&c();r=B(q,b,function(){a.I&&a.I(e)});m=B(q,b,c);for(f=0;f<q;f++)h=g[f],h in P?(m(P[h](a),f,!0),a.a&&a.v(Q)):h?d(h,f):m(s,f,!0);return a},Y:function(a){k.K(a);k.r(a,function(){var b=J;J=s;!1!==a.ga&&(!b||b.H?a.f(Error(b&&b.H||"define() missing or duplicated: "+a.url)):k.F(a,b))},a.f);return a},X:function(a,b){var d,c,f,g,e,h,r,m,w,l,p,s;d=b.m;c=b.da;f=b.b||q;e=d(a);e in u?h=e:(g=C(e),m=g.g,h=g.d||m,w=k.j(h,f));if(!(e in u))if(s=
k.j(m,f).b,g.d)r=h;else if(r=s.moduleLoader||s.ma||s.loader||s.la)m=h,h=r,w=k.j(r,f);h in u?l=u[h]:w.url in M?l=u[h]=M[w.url]:(l=k.D(s,h,c),l.url=k.C(w.url,w.b),u[h]=M[w.url]=l,k.Y(l));h==r&&(g.d&&f.plugins[g.d]&&(s=f.plugins[g.d]),p=new E,t(l,function(a){var b,f,g;g=a.dynamic;m="normalize"in a?a.normalize(m,d,l.b)||"":d(m);f=r+"!"+m;b=u[f];if(!(f in u)){b=k.T(s,f,m,c);g||(u[f]=b);var e=function(a){g||(u[f]=a);b.h(a)};e.resolve=e;e.reject=e.error=b.f;a.load(m,b.w,e,s)}p!=b&&t(b,p.h,p.f,p.v)},p.f));
return p||l},ca:function(){var a;if(!v(l.opera,"Opera"))for(var b in L)if("interactive"==L[b].readyState){a=b;break}return a},Z:function(a){var b=0,d,c;for(d=m&&(m.scripts||m.getElementsByTagName("script"));d&&(c=d[b++]);)if(a(c))return c},W:function(){var a,b="";(a=k.Z(function(a){(a=a.getAttribute("data-curl-run"))&&(b=a);return a}))&&a.setAttribute("data-curl-run","");return b},S:function(){function a(){k.r({url:c.shift()},b,b)}function b(){r&&(c.length?(k.l(d),a()):d("run.js script did not run."))}
function d(a){throw Error(a||"Primary run.js failed. Trying fallback.");}var c=r.split(Z);c.length&&a()},l:function(a){setTimeout(a,0)}};P={require:k.ba,exports:k.J,module:k.aa};e.version="0.8.10";e.config=w;F.amd={plugins:!0,jQuery:!0,curl:"0.8.10"};q={n:"",O:"curl/plugin",i:/\?|\.js\b/,u:{},t:{},plugins:{},c:{},N:/$^/};G=l.curl;H=l.define;G&&v(G,"Object")?(l.curl=s,w(G)):k.Q();(r=k.W())&&k.l(k.S);u.curl=e;u["curl/_privileged"]={core:k,cache:u,config:function(){return q},_define:K,_curl:e,Promise:E}})(this.window||
"undefined"!=typeof global&&global||this);
(function(l,p){function v(){if(!p.body)return!1;F||(F=p.createTextNode(""));try{return p.body.removeChild(p.body.appendChild(F)),F=K,!0}catch(e){return!1}}function x(){var r;r=A[p[C]]&&v();if(!z&&r){z=!0;for(clearTimeout(h);e=w.pop();)e();E&&(p[C]="complete");for(var q;q=y.shift();)q()}return r}function D(){x();z||(h=setTimeout(D,t))}var C="readyState",A={loaded:1,interactive:1,complete:1},y=[],E=p&&"string"!=typeof p[C],z=!1,t=10,B,e,w=[],h,K,F;B="addEventListener"in l?function(e,h){e.addEventListener(h,
x,!1);return function(){e.removeEventListener(h,x,!1)}}:function(e,h){e.attachEvent("on"+h,x);return function(){e.detachEvent(h,x)}};p&&!x()&&(w=[B(l,"load"),B(p,"readystatechange"),B(l,"DOMContentLoaded")],h=setTimeout(D,t));define("curl/domReady",function(){function e(h){z?h():y.push(h)}e.then=e;e.amd=!0;return e})})(this,this.document);
(function(l,p,v){define("curl/plugin/js",["curl/_privileged"],function(l){function D(e,w,h){function p(){r||(t<new Date?h():setTimeout(p,10))}var t,r,q;t=(new Date).valueOf()+(e.fa||3E5);h&&e.a&&setTimeout(p,10);q=l.core.r(e,function(){r=!0;e.a&&(e.B=v(e.a));!e.a||e.B?w(q):h()},function(e){r=!0;h(e)})}function C(e,l){D(e,function(){var h=y.shift();t=0<y.length;h&&C.apply(null,h);l.h(e.B||!0)},function(e){l.f(e)})}var A={},y=[],E=p&&!0==p.createElement("script").async,z,t,B=/\?|\.js\b/;z=l.Promise;
return{dynamic:!0,normalize:function(e,l){var h=e.indexOf("!");return 0<=h?l(e.substr(0,h))+e.substr(h):l(e)},load:function(e,l,h,p){function v(e){(h.error||function(e){throw e;})(e)}var r,q,x,H,m;r=0<e.indexOf("!order");q=e.indexOf("!exports=");x=0<q?e.substr(q+9):p.a;H="prefetch"in p?p.prefetch:!0;e=r||0<q?e.substr(0,e.indexOf("!")):e;q=(q=p.dontAddFileExt||p.i)?RegExp(q):B;m=l.toUrl(e);q.test(m)||(m=m.lastIndexOf(".")<=m.lastIndexOf("/")?m+".js":m);m in A?A[m]instanceof z?A[m].then(h,v):h(A[m]):
(e={name:e,url:m,ea:r,a:x,fa:p.timeout},A[m]=l=new z,l.then(function(e){A[m]=e;h(e)},v),r&&!E&&t?(y.push([e,l]),H&&(e.M="text/cache",D(e,function(e){e&&e.parentNode.removeChild(e)},function(){}),e.M="")):(t=t||r,C(e,l)))},cramPlugin:"../cram/js"}})})(this,this.document,function(l){try{return eval(l)}catch(p){}});define("curl/plugin/domReady",["../domReady"],function(l){return{load:function(p,v,x){l(x)}}});
}).call(this);