├── .editorconfig ├── .gitignore ├── .prettierrc ├── .travis.yml ├── Gruntfile.js ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── tasks └── tight_sprite.js └── tests └── icons ├── license.txt ├── readme.txt ├── x16 ├── address_16.png ├── block_16.png ├── bookmark_16.png ├── briefcase_16.png ├── bubble_16.png ├── buy_16.png ├── calendar_16.png ├── clipboard_16.png ├── clock_16.png ├── delete_16.png ├── diagram_16.png ├── document_16.png ├── down_16.png ├── flag_16.png ├── folder_16.png ├── gear_16.png ├── globe_16.png ├── heart_16.png ├── help_16.png ├── home_16.png ├── info_16.png ├── key_16.png ├── label_16.png ├── left_16.png ├── letter_16.png ├── monitor_16.png ├── pencil_16.png ├── plus_16.png ├── present_16.png ├── print_16.png ├── right_16.png ├── save_16.png ├── search_16.png ├── shield_16.png ├── statistics_16.png ├── stop_16.png ├── tick_16.png ├── trash_16.png ├── up_16.png ├── user_16.png ├── wallet_16.png └── warning_16.png ├── x32 ├── address_32.png ├── block_32.png ├── bookmark_32.png ├── briefcase_32.png ├── bubble_32.png ├── buy_32.png ├── calendar_32.png ├── clipboard_32.png ├── clock_32.png ├── delete_32.png ├── diagram_32.png ├── document_32.png ├── down_32.png ├── flag_32.png ├── folder_32.png ├── gear_32.png ├── globe_32.png ├── heart_32.png ├── help_32.png ├── home_32.png ├── info_32.png ├── key_32.png ├── label_32.png ├── left_32.png ├── letter_32.png ├── monitor_32.png ├── pencil_32.png ├── plus_32.png ├── present_32.png ├── print_32.png ├── right_32.png ├── save_32.png ├── search_32.png ├── shield_32.png ├── statistics_32.png ├── stop_32.png ├── tick_32.png ├── trash_32.png ├── up_32.png ├── user_32.png ├── wallet_32.png └── warning_32.png ├── x48 ├── address_48.png ├── block_48.png ├── bookmark_48.png ├── briefcase_48.png ├── bubble_48.png ├── buy_48.png ├── calendar_48.png ├── clipboard_48.png ├── clock_48.png ├── delete_48.png ├── diagram_48.png ├── document_48.png ├── down_48.png ├── flag_48.png ├── folder_48.png ├── gear_48.png ├── globe_48.png ├── heart_48.png ├── help_48.png ├── home_48.png ├── info_48.png ├── key_48.png ├── label_48.png ├── left_48.png ├── letter_48.png ├── monitor_48.png ├── pencil_48.png ├── plus_48.png ├── present_48.png ├── print_48.png ├── right_48.png ├── save_48.png ├── search_48.png ├── shield_48.png ├── statistics_48.png ├── stop_48.png ├── tick_48.png ├── trash_48.png ├── up_48.png ├── user_48.png ├── wallet_48.png └── warning_48.png └── x64 ├── address_64.png ├── block_64.png ├── bookmark_64.png ├── briefcase_64.png ├── bubble_64.png ├── buy_64.png ├── calendar_64.png ├── clipboard_64.png ├── clock_64.png ├── delete_64.png ├── diagram_64.png ├── document_64.png ├── down_64.png ├── flag_64.png ├── folder_64.png ├── gear_64.png ├── globe_64.png ├── heart_64.png ├── help_64.png ├── home_64.png ├── info_64.png ├── key_64.png ├── label_64.png ├── left_64.png ├── letter_64.png ├── monitor_64.png ├── pencil_64.png ├── plus_64.png ├── present_64.png ├── print_64.png ├── right_64.png ├── save_64.png ├── search_64.png ├── shield_64.png ├── statistics_64.png ├── stop_64.png ├── tick_64.png ├── trash_64.png ├── up_64.png ├── user_64.png ├── wallet_64.png └── warning_64.png /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | indent_style = space 9 | indent_size = 2 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | tmp 4 | *.sublime-* 5 | 6 | tests/icons/sprite1.css 7 | tests/icons/sprite1.png 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 160, 3 | "singleQuote": true, 4 | "bracketSpacing": false 5 | } 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: true 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - "8" 7 | - "10" 8 | - "12" 9 | - "13" 10 | 11 | env: 12 | - CXX=g++-7 13 | 14 | addons: 15 | apt: 16 | sources: 17 | - ubuntu-toolchain-r-test 18 | packages: 19 | - build-essential 20 | - libcairo2-dev 21 | - libpango1.0-dev 22 | - libjpeg-dev 23 | - libgif-dev 24 | - librsvg2-dev 25 | - gcc-7 26 | - g++-7 27 | 28 | before_script: 29 | - npm install -g grunt-cli 30 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | /* 2 | * grunt-tight-sprite 3 | * https://github.com/uhop/grunt-tight-sprite 4 | * 5 | * Copyright (c) 2013 Eugene Lazutkin 6 | * Licensed under the New BSD license. 7 | */ 8 | 9 | "use strict"; 10 | 11 | var iconPath = "tests/icons/"; 12 | 13 | module.exports = function(grunt) { 14 | grunt.initConfig({ 15 | tight_sprite: { 16 | sprite1: { 17 | options: { 18 | hide: iconPath 19 | }, 20 | src: [iconPath + "*/**/*.{png,jpg,jpeg,gif}"], 21 | dest: iconPath + "sprite1.png" 22 | } 23 | } 24 | }); 25 | 26 | grunt.loadTasks("tasks"); 27 | 28 | grunt.registerTask("default", "tight_sprite"); 29 | grunt.registerTask("test", "tight_sprite"); 30 | }; 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This library is available under the terms of the modified BSD license. 2 | No external contributions are allowed under licenses which are fundamentally 3 | incompatible with the BSD license that this library is distributed under. 4 | 5 | The text of the BSD license is reproduced below. 6 | 7 | ------------------------------------------------------------------------------- 8 | The "New" BSD License: 9 | ********************** 10 | 11 | Copyright (c) 2005-2012, Eugene Lazutkin 12 | All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | * Redistributions of source code must retain the above copyright notice, this 18 | list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above copyright notice, 20 | this list of conditions and the following disclaimer in the documentation 21 | and/or other materials provided with the distribution. 22 | * Neither the name of Eugene Lazutkin nor the names of other contributors 23 | may be used to endorse or promote products derived from this software 24 | without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 27 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 28 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 29 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 30 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 32 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 34 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # grunt-tight-sprite 2 | 3 | [![Build status][travis-image]][travis-url] 4 | [![NPM version][npm-image]][npm-url] 5 | 6 | [![Greenkeeper badge](https://badges.greenkeeper.io/uhop/grunt-tight-sprite.svg)](https://greenkeeper.io/) 7 | [![Dependencies][deps-image]][deps-url] 8 | [![devDependencies][dev-deps-image]][dev-deps-url] 9 | 10 | 11 | > Tight 2D packing of images into a sprite with a corresponding CSS. 12 | 13 | ## Getting Started 14 | 15 | This plugin requires Grunt `~0.4.1` 16 | 17 | If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command: 18 | 19 | ```shell 20 | npm install grunt-tight-sprite --save-dev 21 | ``` 22 | 23 | Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: 24 | 25 | ```js 26 | grunt.loadNpmTasks('grunt-tight-sprite'); 27 | ``` 28 | 29 | ## The "tight_sprite" task 30 | 31 | ### Overview 32 | 33 | In your project's Gruntfile, add a section named `tight_sprite` to the data object passed into `grunt.initConfig()`. 34 | 35 | ```js 36 | var iconPath = "tests/icons/"; 37 | grunt.initConfig({ 38 | tight_sprite: { 39 | // describe my sprite #1 40 | my_sprite1: { 41 | options: { 42 | classPrefix: "", 43 | silent: true, 44 | hide: iconPath 45 | }, 46 | src: [iconPath + "*/**/*.{png,jpg,jpeg,gif}"], 47 | dest: iconPath + "sprite1.png" 48 | } 49 | } 50 | }); 51 | ``` 52 | 53 | ### Documentation 54 | 55 | Please consult [Wiki](https://github.com/uhop/grunt-tight-sprite/wiki) and 56 | [FAQ](https://github.com/uhop/grunt-tight-sprite/wiki/FAQ). 57 | 58 | ## Contributing 59 | 60 | In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/). 61 | 62 | ## Release History 63 | 64 | - 0.2.7 *refreshed dependencies (Canvas 2!). Thx [Max Motovilov](https://github.com/MaxMotovilov)!* 65 | - 0.2.6 *refreshed dependencies.* 66 | - 0.2.5 *refreshed dependencies.* 67 | - 0.2.4 *refreshed dependencies.* 68 | - 0.2.3 *new dependencies on Grunt to include its version of 1.0.0.* 69 | - 0.2.2 *refreshed dependencies.* 70 | - 0.2.1 *added the ability to pad images.* 71 | - 0.2.0 *stability fixes, more flexible template options.* 72 | - 0.1.9 *added the ability to specify dot and path separators.* 73 | - 0.1.8 *fixed an example.* 74 | - 0.1.7 *added `hide` option.* 75 | - 0.1.6 *added arbitrary parameters to a template. Thanks, Vladimir Lugovsky!* 76 | - 0.1.5 *removed some accidental garbage.* 77 | - 0.1.4 *accurate work with layouting 0 and 1 rectangle.* 78 | - 0.1.3 *bugfix.* 79 | - 0.1.2 *added support for skipping path from CSS class names.* 80 | - 0.1.1 *added support for file extensions.* 81 | - 0.1.0 *the initial release.* 82 | 83 | ## License 84 | 85 | BSD 86 | 87 | [npm-image]: https://img.shields.io/npm/v/grunt-tight-sprite.svg 88 | [npm-url]: https://npmjs.org/package/grunt-tight-sprite 89 | [deps-image]: https://img.shields.io/david/uhop/grunt-tight-sprite.svg 90 | [deps-url]: https://david-dm.org/uhop/grunt-tight-sprite 91 | [dev-deps-image]: https://img.shields.io/david/dev/uhop/grunt-tight-sprite.svg 92 | [dev-deps-url]: https://david-dm.org/uhop/grunt-tight-sprite?type=dev 93 | [travis-image]: https://img.shields.io/travis/uhop/grunt-tight-sprite.svg 94 | [travis-url]: https://travis-ci.org/uhop/grunt-tight-sprite 95 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "grunt-tight-sprite", 3 | "version": "0.2.7", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abbrev": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 10 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 11 | }, 12 | "ansi-regex": { 13 | "version": "2.1.1", 14 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 15 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 16 | }, 17 | "ansi-styles": { 18 | "version": "3.2.1", 19 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 20 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 21 | "dev": true, 22 | "requires": { 23 | "color-convert": "^1.9.0" 24 | } 25 | }, 26 | "aproba": { 27 | "version": "1.2.0", 28 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 29 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 30 | }, 31 | "are-we-there-yet": { 32 | "version": "1.1.5", 33 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 34 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 35 | "requires": { 36 | "delegates": "^1.0.0", 37 | "readable-stream": "^2.0.6" 38 | } 39 | }, 40 | "argparse": { 41 | "version": "1.0.10", 42 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 43 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 44 | "dev": true, 45 | "requires": { 46 | "sprintf-js": "~1.0.2" 47 | }, 48 | "dependencies": { 49 | "sprintf-js": { 50 | "version": "1.0.3", 51 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 52 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 53 | "dev": true 54 | } 55 | } 56 | }, 57 | "array-find-index": { 58 | "version": "1.0.2", 59 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 60 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 61 | "dev": true 62 | }, 63 | "async": { 64 | "version": "1.5.2", 65 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 66 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 67 | "dev": true 68 | }, 69 | "balanced-match": { 70 | "version": "1.0.0", 71 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 72 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 73 | }, 74 | "brace-expansion": { 75 | "version": "1.1.11", 76 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 77 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 78 | "requires": { 79 | "balanced-match": "^1.0.0", 80 | "concat-map": "0.0.1" 81 | } 82 | }, 83 | "camelcase": { 84 | "version": "2.1.1", 85 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 86 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 87 | "dev": true 88 | }, 89 | "camelcase-keys": { 90 | "version": "2.1.0", 91 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 92 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 93 | "dev": true, 94 | "requires": { 95 | "camelcase": "^2.0.0", 96 | "map-obj": "^1.0.0" 97 | } 98 | }, 99 | "canvas": { 100 | "version": "2.6.1", 101 | "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz", 102 | "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==", 103 | "requires": { 104 | "nan": "^2.14.0", 105 | "node-pre-gyp": "^0.11.0", 106 | "simple-get": "^3.0.3" 107 | } 108 | }, 109 | "chalk": { 110 | "version": "2.4.2", 111 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 112 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 113 | "dev": true, 114 | "requires": { 115 | "ansi-styles": "^3.2.1", 116 | "escape-string-regexp": "^1.0.5", 117 | "supports-color": "^5.3.0" 118 | } 119 | }, 120 | "chownr": { 121 | "version": "1.1.3", 122 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", 123 | "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" 124 | }, 125 | "code-point-at": { 126 | "version": "1.1.0", 127 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 128 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 129 | }, 130 | "coffeescript": { 131 | "version": "1.10.0", 132 | "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", 133 | "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", 134 | "dev": true 135 | }, 136 | "color-convert": { 137 | "version": "1.9.3", 138 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 139 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 140 | "dev": true, 141 | "requires": { 142 | "color-name": "1.1.3" 143 | } 144 | }, 145 | "color-name": { 146 | "version": "1.1.3", 147 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 148 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 149 | "dev": true 150 | }, 151 | "colors": { 152 | "version": "1.1.2", 153 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", 154 | "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", 155 | "dev": true 156 | }, 157 | "concat-map": { 158 | "version": "0.0.1", 159 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 160 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 161 | }, 162 | "console-control-strings": { 163 | "version": "1.1.0", 164 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 165 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 166 | }, 167 | "core-util-is": { 168 | "version": "1.0.2", 169 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 170 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 171 | }, 172 | "currently-unhandled": { 173 | "version": "0.4.1", 174 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 175 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 176 | "dev": true, 177 | "requires": { 178 | "array-find-index": "^1.0.1" 179 | } 180 | }, 181 | "dateformat": { 182 | "version": "1.0.12", 183 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", 184 | "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", 185 | "dev": true, 186 | "requires": { 187 | "get-stdin": "^4.0.1", 188 | "meow": "^3.3.0" 189 | } 190 | }, 191 | "debug": { 192 | "version": "3.2.6", 193 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 194 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 195 | "requires": { 196 | "ms": "^2.1.1" 197 | } 198 | }, 199 | "decamelize": { 200 | "version": "1.2.0", 201 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 202 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 203 | "dev": true 204 | }, 205 | "decompress-response": { 206 | "version": "4.2.1", 207 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 208 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 209 | "requires": { 210 | "mimic-response": "^2.0.0" 211 | } 212 | }, 213 | "deep-extend": { 214 | "version": "0.6.0", 215 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 216 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 217 | }, 218 | "delegates": { 219 | "version": "1.0.0", 220 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 221 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 222 | }, 223 | "detect-libc": { 224 | "version": "1.0.3", 225 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 226 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" 227 | }, 228 | "error-ex": { 229 | "version": "1.3.2", 230 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 231 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 232 | "dev": true, 233 | "requires": { 234 | "is-arrayish": "^0.2.1" 235 | } 236 | }, 237 | "escape-string-regexp": { 238 | "version": "1.0.5", 239 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 240 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 241 | "dev": true 242 | }, 243 | "esprima": { 244 | "version": "4.0.1", 245 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 246 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 247 | "dev": true 248 | }, 249 | "eventemitter2": { 250 | "version": "0.4.14", 251 | "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", 252 | "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", 253 | "dev": true 254 | }, 255 | "exit": { 256 | "version": "0.1.2", 257 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 258 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", 259 | "dev": true 260 | }, 261 | "find-up": { 262 | "version": "1.1.2", 263 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 264 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 265 | "dev": true, 266 | "requires": { 267 | "path-exists": "^2.0.0", 268 | "pinkie-promise": "^2.0.0" 269 | } 270 | }, 271 | "findup-sync": { 272 | "version": "0.3.0", 273 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", 274 | "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", 275 | "dev": true, 276 | "requires": { 277 | "glob": "~5.0.0" 278 | }, 279 | "dependencies": { 280 | "glob": { 281 | "version": "5.0.15", 282 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", 283 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 284 | "dev": true, 285 | "requires": { 286 | "inflight": "^1.0.4", 287 | "inherits": "2", 288 | "minimatch": "2 || 3", 289 | "once": "^1.3.0", 290 | "path-is-absolute": "^1.0.0" 291 | } 292 | } 293 | } 294 | }, 295 | "fs-minipass": { 296 | "version": "1.2.7", 297 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", 298 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", 299 | "requires": { 300 | "minipass": "^2.6.0" 301 | } 302 | }, 303 | "fs.realpath": { 304 | "version": "1.0.0", 305 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 306 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 307 | }, 308 | "gauge": { 309 | "version": "2.7.4", 310 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 311 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 312 | "requires": { 313 | "aproba": "^1.0.3", 314 | "console-control-strings": "^1.0.0", 315 | "has-unicode": "^2.0.0", 316 | "object-assign": "^4.1.0", 317 | "signal-exit": "^3.0.0", 318 | "string-width": "^1.0.1", 319 | "strip-ansi": "^3.0.1", 320 | "wide-align": "^1.1.0" 321 | } 322 | }, 323 | "get-stdin": { 324 | "version": "4.0.1", 325 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 326 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 327 | "dev": true 328 | }, 329 | "getobject": { 330 | "version": "0.1.0", 331 | "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", 332 | "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", 333 | "dev": true 334 | }, 335 | "glob": { 336 | "version": "7.1.6", 337 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 338 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 339 | "requires": { 340 | "fs.realpath": "^1.0.0", 341 | "inflight": "^1.0.4", 342 | "inherits": "2", 343 | "minimatch": "^3.0.4", 344 | "once": "^1.3.0", 345 | "path-is-absolute": "^1.0.0" 346 | } 347 | }, 348 | "graceful-fs": { 349 | "version": "4.2.3", 350 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 351 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 352 | "dev": true 353 | }, 354 | "grunt": { 355 | "version": "1.0.4", 356 | "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz", 357 | "integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==", 358 | "dev": true, 359 | "requires": { 360 | "coffeescript": "~1.10.0", 361 | "dateformat": "~1.0.12", 362 | "eventemitter2": "~0.4.13", 363 | "exit": "~0.1.1", 364 | "findup-sync": "~0.3.0", 365 | "glob": "~7.0.0", 366 | "grunt-cli": "~1.2.0", 367 | "grunt-known-options": "~1.1.0", 368 | "grunt-legacy-log": "~2.0.0", 369 | "grunt-legacy-util": "~1.1.1", 370 | "iconv-lite": "~0.4.13", 371 | "js-yaml": "~3.13.0", 372 | "minimatch": "~3.0.2", 373 | "mkdirp": "~0.5.1", 374 | "nopt": "~3.0.6", 375 | "path-is-absolute": "~1.0.0", 376 | "rimraf": "~2.6.2" 377 | }, 378 | "dependencies": { 379 | "glob": { 380 | "version": "7.0.6", 381 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", 382 | "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", 383 | "dev": true, 384 | "requires": { 385 | "fs.realpath": "^1.0.0", 386 | "inflight": "^1.0.4", 387 | "inherits": "2", 388 | "minimatch": "^3.0.2", 389 | "once": "^1.3.0", 390 | "path-is-absolute": "^1.0.0" 391 | } 392 | }, 393 | "grunt-cli": { 394 | "version": "1.2.0", 395 | "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", 396 | "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", 397 | "dev": true, 398 | "requires": { 399 | "findup-sync": "~0.3.0", 400 | "grunt-known-options": "~1.1.0", 401 | "nopt": "~3.0.6", 402 | "resolve": "~1.1.0" 403 | } 404 | }, 405 | "nopt": { 406 | "version": "3.0.6", 407 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 408 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 409 | "dev": true, 410 | "requires": { 411 | "abbrev": "1" 412 | } 413 | }, 414 | "resolve": { 415 | "version": "1.1.7", 416 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 417 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 418 | "dev": true 419 | }, 420 | "rimraf": { 421 | "version": "2.6.3", 422 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 423 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 424 | "dev": true, 425 | "requires": { 426 | "glob": "^7.1.3" 427 | }, 428 | "dependencies": { 429 | "glob": { 430 | "version": "7.1.6", 431 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 432 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 433 | "dev": true, 434 | "requires": { 435 | "fs.realpath": "^1.0.0", 436 | "inflight": "^1.0.4", 437 | "inherits": "2", 438 | "minimatch": "^3.0.4", 439 | "once": "^1.3.0", 440 | "path-is-absolute": "^1.0.0" 441 | } 442 | } 443 | } 444 | } 445 | } 446 | }, 447 | "grunt-known-options": { 448 | "version": "1.1.1", 449 | "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", 450 | "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", 451 | "dev": true 452 | }, 453 | "grunt-legacy-log": { 454 | "version": "2.0.0", 455 | "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", 456 | "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", 457 | "dev": true, 458 | "requires": { 459 | "colors": "~1.1.2", 460 | "grunt-legacy-log-utils": "~2.0.0", 461 | "hooker": "~0.2.3", 462 | "lodash": "~4.17.5" 463 | } 464 | }, 465 | "grunt-legacy-log-utils": { 466 | "version": "2.0.1", 467 | "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", 468 | "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", 469 | "dev": true, 470 | "requires": { 471 | "chalk": "~2.4.1", 472 | "lodash": "~4.17.10" 473 | } 474 | }, 475 | "grunt-legacy-util": { 476 | "version": "1.1.1", 477 | "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", 478 | "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", 479 | "dev": true, 480 | "requires": { 481 | "async": "~1.5.2", 482 | "exit": "~0.1.1", 483 | "getobject": "~0.1.0", 484 | "hooker": "~0.2.3", 485 | "lodash": "~4.17.10", 486 | "underscore.string": "~3.3.4", 487 | "which": "~1.3.0" 488 | } 489 | }, 490 | "has-flag": { 491 | "version": "3.0.0", 492 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 493 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 494 | "dev": true 495 | }, 496 | "has-unicode": { 497 | "version": "2.0.1", 498 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 499 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 500 | }, 501 | "heya-ctr": { 502 | "version": "0.2.3", 503 | "resolved": "https://registry.npmjs.org/heya-ctr/-/heya-ctr-0.2.3.tgz", 504 | "integrity": "sha1-zfr7BtKuTJfTja70FTy1a/TDmPY=" 505 | }, 506 | "hooker": { 507 | "version": "0.2.3", 508 | "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", 509 | "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", 510 | "dev": true 511 | }, 512 | "hosted-git-info": { 513 | "version": "2.8.5", 514 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", 515 | "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", 516 | "dev": true 517 | }, 518 | "iconv-lite": { 519 | "version": "0.4.24", 520 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 521 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 522 | "requires": { 523 | "safer-buffer": ">= 2.1.2 < 3" 524 | } 525 | }, 526 | "ignore-walk": { 527 | "version": "3.0.3", 528 | "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", 529 | "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", 530 | "requires": { 531 | "minimatch": "^3.0.4" 532 | } 533 | }, 534 | "image-size": { 535 | "version": "0.8.3", 536 | "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", 537 | "integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==", 538 | "requires": { 539 | "queue": "6.0.1" 540 | } 541 | }, 542 | "indent-string": { 543 | "version": "2.1.0", 544 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 545 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 546 | "dev": true, 547 | "requires": { 548 | "repeating": "^2.0.0" 549 | } 550 | }, 551 | "inflight": { 552 | "version": "1.0.6", 553 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 554 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 555 | "requires": { 556 | "once": "^1.3.0", 557 | "wrappy": "1" 558 | } 559 | }, 560 | "inherits": { 561 | "version": "2.0.4", 562 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 563 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 564 | }, 565 | "ini": { 566 | "version": "1.3.5", 567 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 568 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 569 | }, 570 | "is-arrayish": { 571 | "version": "0.2.1", 572 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 573 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 574 | "dev": true 575 | }, 576 | "is-finite": { 577 | "version": "1.0.2", 578 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 579 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 580 | "dev": true, 581 | "requires": { 582 | "number-is-nan": "^1.0.0" 583 | } 584 | }, 585 | "is-fullwidth-code-point": { 586 | "version": "1.0.0", 587 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 588 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 589 | "requires": { 590 | "number-is-nan": "^1.0.0" 591 | } 592 | }, 593 | "is-utf8": { 594 | "version": "0.2.1", 595 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 596 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 597 | "dev": true 598 | }, 599 | "isarray": { 600 | "version": "1.0.0", 601 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 602 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 603 | }, 604 | "isexe": { 605 | "version": "2.0.0", 606 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 607 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 608 | "dev": true 609 | }, 610 | "js-yaml": { 611 | "version": "3.13.1", 612 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 613 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 614 | "dev": true, 615 | "requires": { 616 | "argparse": "^1.0.7", 617 | "esprima": "^4.0.0" 618 | } 619 | }, 620 | "load-json-file": { 621 | "version": "1.1.0", 622 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 623 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 624 | "dev": true, 625 | "requires": { 626 | "graceful-fs": "^4.1.2", 627 | "parse-json": "^2.2.0", 628 | "pify": "^2.0.0", 629 | "pinkie-promise": "^2.0.0", 630 | "strip-bom": "^2.0.0" 631 | } 632 | }, 633 | "lodash": { 634 | "version": "4.17.15", 635 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 636 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", 637 | "dev": true 638 | }, 639 | "lodash._reinterpolate": { 640 | "version": "3.0.0", 641 | "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", 642 | "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" 643 | }, 644 | "lodash.template": { 645 | "version": "4.5.0", 646 | "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", 647 | "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", 648 | "requires": { 649 | "lodash._reinterpolate": "^3.0.0", 650 | "lodash.templatesettings": "^4.0.0" 651 | } 652 | }, 653 | "lodash.templatesettings": { 654 | "version": "4.2.0", 655 | "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", 656 | "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", 657 | "requires": { 658 | "lodash._reinterpolate": "^3.0.0" 659 | } 660 | }, 661 | "loud-rejection": { 662 | "version": "1.6.0", 663 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 664 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 665 | "dev": true, 666 | "requires": { 667 | "currently-unhandled": "^0.4.1", 668 | "signal-exit": "^3.0.0" 669 | } 670 | }, 671 | "map-obj": { 672 | "version": "1.0.1", 673 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 674 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 675 | "dev": true 676 | }, 677 | "meow": { 678 | "version": "3.7.0", 679 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 680 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 681 | "dev": true, 682 | "requires": { 683 | "camelcase-keys": "^2.0.0", 684 | "decamelize": "^1.1.2", 685 | "loud-rejection": "^1.0.0", 686 | "map-obj": "^1.0.1", 687 | "minimist": "^1.1.3", 688 | "normalize-package-data": "^2.3.4", 689 | "object-assign": "^4.0.1", 690 | "read-pkg-up": "^1.0.1", 691 | "redent": "^1.0.0", 692 | "trim-newlines": "^1.0.0" 693 | }, 694 | "dependencies": { 695 | "minimist": { 696 | "version": "1.2.0", 697 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 698 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 699 | "dev": true 700 | } 701 | } 702 | }, 703 | "mimic-response": { 704 | "version": "2.0.0", 705 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.0.0.tgz", 706 | "integrity": "sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ==" 707 | }, 708 | "minimatch": { 709 | "version": "3.0.4", 710 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 711 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 712 | "requires": { 713 | "brace-expansion": "^1.1.7" 714 | } 715 | }, 716 | "minimist": { 717 | "version": "0.0.8", 718 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 719 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 720 | }, 721 | "minipass": { 722 | "version": "2.9.0", 723 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 724 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", 725 | "requires": { 726 | "safe-buffer": "^5.1.2", 727 | "yallist": "^3.0.0" 728 | } 729 | }, 730 | "minizlib": { 731 | "version": "1.3.3", 732 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", 733 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", 734 | "requires": { 735 | "minipass": "^2.9.0" 736 | } 737 | }, 738 | "mkdirp": { 739 | "version": "0.5.1", 740 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 741 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 742 | "requires": { 743 | "minimist": "0.0.8" 744 | } 745 | }, 746 | "ms": { 747 | "version": "2.1.2", 748 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 749 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 750 | }, 751 | "nan": { 752 | "version": "2.14.0", 753 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 754 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" 755 | }, 756 | "needle": { 757 | "version": "2.4.0", 758 | "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", 759 | "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", 760 | "requires": { 761 | "debug": "^3.2.6", 762 | "iconv-lite": "^0.4.4", 763 | "sax": "^1.2.4" 764 | } 765 | }, 766 | "node-pre-gyp": { 767 | "version": "0.11.0", 768 | "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", 769 | "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", 770 | "requires": { 771 | "detect-libc": "^1.0.2", 772 | "mkdirp": "^0.5.1", 773 | "needle": "^2.2.1", 774 | "nopt": "^4.0.1", 775 | "npm-packlist": "^1.1.6", 776 | "npmlog": "^4.0.2", 777 | "rc": "^1.2.7", 778 | "rimraf": "^2.6.1", 779 | "semver": "^5.3.0", 780 | "tar": "^4" 781 | } 782 | }, 783 | "nopt": { 784 | "version": "4.0.1", 785 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", 786 | "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", 787 | "requires": { 788 | "abbrev": "1", 789 | "osenv": "^0.1.4" 790 | } 791 | }, 792 | "normalize-package-data": { 793 | "version": "2.5.0", 794 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 795 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 796 | "dev": true, 797 | "requires": { 798 | "hosted-git-info": "^2.1.4", 799 | "resolve": "^1.10.0", 800 | "semver": "2 || 3 || 4 || 5", 801 | "validate-npm-package-license": "^3.0.1" 802 | } 803 | }, 804 | "npm-bundled": { 805 | "version": "1.1.1", 806 | "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", 807 | "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", 808 | "requires": { 809 | "npm-normalize-package-bin": "^1.0.1" 810 | } 811 | }, 812 | "npm-normalize-package-bin": { 813 | "version": "1.0.1", 814 | "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", 815 | "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" 816 | }, 817 | "npm-packlist": { 818 | "version": "1.4.7", 819 | "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz", 820 | "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", 821 | "requires": { 822 | "ignore-walk": "^3.0.1", 823 | "npm-bundled": "^1.0.1" 824 | } 825 | }, 826 | "npmlog": { 827 | "version": "4.1.2", 828 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 829 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 830 | "requires": { 831 | "are-we-there-yet": "~1.1.2", 832 | "console-control-strings": "~1.1.0", 833 | "gauge": "~2.7.3", 834 | "set-blocking": "~2.0.0" 835 | } 836 | }, 837 | "number-is-nan": { 838 | "version": "1.0.1", 839 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 840 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 841 | }, 842 | "object-assign": { 843 | "version": "4.1.1", 844 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 845 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 846 | }, 847 | "once": { 848 | "version": "1.4.0", 849 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 850 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 851 | "requires": { 852 | "wrappy": "1" 853 | } 854 | }, 855 | "os-homedir": { 856 | "version": "1.0.2", 857 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 858 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 859 | }, 860 | "os-tmpdir": { 861 | "version": "1.0.2", 862 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 863 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 864 | }, 865 | "osenv": { 866 | "version": "0.1.5", 867 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", 868 | "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 869 | "requires": { 870 | "os-homedir": "^1.0.0", 871 | "os-tmpdir": "^1.0.0" 872 | } 873 | }, 874 | "parse-json": { 875 | "version": "2.2.0", 876 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 877 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 878 | "dev": true, 879 | "requires": { 880 | "error-ex": "^1.2.0" 881 | } 882 | }, 883 | "path-exists": { 884 | "version": "2.1.0", 885 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 886 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 887 | "dev": true, 888 | "requires": { 889 | "pinkie-promise": "^2.0.0" 890 | } 891 | }, 892 | "path-is-absolute": { 893 | "version": "1.0.1", 894 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 895 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 896 | }, 897 | "path-parse": { 898 | "version": "1.0.6", 899 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 900 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 901 | "dev": true 902 | }, 903 | "path-type": { 904 | "version": "1.1.0", 905 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 906 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 907 | "dev": true, 908 | "requires": { 909 | "graceful-fs": "^4.1.2", 910 | "pify": "^2.0.0", 911 | "pinkie-promise": "^2.0.0" 912 | } 913 | }, 914 | "pify": { 915 | "version": "2.3.0", 916 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 917 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 918 | "dev": true 919 | }, 920 | "pinkie": { 921 | "version": "2.0.4", 922 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 923 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 924 | "dev": true 925 | }, 926 | "pinkie-promise": { 927 | "version": "2.0.1", 928 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 929 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 930 | "dev": true, 931 | "requires": { 932 | "pinkie": "^2.0.0" 933 | } 934 | }, 935 | "process-nextick-args": { 936 | "version": "2.0.1", 937 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 938 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 939 | }, 940 | "queue": { 941 | "version": "6.0.1", 942 | "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.1.tgz", 943 | "integrity": "sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==", 944 | "requires": { 945 | "inherits": "~2.0.3" 946 | } 947 | }, 948 | "rc": { 949 | "version": "1.2.8", 950 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 951 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 952 | "requires": { 953 | "deep-extend": "^0.6.0", 954 | "ini": "~1.3.0", 955 | "minimist": "^1.2.0", 956 | "strip-json-comments": "~2.0.1" 957 | }, 958 | "dependencies": { 959 | "minimist": { 960 | "version": "1.2.0", 961 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 962 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 963 | } 964 | } 965 | }, 966 | "read-pkg": { 967 | "version": "1.1.0", 968 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 969 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 970 | "dev": true, 971 | "requires": { 972 | "load-json-file": "^1.0.0", 973 | "normalize-package-data": "^2.3.2", 974 | "path-type": "^1.0.0" 975 | } 976 | }, 977 | "read-pkg-up": { 978 | "version": "1.0.1", 979 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 980 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 981 | "dev": true, 982 | "requires": { 983 | "find-up": "^1.0.0", 984 | "read-pkg": "^1.0.0" 985 | } 986 | }, 987 | "readable-stream": { 988 | "version": "2.3.7", 989 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 990 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 991 | "requires": { 992 | "core-util-is": "~1.0.0", 993 | "inherits": "~2.0.3", 994 | "isarray": "~1.0.0", 995 | "process-nextick-args": "~2.0.0", 996 | "safe-buffer": "~5.1.1", 997 | "string_decoder": "~1.1.1", 998 | "util-deprecate": "~1.0.1" 999 | } 1000 | }, 1001 | "redent": { 1002 | "version": "1.0.0", 1003 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1004 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1005 | "dev": true, 1006 | "requires": { 1007 | "indent-string": "^2.1.0", 1008 | "strip-indent": "^1.0.1" 1009 | } 1010 | }, 1011 | "repeating": { 1012 | "version": "2.0.1", 1013 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 1014 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 1015 | "dev": true, 1016 | "requires": { 1017 | "is-finite": "^1.0.0" 1018 | } 1019 | }, 1020 | "resolve": { 1021 | "version": "1.14.2", 1022 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", 1023 | "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", 1024 | "dev": true, 1025 | "requires": { 1026 | "path-parse": "^1.0.6" 1027 | } 1028 | }, 1029 | "rimraf": { 1030 | "version": "2.7.1", 1031 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1032 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1033 | "requires": { 1034 | "glob": "^7.1.3" 1035 | } 1036 | }, 1037 | "safe-buffer": { 1038 | "version": "5.1.2", 1039 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1040 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1041 | }, 1042 | "safer-buffer": { 1043 | "version": "2.1.2", 1044 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1045 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1046 | }, 1047 | "sax": { 1048 | "version": "1.2.4", 1049 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1050 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 1051 | }, 1052 | "semver": { 1053 | "version": "5.7.1", 1054 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1055 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 1056 | }, 1057 | "set-blocking": { 1058 | "version": "2.0.0", 1059 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1060 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 1061 | }, 1062 | "signal-exit": { 1063 | "version": "3.0.2", 1064 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1065 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 1066 | }, 1067 | "simple-concat": { 1068 | "version": "1.0.0", 1069 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", 1070 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" 1071 | }, 1072 | "simple-get": { 1073 | "version": "3.1.0", 1074 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", 1075 | "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", 1076 | "requires": { 1077 | "decompress-response": "^4.2.0", 1078 | "once": "^1.3.1", 1079 | "simple-concat": "^1.0.0" 1080 | } 1081 | }, 1082 | "spdx-correct": { 1083 | "version": "3.1.0", 1084 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 1085 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 1086 | "dev": true, 1087 | "requires": { 1088 | "spdx-expression-parse": "^3.0.0", 1089 | "spdx-license-ids": "^3.0.0" 1090 | } 1091 | }, 1092 | "spdx-exceptions": { 1093 | "version": "2.2.0", 1094 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 1095 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 1096 | "dev": true 1097 | }, 1098 | "spdx-expression-parse": { 1099 | "version": "3.0.0", 1100 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1101 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1102 | "dev": true, 1103 | "requires": { 1104 | "spdx-exceptions": "^2.1.0", 1105 | "spdx-license-ids": "^3.0.0" 1106 | } 1107 | }, 1108 | "spdx-license-ids": { 1109 | "version": "3.0.5", 1110 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 1111 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", 1112 | "dev": true 1113 | }, 1114 | "sprintf-js": { 1115 | "version": "1.1.2", 1116 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", 1117 | "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", 1118 | "dev": true 1119 | }, 1120 | "string-width": { 1121 | "version": "1.0.2", 1122 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1123 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1124 | "requires": { 1125 | "code-point-at": "^1.0.0", 1126 | "is-fullwidth-code-point": "^1.0.0", 1127 | "strip-ansi": "^3.0.0" 1128 | } 1129 | }, 1130 | "string_decoder": { 1131 | "version": "1.1.1", 1132 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1133 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1134 | "requires": { 1135 | "safe-buffer": "~5.1.0" 1136 | } 1137 | }, 1138 | "strip-ansi": { 1139 | "version": "3.0.1", 1140 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1141 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1142 | "requires": { 1143 | "ansi-regex": "^2.0.0" 1144 | } 1145 | }, 1146 | "strip-bom": { 1147 | "version": "2.0.0", 1148 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1149 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1150 | "dev": true, 1151 | "requires": { 1152 | "is-utf8": "^0.2.0" 1153 | } 1154 | }, 1155 | "strip-indent": { 1156 | "version": "1.0.1", 1157 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1158 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1159 | "dev": true, 1160 | "requires": { 1161 | "get-stdin": "^4.0.1" 1162 | } 1163 | }, 1164 | "strip-json-comments": { 1165 | "version": "2.0.1", 1166 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1167 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 1168 | }, 1169 | "supports-color": { 1170 | "version": "5.5.0", 1171 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1172 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1173 | "dev": true, 1174 | "requires": { 1175 | "has-flag": "^3.0.0" 1176 | } 1177 | }, 1178 | "tar": { 1179 | "version": "4.4.13", 1180 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", 1181 | "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", 1182 | "requires": { 1183 | "chownr": "^1.1.1", 1184 | "fs-minipass": "^1.2.5", 1185 | "minipass": "^2.8.6", 1186 | "minizlib": "^1.2.1", 1187 | "mkdirp": "^0.5.0", 1188 | "safe-buffer": "^5.1.2", 1189 | "yallist": "^3.0.3" 1190 | } 1191 | }, 1192 | "tight-sprite": { 1193 | "version": "0.1.5", 1194 | "resolved": "https://registry.npmjs.org/tight-sprite/-/tight-sprite-0.1.5.tgz", 1195 | "integrity": "sha1-WveMtdIljtE2PW1XG8bxGltXiQI=", 1196 | "requires": { 1197 | "heya-ctr": ">=0.2.3" 1198 | } 1199 | }, 1200 | "trim-newlines": { 1201 | "version": "1.0.0", 1202 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1203 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1204 | "dev": true 1205 | }, 1206 | "underscore.string": { 1207 | "version": "3.3.5", 1208 | "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", 1209 | "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", 1210 | "dev": true, 1211 | "requires": { 1212 | "sprintf-js": "^1.0.3", 1213 | "util-deprecate": "^1.0.2" 1214 | } 1215 | }, 1216 | "util-deprecate": { 1217 | "version": "1.0.2", 1218 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1219 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1220 | }, 1221 | "validate-npm-package-license": { 1222 | "version": "3.0.4", 1223 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1224 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1225 | "dev": true, 1226 | "requires": { 1227 | "spdx-correct": "^3.0.0", 1228 | "spdx-expression-parse": "^3.0.0" 1229 | } 1230 | }, 1231 | "which": { 1232 | "version": "1.3.1", 1233 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1234 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1235 | "dev": true, 1236 | "requires": { 1237 | "isexe": "^2.0.0" 1238 | } 1239 | }, 1240 | "wide-align": { 1241 | "version": "1.1.3", 1242 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1243 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1244 | "requires": { 1245 | "string-width": "^1.0.2 || 2" 1246 | } 1247 | }, 1248 | "wrappy": { 1249 | "version": "1.0.2", 1250 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1251 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1252 | }, 1253 | "yallist": { 1254 | "version": "3.1.1", 1255 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1256 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 1257 | } 1258 | } 1259 | } 1260 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "grunt-tight-sprite", 3 | "description": "Tight 2D packing of images into a sprite with a corresponding CSS.", 4 | "version": "0.2.7", 5 | "homepage": "https://github.com/uhop/grunt-tight-sprite/wiki", 6 | "author": { 7 | "name": "Eugene Lazutkin", 8 | "email": "eugene.lazutkin@gmail.com", 9 | "url": "http://lazutkin.com/" 10 | }, 11 | "github": "http://github.com/uhop/grunt-tight-sprite", 12 | "repository": { 13 | "type": "git", 14 | "url": "git://github.com/uhop/grunt-tight-sprite.git" 15 | }, 16 | "bugs": { 17 | "url": "https://github.com/uhop/grunt-tight-sprite/issues" 18 | }, 19 | "license": "BSD-3-Clause", 20 | "main": "Gruntfile.js", 21 | "directories": { 22 | "test": "tests" 23 | }, 24 | "scripts": { 25 | "test": "grunt test" 26 | }, 27 | "dependencies": { 28 | "canvas": "^2.6.1", 29 | "image-size": "^0.8.3", 30 | "lodash.template": "^4.5.0", 31 | "tight-sprite": "^0.1.5" 32 | }, 33 | "devDependencies": { 34 | "grunt": "^1.0.4" 35 | }, 36 | "keywords": [ 37 | "gruntplugin", 38 | "sprite", 39 | "css" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /tasks/tight_sprite.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | 4 | var path = require("path"); 5 | var fs = require("fs"); 6 | 7 | var sizeOf = require("image-size"); 8 | var Canvas = require("canvas"); 9 | var template = require("lodash.template"); 10 | 11 | var solver = require("tight-sprite/palletizing"); 12 | 13 | 14 | // template helpers 15 | 16 | function makeClassName(shortName, options){ 17 | if(!options.includePath){ 18 | shortName = path.basename(shortName); 19 | } 20 | if(!options.includeExt){ 21 | var ext = path.extname(shortName); 22 | if(ext){ 23 | shortName = shortName.replace(new RegExp("\\" + ext + "$"), ""); 24 | } 25 | } 26 | if(options.hide){ 27 | var l = options.hide.length; 28 | if(l <= shortName.length && options.hide === shortName.substr(0, l)){ 29 | shortName = shortName.substr(l); 30 | } 31 | } 32 | return shortName.replace(/\./g, options.dotSeparator). 33 | replace(new RegExp("\\" + path.sep, "g"), options.pathSeparator); 34 | } 35 | 36 | var defaultTemplate = 37 | ".<%= className %> {" + 38 | "background: url(<%= url %>) -<%= x %>px -<%= y %>px no-repeat; " + 39 | "width: <%= w %>px; " + 40 | "height: <%= h %>px;" + 41 | "}\n"; 42 | 43 | 44 | // the main function 45 | 46 | module.exports = function(grunt) { 47 | grunt.registerMultiTask("tight_sprite", 48 | "Tight 2D packing of images into a sprite with a corresponding CSS.", 49 | function(){ 50 | var done = this.async(), 51 | options = this.options({ 52 | jpeg: null, 53 | absolute: false, 54 | hide: "", 55 | classPrefix: "sprite_", 56 | dotSeparator: "_", 57 | pathSeparator: "_", 58 | includePath: true, 59 | includeExt: false, 60 | silent: false, 61 | fragment: true, 62 | padding: 0 63 | }); 64 | if(isNaN(options.padding) || options.padding < 0){ 65 | options.padding = 0; 66 | } 67 | 68 | this.files.forEach(function(file){ 69 | if(file.expand){ 70 | grunt.fatal("grunt-tight-sprite does not support 'expand' option.", 3); 71 | return; 72 | } 73 | if(file.cwd){ 74 | grunt.log.error("grunt-tight-sprite: 'cwd' is deprecated, use 'options.hide' instead."); 75 | } 76 | var layout, size, images = file.src.map(function(shortName){ 77 | var name = file.cwd ? path.join(file.cwd, shortName) : shortName, 78 | size = sizeOf(name); 79 | 80 | return { 81 | name: name, 82 | shortName: shortName, 83 | className: options.classPrefix + makeClassName(shortName, options), 84 | extension: path.extname(shortName), 85 | w: size.width + options.padding, 86 | h: size.height + options.padding 87 | }; 88 | }).sort(function(a, b){ 89 | if(a.name === b.name){ 90 | return 0; 91 | } 92 | return a.name < b.name ? -1 : 1; 93 | }); 94 | 95 | if(images.length === 0){ 96 | grunt.fatal("task: tight_sprite: " + this.target + " has 0 source files, exiting."); 97 | done(); 98 | return; 99 | } 100 | 101 | if(images.length > 1){ 102 | var result = solver(images, {silent: options.silent}); 103 | layout = result.layout; 104 | images = result.rectangles; 105 | size = result; // only using w and h 106 | }else{ 107 | // one image 108 | layout = [{n: 0, x: 0, y: 0}]; 109 | size = images[0]; // only using w and h 110 | } 111 | 112 | size.w += options.padding; 113 | size.h += options.padding; 114 | 115 | // prepare rectangles 116 | 117 | var cssName, imgName; 118 | if(path.extname(file.dest)){ 119 | imgName = file.dest; 120 | cssName = imgName.replace( 121 | new RegExp("\\" + path.extname(imgName) + "$"), 122 | ".css"); 123 | }else{ 124 | imgName = file.dest + (options.jpeg ? ".jpg" : ".png"); 125 | cssName = file.dest + ".css"; 126 | } 127 | if(options.cssDest){ 128 | cssName = options.cssDest; 129 | } 130 | 131 | var url = options.absolute ? path.resolve(imgName) : 132 | path.relative(path.dirname(path.resolve(cssName)), path.resolve(imgName)), 133 | rectangles = layout.map(function(pos){ 134 | var rect = images[pos.n]; 135 | return { 136 | name: rect.name, 137 | shortName: rect.shortName, 138 | className: rect.className, 139 | extension: rect.extension, 140 | w: rect.w - options.padding, 141 | h: rect.h - options.padding, 142 | x: pos.x + options.padding, 143 | y: pos.y + options.padding, 144 | url: url, 145 | size: size, 146 | params: options.templateParams || {} 147 | }; 148 | }).sort(function(a, b){ 149 | if(a.shortName === b.shortName){ 150 | return 0; 151 | } 152 | return a.shortName < b.shortName ? -1 : 1; 153 | }); 154 | 155 | // create a sprite image 156 | 157 | var canvas = Canvas.createCanvas(size.w, size.h), 158 | ctx = canvas.getContext("2d"); 159 | 160 | if(options.background){ 161 | ctx.fillStyle = options.background; 162 | ctx.fillRect(0, 0, size.w, size.h); 163 | } 164 | 165 | rectangles.forEach(function(rect){ 166 | var image = new (Canvas.Image)(); 167 | image.src = rect.name; 168 | ctx.drawImage(image, rect.x, rect.y); 169 | }); 170 | 171 | var inFlight = 2, 172 | imgOutput = fs.createWriteStream(imgName), 173 | stream = options.jpeg ? canvas.jpegStream(options.jpeg) : canvas.pngStream(); 174 | 175 | imgOutput.on("finish", function(){ 176 | if(!--inFlight){ 177 | done(); 178 | } 179 | }); 180 | 181 | stream.pipe(imgOutput); 182 | 183 | // create a CSS file 184 | 185 | var cssOutput = fs.createWriteStream(cssName); 186 | cssOutput.on("finish", function(){ 187 | if(!--inFlight){ 188 | done(); 189 | } 190 | }); 191 | 192 | var tmpl; 193 | if(options.template){ 194 | grunt.log.error("grunt-tight-sprite: 'options.template' is deprecated, use 'options.templateFile' instead."); 195 | tmpl = template(tmpl); 196 | }else if(options.templateFile){ 197 | tmpl = template(fs.readFileSync(options.templateFile, {options: "utf8"})); 198 | } 199 | 200 | if(tmpl && !options.fragment){ 201 | cssOutput.write(tmpl({ 202 | images: rectangles, 203 | url: url, 204 | size: size, 205 | params: options.templateParams || {} 206 | })); 207 | }else{ 208 | if(!options.fragment && !tmpl){ 209 | grunt.log.error("grunt-tight-sprite: when 'options.fragment' is false, 'options.templateFile' should be specified as well."); 210 | } 211 | tmpl = tmpl || template(defaultTemplate); 212 | rectangles.forEach(function(rect){ 213 | cssOutput.write(tmpl(rect)); 214 | }); 215 | } 216 | 217 | cssOutput.end(); 218 | }); 219 | } 220 | ); 221 | }; 222 | -------------------------------------------------------------------------------- /tests/icons/license.txt: -------------------------------------------------------------------------------- 1 | These icons are free for commercial use. 2 | A link to pixel-mixer.com is required. -------------------------------------------------------------------------------- /tests/icons/readme.txt: -------------------------------------------------------------------------------- 1 | All files in this folder and its subfolders are taken from 2 | http://prokofusha.deviantart.com/art/Basic-set-125164098 for testing purposes. 3 | While they are free (see license.txt), they are not used in the final product in any way, 4 | and included here only to provide a realistic testing set. -------------------------------------------------------------------------------- /tests/icons/x16/address_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/address_16.png -------------------------------------------------------------------------------- /tests/icons/x16/block_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/block_16.png -------------------------------------------------------------------------------- /tests/icons/x16/bookmark_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/bookmark_16.png -------------------------------------------------------------------------------- /tests/icons/x16/briefcase_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/briefcase_16.png -------------------------------------------------------------------------------- /tests/icons/x16/bubble_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/bubble_16.png -------------------------------------------------------------------------------- /tests/icons/x16/buy_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/buy_16.png -------------------------------------------------------------------------------- /tests/icons/x16/calendar_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/calendar_16.png -------------------------------------------------------------------------------- /tests/icons/x16/clipboard_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/clipboard_16.png -------------------------------------------------------------------------------- /tests/icons/x16/clock_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/clock_16.png -------------------------------------------------------------------------------- /tests/icons/x16/delete_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/delete_16.png -------------------------------------------------------------------------------- /tests/icons/x16/diagram_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/diagram_16.png -------------------------------------------------------------------------------- /tests/icons/x16/document_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/document_16.png -------------------------------------------------------------------------------- /tests/icons/x16/down_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/down_16.png -------------------------------------------------------------------------------- /tests/icons/x16/flag_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/flag_16.png -------------------------------------------------------------------------------- /tests/icons/x16/folder_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/folder_16.png -------------------------------------------------------------------------------- /tests/icons/x16/gear_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/gear_16.png -------------------------------------------------------------------------------- /tests/icons/x16/globe_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/globe_16.png -------------------------------------------------------------------------------- /tests/icons/x16/heart_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/heart_16.png -------------------------------------------------------------------------------- /tests/icons/x16/help_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/help_16.png -------------------------------------------------------------------------------- /tests/icons/x16/home_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/home_16.png -------------------------------------------------------------------------------- /tests/icons/x16/info_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/info_16.png -------------------------------------------------------------------------------- /tests/icons/x16/key_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/key_16.png -------------------------------------------------------------------------------- /tests/icons/x16/label_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/label_16.png -------------------------------------------------------------------------------- /tests/icons/x16/left_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/left_16.png -------------------------------------------------------------------------------- /tests/icons/x16/letter_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/letter_16.png -------------------------------------------------------------------------------- /tests/icons/x16/monitor_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/monitor_16.png -------------------------------------------------------------------------------- /tests/icons/x16/pencil_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/pencil_16.png -------------------------------------------------------------------------------- /tests/icons/x16/plus_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/plus_16.png -------------------------------------------------------------------------------- /tests/icons/x16/present_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/present_16.png -------------------------------------------------------------------------------- /tests/icons/x16/print_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/print_16.png -------------------------------------------------------------------------------- /tests/icons/x16/right_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/right_16.png -------------------------------------------------------------------------------- /tests/icons/x16/save_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/save_16.png -------------------------------------------------------------------------------- /tests/icons/x16/search_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/search_16.png -------------------------------------------------------------------------------- /tests/icons/x16/shield_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/shield_16.png -------------------------------------------------------------------------------- /tests/icons/x16/statistics_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/statistics_16.png -------------------------------------------------------------------------------- /tests/icons/x16/stop_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/stop_16.png -------------------------------------------------------------------------------- /tests/icons/x16/tick_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/tick_16.png -------------------------------------------------------------------------------- /tests/icons/x16/trash_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/trash_16.png -------------------------------------------------------------------------------- /tests/icons/x16/up_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/up_16.png -------------------------------------------------------------------------------- /tests/icons/x16/user_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/user_16.png -------------------------------------------------------------------------------- /tests/icons/x16/wallet_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/wallet_16.png -------------------------------------------------------------------------------- /tests/icons/x16/warning_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x16/warning_16.png -------------------------------------------------------------------------------- /tests/icons/x32/address_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/address_32.png -------------------------------------------------------------------------------- /tests/icons/x32/block_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/block_32.png -------------------------------------------------------------------------------- /tests/icons/x32/bookmark_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/bookmark_32.png -------------------------------------------------------------------------------- /tests/icons/x32/briefcase_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/briefcase_32.png -------------------------------------------------------------------------------- /tests/icons/x32/bubble_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/bubble_32.png -------------------------------------------------------------------------------- /tests/icons/x32/buy_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/buy_32.png -------------------------------------------------------------------------------- /tests/icons/x32/calendar_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/calendar_32.png -------------------------------------------------------------------------------- /tests/icons/x32/clipboard_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/clipboard_32.png -------------------------------------------------------------------------------- /tests/icons/x32/clock_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/clock_32.png -------------------------------------------------------------------------------- /tests/icons/x32/delete_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/delete_32.png -------------------------------------------------------------------------------- /tests/icons/x32/diagram_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/diagram_32.png -------------------------------------------------------------------------------- /tests/icons/x32/document_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/document_32.png -------------------------------------------------------------------------------- /tests/icons/x32/down_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/down_32.png -------------------------------------------------------------------------------- /tests/icons/x32/flag_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/flag_32.png -------------------------------------------------------------------------------- /tests/icons/x32/folder_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/folder_32.png -------------------------------------------------------------------------------- /tests/icons/x32/gear_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/gear_32.png -------------------------------------------------------------------------------- /tests/icons/x32/globe_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/globe_32.png -------------------------------------------------------------------------------- /tests/icons/x32/heart_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/heart_32.png -------------------------------------------------------------------------------- /tests/icons/x32/help_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/help_32.png -------------------------------------------------------------------------------- /tests/icons/x32/home_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/home_32.png -------------------------------------------------------------------------------- /tests/icons/x32/info_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/info_32.png -------------------------------------------------------------------------------- /tests/icons/x32/key_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/key_32.png -------------------------------------------------------------------------------- /tests/icons/x32/label_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/label_32.png -------------------------------------------------------------------------------- /tests/icons/x32/left_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/left_32.png -------------------------------------------------------------------------------- /tests/icons/x32/letter_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/letter_32.png -------------------------------------------------------------------------------- /tests/icons/x32/monitor_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/monitor_32.png -------------------------------------------------------------------------------- /tests/icons/x32/pencil_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/pencil_32.png -------------------------------------------------------------------------------- /tests/icons/x32/plus_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/plus_32.png -------------------------------------------------------------------------------- /tests/icons/x32/present_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/present_32.png -------------------------------------------------------------------------------- /tests/icons/x32/print_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/print_32.png -------------------------------------------------------------------------------- /tests/icons/x32/right_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/right_32.png -------------------------------------------------------------------------------- /tests/icons/x32/save_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/save_32.png -------------------------------------------------------------------------------- /tests/icons/x32/search_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/search_32.png -------------------------------------------------------------------------------- /tests/icons/x32/shield_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/shield_32.png -------------------------------------------------------------------------------- /tests/icons/x32/statistics_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/statistics_32.png -------------------------------------------------------------------------------- /tests/icons/x32/stop_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/stop_32.png -------------------------------------------------------------------------------- /tests/icons/x32/tick_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/tick_32.png -------------------------------------------------------------------------------- /tests/icons/x32/trash_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/trash_32.png -------------------------------------------------------------------------------- /tests/icons/x32/up_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/up_32.png -------------------------------------------------------------------------------- /tests/icons/x32/user_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/user_32.png -------------------------------------------------------------------------------- /tests/icons/x32/wallet_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/wallet_32.png -------------------------------------------------------------------------------- /tests/icons/x32/warning_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x32/warning_32.png -------------------------------------------------------------------------------- /tests/icons/x48/address_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/address_48.png -------------------------------------------------------------------------------- /tests/icons/x48/block_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/block_48.png -------------------------------------------------------------------------------- /tests/icons/x48/bookmark_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/bookmark_48.png -------------------------------------------------------------------------------- /tests/icons/x48/briefcase_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/briefcase_48.png -------------------------------------------------------------------------------- /tests/icons/x48/bubble_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/bubble_48.png -------------------------------------------------------------------------------- /tests/icons/x48/buy_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/buy_48.png -------------------------------------------------------------------------------- /tests/icons/x48/calendar_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/calendar_48.png -------------------------------------------------------------------------------- /tests/icons/x48/clipboard_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/clipboard_48.png -------------------------------------------------------------------------------- /tests/icons/x48/clock_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/clock_48.png -------------------------------------------------------------------------------- /tests/icons/x48/delete_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/delete_48.png -------------------------------------------------------------------------------- /tests/icons/x48/diagram_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/diagram_48.png -------------------------------------------------------------------------------- /tests/icons/x48/document_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/document_48.png -------------------------------------------------------------------------------- /tests/icons/x48/down_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/down_48.png -------------------------------------------------------------------------------- /tests/icons/x48/flag_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/flag_48.png -------------------------------------------------------------------------------- /tests/icons/x48/folder_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/folder_48.png -------------------------------------------------------------------------------- /tests/icons/x48/gear_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/gear_48.png -------------------------------------------------------------------------------- /tests/icons/x48/globe_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/globe_48.png -------------------------------------------------------------------------------- /tests/icons/x48/heart_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/heart_48.png -------------------------------------------------------------------------------- /tests/icons/x48/help_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/help_48.png -------------------------------------------------------------------------------- /tests/icons/x48/home_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/home_48.png -------------------------------------------------------------------------------- /tests/icons/x48/info_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/info_48.png -------------------------------------------------------------------------------- /tests/icons/x48/key_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/key_48.png -------------------------------------------------------------------------------- /tests/icons/x48/label_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/label_48.png -------------------------------------------------------------------------------- /tests/icons/x48/left_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/left_48.png -------------------------------------------------------------------------------- /tests/icons/x48/letter_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/letter_48.png -------------------------------------------------------------------------------- /tests/icons/x48/monitor_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/monitor_48.png -------------------------------------------------------------------------------- /tests/icons/x48/pencil_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/pencil_48.png -------------------------------------------------------------------------------- /tests/icons/x48/plus_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/plus_48.png -------------------------------------------------------------------------------- /tests/icons/x48/present_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/present_48.png -------------------------------------------------------------------------------- /tests/icons/x48/print_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/print_48.png -------------------------------------------------------------------------------- /tests/icons/x48/right_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/right_48.png -------------------------------------------------------------------------------- /tests/icons/x48/save_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/save_48.png -------------------------------------------------------------------------------- /tests/icons/x48/search_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/search_48.png -------------------------------------------------------------------------------- /tests/icons/x48/shield_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/shield_48.png -------------------------------------------------------------------------------- /tests/icons/x48/statistics_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/statistics_48.png -------------------------------------------------------------------------------- /tests/icons/x48/stop_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/stop_48.png -------------------------------------------------------------------------------- /tests/icons/x48/tick_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/tick_48.png -------------------------------------------------------------------------------- /tests/icons/x48/trash_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/trash_48.png -------------------------------------------------------------------------------- /tests/icons/x48/up_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/up_48.png -------------------------------------------------------------------------------- /tests/icons/x48/user_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/user_48.png -------------------------------------------------------------------------------- /tests/icons/x48/wallet_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/wallet_48.png -------------------------------------------------------------------------------- /tests/icons/x48/warning_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x48/warning_48.png -------------------------------------------------------------------------------- /tests/icons/x64/address_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/address_64.png -------------------------------------------------------------------------------- /tests/icons/x64/block_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/block_64.png -------------------------------------------------------------------------------- /tests/icons/x64/bookmark_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/bookmark_64.png -------------------------------------------------------------------------------- /tests/icons/x64/briefcase_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/briefcase_64.png -------------------------------------------------------------------------------- /tests/icons/x64/bubble_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/bubble_64.png -------------------------------------------------------------------------------- /tests/icons/x64/buy_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/buy_64.png -------------------------------------------------------------------------------- /tests/icons/x64/calendar_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/calendar_64.png -------------------------------------------------------------------------------- /tests/icons/x64/clipboard_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/clipboard_64.png -------------------------------------------------------------------------------- /tests/icons/x64/clock_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/clock_64.png -------------------------------------------------------------------------------- /tests/icons/x64/delete_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/delete_64.png -------------------------------------------------------------------------------- /tests/icons/x64/diagram_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/diagram_64.png -------------------------------------------------------------------------------- /tests/icons/x64/document_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/document_64.png -------------------------------------------------------------------------------- /tests/icons/x64/down_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/down_64.png -------------------------------------------------------------------------------- /tests/icons/x64/flag_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/flag_64.png -------------------------------------------------------------------------------- /tests/icons/x64/folder_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/folder_64.png -------------------------------------------------------------------------------- /tests/icons/x64/gear_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/gear_64.png -------------------------------------------------------------------------------- /tests/icons/x64/globe_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/globe_64.png -------------------------------------------------------------------------------- /tests/icons/x64/heart_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/heart_64.png -------------------------------------------------------------------------------- /tests/icons/x64/help_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/help_64.png -------------------------------------------------------------------------------- /tests/icons/x64/home_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/home_64.png -------------------------------------------------------------------------------- /tests/icons/x64/info_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/info_64.png -------------------------------------------------------------------------------- /tests/icons/x64/key_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/key_64.png -------------------------------------------------------------------------------- /tests/icons/x64/label_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/label_64.png -------------------------------------------------------------------------------- /tests/icons/x64/left_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/left_64.png -------------------------------------------------------------------------------- /tests/icons/x64/letter_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/letter_64.png -------------------------------------------------------------------------------- /tests/icons/x64/monitor_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/monitor_64.png -------------------------------------------------------------------------------- /tests/icons/x64/pencil_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/pencil_64.png -------------------------------------------------------------------------------- /tests/icons/x64/plus_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/plus_64.png -------------------------------------------------------------------------------- /tests/icons/x64/present_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/present_64.png -------------------------------------------------------------------------------- /tests/icons/x64/print_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/print_64.png -------------------------------------------------------------------------------- /tests/icons/x64/right_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/right_64.png -------------------------------------------------------------------------------- /tests/icons/x64/save_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/save_64.png -------------------------------------------------------------------------------- /tests/icons/x64/search_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/search_64.png -------------------------------------------------------------------------------- /tests/icons/x64/shield_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/shield_64.png -------------------------------------------------------------------------------- /tests/icons/x64/statistics_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/statistics_64.png -------------------------------------------------------------------------------- /tests/icons/x64/stop_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/stop_64.png -------------------------------------------------------------------------------- /tests/icons/x64/tick_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/tick_64.png -------------------------------------------------------------------------------- /tests/icons/x64/trash_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/trash_64.png -------------------------------------------------------------------------------- /tests/icons/x64/up_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/up_64.png -------------------------------------------------------------------------------- /tests/icons/x64/user_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/user_64.png -------------------------------------------------------------------------------- /tests/icons/x64/wallet_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/wallet_64.png -------------------------------------------------------------------------------- /tests/icons/x64/warning_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uhop/grunt-tight-sprite/541c1573a8e8136caeb283de4fc814ed0cabf18a/tests/icons/x64/warning_64.png --------------------------------------------------------------------------------