├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── coverage ├── coverage.json ├── lcov-report │ ├── base.css │ ├── index.html │ ├── poorlyfills │ │ ├── index.c.js.html │ │ └── index.html │ ├── prettify.css │ ├── prettify.js │ ├── sort-arrow-sprite.png │ └── sorter.js └── lcov.info ├── index.js ├── min.js ├── package-lock.json ├── package.json └── test ├── c.js ├── ie └── index.html ├── index.html └── test.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | coverage/* 2 | node_modules/* 3 | test/* 4 | .DS_Store 5 | .gitignore 6 | .travis.yml 7 | package-lock.json -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 8 4 | git: 5 | depth: 1 6 | branches: 7 | only: 8 | - master 9 | after_success: 10 | - "npm run coveralls" -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2017, Andrea Giammarchi, @WebReflection 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 10 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 12 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14 | OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 | PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # poorlyfills 2 | 3 | [![License: ISC](https://img.shields.io/badge/License-ISC-yellow.svg)](https://opensource.org/licenses/ISC) [![Build Status](https://travis-ci.org/WebReflection/poorlyfills.svg?branch=master)](https://travis-ci.org/WebReflection/poorlyfills) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/poorlyfills/badge.svg?branch=master)](https://coveralls.io/github/WebReflection/poorlyfills?branch=master) [![donate](https://img.shields.io/badge/$-donate-ff69b4.svg?maxAge=2592000&style=flat)](https://github.com/WebReflection/donate) 4 | 5 | Simplified, partial, and poor ES6 collections polyfills, targeting IE9+ and older mobile browsers. 6 | 7 | * **Map** based on double private arrays and `indexOf(...)` quirks 8 | * **Set** based on a map with same values as keys 9 | * **WeakMap** based on a configurable, not enumerable, not writable, unique id property 10 | * **WeakSet** based on a WeakMap and a simple `true` value per each key 11 | 12 | All collections are missing constructor functionality and Symbols features. 13 | 14 | 15 | ### How To 16 | 17 | The [index.js](./index.js) file is an ES2015 module you can include in your projects as such: 18 | ```js 19 | import {Map, Set, WeakMap, WeakSet} from 'poorlyfills'; 20 | ``` 21 | The native `Map`, `Set`, `WeakMap`, and `Weakset` will always be preferred over the fallback. 22 | 23 | If you'd like to simply include this package on your Web pages, you can do it via unpkg: 24 | ```html 25 | 26 | 27 | ``` 28 | 29 | 30 | ### Compatibility 31 | 32 | You can test compatibility as both [ES2015 module](https://webreflection.github.io/poorlyfills/test/) and [ES5 transpiled](https://webreflection.github.io/poorlyfills/test/ie/) code for IE9+. 33 | 34 | 35 | 36 | 37 | ### ... but why ... 38 | 39 | After [this tweet](https://twitter.com/WebReflection/status/915645417571983360), and [this request](https://twitter.com/_developit/status/915668536344883200), and after writing myself these partial polyfills dunno how many times, I've decided to make it an official, fully test covered, package. 40 | 41 | -------------------------------------------------------------------------------- /coverage/coverage.json: -------------------------------------------------------------------------------- 1 | {"/home/webreflection/code/poorlyfills/index.c.js":{"path":"/home/webreflection/code/poorlyfills/index.c.js","s":{"1":1,"2":1,"3":2,"4":2,"5":4,"6":4,"7":2,"8":15,"9":2,"10":6,"11":5,"12":2,"13":2,"14":2,"15":2,"16":4,"17":2,"18":1,"19":5,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":2,"27":1,"28":1,"29":1,"30":1,"31":2,"32":2,"33":6,"34":2,"35":7,"36":4,"37":3,"38":3,"39":1,"40":1,"41":1,"42":3,"43":1,"44":1},"b":{"1":[1,1],"2":[4,2,2],"3":[1,4],"4":[1,1],"5":[1,1],"6":[4,2],"7":[1,1]},"f":{"1":2,"2":6,"3":2,"4":5,"5":1,"6":2,"7":3,"8":1,"9":1},"fnMap":{"1":{"name":"Map","line":4,"loc":{"start":{"line":4,"column":27},"end":{"line":4,"column":42}}},"2":{"name":"(anonymous_2)","line":9,"loc":{"start":{"line":9,"column":12},"end":{"line":9,"column":15}}},"3":{"name":"(anonymous_3)","line":17,"loc":{"start":{"line":17,"column":11},"end":{"line":17,"column":22}}},"4":{"name":"(anonymous_4)","line":20,"loc":{"start":{"line":20,"column":7},"end":{"line":20,"column":20}}},"5":{"name":"Set","line":29,"loc":{"start":{"line":29,"column":27},"end":{"line":29,"column":42}}},"6":{"name":"WeakMap","line":40,"loc":{"start":{"line":40,"column":35},"end":{"line":40,"column":54}}},"7":{"name":"(anonymous_7)","line":47,"loc":{"start":{"line":47,"column":7},"end":{"line":47,"column":20}}},"8":{"name":"WeakSet","line":57,"loc":{"start":{"line":57,"column":35},"end":{"line":57,"column":54}}},"9":{"name":"(anonymous_9)","line":62,"loc":{"start":{"line":62,"column":7},"end":{"line":62,"column":13}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":69,"column":9}},"2":{"start":{"line":4,"column":0},"end":{"line":27,"column":2}},"3":{"start":{"line":5,"column":2},"end":{"line":5,"column":14}},"4":{"start":{"line":6,"column":2},"end":{"line":6,"column":42}},"5":{"start":{"line":6,"column":24},"end":{"line":6,"column":31}},"6":{"start":{"line":6,"column":32},"end":{"line":6,"column":39}},"7":{"start":{"line":7,"column":2},"end":{"line":7,"column":47}},"8":{"start":{"line":7,"column":21},"end":{"line":7,"column":46}},"9":{"start":{"line":8,"column":2},"end":{"line":26,"column":4}},"10":{"start":{"line":9,"column":17},"end":{"line":9,"column":33}},"11":{"start":{"line":12,"column":16},"end":{"line":12,"column":33}},"12":{"start":{"line":13,"column":16},"end":{"line":13,"column":25}},"13":{"start":{"line":14,"column":18},"end":{"line":14,"column":27}},"14":{"start":{"line":15,"column":19},"end":{"line":15,"column":49}},"15":{"start":{"line":15,"column":37},"end":{"line":15,"column":48}},"16":{"start":{"line":16,"column":19},"end":{"line":16,"column":65}},"17":{"start":{"line":18,"column":6},"end":{"line":18,"column":64}},"18":{"start":{"line":18,"column":30},"end":{"line":18,"column":62}},"19":{"start":{"line":21,"column":6},"end":{"line":24,"column":14}},"20":{"start":{"line":29,"column":0},"end":{"line":36,"column":2}},"21":{"start":{"line":30,"column":2},"end":{"line":30,"column":27}},"22":{"start":{"line":31,"column":2},"end":{"line":31,"column":20}},"23":{"start":{"line":32,"column":2},"end":{"line":32,"column":15}},"24":{"start":{"line":33,"column":2},"end":{"line":33,"column":15}},"25":{"start":{"line":34,"column":2},"end":{"line":34,"column":39}},"26":{"start":{"line":34,"column":17},"end":{"line":34,"column":38}},"27":{"start":{"line":35,"column":2},"end":{"line":35,"column":11}},"28":{"start":{"line":38,"column":0},"end":{"line":38,"column":10}},"29":{"start":{"line":39,"column":0},"end":{"line":39,"column":30}},"30":{"start":{"line":40,"column":0},"end":{"line":55,"column":2}},"31":{"start":{"line":41,"column":2},"end":{"line":41,"column":41}},"32":{"start":{"line":42,"column":2},"end":{"line":42,"column":39}},"33":{"start":{"line":42,"column":21},"end":{"line":42,"column":38}},"34":{"start":{"line":43,"column":2},"end":{"line":54,"column":4}},"35":{"start":{"line":45,"column":16},"end":{"line":45,"column":23}},"36":{"start":{"line":46,"column":19},"end":{"line":46,"column":45}},"37":{"start":{"line":48,"column":6},"end":{"line":51,"column":9}},"38":{"start":{"line":52,"column":6},"end":{"line":52,"column":18}},"39":{"start":{"line":57,"column":0},"end":{"line":67,"column":2}},"40":{"start":{"line":58,"column":2},"end":{"line":58,"column":32}},"41":{"start":{"line":59,"column":2},"end":{"line":66,"column":4}},"42":{"start":{"line":60,"column":16},"end":{"line":60,"column":36}},"43":{"start":{"line":63,"column":6},"end":{"line":63,"column":24}},"44":{"start":{"line":64,"column":6},"end":{"line":64,"column":18}}},"branchMap":{"1":{"line":4,"type":"binary-expr","locations":[{"start":{"line":4,"column":13},"end":{"line":4,"column":23}},{"start":{"line":4,"column":27},"end":{"line":27,"column":1}}]},"2":{"line":16,"type":"binary-expr","locations":[{"start":{"line":16,"column":19},"end":{"line":16,"column":27}},{"start":{"line":16,"column":31},"end":{"line":16,"column":45}},{"start":{"line":16,"column":49},"end":{"line":16,"column":65}}]},"3":{"line":21,"type":"cond-expr","locations":[{"start":{"line":22,"column":9},"end":{"line":22,"column":21}},{"start":{"line":23,"column":9},"end":{"line":23,"column":35}}]},"4":{"line":29,"type":"binary-expr","locations":[{"start":{"line":29,"column":13},"end":{"line":29,"column":23}},{"start":{"line":29,"column":27},"end":{"line":36,"column":1}}]},"5":{"line":40,"type":"binary-expr","locations":[{"start":{"line":40,"column":17},"end":{"line":40,"column":31}},{"start":{"line":40,"column":35},"end":{"line":55,"column":1}}]},"6":{"line":46,"type":"binary-expr","locations":[{"start":{"line":46,"column":19},"end":{"line":46,"column":27}},{"start":{"line":46,"column":31},"end":{"line":46,"column":45}}]},"7":{"line":57,"type":"binary-expr","locations":[{"start":{"line":57,"column":17},"end":{"line":57,"column":31}},{"start":{"line":57,"column":35},"end":{"line":67,"column":1}}]}}}} -------------------------------------------------------------------------------- /coverage/lcov-report/base.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | margin:0; padding: 0; 3 | height: 100%; 4 | } 5 | body { 6 | font-family: Helvetica Neue, Helvetica, Arial; 7 | font-size: 14px; 8 | color:#333; 9 | } 10 | .small { font-size: 12px; } 11 | *, *:after, *:before { 12 | -webkit-box-sizing:border-box; 13 | -moz-box-sizing:border-box; 14 | box-sizing:border-box; 15 | } 16 | h1 { font-size: 20px; margin: 0;} 17 | h2 { font-size: 14px; } 18 | pre { 19 | font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; 20 | margin: 0; 21 | padding: 0; 22 | -moz-tab-size: 2; 23 | -o-tab-size: 2; 24 | tab-size: 2; 25 | } 26 | a { color:#0074D9; text-decoration:none; } 27 | a:hover { text-decoration:underline; } 28 | .strong { font-weight: bold; } 29 | .space-top1 { padding: 10px 0 0 0; } 30 | .pad2y { padding: 20px 0; } 31 | .pad1y { padding: 10px 0; } 32 | .pad2x { padding: 0 20px; } 33 | .pad2 { padding: 20px; } 34 | .pad1 { padding: 10px; } 35 | .space-left2 { padding-left:55px; } 36 | .space-right2 { padding-right:20px; } 37 | .center { text-align:center; } 38 | .clearfix { display:block; } 39 | .clearfix:after { 40 | content:''; 41 | display:block; 42 | height:0; 43 | clear:both; 44 | visibility:hidden; 45 | } 46 | .fl { float: left; } 47 | @media only screen and (max-width:640px) { 48 | .col3 { width:100%; max-width:100%; } 49 | .hide-mobile { display:none!important; } 50 | } 51 | 52 | .quiet { 53 | color: #7f7f7f; 54 | color: rgba(0,0,0,0.5); 55 | } 56 | .quiet a { opacity: 0.7; } 57 | 58 | .fraction { 59 | font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; 60 | font-size: 10px; 61 | color: #555; 62 | background: #E8E8E8; 63 | padding: 4px 5px; 64 | border-radius: 3px; 65 | vertical-align: middle; 66 | } 67 | 68 | div.path a:link, div.path a:visited { color: #333; } 69 | table.coverage { 70 | border-collapse: collapse; 71 | margin: 10px 0 0 0; 72 | padding: 0; 73 | } 74 | 75 | table.coverage td { 76 | margin: 0; 77 | padding: 0; 78 | vertical-align: top; 79 | } 80 | table.coverage td.line-count { 81 | text-align: right; 82 | padding: 0 5px 0 20px; 83 | } 84 | table.coverage td.line-coverage { 85 | text-align: right; 86 | padding-right: 10px; 87 | min-width:20px; 88 | } 89 | 90 | table.coverage td span.cline-any { 91 | display: inline-block; 92 | padding: 0 5px; 93 | width: 100%; 94 | } 95 | .missing-if-branch { 96 | display: inline-block; 97 | margin-right: 5px; 98 | border-radius: 3px; 99 | position: relative; 100 | padding: 0 4px; 101 | background: #333; 102 | color: yellow; 103 | } 104 | 105 | .skip-if-branch { 106 | display: none; 107 | margin-right: 10px; 108 | position: relative; 109 | padding: 0 4px; 110 | background: #ccc; 111 | color: white; 112 | } 113 | .missing-if-branch .typ, .skip-if-branch .typ { 114 | color: inherit !important; 115 | } 116 | .coverage-summary { 117 | border-collapse: collapse; 118 | width: 100%; 119 | } 120 | .coverage-summary tr { border-bottom: 1px solid #bbb; } 121 | .keyline-all { border: 1px solid #ddd; } 122 | .coverage-summary td, .coverage-summary th { padding: 10px; } 123 | .coverage-summary tbody { border: 1px solid #bbb; } 124 | .coverage-summary td { border-right: 1px solid #bbb; } 125 | .coverage-summary td:last-child { border-right: none; } 126 | .coverage-summary th { 127 | text-align: left; 128 | font-weight: normal; 129 | white-space: nowrap; 130 | } 131 | .coverage-summary th.file { border-right: none !important; } 132 | .coverage-summary th.pct { } 133 | .coverage-summary th.pic, 134 | .coverage-summary th.abs, 135 | .coverage-summary td.pct, 136 | .coverage-summary td.abs { text-align: right; } 137 | .coverage-summary td.file { white-space: nowrap; } 138 | .coverage-summary td.pic { min-width: 120px !important; } 139 | .coverage-summary tfoot td { } 140 | 141 | .coverage-summary .sorter { 142 | height: 10px; 143 | width: 7px; 144 | display: inline-block; 145 | margin-left: 0.5em; 146 | background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; 147 | } 148 | .coverage-summary .sorted .sorter { 149 | background-position: 0 -20px; 150 | } 151 | .coverage-summary .sorted-desc .sorter { 152 | background-position: 0 -10px; 153 | } 154 | .status-line { height: 10px; } 155 | /* dark red */ 156 | .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } 157 | .low .chart { border:1px solid #C21F39 } 158 | /* medium red */ 159 | .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } 160 | /* light red */ 161 | .low, .cline-no { background:#FCE1E5 } 162 | /* light green */ 163 | .high, .cline-yes { background:rgb(230,245,208) } 164 | /* medium green */ 165 | .cstat-yes { background:rgb(161,215,106) } 166 | /* dark green */ 167 | .status-line.high, .high .cover-fill { background:rgb(77,146,33) } 168 | .high .chart { border:1px solid rgb(77,146,33) } 169 | /* dark yellow (gold) */ 170 | .medium .chart { border:1px solid #f9cd0b; } 171 | .status-line.medium, .medium .cover-fill { background: #f9cd0b; } 172 | /* light yellow */ 173 | .medium { background: #fff4c2; } 174 | /* light gray */ 175 | span.cline-neutral { background: #eaeaea; } 176 | 177 | .cbranch-no { background: yellow !important; color: #111; } 178 | 179 | .cstat-skip { background: #ddd; color: #111; } 180 | .fstat-skip { background: #ddd; color: #111 !important; } 181 | .cbranch-skip { background: #ddd !important; color: #111; } 182 | 183 | 184 | .cover-fill, .cover-empty { 185 | display:inline-block; 186 | height: 12px; 187 | } 188 | .chart { 189 | line-height: 0; 190 | } 191 | .cover-empty { 192 | background: white; 193 | } 194 | .cover-full { 195 | border-right: none !important; 196 | } 197 | pre.prettyprint { 198 | border: none !important; 199 | padding: 0 !important; 200 | margin: 0 !important; 201 | } 202 | .com { color: #999 !important; } 203 | .ignore-none { color: #999; font-weight: normal; } 204 | 205 | .wrapper { 206 | min-height: 100%; 207 | height: auto !important; 208 | height: 100%; 209 | margin: 0 auto -48px; 210 | } 211 | .footer, .push { 212 | height: 48px; 213 | } 214 | -------------------------------------------------------------------------------- /coverage/lcov-report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Code coverage report for All files 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 |
17 |
18 |

19 | / 20 |

21 |
22 |
23 | 100% 24 | Statements 25 | 44/44 26 |
27 |
28 | 100% 29 | Branches 30 | 15/15 31 |
32 |
33 | 100% 34 | Functions 35 | 9/9 36 |
37 |
38 | 100% 39 | Lines 40 | 37/37 41 |
42 |
43 |
44 |
45 |
46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 |
FileStatementsBranchesFunctionsLines
poorlyfills/
100%44/44100%15/15100%9/9100%37/37
76 |
77 |
78 | 82 | 83 | 84 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /coverage/lcov-report/poorlyfills/index.c.js.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Code coverage report for poorlyfills/index.c.js 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 |
17 |
18 |

19 | all files / poorlyfills/ index.c.js 20 |

21 |
22 |
23 | 100% 24 | Statements 25 | 44/44 26 |
27 |
28 | 100% 29 | Branches 30 | 15/15 31 |
32 |
33 | 100% 34 | Functions 35 | 9/9 36 |
37 |
38 | 100% 39 | Lines 40 | 37/37 41 |
42 |
43 |
44 |
45 |

 46 | 
251 | 
1 47 | 2 48 | 3 49 | 4 50 | 5 51 | 6 52 | 7 53 | 8 54 | 9 55 | 10 56 | 11 57 | 12 58 | 13 59 | 14 60 | 15 61 | 16 62 | 17 63 | 18 64 | 19 65 | 20 66 | 21 67 | 22 68 | 23 69 | 24 70 | 25 71 | 26 72 | 27 73 | 28 74 | 29 75 | 30 76 | 31 77 | 32 78 | 33 79 | 34 80 | 35 81 | 36 82 | 37 83 | 38 84 | 39 85 | 40 86 | 41 87 | 42 88 | 43 89 | 44 90 | 45 91 | 46 92 | 47 93 | 48 94 | 49 95 | 50 96 | 51 97 | 52 98 | 53 99 | 54 100 | 55 101 | 56 102 | 57 103 | 58 104 | 59 105 | 60 106 | 61 107 | 62 108 | 63 109 | 64 110 | 65 111 | 66 112 | 67 113 | 68 114 | 69 115 |   116 |   117 | 118 | 119 | 120 | 15× 121 | 122 | 123 |   124 |   125 | 126 | 127 | 128 | 129 | 130 |   131 | 132 |   133 |   134 | 135 |   136 |   137 |   138 |   139 |   140 |   141 |   142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 |   150 |   151 | 152 | 153 | 154 | 155 | 156 | 157 |   158 | 159 | 160 |   161 | 162 |   163 |   164 |   165 | 166 |   167 |   168 |   169 |   170 | 171 | 172 | 173 | 174 |   175 |   176 | 177 | 178 |   179 |   180 |   181 |   182 |  
((window)=>{
183 | /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */
184 |  
185 | window.Map = window.Map || function Map() {
186 |   let i, k, v;
187 |   const clear = () => { k = []; v = []; };
188 |   const has = obj => -1 < (i = k.indexOf(obj));
189 |   return clear(), {
190 |     get size() { return k.length; },
191 |     has,
192 |     clear,
193 |     get: obj => v[k.indexOf(obj)],
194 |     keys: () => k.slice(),
195 |     values: () => v.slice(),
196 |     entries: () => k.map((key, i) => [key, v[i]]),
197 |     delete: obj => has(obj) && k.splice(i, 1) && !!v.splice(i, 1),
198 |     forEach(fn, self) {
199 |       v.forEach((value, i) => fn.call(self, value, k[i], this));
200 |     },
201 |     set(obj, value) {
202 |       return (has(obj) ?
203 |         (v[i] = value) :
204 |         (v[k.push(obj) - 1] = value)
205 |       ), this;
206 |     }
207 |   };
208 | };
209 |  
210 | window.Set = window.Set || function Set() {
211 |   const m = new window.Map;
212 |   const set = m.set;
213 |   delete m.get;
214 |   delete m.set;
215 |   m.add = obj => set.call(m, obj, obj);
216 |   return m;
217 | };
218 |  
219 | let i = 0;
220 | const hOP = {}.hasOwnProperty;
221 | window.WeakMap = window.WeakMap || function WeakMap() {
222 |   const id = '__' + [i++, Math.random()];
223 |   const has = obj => hOP.call(obj, id);
224 |   return {
225 |     has,
226 |     get: obj => obj[id],
227 |     delete: obj => has(obj) && delete obj[id],
228 |     set(obj, value) {
229 |       Object.defineProperty(obj, id, {
230 |         configurable: true,
231 |         value
232 |       });
233 |       return this;
234 |     }
235 |   };
236 | };
237 |  
238 | window.WeakSet = window.WeakSet || function WeakSet() {
239 |   const wm = new window.WeakMap;
240 |   return {
241 |     has: obj => wm.get(obj) === true,
242 |     delete: wm.delete,
243 |     add(obj) {
244 |       wm.set(obj, true);
245 |       return this;
246 |     }
247 |   };
248 | };
249 |  
250 | })(this);
252 |
253 |
254 | 258 | 259 | 260 | 267 | 268 | 269 | 270 | -------------------------------------------------------------------------------- /coverage/lcov-report/poorlyfills/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Code coverage report for poorlyfills/ 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 |
17 |
18 |

19 | all files poorlyfills/ 20 |

21 |
22 |
23 | 100% 24 | Statements 25 | 44/44 26 |
27 |
28 | 100% 29 | Branches 30 | 15/15 31 |
32 |
33 | 100% 34 | Functions 35 | 9/9 36 |
37 |
38 | 100% 39 | Lines 40 | 37/37 41 |
42 |
43 |
44 |
45 |
46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 |
FileStatementsBranchesFunctionsLines
index.c.js
100%44/44100%15/15100%9/9100%37/37
76 |
77 |
78 | 82 | 83 | 84 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /coverage/lcov-report/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 2 | -------------------------------------------------------------------------------- /coverage/lcov-report/prettify.js: -------------------------------------------------------------------------------- 1 | window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); 2 | -------------------------------------------------------------------------------- /coverage/lcov-report/sort-arrow-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WebReflection/poorlyfills/f3e720d7650eb32eccb24039808192e6f59a71e2/coverage/lcov-report/sort-arrow-sprite.png -------------------------------------------------------------------------------- /coverage/lcov-report/sorter.js: -------------------------------------------------------------------------------- 1 | var addSorting = (function () { 2 | "use strict"; 3 | var cols, 4 | currentSort = { 5 | index: 0, 6 | desc: false 7 | }; 8 | 9 | // returns the summary table element 10 | function getTable() { return document.querySelector('.coverage-summary'); } 11 | // returns the thead element of the summary table 12 | function getTableHeader() { return getTable().querySelector('thead tr'); } 13 | // returns the tbody element of the summary table 14 | function getTableBody() { return getTable().querySelector('tbody'); } 15 | // returns the th element for nth column 16 | function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } 17 | 18 | // loads all columns 19 | function loadColumns() { 20 | var colNodes = getTableHeader().querySelectorAll('th'), 21 | colNode, 22 | cols = [], 23 | col, 24 | i; 25 | 26 | for (i = 0; i < colNodes.length; i += 1) { 27 | colNode = colNodes[i]; 28 | col = { 29 | key: colNode.getAttribute('data-col'), 30 | sortable: !colNode.getAttribute('data-nosort'), 31 | type: colNode.getAttribute('data-type') || 'string' 32 | }; 33 | cols.push(col); 34 | if (col.sortable) { 35 | col.defaultDescSort = col.type === 'number'; 36 | colNode.innerHTML = colNode.innerHTML + ''; 37 | } 38 | } 39 | return cols; 40 | } 41 | // attaches a data attribute to every tr element with an object 42 | // of data values keyed by column name 43 | function loadRowData(tableRow) { 44 | var tableCols = tableRow.querySelectorAll('td'), 45 | colNode, 46 | col, 47 | data = {}, 48 | i, 49 | val; 50 | for (i = 0; i < tableCols.length; i += 1) { 51 | colNode = tableCols[i]; 52 | col = cols[i]; 53 | val = colNode.getAttribute('data-value'); 54 | if (col.type === 'number') { 55 | val = Number(val); 56 | } 57 | data[col.key] = val; 58 | } 59 | return data; 60 | } 61 | // loads all row data 62 | function loadData() { 63 | var rows = getTableBody().querySelectorAll('tr'), 64 | i; 65 | 66 | for (i = 0; i < rows.length; i += 1) { 67 | rows[i].data = loadRowData(rows[i]); 68 | } 69 | } 70 | // sorts the table using the data for the ith column 71 | function sortByIndex(index, desc) { 72 | var key = cols[index].key, 73 | sorter = function (a, b) { 74 | a = a.data[key]; 75 | b = b.data[key]; 76 | return a < b ? -1 : a > b ? 1 : 0; 77 | }, 78 | finalSorter = sorter, 79 | tableBody = document.querySelector('.coverage-summary tbody'), 80 | rowNodes = tableBody.querySelectorAll('tr'), 81 | rows = [], 82 | i; 83 | 84 | if (desc) { 85 | finalSorter = function (a, b) { 86 | return -1 * sorter(a, b); 87 | }; 88 | } 89 | 90 | for (i = 0; i < rowNodes.length; i += 1) { 91 | rows.push(rowNodes[i]); 92 | tableBody.removeChild(rowNodes[i]); 93 | } 94 | 95 | rows.sort(finalSorter); 96 | 97 | for (i = 0; i < rows.length; i += 1) { 98 | tableBody.appendChild(rows[i]); 99 | } 100 | } 101 | // removes sort indicators for current column being sorted 102 | function removeSortIndicators() { 103 | var col = getNthColumn(currentSort.index), 104 | cls = col.className; 105 | 106 | cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); 107 | col.className = cls; 108 | } 109 | // adds sort indicators for current column being sorted 110 | function addSortIndicators() { 111 | getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; 112 | } 113 | // adds event listeners for all sorter widgets 114 | function enableUI() { 115 | var i, 116 | el, 117 | ithSorter = function ithSorter(i) { 118 | var col = cols[i]; 119 | 120 | return function () { 121 | var desc = col.defaultDescSort; 122 | 123 | if (currentSort.index === i) { 124 | desc = !currentSort.desc; 125 | } 126 | sortByIndex(i, desc); 127 | removeSortIndicators(); 128 | currentSort.index = i; 129 | currentSort.desc = desc; 130 | addSortIndicators(); 131 | }; 132 | }; 133 | for (i =0 ; i < cols.length; i += 1) { 134 | if (cols[i].sortable) { 135 | // add the click event handler on the th so users 136 | // dont have to click on those tiny arrows 137 | el = getNthColumn(i).querySelector('.sorter').parentElement; 138 | if (el.addEventListener) { 139 | el.addEventListener('click', ithSorter(i)); 140 | } else { 141 | el.attachEvent('onclick', ithSorter(i)); 142 | } 143 | } 144 | } 145 | } 146 | // adds sorting functionality to the UI 147 | return function () { 148 | if (!getTable()) { 149 | return; 150 | } 151 | cols = loadColumns(); 152 | loadData(cols); 153 | addSortIndicators(); 154 | enableUI(); 155 | }; 156 | })(); 157 | 158 | window.addEventListener('load', addSorting); 159 | -------------------------------------------------------------------------------- /coverage/lcov.info: -------------------------------------------------------------------------------- 1 | TN: 2 | SF:/home/webreflection/code/poorlyfills/index.c.js 3 | FN:4,Map 4 | FN:9,(anonymous_2) 5 | FN:17,(anonymous_3) 6 | FN:20,(anonymous_4) 7 | FN:29,Set 8 | FN:40,WeakMap 9 | FN:47,(anonymous_7) 10 | FN:57,WeakSet 11 | FN:62,(anonymous_9) 12 | FNF:9 13 | FNH:9 14 | FNDA:2,Map 15 | FNDA:6,(anonymous_2) 16 | FNDA:2,(anonymous_3) 17 | FNDA:5,(anonymous_4) 18 | FNDA:1,Set 19 | FNDA:2,WeakMap 20 | FNDA:3,(anonymous_7) 21 | FNDA:1,WeakSet 22 | FNDA:1,(anonymous_9) 23 | DA:1,1 24 | DA:4,1 25 | DA:5,2 26 | DA:6,4 27 | DA:7,15 28 | DA:8,2 29 | DA:9,6 30 | DA:12,5 31 | DA:13,2 32 | DA:14,2 33 | DA:15,2 34 | DA:16,4 35 | DA:18,2 36 | DA:21,5 37 | DA:29,1 38 | DA:30,1 39 | DA:31,1 40 | DA:32,1 41 | DA:33,1 42 | DA:34,2 43 | DA:35,1 44 | DA:38,1 45 | DA:39,1 46 | DA:40,1 47 | DA:41,2 48 | DA:42,6 49 | DA:43,2 50 | DA:45,7 51 | DA:46,4 52 | DA:48,3 53 | DA:52,3 54 | DA:57,1 55 | DA:58,1 56 | DA:59,1 57 | DA:60,3 58 | DA:63,1 59 | DA:64,1 60 | LF:37 61 | LH:37 62 | BRDA:4,1,0,1 63 | BRDA:4,1,1,1 64 | BRDA:16,2,0,4 65 | BRDA:16,2,1,2 66 | BRDA:16,2,2,2 67 | BRDA:21,3,0,1 68 | BRDA:21,3,1,4 69 | BRDA:29,4,0,1 70 | BRDA:29,4,1,1 71 | BRDA:40,5,0,1 72 | BRDA:40,5,1,1 73 | BRDA:46,6,0,4 74 | BRDA:46,6,1,2 75 | BRDA:57,7,0,1 76 | BRDA:57,7,1,1 77 | BRF:15 78 | BRH:15 79 | end_of_record 80 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */ 2 | 3 | export const Map = window.Map || function Map() { 4 | let i, k, v; 5 | const clear = () => { k = []; v = []; }; 6 | const has = obj => -1 < (i = k.indexOf(obj)); 7 | return clear(), { 8 | get size() { return k.length; }, 9 | has, 10 | clear, 11 | get: obj => v[k.indexOf(obj)], 12 | keys: () => k.slice(), 13 | values: () => v.slice(), 14 | entries: () => k.map((key, i) => [key, v[i]]), 15 | delete: obj => has(obj) && k.splice(i, 1) && !!v.splice(i, 1), 16 | forEach(fn, self) { 17 | v.forEach((value, i) => fn.call(self, value, k[i], this)); 18 | }, 19 | set(obj, value) { 20 | return (has(obj) ? 21 | (v[i] = value) : 22 | (v[k.push(obj) - 1] = value) 23 | ), this; 24 | } 25 | }; 26 | }; 27 | 28 | export const Set = window.Set || function Set() { 29 | const m = new Map; 30 | const set = m.set; 31 | delete m.get; 32 | delete m.set; 33 | m.add = obj => set.call(m, obj, obj); 34 | return m; 35 | }; 36 | 37 | let i = 0; 38 | const hOP = {}.hasOwnProperty; 39 | export const WeakMap = window.WeakMap || function WeakMap() { 40 | const id = '__' + [i++, Math.random()]; 41 | const has = obj => hOP.call(obj, id); 42 | return { 43 | has, 44 | get: obj => obj[id], 45 | delete: obj => has(obj) && delete obj[id], 46 | set(obj, value) { 47 | Object.defineProperty(obj, id, { 48 | configurable: true, 49 | value 50 | }); 51 | return this; 52 | } 53 | }; 54 | }; 55 | 56 | export const WeakSet = window.WeakSet || function WeakSet() { 57 | const wm = new WeakMap; 58 | return { 59 | has: obj => wm.get(obj) === true, 60 | delete: wm.delete, 61 | add(obj) { 62 | wm.set(obj, true); 63 | return this; 64 | } 65 | }; 66 | }; 67 | -------------------------------------------------------------------------------- /min.js: -------------------------------------------------------------------------------- 1 | "use strict";!function(e){/*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */ 2 | e.Map=e.Map||function(){var e=void 0,t=void 0,n=void 0,r=function(){t=[],n=[]},u=function(n){return-1<(e=t.indexOf(n))};return r(),{get size(){return t.length},has:u,clear:r,get:function(e){return n[t.indexOf(e)]},keys:function(){return t.slice()},values:function(){return n.slice()},entries:function(){return t.map(function(e,t){return[e,n[t]]})},delete:function(r){return u(r)&&t.splice(e,1)&&!!n.splice(e,1)},forEach:function(e,r){var u=this;n.forEach(function(n,i){return e.call(r,n,t[i],u)})},set:function(r,i){return u(r)?n[e]=i:n[t.push(r)-1]=i,this}}},e.Set=e.Set||function(){var t=new e.Map,n=t.set;return delete t.get,delete t.set,t.add=function(e){return n.call(t,e,e)},t};var t=0,n={}.hasOwnProperty;e.WeakMap=e.WeakMap||function(){var e="__"+[t++,Math.random()],r=function(t){return n.call(t,e)};return{has:r,get:function(t){return t[e]},delete:function(t){return r(t)&&delete t[e]},set:function(t,n){return Object.defineProperty(t,e,{configurable:!0,value:n}),this}}},e.WeakSet=e.WeakSet||function(){var t=new e.WeakMap;return{has:function(e){return!0===t.get(e)},delete:t.delete,add:function(e){return t.set(e,!0),this}}}}(this); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "poorlyfills", 3 | "version": "0.1.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abbrev": { 8 | "version": "1.0.9", 9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", 10 | "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", 11 | "dev": true 12 | }, 13 | "ajv": { 14 | "version": "5.2.3", 15 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", 16 | "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", 17 | "dev": true, 18 | "requires": { 19 | "co": "4.6.0", 20 | "fast-deep-equal": "1.0.0", 21 | "json-schema-traverse": "0.3.1", 22 | "json-stable-stringify": "1.0.1" 23 | } 24 | }, 25 | "align-text": { 26 | "version": "0.1.4", 27 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 28 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 29 | "dev": true, 30 | "requires": { 31 | "kind-of": "3.2.2", 32 | "longest": "1.0.1", 33 | "repeat-string": "1.6.1" 34 | } 35 | }, 36 | "amdefine": { 37 | "version": "1.0.1", 38 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 39 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 40 | "dev": true 41 | }, 42 | "ansi-regex": { 43 | "version": "2.1.1", 44 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 45 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 46 | "dev": true 47 | }, 48 | "ansi-styles": { 49 | "version": "2.2.1", 50 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 51 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 52 | "dev": true 53 | }, 54 | "anymatch": { 55 | "version": "1.3.2", 56 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 57 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 58 | "dev": true, 59 | "optional": true, 60 | "requires": { 61 | "micromatch": "2.3.11", 62 | "normalize-path": "2.1.1" 63 | } 64 | }, 65 | "argparse": { 66 | "version": "1.0.9", 67 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 68 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 69 | "dev": true, 70 | "requires": { 71 | "sprintf-js": "1.0.3" 72 | } 73 | }, 74 | "arr-diff": { 75 | "version": "2.0.0", 76 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 77 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 78 | "dev": true, 79 | "optional": true, 80 | "requires": { 81 | "arr-flatten": "1.1.0" 82 | } 83 | }, 84 | "arr-flatten": { 85 | "version": "1.1.0", 86 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 87 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 88 | "dev": true, 89 | "optional": true 90 | }, 91 | "array-unique": { 92 | "version": "0.2.1", 93 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 94 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 95 | "dev": true, 96 | "optional": true 97 | }, 98 | "asn1": { 99 | "version": "0.2.3", 100 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 101 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 102 | "dev": true 103 | }, 104 | "assert-plus": { 105 | "version": "1.0.0", 106 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 107 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 108 | "dev": true 109 | }, 110 | "async": { 111 | "version": "1.5.2", 112 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 113 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 114 | "dev": true 115 | }, 116 | "async-each": { 117 | "version": "1.0.1", 118 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 119 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 120 | "dev": true, 121 | "optional": true 122 | }, 123 | "asynckit": { 124 | "version": "0.4.0", 125 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 126 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 127 | "dev": true 128 | }, 129 | "aws-sign2": { 130 | "version": "0.7.0", 131 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 132 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 133 | "dev": true 134 | }, 135 | "aws4": { 136 | "version": "1.6.0", 137 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 138 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 139 | "dev": true 140 | }, 141 | "babel-cli": { 142 | "version": "6.26.0", 143 | "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", 144 | "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", 145 | "dev": true, 146 | "requires": { 147 | "babel-core": "6.26.0", 148 | "babel-polyfill": "6.26.0", 149 | "babel-register": "6.26.0", 150 | "babel-runtime": "6.26.0", 151 | "chokidar": "1.7.0", 152 | "commander": "2.11.0", 153 | "convert-source-map": "1.5.0", 154 | "fs-readdir-recursive": "1.0.0", 155 | "glob": "7.1.2", 156 | "lodash": "4.17.4", 157 | "output-file-sync": "1.1.2", 158 | "path-is-absolute": "1.0.1", 159 | "slash": "1.0.0", 160 | "source-map": "0.5.7", 161 | "v8flags": "2.1.1" 162 | }, 163 | "dependencies": { 164 | "glob": { 165 | "version": "7.1.2", 166 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 167 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 168 | "dev": true, 169 | "requires": { 170 | "fs.realpath": "1.0.0", 171 | "inflight": "1.0.6", 172 | "inherits": "2.0.3", 173 | "minimatch": "3.0.4", 174 | "once": "1.4.0", 175 | "path-is-absolute": "1.0.1" 176 | } 177 | }, 178 | "source-map": { 179 | "version": "0.5.7", 180 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 181 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 182 | "dev": true 183 | } 184 | } 185 | }, 186 | "babel-code-frame": { 187 | "version": "6.26.0", 188 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 189 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 190 | "dev": true, 191 | "requires": { 192 | "chalk": "1.1.3", 193 | "esutils": "2.0.2", 194 | "js-tokens": "3.0.2" 195 | } 196 | }, 197 | "babel-core": { 198 | "version": "6.26.0", 199 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 200 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 201 | "dev": true, 202 | "requires": { 203 | "babel-code-frame": "6.26.0", 204 | "babel-generator": "6.26.0", 205 | "babel-helpers": "6.24.1", 206 | "babel-messages": "6.23.0", 207 | "babel-register": "6.26.0", 208 | "babel-runtime": "6.26.0", 209 | "babel-template": "6.26.0", 210 | "babel-traverse": "6.26.0", 211 | "babel-types": "6.26.0", 212 | "babylon": "6.18.0", 213 | "convert-source-map": "1.5.0", 214 | "debug": "2.6.9", 215 | "json5": "0.5.1", 216 | "lodash": "4.17.4", 217 | "minimatch": "3.0.4", 218 | "path-is-absolute": "1.0.1", 219 | "private": "0.1.7", 220 | "slash": "1.0.0", 221 | "source-map": "0.5.7" 222 | }, 223 | "dependencies": { 224 | "source-map": { 225 | "version": "0.5.7", 226 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 227 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 228 | "dev": true 229 | } 230 | } 231 | }, 232 | "babel-generator": { 233 | "version": "6.26.0", 234 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 235 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 236 | "dev": true, 237 | "requires": { 238 | "babel-messages": "6.23.0", 239 | "babel-runtime": "6.26.0", 240 | "babel-types": "6.26.0", 241 | "detect-indent": "4.0.0", 242 | "jsesc": "1.3.0", 243 | "lodash": "4.17.4", 244 | "source-map": "0.5.7", 245 | "trim-right": "1.0.1" 246 | }, 247 | "dependencies": { 248 | "source-map": { 249 | "version": "0.5.7", 250 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 251 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 252 | "dev": true 253 | } 254 | } 255 | }, 256 | "babel-helper-call-delegate": { 257 | "version": "6.24.1", 258 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 259 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 260 | "dev": true, 261 | "requires": { 262 | "babel-helper-hoist-variables": "6.24.1", 263 | "babel-runtime": "6.26.0", 264 | "babel-traverse": "6.26.0", 265 | "babel-types": "6.26.0" 266 | } 267 | }, 268 | "babel-helper-define-map": { 269 | "version": "6.26.0", 270 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", 271 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 272 | "dev": true, 273 | "requires": { 274 | "babel-helper-function-name": "6.24.1", 275 | "babel-runtime": "6.26.0", 276 | "babel-types": "6.26.0", 277 | "lodash": "4.17.4" 278 | } 279 | }, 280 | "babel-helper-function-name": { 281 | "version": "6.24.1", 282 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 283 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 284 | "dev": true, 285 | "requires": { 286 | "babel-helper-get-function-arity": "6.24.1", 287 | "babel-runtime": "6.26.0", 288 | "babel-template": "6.26.0", 289 | "babel-traverse": "6.26.0", 290 | "babel-types": "6.26.0" 291 | } 292 | }, 293 | "babel-helper-get-function-arity": { 294 | "version": "6.24.1", 295 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 296 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 297 | "dev": true, 298 | "requires": { 299 | "babel-runtime": "6.26.0", 300 | "babel-types": "6.26.0" 301 | } 302 | }, 303 | "babel-helper-hoist-variables": { 304 | "version": "6.24.1", 305 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 306 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 307 | "dev": true, 308 | "requires": { 309 | "babel-runtime": "6.26.0", 310 | "babel-types": "6.26.0" 311 | } 312 | }, 313 | "babel-helper-optimise-call-expression": { 314 | "version": "6.24.1", 315 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 316 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 317 | "dev": true, 318 | "requires": { 319 | "babel-runtime": "6.26.0", 320 | "babel-types": "6.26.0" 321 | } 322 | }, 323 | "babel-helper-regex": { 324 | "version": "6.26.0", 325 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 326 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 327 | "dev": true, 328 | "requires": { 329 | "babel-runtime": "6.26.0", 330 | "babel-types": "6.26.0", 331 | "lodash": "4.17.4" 332 | } 333 | }, 334 | "babel-helper-replace-supers": { 335 | "version": "6.24.1", 336 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 337 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 338 | "dev": true, 339 | "requires": { 340 | "babel-helper-optimise-call-expression": "6.24.1", 341 | "babel-messages": "6.23.0", 342 | "babel-runtime": "6.26.0", 343 | "babel-template": "6.26.0", 344 | "babel-traverse": "6.26.0", 345 | "babel-types": "6.26.0" 346 | } 347 | }, 348 | "babel-helpers": { 349 | "version": "6.24.1", 350 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 351 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 352 | "dev": true, 353 | "requires": { 354 | "babel-runtime": "6.26.0", 355 | "babel-template": "6.26.0" 356 | } 357 | }, 358 | "babel-messages": { 359 | "version": "6.23.0", 360 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 361 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 362 | "dev": true, 363 | "requires": { 364 | "babel-runtime": "6.26.0" 365 | } 366 | }, 367 | "babel-plugin-check-es2015-constants": { 368 | "version": "6.22.0", 369 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 370 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 371 | "dev": true, 372 | "requires": { 373 | "babel-runtime": "6.26.0" 374 | } 375 | }, 376 | "babel-plugin-transform-es2015-arrow-functions": { 377 | "version": "6.22.0", 378 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 379 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 380 | "dev": true, 381 | "requires": { 382 | "babel-runtime": "6.26.0" 383 | } 384 | }, 385 | "babel-plugin-transform-es2015-block-scoped-functions": { 386 | "version": "6.22.0", 387 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 388 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 389 | "dev": true, 390 | "requires": { 391 | "babel-runtime": "6.26.0" 392 | } 393 | }, 394 | "babel-plugin-transform-es2015-block-scoping": { 395 | "version": "6.26.0", 396 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 397 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 398 | "dev": true, 399 | "requires": { 400 | "babel-runtime": "6.26.0", 401 | "babel-template": "6.26.0", 402 | "babel-traverse": "6.26.0", 403 | "babel-types": "6.26.0", 404 | "lodash": "4.17.4" 405 | } 406 | }, 407 | "babel-plugin-transform-es2015-classes": { 408 | "version": "6.24.1", 409 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 410 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 411 | "dev": true, 412 | "requires": { 413 | "babel-helper-define-map": "6.26.0", 414 | "babel-helper-function-name": "6.24.1", 415 | "babel-helper-optimise-call-expression": "6.24.1", 416 | "babel-helper-replace-supers": "6.24.1", 417 | "babel-messages": "6.23.0", 418 | "babel-runtime": "6.26.0", 419 | "babel-template": "6.26.0", 420 | "babel-traverse": "6.26.0", 421 | "babel-types": "6.26.0" 422 | } 423 | }, 424 | "babel-plugin-transform-es2015-computed-properties": { 425 | "version": "6.24.1", 426 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 427 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 428 | "dev": true, 429 | "requires": { 430 | "babel-runtime": "6.26.0", 431 | "babel-template": "6.26.0" 432 | } 433 | }, 434 | "babel-plugin-transform-es2015-destructuring": { 435 | "version": "6.23.0", 436 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 437 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 438 | "dev": true, 439 | "requires": { 440 | "babel-runtime": "6.26.0" 441 | } 442 | }, 443 | "babel-plugin-transform-es2015-duplicate-keys": { 444 | "version": "6.24.1", 445 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 446 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 447 | "dev": true, 448 | "requires": { 449 | "babel-runtime": "6.26.0", 450 | "babel-types": "6.26.0" 451 | } 452 | }, 453 | "babel-plugin-transform-es2015-for-of": { 454 | "version": "6.23.0", 455 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 456 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 457 | "dev": true, 458 | "requires": { 459 | "babel-runtime": "6.26.0" 460 | } 461 | }, 462 | "babel-plugin-transform-es2015-function-name": { 463 | "version": "6.24.1", 464 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 465 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 466 | "dev": true, 467 | "requires": { 468 | "babel-helper-function-name": "6.24.1", 469 | "babel-runtime": "6.26.0", 470 | "babel-types": "6.26.0" 471 | } 472 | }, 473 | "babel-plugin-transform-es2015-literals": { 474 | "version": "6.22.0", 475 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 476 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 477 | "dev": true, 478 | "requires": { 479 | "babel-runtime": "6.26.0" 480 | } 481 | }, 482 | "babel-plugin-transform-es2015-modules-amd": { 483 | "version": "6.24.1", 484 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 485 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 486 | "dev": true, 487 | "requires": { 488 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 489 | "babel-runtime": "6.26.0", 490 | "babel-template": "6.26.0" 491 | } 492 | }, 493 | "babel-plugin-transform-es2015-modules-commonjs": { 494 | "version": "6.26.0", 495 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 496 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 497 | "dev": true, 498 | "requires": { 499 | "babel-plugin-transform-strict-mode": "6.24.1", 500 | "babel-runtime": "6.26.0", 501 | "babel-template": "6.26.0", 502 | "babel-types": "6.26.0" 503 | } 504 | }, 505 | "babel-plugin-transform-es2015-modules-systemjs": { 506 | "version": "6.24.1", 507 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 508 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 509 | "dev": true, 510 | "requires": { 511 | "babel-helper-hoist-variables": "6.24.1", 512 | "babel-runtime": "6.26.0", 513 | "babel-template": "6.26.0" 514 | } 515 | }, 516 | "babel-plugin-transform-es2015-modules-umd": { 517 | "version": "6.24.1", 518 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 519 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 520 | "dev": true, 521 | "requires": { 522 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 523 | "babel-runtime": "6.26.0", 524 | "babel-template": "6.26.0" 525 | } 526 | }, 527 | "babel-plugin-transform-es2015-object-super": { 528 | "version": "6.24.1", 529 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 530 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 531 | "dev": true, 532 | "requires": { 533 | "babel-helper-replace-supers": "6.24.1", 534 | "babel-runtime": "6.26.0" 535 | } 536 | }, 537 | "babel-plugin-transform-es2015-parameters": { 538 | "version": "6.24.1", 539 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 540 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 541 | "dev": true, 542 | "requires": { 543 | "babel-helper-call-delegate": "6.24.1", 544 | "babel-helper-get-function-arity": "6.24.1", 545 | "babel-runtime": "6.26.0", 546 | "babel-template": "6.26.0", 547 | "babel-traverse": "6.26.0", 548 | "babel-types": "6.26.0" 549 | } 550 | }, 551 | "babel-plugin-transform-es2015-shorthand-properties": { 552 | "version": "6.24.1", 553 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 554 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 555 | "dev": true, 556 | "requires": { 557 | "babel-runtime": "6.26.0", 558 | "babel-types": "6.26.0" 559 | } 560 | }, 561 | "babel-plugin-transform-es2015-spread": { 562 | "version": "6.22.0", 563 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 564 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 565 | "dev": true, 566 | "requires": { 567 | "babel-runtime": "6.26.0" 568 | } 569 | }, 570 | "babel-plugin-transform-es2015-sticky-regex": { 571 | "version": "6.24.1", 572 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 573 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 574 | "dev": true, 575 | "requires": { 576 | "babel-helper-regex": "6.26.0", 577 | "babel-runtime": "6.26.0", 578 | "babel-types": "6.26.0" 579 | } 580 | }, 581 | "babel-plugin-transform-es2015-template-literals": { 582 | "version": "6.22.0", 583 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 584 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 585 | "dev": true, 586 | "requires": { 587 | "babel-runtime": "6.26.0" 588 | } 589 | }, 590 | "babel-plugin-transform-es2015-typeof-symbol": { 591 | "version": "6.23.0", 592 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 593 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 594 | "dev": true, 595 | "requires": { 596 | "babel-runtime": "6.26.0" 597 | } 598 | }, 599 | "babel-plugin-transform-es2015-unicode-regex": { 600 | "version": "6.24.1", 601 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 602 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 603 | "dev": true, 604 | "requires": { 605 | "babel-helper-regex": "6.26.0", 606 | "babel-runtime": "6.26.0", 607 | "regexpu-core": "2.0.0" 608 | } 609 | }, 610 | "babel-plugin-transform-regenerator": { 611 | "version": "6.26.0", 612 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", 613 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 614 | "dev": true, 615 | "requires": { 616 | "regenerator-transform": "0.10.1" 617 | } 618 | }, 619 | "babel-plugin-transform-strict-mode": { 620 | "version": "6.24.1", 621 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 622 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 623 | "dev": true, 624 | "requires": { 625 | "babel-runtime": "6.26.0", 626 | "babel-types": "6.26.0" 627 | } 628 | }, 629 | "babel-polyfill": { 630 | "version": "6.26.0", 631 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", 632 | "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", 633 | "dev": true, 634 | "requires": { 635 | "babel-runtime": "6.26.0", 636 | "core-js": "2.5.1", 637 | "regenerator-runtime": "0.10.5" 638 | }, 639 | "dependencies": { 640 | "regenerator-runtime": { 641 | "version": "0.10.5", 642 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", 643 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", 644 | "dev": true 645 | } 646 | } 647 | }, 648 | "babel-preset-es2015": { 649 | "version": "6.24.1", 650 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", 651 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", 652 | "dev": true, 653 | "requires": { 654 | "babel-plugin-check-es2015-constants": "6.22.0", 655 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0", 656 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", 657 | "babel-plugin-transform-es2015-block-scoping": "6.26.0", 658 | "babel-plugin-transform-es2015-classes": "6.24.1", 659 | "babel-plugin-transform-es2015-computed-properties": "6.24.1", 660 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 661 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", 662 | "babel-plugin-transform-es2015-for-of": "6.23.0", 663 | "babel-plugin-transform-es2015-function-name": "6.24.1", 664 | "babel-plugin-transform-es2015-literals": "6.22.0", 665 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 666 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 667 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", 668 | "babel-plugin-transform-es2015-modules-umd": "6.24.1", 669 | "babel-plugin-transform-es2015-object-super": "6.24.1", 670 | "babel-plugin-transform-es2015-parameters": "6.24.1", 671 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", 672 | "babel-plugin-transform-es2015-spread": "6.22.0", 673 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 674 | "babel-plugin-transform-es2015-template-literals": "6.22.0", 675 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", 676 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 677 | "babel-plugin-transform-regenerator": "6.26.0" 678 | } 679 | }, 680 | "babel-register": { 681 | "version": "6.26.0", 682 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 683 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 684 | "dev": true, 685 | "requires": { 686 | "babel-core": "6.26.0", 687 | "babel-runtime": "6.26.0", 688 | "core-js": "2.5.1", 689 | "home-or-tmp": "2.0.0", 690 | "lodash": "4.17.4", 691 | "mkdirp": "0.5.1", 692 | "source-map-support": "0.4.18" 693 | } 694 | }, 695 | "babel-runtime": { 696 | "version": "6.26.0", 697 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 698 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 699 | "dev": true, 700 | "requires": { 701 | "core-js": "2.5.1", 702 | "regenerator-runtime": "0.11.0" 703 | } 704 | }, 705 | "babel-template": { 706 | "version": "6.26.0", 707 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 708 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 709 | "dev": true, 710 | "requires": { 711 | "babel-runtime": "6.26.0", 712 | "babel-traverse": "6.26.0", 713 | "babel-types": "6.26.0", 714 | "babylon": "6.18.0", 715 | "lodash": "4.17.4" 716 | } 717 | }, 718 | "babel-traverse": { 719 | "version": "6.26.0", 720 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 721 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 722 | "dev": true, 723 | "requires": { 724 | "babel-code-frame": "6.26.0", 725 | "babel-messages": "6.23.0", 726 | "babel-runtime": "6.26.0", 727 | "babel-types": "6.26.0", 728 | "babylon": "6.18.0", 729 | "debug": "2.6.9", 730 | "globals": "9.18.0", 731 | "invariant": "2.2.2", 732 | "lodash": "4.17.4" 733 | } 734 | }, 735 | "babel-types": { 736 | "version": "6.26.0", 737 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 738 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 739 | "dev": true, 740 | "requires": { 741 | "babel-runtime": "6.26.0", 742 | "esutils": "2.0.2", 743 | "lodash": "4.17.4", 744 | "to-fast-properties": "1.0.3" 745 | } 746 | }, 747 | "babylon": { 748 | "version": "6.18.0", 749 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 750 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 751 | "dev": true 752 | }, 753 | "balanced-match": { 754 | "version": "1.0.0", 755 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 756 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 757 | "dev": true 758 | }, 759 | "bcrypt-pbkdf": { 760 | "version": "1.0.1", 761 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 762 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 763 | "dev": true, 764 | "optional": true, 765 | "requires": { 766 | "tweetnacl": "0.14.5" 767 | } 768 | }, 769 | "binary-extensions": { 770 | "version": "1.10.0", 771 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", 772 | "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", 773 | "dev": true, 774 | "optional": true 775 | }, 776 | "boom": { 777 | "version": "4.3.1", 778 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", 779 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", 780 | "dev": true, 781 | "requires": { 782 | "hoek": "4.2.0" 783 | } 784 | }, 785 | "brace-expansion": { 786 | "version": "1.1.8", 787 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 788 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 789 | "dev": true, 790 | "requires": { 791 | "balanced-match": "1.0.0", 792 | "concat-map": "0.0.1" 793 | } 794 | }, 795 | "braces": { 796 | "version": "1.8.5", 797 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 798 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 799 | "dev": true, 800 | "optional": true, 801 | "requires": { 802 | "expand-range": "1.8.2", 803 | "preserve": "0.2.0", 804 | "repeat-element": "1.1.2" 805 | } 806 | }, 807 | "camelcase": { 808 | "version": "1.2.1", 809 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 810 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 811 | "dev": true, 812 | "optional": true 813 | }, 814 | "caseless": { 815 | "version": "0.12.0", 816 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 817 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 818 | "dev": true 819 | }, 820 | "center-align": { 821 | "version": "0.1.3", 822 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 823 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 824 | "dev": true, 825 | "optional": true, 826 | "requires": { 827 | "align-text": "0.1.4", 828 | "lazy-cache": "1.0.4" 829 | } 830 | }, 831 | "chalk": { 832 | "version": "1.1.3", 833 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 834 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 835 | "dev": true, 836 | "requires": { 837 | "ansi-styles": "2.2.1", 838 | "escape-string-regexp": "1.0.5", 839 | "has-ansi": "2.0.0", 840 | "strip-ansi": "3.0.1", 841 | "supports-color": "2.0.0" 842 | }, 843 | "dependencies": { 844 | "supports-color": { 845 | "version": "2.0.0", 846 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 847 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 848 | "dev": true 849 | } 850 | } 851 | }, 852 | "chokidar": { 853 | "version": "1.7.0", 854 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 855 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 856 | "dev": true, 857 | "optional": true, 858 | "requires": { 859 | "anymatch": "1.3.2", 860 | "async-each": "1.0.1", 861 | "glob-parent": "2.0.0", 862 | "inherits": "2.0.3", 863 | "is-binary-path": "1.0.1", 864 | "is-glob": "2.0.1", 865 | "path-is-absolute": "1.0.1", 866 | "readdirp": "2.1.0" 867 | } 868 | }, 869 | "cliui": { 870 | "version": "2.1.0", 871 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 872 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 873 | "dev": true, 874 | "optional": true, 875 | "requires": { 876 | "center-align": "0.1.3", 877 | "right-align": "0.1.3", 878 | "wordwrap": "0.0.2" 879 | }, 880 | "dependencies": { 881 | "wordwrap": { 882 | "version": "0.0.2", 883 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 884 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 885 | "dev": true, 886 | "optional": true 887 | } 888 | } 889 | }, 890 | "co": { 891 | "version": "4.6.0", 892 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 893 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 894 | "dev": true 895 | }, 896 | "combined-stream": { 897 | "version": "1.0.5", 898 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 899 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 900 | "dev": true, 901 | "requires": { 902 | "delayed-stream": "1.0.0" 903 | } 904 | }, 905 | "commander": { 906 | "version": "2.11.0", 907 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 908 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 909 | "dev": true 910 | }, 911 | "concat-map": { 912 | "version": "0.0.1", 913 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 914 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 915 | "dev": true 916 | }, 917 | "consolemd": { 918 | "version": "0.1.3", 919 | "resolved": "https://registry.npmjs.org/consolemd/-/consolemd-0.1.3.tgz", 920 | "integrity": "sha512-UHKTgtvAtikE0UIvqP9Rj0b+rZ5AHIvbfL+GSjYhH2UOJWfnoIJ0+zygI/l/7cOB8p9JrGrIkC1BgQXBNzEQQA==", 921 | "dev": true, 922 | "requires": { 923 | "echomd": "0.1.2" 924 | } 925 | }, 926 | "convert-source-map": { 927 | "version": "1.5.0", 928 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 929 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", 930 | "dev": true 931 | }, 932 | "core-js": { 933 | "version": "2.5.1", 934 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", 935 | "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", 936 | "dev": true 937 | }, 938 | "core-util-is": { 939 | "version": "1.0.2", 940 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 941 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 942 | "dev": true 943 | }, 944 | "coveralls": { 945 | "version": "3.0.0", 946 | "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.0.tgz", 947 | "integrity": "sha512-ZppXR9y5PraUOrf/DzHJY6gzNUhXYE3b9D43xEXs4QYZ7/Oe0Gy0CS+IPKWFfvQFXB3RG9QduaQUFehzSpGAFw==", 948 | "dev": true, 949 | "requires": { 950 | "js-yaml": "3.10.0", 951 | "lcov-parse": "0.0.10", 952 | "log-driver": "1.2.5", 953 | "minimist": "1.2.0", 954 | "request": "2.83.0" 955 | } 956 | }, 957 | "cryptiles": { 958 | "version": "3.1.2", 959 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", 960 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", 961 | "dev": true, 962 | "requires": { 963 | "boom": "5.2.0" 964 | }, 965 | "dependencies": { 966 | "boom": { 967 | "version": "5.2.0", 968 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 969 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 970 | "dev": true, 971 | "requires": { 972 | "hoek": "4.2.0" 973 | } 974 | } 975 | } 976 | }, 977 | "dashdash": { 978 | "version": "1.14.1", 979 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 980 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 981 | "dev": true, 982 | "requires": { 983 | "assert-plus": "1.0.0" 984 | } 985 | }, 986 | "debug": { 987 | "version": "2.6.9", 988 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 989 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 990 | "dev": true, 991 | "requires": { 992 | "ms": "2.0.0" 993 | } 994 | }, 995 | "decamelize": { 996 | "version": "1.2.0", 997 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 998 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 999 | "dev": true, 1000 | "optional": true 1001 | }, 1002 | "deep-is": { 1003 | "version": "0.1.3", 1004 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1005 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1006 | "dev": true 1007 | }, 1008 | "delayed-stream": { 1009 | "version": "1.0.0", 1010 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1011 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1012 | "dev": true 1013 | }, 1014 | "detect-indent": { 1015 | "version": "4.0.0", 1016 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1017 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1018 | "dev": true, 1019 | "requires": { 1020 | "repeating": "2.0.1" 1021 | } 1022 | }, 1023 | "ecc-jsbn": { 1024 | "version": "0.1.1", 1025 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 1026 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 1027 | "dev": true, 1028 | "optional": true, 1029 | "requires": { 1030 | "jsbn": "0.1.1" 1031 | } 1032 | }, 1033 | "echomd": { 1034 | "version": "0.1.2", 1035 | "resolved": "https://registry.npmjs.org/echomd/-/echomd-0.1.2.tgz", 1036 | "integrity": "sha1-kNPPD55Fkwb0wdkKArZelxkj9v8=", 1037 | "dev": true 1038 | }, 1039 | "escape-string-regexp": { 1040 | "version": "1.0.5", 1041 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1042 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1043 | "dev": true 1044 | }, 1045 | "escodegen": { 1046 | "version": "1.8.1", 1047 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", 1048 | "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", 1049 | "dev": true, 1050 | "requires": { 1051 | "esprima": "2.7.3", 1052 | "estraverse": "1.9.3", 1053 | "esutils": "2.0.2", 1054 | "optionator": "0.8.2", 1055 | "source-map": "0.2.0" 1056 | }, 1057 | "dependencies": { 1058 | "esprima": { 1059 | "version": "2.7.3", 1060 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 1061 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 1062 | "dev": true 1063 | } 1064 | } 1065 | }, 1066 | "esprima": { 1067 | "version": "4.0.0", 1068 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1069 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1070 | "dev": true 1071 | }, 1072 | "estraverse": { 1073 | "version": "1.9.3", 1074 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", 1075 | "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", 1076 | "dev": true 1077 | }, 1078 | "esutils": { 1079 | "version": "2.0.2", 1080 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1081 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1082 | "dev": true 1083 | }, 1084 | "expand-brackets": { 1085 | "version": "0.1.5", 1086 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1087 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1088 | "dev": true, 1089 | "optional": true, 1090 | "requires": { 1091 | "is-posix-bracket": "0.1.1" 1092 | } 1093 | }, 1094 | "expand-range": { 1095 | "version": "1.8.2", 1096 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1097 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1098 | "dev": true, 1099 | "optional": true, 1100 | "requires": { 1101 | "fill-range": "2.2.3" 1102 | } 1103 | }, 1104 | "extend": { 1105 | "version": "3.0.1", 1106 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1107 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 1108 | "dev": true 1109 | }, 1110 | "extglob": { 1111 | "version": "0.3.2", 1112 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1113 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1114 | "dev": true, 1115 | "optional": true, 1116 | "requires": { 1117 | "is-extglob": "1.0.0" 1118 | } 1119 | }, 1120 | "extsprintf": { 1121 | "version": "1.3.0", 1122 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1123 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1124 | "dev": true 1125 | }, 1126 | "fast-deep-equal": { 1127 | "version": "1.0.0", 1128 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 1129 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", 1130 | "dev": true 1131 | }, 1132 | "fast-levenshtein": { 1133 | "version": "2.0.6", 1134 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1135 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1136 | "dev": true 1137 | }, 1138 | "filename-regex": { 1139 | "version": "2.0.1", 1140 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1141 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1142 | "dev": true, 1143 | "optional": true 1144 | }, 1145 | "fill-range": { 1146 | "version": "2.2.3", 1147 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1148 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1149 | "dev": true, 1150 | "optional": true, 1151 | "requires": { 1152 | "is-number": "2.1.0", 1153 | "isobject": "2.1.0", 1154 | "randomatic": "1.1.7", 1155 | "repeat-element": "1.1.2", 1156 | "repeat-string": "1.6.1" 1157 | } 1158 | }, 1159 | "for-in": { 1160 | "version": "1.0.2", 1161 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1162 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1163 | "dev": true, 1164 | "optional": true 1165 | }, 1166 | "for-own": { 1167 | "version": "0.1.5", 1168 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1169 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1170 | "dev": true, 1171 | "optional": true, 1172 | "requires": { 1173 | "for-in": "1.0.2" 1174 | } 1175 | }, 1176 | "forever-agent": { 1177 | "version": "0.6.1", 1178 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1179 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1180 | "dev": true 1181 | }, 1182 | "form-data": { 1183 | "version": "2.3.1", 1184 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", 1185 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", 1186 | "dev": true, 1187 | "requires": { 1188 | "asynckit": "0.4.0", 1189 | "combined-stream": "1.0.5", 1190 | "mime-types": "2.1.17" 1191 | } 1192 | }, 1193 | "fs-readdir-recursive": { 1194 | "version": "1.0.0", 1195 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", 1196 | "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=", 1197 | "dev": true 1198 | }, 1199 | "fs.realpath": { 1200 | "version": "1.0.0", 1201 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1202 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1203 | "dev": true 1204 | }, 1205 | "getpass": { 1206 | "version": "0.1.7", 1207 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1208 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1209 | "dev": true, 1210 | "requires": { 1211 | "assert-plus": "1.0.0" 1212 | } 1213 | }, 1214 | "glob": { 1215 | "version": "5.0.15", 1216 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", 1217 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 1218 | "dev": true, 1219 | "requires": { 1220 | "inflight": "1.0.6", 1221 | "inherits": "2.0.3", 1222 | "minimatch": "3.0.4", 1223 | "once": "1.4.0", 1224 | "path-is-absolute": "1.0.1" 1225 | } 1226 | }, 1227 | "glob-base": { 1228 | "version": "0.3.0", 1229 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1230 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1231 | "dev": true, 1232 | "optional": true, 1233 | "requires": { 1234 | "glob-parent": "2.0.0", 1235 | "is-glob": "2.0.1" 1236 | } 1237 | }, 1238 | "glob-parent": { 1239 | "version": "2.0.0", 1240 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1241 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1242 | "dev": true, 1243 | "requires": { 1244 | "is-glob": "2.0.1" 1245 | } 1246 | }, 1247 | "globals": { 1248 | "version": "9.18.0", 1249 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1250 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 1251 | "dev": true 1252 | }, 1253 | "graceful-fs": { 1254 | "version": "4.1.11", 1255 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1256 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1257 | "dev": true 1258 | }, 1259 | "handlebars": { 1260 | "version": "4.0.10", 1261 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", 1262 | "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", 1263 | "dev": true, 1264 | "requires": { 1265 | "async": "1.5.2", 1266 | "optimist": "0.6.1", 1267 | "source-map": "0.4.4", 1268 | "uglify-js": "2.8.29" 1269 | }, 1270 | "dependencies": { 1271 | "source-map": { 1272 | "version": "0.4.4", 1273 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1274 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1275 | "dev": true, 1276 | "requires": { 1277 | "amdefine": "1.0.1" 1278 | } 1279 | }, 1280 | "uglify-js": { 1281 | "version": "2.8.29", 1282 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 1283 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 1284 | "dev": true, 1285 | "optional": true, 1286 | "requires": { 1287 | "source-map": "0.5.7", 1288 | "uglify-to-browserify": "1.0.2", 1289 | "yargs": "3.10.0" 1290 | }, 1291 | "dependencies": { 1292 | "source-map": { 1293 | "version": "0.5.7", 1294 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1295 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1296 | "dev": true, 1297 | "optional": true 1298 | } 1299 | } 1300 | } 1301 | } 1302 | }, 1303 | "har-schema": { 1304 | "version": "2.0.0", 1305 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1306 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 1307 | "dev": true 1308 | }, 1309 | "har-validator": { 1310 | "version": "5.0.3", 1311 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", 1312 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", 1313 | "dev": true, 1314 | "requires": { 1315 | "ajv": "5.2.3", 1316 | "har-schema": "2.0.0" 1317 | } 1318 | }, 1319 | "has-ansi": { 1320 | "version": "2.0.0", 1321 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1322 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1323 | "dev": true, 1324 | "requires": { 1325 | "ansi-regex": "2.1.1" 1326 | } 1327 | }, 1328 | "has-flag": { 1329 | "version": "1.0.0", 1330 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 1331 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 1332 | "dev": true 1333 | }, 1334 | "hawk": { 1335 | "version": "6.0.2", 1336 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", 1337 | "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", 1338 | "dev": true, 1339 | "requires": { 1340 | "boom": "4.3.1", 1341 | "cryptiles": "3.1.2", 1342 | "hoek": "4.2.0", 1343 | "sntp": "2.0.2" 1344 | } 1345 | }, 1346 | "hoek": { 1347 | "version": "4.2.0", 1348 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", 1349 | "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", 1350 | "dev": true 1351 | }, 1352 | "home-or-tmp": { 1353 | "version": "2.0.0", 1354 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 1355 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 1356 | "dev": true, 1357 | "requires": { 1358 | "os-homedir": "1.0.2", 1359 | "os-tmpdir": "1.0.2" 1360 | } 1361 | }, 1362 | "http-signature": { 1363 | "version": "1.2.0", 1364 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1365 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1366 | "dev": true, 1367 | "requires": { 1368 | "assert-plus": "1.0.0", 1369 | "jsprim": "1.4.1", 1370 | "sshpk": "1.13.1" 1371 | } 1372 | }, 1373 | "inflight": { 1374 | "version": "1.0.6", 1375 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1376 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1377 | "dev": true, 1378 | "requires": { 1379 | "once": "1.4.0", 1380 | "wrappy": "1.0.2" 1381 | } 1382 | }, 1383 | "inherits": { 1384 | "version": "2.0.3", 1385 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1386 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1387 | "dev": true 1388 | }, 1389 | "invariant": { 1390 | "version": "2.2.2", 1391 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 1392 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 1393 | "dev": true, 1394 | "requires": { 1395 | "loose-envify": "1.3.1" 1396 | } 1397 | }, 1398 | "is-binary-path": { 1399 | "version": "1.0.1", 1400 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 1401 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 1402 | "dev": true, 1403 | "optional": true, 1404 | "requires": { 1405 | "binary-extensions": "1.10.0" 1406 | } 1407 | }, 1408 | "is-buffer": { 1409 | "version": "1.1.5", 1410 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 1411 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 1412 | "dev": true 1413 | }, 1414 | "is-dotfile": { 1415 | "version": "1.0.3", 1416 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1417 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 1418 | "dev": true, 1419 | "optional": true 1420 | }, 1421 | "is-equal-shallow": { 1422 | "version": "0.1.3", 1423 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 1424 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1425 | "dev": true, 1426 | "optional": true, 1427 | "requires": { 1428 | "is-primitive": "2.0.0" 1429 | } 1430 | }, 1431 | "is-extendable": { 1432 | "version": "0.1.1", 1433 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1434 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 1435 | "dev": true, 1436 | "optional": true 1437 | }, 1438 | "is-extglob": { 1439 | "version": "1.0.0", 1440 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1441 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 1442 | "dev": true 1443 | }, 1444 | "is-finite": { 1445 | "version": "1.0.2", 1446 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1447 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1448 | "dev": true, 1449 | "requires": { 1450 | "number-is-nan": "1.0.1" 1451 | } 1452 | }, 1453 | "is-glob": { 1454 | "version": "2.0.1", 1455 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 1456 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1457 | "dev": true, 1458 | "requires": { 1459 | "is-extglob": "1.0.0" 1460 | } 1461 | }, 1462 | "is-number": { 1463 | "version": "2.1.0", 1464 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 1465 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1466 | "dev": true, 1467 | "optional": true, 1468 | "requires": { 1469 | "kind-of": "3.2.2" 1470 | } 1471 | }, 1472 | "is-posix-bracket": { 1473 | "version": "0.1.1", 1474 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 1475 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 1476 | "dev": true, 1477 | "optional": true 1478 | }, 1479 | "is-primitive": { 1480 | "version": "2.0.0", 1481 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 1482 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 1483 | "dev": true, 1484 | "optional": true 1485 | }, 1486 | "is-typedarray": { 1487 | "version": "1.0.0", 1488 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1489 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1490 | "dev": true 1491 | }, 1492 | "isarray": { 1493 | "version": "1.0.0", 1494 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1495 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1496 | "dev": true 1497 | }, 1498 | "isexe": { 1499 | "version": "2.0.0", 1500 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1501 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1502 | "dev": true 1503 | }, 1504 | "isobject": { 1505 | "version": "2.1.0", 1506 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 1507 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 1508 | "dev": true, 1509 | "optional": true, 1510 | "requires": { 1511 | "isarray": "1.0.0" 1512 | } 1513 | }, 1514 | "isstream": { 1515 | "version": "0.1.2", 1516 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1517 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1518 | "dev": true 1519 | }, 1520 | "istanbul": { 1521 | "version": "0.4.5", 1522 | "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", 1523 | "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", 1524 | "dev": true, 1525 | "requires": { 1526 | "abbrev": "1.0.9", 1527 | "async": "1.5.2", 1528 | "escodegen": "1.8.1", 1529 | "esprima": "2.7.3", 1530 | "glob": "5.0.15", 1531 | "handlebars": "4.0.10", 1532 | "js-yaml": "3.10.0", 1533 | "mkdirp": "0.5.1", 1534 | "nopt": "3.0.6", 1535 | "once": "1.4.0", 1536 | "resolve": "1.1.7", 1537 | "supports-color": "3.2.3", 1538 | "which": "1.3.0", 1539 | "wordwrap": "1.0.0" 1540 | }, 1541 | "dependencies": { 1542 | "esprima": { 1543 | "version": "2.7.3", 1544 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 1545 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 1546 | "dev": true 1547 | } 1548 | } 1549 | }, 1550 | "js-tokens": { 1551 | "version": "3.0.2", 1552 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1553 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1554 | "dev": true 1555 | }, 1556 | "js-yaml": { 1557 | "version": "3.10.0", 1558 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", 1559 | "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", 1560 | "dev": true, 1561 | "requires": { 1562 | "argparse": "1.0.9", 1563 | "esprima": "4.0.0" 1564 | } 1565 | }, 1566 | "jsbn": { 1567 | "version": "0.1.1", 1568 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1569 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1570 | "dev": true, 1571 | "optional": true 1572 | }, 1573 | "jsesc": { 1574 | "version": "1.3.0", 1575 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 1576 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 1577 | "dev": true 1578 | }, 1579 | "json-schema": { 1580 | "version": "0.2.3", 1581 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1582 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 1583 | "dev": true 1584 | }, 1585 | "json-schema-traverse": { 1586 | "version": "0.3.1", 1587 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1588 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 1589 | "dev": true 1590 | }, 1591 | "json-stable-stringify": { 1592 | "version": "1.0.1", 1593 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 1594 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1595 | "dev": true, 1596 | "requires": { 1597 | "jsonify": "0.0.0" 1598 | } 1599 | }, 1600 | "json-stringify-safe": { 1601 | "version": "5.0.1", 1602 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1603 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1604 | "dev": true 1605 | }, 1606 | "json5": { 1607 | "version": "0.5.1", 1608 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1609 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 1610 | "dev": true 1611 | }, 1612 | "jsonify": { 1613 | "version": "0.0.0", 1614 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 1615 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 1616 | "dev": true 1617 | }, 1618 | "jsprim": { 1619 | "version": "1.4.1", 1620 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1621 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1622 | "dev": true, 1623 | "requires": { 1624 | "assert-plus": "1.0.0", 1625 | "extsprintf": "1.3.0", 1626 | "json-schema": "0.2.3", 1627 | "verror": "1.10.0" 1628 | } 1629 | }, 1630 | "kind-of": { 1631 | "version": "3.2.2", 1632 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1633 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1634 | "dev": true, 1635 | "requires": { 1636 | "is-buffer": "1.1.5" 1637 | } 1638 | }, 1639 | "lazy-cache": { 1640 | "version": "1.0.4", 1641 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 1642 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 1643 | "dev": true, 1644 | "optional": true 1645 | }, 1646 | "lcov-parse": { 1647 | "version": "0.0.10", 1648 | "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", 1649 | "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", 1650 | "dev": true 1651 | }, 1652 | "levn": { 1653 | "version": "0.3.0", 1654 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1655 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1656 | "dev": true, 1657 | "requires": { 1658 | "prelude-ls": "1.1.2", 1659 | "type-check": "0.3.2" 1660 | } 1661 | }, 1662 | "lodash": { 1663 | "version": "4.17.4", 1664 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1665 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 1666 | "dev": true 1667 | }, 1668 | "log-driver": { 1669 | "version": "1.2.5", 1670 | "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", 1671 | "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", 1672 | "dev": true 1673 | }, 1674 | "longest": { 1675 | "version": "1.0.1", 1676 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 1677 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 1678 | "dev": true 1679 | }, 1680 | "loose-envify": { 1681 | "version": "1.3.1", 1682 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 1683 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 1684 | "dev": true, 1685 | "requires": { 1686 | "js-tokens": "3.0.2" 1687 | } 1688 | }, 1689 | "micromatch": { 1690 | "version": "2.3.11", 1691 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 1692 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1693 | "dev": true, 1694 | "optional": true, 1695 | "requires": { 1696 | "arr-diff": "2.0.0", 1697 | "array-unique": "0.2.1", 1698 | "braces": "1.8.5", 1699 | "expand-brackets": "0.1.5", 1700 | "extglob": "0.3.2", 1701 | "filename-regex": "2.0.1", 1702 | "is-extglob": "1.0.0", 1703 | "is-glob": "2.0.1", 1704 | "kind-of": "3.2.2", 1705 | "normalize-path": "2.1.1", 1706 | "object.omit": "2.0.1", 1707 | "parse-glob": "3.0.4", 1708 | "regex-cache": "0.4.4" 1709 | } 1710 | }, 1711 | "mime-db": { 1712 | "version": "1.30.0", 1713 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 1714 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", 1715 | "dev": true 1716 | }, 1717 | "mime-types": { 1718 | "version": "2.1.17", 1719 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 1720 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 1721 | "dev": true, 1722 | "requires": { 1723 | "mime-db": "1.30.0" 1724 | } 1725 | }, 1726 | "minimatch": { 1727 | "version": "3.0.4", 1728 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1729 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1730 | "dev": true, 1731 | "requires": { 1732 | "brace-expansion": "1.1.8" 1733 | } 1734 | }, 1735 | "minimist": { 1736 | "version": "1.2.0", 1737 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1738 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 1739 | "dev": true 1740 | }, 1741 | "mkdirp": { 1742 | "version": "0.5.1", 1743 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1744 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1745 | "dev": true, 1746 | "requires": { 1747 | "minimist": "0.0.8" 1748 | }, 1749 | "dependencies": { 1750 | "minimist": { 1751 | "version": "0.0.8", 1752 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1753 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1754 | "dev": true 1755 | } 1756 | } 1757 | }, 1758 | "ms": { 1759 | "version": "2.0.0", 1760 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1761 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1762 | "dev": true 1763 | }, 1764 | "nopt": { 1765 | "version": "3.0.6", 1766 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 1767 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 1768 | "dev": true, 1769 | "requires": { 1770 | "abbrev": "1.0.9" 1771 | } 1772 | }, 1773 | "normalize-path": { 1774 | "version": "2.1.1", 1775 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 1776 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1777 | "dev": true, 1778 | "requires": { 1779 | "remove-trailing-separator": "1.1.0" 1780 | } 1781 | }, 1782 | "number-is-nan": { 1783 | "version": "1.0.1", 1784 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1785 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1786 | "dev": true 1787 | }, 1788 | "oauth-sign": { 1789 | "version": "0.8.2", 1790 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 1791 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 1792 | "dev": true 1793 | }, 1794 | "object-assign": { 1795 | "version": "4.1.1", 1796 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1797 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1798 | "dev": true 1799 | }, 1800 | "object.omit": { 1801 | "version": "2.0.1", 1802 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 1803 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1804 | "dev": true, 1805 | "optional": true, 1806 | "requires": { 1807 | "for-own": "0.1.5", 1808 | "is-extendable": "0.1.1" 1809 | } 1810 | }, 1811 | "once": { 1812 | "version": "1.4.0", 1813 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1814 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1815 | "dev": true, 1816 | "requires": { 1817 | "wrappy": "1.0.2" 1818 | } 1819 | }, 1820 | "optimist": { 1821 | "version": "0.6.1", 1822 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 1823 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 1824 | "dev": true, 1825 | "requires": { 1826 | "minimist": "0.0.10", 1827 | "wordwrap": "0.0.3" 1828 | }, 1829 | "dependencies": { 1830 | "minimist": { 1831 | "version": "0.0.10", 1832 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 1833 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 1834 | "dev": true 1835 | }, 1836 | "wordwrap": { 1837 | "version": "0.0.3", 1838 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 1839 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 1840 | "dev": true 1841 | } 1842 | } 1843 | }, 1844 | "optionator": { 1845 | "version": "0.8.2", 1846 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 1847 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 1848 | "dev": true, 1849 | "requires": { 1850 | "deep-is": "0.1.3", 1851 | "fast-levenshtein": "2.0.6", 1852 | "levn": "0.3.0", 1853 | "prelude-ls": "1.1.2", 1854 | "type-check": "0.3.2", 1855 | "wordwrap": "1.0.0" 1856 | } 1857 | }, 1858 | "os-homedir": { 1859 | "version": "1.0.2", 1860 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1861 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1862 | "dev": true 1863 | }, 1864 | "os-tmpdir": { 1865 | "version": "1.0.2", 1866 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1867 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1868 | "dev": true 1869 | }, 1870 | "output-file-sync": { 1871 | "version": "1.1.2", 1872 | "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", 1873 | "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", 1874 | "dev": true, 1875 | "requires": { 1876 | "graceful-fs": "4.1.11", 1877 | "mkdirp": "0.5.1", 1878 | "object-assign": "4.1.1" 1879 | } 1880 | }, 1881 | "parse-glob": { 1882 | "version": "3.0.4", 1883 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 1884 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1885 | "dev": true, 1886 | "optional": true, 1887 | "requires": { 1888 | "glob-base": "0.3.0", 1889 | "is-dotfile": "1.0.3", 1890 | "is-extglob": "1.0.0", 1891 | "is-glob": "2.0.1" 1892 | } 1893 | }, 1894 | "path-is-absolute": { 1895 | "version": "1.0.1", 1896 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1897 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1898 | "dev": true 1899 | }, 1900 | "performance-now": { 1901 | "version": "2.1.0", 1902 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1903 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 1904 | "dev": true 1905 | }, 1906 | "prelude-ls": { 1907 | "version": "1.1.2", 1908 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1909 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1910 | "dev": true 1911 | }, 1912 | "preserve": { 1913 | "version": "0.2.0", 1914 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 1915 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 1916 | "dev": true, 1917 | "optional": true 1918 | }, 1919 | "private": { 1920 | "version": "0.1.7", 1921 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", 1922 | "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", 1923 | "dev": true 1924 | }, 1925 | "process-nextick-args": { 1926 | "version": "1.0.7", 1927 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1928 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 1929 | "dev": true, 1930 | "optional": true 1931 | }, 1932 | "punycode": { 1933 | "version": "1.4.1", 1934 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1935 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1936 | "dev": true 1937 | }, 1938 | "qs": { 1939 | "version": "6.5.1", 1940 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 1941 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", 1942 | "dev": true 1943 | }, 1944 | "randomatic": { 1945 | "version": "1.1.7", 1946 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 1947 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 1948 | "dev": true, 1949 | "optional": true, 1950 | "requires": { 1951 | "is-number": "3.0.0", 1952 | "kind-of": "4.0.0" 1953 | }, 1954 | "dependencies": { 1955 | "is-number": { 1956 | "version": "3.0.0", 1957 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 1958 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 1959 | "dev": true, 1960 | "optional": true, 1961 | "requires": { 1962 | "kind-of": "3.2.2" 1963 | }, 1964 | "dependencies": { 1965 | "kind-of": { 1966 | "version": "3.2.2", 1967 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1968 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1969 | "dev": true, 1970 | "optional": true, 1971 | "requires": { 1972 | "is-buffer": "1.1.5" 1973 | } 1974 | } 1975 | } 1976 | }, 1977 | "kind-of": { 1978 | "version": "4.0.0", 1979 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 1980 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 1981 | "dev": true, 1982 | "optional": true, 1983 | "requires": { 1984 | "is-buffer": "1.1.5" 1985 | } 1986 | } 1987 | } 1988 | }, 1989 | "readable-stream": { 1990 | "version": "2.3.3", 1991 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 1992 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 1993 | "dev": true, 1994 | "optional": true, 1995 | "requires": { 1996 | "core-util-is": "1.0.2", 1997 | "inherits": "2.0.3", 1998 | "isarray": "1.0.0", 1999 | "process-nextick-args": "1.0.7", 2000 | "safe-buffer": "5.1.1", 2001 | "string_decoder": "1.0.3", 2002 | "util-deprecate": "1.0.2" 2003 | } 2004 | }, 2005 | "readdirp": { 2006 | "version": "2.1.0", 2007 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 2008 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 2009 | "dev": true, 2010 | "optional": true, 2011 | "requires": { 2012 | "graceful-fs": "4.1.11", 2013 | "minimatch": "3.0.4", 2014 | "readable-stream": "2.3.3", 2015 | "set-immediate-shim": "1.0.1" 2016 | } 2017 | }, 2018 | "regenerate": { 2019 | "version": "1.3.3", 2020 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", 2021 | "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", 2022 | "dev": true 2023 | }, 2024 | "regenerator-runtime": { 2025 | "version": "0.11.0", 2026 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 2027 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", 2028 | "dev": true 2029 | }, 2030 | "regenerator-transform": { 2031 | "version": "0.10.1", 2032 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", 2033 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", 2034 | "dev": true, 2035 | "requires": { 2036 | "babel-runtime": "6.26.0", 2037 | "babel-types": "6.26.0", 2038 | "private": "0.1.7" 2039 | } 2040 | }, 2041 | "regex-cache": { 2042 | "version": "0.4.4", 2043 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 2044 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 2045 | "dev": true, 2046 | "optional": true, 2047 | "requires": { 2048 | "is-equal-shallow": "0.1.3" 2049 | } 2050 | }, 2051 | "regexpu-core": { 2052 | "version": "2.0.0", 2053 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 2054 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 2055 | "dev": true, 2056 | "requires": { 2057 | "regenerate": "1.3.3", 2058 | "regjsgen": "0.2.0", 2059 | "regjsparser": "0.1.5" 2060 | } 2061 | }, 2062 | "regjsgen": { 2063 | "version": "0.2.0", 2064 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 2065 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 2066 | "dev": true 2067 | }, 2068 | "regjsparser": { 2069 | "version": "0.1.5", 2070 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 2071 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 2072 | "dev": true, 2073 | "requires": { 2074 | "jsesc": "0.5.0" 2075 | }, 2076 | "dependencies": { 2077 | "jsesc": { 2078 | "version": "0.5.0", 2079 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2080 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 2081 | "dev": true 2082 | } 2083 | } 2084 | }, 2085 | "remove-trailing-separator": { 2086 | "version": "1.1.0", 2087 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 2088 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 2089 | "dev": true 2090 | }, 2091 | "repeat-element": { 2092 | "version": "1.1.2", 2093 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 2094 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 2095 | "dev": true 2096 | }, 2097 | "repeat-string": { 2098 | "version": "1.6.1", 2099 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 2100 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 2101 | "dev": true 2102 | }, 2103 | "repeating": { 2104 | "version": "2.0.1", 2105 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 2106 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 2107 | "dev": true, 2108 | "requires": { 2109 | "is-finite": "1.0.2" 2110 | } 2111 | }, 2112 | "request": { 2113 | "version": "2.83.0", 2114 | "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", 2115 | "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", 2116 | "dev": true, 2117 | "requires": { 2118 | "aws-sign2": "0.7.0", 2119 | "aws4": "1.6.0", 2120 | "caseless": "0.12.0", 2121 | "combined-stream": "1.0.5", 2122 | "extend": "3.0.1", 2123 | "forever-agent": "0.6.1", 2124 | "form-data": "2.3.1", 2125 | "har-validator": "5.0.3", 2126 | "hawk": "6.0.2", 2127 | "http-signature": "1.2.0", 2128 | "is-typedarray": "1.0.0", 2129 | "isstream": "0.1.2", 2130 | "json-stringify-safe": "5.0.1", 2131 | "mime-types": "2.1.17", 2132 | "oauth-sign": "0.8.2", 2133 | "performance-now": "2.1.0", 2134 | "qs": "6.5.1", 2135 | "safe-buffer": "5.1.1", 2136 | "stringstream": "0.0.5", 2137 | "tough-cookie": "2.3.3", 2138 | "tunnel-agent": "0.6.0", 2139 | "uuid": "3.1.0" 2140 | } 2141 | }, 2142 | "resolve": { 2143 | "version": "1.1.7", 2144 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 2145 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 2146 | "dev": true 2147 | }, 2148 | "right-align": { 2149 | "version": "0.1.3", 2150 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 2151 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 2152 | "dev": true, 2153 | "optional": true, 2154 | "requires": { 2155 | "align-text": "0.1.4" 2156 | } 2157 | }, 2158 | "safe-buffer": { 2159 | "version": "5.1.1", 2160 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2161 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 2162 | "dev": true 2163 | }, 2164 | "set-immediate-shim": { 2165 | "version": "1.0.1", 2166 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 2167 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 2168 | "dev": true, 2169 | "optional": true 2170 | }, 2171 | "slash": { 2172 | "version": "1.0.0", 2173 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 2174 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 2175 | "dev": true 2176 | }, 2177 | "sntp": { 2178 | "version": "2.0.2", 2179 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", 2180 | "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", 2181 | "dev": true, 2182 | "requires": { 2183 | "hoek": "4.2.0" 2184 | } 2185 | }, 2186 | "source-map": { 2187 | "version": "0.2.0", 2188 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", 2189 | "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", 2190 | "dev": true, 2191 | "optional": true, 2192 | "requires": { 2193 | "amdefine": "1.0.1" 2194 | } 2195 | }, 2196 | "source-map-support": { 2197 | "version": "0.4.18", 2198 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 2199 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 2200 | "dev": true, 2201 | "requires": { 2202 | "source-map": "0.5.7" 2203 | }, 2204 | "dependencies": { 2205 | "source-map": { 2206 | "version": "0.5.7", 2207 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2208 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2209 | "dev": true 2210 | } 2211 | } 2212 | }, 2213 | "sprintf-js": { 2214 | "version": "1.0.3", 2215 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2216 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2217 | "dev": true 2218 | }, 2219 | "sshpk": { 2220 | "version": "1.13.1", 2221 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 2222 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 2223 | "dev": true, 2224 | "requires": { 2225 | "asn1": "0.2.3", 2226 | "assert-plus": "1.0.0", 2227 | "bcrypt-pbkdf": "1.0.1", 2228 | "dashdash": "1.14.1", 2229 | "ecc-jsbn": "0.1.1", 2230 | "getpass": "0.1.7", 2231 | "jsbn": "0.1.1", 2232 | "tweetnacl": "0.14.5" 2233 | } 2234 | }, 2235 | "string_decoder": { 2236 | "version": "1.0.3", 2237 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2238 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2239 | "dev": true, 2240 | "optional": true, 2241 | "requires": { 2242 | "safe-buffer": "5.1.1" 2243 | } 2244 | }, 2245 | "stringstream": { 2246 | "version": "0.0.5", 2247 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 2248 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 2249 | "dev": true 2250 | }, 2251 | "strip-ansi": { 2252 | "version": "3.0.1", 2253 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2254 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2255 | "dev": true, 2256 | "requires": { 2257 | "ansi-regex": "2.1.1" 2258 | } 2259 | }, 2260 | "supports-color": { 2261 | "version": "3.2.3", 2262 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 2263 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 2264 | "dev": true, 2265 | "requires": { 2266 | "has-flag": "1.0.0" 2267 | } 2268 | }, 2269 | "to-fast-properties": { 2270 | "version": "1.0.3", 2271 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 2272 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 2273 | "dev": true 2274 | }, 2275 | "tough-cookie": { 2276 | "version": "2.3.3", 2277 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", 2278 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", 2279 | "dev": true, 2280 | "requires": { 2281 | "punycode": "1.4.1" 2282 | } 2283 | }, 2284 | "tressa": { 2285 | "version": "0.3.1", 2286 | "resolved": "https://registry.npmjs.org/tressa/-/tressa-0.3.1.tgz", 2287 | "integrity": "sha1-OhdV5a7cQ0+tmntp0EGrztdJatI=", 2288 | "dev": true, 2289 | "requires": { 2290 | "consolemd": "0.1.3" 2291 | } 2292 | }, 2293 | "trim-right": { 2294 | "version": "1.0.1", 2295 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 2296 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 2297 | "dev": true 2298 | }, 2299 | "tunnel-agent": { 2300 | "version": "0.6.0", 2301 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2302 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2303 | "dev": true, 2304 | "requires": { 2305 | "safe-buffer": "5.1.1" 2306 | } 2307 | }, 2308 | "tweetnacl": { 2309 | "version": "0.14.5", 2310 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2311 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2312 | "dev": true, 2313 | "optional": true 2314 | }, 2315 | "type-check": { 2316 | "version": "0.3.2", 2317 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2318 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2319 | "dev": true, 2320 | "requires": { 2321 | "prelude-ls": "1.1.2" 2322 | } 2323 | }, 2324 | "uglify-js": { 2325 | "version": "3.1.3", 2326 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.3.tgz", 2327 | "integrity": "sha512-5ZUOgufCHjN2mBBLfz63UtWTP6va2sSzBpNCM+/iqI6RnPzEhANmB0EKiKBYdQbc3v7KeomXJ2DJx0Xq9gvUvA==", 2328 | "dev": true, 2329 | "requires": { 2330 | "commander": "2.11.0", 2331 | "source-map": "0.5.7" 2332 | }, 2333 | "dependencies": { 2334 | "source-map": { 2335 | "version": "0.5.7", 2336 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2337 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2338 | "dev": true 2339 | } 2340 | } 2341 | }, 2342 | "uglify-to-browserify": { 2343 | "version": "1.0.2", 2344 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 2345 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 2346 | "dev": true, 2347 | "optional": true 2348 | }, 2349 | "user-home": { 2350 | "version": "1.1.1", 2351 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", 2352 | "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", 2353 | "dev": true 2354 | }, 2355 | "util-deprecate": { 2356 | "version": "1.0.2", 2357 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2358 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2359 | "dev": true, 2360 | "optional": true 2361 | }, 2362 | "uuid": { 2363 | "version": "3.1.0", 2364 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 2365 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 2366 | "dev": true 2367 | }, 2368 | "v8flags": { 2369 | "version": "2.1.1", 2370 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", 2371 | "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", 2372 | "dev": true, 2373 | "requires": { 2374 | "user-home": "1.1.1" 2375 | } 2376 | }, 2377 | "verror": { 2378 | "version": "1.10.0", 2379 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2380 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2381 | "dev": true, 2382 | "requires": { 2383 | "assert-plus": "1.0.0", 2384 | "core-util-is": "1.0.2", 2385 | "extsprintf": "1.3.0" 2386 | } 2387 | }, 2388 | "which": { 2389 | "version": "1.3.0", 2390 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 2391 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 2392 | "dev": true, 2393 | "requires": { 2394 | "isexe": "2.0.0" 2395 | } 2396 | }, 2397 | "window-size": { 2398 | "version": "0.1.0", 2399 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 2400 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 2401 | "dev": true, 2402 | "optional": true 2403 | }, 2404 | "wordwrap": { 2405 | "version": "1.0.0", 2406 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2407 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 2408 | "dev": true 2409 | }, 2410 | "wrappy": { 2411 | "version": "1.0.2", 2412 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2413 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2414 | "dev": true 2415 | }, 2416 | "yargs": { 2417 | "version": "3.10.0", 2418 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 2419 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 2420 | "dev": true, 2421 | "optional": true, 2422 | "requires": { 2423 | "camelcase": "1.2.1", 2424 | "cliui": "2.1.0", 2425 | "decamelize": "1.2.0", 2426 | "window-size": "0.1.0" 2427 | } 2428 | } 2429 | } 2430 | } 2431 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "poorlyfills", 3 | "version": "0.1.2", 4 | "description": "coming soon", 5 | "unpkg": "min.js", 6 | "main": "index.js", 7 | "scripts": { 8 | "coveralls": "cat ./coverage/lcov.info | coveralls", 9 | "build": "npm run test && npm run _es5 && npm run _fixb && npm run _minify && npm run _clean && npm run size", 10 | "size": "cat index.js | wc -c;cat min.js | wc -c;gzip -c min.js | wc -c", 11 | "test": "node test/c.js && istanbul cover test/test.c.js", 12 | "_clean": "rm test/test.c.js && rm index.{b,c}.js", 13 | "_es5": "babel ./index.c.js --out-file ./index.b.js --presets=es2015", 14 | "_fixb": "sed -i 's/(undefined)/(this)/' ./index.b.js", 15 | "_minify": "uglifyjs ./index.b.js --comments=/^!/ --compress --mangle -o min.js" 16 | }, 17 | "author": "Andrea Giammarchi", 18 | "license": "ISC", 19 | "keywords": [ 20 | "Map", 21 | "Set", 22 | "WeakMap", 23 | "WeakSet", 24 | "polyfill", 25 | "basic", 26 | "simple", 27 | "poor" 28 | ], 29 | "devDependencies": { 30 | "babel-cli": "^6.26.0", 31 | "babel-preset-es2015": "^6.24.1", 32 | "coveralls": "^3.0.0", 33 | "istanbul": "^0.4.5", 34 | "tressa": "^0.3.1", 35 | "uglify-js": "^3.1.3" 36 | }, 37 | "directories": { 38 | "test": "test" 39 | }, 40 | "dependencies": {}, 41 | "repository": { 42 | "type": "git", 43 | "url": "git+https://github.com/WebReflection/poorlyfills.git" 44 | }, 45 | "bugs": { 46 | "url": "https://github.com/WebReflection/poorlyfills/issues" 47 | }, 48 | "homepage": "https://github.com/WebReflection/poorlyfills#readme" 49 | } 50 | -------------------------------------------------------------------------------- /test/c.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | // the module has to be outside the test folder 5 | fs.writeFileSync( 6 | path.join(__dirname, '..', 'index.c.js'), 7 | '((window)=>{\n' + 8 | fs.readFileSync( 9 | path.join(__dirname, '..', 'index.js') 10 | ).toString() 11 | .replace(/export const /g, 'window.') 12 | .replace(/new ([A-Za-z]+)/g, 'new window.$1') + 13 | '\n})(this);' 14 | ); 15 | 16 | // the test needs to require tressa and the module 17 | fs.writeFileSync( 18 | path.join(__dirname, 'test.c.js'), 19 | "const tressa = require('tressa');\n" + 20 | "const {Map, Set, WeakMap, WeakSet} = require('../index.c.js');\n\n" + 21 | fs.readFileSync( 22 | path.join(__dirname, 'test.js') 23 | ).toString() 24 | ); -------------------------------------------------------------------------------- /test/ie/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | tressa.log('# ES6 collections poorlyfills'); 2 | tressa.assert( 3 | typeof Map === 'function' && 4 | typeof Map === typeof Set && 5 | typeof WeakMap === typeof WeakSet && 6 | typeof Map === typeof WeakMap, 7 | 'all functions' 8 | ); 9 | tressa.assert(!/native/.test(WeakSet), 'testing poorlyfill'); 10 | 11 | tressa.log('## Map'); 12 | const m = new Map; 13 | tressa.assert(m.has(Math) === false, 'empty map has no keys'); 14 | tressa.assert(m.get(Math) === undefined, 'no key, no value'); 15 | tressa.assert(m.set(Math, String) === m, 'set returns the map'); 16 | tressa.assert(m.has(Math) === true, 'added key is available'); 17 | tressa.assert(m.get(Math) === String, 'if key, then value'); 18 | m.set(Math, Object); 19 | tressa.assert(m.get(Math) === Object, 'overwrite key'); 20 | tressa.assert(m.size === 1, 'correct size'); 21 | for(let key of m.keys()) 22 | tressa.assert(key === Math, 'correct key'); 23 | for(let value of m.values()) 24 | tressa.assert(value === Object, 'correct value'); 25 | for(let entry of m.entries()) 26 | tressa.assert(entry[0] === Math && entry[1] === Object, 'correct entries'); 27 | m.forEach( 28 | function (value, key, collection) { 29 | tressa.assert(value === Object, 'forEach value'); 30 | tressa.assert(key === Math, 'forEach key'); 31 | tressa.assert(m === collection, 'forEach collection'); 32 | tressa.assert(this === Array, 'forEach context'); 33 | }, 34 | Array 35 | ); 36 | tressa.assert(m.delete(Math) === true, 'removed known key'); 37 | tressa.assert(m.size === 0, 'deleted entry, reduced size'); 38 | tressa.assert(m.get(Math) === undefined, 'deleted key, no value'); 39 | tressa.assert(m.delete(Math) === false, 'removed unknown key'); 40 | m.set(Math, String); 41 | m.clear(); 42 | tressa.assert(m.get(Math) === undefined, 'cleared keys, no values'); 43 | tressa.assert(m.size === 0, 'cleared keys, zero size'); 44 | 45 | tressa.log('## Set'); 46 | const s = new Set; 47 | tressa.assert(!s.get && !s.set, 'set has no get/set methods'); 48 | tressa.assert(s.has(Math) === false, 'empty set has no keys'); 49 | tressa.assert(s.add(Math) === s, 'add returns the set'); 50 | tressa.assert(s.has(Math) === true, 'added key is available'); 51 | tressa.assert(s.size === 1, 'correct size'); 52 | for(let key of s.keys()) 53 | tressa.assert(key === Math, 'correct key'); 54 | for(let value of s.values()) 55 | tressa.assert(value === Math, 'correct value'); 56 | for(let entry of s.entries()) 57 | tressa.assert(entry[0] === Math && entry[1] === entry[0], 'correct entries'); 58 | m.forEach( 59 | function (value, key, collection) { 60 | tressa.assert(value === Math, 'forEach value'); 61 | tressa.assert(key === value, 'forEach key'); 62 | tressa.assert(s === collection, 'forEach collection'); 63 | tressa.assert(this === Array, 'forEach context'); 64 | }, 65 | Array 66 | ); 67 | tressa.assert(s.delete(Math) === true, 'removed known key'); 68 | tressa.assert(s.size === 0, 'deleted key, reduced size'); 69 | tressa.assert(s.has(Math) === false, 'deleted key, not present'); 70 | tressa.assert(s.delete(Math) === false, 'removed unknown key'); 71 | s.add(Math); 72 | s.clear(); 73 | tressa.assert(s.has(Math) === false, 'cleared keys, no values'); 74 | tressa.assert(s.size === 0, 'cleared keys, zero size'); 75 | 76 | tressa.log('## WeakMap'); 77 | const wm = new WeakMap; 78 | tressa.assert(wm.has(Math) === false, 'empty weak map has no keys'); 79 | tressa.assert(wm.get(Math) === undefined, 'no key, no value'); 80 | tressa.assert(wm.set(Math, String) === wm, 'set returns the weak map'); 81 | tressa.assert(wm.has(Math) === true, 'added key is available'); 82 | tressa.assert(wm.get(Math) === String, 'if key, then value'); 83 | wm.set(Math, Object); 84 | tressa.assert(wm.get(Math) === Object, 'overwrite key'); 85 | tressa.assert(wm.delete(Math) === true, 'removed known key'); 86 | tressa.assert(wm.get(Math) === undefined, 'deleted key, no value'); 87 | tressa.assert(wm.delete(Math) === false, 'removed unknown key'); 88 | 89 | 90 | tressa.log('## WeakSet'); 91 | const ws = new WeakSet; 92 | tressa.assert(ws.has(Math) === false, 'empty weak set has no keys'); 93 | tressa.assert(ws.add(Math) === ws, 'add returns the weak set'); 94 | tressa.assert(ws.has(Math) === true, 'added key is available'); 95 | tressa.assert(ws.delete(Math) === true, 'removed known key'); 96 | tressa.assert(ws.has(Math) === false, 'deleted key, not present'); 97 | tressa.assert(ws.delete(Math) === false, 'removed unknown key'); --------------------------------------------------------------------------------