├── .gitignore
├── README.md
├── index.js
├── package.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | *.jpg
2 | node_modules
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DPlayer-thumbnails
2 |
3 | > Generate thumbnails for [DPlayer](https://github.com/MoePlayer/DPlayer)
4 |
5 | [](https://www.npmjs.com/package/dplayer-thumbnails)
6 | [](https://www.npmjs.com/package/dplayer-thumbnails)
7 | [](https://david-dm.org/MoePlayer/DPlayer-thumbnails#info=dependencies)
8 |
9 | ## Install
10 |
11 | ```
12 | $ npm install -g dplayer-thumbnails
13 | ```
14 |
15 | ## Usage
16 | ```
17 | $ dplayer-thumbnails --help
18 | $ dplayer-thumbnails -o ./thumbnails.jpg -q 60 demo.mp4
19 | ```
20 |
21 | ## Author
22 |
23 | **DPlayer-thumbnails** © [DIYgod](https://github.com/DIYgod), Released under the [MIT](./LICENSE) License.
24 | Authored and maintained by DIYgod with help from contributors ([list](https://github.com/DIYgod/DPlayer-thumbnails/contributors)).
25 |
26 | > Blog [@Anotherhome](https://www.anotherhome.net) · GitHub [@DIYgod](https://github.com/DIYgod) · Twitter [@DIYgod](https://twitter.com/DIYgod) · Telegram Channel [@awesomeDIYgod](https://t.me/awesomeDIYgod)
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | var ffmpeg = require('fluent-ffmpeg');
3 | var nsg = require('node-sprite-generator');
4 | var Jimp = require('jimp');
5 | var rm = require('rimraf');
6 | var Spinner = require('cli-spinner').Spinner;
7 | var program = require('commander');
8 | var os = require('os');
9 | var spinner;
10 |
11 | function startSpinner (string, step) {
12 | spinner = new Spinner(`[${step}/3] %s ${string}...`);
13 | spinner.setSpinnerString('|/-\\');
14 | spinner.start();
15 | }
16 |
17 | var startTime = +new Date();
18 | var tmp = os.tmpdir() + '/dplayer-thumbnails'
19 |
20 | program
21 | .version('0.0.5')
22 | .usage('[options] ')
23 | .option('-o, --output ', 'thumbnails path, default: ./thumbnails.jpg', './thumbnails.jpg')
24 | .option('-q, --quality ', 'thumbnails quality, default: 60', 60)
25 | .description('🎉 Generate thumbnails for DPlayer')
26 | .action(function (file) {
27 | startSpinner('Screenshots generating', 1);
28 | ffmpeg(file)
29 | .screenshots({
30 | count: 100,
31 | folder: tmp,
32 | filename: 'screenshot%00i.png',
33 | size: '160x?'
34 | })
35 | .on('end', function () {
36 | spinner.stop(true);
37 | console.log('[1/3] Screenshots generated!');
38 | startSpinner('Sprite generating', 2);
39 |
40 | nsg({
41 | src: [
42 | tmp + '/*.png'
43 | ],
44 | spritePath: tmp + '/sprite.png',
45 | stylesheetPath: tmp + '/sprite.css',
46 | layout: 'horizontal',
47 | compositor: 'jimp'
48 | }, function (err) {
49 | spinner.stop(true);
50 | console.log('[2/3] Sprite generated!');
51 | startSpinner('Compressing', 3);
52 |
53 | Jimp.read(tmp + '/sprite.png', function (err, lenna) {
54 | if (err) throw err;
55 | lenna.quality(parseInt(program.quality))
56 | .write(program.output);
57 | rm(tmp, function () {
58 | spinner.stop(true);
59 | console.log('[3/3] Compressing complete!');
60 | console.log(`✨ Done in ${(+new Date() - startTime) / 1000}s.`);
61 | });
62 | });
63 | });
64 | });
65 | });
66 |
67 | program.parse(process.argv);
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dplayer-thumbnails",
3 | "version": "0.0.5",
4 | "description": "Generate thumbnails for DPlayer",
5 | "main": "index.js",
6 | "devDependencies": {},
7 | "dependencies": {
8 | "cli-spinner": "^0.2.6",
9 | "commander": "^2.11.0",
10 | "fluent-ffmpeg": "^2.1.2",
11 | "jimp": "^0.2.28",
12 | "node-sprite-generator": "^0.10.2",
13 | "rimraf": "^2.6.1"
14 | },
15 | "scripts": {
16 | "test": "echo \"Error: no test specified\" && exit 1"
17 | },
18 | "repository": {
19 | "type": "git",
20 | "url": "git+https://github.com/MoePlayer/DPlayer-thumbnails.git"
21 | },
22 | "bin": {
23 | "dplayer-thumbnails": "./index.js"
24 | },
25 | "keywords": [
26 | "thumbnails",
27 | "player",
28 | "dplayer"
29 | ],
30 | "author": "DIYgod",
31 | "license": "MIT",
32 | "bugs": {
33 | "url": "https://github.com/MoePlayer/DPlayer-thumbnails/issues"
34 | },
35 | "homepage": "https://github.com/MoePlayer/DPlayer-thumbnails#readme"
36 | }
37 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | ajv@^5.1.0:
6 | version "5.5.0"
7 | resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz#eb2840746e9dc48bd5e063a36e3fd400c5eab5a9"
8 | dependencies:
9 | co "^4.6.0"
10 | fast-deep-equal "^1.0.0"
11 | fast-json-stable-stringify "^2.0.0"
12 | json-schema-traverse "^0.3.0"
13 |
14 | array-parallel@~0.1.3:
15 | version "0.1.3"
16 | resolved "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz#8f785308926ed5aa478c47e64d1b334b6c0c947d"
17 |
18 | array-series@~0.1.5:
19 | version "0.1.5"
20 | resolved "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz#df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f"
21 |
22 | asn1@~0.2.3:
23 | version "0.2.3"
24 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
25 |
26 | assert-plus@1.0.0, assert-plus@^1.0.0:
27 | version "1.0.0"
28 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
29 |
30 | async@1.2.0:
31 | version "1.2.0"
32 | resolved "https://registry.npmjs.org/async/-/async-1.2.0.tgz#9029580f93d05a7cab24f502c84707ac3ef57b10"
33 |
34 | async@>=0.2.9:
35 | version "2.6.0"
36 | resolved "https://registry.npmjs.org/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
37 | dependencies:
38 | lodash "^4.14.0"
39 |
40 | asynckit@^0.4.0:
41 | version "0.4.0"
42 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
43 |
44 | aws-sign2@~0.7.0:
45 | version "0.7.0"
46 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
47 |
48 | aws4@^1.6.0:
49 | version "1.6.0"
50 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
51 |
52 | balanced-match@^1.0.0:
53 | version "1.0.0"
54 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
55 |
56 | bcrypt-pbkdf@^1.0.0:
57 | version "1.0.1"
58 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
59 | dependencies:
60 | tweetnacl "^0.14.3"
61 |
62 | bignumber.js@^2.1.0:
63 | version "2.4.0"
64 | resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
65 |
66 | bin-pack@1.0.1:
67 | version "1.0.1"
68 | resolved "https://registry.npmjs.org/bin-pack/-/bin-pack-1.0.1.tgz#556da38f866f2aebe56ecb45f42849b084b0c66f"
69 |
70 | bmp-js@0.0.1:
71 | version "0.0.1"
72 | resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.1.tgz#5ad0147099d13a9f38aa7b99af1d6e78666ed37f"
73 |
74 | bmp-js@0.0.3:
75 | version "0.0.3"
76 | resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a"
77 |
78 | boom@4.x.x:
79 | version "4.3.1"
80 | resolved "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
81 | dependencies:
82 | hoek "4.x.x"
83 |
84 | boom@5.x.x:
85 | version "5.2.0"
86 | resolved "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
87 | dependencies:
88 | hoek "4.x.x"
89 |
90 | brace-expansion@^1.0.0, brace-expansion@^1.1.7:
91 | version "1.1.8"
92 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
93 | dependencies:
94 | balanced-match "^1.0.0"
95 | concat-map "0.0.1"
96 |
97 | buffer-equal@0.0.1:
98 | version "0.0.1"
99 | resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
100 |
101 | canvas@1.3.12:
102 | version "1.3.12"
103 | resolved "https://registry.npmjs.org/canvas/-/canvas-1.3.12.tgz#0e6d7b78d6c9730cf1129d1138b28d6d52667e93"
104 | dependencies:
105 | nan "^2.1.0"
106 |
107 | caseless@~0.12.0:
108 | version "0.12.0"
109 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
110 |
111 | cli-spinner@^0.2.6:
112 | version "0.2.7"
113 | resolved "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.7.tgz#7f7868a6f52ed5a621d5169ced428b61847a97c7"
114 |
115 | co@^4.6.0:
116 | version "4.6.0"
117 | resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
118 |
119 | combined-stream@^1.0.5, combined-stream@~1.0.5:
120 | version "1.0.5"
121 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
122 | dependencies:
123 | delayed-stream "~1.0.0"
124 |
125 | commander@^2.11.0:
126 | version "2.12.2"
127 | resolved "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555"
128 |
129 | concat-map@0.0.1:
130 | version "0.0.1"
131 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
132 |
133 | core-util-is@1.0.2:
134 | version "1.0.2"
135 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
136 |
137 | cryptiles@3.x.x:
138 | version "3.1.2"
139 | resolved "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
140 | dependencies:
141 | boom "5.x.x"
142 |
143 | dashdash@^1.12.0:
144 | version "1.14.1"
145 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
146 | dependencies:
147 | assert-plus "^1.0.0"
148 |
149 | debug@~2.2.0:
150 | version "2.2.0"
151 | resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
152 | dependencies:
153 | ms "0.7.1"
154 |
155 | delayed-stream@~1.0.0:
156 | version "1.0.0"
157 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
158 |
159 | dom-walk@^0.1.0:
160 | version "0.1.1"
161 | resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
162 |
163 | ecc-jsbn@~0.1.1:
164 | version "0.1.1"
165 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
166 | dependencies:
167 | jsbn "~0.1.0"
168 |
169 | es6-promise@^3.0.2:
170 | version "3.3.1"
171 | resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
172 |
173 | exif-parser@^0.1.9:
174 | version "0.1.12"
175 | resolved "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
176 |
177 | extend@~3.0.1:
178 | version "3.0.1"
179 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
180 |
181 | extsprintf@1.3.0:
182 | version "1.3.0"
183 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
184 |
185 | extsprintf@^1.2.0:
186 | version "1.4.0"
187 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
188 |
189 | fast-deep-equal@^1.0.0:
190 | version "1.0.0"
191 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
192 |
193 | fast-json-stable-stringify@^2.0.0:
194 | version "2.0.0"
195 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
196 |
197 | file-type@^3.1.0:
198 | version "3.9.0"
199 | resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
200 |
201 | fluent-ffmpeg@^2.1.2:
202 | version "2.1.2"
203 | resolved "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74"
204 | dependencies:
205 | async ">=0.2.9"
206 | which "^1.1.1"
207 |
208 | for-each@^0.3.2:
209 | version "0.3.2"
210 | resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
211 | dependencies:
212 | is-function "~1.0.0"
213 |
214 | forever-agent@~0.6.1:
215 | version "0.6.1"
216 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
217 |
218 | form-data@~2.3.1:
219 | version "2.3.1"
220 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
221 | dependencies:
222 | asynckit "^0.4.0"
223 | combined-stream "^1.0.5"
224 | mime-types "^2.1.12"
225 |
226 | fs.realpath@^1.0.0:
227 | version "1.0.0"
228 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
229 |
230 | getpass@^0.1.1:
231 | version "0.1.7"
232 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
233 | dependencies:
234 | assert-plus "^1.0.0"
235 |
236 | glob@5.0.10:
237 | version "5.0.10"
238 | resolved "https://registry.npmjs.org/glob/-/glob-5.0.10.tgz#3ee350319f31f352cef6899a48f6b6b7834c6899"
239 | dependencies:
240 | inflight "^1.0.4"
241 | inherits "2"
242 | minimatch "^2.0.1"
243 | once "^1.3.0"
244 | path-is-absolute "^1.0.0"
245 |
246 | glob@^7.0.5:
247 | version "7.1.2"
248 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
249 | dependencies:
250 | fs.realpath "^1.0.0"
251 | inflight "^1.0.4"
252 | inherits "2"
253 | minimatch "^3.0.4"
254 | once "^1.3.0"
255 | path-is-absolute "^1.0.0"
256 |
257 | global@~4.3.0:
258 | version "4.3.2"
259 | resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
260 | dependencies:
261 | min-document "^2.19.0"
262 | process "~0.5.1"
263 |
264 | gm@1.22.0:
265 | version "1.22.0"
266 | resolved "https://registry.npmjs.org/gm/-/gm-1.22.0.tgz#670bf3691ae9ae46cadf47012ea12ac40a8027c2"
267 | dependencies:
268 | array-parallel "~0.1.3"
269 | array-series "~0.1.5"
270 | debug "~2.2.0"
271 |
272 | har-schema@^2.0.0:
273 | version "2.0.0"
274 | resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
275 |
276 | har-validator@~5.0.3:
277 | version "5.0.3"
278 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
279 | dependencies:
280 | ajv "^5.1.0"
281 | har-schema "^2.0.0"
282 |
283 | hawk@~6.0.2:
284 | version "6.0.2"
285 | resolved "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
286 | dependencies:
287 | boom "4.x.x"
288 | cryptiles "3.x.x"
289 | hoek "4.x.x"
290 | sntp "2.x.x"
291 |
292 | hoek@4.x.x:
293 | version "4.2.0"
294 | resolved "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
295 |
296 | http-signature@~1.2.0:
297 | version "1.2.0"
298 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
299 | dependencies:
300 | assert-plus "^1.0.0"
301 | jsprim "^1.2.2"
302 | sshpk "^1.7.0"
303 |
304 | inflight@^1.0.4:
305 | version "1.0.6"
306 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
307 | dependencies:
308 | once "^1.3.0"
309 | wrappy "1"
310 |
311 | inherits@2:
312 | version "2.0.3"
313 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
314 |
315 | ip-regex@^1.0.1:
316 | version "1.0.3"
317 | resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
318 |
319 | is-function@^1.0.1, is-function@~1.0.0:
320 | version "1.0.1"
321 | resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
322 |
323 | is-typedarray@~1.0.0:
324 | version "1.0.0"
325 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
326 |
327 | isexe@^2.0.0:
328 | version "2.0.0"
329 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
330 |
331 | isstream@~0.1.2:
332 | version "0.1.2"
333 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
334 |
335 | jimp@0.2.21:
336 | version "0.2.21"
337 | resolved "https://registry.npmjs.org/jimp/-/jimp-0.2.21.tgz#5122960cd5d5bc4196a85345f66a33b7daee4eb3"
338 | dependencies:
339 | bignumber.js "^2.1.0"
340 | bmp-js "0.0.1"
341 | es6-promise "^3.0.2"
342 | exif-parser "^0.1.9"
343 | file-type "^3.1.0"
344 | jpeg-js "^0.1.1"
345 | mime "^1.3.4"
346 | pixelmatch "^4.0.0"
347 | pngjs "^2.1.0"
348 | read-chunk "^1.0.1"
349 | request "^2.65.0"
350 | stream-to-buffer "^0.1.0"
351 | tinycolor2 "^1.1.2"
352 | url-regex "^3.0.0"
353 |
354 | jimp@^0.2.28:
355 | version "0.2.28"
356 | resolved "https://registry.npmjs.org/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2"
357 | dependencies:
358 | bignumber.js "^2.1.0"
359 | bmp-js "0.0.3"
360 | es6-promise "^3.0.2"
361 | exif-parser "^0.1.9"
362 | file-type "^3.1.0"
363 | jpeg-js "^0.2.0"
364 | load-bmfont "^1.2.3"
365 | mime "^1.3.4"
366 | mkdirp "0.5.1"
367 | pixelmatch "^4.0.0"
368 | pngjs "^3.0.0"
369 | read-chunk "^1.0.1"
370 | request "^2.65.0"
371 | stream-to-buffer "^0.1.0"
372 | tinycolor2 "^1.1.2"
373 | url-regex "^3.0.0"
374 |
375 | jpeg-js@^0.1.1:
376 | version "0.1.2"
377 | resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz#135b992c0575c985cfa0f494a3227ed238583ece"
378 |
379 | jpeg-js@^0.2.0:
380 | version "0.2.0"
381 | resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482"
382 |
383 | jsbn@~0.1.0:
384 | version "0.1.1"
385 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
386 |
387 | json-schema-traverse@^0.3.0:
388 | version "0.3.1"
389 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
390 |
391 | json-schema@0.2.3:
392 | version "0.2.3"
393 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
394 |
395 | json-stringify-safe@~5.0.1:
396 | version "5.0.1"
397 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
398 |
399 | jsprim@^1.2.2:
400 | version "1.4.1"
401 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
402 | dependencies:
403 | assert-plus "1.0.0"
404 | extsprintf "1.3.0"
405 | json-schema "0.2.3"
406 | verror "1.10.0"
407 |
408 | load-bmfont@^1.2.3:
409 | version "1.3.0"
410 | resolved "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.3.0.tgz#bb7e7c710de6bcafcb13cb3b8c81e0c0131ecbc9"
411 | dependencies:
412 | buffer-equal "0.0.1"
413 | mime "^1.3.4"
414 | parse-bmfont-ascii "^1.0.3"
415 | parse-bmfont-binary "^1.0.5"
416 | parse-bmfont-xml "^1.1.0"
417 | xhr "^2.0.1"
418 | xtend "^4.0.0"
419 |
420 | lodash@^4.14.0:
421 | version "4.17.4"
422 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
423 |
424 | mime-db@~1.30.0:
425 | version "1.30.0"
426 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
427 |
428 | mime-types@^2.1.12, mime-types@~2.1.17:
429 | version "2.1.17"
430 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
431 | dependencies:
432 | mime-db "~1.30.0"
433 |
434 | mime@^1.3.4:
435 | version "1.6.0"
436 | resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
437 |
438 | min-document@^2.19.0:
439 | version "2.19.0"
440 | resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
441 | dependencies:
442 | dom-walk "^0.1.0"
443 |
444 | minimatch@^2.0.1:
445 | version "2.0.10"
446 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
447 | dependencies:
448 | brace-expansion "^1.0.0"
449 |
450 | minimatch@^3.0.4:
451 | version "3.0.4"
452 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
453 | dependencies:
454 | brace-expansion "^1.1.7"
455 |
456 | minimist@0.0.8:
457 | version "0.0.8"
458 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
459 |
460 | mkdirp@0.5.1:
461 | version "0.5.1"
462 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
463 | dependencies:
464 | minimist "0.0.8"
465 |
466 | ms@0.7.1:
467 | version "0.7.1"
468 | resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
469 |
470 | nan@^2.1.0:
471 | version "2.8.0"
472 | resolved "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a"
473 |
474 | node-sprite-generator@^0.10.2:
475 | version "0.10.2"
476 | resolved "https://registry.npmjs.org/node-sprite-generator/-/node-sprite-generator-0.10.2.tgz#804e9020b93bd8decca10855c609f43de5db7fc2"
477 | dependencies:
478 | async "1.2.0"
479 | bin-pack "1.0.1"
480 | glob "5.0.10"
481 | jimp "0.2.21"
482 | mkdirp "0.5.1"
483 | underscore "1.8.3"
484 | optionalDependencies:
485 | canvas "1.3.12"
486 | gm "1.22.0"
487 |
488 | oauth-sign@~0.8.2:
489 | version "0.8.2"
490 | resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
491 |
492 | once@^1.3.0:
493 | version "1.4.0"
494 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
495 | dependencies:
496 | wrappy "1"
497 |
498 | parse-bmfont-ascii@^1.0.3:
499 | version "1.0.6"
500 | resolved "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
501 |
502 | parse-bmfont-binary@^1.0.5:
503 | version "1.0.6"
504 | resolved "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
505 |
506 | parse-bmfont-xml@^1.1.0:
507 | version "1.1.3"
508 | resolved "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.3.tgz#d6b66a371afd39c5007d9f0eeb262a4f2cce7b7c"
509 | dependencies:
510 | xml-parse-from-string "^1.0.0"
511 | xml2js "^0.4.5"
512 |
513 | parse-headers@^2.0.0:
514 | version "2.0.1"
515 | resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536"
516 | dependencies:
517 | for-each "^0.3.2"
518 | trim "0.0.1"
519 |
520 | path-is-absolute@^1.0.0:
521 | version "1.0.1"
522 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
523 |
524 | performance-now@^2.1.0:
525 | version "2.1.0"
526 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
527 |
528 | pixelmatch@^4.0.0:
529 | version "4.0.2"
530 | resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
531 | dependencies:
532 | pngjs "^3.0.0"
533 |
534 | pngjs@^2.1.0:
535 | version "2.3.1"
536 | resolved "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz#11d1e12b9cb64d63e30c143a330f4c1f567da85f"
537 |
538 | pngjs@^3.0.0:
539 | version "3.3.1"
540 | resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.3.1.tgz#8e14e6679ee7424b544334c3b2d21cea6d8c209a"
541 |
542 | process@~0.5.1:
543 | version "0.5.2"
544 | resolved "https://registry.npmjs.org/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
545 |
546 | punycode@^1.4.1:
547 | version "1.4.1"
548 | resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
549 |
550 | qs@~6.5.1:
551 | version "6.5.1"
552 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
553 |
554 | read-chunk@^1.0.1:
555 | version "1.0.1"
556 | resolved "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194"
557 |
558 | request@^2.65.0:
559 | version "2.83.0"
560 | resolved "https://registry.npmjs.org/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
561 | dependencies:
562 | aws-sign2 "~0.7.0"
563 | aws4 "^1.6.0"
564 | caseless "~0.12.0"
565 | combined-stream "~1.0.5"
566 | extend "~3.0.1"
567 | forever-agent "~0.6.1"
568 | form-data "~2.3.1"
569 | har-validator "~5.0.3"
570 | hawk "~6.0.2"
571 | http-signature "~1.2.0"
572 | is-typedarray "~1.0.0"
573 | isstream "~0.1.2"
574 | json-stringify-safe "~5.0.1"
575 | mime-types "~2.1.17"
576 | oauth-sign "~0.8.2"
577 | performance-now "^2.1.0"
578 | qs "~6.5.1"
579 | safe-buffer "^5.1.1"
580 | stringstream "~0.0.5"
581 | tough-cookie "~2.3.3"
582 | tunnel-agent "^0.6.0"
583 | uuid "^3.1.0"
584 |
585 | rimraf@^2.6.1:
586 | version "2.6.2"
587 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
588 | dependencies:
589 | glob "^7.0.5"
590 |
591 | safe-buffer@^5.0.1, safe-buffer@^5.1.1:
592 | version "5.1.1"
593 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
594 |
595 | sax@>=0.6.0:
596 | version "1.2.4"
597 | resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
598 |
599 | sntp@2.x.x:
600 | version "2.1.0"
601 | resolved "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
602 | dependencies:
603 | hoek "4.x.x"
604 |
605 | sshpk@^1.7.0:
606 | version "1.13.1"
607 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
608 | dependencies:
609 | asn1 "~0.2.3"
610 | assert-plus "^1.0.0"
611 | dashdash "^1.12.0"
612 | getpass "^0.1.1"
613 | optionalDependencies:
614 | bcrypt-pbkdf "^1.0.0"
615 | ecc-jsbn "~0.1.1"
616 | jsbn "~0.1.0"
617 | tweetnacl "~0.14.0"
618 |
619 | stream-to-buffer@^0.1.0:
620 | version "0.1.0"
621 | resolved "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9"
622 | dependencies:
623 | stream-to "~0.2.0"
624 |
625 | stream-to@~0.2.0:
626 | version "0.2.2"
627 | resolved "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d"
628 |
629 | stringstream@~0.0.5:
630 | version "0.0.5"
631 | resolved "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
632 |
633 | tinycolor2@^1.1.2:
634 | version "1.4.1"
635 | resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
636 |
637 | tough-cookie@~2.3.3:
638 | version "2.3.3"
639 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
640 | dependencies:
641 | punycode "^1.4.1"
642 |
643 | trim@0.0.1:
644 | version "0.0.1"
645 | resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
646 |
647 | tunnel-agent@^0.6.0:
648 | version "0.6.0"
649 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
650 | dependencies:
651 | safe-buffer "^5.0.1"
652 |
653 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
654 | version "0.14.5"
655 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
656 |
657 | underscore@1.8.3:
658 | version "1.8.3"
659 | resolved "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
660 |
661 | url-regex@^3.0.0:
662 | version "3.2.0"
663 | resolved "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724"
664 | dependencies:
665 | ip-regex "^1.0.1"
666 |
667 | uuid@^3.1.0:
668 | version "3.1.0"
669 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
670 |
671 | verror@1.10.0:
672 | version "1.10.0"
673 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
674 | dependencies:
675 | assert-plus "^1.0.0"
676 | core-util-is "1.0.2"
677 | extsprintf "^1.2.0"
678 |
679 | which@^1.1.1:
680 | version "1.3.0"
681 | resolved "https://registry.npmjs.org/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
682 | dependencies:
683 | isexe "^2.0.0"
684 |
685 | wrappy@1:
686 | version "1.0.2"
687 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
688 |
689 | xhr@^2.0.1:
690 | version "2.4.0"
691 | resolved "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz#e16e66a45f869861eeefab416d5eff722dc40993"
692 | dependencies:
693 | global "~4.3.0"
694 | is-function "^1.0.1"
695 | parse-headers "^2.0.0"
696 | xtend "^4.0.0"
697 |
698 | xml-parse-from-string@^1.0.0:
699 | version "1.0.1"
700 | resolved "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
701 |
702 | xml2js@^0.4.5:
703 | version "0.4.19"
704 | resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
705 | dependencies:
706 | sax ">=0.6.0"
707 | xmlbuilder "~9.0.1"
708 |
709 | xmlbuilder@~9.0.1:
710 | version "9.0.4"
711 | resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
712 |
713 | xtend@^4.0.0:
714 | version "4.0.1"
715 | resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
716 |
--------------------------------------------------------------------------------