diff options
Diffstat (limited to 'haddock-api/resources')
| -rw-r--r-- | haddock-api/resources/html/Ocean.std-theme/ocean.css | 4 | ||||
| -rw-r--r-- | haddock-api/resources/html/README.md | 16 | ||||
| -rw-r--r-- | haddock-api/resources/html/gulpfile.js | 27 | ||||
| -rw-r--r-- | haddock-api/resources/html/haddock-bundle.min.js | 2 | ||||
| -rw-r--r-- | haddock-api/resources/html/haddock-util.js | 186 | ||||
| -rw-r--r-- | haddock-api/resources/html/js-src/haddock-util.ts | 173 | ||||
| -rw-r--r-- | haddock-api/resources/html/js-src/init.ts | 21 | ||||
| -rw-r--r-- | haddock-api/resources/html/js-src/quick-jump.tsx | 399 | ||||
| -rw-r--r-- | haddock-api/resources/html/package-lock.json | 3410 | ||||
| -rw-r--r-- | haddock-api/resources/html/package.json | 32 | ||||
| -rw-r--r-- | haddock-api/resources/html/quick-jump.css | 157 | ||||
| -rw-r--r-- | haddock-api/resources/html/quick-jump.min.js | 2 | ||||
| -rw-r--r-- | haddock-api/resources/html/tsconfig.json | 17 | 
13 files changed, 4257 insertions, 189 deletions
| diff --git a/haddock-api/resources/html/Ocean.std-theme/ocean.css b/haddock-api/resources/html/Ocean.std-theme/ocean.css index 8d3f91a9..20e37ca8 100644 --- a/haddock-api/resources/html/Ocean.std-theme/ocean.css +++ b/haddock-api/resources/html/Ocean.std-theme/ocean.css @@ -419,9 +419,7 @@ div#style-menu-holder {    vertical-align: top;    padding-left: 0.5em;  } -#interface td.src { -  white-space: nowrap; -} +  #interface td.doc p {    margin: 0;  } diff --git a/haddock-api/resources/html/README.md b/haddock-api/resources/html/README.md new file mode 100644 index 00000000..0552f6fd --- /dev/null +++ b/haddock-api/resources/html/README.md @@ -0,0 +1,16 @@ +# Compiling + +* Install [node](https://nodejs.org/) and [npm](https://www.npmjs.com) +* Run `npm install` and `npm install gulp-cli -g` in this directory. +* Run `gulp` in this directory. This rebuilds the minified JS files. + +# Development and manual testing + +Generate Haddock docs for some Haskell project. Start an HTTP server in the Haddock docs directory. +(The `file://` protocol doesn't work since it doesn't allow AJAX requests.) + +After each change to the TypeScript sources, compile and copy the generated files (JS and sourcemaps for better debugging) to the Haddock directory: + +``` +gulp && cp *.min.js path-to/generated-haddock-docs && cp *.js.map path-to/generated-haddock-docs +```
\ No newline at end of file diff --git a/haddock-api/resources/html/gulpfile.js b/haddock-api/resources/html/gulpfile.js new file mode 100644 index 00000000..c7cb6782 --- /dev/null +++ b/haddock-api/resources/html/gulpfile.js @@ -0,0 +1,27 @@ +const gulp = require('gulp'); +const uglify = require('gulp-uglify'); +const browserify = require('browserify'); +const source = require('vinyl-source-stream'); +const buffer = require('vinyl-buffer'); +const tsify = require('tsify'); +const sourcemaps = require('gulp-sourcemaps'); + +function buildJS(targetFileName, files) { +  var b = browserify({ entries: files, debug: true }); +  return b +    .plugin(tsify) +    .bundle() +    .pipe(source(targetFileName)) +    .pipe(buffer()) +    .pipe(sourcemaps.init({loadMaps: true})) +    .pipe(uglify().on('error', function(e) { console.log(e); })) +    .pipe(sourcemaps.write('.')) +    .pipe(gulp.dest('.')); +} + +gulp.task('build-js', function() { +  buildJS('quick-jump.min.js', ['./js-src/quick-jump.tsx']); +  buildJS('haddock-bundle.min.js', ['./js-src/init.ts']); +}); + +gulp.task('default', ['build-js']);
\ No newline at end of file diff --git a/haddock-api/resources/html/haddock-bundle.min.js b/haddock-api/resources/html/haddock-bundle.min.js new file mode 100644 index 00000000..64357c4a --- /dev/null +++ b/haddock-api/resources/html/haddock-bundle.min.js @@ -0,0 +1,2 @@ +!function e(t,n,o){function r(s,a){if(!n[s]){if(!t[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return r(n||e)},u,u.exports,e,t,n,o)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<o.length;s++)r(o[s]);return r}({1:[function(e,t,n){"use strict";function o(e){return(" "+e+" ").replace(_," ")}function r(e){return e.replace(k,"")}function i(e,t){return o(e.className||"").indexOf(" "+t+" ")>=0}function s(e,t){var n=o(e.className||"");n.indexOf(" "+t+" ")<0&&(e.className=r(n+" "+t))}function a(e,t){var n=o(e.className||"");n=n.replace(" "+t+" "," "),e.className=r(n)}function l(e,t,n,o){return null==o&&(o=!i(e,t)),o?(a(e,n),s(e,t)):(a(e,t),s(e,n)),o}function c(e,t){return function(n,o){return l(n,e,t,o)}}function u(e){var t=b(document.getElementById("section."+e));return x(document.getElementById("control."+e),t),h(e),t}function h(e){S[e]?delete S[e]:S[e]=!0;var t=[];for(var n in S)S.hasOwnProperty(n)&&t.push(n);document.cookie="collapsed="+encodeURIComponent(t.join("+"))}function d(e,t){document.cookie=e+"="+encodeURIComponent(t)+";path=/;"}function p(e){document.cookie=e+"=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"}function f(e){for(var t=e+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var r=n[o];" "==r.charAt(0);)r=r.substring(1,r.length);if(0==r.indexOf(t))return decodeURIComponent(r.substring(t.length,r.length))}return null}function v(e){var t=document.getElementById("page-menu");if(t&&t.firstChild){var n=t.firstChild.cloneNode(!1);n.innerHTML=e,t.appendChild(n)}}function m(){return Array.prototype.slice.call(document.getElementsByTagName("link")).filter(function(e){return-1!=e.rel.indexOf("style")&&e.title})}function g(e){for(var t=m(),n=null,o=0;o<t.length;o++){var r=t[o];r.disabled=!0,r.title==e&&(n=r)}n?(n.disabled=!1,d("haddock-style",e)):(t[0].disabled=!1,p("haddock-style")),y(!1)}function y(e){var t=document.getElementById("style-menu");t&&b(t,e)}Object.defineProperty(n,"__esModule",{value:!0});var _=/\s\s+/g,k=/^\s+|\s+$/g,b=c("show","hide"),x=c("collapser","expander");"undefined"!=typeof window&&(window.toggleSection=u);var S={};n.restoreCollapsed=function(){var e=f("collapsed");if(e){var t=e.split("+");for(var n in t)document.getElementById("section."+t[n])&&u(t[n])}},n.addStyleMenu=function(){var e=m(),t="";e.forEach(function(e){t+="<li><a href='#' onclick=\"setActiveStyleSheet('"+e.title+"'); return false;\">"+e.title+"</a></li>"}),e.length>1&&v("<div id='style-menu-holder'><a href='#' onclick='styleMenu(); return false;'>Style ▾</a><ul id='style-menu' class='hide'>"+t+"</ul></div>")},n.resetStyle=function(){var e=f("haddock-style");e&&g(e)}},{}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var o=e("./haddock-util"),r=e("./quick-jump");!function(e){"interactive"===document.readyState?e():document.addEventListener("readystatechange",function(){"interactive"===document.readyState&&e()})}(function(){o.addStyleMenu(),o.resetStyle(),o.restoreCollapsed(),r.init()})},{"./haddock-util":1,"./quick-jump":3}],3:[function(e,t,n){"use strict";function o(e,t,n){var o=new XMLHttpRequest;o.onreadystatechange=function(){o.readyState===XMLHttpRequest.DONE&&(200===o.status?t&&t(JSON.parse(o.responseText)):n&&n(o))},o.open("GET",e,!0),o.send()}function r(e){var t=document.querySelector("#page-menu"),n=document.createElement("li");t.insertBefore(n,t.firstChild),d.render(p(v,{onClick:e,title:"Quick Jump"}),t,n)}function i(e,t){return t.length<=e?t:t.slice(0,e)}function s(){return p("table",{class:"keyboard-shortcuts"},p("tr",null,p("th",null,"Key"),p("th",null,"Shortcut")),p("tr",null,p("td",null,p("span",{class:"key"},"s")),p("td",null,"Open this search box")),p("tr",null,p("td",null,p("span",{class:"key"},"esc")),p("td",null,"Close this search box")),p("tr",null,p("td",null,p("span",{class:"key"},"↓"),",",p("span",{class:"key"},"ctrl")," + ",p("span",{class:"key"},"j")),p("td",null,"Move down in search results")),p("tr",null,p("td",null,p("span",{class:"key"},"↑"),",",p("span",{class:"key"},"ctrl")," + ",p("span",{class:"key"},"k")),p("td",null,"Move up in search results")),p("tr",null,p("td",null,p("span",{class:"key"},"↵")),p("td",null,"Go to active search result")))}function a(){return p("p",null,"You can find any exported type, constructor, class, function or pattern defined in this package by (approximate) name.")}function l(e){var t=[p("p",null,"Your search for '",e.searchString,"' produced the following list of results: ",p("code",null,"[]"),"."),p("p",null,p("code",null,"Nothing")," matches your query for '",e.searchString,"'."),p("p",null,p("code",null,"Left \"no matches for '",e.searchString,"'\" :: Either String (NonEmpty SearchResult)"))];return t[(e.searchString||"a").charCodeAt(0)%t.length]}function c(e,t){d.render(p(m,{baseUrl:e||".",showHideTrigger:t||r}),document.body)}var u=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();Object.defineProperty(n,"__esModule",{value:!0});var h=e("fuse.js"),d=e("preact"),p=d.h,f=d.Component,v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.render=function(e){return p("li",null,p("a",{href:"#",onClick:function(t){t.preventDefault(),e.onClick()}},e.title))},t}(f),m=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.linkIndex=0,t.focusPlease=!1,t.navigatedByKeyboard=!1,t}return u(t,e),t.prototype.componentWillMount=function(){var e=this;this.setState({searchString:"",isVisible:!1,expanded:{},activeLinkIndex:-1,moduleResults:[]}),o(this.props.baseUrl+"/doc-index.json",function(t){e.setState({fuse:new h(t,{threshold:.4,caseSensitive:!0,includeScore:!0,tokenize:!0,keys:["name","module"]}),moduleResults:[]})},function(t){console&&console.error("could not load 'doc-index.json' for searching",t),e.setState({failedLoading:!0})}),document.addEventListener("mousedown",this.hide.bind(this)),document.addEventListener("keydown",function(t){e.state.isVisible&&("Escape"===t.key?e.hide():"ArrowUp"===t.key||"k"===t.key&&t.ctrlKey?(t.preventDefault(),e.navigateLinks(-1)):"ArrowDown"===t.key||"j"===t.key&&t.ctrlKey?(t.preventDefault(),e.navigateLinks(1)):"Enter"===t.key&&e.state.activeLinkIndex>=0&&e.followActiveLink()),"s"===t.key&&"input"!==t.target.tagName.toLowerCase()&&(t.preventDefault(),e.show())})},t.prototype.hide=function(){this.setState({isVisible:!1})},t.prototype.show=function(){this.state.isVisible||(this.focusPlease=!0,this.setState({isVisible:!0,activeLinkIndex:-1}))},t.prototype.toggleVisibility=function(){this.state.isVisible?this.hide():this.show()},t.prototype.navigateLinks=function(e){var t=Math.max(-1,Math.min(this.linkIndex-1,this.state.activeLinkIndex+e));this.navigatedByKeyboard=!0,this.setState({activeLinkIndex:t})},t.prototype.followActiveLink=function(){this.activeLinkAction&&this.activeLinkAction()},t.prototype.updateResults=function(){var e=this.input&&this.input.value||"",t={};this.state.fuse.search(e).forEach(function(e){var n=e.item.module;(t[n]||(t[n]=[])).push(e)});var n=[];for(var o in t)!function(e){var o=t[e],r=0;o.forEach(function(e){r+=1/e.score}),n.push({module:e,totalScore:1/r,items:o})}(o);n.sort(function(e,t){return e.totalScore-t.totalScore}),this.setState({searchString:e,isVisible:!0,moduleResults:n})},t.prototype.componentDidUpdate=function(){if(this.searchResults&&this.activeLink&&this.navigatedByKeyboard){var e=this.activeLink.getClientRects()[0],t=this.searchResults.getClientRects()[0].top;e.bottom>window.innerHeight?this.searchResults.scrollTop+=e.bottom-window.innerHeight+80:e.top<t&&(this.searchResults.scrollTop-=t-e.top+80)}this.focusPlease&&this.input&&this.input.focus(),this.navigatedByKeyboard=!1,this.focusPlease=!1},t.prototype.componentDidMount=function(){this.props.showHideTrigger(this.toggleVisibility.bind(this))},t.prototype.render=function(e,t){var n=this;if(t.failedLoading)return null;this.linkIndex=0;var o=function(e){e.stopPropagation()},r=i(10,t.moduleResults).map(function(e){return n.renderResultsInModule(e)});return p("div",{id:"search",class:t.isVisible?"":"hidden"},p("div",{id:"search-form",onMouseDown:o},p("input",{placeholder:"Search in package by name",ref:function(e){n.input=e},onFocus:this.show.bind(this),onClick:this.show.bind(this),onInput:this.updateResults.bind(this)})),p("div",{id:"search-results",ref:function(e){n.searchResults=e},onMouseDown:o,onMouseOver:function(e){for(var t=e.target;t&&"function"==typeof t.getAttribute;){var o=t.getAttribute("data-link-index");if("string"==typeof o){var r=parseInt(o,10);n.setState({activeLinkIndex:r});break}t=t.parentNode}}},""===t.searchString?[p(a,null),p(s,null)]:0==r.length?p(l,{searchString:t.searchString}):p("ul",null,r)))},t.prototype.renderResultsInModule=function(e){var t=this,n=e.items,o=e.module,r=this.state.expanded[o]||n.length<=10,s=r?n:i(8,n),a=function(e){return p("li",{class:"search-result"},t.navigationLink(t.props.baseUrl+"/"+e.link,{},p(g,{html:e.display_html})))};return p("li",{class:"search-module"},p("h4",null,o),p("ul",null,s.map(function(e){return a(e.item)}),r?[]:p("li",{class:"more-results"},this.actionLink(function(){var e=Object.assign({},t.state.expanded);e[o]=!0,t.setState({expanded:e})},{},"show "+(n.length-s.length)+" more results from this module"))))},t.prototype.navigationLink=function(e,t){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=Object.assign({href:e,onClick:this.hide.bind(this)},t);return this.menuLink.apply(this,[i,function(){window.location.href=e,n.hide()}].concat(o))},t.prototype.actionLink=function(e,t){for(var n=[],o=2;o<arguments.length;o++)n[o-2]=arguments[o];var r=Object.assign({href:"#",onClick:function(t){t.preventDefault(),e()}},t);return this.menuLink.apply(this,[r,e].concat(n))},t.prototype.menuLink=function(e,t){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=this.linkIndex;i===this.state.activeLinkIndex&&(e.class=(e.class?e.class+" ":"")+"active-link",e.ref=function(e){e&&(n.activeLink=e)},this.activeLinkAction=t);var s=Object.assign({"data-link-index":i},e);return this.linkIndex+=1,p.apply(void 0,["a",s].concat(o))},t}(f),g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.shouldComponentUpdate=function(e){return this.props.html!==e.html},t.prototype.render=function(e){return p("div",{dangerouslySetInnerHTML:{__html:e.html}})},t}(f);n.init=c,window.quickNav={init:c}},{"fuse.js":4,preact:5}],4:[function(e,t,n){!function(e,o){"object"==typeof n&&"object"==typeof t?t.exports=o():"function"==typeof define&&define.amd?define("Fuse",[],o):"object"==typeof n?n.Fuse=o():e.Fuse=o()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(e,t,n){"use strict";e.exports=function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),i=n(5),s=n(7),a=n(4),l=function(){function e(t,n){var r=n.location,i=void 0===r?0:r,s=n.distance,l=void 0===s?100:s,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,d=void 0===h?32:h,p=n.isCaseSensitive,f=void 0!==p&&p,v=n.tokenSeparator,m=void 0===v?/ +/g:v,g=n.findAllMatches,y=void 0!==g&&g,_=n.minMatchCharLength,k=void 0===_?1:_;o(this,e),this.options={location:i,distance:l,threshold:u,maxPatternLength:d,isCaseSensitive:f,tokenSeparator:m,findAllMatches:y,minMatchCharLength:k},this.pattern=this.options.isCaseSensitive?t:t.toLowerCase(),this.pattern.length<=d&&(this.patternAlphabet=a(this.pattern))}return r(e,[{key:"search",value:function(e){if(this.options.isCaseSensitive||(e=e.toLowerCase()),this.pattern===e)return{isMatch:!0,score:0,matchedIndices:[[0,e.length-1]]};var t=this.options,n=t.maxPatternLength,o=t.tokenSeparator;if(this.pattern.length>n)return i(e,this.pattern,o);var r=this.options,a=r.location,l=r.distance,c=r.threshold,u=r.findAllMatches,h=r.minMatchCharLength;return s(e,this.pattern,this.patternAlphabet,{location:a,distance:l,threshold:c,findAllMatches:u,minMatchCharLength:h})}}]),e}();e.exports=l},function(e,t,n){"use strict";var o=n(0),r=function e(t,n,r){if(n){var i=n.indexOf("."),s=n,a=null;-1!==i&&(s=n.slice(0,i),a=n.slice(i+1));var l=t[s];if(null!==l&&void 0!==l)if(a||"string"!=typeof l&&"number"!=typeof l)if(o(l))for(var c=0,u=l.length;c<u;c+=1)e(l[c],a,r);else a&&e(l,a,r);else r.push(l.toString())}else r.push(t);return r};e.exports=function(e,t){return r(e,t,[])}},function(e,t,n){"use strict";e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],o=-1,r=-1,i=0,s=e.length;i<s;i+=1){var a=e[i];a&&-1===o?o=i:a||-1===o||((r=i-1)-o+1>=t&&n.push([o,r]),o=-1)}return e[i-1]&&i-o>=t&&n.push([o,i-1]),n}},function(e,t,n){"use strict";e.exports=function(e){for(var t={},n=e.length,o=0;o<n;o+=1)t[e.charAt(o)]=0;for(var r=0;r<n;r+=1)t[e.charAt(r)]|=1<<n-r-1;return t}},function(e,t,n){"use strict";var o=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,r=new RegExp(t.replace(o,"\\$&").replace(n,"|")),i=e.match(r),s=!!i,a=[];if(s)for(var l=0,c=i.length;l<c;l+=1){var u=i[l];a.push([e.indexOf(u),u.length-1])}return{score:s?.5:1,isMatch:s,matchedIndices:a}}},function(e,t,n){"use strict";e.exports=function(e,t){var n=t.errors,o=void 0===n?0:n,r=t.currentLocation,i=void 0===r?0:r,s=t.expectedLocation,a=void 0===s?0:s,l=t.distance,c=void 0===l?100:l,u=o/e.length,h=Math.abs(a-i);return c?u+h/c:h?1:u}},function(e,t,n){"use strict";var o=n(6),r=n(3);e.exports=function(e,t,n,i){for(var s=i.location,a=void 0===s?0:s,l=i.distance,c=void 0===l?100:l,u=i.threshold,h=void 0===u?.6:u,d=i.findAllMatches,p=void 0!==d&&d,f=i.minMatchCharLength,v=void 0===f?1:f,m=a,g=e.length,y=h,_=e.indexOf(t,m),k=t.length,b=[],x=0;x<g;x+=1)b[x]=0;if(-1!==_){var S=o(t,{errors:0,currentLocation:_,expectedLocation:m,distance:c});if(y=Math.min(S,y),-1!==(_=e.lastIndexOf(t,m+k))){var w=o(t,{errors:0,currentLocation:_,expectedLocation:m,distance:c});y=Math.min(w,y)}}_=-1;for(var L=[],C=1,M=k+g,I=1<<k-1,N=0;N<k;N+=1){for(var A=0,O=M;A<O;)o(t,{errors:N,currentLocation:m+O,expectedLocation:m,distance:c})<=y?A=O:M=O,O=Math.floor((M-A)/2+A);M=O;var E=Math.max(1,m-O+1),T=p?g:Math.min(m+O,g)+k,j=Array(T+2);j[T+1]=(1<<N)-1;for(var P=T;P>=E;P-=1){var R=P-1,U=n[e.charAt(R)];if(U&&(b[R]=1),j[P]=(j[P+1]<<1|1)&U,0!==N&&(j[P]|=(L[P+1]|L[P])<<1|1|L[P+1]),j[P]&I&&(C=o(t,{errors:N,currentLocation:R,expectedLocation:m,distance:c}))<=y){if(y=C,(_=R)<=m)break;E=Math.max(1,2*m-_)}}if(o(t,{errors:N+1,currentLocation:m,expectedLocation:m,distance:c})>y)break;L=j}return{isMatch:_>=0,score:0===C?.001:C,matchedIndices:r(b,v)}}},function(e,t,n){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),i=n(1),s=n(2),a=n(0),l=function(){function e(t,n){var r=n.location,i=void 0===r?0:r,a=n.distance,l=void 0===a?100:a,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,d=void 0===h?32:h,p=n.caseSensitive,f=void 0!==p&&p,v=n.tokenSeparator,m=void 0===v?/ +/g:v,g=n.findAllMatches,y=void 0!==g&&g,_=n.minMatchCharLength,k=void 0===_?1:_,b=n.id,x=void 0===b?null:b,S=n.keys,w=void 0===S?[]:S,L=n.shouldSort,C=void 0===L||L,M=n.getFn,I=void 0===M?s:M,N=n.sortFn,A=void 0===N?function(e,t){return e.score-t.score}:N,O=n.tokenize,E=void 0!==O&&O,T=n.matchAllTokens,j=void 0!==T&&T,P=n.includeMatches,R=void 0!==P&&P,U=n.includeScore,D=void 0!==U&&U,V=n.verbose,F=void 0!==V&&V;o(this,e),this.options={location:i,distance:l,threshold:u,maxPatternLength:d,isCaseSensitive:f,tokenSeparator:m,findAllMatches:y,minMatchCharLength:k,id:x,keys:w,includeMatches:R,includeScore:D,shouldSort:C,getFn:I,sortFn:A,verbose:F,tokenize:E,matchAllTokens:j},this.setCollection(t)}return r(e,[{key:"setCollection",value:function(e){return this.list=e,e}},{key:"search",value:function(e){this._log('---------\nSearch pattern: "'+e+'"');var t=this._prepareSearchers(e),n=t.tokenSearchers,o=t.fullSearcher,r=this._search(n,o),i=r.weights,s=r.results;return this._computeScore(i,s),this.options.shouldSort&&this._sort(s),this._format(s)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),o=0,r=n.length;o<r;o+=1)t.push(new i(n[o],this.options));return{tokenSearchers:t,fullSearcher:new i(e,this.options)}}},{key:"_search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=this.list,o={},r=[];if("string"==typeof n[0]){for(var i=0,s=n.length;i<s;i+=1)this._analyze({key:"",value:n[i],record:i,index:i},{resultMap:o,results:r,tokenSearchers:e,fullSearcher:t});return{weights:null,results:r}}for(var a={},l=0,c=n.length;l<c;l+=1)for(var u=n[l],h=0,d=this.options.keys.length;h<d;h+=1){var p=this.options.keys[h];if("string"!=typeof p){if(a[p.name]={weight:1-p.weight||1},p.weight<=0||p.weight>1)throw new Error("Key weight has to be > 0 and <= 1");p=p.name}else a[p]={weight:1};this._analyze({key:p,value:this.options.getFn(u,p),record:u,index:l},{resultMap:o,results:r,tokenSearchers:e,fullSearcher:t})}return{weights:a,results:r}}},{key:"_analyze",value:function(e,t){var n=e.key,o=e.arrayIndex,r=void 0===o?-1:o,i=e.value,s=e.record,l=e.index,c=t.tokenSearchers,u=void 0===c?[]:c,h=t.fullSearcher,d=void 0===h?[]:h,p=t.resultMap,f=void 0===p?{}:p,v=t.results,m=void 0===v?[]:v;if(void 0!==i&&null!==i){var g=!1,y=-1,_=0;if("string"==typeof i){this._log("\nKey: "+(""===n?"-":n));var k=d.search(i);if(this._log('Full text: "'+i+'", score: '+k.score),this.options.tokenize){for(var b=i.split(this.options.tokenSeparator),x=[],S=0;S<u.length;S+=1){var w=u[S];this._log('\nPattern: "'+w.pattern+'"');for(var L=!1,C=0;C<b.length;C+=1){var M=b[C],I=w.search(M),N={};I.isMatch?(N[M]=I.score,g=!0,L=!0,x.push(I.score)):(N[M]=1,this.options.matchAllTokens||x.push(1)),this._log('Token: "'+M+'", score: '+N[M])}L&&(_+=1)}y=x[0];for(var A=x.length,O=1;O<A;O+=1)y+=x[O];y/=A,this._log("Token score average:",y)}var E=k.score;y>-1&&(E=(E+y)/2),this._log("Score average:",E);var T=!this.options.tokenize||!this.options.matchAllTokens||_>=u.length;if(this._log("\nCheck Matches: "+T),(g||k.isMatch)&&T){var j=f[l];j?j.output.push({key:n,arrayIndex:r,value:i,score:E,matchedIndices:k.matchedIndices}):(f[l]={item:s,output:[{key:n,arrayIndex:r,value:i,score:E,matchedIndices:k.matchedIndices}]},m.push(f[l]))}}else if(a(i))for(var P=0,R=i.length;P<R;P+=1)this._analyze({key:n,arrayIndex:P,value:i[P],record:s,index:l},{resultMap:f,results:m,tokenSearchers:u,fullSearcher:d})}}},{key:"_computeScore",value:function(e,t){this._log("\n\nComputing score:\n");for(var n=0,o=t.length;n<o;n+=1){for(var r=t[n].output,i=r.length,s=0,a=1,l=0;l<i;l+=1){var c=r[l].score,u=e?e[r[l].key].weight:1,h=c*u;1!==u?a=Math.min(a,h):(r[l].nScore=h,s+=h)}t[n].score=1===a?s/i:a,this._log(t[n])}}},{key:"_sort",value:function(e){this._log("\n\nSorting...."),e.sort(this.options.sortFn)}},{key:"_format",value:function(e){var t=[];this._log("\n\nOutput:\n\n",JSON.stringify(e));var n=[];this.options.includeMatches&&n.push(function(e,t){var n=e.output;t.matches=[];for(var o=0,r=n.length;o<r;o+=1){var i=n[o];if(0!==i.matchedIndices.length){var s={indices:i.matchedIndices,value:i.value};i.key&&(s.key=i.key),i.hasOwnProperty("arrayIndex")&&i.arrayIndex>-1&&(s.arrayIndex=i.arrayIndex),t.matches.push(s)}}}),this.options.includeScore&&n.push(function(e,t){t.score=e.score});for(var o=0,r=e.length;o<r;o+=1){var i=e[o];if(this.options.id&&(i.item=this.options.getFn(i.item,this.options.id)[0]),n.length){for(var s={item:i.item},a=0,l=n.length;a<l;a+=1)n[a](i,s);t.push(s)}else t.push(i.item)}return t}},{key:"_log",value:function(){if(this.options.verbose){var e;(e=console).log.apply(e,arguments)}}}]),e}();e.exports=l}])})},{}],5:[function(e,t,n){!function(){"use strict";function e(){}function n(t,n){var o,r,i,s,a=O;for(s=arguments.length;s-- >2;)A.push(arguments[s]);for(n&&null!=n.children&&(A.length||A.push(n.children),delete n.children);A.length;)if((r=A.pop())&&void 0!==r.pop)for(s=r.length;s--;)A.push(r[s]);else"boolean"==typeof r&&(r=null),(i="function"!=typeof t)&&(null==r?r="":"number"==typeof r?r=String(r):"string"!=typeof r&&(i=!1)),i&&o?a[a.length-1]+=r:a===O?a=[r]:a.push(r),o=i;var l=new e;return l.nodeName=t,l.children=a,l.attributes=null==n?void 0:n,l.key=null==n?void 0:n.key,void 0!==N.vnode&&N.vnode(l),l}function o(e,t){for(var n in t)e[n]=t[n];return e}function r(e){!e.__d&&(e.__d=!0)&&1==j.push(e)&&(N.debounceRendering||E)(i)}function i(){var e,t=j;for(j=[];e=t.pop();)e.__d&&L(e)}function s(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&a(e,t.nodeName):n||e._componentConstructor===t.nodeName}function a(e,t){return e.__n===t||e.nodeName.toLowerCase()===t.toLowerCase()}function l(e){var t=o({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function c(e,t){var n=t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e);return n.__n=e,n}function u(e){var t=e.parentNode;t&&t.removeChild(e)}function h(e,t,n,o,r){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)n&&n(null),o&&o(e);else if("class"!==t||r)if("style"===t){if(o&&"string"!=typeof o&&"string"!=typeof n||(e.style.cssText=o||""),o&&"object"==typeof o){if("string"!=typeof n)for(var i in n)i in o||(e.style[i]="");for(var i in o)e.style[i]="number"==typeof o[i]&&!1===T.test(i)?o[i]+"px":o[i]}}else if("dangerouslySetInnerHTML"===t)o&&(e.innerHTML=o.__html||"");else if("o"==t[0]&&"n"==t[1]){var s=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),o?n||e.addEventListener(t,p,s):e.removeEventListener(t,p,s),(e.__l||(e.__l={}))[t]=o}else if("list"!==t&&"type"!==t&&!r&&t in e)d(e,t,null==o?"":o),null!=o&&!1!==o||e.removeAttribute(t);else{var a=r&&t!==(t=t.replace(/^xlink\:?/,""));null==o||!1===o?a?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!=typeof o&&(a?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),o):e.setAttribute(t,o))}else e.className=o||""}function d(e,t,n){try{e[t]=n}catch(e){}}function p(e){return this.__l[e.type](N.event&&N.event(e)||e)}function f(){for(var e;e=P.pop();)N.afterMount&&N.afterMount(e),e.componentDidMount&&e.componentDidMount()}function v(e,t,n,o,r,i){R++||(U=null!=r&&void 0!==r.ownerSVGElement,D=null!=e&&!("__preactattr_"in e));var s=m(e,t,n,o,i);return r&&s.parentNode!==r&&r.appendChild(s),--R||(D=!1,i||f()),s}function m(e,t,n,o,r){var i=e,s=U;if(null!=t&&"boolean"!=typeof t||(t=""),"string"==typeof t||"number"==typeof t)return e&&void 0!==e.splitText&&e.parentNode&&(!e._component||r)?e.nodeValue!=t&&(e.nodeValue=t):(i=document.createTextNode(t),e&&(e.parentNode&&e.parentNode.replaceChild(i,e),y(e,!0))),i.__preactattr_=!0,i;var l=t.nodeName;if("function"==typeof l)return C(e,t,n,o);if(U="svg"===l||"foreignObject"!==l&&U,l=String(l),(!e||!a(e,l))&&(i=c(l,U),e)){for(;e.firstChild;)i.appendChild(e.firstChild);e.parentNode&&e.parentNode.replaceChild(i,e),y(e,!0)}var u=i.firstChild,h=i.__preactattr_,d=t.children;if(null==h){h=i.__preactattr_={};for(var p=i.attributes,f=p.length;f--;)h[p[f].name]=p[f].value}return!D&&d&&1===d.length&&"string"==typeof d[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=d[0]&&(u.nodeValue=d[0]):(d&&d.length||null!=u)&&g(i,d,n,o,D||null!=h.dangerouslySetInnerHTML),k(i,t.attributes,h),U=s,i}function g(e,t,n,o,r){var i,a,l,c,h,d=e.childNodes,p=[],f={},v=0,g=0,_=d.length,k=0,b=t?t.length:0;if(0!==_)for(L=0;L<_;L++){var x=d[L],S=x.__preactattr_;null!=(w=b&&S?x._component?x._component.__k:S.key:null)?(v++,f[w]=x):(S||(void 0!==x.splitText?!r||x.nodeValue.trim():r))&&(p[k++]=x)}if(0!==b)for(L=0;L<b;L++){h=null;var w=(c=t[L]).key;if(null!=w)v&&void 0!==f[w]&&(h=f[w],f[w]=void 0,v--);else if(!h&&g<k)for(i=g;i<k;i++)if(void 0!==p[i]&&s(a=p[i],c,r)){h=a,p[i]=void 0,i===k-1&&k--,i===g&&g++;break}h=m(h,c,n,o),l=d[L],h&&h!==e&&h!==l&&(null==l?e.appendChild(h):h===l.nextSibling?u(l):e.insertBefore(h,l))}if(v)for(var L in f)void 0!==f[L]&&y(f[L],!1);for(;g<=k;)void 0!==(h=p[k--])&&y(h,!1)}function y(e,t){var n=e._component;n?M(n):(null!=e.__preactattr_&&e.__preactattr_.ref&&e.__preactattr_.ref(null),!1!==t&&null!=e.__preactattr_||u(e),_(e))}function _(e){for(e=e.lastChild;e;){var t=e.previousSibling;y(e,!0),e=t}}function k(e,t,n){var o;for(o in n)t&&null!=t[o]||null==n[o]||h(e,o,n[o],n[o]=void 0,U);for(o in t)"children"===o||"innerHTML"===o||o in n&&t[o]===("value"===o||"checked"===o?e[o]:n[o])||h(e,o,n[o],n[o]=t[o],U)}function b(e){var t=e.constructor.name;(V[t]||(V[t]=[])).push(e)}function x(e,t,n){var o,r=V[e.name];if(e.prototype&&e.prototype.render?(o=new e(t,n),I.call(o,t,n)):((o=new I(t,n)).constructor=e,o.render=S),r)for(var i=r.length;i--;)if(r[i].constructor===e){o.__b=r[i].__b,r.splice(i,1);break}return o}function S(e,t,n){return this.constructor(e,n)}function w(e,t,n,o,i){e.__x||(e.__x=!0,(e.__r=t.ref)&&delete t.ref,(e.__k=t.key)&&delete t.key,!e.base||i?e.componentWillMount&&e.componentWillMount():e.componentWillReceiveProps&&e.componentWillReceiveProps(t,o),o&&o!==e.context&&(e.__c||(e.__c=e.context),e.context=o),e.__p||(e.__p=e.props),e.props=t,e.__x=!1,0!==n&&(1!==n&&!1===N.syncComponentUpdates&&e.base?r(e):L(e,1,i)),e.__r&&e.__r(e))}function L(e,t,n,r){if(!e.__x){var i,s,a,c=e.props,u=e.state,h=e.context,d=e.__p||c,p=e.__s||u,m=e.__c||h,g=e.base,_=e.__b,k=g||_,b=e._component,S=!1;if(g&&(e.props=d,e.state=p,e.context=m,2!==t&&e.shouldComponentUpdate&&!1===e.shouldComponentUpdate(c,u,h)?S=!0:e.componentWillUpdate&&e.componentWillUpdate(c,u,h),e.props=c,e.state=u,e.context=h),e.__p=e.__s=e.__c=e.__b=null,e.__d=!1,!S){i=e.render(c,u,h),e.getChildContext&&(h=o(o({},h),e.getChildContext()));var C,I,A=i&&i.nodeName;if("function"==typeof A){var O=l(i);(s=b)&&s.constructor===A&&O.key==s.__k?w(s,O,1,h,!1):(C=s,e._component=s=x(A,O,h),s.__b=s.__b||_,s.__u=e,w(s,O,0,h,!1),L(s,1,n,!0)),I=s.base}else a=k,(C=b)&&(a=e._component=null),(k||1===t)&&(a&&(a._component=null),I=v(a,i,h,n||!g,k&&k.parentNode,!0));if(k&&I!==k&&s!==b){var E=k.parentNode;E&&I!==E&&(E.replaceChild(I,k),C||(k._component=null,y(k,!1)))}if(C&&M(C),e.base=I,I&&!r){for(var T=e,j=e;j=j.__u;)(T=j).base=I;I._component=T,I._componentConstructor=T.constructor}}if(!g||n?P.unshift(e):S||(e.componentDidUpdate&&e.componentDidUpdate(d,p,m),N.afterUpdate&&N.afterUpdate(e)),null!=e.__h)for(;e.__h.length;)e.__h.pop().call(e);R||r||f()}}function C(e,t,n,o){for(var r=e&&e._component,i=r,s=e,a=r&&e._componentConstructor===t.nodeName,c=a,u=l(t);r&&!c&&(r=r.__u);)c=r.constructor===t.nodeName;return r&&c&&(!o||r._component)?(w(r,u,3,n,o),e=r.base):(i&&!a&&(M(i),e=s=null),r=x(t.nodeName,u,n),e&&!r.__b&&(r.__b=e,s=null),w(r,u,1,n,o),e=r.base,s&&e!==s&&(s._component=null,y(s,!1))),e}function M(e){N.beforeUnmount&&N.beforeUnmount(e);var t=e.base;e.__x=!0,e.componentWillUnmount&&e.componentWillUnmount(),e.base=null;var n=e._component;n?M(n):t&&(t.__preactattr_&&t.__preactattr_.ref&&t.__preactattr_.ref(null),e.__b=t,u(t),b(e),_(t)),e.__r&&e.__r(null)}function I(e,t){this.__d=!0,this.context=t,this.props=e,this.state=this.state||{}}var N={},A=[],O=[],E="function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout,T=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,j=[],P=[],R=0,U=!1,D=!1,V={};o(I.prototype,{setState:function(e,t){var n=this.state;this.__s||(this.__s=o({},n)),o(n,"function"==typeof e?e(n,this.props):e),t&&(this.__h=this.__h||[]).push(t),r(this)},forceUpdate:function(e){e&&(this.__h=this.__h||[]).push(e),L(this,2)},render:function(){}});var F={h:n,createElement:n,cloneElement:function(e,t){return n(e.nodeName,o(o({},e.attributes),t),arguments.length>2?[].slice.call(arguments,2):e.children)},Component:I,render:function(e,t,n){return v(n,e,{},!1,t,!1)},rerender:i,options:N};void 0!==t?t.exports=F:self.preact=F}()},{}]},{},[2]); +//# sourceMappingURL=haddock-bundle.min.js.map diff --git a/haddock-api/resources/html/haddock-util.js b/haddock-api/resources/html/haddock-util.js deleted file mode 100644 index 967e2026..00000000 --- a/haddock-api/resources/html/haddock-util.js +++ /dev/null @@ -1,186 +0,0 @@ -// Haddock JavaScript utilities - -var rspace = /\s\s+/g, -    rtrim = /^\s+|\s+$/g; - -function spaced(s) { return (" " + s + " ").replace(rspace, " "); } -function trim(s)   { return s.replace(rtrim, ""); } - -function hasClass(elem, value) { -  var className = spaced(elem.className || ""); -  return className.indexOf( " " + value + " " ) >= 0; -} - -function addClass(elem, value) { -  var className = spaced(elem.className || ""); -  if ( className.indexOf( " " + value + " " ) < 0 ) { -    elem.className = trim(className + " " + value); -  } -} - -function removeClass(elem, value) { -  var className = spaced(elem.className || ""); -  className = className.replace(" " + value + " ", " "); -  elem.className = trim(className); -} - -function toggleClass(elem, valueOn, valueOff, bool) { -  if (bool == null) { bool = ! hasClass(elem, valueOn); } -  if (bool) { -    removeClass(elem, valueOff); -    addClass(elem, valueOn); -  } -  else { -    removeClass(elem, valueOn); -    addClass(elem, valueOff); -  } -  return bool; -} - - -function makeClassToggle(valueOn, valueOff) -{ -  return function(elem, bool) { -    return toggleClass(elem, valueOn, valueOff, bool); -  } -} - -toggleShow = makeClassToggle("show", "hide"); -toggleCollapser = makeClassToggle("collapser", "expander"); - -function toggleSection(id) -{ -  var b = toggleShow(document.getElementById("section." + id)); -  toggleCollapser(document.getElementById("control." + id), b); -  rememberCollapsed(id); -  return b; -} - -var collapsed = {}; -function rememberCollapsed(id) -{ -  if(collapsed[id]) -    delete collapsed[id] -  else -    collapsed[id] = true; - -  var sections = []; -  for(var i in collapsed) -  { -    if(collapsed.hasOwnProperty(i)) -      sections.push(i); -  } -  // cookie specific to this page; don't use setCookie which sets path=/ -  document.cookie = "collapsed=" + escape(sections.join('+')); -} - -function restoreCollapsed() -{ -  var cookie = getCookie("collapsed"); -  if(!cookie) -    return; - -  var ids = cookie.split('+'); -  for(var i in ids) -  { -    if(document.getElementById("section." + ids[i])) -      toggleSection(ids[i]); -  } -} - -function setCookie(name, value) { -  document.cookie = name + "=" + escape(value) + ";path=/;"; -} - -function clearCookie(name) { -  document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"; -} - -function getCookie(name) { -  var nameEQ = name + "="; -  var ca = document.cookie.split(';'); -  for(var i=0;i < ca.length;i++) { -    var c = ca[i]; -    while (c.charAt(0)==' ') c = c.substring(1,c.length); -    if (c.indexOf(nameEQ) == 0) { -      return unescape(c.substring(nameEQ.length,c.length)); -    } -  } -  return null; -} - -function addMenuItem(html) { -  var menu = document.getElementById("page-menu"); -  if (menu) { -    var btn = menu.firstChild.cloneNode(false); -    btn.innerHTML = html; -    menu.appendChild(btn); -  } -} - -function styles() { -  var i, a, es = document.getElementsByTagName("link"), rs = []; -  for (i = 0; a = es[i]; i++) { -    if(a.rel.indexOf("style") != -1 && a.title) { -      rs.push(a); -    } -  } -  return rs; -} - -function addStyleMenu() { -  var as = styles(); -  var i, a, btns = ""; -  for(i=0; a = as[i]; i++) { -    btns += "<li><a href='#' onclick=\"setActiveStyleSheet('" -      + a.title + "'); return false;\">" -      + a.title + "</a></li>" -  } -  if (as.length > 1) { -    var h = "<div id='style-menu-holder'>" -      + "<a href='#' onclick='styleMenu(); return false;'>Style ▾</a>" -      + "<ul id='style-menu' class='hide'>" + btns + "</ul>" -      + "</div>"; -    addMenuItem(h); -  } -} - -function setActiveStyleSheet(title) { -  var as = styles(); -  var i, a, found; -  for(i=0; a = as[i]; i++) { -    a.disabled = true; -          // need to do this always, some browsers are edge triggered -    if(a.title == title) { -      found = a; -    } -  } -  if (found) { -    found.disabled = false; -    setCookie("haddock-style", title); -  } -  else { -    as[0].disabled = false; -    clearCookie("haddock-style"); -  } -  styleMenu(false); -} - -function resetStyle() { -  var s = getCookie("haddock-style"); -  if (s) setActiveStyleSheet(s); -} - - -function styleMenu(show) { -  var m = document.getElementById('style-menu'); -  if (m) toggleShow(m, show); -} - - -function pageLoad() { -  addStyleMenu(); -  resetStyle(); -  restoreCollapsed(); -} - diff --git a/haddock-api/resources/html/js-src/haddock-util.ts b/haddock-api/resources/html/js-src/haddock-util.ts new file mode 100644 index 00000000..257ceb6a --- /dev/null +++ b/haddock-api/resources/html/js-src/haddock-util.ts @@ -0,0 +1,173 @@ +// Haddock JavaScript utilities + +const rspace = /\s\s+/g, +    rtrim = /^\s+|\s+$/g; + +function spaced(s: string) { return (" " + s + " ").replace(rspace, " "); } +function trim(s: string)   { return s.replace(rtrim, ""); } + +function hasClass(elem: Element, value: string) { +  const className = spaced(elem.className || ""); +  return className.indexOf( " " + value + " " ) >= 0; +} + +function addClass(elem: Element, value: string) { +  const className = spaced(elem.className || ""); +  if ( className.indexOf( " " + value + " " ) < 0 ) { +    elem.className = trim(className + " " + value); +  } +} + +function removeClass(elem: Element, value: string) { +  let className = spaced(elem.className || ""); +  className = className.replace(" " + value + " ", " "); +  elem.className = trim(className); +} + +function toggleClass(elem: Element, valueOn: string, valueOff: string, bool?: boolean): boolean { +  if (bool == null) { bool = ! hasClass(elem, valueOn); } +  if (bool) { +    removeClass(elem, valueOff); +    addClass(elem, valueOn); +  } +  else { +    removeClass(elem, valueOn); +    addClass(elem, valueOff); +  } +  return bool; +} + + +function makeClassToggle(valueOn: string, valueOff: string): (elem: Element, bool?: boolean) => boolean { +  return function(elem, bool) { +    return toggleClass(elem, valueOn, valueOff, bool); +  } +} + +const toggleShow = makeClassToggle("show", "hide"); +const toggleCollapser = makeClassToggle("collapser", "expander"); + +function toggleSection(id: string): boolean { +  const b = toggleShow(document.getElementById("section." + id) as Element); +  toggleCollapser(document.getElementById("control." + id) as Element, b); +  rememberCollapsed(id); +  return b; +} + +// TODO: get rid of global variables +if (typeof window !== 'undefined') { +  (window as any).toggleSection = toggleSection; +} + +const collapsed: { [id: string]: boolean } = {}; +function rememberCollapsed(id: string) { +  if(collapsed[id]) +    delete collapsed[id] +  else +    collapsed[id] = true; + +  const sections: string[] = []; +  for(let i in collapsed) { +    if(collapsed.hasOwnProperty(i)) +      sections.push(i); +  } +  // cookie specific to this page; don't use setCookie which sets path=/ +  document.cookie = "collapsed=" + encodeURIComponent(sections.join('+')); +} + +export function restoreCollapsed() { +  const cookie = getCookie("collapsed"); +  if(!cookie) +    return; + +  const ids = cookie.split('+'); +  for(const i in ids) +  { +    if(document.getElementById("section." + ids[i])) +      toggleSection(ids[i]); +  } +} + +function setCookie(name: string, value: string) { +  document.cookie = name + "=" + encodeURIComponent(value) + ";path=/;"; +} + +function clearCookie(name: string) { +  document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"; +} + +function getCookie(name: string) { +  const nameEQ = name + "="; +  const ca = document.cookie.split(';'); +  for (let i = 0; i < ca.length; i++) { +    let c = ca[i]; +    while (c.charAt(0)==' ') c = c.substring(1,c.length); +    if (c.indexOf(nameEQ) == 0) { +      return decodeURIComponent(c.substring(nameEQ.length,c.length)); +    } +  } +  return null; +} + +function addMenuItem(html: string) { +  const menu = document.getElementById("page-menu"); +  if (menu && menu.firstChild) { +    const btn = menu.firstChild.cloneNode(false) as Element; +    btn.innerHTML = html; +    menu.appendChild(btn); +  } +} + +function styles(): HTMLLinkElement[] { +  const es = Array.prototype.slice.call(document.getElementsByTagName("link")); +  return es.filter((a: HTMLLinkElement) => a.rel.indexOf("style") != -1 && a.title); +} + +export function addStyleMenu() { +  const as = styles(); +  let btns = ""; +  as.forEach((a) => { +    btns += "<li><a href='#' onclick=\"setActiveStyleSheet('" +      + a.title + "'); return false;\">" +      + a.title + "</a></li>" +  }); +  if (as.length > 1) { +    const h = "<div id='style-menu-holder'>" +      + "<a href='#' onclick='styleMenu(); return false;'>Style ▾</a>" +      + "<ul id='style-menu' class='hide'>" + btns + "</ul>" +      + "</div>"; +    addMenuItem(h); +  } +} + +function setActiveStyleSheet(title: string) { +  const as = styles(); +  let found: null | HTMLLinkElement = null; +  for(let i = 0; i < as.length; i++) { +    const a = as[i]; +    a.disabled = true; +          // need to do this always, some browsers are edge triggered +    if(a.title == title) { +      found = a; +    } +  } +  if (found) { +    found.disabled = false; +    setCookie("haddock-style", title); +  } +  else { +    as[0].disabled = false; +    clearCookie("haddock-style"); +  } +  styleMenu(false); +} + +export function resetStyle() { +  const s = getCookie("haddock-style"); +  if (s) setActiveStyleSheet(s); +} + +function styleMenu(show?: boolean) { +  const m = document.getElementById('style-menu'); +  if (m) toggleShow(m, show); +}
\ No newline at end of file diff --git a/haddock-api/resources/html/js-src/init.ts b/haddock-api/resources/html/js-src/init.ts new file mode 100644 index 00000000..0619dfc3 --- /dev/null +++ b/haddock-api/resources/html/js-src/init.ts @@ -0,0 +1,21 @@ +import * as util from "./haddock-util"; +import * as quickJump from "./quick-jump"; + +function onDomReady(callback: () => void) { +  if (document.readyState === 'interactive') { +    callback(); +  } else { +    document.addEventListener('readystatechange', () => { +      if (document.readyState === 'interactive') { +        callback(); +      } +    }); +  } +} + +onDomReady(() => { +  util.addStyleMenu(); +  util.resetStyle(); +  util.restoreCollapsed(); +  quickJump.init(); +});
\ No newline at end of file diff --git a/haddock-api/resources/html/js-src/quick-jump.tsx b/haddock-api/resources/html/js-src/quick-jump.tsx new file mode 100644 index 00000000..a2bcdb64 --- /dev/null +++ b/haddock-api/resources/html/js-src/quick-jump.tsx @@ -0,0 +1,399 @@ +import Fuse = require('fuse.js'); +import preact = require("preact"); + +const { h, Component } = preact; + +declare interface ObjectConstructor { +  assign(target: any, ...sources: any[]): any; +} + +type DocItem = { +  display_html: string +  name: string +  module: string +  link: string +} + +function loadJSON(path: string, success: (json: DocItem[]) => void, error: (xhr: XMLHttpRequest) => void) { +  const xhr = new XMLHttpRequest(); +  xhr.onreadystatechange = () => { +    if (xhr.readyState === XMLHttpRequest.DONE) { +      if (xhr.status === 200) { +        if (success) +          success(JSON.parse(xhr.responseText)); +      } else { +        if (error) { error(xhr); } +      } +    } +  }; +  xhr.open("GET", path, true); +  xhr.send(); +} + +// -------------------------------------------------------------------------- // + +class PageMenuButton extends Component<any, any> { + +  render(props: { title: string, onClick: () => void }) { +    function onClick(e: Event) { +      e.preventDefault(); +      props.onClick(); +    } +    return <li><a href="#" onClick={onClick}>{props.title}</a></li>; +  } + +} + +function addSearchPageMenuButton(action: () => void) { +  const pageMenu = document.querySelector('#page-menu') as HTMLUListElement; +  const dummy = document.createElement('li'); +  pageMenu.insertBefore(dummy, pageMenu.firstChild); +  preact.render(<PageMenuButton onClick={action} title="Quick Jump" />, pageMenu, dummy); +} + +// -------------------------------------------------------------------------- // + +function take<T>(n: number, arr: T[]) { +  if (arr.length <= n) { return arr; } +  return arr.slice(0, n); +} + +type FuseResult<T> = { +  score: number +  item: T +} + +type ResultsInModule = { module: string, totalScore: number, items: FuseResult<DocItem>[] } + +type QuickJumpProps = { +  baseUrl: string +  showHideTrigger: (action: () => void) => void +} + +type QuickJumpState = { +  searchString: string +  isVisible: boolean +  expanded: { [moduleName: string]: true } +  activeLinkIndex: number +  moduleResults: ResultsInModule[] +  failedLoading?: boolean +  fuse: Fuse +} + +class QuickJump extends Component<QuickJumpProps, QuickJumpState> { + +  private linkIndex: number = 0; +  private focusPlease: boolean = false; +  private navigatedByKeyboard: boolean = false; +  private activeLink: undefined | HTMLAnchorElement; +  private activeLinkAction: undefined | (() => void); + +  private input: undefined | HTMLInputElement; +  private searchResults: undefined | Element; + +  componentWillMount() { +    this.setState({ +      searchString: '', +      isVisible: false, +      expanded: {}, +      activeLinkIndex: -1, +      moduleResults: [] +    }); +    loadJSON(this.props.baseUrl + "/doc-index.json", (data) => { +      this.setState({ +        fuse: new Fuse(data, { +          threshold: 0.4, +          caseSensitive: true, +          includeScore: true, +          tokenize: true, +          keys: ["name", "module"] +        }), +        moduleResults: [] +      }); +    }, (err) => { +      if (console) { +        console.error("could not load 'doc-index.json' for searching", err); +      } +      this.setState({ failedLoading: true }); +    }); + +    document.addEventListener('mousedown', this.hide.bind(this)); + +    document.addEventListener('keydown', (e) => { +      if (this.state.isVisible) { +        if (e.key === 'Escape') { +          this.hide(); +        } else if (e.key === 'ArrowUp' || (e.key === 'k' && e.ctrlKey)) { +          e.preventDefault(); +          this.navigateLinks(-1); +        } else if (e.key === 'ArrowDown' || (e.key === 'j' && e.ctrlKey)) { +          e.preventDefault(); +          this.navigateLinks(+1); +        } else if (e.key === 'Enter' && this.state.activeLinkIndex >= 0) { +          this.followActiveLink(); +        } +      } + +      if (e.key === 's' && (e.target as HTMLElement).tagName.toLowerCase() !== 'input') { +        e.preventDefault(); +        this.show(); +      } +    }) +  } + +  hide() { +    this.setState({ isVisible: false }); +  } + +  show() { +    if (!this.state.isVisible) { +      this.focusPlease = true; +      this.setState({ isVisible: true, activeLinkIndex: -1 }); +    } +  } + +  toggleVisibility() { +    if (this.state.isVisible) { +      this.hide(); +    } else { +      this.show(); +    } +  } + +  navigateLinks(change: number) { +    const newActiveLinkIndex = Math.max(-1, Math.min(this.linkIndex-1, this.state.activeLinkIndex + change)); +    this.navigatedByKeyboard = true; +    this.setState({ activeLinkIndex: newActiveLinkIndex }); +  } + +  followActiveLink() { +    if (!this.activeLinkAction) { return; } +    this.activeLinkAction(); +  } + +  updateResults() { +    const searchString = (this.input && this.input.value) || ''; +    const results: FuseResult<DocItem>[] = this.state.fuse.search(searchString); + +    const resultsByModule: { [name: string]: FuseResult<DocItem>[] } = {}; + +    results.forEach((result) => { +      const moduleName = result.item.module; +      const resultsInModule = resultsByModule[moduleName] || (resultsByModule[moduleName] = []); +      resultsInModule.push(result); +    }); + +    const moduleResults: ResultsInModule[] = []; +    for (const moduleName in resultsByModule) { +      const items = resultsByModule[moduleName]; +      let sumOfInverseScores = 0; +      items.forEach((item) => { sumOfInverseScores += 1/item.score; }); +      moduleResults.push({ module: moduleName, totalScore: 1/sumOfInverseScores, items: items }); +    } + +    moduleResults.sort((a, b) => a.totalScore - b.totalScore); + +    this.setState({ searchString: searchString, isVisible: true, moduleResults: moduleResults }); +  } + +  componentDidUpdate() { +    if (this.searchResults && this.activeLink && this.navigatedByKeyboard) { +      const rect = this.activeLink.getClientRects()[0]; +      const searchResultsTop = this.searchResults.getClientRects()[0].top; +      if (rect.bottom > window.innerHeight) { +        this.searchResults.scrollTop += rect.bottom - window.innerHeight + 80; +      } else if (rect.top < searchResultsTop) { +        this.searchResults.scrollTop -= searchResultsTop - rect.top + 80; +      } +    } +    if (this.focusPlease && this.input) { +      this.input.focus(); +    } +    this.navigatedByKeyboard = false; +    this.focusPlease = false; +  } + +  componentDidMount() { +    this.props.showHideTrigger(this.toggleVisibility.bind(this)); +  } + +  render(props: any, state: QuickJumpState) { +    if (state.failedLoading) { return null; } + +    this.linkIndex = 0; + +    const stopPropagation = (e: Event) => { e.stopPropagation(); }; + +    const onMouseOver = (e: MouseEvent) => { +      let target: null | Element = e.target as Element; +      while (target && typeof target.getAttribute === 'function') { +        const linkIndexString = target.getAttribute('data-link-index'); +        if (typeof linkIndexString == 'string') { +          const linkIndex = parseInt(linkIndexString, 10); +          this.setState({ activeLinkIndex: linkIndex }); +          break; +        } +        target = target.parentNode as null | Element; +      } +    }; + +    const items = take(10, state.moduleResults).map((r) => this.renderResultsInModule(r)); + +    return <div id="search" class={state.isVisible ? '' : 'hidden'}> +      <div id="search-form" onMouseDown={stopPropagation}> +        <input +          placeholder="Search in package by name" +          ref={(input) => { this.input = input as undefined | HTMLInputElement; }} +          onFocus={this.show.bind(this)} +          onClick={this.show.bind(this)} +          onInput={this.updateResults.bind(this)} +        /> +      </div> +      <div id="search-results" ref={(el) => { this.searchResults = el; }} +        onMouseDown={stopPropagation} onMouseOver={onMouseOver}> +        {state.searchString === '' +          ? [<IntroMsg />, <KeyboardShortcuts />] +          : items.length == 0 +            ? <NoResultsMsg searchString={state.searchString} /> +            : <ul>{items}</ul>} +      </div> +    </div>; +  } + +  renderResultsInModule(resultsInModule: ResultsInModule): JSX.Element { +    const items = resultsInModule.items; +    const moduleName = resultsInModule.module; +    const showAll = this.state.expanded[moduleName] || items.length <= 10; +    const visibleItems = showAll ? items : take(8, items); + +    const expand = () => { +      const newExpanded = Object.assign({}, this.state.expanded); +      newExpanded[moduleName] = true; +      this.setState({ expanded: newExpanded }); +    }; + +    const renderItem = (item: DocItem) => { +      return <li class="search-result"> +        {this.navigationLink(this.props.baseUrl + "/" + item.link, {}, +          <DocHtml html={item.display_html} /> +        )} +      </li>; +    }; + +    return <li class="search-module"> +      <h4>{moduleName}</h4> +      <ul> +        {visibleItems.map((item) => renderItem(item.item))} +        {showAll +          ? [] +          : <li class="more-results"> +              {this.actionLink(expand, {}, "show " + (items.length - visibleItems.length) + " more results from this module")} +            </li>} +      </ul> +    </li>; +  } + +  navigationLink(href: string, attrs: JSX.HTMLAttributes&JSX.SVGAttributes&{[propName: string]: any}, ...children: (JSX.Element|JSX.Element[]|string)[]) { +    const fullAttrs = Object.assign({ href: href, onClick: this.hide.bind(this) }, attrs); +    const action = () => { window.location.href = href; this.hide(); }; +    return this.menuLink(fullAttrs, action, ...children); +  } + +  actionLink(callback: () => void, attrs: JSX.HTMLAttributes&JSX.SVGAttributes&{[propName: string]: any}, ...children: (JSX.Element|JSX.Element[]|string)[]) { +    const onClick = (e: Event) => { e.preventDefault(); callback(); }; +    const fullAttrs = Object.assign({ href: '#', onClick: onClick }, attrs); +    return this.menuLink(fullAttrs, callback, ...children); +  } + +  menuLink(attrs: JSX.HTMLAttributes&JSX.SVGAttributes&{[propName: string]: any}, action: () => void, ...children: (JSX.Element|JSX.Element[]|string)[]) { +    const linkIndex = this.linkIndex; +    if (linkIndex === this.state.activeLinkIndex) { +      attrs['class'] = (attrs['class'] ? attrs['class'] + ' ' : '') + 'active-link'; +      attrs.ref = (link?: Element) => { if (link) this.activeLink = link as HTMLAnchorElement; }; +      this.activeLinkAction = action; +    } +    const newAttrs = Object.assign({ 'data-link-index': linkIndex }, attrs); +    this.linkIndex += 1; +    return h('a', newAttrs, ...children); +  } + +} + +class DocHtml extends Component<{ html: string }, {}> { + +  shouldComponentUpdate(newProps: { html: string }) { +    return this.props.html !== newProps.html; +  } + +  render(props: { html: string }) { +    return <div dangerouslySetInnerHTML={{__html: props.html}} />; +  } + +}; + +function KeyboardShortcuts() { +  return <table class="keyboard-shortcuts"> +    <tr> +      <th>Key</th> +      <th>Shortcut</th> +    </tr> +    <tr> +      <td><span class="key">s</span></td> +      <td>Open this search box</td> +    </tr> +    <tr> +      <td><span class="key">esc</span></td> +      <td>Close this search box</td> +    </tr> +    <tr> +      <td> +        <span class="key">↓</span>, +        <span class="key">ctrl</span> + <span class="key">j</span> +      </td> +      <td>Move down in search results</td> +    </tr> +    <tr> +      <td> +        <span class="key">↑</span>, +        <span class="key">ctrl</span> + <span class="key">k</span> +      </td> +      <td>Move up in search results</td> +    </tr> +    <tr> +      <td><span class="key">↵</span></td> +      <td>Go to active search result</td> +    </tr> +  </table>; +} + +function IntroMsg() { +  return <p>You can find any exported type, constructor, class, function or pattern defined in this package by (approximate) name.</p>; +} + +function NoResultsMsg(props: { searchString: string }) { +  const messages = [ +    <p> +      Your search for '{props.searchString}' produced the following list of results: <code>[]</code>. +    </p>, +    <p> +      <code>Nothing</code> matches your query for '{props.searchString}'. +    </p>, +    <p> +      <code> +        Left "no matches for '{props.searchString}'" :: Either String (NonEmpty SearchResult) +      </code> +    </p> +  ]; + +  return messages[(props.searchString || 'a').charCodeAt(0) % messages.length]; +} + +export function init(docBaseUrl?: string, showHide?: (action: () => void) => void) { +  preact.render( +    <QuickJump baseUrl={docBaseUrl || "."} showHideTrigger={showHide || addSearchPageMenuButton} />, +    document.body +  ); +} + +// export to global object +(window as any).quickNav = { init: init };
\ No newline at end of file diff --git a/haddock-api/resources/html/package-lock.json b/haddock-api/resources/html/package-lock.json new file mode 100644 index 00000000..60503389 --- /dev/null +++ b/haddock-api/resources/html/package-lock.json @@ -0,0 +1,3410 @@ +{ +  "name": "haddock-quick-jump", +  "version": "0.1.0", +  "lockfileVersion": 1, +  "requires": true, +  "dependencies": { +    "@gulp-sourcemaps/identity-map": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz", +      "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=", +      "dev": true, +      "requires": { +        "acorn": "5.1.2", +        "css": "2.2.1", +        "normalize-path": "2.1.1", +        "source-map": "0.5.7", +        "through2": "2.0.3" +      }, +      "dependencies": { +        "acorn": { +          "version": "5.1.2", +          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", +          "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", +          "dev": true +        } +      } +    }, +    "@gulp-sourcemaps/map-sources": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", +      "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", +      "dev": true, +      "requires": { +        "normalize-path": "2.1.1", +        "through2": "2.0.3" +      } +    }, +    "JSONStream": { +      "version": "1.3.1", +      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", +      "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", +      "dev": true, +      "requires": { +        "jsonparse": "1.3.1", +        "through": "2.3.8" +      } +    }, +    "acorn": { +      "version": "4.0.13", +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", +      "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", +      "dev": true +    }, +    "amdefine": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", +      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", +      "dev": true +    }, +    "ansi-regex": { +      "version": "2.1.1", +      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", +      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", +      "dev": true +    }, +    "ansi-styles": { +      "version": "2.2.1", +      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", +      "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", +      "dev": true +    }, +    "any-promise": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", +      "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", +      "dev": true +    }, +    "archy": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", +      "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", +      "dev": true +    }, +    "arr-diff": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", +      "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", +      "dev": true, +      "requires": { +        "arr-flatten": "1.1.0" +      } +    }, +    "arr-flatten": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", +      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", +      "dev": true +    }, +    "array-differ": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", +      "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", +      "dev": true +    }, +    "array-each": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", +      "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", +      "dev": true +    }, +    "array-filter": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", +      "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", +      "dev": true +    }, +    "array-map": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", +      "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", +      "dev": true +    }, +    "array-reduce": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", +      "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", +      "dev": true +    }, +    "array-slice": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", +      "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=", +      "dev": true +    }, +    "array-uniq": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", +      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", +      "dev": true +    }, +    "array-unique": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", +      "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", +      "dev": true +    }, +    "asn1.js": { +      "version": "4.9.1", +      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", +      "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0" +      } +    }, +    "assert": { +      "version": "1.4.1", +      "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", +      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", +      "dev": true, +      "requires": { +        "util": "0.10.3" +      } +    }, +    "astw": { +      "version": "2.2.0", +      "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", +      "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", +      "dev": true, +      "requires": { +        "acorn": "4.0.13" +      } +    }, +    "atob": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", +      "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", +      "dev": true +    }, +    "balanced-match": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", +      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", +      "dev": true +    }, +    "base64-js": { +      "version": "1.2.1", +      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", +      "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", +      "dev": true +    }, +    "beeper": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", +      "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", +      "dev": true +    }, +    "bl": { +      "version": "0.9.5", +      "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", +      "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", +      "dev": true, +      "requires": { +        "readable-stream": "1.0.34" +      }, +      "dependencies": { +        "readable-stream": { +          "version": "1.0.34", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", +          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "0.0.1", +            "string_decoder": "0.10.31" +          } +        } +      } +    }, +    "bn.js": { +      "version": "4.11.8", +      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", +      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", +      "dev": true +    }, +    "brace-expansion": { +      "version": "1.1.8", +      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", +      "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", +      "dev": true, +      "requires": { +        "balanced-match": "1.0.0", +        "concat-map": "0.0.1" +      } +    }, +    "braces": { +      "version": "1.8.5", +      "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", +      "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", +      "dev": true, +      "requires": { +        "expand-range": "1.8.2", +        "preserve": "0.2.0", +        "repeat-element": "1.1.2" +      } +    }, +    "brorand": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", +      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", +      "dev": true +    }, +    "browser-pack": { +      "version": "6.0.2", +      "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", +      "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.1", +        "combine-source-map": "0.7.2", +        "defined": "1.0.0", +        "through2": "2.0.3", +        "umd": "3.0.1" +      } +    }, +    "browser-resolve": { +      "version": "1.11.2", +      "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", +      "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", +      "dev": true, +      "requires": { +        "resolve": "1.1.7" +      }, +      "dependencies": { +        "resolve": { +          "version": "1.1.7", +          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", +          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", +          "dev": true +        } +      } +    }, +    "browserify": { +      "version": "14.4.0", +      "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.4.0.tgz", +      "integrity": "sha1-CJo0Y69Y0OSNjNQHCz90ZU1avKk=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.1", +        "assert": "1.4.1", +        "browser-pack": "6.0.2", +        "browser-resolve": "1.11.2", +        "browserify-zlib": "0.1.4", +        "buffer": "5.0.7", +        "cached-path-relative": "1.0.1", +        "concat-stream": "1.5.2", +        "console-browserify": "1.1.0", +        "constants-browserify": "1.0.0", +        "crypto-browserify": "3.11.1", +        "defined": "1.0.0", +        "deps-sort": "2.0.0", +        "domain-browser": "1.1.7", +        "duplexer2": "0.1.4", +        "events": "1.1.1", +        "glob": "7.1.2", +        "has": "1.0.1", +        "htmlescape": "1.1.1", +        "https-browserify": "1.0.0", +        "inherits": "2.0.3", +        "insert-module-globals": "7.0.1", +        "labeled-stream-splicer": "2.0.0", +        "module-deps": "4.1.1", +        "os-browserify": "0.1.2", +        "parents": "1.0.1", +        "path-browserify": "0.0.0", +        "process": "0.11.10", +        "punycode": "1.4.1", +        "querystring-es3": "0.2.1", +        "read-only-stream": "2.0.0", +        "readable-stream": "2.3.3", +        "resolve": "1.4.0", +        "shasum": "1.0.2", +        "shell-quote": "1.6.1", +        "stream-browserify": "2.0.1", +        "stream-http": "2.7.2", +        "string_decoder": "1.0.3", +        "subarg": "1.0.0", +        "syntax-error": "1.3.0", +        "through2": "2.0.3", +        "timers-browserify": "1.4.2", +        "tty-browserify": "0.0.0", +        "url": "0.11.0", +        "util": "0.10.3", +        "vm-browserify": "0.0.4", +        "xtend": "4.0.1" +      }, +      "dependencies": { +        "duplexer2": { +          "version": "0.1.4", +          "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", +          "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", +          "dev": true, +          "requires": { +            "readable-stream": "2.3.3" +          } +        }, +        "glob": { +          "version": "7.1.2", +          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", +          "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", +          "dev": true, +          "requires": { +            "fs.realpath": "1.0.0", +            "inflight": "1.0.6", +            "inherits": "2.0.3", +            "minimatch": "3.0.4", +            "once": "1.3.3", +            "path-is-absolute": "1.0.1" +          } +        }, +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "minimatch": { +          "version": "3.0.4", +          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", +          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", +          "dev": true, +          "requires": { +            "brace-expansion": "1.1.8" +          } +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "browserify-aes": { +      "version": "1.0.8", +      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.8.tgz", +      "integrity": "sha512-WYCMOT/PtGTlpOKFht0YJFYcPy6pLCR98CtWfzK13zoynLlBMvAdEMSRGmgnJCw2M2j/5qxBkinZQFobieM8dQ==", +      "dev": true, +      "requires": { +        "buffer-xor": "1.0.3", +        "cipher-base": "1.0.4", +        "create-hash": "1.1.3", +        "evp_bytestokey": "1.0.3", +        "inherits": "2.0.3", +        "safe-buffer": "5.1.1" +      } +    }, +    "browserify-cipher": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", +      "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", +      "dev": true, +      "requires": { +        "browserify-aes": "1.0.8", +        "browserify-des": "1.0.0", +        "evp_bytestokey": "1.0.3" +      } +    }, +    "browserify-des": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", +      "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", +      "dev": true, +      "requires": { +        "cipher-base": "1.0.4", +        "des.js": "1.0.0", +        "inherits": "2.0.3" +      } +    }, +    "browserify-rsa": { +      "version": "4.0.1", +      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", +      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "randombytes": "2.0.5" +      } +    }, +    "browserify-sign": { +      "version": "4.0.4", +      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", +      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "browserify-rsa": "4.0.1", +        "create-hash": "1.1.3", +        "create-hmac": "1.1.6", +        "elliptic": "6.4.0", +        "inherits": "2.0.3", +        "parse-asn1": "5.1.0" +      } +    }, +    "browserify-zlib": { +      "version": "0.1.4", +      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", +      "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", +      "dev": true, +      "requires": { +        "pako": "0.2.9" +      } +    }, +    "buffer": { +      "version": "5.0.7", +      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.7.tgz", +      "integrity": "sha512-NeeHXWh5pCbPQCt2/6rLvXqapZfVsqw/YgRgaHpT3H9Uzgs+S0lSg5SQzouIuDvcmlQRqBe8hOO2scKCu3cxrg==", +      "dev": true, +      "requires": { +        "base64-js": "1.2.1", +        "ieee754": "1.1.8" +      } +    }, +    "buffer-xor": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", +      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", +      "dev": true +    }, +    "builtin-status-codes": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", +      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", +      "dev": true +    }, +    "cached-path-relative": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", +      "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", +      "dev": true +    }, +    "chalk": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", +      "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", +      "dev": true, +      "requires": { +        "ansi-styles": "2.2.1", +        "escape-string-regexp": "1.0.5", +        "has-ansi": "2.0.0", +        "strip-ansi": "3.0.1", +        "supports-color": "2.0.0" +      } +    }, +    "cipher-base": { +      "version": "1.0.4", +      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", +      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "safe-buffer": "5.1.1" +      } +    }, +    "clone": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", +      "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", +      "dev": true +    }, +    "clone-stats": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", +      "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", +      "dev": true +    }, +    "combine-source-map": { +      "version": "0.7.2", +      "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", +      "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", +      "dev": true, +      "requires": { +        "convert-source-map": "1.1.3", +        "inline-source-map": "0.6.2", +        "lodash.memoize": "3.0.4", +        "source-map": "0.5.7" +      } +    }, +    "commander": { +      "version": "2.11.0", +      "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", +      "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", +      "dev": true +    }, +    "concat-map": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", +      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", +      "dev": true +    }, +    "concat-stream": { +      "version": "1.5.2", +      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", +      "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "readable-stream": "2.0.6", +        "typedarray": "0.0.6" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.0.6", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", +          "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "string_decoder": "0.10.31", +            "util-deprecate": "1.0.2" +          } +        } +      } +    }, +    "console-browserify": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", +      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", +      "dev": true, +      "requires": { +        "date-now": "0.1.4" +      } +    }, +    "constants-browserify": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", +      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", +      "dev": true +    }, +    "convert-source-map": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", +      "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", +      "dev": true +    }, +    "core-util-is": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", +      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", +      "dev": true +    }, +    "create-ecdh": { +      "version": "4.0.0", +      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", +      "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "elliptic": "6.4.0" +      } +    }, +    "create-hash": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", +      "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", +      "dev": true, +      "requires": { +        "cipher-base": "1.0.4", +        "inherits": "2.0.3", +        "ripemd160": "2.0.1", +        "sha.js": "2.4.8" +      } +    }, +    "create-hmac": { +      "version": "1.1.6", +      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", +      "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", +      "dev": true, +      "requires": { +        "cipher-base": "1.0.4", +        "create-hash": "1.1.3", +        "inherits": "2.0.3", +        "ripemd160": "2.0.1", +        "safe-buffer": "5.1.1", +        "sha.js": "2.4.8" +      } +    }, +    "crypto-browserify": { +      "version": "3.11.1", +      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", +      "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", +      "dev": true, +      "requires": { +        "browserify-cipher": "1.0.0", +        "browserify-sign": "4.0.4", +        "create-ecdh": "4.0.0", +        "create-hash": "1.1.3", +        "create-hmac": "1.1.6", +        "diffie-hellman": "5.0.2", +        "inherits": "2.0.3", +        "pbkdf2": "3.0.14", +        "public-encrypt": "4.0.0", +        "randombytes": "2.0.5" +      } +    }, +    "css": { +      "version": "2.2.1", +      "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", +      "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "source-map": "0.1.43", +        "source-map-resolve": "0.3.1", +        "urix": "0.1.0" +      }, +      "dependencies": { +        "source-map": { +          "version": "0.1.43", +          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", +          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", +          "dev": true, +          "requires": { +            "amdefine": "1.0.1" +          } +        } +      } +    }, +    "d": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", +      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", +      "dev": true, +      "requires": { +        "es5-ext": "0.10.30" +      } +    }, +    "date-now": { +      "version": "0.1.4", +      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", +      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", +      "dev": true +    }, +    "dateformat": { +      "version": "2.2.0", +      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", +      "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", +      "dev": true +    }, +    "debug": { +      "version": "2.3.0", +      "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.0.tgz", +      "integrity": "sha1-ORLcVdcWf8OvF9K4XBP5PertqkM=", +      "dev": true, +      "requires": { +        "ms": "0.7.2" +      } +    }, +    "debug-fabulous": { +      "version": "0.1.1", +      "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.1.1.tgz", +      "integrity": "sha512-UhD+fzBYnlHjOpUrSeKT+sbZAqxDsqoXAsESKQPAoBm2j/0F9l9IeOEYDST8Lkz1L2zA9KvIxp58h923wCWjDQ==", +      "dev": true, +      "requires": { +        "debug": "2.3.0", +        "memoizee": "0.4.11", +        "object-assign": "4.1.0" +      }, +      "dependencies": { +        "object-assign": { +          "version": "4.1.0", +          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", +          "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", +          "dev": true +        } +      } +    }, +    "defaults": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", +      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", +      "dev": true, +      "requires": { +        "clone": "1.0.2" +      } +    }, +    "defined": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", +      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", +      "dev": true +    }, +    "deprecated": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", +      "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", +      "dev": true +    }, +    "deps-sort": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", +      "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.1", +        "shasum": "1.0.2", +        "subarg": "1.0.0", +        "through2": "2.0.3" +      } +    }, +    "des.js": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", +      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0" +      } +    }, +    "detect-file": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", +      "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", +      "dev": true, +      "requires": { +        "fs-exists-sync": "0.1.0" +      } +    }, +    "detect-newline": { +      "version": "2.1.0", +      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", +      "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", +      "dev": true +    }, +    "detective": { +      "version": "4.5.0", +      "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", +      "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", +      "dev": true, +      "requires": { +        "acorn": "4.0.13", +        "defined": "1.0.0" +      } +    }, +    "diffie-hellman": { +      "version": "5.0.2", +      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", +      "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "miller-rabin": "4.0.0", +        "randombytes": "2.0.5" +      } +    }, +    "domain-browser": { +      "version": "1.1.7", +      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", +      "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", +      "dev": true +    }, +    "duplexer2": { +      "version": "0.0.2", +      "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", +      "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", +      "dev": true, +      "requires": { +        "readable-stream": "1.1.14" +      } +    }, +    "elliptic": { +      "version": "6.4.0", +      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", +      "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "brorand": "1.1.0", +        "hash.js": "1.1.3", +        "hmac-drbg": "1.0.1", +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0", +        "minimalistic-crypto-utils": "1.0.1" +      } +    }, +    "end-of-stream": { +      "version": "0.1.5", +      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", +      "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", +      "dev": true, +      "requires": { +        "once": "1.3.3" +      } +    }, +    "error-ex": { +      "version": "1.3.1", +      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", +      "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", +      "dev": true, +      "requires": { +        "is-arrayish": "0.2.1" +      } +    }, +    "es5-ext": { +      "version": "0.10.30", +      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz", +      "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=", +      "dev": true, +      "requires": { +        "es6-iterator": "2.0.1", +        "es6-symbol": "3.1.1" +      } +    }, +    "es6-iterator": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", +      "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", +      "dev": true, +      "requires": { +        "d": "1.0.0", +        "es5-ext": "0.10.30", +        "es6-symbol": "3.1.1" +      } +    }, +    "es6-symbol": { +      "version": "3.1.1", +      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", +      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", +      "dev": true, +      "requires": { +        "d": "1.0.0", +        "es5-ext": "0.10.30" +      } +    }, +    "es6-weak-map": { +      "version": "2.0.2", +      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", +      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", +      "dev": true, +      "requires": { +        "d": "1.0.0", +        "es5-ext": "0.10.30", +        "es6-iterator": "2.0.1", +        "es6-symbol": "3.1.1" +      } +    }, +    "escape-string-regexp": { +      "version": "1.0.5", +      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", +      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", +      "dev": true +    }, +    "event-emitter": { +      "version": "0.3.5", +      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", +      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", +      "dev": true, +      "requires": { +        "d": "1.0.0", +        "es5-ext": "0.10.30" +      } +    }, +    "events": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", +      "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", +      "dev": true +    }, +    "evp_bytestokey": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", +      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", +      "dev": true, +      "requires": { +        "md5.js": "1.3.4", +        "safe-buffer": "5.1.1" +      } +    }, +    "expand-brackets": { +      "version": "0.1.5", +      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", +      "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", +      "dev": true, +      "requires": { +        "is-posix-bracket": "0.1.1" +      } +    }, +    "expand-range": { +      "version": "1.8.2", +      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", +      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", +      "dev": true, +      "requires": { +        "fill-range": "2.2.3" +      } +    }, +    "expand-tilde": { +      "version": "1.2.2", +      "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", +      "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", +      "dev": true, +      "requires": { +        "os-homedir": "1.0.2" +      } +    }, +    "extend": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", +      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", +      "dev": true +    }, +    "extglob": { +      "version": "0.3.2", +      "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", +      "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", +      "dev": true, +      "requires": { +        "is-extglob": "1.0.0" +      } +    }, +    "fancy-log": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", +      "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", +      "dev": true, +      "requires": { +        "chalk": "1.1.3", +        "time-stamp": "1.1.0" +      } +    }, +    "filename-regex": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", +      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", +      "dev": true +    }, +    "fill-range": { +      "version": "2.2.3", +      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", +      "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", +      "dev": true, +      "requires": { +        "is-number": "2.1.0", +        "isobject": "2.1.0", +        "randomatic": "1.1.7", +        "repeat-element": "1.1.2", +        "repeat-string": "1.6.1" +      } +    }, +    "find-index": { +      "version": "0.1.1", +      "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", +      "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", +      "dev": true +    }, +    "findup-sync": { +      "version": "0.4.3", +      "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", +      "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", +      "dev": true, +      "requires": { +        "detect-file": "0.1.0", +        "is-glob": "2.0.1", +        "micromatch": "2.3.11", +        "resolve-dir": "0.1.1" +      } +    }, +    "fined": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", +      "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", +      "dev": true, +      "requires": { +        "expand-tilde": "2.0.2", +        "is-plain-object": "2.0.4", +        "object.defaults": "1.1.0", +        "object.pick": "1.3.0", +        "parse-filepath": "1.0.1" +      }, +      "dependencies": { +        "expand-tilde": { +          "version": "2.0.2", +          "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", +          "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", +          "dev": true, +          "requires": { +            "homedir-polyfill": "1.0.1" +          } +        } +      } +    }, +    "first-chunk-stream": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", +      "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", +      "dev": true +    }, +    "flagged-respawn": { +      "version": "0.3.2", +      "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", +      "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", +      "dev": true +    }, +    "for-in": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", +      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", +      "dev": true +    }, +    "for-own": { +      "version": "0.1.5", +      "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", +      "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", +      "dev": true, +      "requires": { +        "for-in": "1.0.2" +      } +    }, +    "fs-exists-sync": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", +      "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", +      "dev": true +    }, +    "fs.realpath": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", +      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", +      "dev": true +    }, +    "function-bind": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", +      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", +      "dev": true +    }, +    "fuse.js": { +      "version": "3.1.0", +      "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.1.0.tgz", +      "integrity": "sha1-kGIUbEcVUhibD2eLT1oVVzGuOzw=" +    }, +    "gaze": { +      "version": "0.5.2", +      "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", +      "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", +      "dev": true, +      "requires": { +        "globule": "0.1.0" +      } +    }, +    "glob": { +      "version": "4.5.3", +      "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", +      "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", +      "dev": true, +      "requires": { +        "inflight": "1.0.6", +        "inherits": "2.0.3", +        "minimatch": "2.0.10", +        "once": "1.3.3" +      } +    }, +    "glob-base": { +      "version": "0.3.0", +      "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", +      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", +      "dev": true, +      "requires": { +        "glob-parent": "2.0.0", +        "is-glob": "2.0.1" +      } +    }, +    "glob-parent": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", +      "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", +      "dev": true, +      "requires": { +        "is-glob": "2.0.1" +      } +    }, +    "glob-stream": { +      "version": "3.1.18", +      "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", +      "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", +      "dev": true, +      "requires": { +        "glob": "4.5.3", +        "glob2base": "0.0.12", +        "minimatch": "2.0.10", +        "ordered-read-streams": "0.1.0", +        "through2": "0.6.5", +        "unique-stream": "1.0.0" +      }, +      "dependencies": { +        "readable-stream": { +          "version": "1.0.34", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", +          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "0.0.1", +            "string_decoder": "0.10.31" +          } +        }, +        "through2": { +          "version": "0.6.5", +          "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", +          "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", +          "dev": true, +          "requires": { +            "readable-stream": "1.0.34", +            "xtend": "4.0.1" +          } +        } +      } +    }, +    "glob-watcher": { +      "version": "0.0.6", +      "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", +      "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", +      "dev": true, +      "requires": { +        "gaze": "0.5.2" +      } +    }, +    "glob2base": { +      "version": "0.0.12", +      "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", +      "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", +      "dev": true, +      "requires": { +        "find-index": "0.1.1" +      } +    }, +    "global-modules": { +      "version": "0.2.3", +      "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", +      "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", +      "dev": true, +      "requires": { +        "global-prefix": "0.1.5", +        "is-windows": "0.2.0" +      } +    }, +    "global-prefix": { +      "version": "0.1.5", +      "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", +      "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", +      "dev": true, +      "requires": { +        "homedir-polyfill": "1.0.1", +        "ini": "1.3.4", +        "is-windows": "0.2.0", +        "which": "1.3.0" +      } +    }, +    "globule": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", +      "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", +      "dev": true, +      "requires": { +        "glob": "3.1.21", +        "lodash": "1.0.2", +        "minimatch": "0.2.14" +      }, +      "dependencies": { +        "glob": { +          "version": "3.1.21", +          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", +          "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", +          "dev": true, +          "requires": { +            "graceful-fs": "1.2.3", +            "inherits": "1.0.2", +            "minimatch": "0.2.14" +          } +        }, +        "graceful-fs": { +          "version": "1.2.3", +          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", +          "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", +          "dev": true +        }, +        "inherits": { +          "version": "1.0.2", +          "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", +          "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", +          "dev": true +        }, +        "minimatch": { +          "version": "0.2.14", +          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", +          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", +          "dev": true, +          "requires": { +            "lru-cache": "2.7.3", +            "sigmund": "1.0.1" +          } +        } +      } +    }, +    "glogg": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", +      "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", +      "dev": true, +      "requires": { +        "sparkles": "1.0.0" +      } +    }, +    "graceful-fs": { +      "version": "3.0.11", +      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", +      "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", +      "dev": true, +      "requires": { +        "natives": "1.1.0" +      } +    }, +    "gulp": { +      "version": "3.9.1", +      "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", +      "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", +      "dev": true, +      "requires": { +        "archy": "1.0.0", +        "chalk": "1.1.3", +        "deprecated": "0.0.1", +        "gulp-util": "3.0.8", +        "interpret": "1.0.4", +        "liftoff": "2.3.0", +        "minimist": "1.2.0", +        "orchestrator": "0.3.8", +        "pretty-hrtime": "1.0.3", +        "semver": "4.3.6", +        "tildify": "1.2.0", +        "v8flags": "2.1.1", +        "vinyl-fs": "0.3.14" +      } +    }, +    "gulp-sourcemaps": { +      "version": "2.6.1", +      "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.1.tgz", +      "integrity": "sha512-1qHCI3hdmsMdq/SUotxwUh/L8YzlI6J9zQ5ifNOtx4Y6KV5y5sGuORv1KZzWhuKtz/mXNh5xLESUtwC4EndCjA==", +      "dev": true, +      "requires": { +        "@gulp-sourcemaps/identity-map": "1.0.1", +        "@gulp-sourcemaps/map-sources": "1.0.0", +        "acorn": "4.0.13", +        "convert-source-map": "1.1.3", +        "css": "2.2.1", +        "debug-fabulous": "0.1.1", +        "detect-newline": "2.1.0", +        "graceful-fs": "4.1.11", +        "source-map": "0.5.7", +        "strip-bom-string": "1.0.0", +        "through2": "2.0.3", +        "vinyl": "1.2.0" +      }, +      "dependencies": { +        "graceful-fs": { +          "version": "4.1.11", +          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", +          "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", +          "dev": true +        }, +        "vinyl": { +          "version": "1.2.0", +          "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", +          "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", +          "dev": true, +          "requires": { +            "clone": "1.0.2", +            "clone-stats": "0.0.1", +            "replace-ext": "0.0.1" +          } +        } +      } +    }, +    "gulp-uglify": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", +      "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", +      "dev": true, +      "requires": { +        "gulplog": "1.0.0", +        "has-gulplog": "0.1.0", +        "lodash": "4.17.4", +        "make-error-cause": "1.2.2", +        "through2": "2.0.3", +        "uglify-js": "3.1.1", +        "vinyl-sourcemaps-apply": "0.2.1" +      }, +      "dependencies": { +        "lodash": { +          "version": "4.17.4", +          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", +          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", +          "dev": true +        } +      } +    }, +    "gulp-util": { +      "version": "3.0.8", +      "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", +      "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", +      "dev": true, +      "requires": { +        "array-differ": "1.0.0", +        "array-uniq": "1.0.3", +        "beeper": "1.1.1", +        "chalk": "1.1.3", +        "dateformat": "2.2.0", +        "fancy-log": "1.3.0", +        "gulplog": "1.0.0", +        "has-gulplog": "0.1.0", +        "lodash._reescape": "3.0.0", +        "lodash._reevaluate": "3.0.0", +        "lodash._reinterpolate": "3.0.0", +        "lodash.template": "3.6.2", +        "minimist": "1.2.0", +        "multipipe": "0.1.2", +        "object-assign": "3.0.0", +        "replace-ext": "0.0.1", +        "through2": "2.0.3", +        "vinyl": "0.5.3" +      } +    }, +    "gulplog": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", +      "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", +      "dev": true, +      "requires": { +        "glogg": "1.0.0" +      } +    }, +    "has": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", +      "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", +      "dev": true, +      "requires": { +        "function-bind": "1.1.1" +      } +    }, +    "has-ansi": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", +      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", +      "dev": true, +      "requires": { +        "ansi-regex": "2.1.1" +      } +    }, +    "has-gulplog": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", +      "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", +      "dev": true, +      "requires": { +        "sparkles": "1.0.0" +      } +    }, +    "hash-base": { +      "version": "2.0.2", +      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", +      "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3" +      } +    }, +    "hash.js": { +      "version": "1.1.3", +      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", +      "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "minimalistic-assert": "1.0.0" +      } +    }, +    "hmac-drbg": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", +      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", +      "dev": true, +      "requires": { +        "hash.js": "1.1.3", +        "minimalistic-assert": "1.0.0", +        "minimalistic-crypto-utils": "1.0.1" +      } +    }, +    "homedir-polyfill": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", +      "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", +      "dev": true, +      "requires": { +        "parse-passwd": "1.0.0" +      } +    }, +    "htmlescape": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", +      "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", +      "dev": true +    }, +    "https-browserify": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", +      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", +      "dev": true +    }, +    "ieee754": { +      "version": "1.1.8", +      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", +      "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", +      "dev": true +    }, +    "indexof": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", +      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", +      "dev": true +    }, +    "inflight": { +      "version": "1.0.6", +      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", +      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", +      "dev": true, +      "requires": { +        "once": "1.3.3", +        "wrappy": "1.0.2" +      } +    }, +    "inherits": { +      "version": "2.0.3", +      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", +      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", +      "dev": true +    }, +    "ini": { +      "version": "1.3.4", +      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", +      "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", +      "dev": true +    }, +    "inline-source-map": { +      "version": "0.6.2", +      "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", +      "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", +      "dev": true, +      "requires": { +        "source-map": "0.5.7" +      } +    }, +    "insert-module-globals": { +      "version": "7.0.1", +      "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", +      "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.1", +        "combine-source-map": "0.7.2", +        "concat-stream": "1.5.2", +        "is-buffer": "1.1.5", +        "lexical-scope": "1.2.0", +        "process": "0.11.10", +        "through2": "2.0.3", +        "xtend": "4.0.1" +      } +    }, +    "interpret": { +      "version": "1.0.4", +      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", +      "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", +      "dev": true +    }, +    "is-absolute": { +      "version": "0.2.6", +      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", +      "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", +      "dev": true, +      "requires": { +        "is-relative": "0.2.1", +        "is-windows": "0.2.0" +      } +    }, +    "is-arrayish": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", +      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", +      "dev": true +    }, +    "is-buffer": { +      "version": "1.1.5", +      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", +      "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", +      "dev": true +    }, +    "is-dotfile": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", +      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", +      "dev": true +    }, +    "is-equal-shallow": { +      "version": "0.1.3", +      "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", +      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", +      "dev": true, +      "requires": { +        "is-primitive": "2.0.0" +      } +    }, +    "is-extendable": { +      "version": "0.1.1", +      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", +      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", +      "dev": true +    }, +    "is-extglob": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", +      "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", +      "dev": true +    }, +    "is-glob": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", +      "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", +      "dev": true, +      "requires": { +        "is-extglob": "1.0.0" +      } +    }, +    "is-number": { +      "version": "2.1.0", +      "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", +      "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", +      "dev": true, +      "requires": { +        "kind-of": "3.2.2" +      } +    }, +    "is-plain-object": { +      "version": "2.0.4", +      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", +      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", +      "dev": true, +      "requires": { +        "isobject": "3.0.1" +      }, +      "dependencies": { +        "isobject": { +          "version": "3.0.1", +          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", +          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", +          "dev": true +        } +      } +    }, +    "is-posix-bracket": { +      "version": "0.1.1", +      "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", +      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", +      "dev": true +    }, +    "is-primitive": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", +      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", +      "dev": true +    }, +    "is-promise": { +      "version": "2.1.0", +      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", +      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", +      "dev": true +    }, +    "is-relative": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", +      "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", +      "dev": true, +      "requires": { +        "is-unc-path": "0.1.2" +      } +    }, +    "is-unc-path": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", +      "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", +      "dev": true, +      "requires": { +        "unc-path-regex": "0.1.2" +      } +    }, +    "is-utf8": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", +      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", +      "dev": true +    }, +    "is-windows": { +      "version": "0.2.0", +      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", +      "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", +      "dev": true +    }, +    "isarray": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", +      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", +      "dev": true +    }, +    "isexe": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", +      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", +      "dev": true +    }, +    "isobject": { +      "version": "2.1.0", +      "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", +      "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", +      "dev": true, +      "requires": { +        "isarray": "1.0.0" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        } +      } +    }, +    "json-stable-stringify": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", +      "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", +      "dev": true, +      "requires": { +        "jsonify": "0.0.0" +      } +    }, +    "jsonify": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", +      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", +      "dev": true +    }, +    "jsonparse": { +      "version": "1.3.1", +      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", +      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", +      "dev": true +    }, +    "kind-of": { +      "version": "3.2.2", +      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", +      "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", +      "dev": true, +      "requires": { +        "is-buffer": "1.1.5" +      } +    }, +    "labeled-stream-splicer": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", +      "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "isarray": "0.0.1", +        "stream-splicer": "2.0.0" +      } +    }, +    "lexical-scope": { +      "version": "1.2.0", +      "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", +      "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", +      "dev": true, +      "requires": { +        "astw": "2.2.0" +      } +    }, +    "liftoff": { +      "version": "2.3.0", +      "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", +      "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", +      "dev": true, +      "requires": { +        "extend": "3.0.1", +        "findup-sync": "0.4.3", +        "fined": "1.1.0", +        "flagged-respawn": "0.3.2", +        "lodash.isplainobject": "4.0.6", +        "lodash.isstring": "4.0.1", +        "lodash.mapvalues": "4.6.0", +        "rechoir": "0.6.2", +        "resolve": "1.4.0" +      } +    }, +    "lodash": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", +      "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", +      "dev": true +    }, +    "lodash._basecopy": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", +      "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", +      "dev": true +    }, +    "lodash._basetostring": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", +      "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", +      "dev": true +    }, +    "lodash._basevalues": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", +      "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", +      "dev": true +    }, +    "lodash._getnative": { +      "version": "3.9.1", +      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", +      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", +      "dev": true +    }, +    "lodash._isiterateecall": { +      "version": "3.0.9", +      "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", +      "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", +      "dev": true +    }, +    "lodash._reescape": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", +      "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", +      "dev": true +    }, +    "lodash._reevaluate": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", +      "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", +      "dev": true +    }, +    "lodash._reinterpolate": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", +      "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", +      "dev": true +    }, +    "lodash._root": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", +      "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", +      "dev": true +    }, +    "lodash.escape": { +      "version": "3.2.0", +      "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", +      "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", +      "dev": true, +      "requires": { +        "lodash._root": "3.0.1" +      } +    }, +    "lodash.isarguments": { +      "version": "3.1.0", +      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", +      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", +      "dev": true +    }, +    "lodash.isarray": { +      "version": "3.0.4", +      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", +      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", +      "dev": true +    }, +    "lodash.isplainobject": { +      "version": "4.0.6", +      "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", +      "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", +      "dev": true +    }, +    "lodash.isstring": { +      "version": "4.0.1", +      "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", +      "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", +      "dev": true +    }, +    "lodash.keys": { +      "version": "3.1.2", +      "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", +      "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", +      "dev": true, +      "requires": { +        "lodash._getnative": "3.9.1", +        "lodash.isarguments": "3.1.0", +        "lodash.isarray": "3.0.4" +      } +    }, +    "lodash.mapvalues": { +      "version": "4.6.0", +      "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", +      "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", +      "dev": true +    }, +    "lodash.memoize": { +      "version": "3.0.4", +      "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", +      "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", +      "dev": true +    }, +    "lodash.restparam": { +      "version": "3.6.1", +      "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", +      "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", +      "dev": true +    }, +    "lodash.template": { +      "version": "3.6.2", +      "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", +      "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", +      "dev": true, +      "requires": { +        "lodash._basecopy": "3.0.1", +        "lodash._basetostring": "3.0.1", +        "lodash._basevalues": "3.0.0", +        "lodash._isiterateecall": "3.0.9", +        "lodash._reinterpolate": "3.0.0", +        "lodash.escape": "3.2.0", +        "lodash.keys": "3.1.2", +        "lodash.restparam": "3.6.1", +        "lodash.templatesettings": "3.1.1" +      } +    }, +    "lodash.templatesettings": { +      "version": "3.1.1", +      "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", +      "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", +      "dev": true, +      "requires": { +        "lodash._reinterpolate": "3.0.0", +        "lodash.escape": "3.2.0" +      } +    }, +    "lru-cache": { +      "version": "2.7.3", +      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", +      "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", +      "dev": true +    }, +    "lru-queue": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", +      "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", +      "dev": true, +      "requires": { +        "es5-ext": "0.10.30" +      } +    }, +    "make-error": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", +      "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", +      "dev": true +    }, +    "make-error-cause": { +      "version": "1.2.2", +      "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", +      "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", +      "dev": true, +      "requires": { +        "make-error": "1.3.0" +      } +    }, +    "map-cache": { +      "version": "0.2.2", +      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", +      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", +      "dev": true +    }, +    "md5.js": { +      "version": "1.3.4", +      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", +      "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", +      "dev": true, +      "requires": { +        "hash-base": "3.0.4", +        "inherits": "2.0.3" +      }, +      "dependencies": { +        "hash-base": { +          "version": "3.0.4", +          "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", +          "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", +          "dev": true, +          "requires": { +            "inherits": "2.0.3", +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "memoizee": { +      "version": "0.4.11", +      "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.11.tgz", +      "integrity": "sha1-vemBdmPJ5A/bKk6hw2cpYIeujI8=", +      "dev": true, +      "requires": { +        "d": "1.0.0", +        "es5-ext": "0.10.30", +        "es6-weak-map": "2.0.2", +        "event-emitter": "0.3.5", +        "is-promise": "2.1.0", +        "lru-queue": "0.1.0", +        "next-tick": "1.0.0", +        "timers-ext": "0.1.2" +      } +    }, +    "micromatch": { +      "version": "2.3.11", +      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", +      "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", +      "dev": true, +      "requires": { +        "arr-diff": "2.0.0", +        "array-unique": "0.2.1", +        "braces": "1.8.5", +        "expand-brackets": "0.1.5", +        "extglob": "0.3.2", +        "filename-regex": "2.0.1", +        "is-extglob": "1.0.0", +        "is-glob": "2.0.1", +        "kind-of": "3.2.2", +        "normalize-path": "2.1.1", +        "object.omit": "2.0.1", +        "parse-glob": "3.0.4", +        "regex-cache": "0.4.4" +      } +    }, +    "miller-rabin": { +      "version": "4.0.0", +      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", +      "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "brorand": "1.1.0" +      } +    }, +    "minimalistic-assert": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", +      "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", +      "dev": true +    }, +    "minimalistic-crypto-utils": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", +      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", +      "dev": true +    }, +    "minimatch": { +      "version": "2.0.10", +      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", +      "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", +      "dev": true, +      "requires": { +        "brace-expansion": "1.1.8" +      } +    }, +    "minimist": { +      "version": "1.2.0", +      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", +      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", +      "dev": true +    }, +    "mkdirp": { +      "version": "0.5.1", +      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", +      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", +      "dev": true, +      "requires": { +        "minimist": "0.0.8" +      }, +      "dependencies": { +        "minimist": { +          "version": "0.0.8", +          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", +          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", +          "dev": true +        } +      } +    }, +    "module-deps": { +      "version": "4.1.1", +      "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", +      "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", +      "dev": true, +      "requires": { +        "JSONStream": "1.3.1", +        "browser-resolve": "1.11.2", +        "cached-path-relative": "1.0.1", +        "concat-stream": "1.5.2", +        "defined": "1.0.0", +        "detective": "4.5.0", +        "duplexer2": "0.1.4", +        "inherits": "2.0.3", +        "parents": "1.0.1", +        "readable-stream": "2.3.3", +        "resolve": "1.4.0", +        "stream-combiner2": "1.1.1", +        "subarg": "1.0.0", +        "through2": "2.0.3", +        "xtend": "4.0.1" +      }, +      "dependencies": { +        "duplexer2": { +          "version": "0.1.4", +          "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", +          "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", +          "dev": true, +          "requires": { +            "readable-stream": "2.3.3" +          } +        }, +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "ms": { +      "version": "0.7.2", +      "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", +      "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", +      "dev": true +    }, +    "multipipe": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", +      "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", +      "dev": true, +      "requires": { +        "duplexer2": "0.0.2" +      } +    }, +    "natives": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", +      "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", +      "dev": true +    }, +    "next-tick": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", +      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", +      "dev": true +    }, +    "normalize-path": { +      "version": "2.1.1", +      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", +      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", +      "dev": true, +      "requires": { +        "remove-trailing-separator": "1.1.0" +      } +    }, +    "object-assign": { +      "version": "3.0.0", +      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", +      "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", +      "dev": true +    }, +    "object.defaults": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", +      "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", +      "dev": true, +      "requires": { +        "array-each": "1.0.1", +        "array-slice": "1.0.0", +        "for-own": "1.0.0", +        "isobject": "3.0.1" +      }, +      "dependencies": { +        "for-own": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", +          "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", +          "dev": true, +          "requires": { +            "for-in": "1.0.2" +          } +        }, +        "isobject": { +          "version": "3.0.1", +          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", +          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", +          "dev": true +        } +      } +    }, +    "object.omit": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", +      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", +      "dev": true, +      "requires": { +        "for-own": "0.1.5", +        "is-extendable": "0.1.1" +      } +    }, +    "object.pick": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", +      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", +      "dev": true, +      "requires": { +        "isobject": "3.0.1" +      }, +      "dependencies": { +        "isobject": { +          "version": "3.0.1", +          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", +          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", +          "dev": true +        } +      } +    }, +    "once": { +      "version": "1.3.3", +      "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", +      "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", +      "dev": true, +      "requires": { +        "wrappy": "1.0.2" +      } +    }, +    "orchestrator": { +      "version": "0.3.8", +      "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", +      "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", +      "dev": true, +      "requires": { +        "end-of-stream": "0.1.5", +        "sequencify": "0.0.7", +        "stream-consume": "0.1.0" +      } +    }, +    "ordered-read-streams": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", +      "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", +      "dev": true +    }, +    "os-browserify": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", +      "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", +      "dev": true +    }, +    "os-homedir": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", +      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", +      "dev": true +    }, +    "pako": { +      "version": "0.2.9", +      "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", +      "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", +      "dev": true +    }, +    "parents": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", +      "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", +      "dev": true, +      "requires": { +        "path-platform": "0.11.15" +      } +    }, +    "parse-asn1": { +      "version": "5.1.0", +      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", +      "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", +      "dev": true, +      "requires": { +        "asn1.js": "4.9.1", +        "browserify-aes": "1.0.8", +        "create-hash": "1.1.3", +        "evp_bytestokey": "1.0.3", +        "pbkdf2": "3.0.14" +      } +    }, +    "parse-filepath": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", +      "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", +      "dev": true, +      "requires": { +        "is-absolute": "0.2.6", +        "map-cache": "0.2.2", +        "path-root": "0.1.1" +      } +    }, +    "parse-glob": { +      "version": "3.0.4", +      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", +      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", +      "dev": true, +      "requires": { +        "glob-base": "0.3.0", +        "is-dotfile": "1.0.3", +        "is-extglob": "1.0.0", +        "is-glob": "2.0.1" +      } +    }, +    "parse-json": { +      "version": "2.2.0", +      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", +      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", +      "dev": true, +      "requires": { +        "error-ex": "1.3.1" +      } +    }, +    "parse-passwd": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", +      "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", +      "dev": true +    }, +    "path-browserify": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", +      "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", +      "dev": true +    }, +    "path-is-absolute": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", +      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", +      "dev": true +    }, +    "path-parse": { +      "version": "1.0.5", +      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", +      "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", +      "dev": true +    }, +    "path-platform": { +      "version": "0.11.15", +      "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", +      "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", +      "dev": true +    }, +    "path-root": { +      "version": "0.1.1", +      "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", +      "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", +      "dev": true, +      "requires": { +        "path-root-regex": "0.1.2" +      } +    }, +    "path-root-regex": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", +      "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", +      "dev": true +    }, +    "pbkdf2": { +      "version": "3.0.14", +      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", +      "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", +      "dev": true, +      "requires": { +        "create-hash": "1.1.3", +        "create-hmac": "1.1.6", +        "ripemd160": "2.0.1", +        "safe-buffer": "5.1.1", +        "sha.js": "2.4.8" +      } +    }, +    "preact": { +      "version": "8.2.5", +      "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.5.tgz", +      "integrity": "sha1-y/o5YqgBJ2gVn20B1G+cHrMhPAo=" +    }, +    "preserve": { +      "version": "0.2.0", +      "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", +      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", +      "dev": true +    }, +    "pretty-hrtime": { +      "version": "1.0.3", +      "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", +      "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", +      "dev": true +    }, +    "process": { +      "version": "0.11.10", +      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", +      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", +      "dev": true +    }, +    "process-nextick-args": { +      "version": "1.0.7", +      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", +      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", +      "dev": true +    }, +    "public-encrypt": { +      "version": "4.0.0", +      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", +      "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", +      "dev": true, +      "requires": { +        "bn.js": "4.11.8", +        "browserify-rsa": "4.0.1", +        "create-hash": "1.1.3", +        "parse-asn1": "5.1.0", +        "randombytes": "2.0.5" +      } +    }, +    "punycode": { +      "version": "1.4.1", +      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", +      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", +      "dev": true +    }, +    "querystring": { +      "version": "0.2.0", +      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", +      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", +      "dev": true +    }, +    "querystring-es3": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", +      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", +      "dev": true +    }, +    "randomatic": { +      "version": "1.1.7", +      "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", +      "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", +      "dev": true, +      "requires": { +        "is-number": "3.0.0", +        "kind-of": "4.0.0" +      }, +      "dependencies": { +        "is-number": { +          "version": "3.0.0", +          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", +          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", +          "dev": true, +          "requires": { +            "kind-of": "3.2.2" +          }, +          "dependencies": { +            "kind-of": { +              "version": "3.2.2", +              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", +              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", +              "dev": true, +              "requires": { +                "is-buffer": "1.1.5" +              } +            } +          } +        }, +        "kind-of": { +          "version": "4.0.0", +          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", +          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", +          "dev": true, +          "requires": { +            "is-buffer": "1.1.5" +          } +        } +      } +    }, +    "randombytes": { +      "version": "2.0.5", +      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", +      "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", +      "dev": true, +      "requires": { +        "safe-buffer": "5.1.1" +      } +    }, +    "read-only-stream": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", +      "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", +      "dev": true, +      "requires": { +        "readable-stream": "2.3.3" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "readable-stream": { +      "version": "1.1.14", +      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", +      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", +      "dev": true, +      "requires": { +        "core-util-is": "1.0.2", +        "inherits": "2.0.3", +        "isarray": "0.0.1", +        "string_decoder": "0.10.31" +      } +    }, +    "rechoir": { +      "version": "0.6.2", +      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", +      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", +      "dev": true, +      "requires": { +        "resolve": "1.4.0" +      } +    }, +    "regex-cache": { +      "version": "0.4.4", +      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", +      "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", +      "dev": true, +      "requires": { +        "is-equal-shallow": "0.1.3" +      } +    }, +    "remove-trailing-separator": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", +      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", +      "dev": true +    }, +    "repeat-element": { +      "version": "1.1.2", +      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", +      "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", +      "dev": true +    }, +    "repeat-string": { +      "version": "1.6.1", +      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", +      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", +      "dev": true +    }, +    "replace-ext": { +      "version": "0.0.1", +      "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", +      "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", +      "dev": true +    }, +    "resolve": { +      "version": "1.4.0", +      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", +      "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", +      "dev": true, +      "requires": { +        "path-parse": "1.0.5" +      } +    }, +    "resolve-dir": { +      "version": "0.1.1", +      "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", +      "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", +      "dev": true, +      "requires": { +        "expand-tilde": "1.2.2", +        "global-modules": "0.2.3" +      } +    }, +    "resolve-url": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", +      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", +      "dev": true +    }, +    "ripemd160": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", +      "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", +      "dev": true, +      "requires": { +        "hash-base": "2.0.2", +        "inherits": "2.0.3" +      } +    }, +    "safe-buffer": { +      "version": "5.1.1", +      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", +      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", +      "dev": true +    }, +    "semver": { +      "version": "4.3.6", +      "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", +      "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", +      "dev": true +    }, +    "sequencify": { +      "version": "0.0.7", +      "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", +      "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", +      "dev": true +    }, +    "sha.js": { +      "version": "2.4.8", +      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", +      "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3" +      } +    }, +    "shasum": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", +      "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", +      "dev": true, +      "requires": { +        "json-stable-stringify": "0.0.1", +        "sha.js": "2.4.8" +      } +    }, +    "shell-quote": { +      "version": "1.6.1", +      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", +      "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", +      "dev": true, +      "requires": { +        "array-filter": "0.0.1", +        "array-map": "0.0.0", +        "array-reduce": "0.0.0", +        "jsonify": "0.0.0" +      } +    }, +    "sigmund": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", +      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", +      "dev": true +    }, +    "source-map": { +      "version": "0.5.7", +      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", +      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", +      "dev": true +    }, +    "source-map-resolve": { +      "version": "0.3.1", +      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", +      "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", +      "dev": true, +      "requires": { +        "atob": "1.1.3", +        "resolve-url": "0.2.1", +        "source-map-url": "0.3.0", +        "urix": "0.1.0" +      } +    }, +    "source-map-url": { +      "version": "0.3.0", +      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", +      "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", +      "dev": true +    }, +    "sparkles": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", +      "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", +      "dev": true +    }, +    "stream-browserify": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", +      "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "readable-stream": "2.3.3" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "stream-combiner2": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", +      "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", +      "dev": true, +      "requires": { +        "duplexer2": "0.1.4", +        "readable-stream": "2.3.3" +      }, +      "dependencies": { +        "duplexer2": { +          "version": "0.1.4", +          "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", +          "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", +          "dev": true, +          "requires": { +            "readable-stream": "2.3.3" +          } +        }, +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "stream-consume": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", +      "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", +      "dev": true +    }, +    "stream-http": { +      "version": "2.7.2", +      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", +      "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", +      "dev": true, +      "requires": { +        "builtin-status-codes": "3.0.0", +        "inherits": "2.0.3", +        "readable-stream": "2.3.3", +        "to-arraybuffer": "1.0.1", +        "xtend": "4.0.1" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "stream-splicer": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", +      "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", +      "dev": true, +      "requires": { +        "inherits": "2.0.3", +        "readable-stream": "2.3.3" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "string_decoder": { +      "version": "0.10.31", +      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", +      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", +      "dev": true +    }, +    "strip-ansi": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", +      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", +      "dev": true, +      "requires": { +        "ansi-regex": "2.1.1" +      } +    }, +    "strip-bom": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", +      "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", +      "dev": true, +      "requires": { +        "first-chunk-stream": "1.0.0", +        "is-utf8": "0.2.1" +      } +    }, +    "strip-bom-string": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", +      "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", +      "dev": true +    }, +    "strip-json-comments": { +      "version": "2.0.1", +      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", +      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", +      "dev": true +    }, +    "subarg": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", +      "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", +      "dev": true, +      "requires": { +        "minimist": "1.2.0" +      } +    }, +    "supports-color": { +      "version": "2.0.0", +      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", +      "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", +      "dev": true +    }, +    "syntax-error": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", +      "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", +      "dev": true, +      "requires": { +        "acorn": "4.0.13" +      } +    }, +    "through": { +      "version": "2.3.8", +      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", +      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", +      "dev": true +    }, +    "through2": { +      "version": "2.0.3", +      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", +      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", +      "dev": true, +      "requires": { +        "readable-stream": "2.3.3", +        "xtend": "4.0.1" +      }, +      "dependencies": { +        "isarray": { +          "version": "1.0.0", +          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", +          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", +          "dev": true +        }, +        "readable-stream": { +          "version": "2.3.3", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", +          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "1.0.0", +            "process-nextick-args": "1.0.7", +            "safe-buffer": "5.1.1", +            "string_decoder": "1.0.3", +            "util-deprecate": "1.0.2" +          } +        }, +        "string_decoder": { +          "version": "1.0.3", +          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", +          "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", +          "dev": true, +          "requires": { +            "safe-buffer": "5.1.1" +          } +        } +      } +    }, +    "tildify": { +      "version": "1.2.0", +      "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", +      "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", +      "dev": true, +      "requires": { +        "os-homedir": "1.0.2" +      } +    }, +    "time-stamp": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", +      "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", +      "dev": true +    }, +    "timers-browserify": { +      "version": "1.4.2", +      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", +      "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", +      "dev": true, +      "requires": { +        "process": "0.11.10" +      } +    }, +    "timers-ext": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz", +      "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=", +      "dev": true, +      "requires": { +        "es5-ext": "0.10.30", +        "next-tick": "1.0.0" +      } +    }, +    "to-arraybuffer": { +      "version": "1.0.1", +      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", +      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", +      "dev": true +    }, +    "tsconfig": { +      "version": "5.0.3", +      "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", +      "integrity": "sha1-X0J45wGACWeo/Dg/0ZZIh48qbjo=", +      "dev": true, +      "requires": { +        "any-promise": "1.3.0", +        "parse-json": "2.2.0", +        "strip-bom": "2.0.0", +        "strip-json-comments": "2.0.1" +      }, +      "dependencies": { +        "strip-bom": { +          "version": "2.0.0", +          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", +          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", +          "dev": true, +          "requires": { +            "is-utf8": "0.2.1" +          } +        } +      } +    }, +    "tsify": { +      "version": "3.0.3", +      "resolved": "https://registry.npmjs.org/tsify/-/tsify-3.0.3.tgz", +      "integrity": "sha1-oDLhpqccJiHD8lwEFUWdU7cLnsA=", +      "dev": true, +      "requires": { +        "convert-source-map": "1.1.3", +        "fs.realpath": "1.0.0", +        "object-assign": "4.1.1", +        "semver": "5.4.1", +        "through2": "2.0.3", +        "tsconfig": "5.0.3" +      }, +      "dependencies": { +        "object-assign": { +          "version": "4.1.1", +          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", +          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", +          "dev": true +        }, +        "semver": { +          "version": "5.4.1", +          "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", +          "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", +          "dev": true +        } +      } +    }, +    "tty-browserify": { +      "version": "0.0.0", +      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", +      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", +      "dev": true +    }, +    "typedarray": { +      "version": "0.0.6", +      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", +      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", +      "dev": true +    }, +    "typescript": { +      "version": "2.5.2", +      "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.2.tgz", +      "integrity": "sha1-A4qV99m7tCCxvzW6MdTFwd0//jQ=", +      "dev": true +    }, +    "uglify-js": { +      "version": "3.1.1", +      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.1.tgz", +      "integrity": "sha512-f7DpmEgt/RYAKzQzcfahn3JYZHobDwTZCa8oixC7pweVGEIizTX2kTYdNWcdk00xsMJqUhI8RDAa9HXHXGhNxA==", +      "dev": true, +      "requires": { +        "commander": "2.11.0", +        "source-map": "0.5.7" +      } +    }, +    "umd": { +      "version": "3.0.1", +      "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", +      "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", +      "dev": true +    }, +    "unc-path-regex": { +      "version": "0.1.2", +      "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", +      "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", +      "dev": true +    }, +    "unique-stream": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", +      "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", +      "dev": true +    }, +    "urix": { +      "version": "0.1.0", +      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", +      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", +      "dev": true +    }, +    "url": { +      "version": "0.11.0", +      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", +      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", +      "dev": true, +      "requires": { +        "punycode": "1.3.2", +        "querystring": "0.2.0" +      }, +      "dependencies": { +        "punycode": { +          "version": "1.3.2", +          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", +          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", +          "dev": true +        } +      } +    }, +    "user-home": { +      "version": "1.1.1", +      "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", +      "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", +      "dev": true +    }, +    "util": { +      "version": "0.10.3", +      "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", +      "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", +      "dev": true, +      "requires": { +        "inherits": "2.0.1" +      }, +      "dependencies": { +        "inherits": { +          "version": "2.0.1", +          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", +          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", +          "dev": true +        } +      } +    }, +    "util-deprecate": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", +      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", +      "dev": true +    }, +    "v8flags": { +      "version": "2.1.1", +      "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", +      "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", +      "dev": true, +      "requires": { +        "user-home": "1.1.1" +      } +    }, +    "vinyl": { +      "version": "0.5.3", +      "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", +      "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", +      "dev": true, +      "requires": { +        "clone": "1.0.2", +        "clone-stats": "0.0.1", +        "replace-ext": "0.0.1" +      } +    }, +    "vinyl-buffer": { +      "version": "1.0.0", +      "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.0.tgz", +      "integrity": "sha1-ygZ+oIQx1QdyKx3lCD9gJhbrwjQ=", +      "dev": true, +      "requires": { +        "bl": "0.9.5", +        "through2": "0.6.5" +      }, +      "dependencies": { +        "readable-stream": { +          "version": "1.0.34", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", +          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "0.0.1", +            "string_decoder": "0.10.31" +          } +        }, +        "through2": { +          "version": "0.6.5", +          "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", +          "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", +          "dev": true, +          "requires": { +            "readable-stream": "1.0.34", +            "xtend": "4.0.1" +          } +        } +      } +    }, +    "vinyl-fs": { +      "version": "0.3.14", +      "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", +      "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", +      "dev": true, +      "requires": { +        "defaults": "1.0.3", +        "glob-stream": "3.1.18", +        "glob-watcher": "0.0.6", +        "graceful-fs": "3.0.11", +        "mkdirp": "0.5.1", +        "strip-bom": "1.0.0", +        "through2": "0.6.5", +        "vinyl": "0.4.6" +      }, +      "dependencies": { +        "clone": { +          "version": "0.2.0", +          "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", +          "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", +          "dev": true +        }, +        "readable-stream": { +          "version": "1.0.34", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", +          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "0.0.1", +            "string_decoder": "0.10.31" +          } +        }, +        "through2": { +          "version": "0.6.5", +          "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", +          "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", +          "dev": true, +          "requires": { +            "readable-stream": "1.0.34", +            "xtend": "4.0.1" +          } +        }, +        "vinyl": { +          "version": "0.4.6", +          "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", +          "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", +          "dev": true, +          "requires": { +            "clone": "0.2.0", +            "clone-stats": "0.0.1" +          } +        } +      } +    }, +    "vinyl-source-stream": { +      "version": "1.1.0", +      "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz", +      "integrity": "sha1-RMvlEIIFJ53rDFZTwJSiiHk4sas=", +      "dev": true, +      "requires": { +        "through2": "0.6.5", +        "vinyl": "0.4.6" +      }, +      "dependencies": { +        "clone": { +          "version": "0.2.0", +          "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", +          "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", +          "dev": true +        }, +        "readable-stream": { +          "version": "1.0.34", +          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", +          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", +          "dev": true, +          "requires": { +            "core-util-is": "1.0.2", +            "inherits": "2.0.3", +            "isarray": "0.0.1", +            "string_decoder": "0.10.31" +          } +        }, +        "through2": { +          "version": "0.6.5", +          "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", +          "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", +          "dev": true, +          "requires": { +            "readable-stream": "1.0.34", +            "xtend": "4.0.1" +          } +        }, +        "vinyl": { +          "version": "0.4.6", +          "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", +          "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", +          "dev": true, +          "requires": { +            "clone": "0.2.0", +            "clone-stats": "0.0.1" +          } +        } +      } +    }, +    "vinyl-sourcemaps-apply": { +      "version": "0.2.1", +      "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", +      "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", +      "dev": true, +      "requires": { +        "source-map": "0.5.7" +      } +    }, +    "vm-browserify": { +      "version": "0.0.4", +      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", +      "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", +      "dev": true, +      "requires": { +        "indexof": "0.0.1" +      } +    }, +    "which": { +      "version": "1.3.0", +      "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", +      "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", +      "dev": true, +      "requires": { +        "isexe": "2.0.0" +      } +    }, +    "wrappy": { +      "version": "1.0.2", +      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", +      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", +      "dev": true +    }, +    "xtend": { +      "version": "4.0.1", +      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", +      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", +      "dev": true +    } +  } +} diff --git a/haddock-api/resources/html/package.json b/haddock-api/resources/html/package.json new file mode 100644 index 00000000..3f2922fa --- /dev/null +++ b/haddock-api/resources/html/package.json @@ -0,0 +1,32 @@ +{ +  "name": "haddock-quick-jump", +  "version": "0.1.0", +  "description": "A drop-down search on Haddock docs for navigating quickly to definitions of Haskell functions and types in the current package", +  "scripts": { +    "test": "echo \"Error: no test specified\" && exit 1" +  }, +  "repository": { +    "type": "git", +    "url": "https://github.com/haskell/haddock.git" +  }, +  "author": "Tim Baumann <tim@timbaumann.info>", +  "contributors": [ +    "Mark Lentczner <markl@glyphic.com>", +    "Moritz Drexl <mdrexl@fastmail.fm>", +    "Alex Biehl <alexbiehl@gmail.com>" +  ], +  "dependencies": { +    "fuse.js": "^3.1.0", +    "preact": "^8.2.5" +  }, +  "devDependencies": { +    "browserify": "^14.4.0", +    "gulp": "^3.9.1", +    "gulp-sourcemaps": "^2.6.1", +    "gulp-uglify": "^3.0.0", +    "tsify": "^3.0.3", +    "typescript": "^2.5.2", +    "vinyl-buffer": "^1.0.0", +    "vinyl-source-stream": "^1.1.0" +  } +} diff --git a/haddock-api/resources/html/quick-jump.css b/haddock-api/resources/html/quick-jump.css new file mode 100644 index 00000000..b69903c3 --- /dev/null +++ b/haddock-api/resources/html/quick-jump.css @@ -0,0 +1,157 @@ +/* @group Search box layout */ + +#search { +  position: fixed; +  top: 3.2em; +  bottom: 0; +  left: calc(50% - 22em); +  width: 44em; +  z-index: 1000; +  pointer-events: none; +} + +#search.hidden { +  display: none; +} + +#search-form, #search-results { +  box-shadow: 2px 2px 6px rgb(199, 204, 208); +  pointer-events: all; +} + +#search-form input { +  font-size: 1.25em; line-height: 2.3em; height: 2.4em; +  display: block; +  box-sizing: border-box; +  width: 100%; +  margin: 0; +  padding: 0 0.75em; +  border: 0.05em solid rgb(151, 179, 202); +} + +#search input:focus { +  outline: none; +} + +#search-results { +  top: 3em; +  max-height: calc(100% - 3em); +  box-sizing: border-box; +  border-width: 0 0.05em 0.05em; +  border-style: solid; +  border-color: #b2d5fb; +  background: #e8f3ff; +  overflow-y: auto; +} + +/* @end */ + +/* @group search results */ + +#search-results > ul { +  margin: 0; +  list-style: none; +} + +#search-results > ul > li, +#search-results > p, +#search-results > table { +  padding: 0.5em 1em; +  margin: 0; +} + +#search-results > ul > li { +  border-bottom: 1px solid #b2d5fb; +} + +#search-results > ul > li > ul { +  list-style: none; +} + +.search-module h4 { +  margin: 0; +} + +.search-module > ul { +  margin: 0.5em 0 0.5em 2em; +} + +.search-module > ul > li > a[href] { +  display: block; +  color: inherit; +  padding: 0.25em 0.5em; +} + +.search-module > ul > li > a[href].active-link { +  background: #faf9dc; +} + +.search-module a[href]:hover { +  text-decoration: none; +} + +.search-result a a { +  pointer-events: none; +} + +.search-result ul.subs { +  display: inline-block; +  margin: 0; padding: 0; +} + +.search-result ul.subs li { +  display: none; +} + +.search-result ul.subs::after { +  display: inline-block; +  content: "..."; +  color: rgb(78,98,114); +  margin: 0 0.25em; +} + +.more-results { +  color: rgb(99, 141, 173); +  position: relative; +} + +.more-results::before { +  content: "+"; +  display: inline-block; +  color: #b2d5fb; +  font-weight: bold; +  font-size: 1.25em; line-height: inherit; +  position: absolute; +  left: -1em; +} + +/* @end */ + +/* @group Keyboard shortcuts table */ + +.keyboard-shortcuts { +  line-height: 1.6em; +} + +.keyboard-shortcuts th { +  color: rgb(78,98,114); +} + +.keyboard-shortcuts td:first-child, +.keyboard-shortcuts th:first-child { +  text-align: right; +  padding-right: 0.6em; +} + +.key { +  display: inline-block; +  font-size: 0.9em; +  min-width: 0.8em; line-height: 1.2em; +  text-align: center; +  background: #b2d5fb; +  border: 1px solid #74a3d6; +  padding: 0 0.2em; +  margin: 0 0.1em; +} + +/* @end */
\ No newline at end of file diff --git a/haddock-api/resources/html/quick-jump.min.js b/haddock-api/resources/html/quick-jump.min.js new file mode 100644 index 00000000..c9f2b445 --- /dev/null +++ b/haddock-api/resources/html/quick-jump.min.js @@ -0,0 +1,2 @@ +!function t(e,n,o){function r(s,a){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[s]={exports:{}};e[s][0].call(u.exports,function(t){var n=e[s][1][t];return r(n||t)},u,u.exports,t,e,n,o)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<o.length;s++)r(o[s]);return r}({1:[function(t,e,n){"use strict";function o(t,e,n){var o=new XMLHttpRequest;o.onreadystatechange=function(){o.readyState===XMLHttpRequest.DONE&&(200===o.status?e&&e(JSON.parse(o.responseText)):n&&n(o))},o.open("GET",t,!0),o.send()}function r(t){var e=document.querySelector("#page-menu"),n=document.createElement("li");e.insertBefore(n,e.firstChild),p.render(f(v,{onClick:t,title:"Quick Jump"}),e,n)}function i(t,e){return e.length<=t?e:e.slice(0,t)}function s(){return f("table",{class:"keyboard-shortcuts"},f("tr",null,f("th",null,"Key"),f("th",null,"Shortcut")),f("tr",null,f("td",null,f("span",{class:"key"},"s")),f("td",null,"Open this search box")),f("tr",null,f("td",null,f("span",{class:"key"},"esc")),f("td",null,"Close this search box")),f("tr",null,f("td",null,f("span",{class:"key"},"↓"),",",f("span",{class:"key"},"ctrl")," + ",f("span",{class:"key"},"j")),f("td",null,"Move down in search results")),f("tr",null,f("td",null,f("span",{class:"key"},"↑"),",",f("span",{class:"key"},"ctrl")," + ",f("span",{class:"key"},"k")),f("td",null,"Move up in search results")),f("tr",null,f("td",null,f("span",{class:"key"},"↵")),f("td",null,"Go to active search result")))}function a(){return f("p",null,"You can find any exported type, constructor, class, function or pattern defined in this package by (approximate) name.")}function l(t){var e=[f("p",null,"Your search for '",t.searchString,"' produced the following list of results: ",f("code",null,"[]"),"."),f("p",null,f("code",null,"Nothing")," matches your query for '",t.searchString,"'."),f("p",null,f("code",null,"Left \"no matches for '",t.searchString,"'\" :: Either String (NonEmpty SearchResult)"))];return e[(t.searchString||"a").charCodeAt(0)%e.length]}function c(t,e){p.render(f(_,{baseUrl:t||".",showHideTrigger:e||r}),document.body)}var u=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function o(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();Object.defineProperty(n,"__esModule",{value:!0});var h=t("fuse.js"),p=t("preact"),f=p.h,d=p.Component,v=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return u(e,t),e.prototype.render=function(t){return f("li",null,f("a",{href:"#",onClick:function(e){e.preventDefault(),t.onClick()}},t.title))},e}(d),_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.linkIndex=0,e.focusPlease=!1,e.navigatedByKeyboard=!1,e}return u(e,t),e.prototype.componentWillMount=function(){var t=this;this.setState({searchString:"",isVisible:!1,expanded:{},activeLinkIndex:-1,moduleResults:[]}),o(this.props.baseUrl+"/doc-index.json",function(e){t.setState({fuse:new h(e,{threshold:.4,caseSensitive:!0,includeScore:!0,tokenize:!0,keys:["name","module"]}),moduleResults:[]})},function(e){console&&console.error("could not load 'doc-index.json' for searching",e),t.setState({failedLoading:!0})}),document.addEventListener("mousedown",this.hide.bind(this)),document.addEventListener("keydown",function(e){t.state.isVisible&&("Escape"===e.key?t.hide():"ArrowUp"===e.key||"k"===e.key&&e.ctrlKey?(e.preventDefault(),t.navigateLinks(-1)):"ArrowDown"===e.key||"j"===e.key&&e.ctrlKey?(e.preventDefault(),t.navigateLinks(1)):"Enter"===e.key&&t.state.activeLinkIndex>=0&&t.followActiveLink()),"s"===e.key&&"input"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),t.show())})},e.prototype.hide=function(){this.setState({isVisible:!1})},e.prototype.show=function(){this.state.isVisible||(this.focusPlease=!0,this.setState({isVisible:!0,activeLinkIndex:-1}))},e.prototype.toggleVisibility=function(){this.state.isVisible?this.hide():this.show()},e.prototype.navigateLinks=function(t){var e=Math.max(-1,Math.min(this.linkIndex-1,this.state.activeLinkIndex+t));this.navigatedByKeyboard=!0,this.setState({activeLinkIndex:e})},e.prototype.followActiveLink=function(){this.activeLinkAction&&this.activeLinkAction()},e.prototype.updateResults=function(){var t=this.input&&this.input.value||"",e={};this.state.fuse.search(t).forEach(function(t){var n=t.item.module;(e[n]||(e[n]=[])).push(t)});var n=[];for(var o in e)!function(t){var o=e[t],r=0;o.forEach(function(t){r+=1/t.score}),n.push({module:t,totalScore:1/r,items:o})}(o);n.sort(function(t,e){return t.totalScore-e.totalScore}),this.setState({searchString:t,isVisible:!0,moduleResults:n})},e.prototype.componentDidUpdate=function(){if(this.searchResults&&this.activeLink&&this.navigatedByKeyboard){var t=this.activeLink.getClientRects()[0],e=this.searchResults.getClientRects()[0].top;t.bottom>window.innerHeight?this.searchResults.scrollTop+=t.bottom-window.innerHeight+80:t.top<e&&(this.searchResults.scrollTop-=e-t.top+80)}this.focusPlease&&this.input&&this.input.focus(),this.navigatedByKeyboard=!1,this.focusPlease=!1},e.prototype.componentDidMount=function(){this.props.showHideTrigger(this.toggleVisibility.bind(this))},e.prototype.render=function(t,e){var n=this;if(e.failedLoading)return null;this.linkIndex=0;var o=function(t){t.stopPropagation()},r=i(10,e.moduleResults).map(function(t){return n.renderResultsInModule(t)});return f("div",{id:"search",class:e.isVisible?"":"hidden"},f("div",{id:"search-form",onMouseDown:o},f("input",{placeholder:"Search in package by name",ref:function(t){n.input=t},onFocus:this.show.bind(this),onClick:this.show.bind(this),onInput:this.updateResults.bind(this)})),f("div",{id:"search-results",ref:function(t){n.searchResults=t},onMouseDown:o,onMouseOver:function(t){for(var e=t.target;e&&"function"==typeof e.getAttribute;){var o=e.getAttribute("data-link-index");if("string"==typeof o){var r=parseInt(o,10);n.setState({activeLinkIndex:r});break}e=e.parentNode}}},""===e.searchString?[f(a,null),f(s,null)]:0==r.length?f(l,{searchString:e.searchString}):f("ul",null,r)))},e.prototype.renderResultsInModule=function(t){var e=this,n=t.items,o=t.module,r=this.state.expanded[o]||n.length<=10,s=r?n:i(8,n),a=function(t){return f("li",{class:"search-result"},e.navigationLink(e.props.baseUrl+"/"+t.link,{},f(g,{html:t.display_html})))};return f("li",{class:"search-module"},f("h4",null,o),f("ul",null,s.map(function(t){return a(t.item)}),r?[]:f("li",{class:"more-results"},this.actionLink(function(){var t=Object.assign({},e.state.expanded);t[o]=!0,e.setState({expanded:t})},{},"show "+(n.length-s.length)+" more results from this module"))))},e.prototype.navigationLink=function(t,e){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=Object.assign({href:t,onClick:this.hide.bind(this)},e);return this.menuLink.apply(this,[i,function(){window.location.href=t,n.hide()}].concat(o))},e.prototype.actionLink=function(t,e){for(var n=[],o=2;o<arguments.length;o++)n[o-2]=arguments[o];var r=Object.assign({href:"#",onClick:function(e){e.preventDefault(),t()}},e);return this.menuLink.apply(this,[r,t].concat(n))},e.prototype.menuLink=function(t,e){for(var n=this,o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var i=this.linkIndex;i===this.state.activeLinkIndex&&(t.class=(t.class?t.class+" ":"")+"active-link",t.ref=function(t){t&&(n.activeLink=t)},this.activeLinkAction=e);var s=Object.assign({"data-link-index":i},t);return this.linkIndex+=1,f.apply(void 0,["a",s].concat(o))},e}(d),g=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return u(e,t),e.prototype.shouldComponentUpdate=function(t){return this.props.html!==t.html},e.prototype.render=function(t){return f("div",{dangerouslySetInnerHTML:{__html:t.html}})},e}(d);n.init=c,window.quickNav={init:c}},{"fuse.js":2,preact:3}],2:[function(t,e,n){!function(t,o){"object"==typeof n&&"object"==typeof e?e.exports=o():"function"==typeof define&&define.amd?define("Fuse",[],o):"object"==typeof n?n.Fuse=o():t.Fuse=o()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";t.exports=function(t){return"[object Array]"===Object.prototype.toString.call(t)}},function(t,e,n){"use strict";function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),i=n(5),s=n(7),a=n(4),l=function(){function t(e,n){var r=n.location,i=void 0===r?0:r,s=n.distance,l=void 0===s?100:s,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,p=void 0===h?32:h,f=n.isCaseSensitive,d=void 0!==f&&f,v=n.tokenSeparator,_=void 0===v?/ +/g:v,g=n.findAllMatches,m=void 0!==g&&g,y=n.minMatchCharLength,k=void 0===y?1:y;o(this,t),this.options={location:i,distance:l,threshold:u,maxPatternLength:p,isCaseSensitive:d,tokenSeparator:_,findAllMatches:m,minMatchCharLength:k},this.pattern=this.options.isCaseSensitive?e:e.toLowerCase(),this.pattern.length<=p&&(this.patternAlphabet=a(this.pattern))}return r(t,[{key:"search",value:function(t){if(this.options.isCaseSensitive||(t=t.toLowerCase()),this.pattern===t)return{isMatch:!0,score:0,matchedIndices:[[0,t.length-1]]};var e=this.options,n=e.maxPatternLength,o=e.tokenSeparator;if(this.pattern.length>n)return i(t,this.pattern,o);var r=this.options,a=r.location,l=r.distance,c=r.threshold,u=r.findAllMatches,h=r.minMatchCharLength;return s(t,this.pattern,this.patternAlphabet,{location:a,distance:l,threshold:c,findAllMatches:u,minMatchCharLength:h})}}]),t}();t.exports=l},function(t,e,n){"use strict";var o=n(0),r=function t(e,n,r){if(n){var i=n.indexOf("."),s=n,a=null;-1!==i&&(s=n.slice(0,i),a=n.slice(i+1));var l=e[s];if(null!==l&&void 0!==l)if(a||"string"!=typeof l&&"number"!=typeof l)if(o(l))for(var c=0,u=l.length;c<u;c+=1)t(l[c],a,r);else a&&t(l,a,r);else r.push(l.toString())}else r.push(e);return r};t.exports=function(t,e){return r(t,e,[])}},function(t,e,n){"use strict";t.exports=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],o=-1,r=-1,i=0,s=t.length;i<s;i+=1){var a=t[i];a&&-1===o?o=i:a||-1===o||((r=i-1)-o+1>=e&&n.push([o,r]),o=-1)}return t[i-1]&&i-o>=e&&n.push([o,i-1]),n}},function(t,e,n){"use strict";t.exports=function(t){for(var e={},n=t.length,o=0;o<n;o+=1)e[t.charAt(o)]=0;for(var r=0;r<n;r+=1)e[t.charAt(r)]|=1<<n-r-1;return e}},function(t,e,n){"use strict";var o=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;t.exports=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,r=new RegExp(e.replace(o,"\\$&").replace(n,"|")),i=t.match(r),s=!!i,a=[];if(s)for(var l=0,c=i.length;l<c;l+=1){var u=i[l];a.push([t.indexOf(u),u.length-1])}return{score:s?.5:1,isMatch:s,matchedIndices:a}}},function(t,e,n){"use strict";t.exports=function(t,e){var n=e.errors,o=void 0===n?0:n,r=e.currentLocation,i=void 0===r?0:r,s=e.expectedLocation,a=void 0===s?0:s,l=e.distance,c=void 0===l?100:l,u=o/t.length,h=Math.abs(a-i);return c?u+h/c:h?1:u}},function(t,e,n){"use strict";var o=n(6),r=n(3);t.exports=function(t,e,n,i){for(var s=i.location,a=void 0===s?0:s,l=i.distance,c=void 0===l?100:l,u=i.threshold,h=void 0===u?.6:u,p=i.findAllMatches,f=void 0!==p&&p,d=i.minMatchCharLength,v=void 0===d?1:d,_=a,g=t.length,m=h,y=t.indexOf(e,_),k=e.length,b=[],x=0;x<g;x+=1)b[x]=0;if(-1!==y){var S=o(e,{errors:0,currentLocation:y,expectedLocation:_,distance:c});if(m=Math.min(S,m),-1!==(y=t.lastIndexOf(e,_+k))){var w=o(e,{errors:0,currentLocation:y,expectedLocation:_,distance:c});m=Math.min(w,m)}}y=-1;for(var L=[],C=1,M=k+g,N=1<<k-1,I=0;I<k;I+=1){for(var A=0,O=M;A<O;)o(e,{errors:I,currentLocation:_+O,expectedLocation:_,distance:c})<=m?A=O:M=O,O=Math.floor((M-A)/2+A);M=O;var T=Math.max(1,_-O+1),P=f?g:Math.min(_+O,g)+k,j=Array(P+2);j[P+1]=(1<<I)-1;for(var E=P;E>=T;E-=1){var R=E-1,U=n[t.charAt(R)];if(U&&(b[R]=1),j[E]=(j[E+1]<<1|1)&U,0!==I&&(j[E]|=(L[E+1]|L[E])<<1|1|L[E+1]),j[E]&N&&(C=o(e,{errors:I,currentLocation:R,expectedLocation:_,distance:c}))<=m){if(m=C,(y=R)<=_)break;T=Math.max(1,2*_-y)}}if(o(e,{errors:I+1,currentLocation:_,expectedLocation:_,distance:c})>m)break;L=j}return{isMatch:y>=0,score:0===C?.001:C,matchedIndices:r(b,v)}}},function(t,e,n){"use strict";function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),i=n(1),s=n(2),a=n(0),l=function(){function t(e,n){var r=n.location,i=void 0===r?0:r,a=n.distance,l=void 0===a?100:a,c=n.threshold,u=void 0===c?.6:c,h=n.maxPatternLength,p=void 0===h?32:h,f=n.caseSensitive,d=void 0!==f&&f,v=n.tokenSeparator,_=void 0===v?/ +/g:v,g=n.findAllMatches,m=void 0!==g&&g,y=n.minMatchCharLength,k=void 0===y?1:y,b=n.id,x=void 0===b?null:b,S=n.keys,w=void 0===S?[]:S,L=n.shouldSort,C=void 0===L||L,M=n.getFn,N=void 0===M?s:M,I=n.sortFn,A=void 0===I?function(t,e){return t.score-e.score}:I,O=n.tokenize,T=void 0!==O&&O,P=n.matchAllTokens,j=void 0!==P&&P,E=n.includeMatches,R=void 0!==E&&E,U=n.includeScore,D=void 0!==U&&U,V=n.verbose,F=void 0!==V&&V;o(this,t),this.options={location:i,distance:l,threshold:u,maxPatternLength:p,isCaseSensitive:d,tokenSeparator:_,findAllMatches:m,minMatchCharLength:k,id:x,keys:w,includeMatches:R,includeScore:D,shouldSort:C,getFn:N,sortFn:A,verbose:F,tokenize:T,matchAllTokens:j},this.setCollection(e)}return r(t,[{key:"setCollection",value:function(t){return this.list=t,t}},{key:"search",value:function(t){this._log('---------\nSearch pattern: "'+t+'"');var e=this._prepareSearchers(t),n=e.tokenSearchers,o=e.fullSearcher,r=this._search(n,o),i=r.weights,s=r.results;return this._computeScore(i,s),this.options.shouldSort&&this._sort(s),this._format(s)}},{key:"_prepareSearchers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=[];if(this.options.tokenize)for(var n=t.split(this.options.tokenSeparator),o=0,r=n.length;o<r;o+=1)e.push(new i(n[o],this.options));return{tokenSearchers:e,fullSearcher:new i(t,this.options)}}},{key:"_search",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments[1],n=this.list,o={},r=[];if("string"==typeof n[0]){for(var i=0,s=n.length;i<s;i+=1)this._analyze({key:"",value:n[i],record:i,index:i},{resultMap:o,results:r,tokenSearchers:t,fullSearcher:e});return{weights:null,results:r}}for(var a={},l=0,c=n.length;l<c;l+=1)for(var u=n[l],h=0,p=this.options.keys.length;h<p;h+=1){var f=this.options.keys[h];if("string"!=typeof f){if(a[f.name]={weight:1-f.weight||1},f.weight<=0||f.weight>1)throw new Error("Key weight has to be > 0 and <= 1");f=f.name}else a[f]={weight:1};this._analyze({key:f,value:this.options.getFn(u,f),record:u,index:l},{resultMap:o,results:r,tokenSearchers:t,fullSearcher:e})}return{weights:a,results:r}}},{key:"_analyze",value:function(t,e){var n=t.key,o=t.arrayIndex,r=void 0===o?-1:o,i=t.value,s=t.record,l=t.index,c=e.tokenSearchers,u=void 0===c?[]:c,h=e.fullSearcher,p=void 0===h?[]:h,f=e.resultMap,d=void 0===f?{}:f,v=e.results,_=void 0===v?[]:v;if(void 0!==i&&null!==i){var g=!1,m=-1,y=0;if("string"==typeof i){this._log("\nKey: "+(""===n?"-":n));var k=p.search(i);if(this._log('Full text: "'+i+'", score: '+k.score),this.options.tokenize){for(var b=i.split(this.options.tokenSeparator),x=[],S=0;S<u.length;S+=1){var w=u[S];this._log('\nPattern: "'+w.pattern+'"');for(var L=!1,C=0;C<b.length;C+=1){var M=b[C],N=w.search(M),I={};N.isMatch?(I[M]=N.score,g=!0,L=!0,x.push(N.score)):(I[M]=1,this.options.matchAllTokens||x.push(1)),this._log('Token: "'+M+'", score: '+I[M])}L&&(y+=1)}m=x[0];for(var A=x.length,O=1;O<A;O+=1)m+=x[O];m/=A,this._log("Token score average:",m)}var T=k.score;m>-1&&(T=(T+m)/2),this._log("Score average:",T);var P=!this.options.tokenize||!this.options.matchAllTokens||y>=u.length;if(this._log("\nCheck Matches: "+P),(g||k.isMatch)&&P){var j=d[l];j?j.output.push({key:n,arrayIndex:r,value:i,score:T,matchedIndices:k.matchedIndices}):(d[l]={item:s,output:[{key:n,arrayIndex:r,value:i,score:T,matchedIndices:k.matchedIndices}]},_.push(d[l]))}}else if(a(i))for(var E=0,R=i.length;E<R;E+=1)this._analyze({key:n,arrayIndex:E,value:i[E],record:s,index:l},{resultMap:d,results:_,tokenSearchers:u,fullSearcher:p})}}},{key:"_computeScore",value:function(t,e){this._log("\n\nComputing score:\n");for(var n=0,o=e.length;n<o;n+=1){for(var r=e[n].output,i=r.length,s=0,a=1,l=0;l<i;l+=1){var c=r[l].score,u=t?t[r[l].key].weight:1,h=c*u;1!==u?a=Math.min(a,h):(r[l].nScore=h,s+=h)}e[n].score=1===a?s/i:a,this._log(e[n])}}},{key:"_sort",value:function(t){this._log("\n\nSorting...."),t.sort(this.options.sortFn)}},{key:"_format",value:function(t){var e=[];this._log("\n\nOutput:\n\n",JSON.stringify(t));var n=[];this.options.includeMatches&&n.push(function(t,e){var n=t.output;e.matches=[];for(var o=0,r=n.length;o<r;o+=1){var i=n[o];if(0!==i.matchedIndices.length){var s={indices:i.matchedIndices,value:i.value};i.key&&(s.key=i.key),i.hasOwnProperty("arrayIndex")&&i.arrayIndex>-1&&(s.arrayIndex=i.arrayIndex),e.matches.push(s)}}}),this.options.includeScore&&n.push(function(t,e){e.score=t.score});for(var o=0,r=t.length;o<r;o+=1){var i=t[o];if(this.options.id&&(i.item=this.options.getFn(i.item,this.options.id)[0]),n.length){for(var s={item:i.item},a=0,l=n.length;a<l;a+=1)n[a](i,s);e.push(s)}else e.push(i.item)}return e}},{key:"_log",value:function(){if(this.options.verbose){var t;(t=console).log.apply(t,arguments)}}}]),t}();t.exports=l}])})},{}],3:[function(t,e,n){!function(){"use strict";function t(){}function n(e,n){var o,r,i,s,a=O;for(s=arguments.length;s-- >2;)A.push(arguments[s]);for(n&&null!=n.children&&(A.length||A.push(n.children),delete n.children);A.length;)if((r=A.pop())&&void 0!==r.pop)for(s=r.length;s--;)A.push(r[s]);else"boolean"==typeof r&&(r=null),(i="function"!=typeof e)&&(null==r?r="":"number"==typeof r?r=String(r):"string"!=typeof r&&(i=!1)),i&&o?a[a.length-1]+=r:a===O?a=[r]:a.push(r),o=i;var l=new t;return l.nodeName=e,l.children=a,l.attributes=null==n?void 0:n,l.key=null==n?void 0:n.key,void 0!==I.vnode&&I.vnode(l),l}function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){!t.__d&&(t.__d=!0)&&1==j.push(t)&&(I.debounceRendering||T)(i)}function i(){var t,e=j;for(j=[];t=e.pop();)t.__d&&L(t)}function s(t,e,n){return"string"==typeof e||"number"==typeof e?void 0!==t.splitText:"string"==typeof e.nodeName?!t._componentConstructor&&a(t,e.nodeName):n||t._componentConstructor===e.nodeName}function a(t,e){return t.__n===e||t.nodeName.toLowerCase()===e.toLowerCase()}function l(t){var e=o({},t.attributes);e.children=t.children;var n=t.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===e[r]&&(e[r]=n[r]);return e}function c(t,e){var n=e?document.createElementNS("http://www.w3.org/2000/svg",t):document.createElement(t);return n.__n=t,n}function u(t){var e=t.parentNode;e&&e.removeChild(t)}function h(t,e,n,o,r){if("className"===e&&(e="class"),"key"===e);else if("ref"===e)n&&n(null),o&&o(t);else if("class"!==e||r)if("style"===e){if(o&&"string"!=typeof o&&"string"!=typeof n||(t.style.cssText=o||""),o&&"object"==typeof o){if("string"!=typeof n)for(var i in n)i in o||(t.style[i]="");for(var i in o)t.style[i]="number"==typeof o[i]&&!1===P.test(i)?o[i]+"px":o[i]}}else if("dangerouslySetInnerHTML"===e)o&&(t.innerHTML=o.__html||"");else if("o"==e[0]&&"n"==e[1]){var s=e!==(e=e.replace(/Capture$/,""));e=e.toLowerCase().substring(2),o?n||t.addEventListener(e,f,s):t.removeEventListener(e,f,s),(t.__l||(t.__l={}))[e]=o}else if("list"!==e&&"type"!==e&&!r&&e in t)p(t,e,null==o?"":o),null!=o&&!1!==o||t.removeAttribute(e);else{var a=r&&e!==(e=e.replace(/^xlink\:?/,""));null==o||!1===o?a?t.removeAttributeNS("http://www.w3.org/1999/xlink",e.toLowerCase()):t.removeAttribute(e):"function"!=typeof o&&(a?t.setAttributeNS("http://www.w3.org/1999/xlink",e.toLowerCase(),o):t.setAttribute(e,o))}else t.className=o||""}function p(t,e,n){try{t[e]=n}catch(t){}}function f(t){return this.__l[t.type](I.event&&I.event(t)||t)}function d(){for(var t;t=E.pop();)I.afterMount&&I.afterMount(t),t.componentDidMount&&t.componentDidMount()}function v(t,e,n,o,r,i){R++||(U=null!=r&&void 0!==r.ownerSVGElement,D=null!=t&&!("__preactattr_"in t));var s=_(t,e,n,o,i);return r&&s.parentNode!==r&&r.appendChild(s),--R||(D=!1,i||d()),s}function _(t,e,n,o,r){var i=t,s=U;if(null!=e&&"boolean"!=typeof e||(e=""),"string"==typeof e||"number"==typeof e)return t&&void 0!==t.splitText&&t.parentNode&&(!t._component||r)?t.nodeValue!=e&&(t.nodeValue=e):(i=document.createTextNode(e),t&&(t.parentNode&&t.parentNode.replaceChild(i,t),m(t,!0))),i.__preactattr_=!0,i;var l=e.nodeName;if("function"==typeof l)return C(t,e,n,o);if(U="svg"===l||"foreignObject"!==l&&U,l=String(l),(!t||!a(t,l))&&(i=c(l,U),t)){for(;t.firstChild;)i.appendChild(t.firstChild);t.parentNode&&t.parentNode.replaceChild(i,t),m(t,!0)}var u=i.firstChild,h=i.__preactattr_,p=e.children;if(null==h){h=i.__preactattr_={};for(var f=i.attributes,d=f.length;d--;)h[f[d].name]=f[d].value}return!D&&p&&1===p.length&&"string"==typeof p[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=p[0]&&(u.nodeValue=p[0]):(p&&p.length||null!=u)&&g(i,p,n,o,D||null!=h.dangerouslySetInnerHTML),k(i,e.attributes,h),U=s,i}function g(t,e,n,o,r){var i,a,l,c,h,p=t.childNodes,f=[],d={},v=0,g=0,y=p.length,k=0,b=e?e.length:0;if(0!==y)for(L=0;L<y;L++){var x=p[L],S=x.__preactattr_;null!=(w=b&&S?x._component?x._component.__k:S.key:null)?(v++,d[w]=x):(S||(void 0!==x.splitText?!r||x.nodeValue.trim():r))&&(f[k++]=x)}if(0!==b)for(L=0;L<b;L++){h=null;var w=(c=e[L]).key;if(null!=w)v&&void 0!==d[w]&&(h=d[w],d[w]=void 0,v--);else if(!h&&g<k)for(i=g;i<k;i++)if(void 0!==f[i]&&s(a=f[i],c,r)){h=a,f[i]=void 0,i===k-1&&k--,i===g&&g++;break}h=_(h,c,n,o),l=p[L],h&&h!==t&&h!==l&&(null==l?t.appendChild(h):h===l.nextSibling?u(l):t.insertBefore(h,l))}if(v)for(var L in d)void 0!==d[L]&&m(d[L],!1);for(;g<=k;)void 0!==(h=f[k--])&&m(h,!1)}function m(t,e){var n=t._component;n?M(n):(null!=t.__preactattr_&&t.__preactattr_.ref&&t.__preactattr_.ref(null),!1!==e&&null!=t.__preactattr_||u(t),y(t))}function y(t){for(t=t.lastChild;t;){var e=t.previousSibling;m(t,!0),t=e}}function k(t,e,n){var o;for(o in n)e&&null!=e[o]||null==n[o]||h(t,o,n[o],n[o]=void 0,U);for(o in e)"children"===o||"innerHTML"===o||o in n&&e[o]===("value"===o||"checked"===o?t[o]:n[o])||h(t,o,n[o],n[o]=e[o],U)}function b(t){var e=t.constructor.name;(V[e]||(V[e]=[])).push(t)}function x(t,e,n){var o,r=V[t.name];if(t.prototype&&t.prototype.render?(o=new t(e,n),N.call(o,e,n)):((o=new N(e,n)).constructor=t,o.render=S),r)for(var i=r.length;i--;)if(r[i].constructor===t){o.__b=r[i].__b,r.splice(i,1);break}return o}function S(t,e,n){return this.constructor(t,n)}function w(t,e,n,o,i){t.__x||(t.__x=!0,(t.__r=e.ref)&&delete e.ref,(t.__k=e.key)&&delete e.key,!t.base||i?t.componentWillMount&&t.componentWillMount():t.componentWillReceiveProps&&t.componentWillReceiveProps(e,o),o&&o!==t.context&&(t.__c||(t.__c=t.context),t.context=o),t.__p||(t.__p=t.props),t.props=e,t.__x=!1,0!==n&&(1!==n&&!1===I.syncComponentUpdates&&t.base?r(t):L(t,1,i)),t.__r&&t.__r(t))}function L(t,e,n,r){if(!t.__x){var i,s,a,c=t.props,u=t.state,h=t.context,p=t.__p||c,f=t.__s||u,_=t.__c||h,g=t.base,y=t.__b,k=g||y,b=t._component,S=!1;if(g&&(t.props=p,t.state=f,t.context=_,2!==e&&t.shouldComponentUpdate&&!1===t.shouldComponentUpdate(c,u,h)?S=!0:t.componentWillUpdate&&t.componentWillUpdate(c,u,h),t.props=c,t.state=u,t.context=h),t.__p=t.__s=t.__c=t.__b=null,t.__d=!1,!S){i=t.render(c,u,h),t.getChildContext&&(h=o(o({},h),t.getChildContext()));var C,N,A=i&&i.nodeName;if("function"==typeof A){var O=l(i);(s=b)&&s.constructor===A&&O.key==s.__k?w(s,O,1,h,!1):(C=s,t._component=s=x(A,O,h),s.__b=s.__b||y,s.__u=t,w(s,O,0,h,!1),L(s,1,n,!0)),N=s.base}else a=k,(C=b)&&(a=t._component=null),(k||1===e)&&(a&&(a._component=null),N=v(a,i,h,n||!g,k&&k.parentNode,!0));if(k&&N!==k&&s!==b){var T=k.parentNode;T&&N!==T&&(T.replaceChild(N,k),C||(k._component=null,m(k,!1)))}if(C&&M(C),t.base=N,N&&!r){for(var P=t,j=t;j=j.__u;)(P=j).base=N;N._component=P,N._componentConstructor=P.constructor}}if(!g||n?E.unshift(t):S||(t.componentDidUpdate&&t.componentDidUpdate(p,f,_),I.afterUpdate&&I.afterUpdate(t)),null!=t.__h)for(;t.__h.length;)t.__h.pop().call(t);R||r||d()}}function C(t,e,n,o){for(var r=t&&t._component,i=r,s=t,a=r&&t._componentConstructor===e.nodeName,c=a,u=l(e);r&&!c&&(r=r.__u);)c=r.constructor===e.nodeName;return r&&c&&(!o||r._component)?(w(r,u,3,n,o),t=r.base):(i&&!a&&(M(i),t=s=null),r=x(e.nodeName,u,n),t&&!r.__b&&(r.__b=t,s=null),w(r,u,1,n,o),t=r.base,s&&t!==s&&(s._component=null,m(s,!1))),t}function M(t){I.beforeUnmount&&I.beforeUnmount(t);var e=t.base;t.__x=!0,t.componentWillUnmount&&t.componentWillUnmount(),t.base=null;var n=t._component;n?M(n):e&&(e.__preactattr_&&e.__preactattr_.ref&&e.__preactattr_.ref(null),t.__b=e,u(e),b(t),y(e)),t.__r&&t.__r(null)}function N(t,e){this.__d=!0,this.context=e,this.props=t,this.state=this.state||{}}var I={},A=[],O=[],T="function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout,P=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,j=[],E=[],R=0,U=!1,D=!1,V={};o(N.prototype,{setState:function(t,e){var n=this.state;this.__s||(this.__s=o({},n)),o(n,"function"==typeof t?t(n,this.props):t),e&&(this.__h=this.__h||[]).push(e),r(this)},forceUpdate:function(t){t&&(this.__h=this.__h||[]).push(t),L(this,2)},render:function(){}});var F={h:n,createElement:n,cloneElement:function(t,e){return n(t.nodeName,o(o({},t.attributes),e),arguments.length>2?[].slice.call(arguments,2):t.children)},Component:N,render:function(t,e,n){return v(n,t,{},!1,e,!1)},rerender:i,options:I};void 0!==e?e.exports=F:self.preact=F}()},{}]},{},[1]); +//# sourceMappingURL=quick-jump.min.js.map diff --git a/haddock-api/resources/html/tsconfig.json b/haddock-api/resources/html/tsconfig.json new file mode 100644 index 00000000..f2c19b59 --- /dev/null +++ b/haddock-api/resources/html/tsconfig.json @@ -0,0 +1,17 @@ +{ +  "compilerOptions": { +    "sourceMap": true, +    "noImplicitAny": true, +    "strictNullChecks": true, +    "noImplicitThis": true, +    "noFallthroughCasesInSwitch": true, +    "module": "commonjs", +    "target": "es5", +    "jsx": "react", +    "jsxFactory": "h", +    "lib": ["es2015", "dom"] +  }, +  "include": [ +    "js-src/*" +  ] +}
\ No newline at end of file | 
