mongodb-schema
Advanced tools
Comparing version
@@ -1,1 +0,707 @@ | ||
window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); | ||
window.PR_SHOULD_USE_CONTINUATION = true;(function() { | ||
var h = ['break,continue,do,else,for,if,return,while']; | ||
var u = [h, 'auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile']; | ||
var p = [u, 'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof']; | ||
var l = [p, 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where']; | ||
var x = [p, 'abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient']; | ||
var R = [x, 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var']; | ||
var r = 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes'; | ||
var w = [p, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN']; | ||
var s = 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END'; | ||
var I = [h, 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None']; | ||
var f = [h, 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END']; | ||
var H = [h, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until']; | ||
var A = [l, R, w, s + I, f, H]; | ||
var e = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/; | ||
var C = 'str'; | ||
var z = 'kwd'; | ||
var j = 'com'; | ||
var O = 'typ'; | ||
var G = 'lit'; | ||
var L = 'pun'; | ||
var F = 'pln'; | ||
var m = 'tag'; | ||
var E = 'dec'; | ||
var J = 'src'; | ||
var P = 'atn'; | ||
var n = 'atv'; | ||
var N = 'nocode'; | ||
var M = '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*'; | ||
function k(Z) { | ||
var ad = 0;var S = false;var ac = false; | ||
for (var V = 0, U = Z.length; V < U; ++V) { | ||
var ae = Z[V]; | ||
if (ae.ignoreCase) { | ||
ac = true; | ||
} else { | ||
if (/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) { | ||
S = true; | ||
ac = false;break; | ||
} | ||
} | ||
} | ||
var Y = { | ||
b: 8, | ||
t: 9, | ||
n: 10, | ||
v: 11, | ||
f: 12, | ||
r: 13 | ||
}; | ||
function ab(ah) { | ||
var ag = ah.charCodeAt(0); | ||
if (ag !== 92) { | ||
return ag; | ||
} | ||
var af = ah.charAt(1); | ||
ag = Y[af]; | ||
if (ag) { | ||
return ag; | ||
} else { | ||
if ('0' <= af && af <= '7') { | ||
return parseInt(ah.substring(1), 8); | ||
} else { | ||
if (af === 'u' || af === 'x') { | ||
return parseInt(ah.substring(2), 16); | ||
} else { | ||
return ah.charCodeAt(1); | ||
} | ||
} | ||
} | ||
} | ||
function T(af) { | ||
if (af < 32) { | ||
return (af < 16 ? '\\x0' : '\\x') + af.toString(16); | ||
} | ||
var ag = String.fromCharCode(af); | ||
if (ag === '\\' || ag === '-' || ag === '[' || ag === ']') { | ||
ag = '\\' + ag; | ||
} | ||
return ag; | ||
} | ||
function X(am) { | ||
var aq = am.substring(1, am.length - 1).match(new RegExp('\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]', 'g'));var ak = [];var af = [];var ao = aq[0] === '^'; | ||
for (var ar = ao ? 1 : 0, aj = aq.length; ar < aj; ++ar) { | ||
var ah = aq[ar]; | ||
if (/\\[bdsw]/i.test(ah)) { | ||
ak.push(ah); | ||
} else { | ||
var ag = ab(ah); | ||
var al; | ||
if (ar + 2 < aj && '-' === aq[ar + 1]) { | ||
al = ab(aq[ar + 2]); | ||
ar += 2; | ||
} else { | ||
al = ag; | ||
} | ||
af.push([ag, al]); | ||
if (!(al < 65 || ag > 122)) { | ||
if (!(al < 65 || ag > 90)) { | ||
af.push([Math.max(65, ag) | 32, Math.min(al, 90) | 32]); | ||
} | ||
if (!(al < 97 || ag > 122)) { | ||
af.push([Math.max(97, ag) & ~32, Math.min(al, 122) & ~32]); | ||
} | ||
} | ||
} | ||
} | ||
af.sort(function(av, au) { | ||
return (av[0] - au[0]) || (au[1] - av[1]); | ||
});var ai = [];var ap = [NaN, NaN]; | ||
for (var ar = 0; ar < af.length; ++ar) { | ||
var at = af[ar]; | ||
if (at[0] <= ap[1] + 1) { | ||
ap[1] = Math.max(ap[1], at[1]); | ||
} else { | ||
ai.push(ap = at); | ||
} | ||
} | ||
var an = ['[']; | ||
if (ao) { | ||
an.push('^'); | ||
} | ||
an.push.apply(an, ak); | ||
for (var ar = 0; ar < ai.length; ++ar) { | ||
var at = ai[ar];an.push(T(at[0])); | ||
if (at[1] > at[0]) { | ||
if (at[1] + 1 > at[0]) { | ||
an.push('-'); | ||
} | ||
an.push(T(at[1])); | ||
} | ||
} | ||
an.push(']');return an.join(''); | ||
} | ||
function W(al) { | ||
var aj = al.source.match(new RegExp('(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)', 'g'));var ah = aj.length;var an = []; | ||
for (var ak = 0, am = 0; ak < ah; ++ak) { | ||
var ag = aj[ak]; | ||
if (ag === '(') { | ||
++am; | ||
} else { | ||
if ('\\' === ag.charAt(0)) { | ||
var af = +ag.substring(1); | ||
if (af && af <= am) { | ||
an[af] = -1; | ||
} | ||
} | ||
} | ||
} | ||
for (var ak = 1; ak < an.length; ++ak) { | ||
if (-1 === an[ak]) { | ||
an[ak] = ++ad; | ||
} | ||
} | ||
for (var ak = 0, am = 0; ak < ah; ++ak) { | ||
var ag = aj[ak]; | ||
if (ag === '(') { | ||
++am; | ||
if (an[am] === undefined) { | ||
aj[ak] = '(?:'; | ||
} | ||
} else { | ||
if ('\\' === ag.charAt(0)) { | ||
var af = +ag.substring(1); | ||
if (af && af <= am) { | ||
aj[ak] = '\\' + an[am]; | ||
} | ||
} | ||
} | ||
} | ||
for (var ak = 0, am = 0; ak < ah; ++ak) { | ||
if ('^' === aj[ak] && '^' !== aj[ak + 1]) { | ||
aj[ak] = ''; | ||
} | ||
} | ||
if (al.ignoreCase && S) { | ||
for (var ak = 0; ak < ah; ++ak) { | ||
var ag = aj[ak];var ai = ag.charAt(0); | ||
if (ag.length >= 2 && ai === '[') { | ||
aj[ak] = X(ag); | ||
} else { | ||
if (ai !== '\\') { | ||
aj[ak] = ag.replace(/[a-zA-Z]/g, function(ao) { | ||
var ap = ao.charCodeAt(0); | ||
return '[' + String.fromCharCode(ap & ~32, ap | 32) + ']'; | ||
}); | ||
} | ||
} | ||
} | ||
} | ||
return aj.join(''); | ||
} | ||
var aa = []; | ||
for (var V = 0, U = Z.length; V < U; ++V) { | ||
var ae = Z[V]; | ||
if (ae.global || ae.multiline) { | ||
throw new Error('' + ae) | ||
} | ||
aa.push('(?:' + W(ae) + ')'); | ||
} | ||
return new RegExp(aa.join('|'), ac ? 'gi' : 'g'); | ||
} | ||
function a(V) { | ||
var U = /(?:^|\s)nocode(?:\s|$)/;var X = [];var T = 0;var Z = [];var W = 0;var S; | ||
if (V.currentStyle) { | ||
S = V.currentStyle.whiteSpace; | ||
} else { | ||
if (window.getComputedStyle) { | ||
S = document.defaultView.getComputedStyle(V, null).getPropertyValue('white-space'); | ||
} | ||
} | ||
var Y = S && 'pre' === S.substring(0, 3); | ||
function aa(ab) { | ||
switch (ab.nodeType) { | ||
case 1: | ||
if (U.test(ab.className)) { | ||
return; | ||
} | ||
for (var ae = ab.firstChild; ae; ae = ae.nextSibling) { | ||
aa(ae); | ||
} | ||
var ad = ab.nodeName; | ||
if ('BR' === ad || 'LI' === ad) { | ||
X[W] = '\n'; | ||
Z[W << 1] = T++; | ||
Z[(W++ << 1) | 1] = ab; | ||
} | ||
break;case 3:case 4:var ac = ab.nodeValue; | ||
if (ac.length) { | ||
if (!Y) { | ||
ac = ac.replace(/[ \t\r\n]+/g, ' '); | ||
} else { | ||
ac = ac.replace(/\r\n?/g, '\n'); | ||
} | ||
X[W] = ac; | ||
Z[W << 1] = T; | ||
T += ac.length; | ||
Z[(W++ << 1) | 1] = ab; | ||
} | ||
break; | ||
} | ||
} | ||
aa(V);return { | ||
sourceCode: X.join('').replace(/\n$/, ''), | ||
spans: Z | ||
}; | ||
} | ||
function B(S, U, W, T) { | ||
if (!U) { | ||
return; | ||
} | ||
var V = { | ||
sourceCode: U, | ||
basePos: S | ||
};W(V);T.push.apply(T, V.decorations); | ||
} | ||
var v = /\S/; | ||
function o(S) { | ||
var V = undefined; | ||
for (var U = S.firstChild; U; U = U.nextSibling) { | ||
var T = U.nodeType; | ||
V = (T === 1) ? (V ? S : U) : (T === 3) ? (v.test(U.nodeValue) ? S : V) : V; | ||
} | ||
return V === S ? undefined : V; | ||
} | ||
function g(U, T) { | ||
var S = {};var V;(function() { | ||
var ad = U.concat(T); | ||
var ah = []; | ||
var ag = {}; | ||
for (var ab = 0, Z = ad.length; ab < Z; ++ab) { | ||
var Y = ad[ab];var ac = Y[3]; | ||
if (ac) { | ||
for (var ae = ac.length; --ae >= 0;) { | ||
S[ac.charAt(ae)] = Y; | ||
} | ||
} | ||
var af = Y[1];var aa = '' + af; | ||
if (!ag.hasOwnProperty(aa)) { | ||
ah.push(af); | ||
ag[aa] = null; | ||
} | ||
} | ||
ah.push(/[\0-\uffff]/); | ||
V = k(ah); | ||
})();var X = T.length;var W = function(ah) { | ||
var Z = ah.sourceCode, | ||
Y = ah.basePos; | ||
var ad = [Y, F]; | ||
var af = 0; | ||
var an = Z.match(V) || []; | ||
var aj = {}; | ||
for (var ae = 0, aq = an.length; ae < aq; ++ae) { | ||
var ag = an[ae];var ap = aj[ag];var ai = void 0;var am; | ||
if (typeof ap === 'string') { | ||
am = false; | ||
} else { | ||
var aa = S[ag.charAt(0)]; | ||
if (aa) { | ||
ai = ag.match(aa[1]); | ||
ap = aa[0]; | ||
} else { | ||
for (var ao = 0; ao < X; ++ao) { | ||
aa = T[ao]; | ||
ai = ag.match(aa[1]); | ||
if (ai) { | ||
ap = aa[0];break; | ||
} | ||
} | ||
if (!ai) { | ||
ap = F; | ||
} | ||
} | ||
am = ap.length >= 5 && 'lang-' === ap.substring(0, 5); | ||
if (am && !(ai && typeof ai[1] === 'string')) { | ||
am = false; | ||
ap = J; | ||
} | ||
if (!am) { | ||
aj[ag] = ap; | ||
} | ||
} | ||
var ab = af; | ||
af += ag.length; | ||
if (!am) { | ||
ad.push(Y + ab, ap); | ||
} else { | ||
var al = ai[1]; | ||
var ak = ag.indexOf(al); | ||
var ac = ak + al.length; | ||
if (ai[2]) { | ||
ac = ag.length - ai[2].length; | ||
ak = ac - al.length; | ||
} | ||
var ar = ap.substring(5); | ||
B(Y + ab, ag.substring(0, ak), W, ad);B(Y + ab + ak, al, q(ar, al), ad);B(Y + ab + ac, ag.substring(ac), W, ad); | ||
} | ||
} | ||
ah.decorations = ad; | ||
};return W; | ||
} | ||
function i(T) { | ||
var W = [], | ||
S = []; | ||
if (T.tripleQuotedStrings) { | ||
W.push([C, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, null, '\'"']); | ||
} else { | ||
if (T.multiLineStrings) { | ||
W.push([C, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, null, '\'"`']); | ||
} else { | ||
W.push([C, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, '"\'']); | ||
} | ||
} | ||
if (T.verbatimStrings) { | ||
S.push([C, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); | ||
} | ||
var Y = T.hashComments; | ||
if (Y) { | ||
if (T.cStyleComments) { | ||
if (Y > 1) { | ||
W.push([j, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']); | ||
} else { | ||
W.push([j, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, null, '#']); | ||
} | ||
S.push([C, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null]); | ||
} else { | ||
W.push([j, /^#[^\r\n]*/, null, '#']); | ||
} | ||
} | ||
if (T.cStyleComments) { | ||
S.push([j, /^\/\/[^\r\n]*/, null]);S.push([j, /^\/\*[\s\S]*?(?:\*\/|$)/, null]); | ||
} | ||
if (T.regexLiterals) { | ||
var X = ('/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/'); | ||
S.push(['lang-regex', new RegExp('^' + M + '(' + X + ')')]); | ||
} | ||
var V = T.types; | ||
if (V) { | ||
S.push([O, V]); | ||
} | ||
var U = ('' + T.keywords).replace(/^ | $/g, ''); | ||
if (U.length) { | ||
S.push([z, new RegExp('^(?:' + U.replace(/[\s,]+/g, '|') + ')\\b'), null]); | ||
} | ||
W.push([F, /^\s+/, null, ' \r\n\t\xA0']);S.push([G, /^@[a-z_$][a-z_$@0-9]*/i, null], [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], [F, /^[a-z_$][a-z_$@0-9]*/i, null], [G, new RegExp('^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*', 'i'), null, '0123456789'], [F, /^\\[\s\S]?/, null], [L, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]);return g(W, S); | ||
} | ||
var K = i({ | ||
keywords: A, | ||
hashComments: true, | ||
cStyleComments: true, | ||
multiLineStrings: true, | ||
regexLiterals: true | ||
}); | ||
function Q(V, ag) { | ||
var U = /(?:^|\s)nocode(?:\s|$)/;var ab = /\r\n?|\n/;var ac = V.ownerDocument;var S; | ||
if (V.currentStyle) { | ||
S = V.currentStyle.whiteSpace; | ||
} else { | ||
if (window.getComputedStyle) { | ||
S = ac.defaultView.getComputedStyle(V, null).getPropertyValue('white-space'); | ||
} | ||
} | ||
var Z = S && 'pre' === S.substring(0, 3);var af = ac.createElement('LI'); | ||
while (V.firstChild) { | ||
af.appendChild(V.firstChild); | ||
} | ||
var W = [af]; | ||
function ae(al) { | ||
switch (al.nodeType) { | ||
case 1: | ||
if (U.test(al.className)) { | ||
break; | ||
} | ||
if ('BR' === al.nodeName) { | ||
ad(al); | ||
if (al.parentNode) { | ||
al.parentNode.removeChild(al); | ||
} | ||
} else { | ||
for (var an = al.firstChild; an; an = an.nextSibling) { | ||
ae(an); | ||
} | ||
} | ||
break;case 3:case 4: | ||
if (Z) { | ||
var am = al.nodeValue; | ||
var aj = am.match(ab); | ||
if (aj) { | ||
var ai = am.substring(0, aj.index); | ||
al.nodeValue = ai; | ||
var ah = am.substring(aj.index + aj[0].length); | ||
if (ah) { | ||
var ak = al.parentNode; | ||
ak.insertBefore(ac.createTextNode(ah), al.nextSibling); | ||
} | ||
ad(al); | ||
if (!ai) { | ||
al.parentNode.removeChild(al); | ||
} | ||
} | ||
} | ||
break; | ||
} | ||
} | ||
function ad(ak) { | ||
while (!ak.nextSibling) { | ||
ak = ak.parentNode; | ||
if (!ak) { | ||
return; | ||
} | ||
} | ||
function ai(al, ar) { | ||
var aq = ar ? al.cloneNode(false) : al;var ao = al.parentNode; | ||
if (ao) { | ||
var ap = ai(ao, 1); | ||
var an = al.nextSibling; | ||
ap.appendChild(aq); | ||
for (var am = an; am; am = an) { | ||
an = am.nextSibling;ap.appendChild(am); | ||
} | ||
} | ||
return aq; | ||
} | ||
var ah = ai(ak.nextSibling, 0); | ||
for (var aj; (aj = ah.parentNode) && aj.nodeType === 1;) { | ||
ah = aj; | ||
} | ||
W.push(ah); | ||
} | ||
for (var Y = 0; Y < W.length; ++Y) { | ||
ae(W[Y]); | ||
} | ||
if (ag === (ag | 0)) { | ||
W[0].setAttribute('value', ag); | ||
} | ||
var aa = ac.createElement('OL'); | ||
aa.className = 'linenums';var X = Math.max(0, ((ag - 1)) | 0) || 0; | ||
for (var Y = 0, T = W.length; Y < T; ++Y) { | ||
af = W[Y]; | ||
af.className = 'L' + ((Y + X) % 10); | ||
if (!af.firstChild) { | ||
af.appendChild(ac.createTextNode('\xA0')); | ||
} | ||
aa.appendChild(af); | ||
} | ||
V.appendChild(aa); | ||
} | ||
function D(ac) { | ||
var aj = /\bMSIE\b/.test(navigator.userAgent);var am = /\n/g;var al = ac.sourceCode;var an = al.length;var V = 0;var aa = ac.spans;var T = aa.length;var ah = 0;var X = ac.decorations;var Y = X.length;var Z = 0; | ||
X[Y] = an;var ar, aq; | ||
for (aq = ar = 0; aq < Y;) { | ||
if (X[aq] !== X[aq + 2]) { | ||
X[ar++] = X[aq++]; | ||
X[ar++] = X[aq++]; | ||
} else { | ||
aq += 2; | ||
} | ||
} | ||
Y = ar; | ||
for (aq = ar = 0; aq < Y;) { | ||
var at = X[aq];var ab = X[aq + 1];var W = aq + 2; | ||
while (W + 2 <= Y && X[W + 1] === ab) { | ||
W += 2; | ||
} | ||
X[ar++] = at; | ||
X[ar++] = ab; | ||
aq = W; | ||
} | ||
Y = X.length = ar;var ae = null; | ||
while (ah < T) { | ||
var af = aa[ah];var S = aa[ah + 2] || an;var ag = X[Z];var ap = X[Z + 2] || an;var W = Math.min(S, ap);var ak = aa[ah + 1];var U; | ||
if (ak.nodeType !== 1 && (U = al.substring(V, W))) { | ||
if (aj) { | ||
U = U.replace(am, '\r'); | ||
} | ||
ak.nodeValue = U; | ||
var ai = ak.ownerDocument; | ||
var ao = ai.createElement('SPAN'); | ||
ao.className = X[Z + 1]; | ||
var ad = ak.parentNode; | ||
ad.replaceChild(ao, ak);ao.appendChild(ak); | ||
if (V < S) { | ||
aa[ah + 1] = ak = ai.createTextNode(al.substring(W, S));ad.insertBefore(ak, ao.nextSibling); | ||
} | ||
} | ||
V = W; | ||
if (V >= S) { | ||
ah += 2; | ||
} | ||
if (V >= ap) { | ||
Z += 2; | ||
} | ||
} | ||
} | ||
var t = {}; | ||
function c(U, V) { | ||
for (var S = V.length; --S >= 0;) { | ||
var T = V[S]; | ||
if (!t.hasOwnProperty(T)) { | ||
t[T] = U; | ||
} else { | ||
if (window.console) { | ||
console.warn('cannot override language handler %s', T); | ||
} | ||
} | ||
} | ||
} | ||
function q(T, S) { | ||
if (!(T && t.hasOwnProperty(T))) { | ||
T = /^\s*</.test(S) ? 'default-markup' : 'default-code'; | ||
} | ||
return t[T]; | ||
} | ||
c(K, ['default-code']);c(g([], [[F, /^[^<?]+/], [E, /^<!\w[^>]*(?:>|$)/], [j, /^<\!--[\s\S]*?(?:-\->|$)/], ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], ['lang-', /^<%([\s\S]+?)(?:%>|$)/], [L, /^(?:<[%?]|[%?]>)/], ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i]]), ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);c(g([[F, /^[\s]+/, null, ' \t\r\n'], [n, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '"\'']], [[m, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], [P, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], [L, /^[=<>\/]+/], ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i], ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i], ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i], ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i], ['lang-css', /^style\s*=\s*\'([^\']+)\'/i], ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i]]), ['in.tag']);c(g([], [[n, /^[\s\S]+/]]), ['uq.val']);c(i({ | ||
keywords: l, | ||
hashComments: true, | ||
cStyleComments: true, | ||
types: e | ||
}), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);c(i({ | ||
keywords: 'null,true,false' | ||
}), ['json']);c(i({ | ||
keywords: R, | ||
hashComments: true, | ||
cStyleComments: true, | ||
verbatimStrings: true, | ||
types: e | ||
}), ['cs']);c(i({ | ||
keywords: x, | ||
cStyleComments: true | ||
}), ['java']);c(i({ | ||
keywords: H, | ||
hashComments: true, | ||
multiLineStrings: true | ||
}), ['bsh', 'csh', 'sh']);c(i({ | ||
keywords: I, | ||
hashComments: true, | ||
multiLineStrings: true, | ||
tripleQuotedStrings: true | ||
}), ['cv', 'py']);c(i({ | ||
keywords: s, | ||
hashComments: true, | ||
multiLineStrings: true, | ||
regexLiterals: true | ||
}), ['perl', 'pl', 'pm']);c(i({ | ||
keywords: f, | ||
hashComments: true, | ||
multiLineStrings: true, | ||
regexLiterals: true | ||
}), ['rb']);c(i({ | ||
keywords: w, | ||
cStyleComments: true, | ||
regexLiterals: true | ||
}), ['js']);c(i({ | ||
keywords: r, | ||
hashComments: 3, | ||
cStyleComments: true, | ||
multilineStrings: true, | ||
tripleQuotedStrings: true, | ||
regexLiterals: true | ||
}), ['coffee']);c(g([], [[C, /^[\s\S]+/]]), ['regex']); | ||
function d(V) { | ||
var U = V.langExtension;try { | ||
var S = a(V.sourceNode);var T = S.sourceCode; | ||
V.sourceCode = T; | ||
V.spans = S.spans; | ||
V.basePos = 0;q(U, T)(V);D(V); | ||
} catch (W) { | ||
if ('console' in window) { | ||
console.log(W && W.stack ? W.stack : W); | ||
} | ||
} | ||
} | ||
function y(W, V, U) { | ||
var S = document.createElement('PRE'); | ||
S.innerHTML = W; | ||
if (U) { | ||
Q(S, U); | ||
} | ||
var T = { | ||
langExtension: V, | ||
numberLines: U, | ||
sourceNode: S | ||
};d(T);return S.innerHTML; | ||
} | ||
function b(ad) { | ||
function Y(af) { | ||
return document.getElementsByTagName(af); | ||
} | ||
var ac = [Y('pre'), Y('code'), Y('xmp')];var T = []; | ||
for (var aa = 0; aa < ac.length; ++aa) { | ||
for (var Z = 0, V = ac[aa].length; Z < V; ++Z) { | ||
T.push(ac[aa][Z]); | ||
} | ||
} | ||
ac = null;var W = Date; | ||
if (!W.now) { | ||
W = { | ||
now: function() { | ||
return +(newDate); | ||
} | ||
}; | ||
} | ||
var X = 0;var S;var ab = /\blang(?:uage)?-([\w.]+)(?!\S)/;var ae = /\bprettyprint\b/; | ||
function U() { | ||
var ag = (window.PR_SHOULD_USE_CONTINUATION ? W.now() + 250 : Infinity); | ||
for (; X < T.length && W.now() < ag; X++) { | ||
var aj = T[X];var ai = aj.className; | ||
if (ai.indexOf('prettyprint') >= 0) { | ||
var ah = ai.match(ab); | ||
var am; | ||
if (!ah && (am = o(aj)) && 'CODE' === am.tagName) { | ||
ah = am.className.match(ab); | ||
} | ||
if (ah) { | ||
ah = ah[1]; | ||
} | ||
var al = false; | ||
for (var ak = aj.parentNode; ak; ak = ak.parentNode) { | ||
if ((ak.tagName === 'pre' || ak.tagName === 'code' || ak.tagName === 'xmp') && ak.className && ak.className.indexOf('prettyprint') >= 0) { | ||
al = true;break; | ||
} | ||
} | ||
if (!al) { | ||
var af = aj.className.match(/\blinenums\b(?::(\d+))?/); | ||
af = af ? af[1] && af[1].length ? +af[1] : true : false; | ||
if (af) { | ||
Q(aj, af); | ||
} | ||
S = { | ||
langExtension: ah, | ||
sourceNode: aj, | ||
numberLines: af | ||
};d(S); | ||
} | ||
} | ||
} | ||
if (X < T.length) { | ||
setTimeout(U, 250); | ||
} else { | ||
if (ad) { | ||
ad(); | ||
} | ||
} | ||
} | ||
U(); | ||
} | ||
window.prettyPrintOne = y; | ||
window.prettyPrint = b; | ||
window.PR = { | ||
createSimpleLexer: g, | ||
registerLangHandler: c, | ||
sourceDecorator: i, | ||
PR_ATTRIB_NAME: P, | ||
PR_ATTRIB_VALUE: n, | ||
PR_COMMENT: j, | ||
PR_DECLARATION: E, | ||
PR_KEYWORD: z, | ||
PR_LITERAL: G, | ||
PR_NOCODE: N, | ||
PR_PLAIN: F, | ||
PR_PUNCTUATION: L, | ||
PR_SOURCE: J, | ||
PR_STRING: C, | ||
PR_TAG: m, | ||
PR_TYPE: O | ||
}; | ||
})();PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_DECLARATION, /^<!\w[^>]*(?:>|$)/], [PR.PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/], [PR.PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], ['lang-', /^<%([\s\S]+?)(?:%>|$)/], ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], ['lang-handlebars', /^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i], [PR.PR_DECLARATION, /^{{[#^>/]?\s*[\w.][^}]*}}/], [PR.PR_DECLARATION, /^{{&?\s*[\w.][^}]*}}/], [PR.PR_DECLARATION, /^{{{>?\s*[\w.][^}]*}}}/], [PR.PR_COMMENT, /^{{![^}]*}}/]]), ['handlebars', 'hbs']);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, ' \t\r\n\f']], [[PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null], [PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null], ['lang-css-str', /^url\(([^\)\"\']*)\)/i], [PR.PR_KEYWORD, /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i, null], ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i], [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], [PR.PR_COMMENT, /^(?:<!--|-->)/], [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i], [PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i], [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/]]), ['css']);PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]), ['css-kw']);PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_STRING, /^[^\)\"\']+/]]), ['css-str']); |
@@ -1,156 +0,164 @@ | ||
var addSorting = (function () { | ||
"use strict"; | ||
var cols, | ||
currentSort = { | ||
index: 0, | ||
desc: false | ||
}; | ||
var addSorting = (function() { | ||
'use strict'; | ||
var cols, | ||
currentSort = { | ||
index: 0, | ||
desc: false | ||
}; | ||
// returns the summary table element | ||
function getTable() { return document.querySelector('.coverage-summary table'); } | ||
// returns the thead element of the summary table | ||
function getTableHeader() { return getTable().querySelector('thead tr'); } | ||
// returns the tbody element of the summary table | ||
function getTableBody() { return getTable().querySelector('tbody'); } | ||
// returns the th element for nth column | ||
function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } | ||
// returns the summary table element | ||
function getTable() { | ||
return document.querySelector('.coverage-summary table'); | ||
} | ||
// returns the thead element of the summary table | ||
function getTableHeader() { | ||
return getTable().querySelector('thead tr'); | ||
} | ||
// returns the tbody element of the summary table | ||
function getTableBody() { | ||
return getTable().querySelector('tbody'); | ||
} | ||
// returns the th element for nth column | ||
function getNthColumn(n) { | ||
return getTableHeader().querySelectorAll('th')[n]; | ||
} | ||
// loads all columns | ||
function loadColumns() { | ||
var colNodes = getTableHeader().querySelectorAll('th'), | ||
colNode, | ||
cols = [], | ||
col, | ||
i; | ||
// loads all columns | ||
function loadColumns() { | ||
var colNodes = getTableHeader().querySelectorAll('th'), | ||
colNode, | ||
cols = [], | ||
col, | ||
i; | ||
for (i = 0; i < colNodes.length; i += 1) { | ||
colNode = colNodes[i]; | ||
col = { | ||
key: colNode.getAttribute('data-col'), | ||
sortable: !colNode.getAttribute('data-nosort'), | ||
type: colNode.getAttribute('data-type') || 'string' | ||
}; | ||
cols.push(col); | ||
if (col.sortable) { | ||
col.defaultDescSort = col.type === 'number'; | ||
colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>'; | ||
} | ||
} | ||
return cols; | ||
for (i = 0; i < colNodes.length; i += 1) { | ||
colNode = colNodes[i]; | ||
col = { | ||
key: colNode.getAttribute('data-col'), | ||
sortable: !colNode.getAttribute('data-nosort'), | ||
type: colNode.getAttribute('data-type') || 'string' | ||
}; | ||
cols.push(col); | ||
if (col.sortable) { | ||
col.defaultDescSort = col.type === 'number'; | ||
colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>'; | ||
} | ||
} | ||
// attaches a data attribute to every tr element with an object | ||
// of data values keyed by column name | ||
function loadRowData(tableRow) { | ||
var tableCols = tableRow.querySelectorAll('td'), | ||
colNode, | ||
col, | ||
data = {}, | ||
i, | ||
val; | ||
for (i = 0; i < tableCols.length; i += 1) { | ||
colNode = tableCols[i]; | ||
col = cols[i]; | ||
val = colNode.getAttribute('data-value'); | ||
if (col.type === 'number') { | ||
val = Number(val); | ||
} | ||
data[col.key] = val; | ||
} | ||
return data; | ||
return cols; | ||
} | ||
// attaches a data attribute to every tr element with an object | ||
// of data values keyed by column name | ||
function loadRowData(tableRow) { | ||
var tableCols = tableRow.querySelectorAll('td'), | ||
colNode, | ||
col, | ||
data = {}, | ||
i, | ||
val; | ||
for (i = 0; i < tableCols.length; i += 1) { | ||
colNode = tableCols[i]; | ||
col = cols[i]; | ||
val = colNode.getAttribute('data-value'); | ||
if (col.type === 'number') { | ||
val = Number(val); | ||
} | ||
data[col.key] = val; | ||
} | ||
// loads all row data | ||
function loadData() { | ||
var rows = getTableBody().querySelectorAll('tr'), | ||
i; | ||
return data; | ||
} | ||
// loads all row data | ||
function loadData() { | ||
var rows = getTableBody().querySelectorAll('tr'), | ||
i; | ||
for (i = 0; i < rows.length; i += 1) { | ||
rows[i].data = loadRowData(rows[i]); | ||
} | ||
for (i = 0; i < rows.length; i += 1) { | ||
rows[i].data = loadRowData(rows[i]); | ||
} | ||
// sorts the table using the data for the ith column | ||
function sortByIndex(index, desc) { | ||
var key = cols[index].key, | ||
sorter = function (a, b) { | ||
a = a.data[key]; | ||
b = b.data[key]; | ||
return a < b ? -1 : a > b ? 1 : 0; | ||
}, | ||
finalSorter = sorter, | ||
tableBody = document.querySelector('.coverage-summary tbody'), | ||
rowNodes = tableBody.querySelectorAll('tr'), | ||
rows = [], | ||
i; | ||
} | ||
// sorts the table using the data for the ith column | ||
function sortByIndex(index, desc) { | ||
var key = cols[index].key, | ||
sorter = function(a, b) { | ||
a = a.data[key]; | ||
b = b.data[key]; | ||
return a < b ? -1 : a > b ? 1 : 0; | ||
}, | ||
finalSorter = sorter, | ||
tableBody = document.querySelector('.coverage-summary tbody'), | ||
rowNodes = tableBody.querySelectorAll('tr'), | ||
rows = [], | ||
i; | ||
if (desc) { | ||
finalSorter = function (a, b) { | ||
return -1 * sorter(a, b); | ||
}; | ||
} | ||
if (desc) { | ||
finalSorter = function(a, b) { | ||
return -1 * sorter(a, b); | ||
}; | ||
} | ||
for (i = 0; i < rowNodes.length; i += 1) { | ||
rows.push(rowNodes[i]); | ||
tableBody.removeChild(rowNodes[i]); | ||
} | ||
for (i = 0; i < rowNodes.length; i += 1) { | ||
rows.push(rowNodes[i]); | ||
tableBody.removeChild(rowNodes[i]); | ||
} | ||
rows.sort(finalSorter); | ||
rows.sort(finalSorter); | ||
for (i = 0; i < rows.length; i += 1) { | ||
tableBody.appendChild(rows[i]); | ||
} | ||
for (i = 0; i < rows.length; i += 1) { | ||
tableBody.appendChild(rows[i]); | ||
} | ||
// removes sort indicators for current column being sorted | ||
function removeSortIndicators() { | ||
var col = getNthColumn(currentSort.index), | ||
cls = col.className; | ||
} | ||
// removes sort indicators for current column being sorted | ||
function removeSortIndicators() { | ||
var col = getNthColumn(currentSort.index), | ||
cls = col.className; | ||
cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); | ||
col.className = cls; | ||
} | ||
// adds sort indicators for current column being sorted | ||
function addSortIndicators() { | ||
getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; | ||
} | ||
// adds event listeners for all sorter widgets | ||
function enableUI() { | ||
var i, | ||
el, | ||
ithSorter = function ithSorter(i) { | ||
var col = cols[i]; | ||
cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); | ||
col.className = cls; | ||
} | ||
// adds sort indicators for current column being sorted | ||
function addSortIndicators() { | ||
getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; | ||
} | ||
// adds event listeners for all sorter widgets | ||
function enableUI() { | ||
var i, | ||
el, | ||
ithSorter = function ithSorter(i) { | ||
var col = cols[i]; | ||
return function () { | ||
var desc = col.defaultDescSort; | ||
return function() { | ||
var desc = col.defaultDescSort; | ||
if (currentSort.index === i) { | ||
desc = !currentSort.desc; | ||
} | ||
sortByIndex(i, desc); | ||
removeSortIndicators(); | ||
currentSort.index = i; | ||
currentSort.desc = desc; | ||
addSortIndicators(); | ||
}; | ||
}; | ||
for (i =0 ; i < cols.length; i += 1) { | ||
if (cols[i].sortable) { | ||
el = getNthColumn(i).querySelector('.sorter'); | ||
if (el.addEventListener) { | ||
el.addEventListener('click', ithSorter(i)); | ||
} else { | ||
el.attachEvent('onclick', ithSorter(i)); | ||
} | ||
} | ||
if (currentSort.index === i) { | ||
desc = !currentSort.desc; | ||
} | ||
sortByIndex(i, desc); | ||
removeSortIndicators(); | ||
currentSort.index = i; | ||
currentSort.desc = desc; | ||
addSortIndicators(); | ||
}; | ||
}; | ||
for (i = 0; i < cols.length; i += 1) { | ||
if (cols[i].sortable) { | ||
el = getNthColumn(i).querySelector('.sorter'); | ||
if (el.addEventListener) { | ||
el.addEventListener('click', ithSorter(i)); | ||
} else { | ||
el.attachEvent('onclick', ithSorter(i)); | ||
} | ||
} | ||
} | ||
// adds sorting functionality to the UI | ||
return function () { | ||
if (!getTable()) { | ||
return; | ||
} | ||
cols = loadColumns(); | ||
loadData(cols); | ||
addSortIndicators(); | ||
enableUI(); | ||
}; | ||
} | ||
// adds sorting functionality to the UI | ||
return function() { | ||
if (!getTable()) { | ||
return; | ||
} | ||
cols = loadColumns(); | ||
loadData(cols); | ||
addSortIndicators(); | ||
enableUI(); | ||
}; | ||
})(); | ||
window.addEventListener('load', addSorting); |
var parseSchema = require('../'); | ||
var connect = require('mongodb'); | ||
connect('mongodb://localhost:27017/test', function(err, db){ | ||
if(err) return console.error(err); | ||
connect('mongodb://localhost:27017/test', function(err, db) { | ||
if (err) return console.error(err); | ||
parseSchema('test.test', db.collection('test').find(), function(err, schema){ | ||
if(err) return console.error(err); | ||
parseSchema('test.test', db.collection('test').find(), function(err, schema) { | ||
if (err) return console.error(err); | ||
@@ -10,0 +10,0 @@ console.log(JSON.stringify(schema, null, 2)); |
@@ -8,3 +8,3 @@ var _ = require('lodash'); | ||
module.exports = { | ||
set: function (models, options) { | ||
set: function(models, options) { | ||
options = _.defaults({ | ||
@@ -11,0 +11,0 @@ parent: this.parent |
@@ -13,3 +13,3 @@ var Collection = require('ampersand-collection'); | ||
model: Field, | ||
comparator: function (a, b) { | ||
comparator: function(a, b) { | ||
// make sure _id is always at top, even in presence of uppercase fields | ||
@@ -21,3 +21,3 @@ var aId = a.getId(); | ||
// otherwise sort case-insensitively | ||
return (aId.toLowerCase() < bId.toLowerCase()) ? -1 : 1; | ||
return aId.toLowerCase() < bId.toLowerCase() ? -1 : 1; | ||
}, | ||
@@ -29,6 +29,6 @@ /** | ||
* | ||
* @param {String} name name of the field | ||
* @param {Any} value value to be added | ||
* @param {String} name - Name of the field. | ||
* @param {Any} value - Value to be added. | ||
*/ | ||
addToField: function (name, value) { | ||
addToField: function(name, value) { | ||
// get or create field | ||
@@ -41,11 +41,14 @@ var field = this.get(name); | ||
}); | ||
if (this.parent) this.parent.trigger('change:fields.length'); | ||
if (this.parent) { | ||
this.parent.trigger('change:fields.length'); | ||
} | ||
/** | ||
* first time we see this field. We need to compensate for | ||
* the Undefined values we missed so far for this field, | ||
* by setting the count to the parent count and adjusting | ||
* total_count as well. | ||
* The first time we see this field, we need to compensate for | ||
* the `Undefined` values we missed so far by setting `count` relative | ||
* to `parent.count and adjusting `total_count` as well. | ||
*/ | ||
if (this.parent && this.parent.count > 0) { | ||
var undef = field.types.add({name: 'Undefined'}); | ||
var undef = field.types.add({ | ||
name: 'Undefined' | ||
}); | ||
undef.count += this.parent.count; | ||
@@ -55,5 +58,7 @@ field.total_count += undef.count; | ||
} | ||
// undefined are not counted towards the field's count | ||
if(value !== undefined) field.count += 1; | ||
// but they are counted towards the field's total_count | ||
// Undefined are not counted towards the field's `count` | ||
if (value !== undefined) { | ||
field.count += 1; | ||
} | ||
// But they are counted towards the field's `total_count` | ||
field.total_count += 1; | ||
@@ -60,0 +65,0 @@ field.types.addToType(value); |
@@ -48,3 +48,3 @@ var State = require('ampersand-state'); | ||
*/ | ||
description: 'string', | ||
description: 'string' | ||
}, | ||
@@ -80,3 +80,3 @@ session: { | ||
cache: false, | ||
fn: function () { | ||
fn: function() { | ||
if (!this.parent) return null; | ||
@@ -95,3 +95,3 @@ return this.count / this.parent.count; | ||
cache: false, | ||
fn: function () { | ||
fn: function() { | ||
return _.sum(this.types.pluck('unique')); | ||
@@ -98,0 +98,0 @@ } |
@@ -9,3 +9,3 @@ var Schema = require('./schema'); | ||
* @param {Function} fn Callback which will be passed `(err, schema)` | ||
* @returns {Schema} | ||
* @return {Schema} | ||
*/ | ||
@@ -19,6 +19,6 @@ module.exports = function(ns, docs, fn) { | ||
// MongoDB Cursors | ||
if(docs.stream && (typeof docs.stream === 'function')) { | ||
if (docs.stream && typeof docs.stream === 'function') { | ||
src = docs.stream(); | ||
// Streams | ||
} else if (docs.pipe && (typeof docs.pipe === 'function')) { | ||
} else if (docs.pipe && typeof docs.pipe === 'function') { | ||
src = docs; | ||
@@ -30,5 +30,5 @@ // Arrays | ||
src.pipe(schema.stream()).on('end', function(){ | ||
src.pipe(schema.stream()).pipe(es.wait(function() { | ||
fn.call(null, null, schema); | ||
}); | ||
})); | ||
return schema; | ||
@@ -35,0 +35,0 @@ }; |
@@ -20,11 +20,7 @@ var es = require('event-stream'); | ||
stream: function() { | ||
var that = this; | ||
var stream = es.map(function(doc, done) { | ||
that.parse(doc); | ||
that.trigger('data', doc, that); | ||
var model = this; | ||
return es.map(function(doc, done) { | ||
model.parse(doc); | ||
done(null, doc); | ||
}).on('end', function () { | ||
that.trigger('end', that); | ||
}); | ||
return stream; | ||
}, | ||
@@ -31,0 +27,0 @@ serialize: function() { |
@@ -10,7 +10,15 @@ var Collection = require('ampersand-collection'); | ||
/** | ||
* Helper function to get the type name given a value | ||
* @param {Any} value value to get type for | ||
* @return {String} type name, e.g. Boolean or ObjectID | ||
* Helper function to get the type name given a value. | ||
* | ||
* @example | ||
* getTypeName(false) | ||
* // 'Boolean' | ||
* getTypeName({}) | ||
* // 'Object' | ||
* getTypeName(BSON.ObjectID()) | ||
* // 'ObjectID' | ||
* @param {Any} value -Value to get type for | ||
* @return {String} | ||
*/ | ||
var getTypeName = function (value) { | ||
var getTypeName = function(value) { | ||
var T; | ||
@@ -23,3 +31,5 @@ if (_.has(value, '_bsontype')) { | ||
// don't want to create naming conflict with javascript Object | ||
if (T === 'Object') T = 'Document'; | ||
if (T === 'Object') { | ||
T = 'Document'; | ||
} | ||
return T; | ||
@@ -36,2 +46,4 @@ }; | ||
* it will not be sorted automatically for performance reasons. | ||
* @param {ampersand.State} model - The model to get the sort value for. | ||
* @return {Number} | ||
*/ | ||
@@ -43,3 +55,2 @@ comparator: function(model) { | ||
model: function(attrs, options) { | ||
// require ./type at runtime to avoid circular imports, does this work with browserify?? | ||
var Klass = types[attrs.name]; | ||
@@ -50,4 +61,3 @@ assert(Klass, 'No value type for ' + attrs.name); | ||
isModel: function(model) { | ||
// require ./type at runtime to avoid circular imports, does this work with browserify?? | ||
return (model instanceof Type); | ||
return model instanceof Type; | ||
}, | ||
@@ -58,3 +68,3 @@ /** | ||
* | ||
* @param {Any} value value to be added | ||
* @param {Any} value - value to be added | ||
*/ | ||
@@ -74,6 +84,8 @@ addToType: function(value) { | ||
type.parse(value); | ||
if (newTypeAdded && this.parent) this.parent.trigger('change:types.length'); | ||
if (newTypeAdded && this.parent) { | ||
this.parent.trigger('change:types.length'); | ||
} | ||
// trigger probability change event in all direct type children | ||
this.each(function (type) { | ||
this.each(function(type) { | ||
type.trigger('change:probability'); | ||
@@ -80,0 +92,0 @@ }); |
@@ -55,3 +55,3 @@ var Type = require('./type'); | ||
_.each(arr, function (val) { | ||
_.each(arr, function(val) { | ||
this.types.addToType(val); | ||
@@ -58,0 +58,0 @@ }.bind(this)); |
@@ -10,3 +10,3 @@ var Type = require('./type'); | ||
deps: ['count'], | ||
fn: function () { | ||
fn: function() { | ||
// more than 1 constant value means no longer unique | ||
@@ -35,3 +35,3 @@ return Math.min(this.count, 1); | ||
unique: { | ||
fn: function () { | ||
fn: function() { | ||
// undefined does not count as a value | ||
@@ -38,0 +38,0 @@ return 0; |
@@ -17,3 +17,3 @@ var Type = require('./type'); | ||
cache: false, | ||
fn: function () { | ||
fn: function() { | ||
return _.unique(this.values.pluck('value')).length; | ||
@@ -30,4 +30,6 @@ } | ||
*/ | ||
parse: function (value) { | ||
this.values.add({value: value}); | ||
parse: function(value) { | ||
this.values.add({ | ||
value: value | ||
}); | ||
this.count += 1; | ||
@@ -34,0 +36,0 @@ } |
@@ -19,3 +19,3 @@ var _ = require('lodash'); | ||
modelType: { | ||
fn: function () { | ||
fn: function() { | ||
return this.name; | ||
@@ -26,7 +26,7 @@ } | ||
cache: false, | ||
fn: function () { | ||
fn: function() { | ||
if (!this.parent) return undefined; | ||
return this.count / (this.parent.total_count || this.parent.count); | ||
} | ||
}, | ||
} | ||
}, | ||
@@ -33,0 +33,0 @@ parse: function() { |
{ | ||
"name": "mongodb-schema", | ||
"description": "Infer the probabilistic schema for a MongoDB collection.", | ||
"version": "3.0.0", | ||
"version": "3.0.1", | ||
"author": "Thomas Rueckstiess <thomas@rueckstiess.net>", | ||
@@ -18,4 +18,13 @@ "license": "Apache-2.0", | ||
"test": "mocha", | ||
"ci": "./node_modules/istanbul/lib/cli.js cover _mocha -- -R spec ./test/*.test.js" | ||
"ci": "./node_modules/istanbul/lib/cli.js cover _mocha -- -R spec ./test/*.test.js", | ||
"check": "mongodb-js-precommit" | ||
}, | ||
"precommit": [ | ||
"check" | ||
], | ||
"check": { | ||
"ignore": [ | ||
"coverage/**/*" | ||
] | ||
}, | ||
"keywords": [ | ||
@@ -29,4 +38,2 @@ "mongodb", | ||
"ampersand-state": "^4.5.4", | ||
"bson": "^0.4.0", | ||
"debug": "^2.1.3", | ||
"event-stream": "^3.3.0", | ||
@@ -36,8 +43,12 @@ "lodash": "^3.8.0" | ||
"devDependencies": { | ||
"bson": "^0.4.0", | ||
"coveralls": "^2.11.2", | ||
"eslint-config-mongodb-js": "^0.1.4", | ||
"istanbul": "^0.3.15", | ||
"mocha": "^2.0.1", | ||
"mongodb-extended-json": "^1.3.0", | ||
"mongodb-js-precommit": "^0.1.2", | ||
"pre-commit": "^1.0.10", | ||
"zuul": "^3.0.0" | ||
} | ||
} |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
197371
5.12%5
-28.57%48
9.09%1934
66.15%9
80%2
Infinity%- Removed
- Removed
- Removed
- Removed
- Removed