├── .editorconfig ├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── jsdoc.json ├── package-lock.json ├── package.json ├── rollup.config.js ├── src └── index.ts ├── tsconfig.declaration.json ├── tsconfig.json ├── tsconfig.test.json └── tslint.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [{*.js,*.ts}] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_style = space 8 | indent_size = 4 9 | insert_final_newline = true 10 | max_line_length = 80 11 | trim_trailing_whitespace = true 12 | 13 | [{package.json,.travis.yml}] 14 | indent_style = space 15 | indent_size = 4 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.DS_Store 3 | .DS_Store 4 | doc/ 5 | dist/ 6 | release/ 7 | npm-debug.log* 8 | coverage/ 9 | jsdoc/ 10 | doc/ 11 | outjs/ 12 | declaration/ 13 | build/ 14 | .vscode/ 15 | rollup-plugin-visualizer/ 16 | statistics/ 17 | .scene_cache 18 | *.mp4 19 | test/ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.DS_Store 3 | .DS_Store 4 | doc/ 5 | template/ 6 | example/ 7 | karma.conf.js 8 | test/ 9 | mocha.opts 10 | Gruntfile.js 11 | webpack.*.js 12 | .travis.yml 13 | packages 14 | release/ 15 | demo/ 16 | coverage/ 17 | dist/report.html 18 | rollup-plugin-visualizer/ 19 | outjs/ 20 | .scene_cache 21 | *.mp3 22 | *.mp4 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Daybrush 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |

framework-utils

3 |

4 | npm version 5 | 6 | 7 |

8 |

utils for framework

9 | 10 | ## ⚙️ Installation 11 | ### npm 12 | ```bash 13 | $ npm install framework-utils 14 | ``` 15 | 16 | ## 🚀 How to use 17 | 18 | ```ts 19 | import { prefixNames, prefixCSS } from "framework-utils"; 20 | 21 | 22 | // "daybrush-a daybrush-b" 23 | console.log(prefixNames("daybrush-", "a", "b")); 24 | 25 | /* 26 | .daybrush-a {} 27 | .daybrush-b, .daybrush-c {} 28 | */ 29 | console.log(prefixCSS("daybrush-", ` 30 | .a {} 31 | .b, .c {} 32 | `)); 33 | 34 | ``` 35 | 36 | ## ⭐️ Show Your Support 37 | Please give a ⭐️ if this project helped you! 38 | 39 | ## 👏 Contributing 40 | 41 | If you have any questions or requests or want to contribute to `framework-utils` or other packages, please write the [issue](https://github.com/daybrush/framework-utils/issues) or give me a Pull Request freely. 42 | 43 | ## 🐞 Bug Report 44 | 45 | If you find a bug, please report to us opening a new [Issue](https://github.com/daybrush/framework-utils/issues) on GitHub. 46 | 47 | 48 | ## 📝 License 49 | 50 | This project is [MIT](https://github.com/daybrush/framework-utils/blob/master/LICENSE) licensed. 51 | 52 | ``` 53 | MIT License 54 | 55 | Copyright (c) 2019 Daybrush 56 | 57 | Permission is hereby granted, free of charge, to any person obtaining a copy 58 | of this software and associated documentation files (the "Software"), to deal 59 | in the Software without restriction, including without limitation the rights 60 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 61 | copies of the Software, and to permit persons to whom the Software is 62 | furnished to do so, subject to the following conditions: 63 | 64 | The above copyright notice and this permission notice shall be included in all 65 | copies or substantial portions of the Software. 66 | 67 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 68 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 69 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 70 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 71 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 72 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 73 | SOFTWARE. 74 | ``` -------------------------------------------------------------------------------- /jsdoc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "plugins": [], 4 | "recurseDepth": 10, 5 | "opts": { 6 | "template": "./node_modules/daybrush-jsdoc-template", 7 | "destination": "./doc/" 8 | }, 9 | "source": { 10 | "include": ["./src", "README.md"], 11 | "includePattern": "(.+\\.js(doc|x)?|.+\\.ts(doc|x)?)$", 12 | "excludePattern": "(^|\\/|\\\\)_" 13 | }, 14 | "sourceType": "module", 15 | "tags": { 16 | "allowUnknownTags": true, 17 | "dictionaries": ["jsdoc","closure"] 18 | }, 19 | "templates": { 20 | "cleverLinks": false, 21 | "monospaceLinks": false 22 | }, 23 | "linkMap": { 24 | "IObject": "http://daybrush.com/utils/release/latest/doc/global.html#ObjectInterface" 25 | }, 26 | "docdash": { 27 | "menu": { 28 | "Github repo": { 29 | "href": "https://github.com/daybrush/framework-utils", 30 | "target": "_blank", 31 | "class": "menu-item", 32 | "id": "repository" 33 | } 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "framework-utils", 3 | "version": "1.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.0.0", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.0.0" 14 | } 15 | }, 16 | "@babel/generator": { 17 | "version": "7.5.0", 18 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz", 19 | "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==", 20 | "dev": true, 21 | "requires": { 22 | "@babel/types": "^7.5.0", 23 | "jsesc": "^2.5.1", 24 | "lodash": "^4.17.11", 25 | "source-map": "^0.5.0", 26 | "trim-right": "^1.0.1" 27 | } 28 | }, 29 | "@babel/helper-function-name": { 30 | "version": "7.1.0", 31 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", 32 | "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", 33 | "dev": true, 34 | "requires": { 35 | "@babel/helper-get-function-arity": "^7.0.0", 36 | "@babel/template": "^7.1.0", 37 | "@babel/types": "^7.0.0" 38 | } 39 | }, 40 | "@babel/helper-get-function-arity": { 41 | "version": "7.0.0", 42 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", 43 | "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", 44 | "dev": true, 45 | "requires": { 46 | "@babel/types": "^7.0.0" 47 | } 48 | }, 49 | "@babel/helper-split-export-declaration": { 50 | "version": "7.4.4", 51 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", 52 | "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", 53 | "dev": true, 54 | "requires": { 55 | "@babel/types": "^7.4.4" 56 | } 57 | }, 58 | "@babel/highlight": { 59 | "version": "7.5.0", 60 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", 61 | "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", 62 | "dev": true, 63 | "requires": { 64 | "chalk": "^2.0.0", 65 | "esutils": "^2.0.2", 66 | "js-tokens": "^4.0.0" 67 | } 68 | }, 69 | "@babel/parser": { 70 | "version": "7.5.0", 71 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz", 72 | "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==", 73 | "dev": true 74 | }, 75 | "@babel/template": { 76 | "version": "7.4.4", 77 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", 78 | "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", 79 | "dev": true, 80 | "requires": { 81 | "@babel/code-frame": "^7.0.0", 82 | "@babel/parser": "^7.4.4", 83 | "@babel/types": "^7.4.4" 84 | } 85 | }, 86 | "@babel/traverse": { 87 | "version": "7.5.0", 88 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz", 89 | "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==", 90 | "dev": true, 91 | "requires": { 92 | "@babel/code-frame": "^7.0.0", 93 | "@babel/generator": "^7.5.0", 94 | "@babel/helper-function-name": "^7.1.0", 95 | "@babel/helper-split-export-declaration": "^7.4.4", 96 | "@babel/parser": "^7.5.0", 97 | "@babel/types": "^7.5.0", 98 | "debug": "^4.1.0", 99 | "globals": "^11.1.0", 100 | "lodash": "^4.17.11" 101 | } 102 | }, 103 | "@babel/types": { 104 | "version": "7.5.0", 105 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz", 106 | "integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==", 107 | "dev": true, 108 | "requires": { 109 | "esutils": "^2.0.2", 110 | "lodash": "^4.17.11", 111 | "to-fast-properties": "^2.0.0" 112 | } 113 | }, 114 | "@daybrush/builder": { 115 | "version": "0.1.1", 116 | "resolved": "https://registry.npmjs.org/@daybrush/builder/-/builder-0.1.1.tgz", 117 | "integrity": "sha512-btgTbn4wf/TbAqfjAtk4PQQmStiRce9ZPvQiMlHBbB9MeK6zLIAC7RwFNch0mGA8mzTFWE3EfRoSyhM4IWUyxg==", 118 | "dev": true, 119 | "requires": { 120 | "@daybrush/rollup-plugin-prototype-minify": "^1.1.2", 121 | "rollup": "^1.7.4", 122 | "rollup-plugin-commonjs": "^9.3.4", 123 | "rollup-plugin-node-resolve": "^4.0.1", 124 | "rollup-plugin-prototype-minify": "^1.0.5", 125 | "rollup-plugin-replace": "^2.1.1", 126 | "rollup-plugin-typescript": "^1.0.1", 127 | "rollup-plugin-uglify": "^6.0.2", 128 | "rollup-plugin-visualizer": "^1.1.0" 129 | } 130 | }, 131 | "@daybrush/jsdoc": { 132 | "version": "0.3.7", 133 | "resolved": "https://registry.npmjs.org/@daybrush/jsdoc/-/jsdoc-0.3.7.tgz", 134 | "integrity": "sha512-xVB7GZ5tp60swOGwmpl/XSIiE/MNfMTT0g7EjWQJlACFJpJdrkOUgAQBOH+piVI+1TcohGwukrky1NXTP2QYjg==", 135 | "dev": true, 136 | "requires": { 137 | "@babel/parser": "^7.2.3", 138 | "@babel/types": "^7.2.2", 139 | "@daybrush/utils": "^0.4.0", 140 | "ast-parser": "^0.0.3", 141 | "bluebird": "~3.5.0", 142 | "catharsis": "~0.8.9", 143 | "escape-string-regexp": "~1.0.5", 144 | "js2xmlparser": "~3.0.0", 145 | "klaw": "~2.0.0", 146 | "markdown-it": "~8.3.1", 147 | "markdown-it-named-headers": "~0.0.4", 148 | "marked": "~0.3.6", 149 | "mkdirp": "~0.5.1", 150 | "requizzle": "~0.2.1", 151 | "strip-json-comments": "~2.0.1", 152 | "taffydb": "2.6.2", 153 | "underscore": "~1.8.3" 154 | }, 155 | "dependencies": { 156 | "@daybrush/utils": { 157 | "version": "0.4.2", 158 | "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.4.2.tgz", 159 | "integrity": "sha512-PMn5ppv/VOZCOrJH4W48xr2rFAatn+ZNkY77xZn6ZzEJAZ/uVCOgxIkbUml8oHRwu4gV7UM19Cc1flOunkymWA==", 160 | "dev": true 161 | } 162 | } 163 | }, 164 | "@daybrush/release": { 165 | "version": "0.2.4", 166 | "resolved": "https://registry.npmjs.org/@daybrush/release/-/release-0.2.4.tgz", 167 | "integrity": "sha512-SgCvcKBP/FCNWwONpKYGHjbNHNFesbBLF6Wc/RdP8OJeF39/yXa8AWu776Zq/jfOVpOMV9UoheC6h4mbD5XxCA==", 168 | "dev": true, 169 | "requires": { 170 | "args": "^5.0.1", 171 | "gh-pages": "^2.0.1", 172 | "sync-exec": "^0.6.2" 173 | } 174 | }, 175 | "@daybrush/rollup-plugin-prototype-minify": { 176 | "version": "1.1.2", 177 | "resolved": "https://registry.npmjs.org/@daybrush/rollup-plugin-prototype-minify/-/rollup-plugin-prototype-minify-1.1.2.tgz", 178 | "integrity": "sha512-mrIzM0unFQ6jXv/jJtHiwmQg/2zF4GsuEyFiKd3G9Wl26gMM8b4H55wMzAXRzBTnZLVEagTz4MvNVO758uZf8A==", 179 | "dev": true, 180 | "requires": { 181 | "prototype-minify": "^1.0.0" 182 | } 183 | }, 184 | "@daybrush/utils": { 185 | "version": "0.10.0", 186 | "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.10.0.tgz", 187 | "integrity": "sha512-Rwy4w0eLd6JwMNOQX7c6UQ3a4407wE3i6A1K4pXqcMJ2AJw/+t3XXpKkrIaSmFqtp0jwXFSxReyv4iV3wsq2vQ==", 188 | "dev": true 189 | }, 190 | "@types/estree": { 191 | "version": "0.0.39", 192 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 193 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 194 | "dev": true 195 | }, 196 | "@types/node": { 197 | "version": "12.0.12", 198 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.12.tgz", 199 | "integrity": "sha512-Uy0PN4R5vgBUXFoJrKryf5aTk3kJ8Rv3PdlHjl6UaX+Cqp1QE0yPQ68MPXGrZOfG7gZVNDIJZYyot0B9ubXUrQ==", 200 | "dev": true 201 | }, 202 | "@types/resolve": { 203 | "version": "0.0.8", 204 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", 205 | "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", 206 | "dev": true, 207 | "requires": { 208 | "@types/node": "*" 209 | } 210 | }, 211 | "acorn": { 212 | "version": "6.2.0", 213 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", 214 | "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", 215 | "dev": true 216 | }, 217 | "ansi-styles": { 218 | "version": "3.2.1", 219 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 220 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 221 | "dev": true, 222 | "requires": { 223 | "color-convert": "^1.9.0" 224 | } 225 | }, 226 | "argparse": { 227 | "version": "1.0.10", 228 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 229 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 230 | "dev": true, 231 | "requires": { 232 | "sprintf-js": "~1.0.2" 233 | } 234 | }, 235 | "args": { 236 | "version": "5.0.1", 237 | "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", 238 | "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", 239 | "dev": true, 240 | "requires": { 241 | "camelcase": "5.0.0", 242 | "chalk": "2.4.2", 243 | "leven": "2.1.0", 244 | "mri": "1.1.4" 245 | } 246 | }, 247 | "array-union": { 248 | "version": "1.0.2", 249 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 250 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 251 | "dev": true, 252 | "requires": { 253 | "array-uniq": "^1.0.1" 254 | } 255 | }, 256 | "array-uniq": { 257 | "version": "1.0.3", 258 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 259 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 260 | "dev": true 261 | }, 262 | "ast-parser": { 263 | "version": "0.0.3", 264 | "resolved": "https://registry.npmjs.org/ast-parser/-/ast-parser-0.0.3.tgz", 265 | "integrity": "sha512-Ycpq7GpFwZ2Q9Mq8E5lq20i8bbcXvdHXlugC+0o5VBuAwGI0Y0/R55cdoIHXTIWLIHrbyCVH5CaIh66Sve4Lyw==", 266 | "dev": true, 267 | "requires": { 268 | "@babel/traverse": "^7.2.3", 269 | "@babel/types": "^7.3.0", 270 | "@daybrush/utils": "^0.6.0" 271 | }, 272 | "dependencies": { 273 | "@daybrush/utils": { 274 | "version": "0.6.0", 275 | "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.6.0.tgz", 276 | "integrity": "sha512-ay9e0XgiT77pYnxw9j84WzrZPBXlkzqfYXQLEpOhqMVKUtdNSrbPtKslt8Y0sY8/3cpnzedMoFpn9UcjerE/uA==", 277 | "dev": true 278 | } 279 | } 280 | }, 281 | "async": { 282 | "version": "2.6.2", 283 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", 284 | "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", 285 | "dev": true, 286 | "requires": { 287 | "lodash": "^4.17.11" 288 | } 289 | }, 290 | "balanced-match": { 291 | "version": "1.0.0", 292 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 293 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 294 | "dev": true 295 | }, 296 | "bluebird": { 297 | "version": "3.5.5", 298 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", 299 | "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", 300 | "dev": true 301 | }, 302 | "brace-expansion": { 303 | "version": "1.1.11", 304 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 305 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 306 | "dev": true, 307 | "requires": { 308 | "balanced-match": "^1.0.0", 309 | "concat-map": "0.0.1" 310 | } 311 | }, 312 | "builtin-modules": { 313 | "version": "3.1.0", 314 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", 315 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", 316 | "dev": true 317 | }, 318 | "camelcase": { 319 | "version": "5.0.0", 320 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", 321 | "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", 322 | "dev": true 323 | }, 324 | "catharsis": { 325 | "version": "0.8.10", 326 | "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.10.tgz", 327 | "integrity": "sha512-l2OUaz/3PU3MZylspVFJvwHCVfWyvcduPq4lv3AzZ2pJzZCo7kNKFNyatwujD7XgvGkNAE/Jhhbh2uARNwNkfw==", 328 | "dev": true, 329 | "requires": { 330 | "lodash": "^4.17.11" 331 | } 332 | }, 333 | "chalk": { 334 | "version": "2.4.2", 335 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 336 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 337 | "dev": true, 338 | "requires": { 339 | "ansi-styles": "^3.2.1", 340 | "escape-string-regexp": "^1.0.5", 341 | "supports-color": "^5.3.0" 342 | } 343 | }, 344 | "color-convert": { 345 | "version": "1.9.3", 346 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 347 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 348 | "dev": true, 349 | "requires": { 350 | "color-name": "1.1.3" 351 | } 352 | }, 353 | "color-name": { 354 | "version": "1.1.3", 355 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 356 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 357 | "dev": true 358 | }, 359 | "commander": { 360 | "version": "2.20.0", 361 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", 362 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", 363 | "dev": true 364 | }, 365 | "concat-map": { 366 | "version": "0.0.1", 367 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 368 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 369 | "dev": true 370 | }, 371 | "core-util-is": { 372 | "version": "1.0.2", 373 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 374 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 375 | "dev": true 376 | }, 377 | "daybrush-jsdoc-template": { 378 | "version": "1.6.0", 379 | "resolved": "https://registry.npmjs.org/daybrush-jsdoc-template/-/daybrush-jsdoc-template-1.6.0.tgz", 380 | "integrity": "sha512-bbhzsTSXmePFM4BTH7a4wdUPYRLP8qimuDh1856dDFi98OnsWlQALhypCBkxBZSM0c5j0q/Lxdjk/BifwlmUGw==", 381 | "dev": true, 382 | "requires": { 383 | "@daybrush/utils": "^0.10.0" 384 | } 385 | }, 386 | "debug": { 387 | "version": "4.1.1", 388 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 389 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 390 | "dev": true, 391 | "requires": { 392 | "ms": "^2.1.1" 393 | } 394 | }, 395 | "diff": { 396 | "version": "3.5.0", 397 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 398 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 399 | "dev": true 400 | }, 401 | "email-addresses": { 402 | "version": "3.0.3", 403 | "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.3.tgz", 404 | "integrity": "sha512-kUlSC06PVvvjlMRpNIl3kR1NRXLEe86VQ7N0bQeaCZb2g+InShCeHQp/JvyYNTugMnRN2NvJhHlc3q12MWbbpg==", 405 | "dev": true 406 | }, 407 | "entities": { 408 | "version": "1.1.2", 409 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", 410 | "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", 411 | "dev": true 412 | }, 413 | "escape-string-regexp": { 414 | "version": "1.0.5", 415 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 416 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 417 | "dev": true 418 | }, 419 | "esprima": { 420 | "version": "4.0.1", 421 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 422 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 423 | "dev": true 424 | }, 425 | "estree-walker": { 426 | "version": "0.6.1", 427 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 428 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 429 | "dev": true 430 | }, 431 | "esutils": { 432 | "version": "2.0.2", 433 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 434 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 435 | "dev": true 436 | }, 437 | "filename-reserved-regex": { 438 | "version": "1.0.0", 439 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", 440 | "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", 441 | "dev": true 442 | }, 443 | "filenamify": { 444 | "version": "1.2.1", 445 | "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", 446 | "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", 447 | "dev": true, 448 | "requires": { 449 | "filename-reserved-regex": "^1.0.0", 450 | "strip-outer": "^1.0.0", 451 | "trim-repeated": "^1.0.0" 452 | } 453 | }, 454 | "filenamify-url": { 455 | "version": "1.0.0", 456 | "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", 457 | "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", 458 | "dev": true, 459 | "requires": { 460 | "filenamify": "^1.0.0", 461 | "humanize-url": "^1.0.0" 462 | } 463 | }, 464 | "filesize": { 465 | "version": "3.6.1", 466 | "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", 467 | "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", 468 | "dev": true 469 | }, 470 | "fs-extra": { 471 | "version": "7.0.1", 472 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", 473 | "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", 474 | "dev": true, 475 | "requires": { 476 | "graceful-fs": "^4.1.2", 477 | "jsonfile": "^4.0.0", 478 | "universalify": "^0.1.0" 479 | } 480 | }, 481 | "fs.realpath": { 482 | "version": "1.0.0", 483 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 484 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 485 | "dev": true 486 | }, 487 | "gh-pages": { 488 | "version": "2.0.1", 489 | "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.0.1.tgz", 490 | "integrity": "sha512-uFlk3bukljeiWKQ2XvPfjcSi/ou7IfoDf2p+Fj672saLAr8bnOdFVqI/JSgrSgInKpCg5BksxEwGUl++dbg8Dg==", 491 | "dev": true, 492 | "requires": { 493 | "async": "^2.6.1", 494 | "commander": "^2.18.0", 495 | "email-addresses": "^3.0.1", 496 | "filenamify-url": "^1.0.0", 497 | "fs-extra": "^7.0.0", 498 | "globby": "^6.1.0", 499 | "graceful-fs": "^4.1.11", 500 | "rimraf": "^2.6.2" 501 | } 502 | }, 503 | "glob": { 504 | "version": "7.1.4", 505 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 506 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 507 | "dev": true, 508 | "requires": { 509 | "fs.realpath": "^1.0.0", 510 | "inflight": "^1.0.4", 511 | "inherits": "2", 512 | "minimatch": "^3.0.4", 513 | "once": "^1.3.0", 514 | "path-is-absolute": "^1.0.0" 515 | } 516 | }, 517 | "globals": { 518 | "version": "11.12.0", 519 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 520 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 521 | "dev": true 522 | }, 523 | "globby": { 524 | "version": "6.1.0", 525 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 526 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", 527 | "dev": true, 528 | "requires": { 529 | "array-union": "^1.0.1", 530 | "glob": "^7.0.3", 531 | "object-assign": "^4.0.1", 532 | "pify": "^2.0.0", 533 | "pinkie-promise": "^2.0.0" 534 | } 535 | }, 536 | "graceful-fs": { 537 | "version": "4.2.0", 538 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", 539 | "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", 540 | "dev": true 541 | }, 542 | "has-flag": { 543 | "version": "3.0.0", 544 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 545 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 546 | "dev": true 547 | }, 548 | "humanize-url": { 549 | "version": "1.0.1", 550 | "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", 551 | "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", 552 | "dev": true, 553 | "requires": { 554 | "normalize-url": "^1.0.0", 555 | "strip-url-auth": "^1.0.0" 556 | } 557 | }, 558 | "inflight": { 559 | "version": "1.0.6", 560 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 561 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 562 | "dev": true, 563 | "requires": { 564 | "once": "^1.3.0", 565 | "wrappy": "1" 566 | } 567 | }, 568 | "inherits": { 569 | "version": "2.0.4", 570 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 571 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 572 | "dev": true 573 | }, 574 | "is-module": { 575 | "version": "1.0.0", 576 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 577 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 578 | "dev": true 579 | }, 580 | "is-plain-obj": { 581 | "version": "1.1.0", 582 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 583 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 584 | "dev": true 585 | }, 586 | "is-wsl": { 587 | "version": "1.1.0", 588 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 589 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 590 | "dev": true 591 | }, 592 | "isarray": { 593 | "version": "1.0.0", 594 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 595 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 596 | "dev": true 597 | }, 598 | "jest-worker": { 599 | "version": "24.6.0", 600 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz", 601 | "integrity": "sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ==", 602 | "dev": true, 603 | "requires": { 604 | "merge-stream": "^1.0.1", 605 | "supports-color": "^6.1.0" 606 | }, 607 | "dependencies": { 608 | "supports-color": { 609 | "version": "6.1.0", 610 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 611 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 612 | "dev": true, 613 | "requires": { 614 | "has-flag": "^3.0.0" 615 | } 616 | } 617 | } 618 | }, 619 | "js-tokens": { 620 | "version": "4.0.0", 621 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 622 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 623 | "dev": true 624 | }, 625 | "js-yaml": { 626 | "version": "3.13.1", 627 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 628 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 629 | "dev": true, 630 | "requires": { 631 | "argparse": "^1.0.7", 632 | "esprima": "^4.0.0" 633 | } 634 | }, 635 | "js2xmlparser": { 636 | "version": "3.0.0", 637 | "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", 638 | "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", 639 | "dev": true, 640 | "requires": { 641 | "xmlcreate": "^1.0.1" 642 | } 643 | }, 644 | "jsesc": { 645 | "version": "2.5.2", 646 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 647 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 648 | "dev": true 649 | }, 650 | "jsonfile": { 651 | "version": "4.0.0", 652 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 653 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 654 | "dev": true, 655 | "requires": { 656 | "graceful-fs": "^4.1.6" 657 | } 658 | }, 659 | "klaw": { 660 | "version": "2.0.0", 661 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", 662 | "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", 663 | "dev": true, 664 | "requires": { 665 | "graceful-fs": "^4.1.9" 666 | } 667 | }, 668 | "leven": { 669 | "version": "2.1.0", 670 | "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", 671 | "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", 672 | "dev": true 673 | }, 674 | "linkify-it": { 675 | "version": "2.1.0", 676 | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", 677 | "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", 678 | "dev": true, 679 | "requires": { 680 | "uc.micro": "^1.0.1" 681 | } 682 | }, 683 | "lodash": { 684 | "version": "4.17.11", 685 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 686 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 687 | "dev": true 688 | }, 689 | "magic-string": { 690 | "version": "0.25.3", 691 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", 692 | "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==", 693 | "dev": true, 694 | "requires": { 695 | "sourcemap-codec": "^1.4.4" 696 | } 697 | }, 698 | "markdown-it": { 699 | "version": "8.3.2", 700 | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz", 701 | "integrity": "sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w==", 702 | "dev": true, 703 | "requires": { 704 | "argparse": "^1.0.7", 705 | "entities": "~1.1.1", 706 | "linkify-it": "^2.0.0", 707 | "mdurl": "^1.0.1", 708 | "uc.micro": "^1.0.3" 709 | } 710 | }, 711 | "markdown-it-named-headers": { 712 | "version": "0.0.4", 713 | "resolved": "https://registry.npmjs.org/markdown-it-named-headers/-/markdown-it-named-headers-0.0.4.tgz", 714 | "integrity": "sha1-gu/CgyQkCmsed7mq5QF3HV81HB8=", 715 | "dev": true, 716 | "requires": { 717 | "string": "^3.0.1" 718 | } 719 | }, 720 | "marked": { 721 | "version": "0.3.19", 722 | "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", 723 | "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", 724 | "dev": true 725 | }, 726 | "mdurl": { 727 | "version": "1.0.1", 728 | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", 729 | "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", 730 | "dev": true 731 | }, 732 | "merge-stream": { 733 | "version": "1.0.1", 734 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", 735 | "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", 736 | "dev": true, 737 | "requires": { 738 | "readable-stream": "^2.0.1" 739 | } 740 | }, 741 | "minimatch": { 742 | "version": "3.0.4", 743 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 744 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 745 | "dev": true, 746 | "requires": { 747 | "brace-expansion": "^1.1.7" 748 | } 749 | }, 750 | "minimist": { 751 | "version": "0.0.8", 752 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 753 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 754 | "dev": true 755 | }, 756 | "mkdirp": { 757 | "version": "0.5.1", 758 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 759 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 760 | "dev": true, 761 | "requires": { 762 | "minimist": "0.0.8" 763 | } 764 | }, 765 | "mri": { 766 | "version": "1.1.4", 767 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", 768 | "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", 769 | "dev": true 770 | }, 771 | "ms": { 772 | "version": "2.1.2", 773 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 774 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 775 | "dev": true 776 | }, 777 | "normalize-url": { 778 | "version": "1.9.1", 779 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", 780 | "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", 781 | "dev": true, 782 | "requires": { 783 | "object-assign": "^4.0.1", 784 | "prepend-http": "^1.0.0", 785 | "query-string": "^4.1.0", 786 | "sort-keys": "^1.0.0" 787 | } 788 | }, 789 | "object-assign": { 790 | "version": "4.1.1", 791 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 792 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 793 | "dev": true 794 | }, 795 | "once": { 796 | "version": "1.4.0", 797 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 798 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 799 | "dev": true, 800 | "requires": { 801 | "wrappy": "1" 802 | } 803 | }, 804 | "opn": { 805 | "version": "5.5.0", 806 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", 807 | "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", 808 | "dev": true, 809 | "requires": { 810 | "is-wsl": "^1.1.0" 811 | } 812 | }, 813 | "path-is-absolute": { 814 | "version": "1.0.1", 815 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 816 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 817 | "dev": true 818 | }, 819 | "path-parse": { 820 | "version": "1.0.6", 821 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 822 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 823 | "dev": true 824 | }, 825 | "pify": { 826 | "version": "2.3.0", 827 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 828 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 829 | "dev": true 830 | }, 831 | "pinkie": { 832 | "version": "2.0.4", 833 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 834 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 835 | "dev": true 836 | }, 837 | "pinkie-promise": { 838 | "version": "2.0.1", 839 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 840 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 841 | "dev": true, 842 | "requires": { 843 | "pinkie": "^2.0.0" 844 | } 845 | }, 846 | "prepend-http": { 847 | "version": "1.0.4", 848 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 849 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 850 | "dev": true 851 | }, 852 | "print-sizes": { 853 | "version": "0.0.4", 854 | "resolved": "https://registry.npmjs.org/print-sizes/-/print-sizes-0.0.4.tgz", 855 | "integrity": "sha512-L6GdpB7v9hyxl4zOl/0zhTqlI0cGCIpOtPA/+nYD15Cpi3rRi/7AzjkrBIZS6VXoaphH5TI3dl9U34amY+h7Bg==", 856 | "dev": true, 857 | "requires": { 858 | "filesize": "^3.6.1" 859 | } 860 | }, 861 | "process-nextick-args": { 862 | "version": "2.0.1", 863 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 864 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 865 | "dev": true 866 | }, 867 | "prototype-minify": { 868 | "version": "1.0.5", 869 | "resolved": "https://registry.npmjs.org/prototype-minify/-/prototype-minify-1.0.5.tgz", 870 | "integrity": "sha512-Ftp1ZRixf3OxZlJ+OaP9Jfm7UWAXIwCTNLuUiqwQA/18hVanSv0rJ103ek/h8E/hcKtW9BRsLi9syAwzDIJkOg==", 871 | "dev": true, 872 | "requires": { 873 | "@babel/generator": "^7.1.2", 874 | "@babel/parser": "^7.1.2", 875 | "@babel/traverse": "^7.1.0", 876 | "@babel/types": "^7.1.2" 877 | } 878 | }, 879 | "query-string": { 880 | "version": "4.3.4", 881 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", 882 | "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", 883 | "dev": true, 884 | "requires": { 885 | "object-assign": "^4.1.0", 886 | "strict-uri-encode": "^1.0.0" 887 | } 888 | }, 889 | "readable-stream": { 890 | "version": "2.3.6", 891 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 892 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 893 | "dev": true, 894 | "requires": { 895 | "core-util-is": "~1.0.0", 896 | "inherits": "~2.0.3", 897 | "isarray": "~1.0.0", 898 | "process-nextick-args": "~2.0.0", 899 | "safe-buffer": "~5.1.1", 900 | "string_decoder": "~1.1.1", 901 | "util-deprecate": "~1.0.1" 902 | } 903 | }, 904 | "requizzle": { 905 | "version": "0.2.2", 906 | "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.2.tgz", 907 | "integrity": "sha512-oJ6y7JcUJkblRGhMByGNcszeLgU0qDxNKFCiUZR1XyzHyVsev+Mxb1tyygxLd1ORsKee1SA5BInFdUwY64GE/A==", 908 | "dev": true, 909 | "requires": { 910 | "lodash": "^4.17.11" 911 | } 912 | }, 913 | "resolve": { 914 | "version": "1.11.1", 915 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", 916 | "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", 917 | "dev": true, 918 | "requires": { 919 | "path-parse": "^1.0.6" 920 | } 921 | }, 922 | "rimraf": { 923 | "version": "2.6.3", 924 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 925 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 926 | "dev": true, 927 | "requires": { 928 | "glob": "^7.1.3" 929 | } 930 | }, 931 | "rollup": { 932 | "version": "1.16.6", 933 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.16.6.tgz", 934 | "integrity": "sha512-oM3iKkzPCq9Da95wCnNfS8YlNZjgCD5c/TceKnJIthI9FOeJqnO3PUr/C5Suv9Kjzh0iphKL02PLeja3A5AMIA==", 935 | "dev": true, 936 | "requires": { 937 | "@types/estree": "0.0.39", 938 | "@types/node": "^12.0.10", 939 | "acorn": "^6.1.1" 940 | } 941 | }, 942 | "rollup-plugin-commonjs": { 943 | "version": "9.3.4", 944 | "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.3.4.tgz", 945 | "integrity": "sha512-DTZOvRoiVIHHLFBCL4pFxOaJt8pagxsVldEXBOn6wl3/V21wVaj17HFfyzTsQUuou3sZL3lEJZVWKPFblJfI6w==", 946 | "dev": true, 947 | "requires": { 948 | "estree-walker": "^0.6.0", 949 | "magic-string": "^0.25.2", 950 | "resolve": "^1.10.0", 951 | "rollup-pluginutils": "^2.6.0" 952 | } 953 | }, 954 | "rollup-plugin-node-resolve": { 955 | "version": "4.2.4", 956 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", 957 | "integrity": "sha512-t/64I6l7fZ9BxqD3XlX4ZeO6+5RLKyfpwE2CiPNUKa+GocPlQhf/C208ou8y3AwtNsc6bjSk/8/6y/YAyxCIvw==", 958 | "dev": true, 959 | "requires": { 960 | "@types/resolve": "0.0.8", 961 | "builtin-modules": "^3.1.0", 962 | "is-module": "^1.0.0", 963 | "resolve": "^1.10.0" 964 | } 965 | }, 966 | "rollup-plugin-prototype-minify": { 967 | "version": "1.0.5", 968 | "resolved": "https://registry.npmjs.org/rollup-plugin-prototype-minify/-/rollup-plugin-prototype-minify-1.0.5.tgz", 969 | "integrity": "sha512-3qeEFacOSjhoyByz53E7iBuK8roWrKVnWqHM1pOj600+0NX80/exxxH3QBY4Zj4YdMeGVk9SlA4lnNe13g2whQ==", 970 | "dev": true, 971 | "requires": { 972 | "prototype-minify": "^1.0.0" 973 | } 974 | }, 975 | "rollup-plugin-replace": { 976 | "version": "2.2.0", 977 | "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", 978 | "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==", 979 | "dev": true, 980 | "requires": { 981 | "magic-string": "^0.25.2", 982 | "rollup-pluginutils": "^2.6.0" 983 | } 984 | }, 985 | "rollup-plugin-typescript": { 986 | "version": "1.0.1", 987 | "resolved": "https://registry.npmjs.org/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.1.tgz", 988 | "integrity": "sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw==", 989 | "dev": true, 990 | "requires": { 991 | "resolve": "^1.10.0", 992 | "rollup-pluginutils": "^2.5.0" 993 | } 994 | }, 995 | "rollup-plugin-uglify": { 996 | "version": "6.0.2", 997 | "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.2.tgz", 998 | "integrity": "sha512-qwz2Tryspn5QGtPUowq5oumKSxANKdrnfz7C0jm4lKxvRDsNe/hSGsB9FntUul7UeC4TsZEWKErVgE1qWSO0gw==", 999 | "dev": true, 1000 | "requires": { 1001 | "@babel/code-frame": "^7.0.0", 1002 | "jest-worker": "^24.0.0", 1003 | "serialize-javascript": "^1.6.1", 1004 | "uglify-js": "^3.4.9" 1005 | } 1006 | }, 1007 | "rollup-plugin-visualizer": { 1008 | "version": "1.1.1", 1009 | "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-1.1.1.tgz", 1010 | "integrity": "sha512-7xkSKp+dyJmSC7jg2LXqViaHuOnF1VvIFCnsZEKjrgT5ZVyiLLSbeszxFcQSfNJILphqgAEmWAUz0Z4xYScrRw==", 1011 | "dev": true, 1012 | "requires": { 1013 | "mkdirp": "^0.5.1", 1014 | "opn": "^5.4.0", 1015 | "source-map": "^0.7.3", 1016 | "typeface-oswald": "0.0.54" 1017 | }, 1018 | "dependencies": { 1019 | "source-map": { 1020 | "version": "0.7.3", 1021 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1022 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1023 | "dev": true 1024 | } 1025 | } 1026 | }, 1027 | "rollup-pluginutils": { 1028 | "version": "2.8.1", 1029 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz", 1030 | "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", 1031 | "dev": true, 1032 | "requires": { 1033 | "estree-walker": "^0.6.1" 1034 | } 1035 | }, 1036 | "safe-buffer": { 1037 | "version": "5.1.2", 1038 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1039 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1040 | "dev": true 1041 | }, 1042 | "semver": { 1043 | "version": "5.7.0", 1044 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 1045 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", 1046 | "dev": true 1047 | }, 1048 | "serialize-javascript": { 1049 | "version": "1.7.0", 1050 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", 1051 | "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", 1052 | "dev": true 1053 | }, 1054 | "sort-keys": { 1055 | "version": "1.1.2", 1056 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", 1057 | "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", 1058 | "dev": true, 1059 | "requires": { 1060 | "is-plain-obj": "^1.0.0" 1061 | } 1062 | }, 1063 | "source-map": { 1064 | "version": "0.5.7", 1065 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1066 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1067 | "dev": true 1068 | }, 1069 | "sourcemap-codec": { 1070 | "version": "1.4.6", 1071 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz", 1072 | "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", 1073 | "dev": true 1074 | }, 1075 | "sprintf-js": { 1076 | "version": "1.0.3", 1077 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1078 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1079 | "dev": true 1080 | }, 1081 | "strict-uri-encode": { 1082 | "version": "1.1.0", 1083 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", 1084 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", 1085 | "dev": true 1086 | }, 1087 | "string": { 1088 | "version": "3.3.3", 1089 | "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", 1090 | "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=", 1091 | "dev": true 1092 | }, 1093 | "string_decoder": { 1094 | "version": "1.1.1", 1095 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1096 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1097 | "dev": true, 1098 | "requires": { 1099 | "safe-buffer": "~5.1.0" 1100 | } 1101 | }, 1102 | "strip-json-comments": { 1103 | "version": "2.0.1", 1104 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1105 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1106 | "dev": true 1107 | }, 1108 | "strip-outer": { 1109 | "version": "1.0.1", 1110 | "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", 1111 | "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", 1112 | "dev": true, 1113 | "requires": { 1114 | "escape-string-regexp": "^1.0.2" 1115 | } 1116 | }, 1117 | "strip-url-auth": { 1118 | "version": "1.0.1", 1119 | "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", 1120 | "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", 1121 | "dev": true 1122 | }, 1123 | "supports-color": { 1124 | "version": "5.5.0", 1125 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1126 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1127 | "dev": true, 1128 | "requires": { 1129 | "has-flag": "^3.0.0" 1130 | } 1131 | }, 1132 | "sync-exec": { 1133 | "version": "0.6.2", 1134 | "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", 1135 | "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=", 1136 | "dev": true 1137 | }, 1138 | "taffydb": { 1139 | "version": "2.6.2", 1140 | "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", 1141 | "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", 1142 | "dev": true 1143 | }, 1144 | "to-fast-properties": { 1145 | "version": "2.0.0", 1146 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 1147 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 1148 | "dev": true 1149 | }, 1150 | "trim-repeated": { 1151 | "version": "1.0.0", 1152 | "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", 1153 | "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", 1154 | "dev": true, 1155 | "requires": { 1156 | "escape-string-regexp": "^1.0.2" 1157 | } 1158 | }, 1159 | "trim-right": { 1160 | "version": "1.0.1", 1161 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 1162 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 1163 | "dev": true 1164 | }, 1165 | "tslib": { 1166 | "version": "1.10.0", 1167 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", 1168 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", 1169 | "dev": true 1170 | }, 1171 | "tslint": { 1172 | "version": "5.18.0", 1173 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz", 1174 | "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", 1175 | "dev": true, 1176 | "requires": { 1177 | "@babel/code-frame": "^7.0.0", 1178 | "builtin-modules": "^1.1.1", 1179 | "chalk": "^2.3.0", 1180 | "commander": "^2.12.1", 1181 | "diff": "^3.2.0", 1182 | "glob": "^7.1.1", 1183 | "js-yaml": "^3.13.1", 1184 | "minimatch": "^3.0.4", 1185 | "mkdirp": "^0.5.1", 1186 | "resolve": "^1.3.2", 1187 | "semver": "^5.3.0", 1188 | "tslib": "^1.8.0", 1189 | "tsutils": "^2.29.0" 1190 | }, 1191 | "dependencies": { 1192 | "builtin-modules": { 1193 | "version": "1.1.1", 1194 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 1195 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 1196 | "dev": true 1197 | } 1198 | } 1199 | }, 1200 | "tsutils": { 1201 | "version": "2.29.0", 1202 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", 1203 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", 1204 | "dev": true, 1205 | "requires": { 1206 | "tslib": "^1.8.1" 1207 | } 1208 | }, 1209 | "typeface-oswald": { 1210 | "version": "0.0.54", 1211 | "resolved": "https://registry.npmjs.org/typeface-oswald/-/typeface-oswald-0.0.54.tgz", 1212 | "integrity": "sha512-U1WMNp4qfy4/3khIfHMVAIKnNu941MXUfs3+H9R8PFgnoz42Hh9pboSFztWr86zut0eXC8byalmVhfkiKON/8Q==", 1213 | "dev": true 1214 | }, 1215 | "typescript": { 1216 | "version": "3.5.2", 1217 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", 1218 | "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", 1219 | "dev": true 1220 | }, 1221 | "uc.micro": { 1222 | "version": "1.0.6", 1223 | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", 1224 | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", 1225 | "dev": true 1226 | }, 1227 | "uglify-js": { 1228 | "version": "3.6.0", 1229 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", 1230 | "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", 1231 | "dev": true, 1232 | "requires": { 1233 | "commander": "~2.20.0", 1234 | "source-map": "~0.6.1" 1235 | }, 1236 | "dependencies": { 1237 | "source-map": { 1238 | "version": "0.6.1", 1239 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1240 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1241 | "dev": true 1242 | } 1243 | } 1244 | }, 1245 | "underscore": { 1246 | "version": "1.8.3", 1247 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", 1248 | "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", 1249 | "dev": true 1250 | }, 1251 | "universalify": { 1252 | "version": "0.1.2", 1253 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1254 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 1255 | "dev": true 1256 | }, 1257 | "util-deprecate": { 1258 | "version": "1.0.2", 1259 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1260 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1261 | "dev": true 1262 | }, 1263 | "wrappy": { 1264 | "version": "1.0.2", 1265 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1266 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1267 | "dev": true 1268 | }, 1269 | "xmlcreate": { 1270 | "version": "1.0.2", 1271 | "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", 1272 | "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", 1273 | "dev": true 1274 | } 1275 | } 1276 | } 1277 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "framework-utils", 3 | "version": "1.1.0", 4 | "description": "utils for framework", 5 | "main": "./dist/utils.cjs.js", 6 | "module": "./dist/utils.esm.js", 7 | "sideEffects": false, 8 | "types": "declaration/index.d.ts", 9 | "scripts": { 10 | "start": "rollup -c -w", 11 | "build": "rollup -c && npm run declaration && print-sizes ./dist", 12 | "declaration": "rm -rf declaration && tsc -p tsconfig.declaration.json", 13 | "doc": "rm -rf ./doc && jsdoc -c jsdoc.json", 14 | "prerelease": "npm run build && prerelease --dirs=dist,doc", 15 | "release": "npm run build && npm run doc && release --dirs=dist,doc", 16 | "release:init": "npm run build && npm run doc && release -i --dirs=dist,doc" 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "git+https://github.com/daybrush/framework-utils.git" 21 | }, 22 | "author": "Daybrush", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/daybrush/framework-utils/issues" 26 | }, 27 | "homepage": "https://github.com/daybrush/framework-utils#readme", 28 | "devDependencies": { 29 | "@daybrush/builder": "^0.1.1", 30 | "@daybrush/jsdoc": "^0.3.7", 31 | "@daybrush/release": "^0.2.4", 32 | "daybrush-jsdoc-template": "^1.6.0", 33 | "print-sizes": "0.0.4", 34 | "tslint": "^5.18.0", 35 | "typescript": "^3.5.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | 2 | import builder from "@daybrush/builder"; 3 | 4 | export default builder([ 5 | { 6 | input: "src/index.ts", 7 | output: "./dist/utils.esm.js", 8 | exports: "named", 9 | format: "es", 10 | }, 11 | { 12 | input: "src/index.ts", 13 | output: "./dist/utils.cjs.js", 14 | exports: "named", 15 | format: "cjs", 16 | }, 17 | ]); 18 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export function prefixNames(prefix: string, ...classNames: string[]) { 2 | return classNames 3 | .map((className) => 4 | className 5 | .split(" ") 6 | .map((name) => (name ? `${prefix}${name}` : "")) 7 | .join(" ") 8 | ) 9 | .join(" "); 10 | } 11 | 12 | export function prefixCSS(prefix: string, css: string) { 13 | return css.replace(/([^}{]*){/gm, (_, selector) => { 14 | return `${selector.replace(/\.([^{,\s\d.]+)/g, `.${prefix}$1`)}{`; 15 | }); 16 | } 17 | 18 | /* react */ 19 | export function ref(target: any, name: string) { 20 | return (e: any) => { 21 | e && (target[name] = e); 22 | }; 23 | } 24 | export function refs(target: any, name: string, i: number) { 25 | return (e: any) => { 26 | e && (target[name][i] = e); 27 | }; 28 | } 29 | 30 | /* Class Decorator */ 31 | export function Properties( 32 | properties: any[], 33 | action: (prototype: any, property: string) => any 34 | ) { 35 | return (component: any) => { 36 | const prototype = component.prototype; 37 | 38 | properties.forEach((property) => { 39 | action(prototype, property); 40 | }); 41 | }; 42 | } 43 | 44 | /* Property Decorator */ 45 | export function withMethods( 46 | methods: readonly string[], 47 | duplicate: { [name: string]: string } = {} 48 | ) { 49 | return (prototype: any, propertyName: string) => { 50 | methods.forEach((name) => { 51 | const methodName = duplicate[name] || name; 52 | 53 | if (methodName in prototype) { 54 | return; 55 | } 56 | prototype[methodName] = function (...args) { 57 | const result = this[propertyName][name](...args); 58 | 59 | if (result === this[propertyName]) { 60 | return this; 61 | } else { 62 | return result; 63 | } 64 | }; 65 | }); 66 | }; 67 | } 68 | 69 | export type ParametersType = Func extends ( 70 | ...params: infer Params 71 | ) => any 72 | ? (...params: Params) => Return 73 | : never; 74 | 75 | export type ExcludeInterface = { 76 | [key in Exclude]: Obj1[key]; 77 | }; 78 | 79 | export type EntriesObject = { 80 | [key in keyof T]: [key, Readonly]; 81 | }; 82 | export type FindKey = E extends [infer U, V] ? U & string : never; 83 | export type InvertObject< 84 | T extends Record, 85 | En extends Record = EntriesObject 86 | > = { 87 | [key in En[keyof En][1]]: FindKey 88 | }; 89 | 90 | export type Entries< 91 | Obj extends { [key: string]: any }, 92 | Key = keyof Obj 93 | > = Key extends string ? [Key, Obj[Key]] : never; 94 | 95 | export type ReverseKey< 96 | Key extends string, 97 | Obj extends { [key: string]: any }, 98 | E = Entries 99 | > = E extends [infer Value, Key] ? Value : never; 100 | 101 | export type UniqueMethodInterface< 102 | Methods, 103 | Target extends Methods, 104 | ReturnTarget extends any, 105 | Duplicate extends { [key: string]: any } 106 | > = { 107 | [key in keyof ExcludeInterface]: Methods[key] extends ( 108 | ...params: any[] 109 | ) => Target 110 | ? ParametersType 111 | : Methods[key]; 112 | }; 113 | 114 | export type ChangedMethodInterface< 115 | Methods, 116 | Target extends Methods, 117 | ReturnTarget extends any, 118 | Duplicate extends { [key: string]: any } 119 | > = { 120 | [key in Duplicate[keyof Duplicate]]: Methods[ReverseKey & 121 | keyof Methods] extends (...params: any[]) => Target 122 | ? ParametersType< 123 | Methods[ReverseKey & keyof Methods], 124 | ReturnTarget 125 | > 126 | : Methods[ReverseKey & keyof Methods]; 127 | }; 128 | 129 | export type MethodInterface< 130 | Methods, 131 | Target extends Methods, 132 | ReturnTarget extends any, 133 | Duplicate extends { [key: string]: any } = {} 134 | > = UniqueMethodInterface & 135 | ChangedMethodInterface; 136 | -------------------------------------------------------------------------------- /tsconfig.declaration.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "removeComments": true, 5 | "declaration": true, 6 | "emitDeclarationOnly": true, 7 | "declarationDir": "declaration" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./outjs/", 4 | "esModuleInterop": false, 5 | "sourceMap": true, 6 | "module": "es2015", 7 | "target": "es5", 8 | "experimentalDecorators": true, 9 | "skipLibCheck": true, 10 | "moduleResolution": "node", 11 | "lib": [ 12 | "es2015", 13 | "dom" 14 | ], 15 | }, 16 | "include": [ 17 | "./src/**/*.ts" 18 | ] 19 | } -------------------------------------------------------------------------------- /tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "noImplicitAny": false, 6 | "types": [ 7 | "karma-chai", 8 | "mocha" 9 | ] 10 | }, 11 | "include": [ 12 | "./src/**/*.ts", 13 | "./test/**/*.ts" 14 | ] 15 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "rules": { 7 | "jsdoc-format": false, 8 | "forin": false, 9 | "no-console": false, 10 | "no-any": false, 11 | "interface-name": false, 12 | "indent": [ 13 | true, 14 | "spaces", 15 | 4 16 | ], 17 | "ordered-imports": false, 18 | "object-literal-sort-keys": false, 19 | "no-unused-expression": false, 20 | "arrow-parens": [ 21 | true, 22 | "ban-single-arg-parens" 23 | ], 24 | "max-line-length": [ 25 | true, 26 | { 27 | "limit": 120, 28 | "ignore-pattern": "(\\* @)|//" 29 | } 30 | ], 31 | "trailing-comma": [ 32 | true, 33 | { 34 | "multiline": { 35 | "objects": "always", 36 | "arrays": "always", 37 | "functions": "always", 38 | "typeLiterals": "ignore" 39 | }, 40 | "esSpecCompliant": true 41 | } 42 | ] 43 | } 44 | } --------------------------------------------------------------------------------