├── .gitignore
├── LICENSE
├── README.md
├── examples
├── a3-landscape.html
├── a3.html
├── a4-landscape.html
├── a4.html
├── a5-landscape.html
├── a5.html
├── legal-landscape.html
├── legal.html
├── letter-landscape.html
├── letter.html
├── multiple-sheets.html
└── receipt.html
├── images
├── dialog.png
├── live-reload.png
├── preview.png
└── receipt.pdf
├── package-lock.json
├── package.json
├── paper.css
├── paper.min.css
└── test
├── fixture
└── white.html
└── spec.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.log
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Tsutomu Kawamura
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Paper CSS for happy printing
2 |
3 | [](https://cdnjs.com/libraries/paper-css)
4 |
5 | > Front-end printing solution - previewable and live-reloadable!
6 |
7 | Recently, we say "front-end" every day. Then why don't we make the printing documents in front-end? We believe we can make it perfectly without back-end. Paper CSS is just [a small snippet of CSS](https://raw.githubusercontent.com/cognitom/paper-css/master/paper.css), but it helps us create them in browser easily.
8 |
9 | ## Table of Contents
10 |
11 | - [Installation](#installation)
12 | - [Basic Usage](#basic-usage)
13 | - [Live Preview](#live-preview)
14 | - [PDF Generation](#pdf-generation)
15 | - Why Paper CSS?
16 | - [Previewable](#previewable)
17 | - [Live-reloading](#live-reloading)
18 | - [Comparisons](#comparisons)
19 | - [License](#license)
20 |
21 | ## Installation
22 |
23 | Get Paper CSS from [cdnjs](https://cdnjs.com/libraries/paper-css) (recommended):
24 |
25 | ```html
26 |
27 | ```
28 |
29 | Or download [paper.css](https://raw.githubusercontent.com/cognitom/paper-css/master/paper.css) file from GitHub manually, or via npm:
30 |
31 | ```bash
32 | $ npm install paper-css
33 | ```
34 |
35 | ## Basic Usage
36 |
37 | Load paper-css into `
` like this:
38 |
39 | ```html
40 |
41 |
42 |
43 |
44 |
45 |
46 | ```
47 |
48 | Set the class of `` and also set "sheet" for each sheet.
49 |
50 | ```html
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | This is an A5 document.
61 |
62 |
63 |
64 |
65 | ```
66 |
67 | All available page sizes is listed below:
68 |
69 | - A5, A5 landscape
70 | - A4, A4 landscape
71 | - A3, A3 landscape
72 | - letter, letter landscape
73 | - legal, legal landscape
74 |
75 | See also [the examples](examples/) for detail.
76 |
77 | ## Live Preview
78 |
79 | Install [live-server](https://github.com/tapio/live-server):
80 |
81 | ```bash
82 | $ npm install --global live-server
83 | ```
84 |
85 | Then, preview your HTML file:
86 |
87 | ```bash
88 | $ live-server your-document.html
89 | ```
90 |
91 | Your browser will open the document. And the browser will automatically reload the page when changes are detected.
92 |
93 | See more detail and all options [here](https://github.com/tapio/live-server#usage-from-command-line).
94 |
95 | ## PDF Generation
96 |
97 | Install [electron-pdf](https://github.com/fraserxu/electron-pdf):
98 |
99 | ```bash
100 | $ npm install --global electron-pdf
101 | ```
102 |
103 | Then, generate a PDF file from your HTML file:
104 |
105 | ```bash
106 | $ electron-pdf your-document.html your-document.pdf
107 | ```
108 |
109 | See more details and all options [here](https://github.com/fraserxu/electron-pdf#all-available-options).
110 |
111 | **Note**: we used to provide a small CLI tool `paper-css` while `v0.2.x`, we've dropped it in favor of `electron-pdf` which is a better option to do the same, basically.
112 |
113 | ## Why Paper CSS?
114 |
115 | ### Previewable
116 |
117 | You can check the design and layout before printing. See the browser like when you build a web page.
118 |
119 | 
120 |
121 | [This example](examples/receipt.html) could be printed like this.
122 |
123 | 
124 |
125 | ### Live-reloading
126 |
127 | It's just HTML/CSS, so we can edit it with live-reloading. See [Live Preview](#live-preview) section above.
128 |
129 | 
130 |
131 | ### Comparisons
132 |
133 | type | expression | learning cost | editable | in-browser | multipage
134 | :-- | :-- | :-- | :-- | :-- | :--
135 | HTML | Enough | already known | No | OK | ~100 pages \*
136 | SVG | Enough | not so difficult | No | OK |
137 | PDF | Perfect | difficult | No | NG | no limit \*\*
138 | Excel | Not cool | *sigh* | Yes | NG | uncontrollable
139 |
140 | \* It depends on user's environment. \*\* Only if you have huge memory on the server.
141 |
142 | ## License
143 |
144 | MIT © Tsutomu Kawamura
145 |
--------------------------------------------------------------------------------
/examples/a3-landscape.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A3 landscape
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an A3 document (landscape).
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/a3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A3
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an A3 document.
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/a4-landscape.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A4 landscape
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an A4 document (landscape).
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/a4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A4
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an A4 document.
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/a5-landscape.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A5 landscape
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an A5 document (landscape).
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/a5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A5
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an A5 document.
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/legal-landscape.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Legal landscape
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an legal-size document (landscape).
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/legal.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Legal
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an legal-size document.
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/letter-landscape.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Letter landscape
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an letter-size document (landscape).
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/letter.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Letter
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is an letter-size document.
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/examples/multiple-sheets.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Multiple Sheets
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | This is the first sheet.
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | This is the second sheet.
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/examples/receipt.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Receipt
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | OpenSource Cafe, Shimokitazawa
49 |
50 | 6-11-14-G1 Daita, Setagaya-ku, Tokyo, Japan
51 | TEL: +81-70-54315221
52 | http://www.osscafe.net
53 |
54 |
55 |
56 | Received from:
57 | John Doe
58 |
59 | For:
60 | Coworking-space fee
61 |
62 | ¥ 1,000-
63 |
64 | Tax: included
65 | Paid by: cash
66 | No. 00000
67 | Oct 10, 2015
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/images/dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cognitom/paper-css/c69fbe2d687c328345774fb81b5e81d40ea7ad47/images/dialog.png
--------------------------------------------------------------------------------
/images/live-reload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cognitom/paper-css/c69fbe2d687c328345774fb81b5e81d40ea7ad47/images/live-reload.png
--------------------------------------------------------------------------------
/images/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cognitom/paper-css/c69fbe2d687c328345774fb81b5e81d40ea7ad47/images/preview.png
--------------------------------------------------------------------------------
/images/receipt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cognitom/paper-css/c69fbe2d687c328345774fb81b5e81d40ea7ad47/images/receipt.pdf
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "paper-css",
3 | "version": "0.4.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@types/node": {
8 | "version": "8.10.12",
9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.12.tgz",
10 | "integrity": "sha512-aRFUGj/f9JVA0qSQiCK9ebaa778mmqMIcy1eKnPktgfm9O6VsnIzzB5wJnjp9/jVrfm7fX1rr3OR1nndppGZUg==",
11 | "dev": true
12 | },
13 | "accepts": {
14 | "version": "1.3.5",
15 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
16 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
17 | "dev": true,
18 | "requires": {
19 | "mime-types": "2.1.18",
20 | "negotiator": "0.6.1"
21 | }
22 | },
23 | "ansi-align": {
24 | "version": "2.0.0",
25 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
26 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
27 | "dev": true,
28 | "requires": {
29 | "string-width": "2.1.1"
30 | }
31 | },
32 | "ansi-regex": {
33 | "version": "3.0.0",
34 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
35 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
36 | "dev": true
37 | },
38 | "ansi-styles": {
39 | "version": "3.2.1",
40 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
41 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
42 | "dev": true,
43 | "requires": {
44 | "color-convert": "1.9.1"
45 | }
46 | },
47 | "anymatch": {
48 | "version": "1.3.2",
49 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
50 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
51 | "dev": true,
52 | "requires": {
53 | "micromatch": "2.3.11",
54 | "normalize-path": "2.1.1"
55 | }
56 | },
57 | "apache-crypt": {
58 | "version": "1.2.1",
59 | "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz",
60 | "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=",
61 | "dev": true,
62 | "requires": {
63 | "unix-crypt-td-js": "1.0.0"
64 | }
65 | },
66 | "apache-md5": {
67 | "version": "1.1.2",
68 | "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz",
69 | "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=",
70 | "dev": true
71 | },
72 | "arr-diff": {
73 | "version": "2.0.0",
74 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
75 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
76 | "dev": true,
77 | "requires": {
78 | "arr-flatten": "1.1.0"
79 | }
80 | },
81 | "arr-flatten": {
82 | "version": "1.1.0",
83 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
84 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
85 | "dev": true
86 | },
87 | "array-unique": {
88 | "version": "0.2.1",
89 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
90 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
91 | "dev": true
92 | },
93 | "async-each": {
94 | "version": "1.0.1",
95 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
96 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
97 | "dev": true
98 | },
99 | "async-limiter": {
100 | "version": "1.0.0",
101 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
102 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
103 | "dev": true
104 | },
105 | "babel-polyfill": {
106 | "version": "6.26.0",
107 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
108 | "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
109 | "dev": true,
110 | "requires": {
111 | "babel-runtime": "6.26.0",
112 | "core-js": "2.5.5",
113 | "regenerator-runtime": "0.10.5"
114 | }
115 | },
116 | "babel-runtime": {
117 | "version": "6.26.0",
118 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
119 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
120 | "dev": true,
121 | "requires": {
122 | "core-js": "2.5.5",
123 | "regenerator-runtime": "0.11.1"
124 | },
125 | "dependencies": {
126 | "regenerator-runtime": {
127 | "version": "0.11.1",
128 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
129 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
130 | "dev": true
131 | }
132 | }
133 | },
134 | "balanced-match": {
135 | "version": "1.0.0",
136 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
137 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
138 | "dev": true
139 | },
140 | "basic-auth": {
141 | "version": "2.0.0",
142 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz",
143 | "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=",
144 | "dev": true,
145 | "requires": {
146 | "safe-buffer": "5.1.1"
147 | },
148 | "dependencies": {
149 | "safe-buffer": {
150 | "version": "5.1.1",
151 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
152 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
153 | "dev": true
154 | }
155 | }
156 | },
157 | "batch": {
158 | "version": "0.6.1",
159 | "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
160 | "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
161 | "dev": true
162 | },
163 | "bcryptjs": {
164 | "version": "2.4.3",
165 | "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
166 | "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=",
167 | "dev": true
168 | },
169 | "binary-extensions": {
170 | "version": "1.11.0",
171 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
172 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
173 | "dev": true
174 | },
175 | "boxen": {
176 | "version": "1.3.0",
177 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
178 | "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
179 | "dev": true,
180 | "requires": {
181 | "ansi-align": "2.0.0",
182 | "camelcase": "4.1.0",
183 | "chalk": "2.4.1",
184 | "cli-boxes": "1.0.0",
185 | "string-width": "2.1.1",
186 | "term-size": "1.2.0",
187 | "widest-line": "2.0.0"
188 | }
189 | },
190 | "brace-expansion": {
191 | "version": "1.1.11",
192 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
193 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
194 | "dev": true,
195 | "requires": {
196 | "balanced-match": "1.0.0",
197 | "concat-map": "0.0.1"
198 | }
199 | },
200 | "braces": {
201 | "version": "1.8.5",
202 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
203 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
204 | "dev": true,
205 | "requires": {
206 | "expand-range": "1.8.2",
207 | "preserve": "0.2.0",
208 | "repeat-element": "1.1.2"
209 | }
210 | },
211 | "camelcase": {
212 | "version": "4.1.0",
213 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
214 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
215 | "dev": true
216 | },
217 | "capture-stack-trace": {
218 | "version": "1.0.0",
219 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
220 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
221 | "dev": true
222 | },
223 | "chalk": {
224 | "version": "2.4.1",
225 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
226 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
227 | "dev": true,
228 | "requires": {
229 | "ansi-styles": "3.2.1",
230 | "escape-string-regexp": "1.0.5",
231 | "supports-color": "5.4.0"
232 | }
233 | },
234 | "chokidar": {
235 | "version": "1.7.0",
236 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
237 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
238 | "dev": true,
239 | "requires": {
240 | "anymatch": "1.3.2",
241 | "async-each": "1.0.1",
242 | "fsevents": "1.2.3",
243 | "glob-parent": "2.0.0",
244 | "inherits": "2.0.3",
245 | "is-binary-path": "1.0.1",
246 | "is-glob": "2.0.1",
247 | "path-is-absolute": "1.0.1",
248 | "readdirp": "2.1.0"
249 | }
250 | },
251 | "chrome-headless-render-pdf": {
252 | "version": "1.7.1",
253 | "resolved": "https://registry.npmjs.org/chrome-headless-render-pdf/-/chrome-headless-render-pdf-1.7.1.tgz",
254 | "integrity": "sha512-QHrml0OzmmHO/ZLUoN6mJ9EIc8DnzqVuyAztx22eLmPKXciwKygib+ZDer+L7Kx7gfjhx9pWRC3rSAelUdR6sQ==",
255 | "dev": true,
256 | "requires": {
257 | "@types/node": "8.10.12",
258 | "babel-polyfill": "6.26.0",
259 | "chrome-remote-interface": "0.25.5",
260 | "command-exists": "1.2.6",
261 | "minimist": "1.2.0",
262 | "update-notifier": "2.5.0"
263 | }
264 | },
265 | "chrome-remote-interface": {
266 | "version": "0.25.5",
267 | "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.25.5.tgz",
268 | "integrity": "sha512-JACehSDwNwanDgWIO1Nvji9Td4KyCUUbQze10dNb8DAG72LmqH3uz7vdgujFKjmax8Q6yu1Xwapb8GODZykTDQ==",
269 | "dev": true,
270 | "requires": {
271 | "commander": "2.11.0",
272 | "ws": "3.3.3"
273 | }
274 | },
275 | "ci-info": {
276 | "version": "1.1.3",
277 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
278 | "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==",
279 | "dev": true
280 | },
281 | "clean-css": {
282 | "version": "4.1.11",
283 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
284 | "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
285 | "dev": true,
286 | "requires": {
287 | "source-map": "0.5.7"
288 | }
289 | },
290 | "clean-css-cli": {
291 | "version": "4.1.11",
292 | "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.1.11.tgz",
293 | "integrity": "sha1-AcVonwW8USojKF8d79veALwR2Gw=",
294 | "dev": true,
295 | "requires": {
296 | "clean-css": "4.1.11",
297 | "commander": "2.11.0",
298 | "glob": "7.1.2"
299 | }
300 | },
301 | "cli-boxes": {
302 | "version": "1.0.0",
303 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
304 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
305 | "dev": true
306 | },
307 | "color-convert": {
308 | "version": "1.9.1",
309 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
310 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
311 | "dev": true,
312 | "requires": {
313 | "color-name": "1.1.3"
314 | }
315 | },
316 | "color-name": {
317 | "version": "1.1.3",
318 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
319 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
320 | "dev": true
321 | },
322 | "colors": {
323 | "version": "1.2.4",
324 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.4.tgz",
325 | "integrity": "sha512-6Y+iBnWmXL+AWtlOp2Vr6R2w5MUlNJRwR0ShVFaAb1CqWzhPOpQg4L0jxD+xpw/Nc8QJwaq3KM79QUCriY8CWQ==",
326 | "dev": true
327 | },
328 | "command-exists": {
329 | "version": "1.2.6",
330 | "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.6.tgz",
331 | "integrity": "sha512-Qst/zUUNmS/z3WziPxyqjrcz09pm+2Knbs5mAZL4VAE0sSrNY1/w8+/YxeHcoBTsO6iojA6BW7eFf27Eg2MRuw==",
332 | "dev": true
333 | },
334 | "commander": {
335 | "version": "2.11.0",
336 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
337 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
338 | "dev": true
339 | },
340 | "concat-map": {
341 | "version": "0.0.1",
342 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
343 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
344 | "dev": true
345 | },
346 | "configstore": {
347 | "version": "3.1.2",
348 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
349 | "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
350 | "dev": true,
351 | "requires": {
352 | "dot-prop": "4.2.0",
353 | "graceful-fs": "4.1.11",
354 | "make-dir": "1.2.0",
355 | "unique-string": "1.0.0",
356 | "write-file-atomic": "2.3.0",
357 | "xdg-basedir": "3.0.0"
358 | }
359 | },
360 | "connect": {
361 | "version": "3.5.1",
362 | "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.1.tgz",
363 | "integrity": "sha1-bTDXpjx/FwhXprOqazY9lz3KWI4=",
364 | "dev": true,
365 | "requires": {
366 | "debug": "2.2.0",
367 | "finalhandler": "0.5.1",
368 | "parseurl": "1.3.2",
369 | "utils-merge": "1.0.0"
370 | }
371 | },
372 | "core-js": {
373 | "version": "2.5.5",
374 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz",
375 | "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=",
376 | "dev": true
377 | },
378 | "core-util-is": {
379 | "version": "1.0.2",
380 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
381 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
382 | "dev": true
383 | },
384 | "cors": {
385 | "version": "2.8.4",
386 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz",
387 | "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=",
388 | "dev": true,
389 | "requires": {
390 | "object-assign": "4.1.1",
391 | "vary": "1.1.2"
392 | }
393 | },
394 | "create-error-class": {
395 | "version": "3.0.2",
396 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
397 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
398 | "dev": true,
399 | "requires": {
400 | "capture-stack-trace": "1.0.0"
401 | }
402 | },
403 | "cross-spawn": {
404 | "version": "5.1.0",
405 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
406 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
407 | "dev": true,
408 | "requires": {
409 | "lru-cache": "4.1.2",
410 | "shebang-command": "1.2.0",
411 | "which": "1.3.0"
412 | }
413 | },
414 | "crypto-random-string": {
415 | "version": "1.0.0",
416 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
417 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
418 | "dev": true
419 | },
420 | "debug": {
421 | "version": "2.2.0",
422 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
423 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
424 | "dev": true,
425 | "requires": {
426 | "ms": "0.7.1"
427 | }
428 | },
429 | "deep-extend": {
430 | "version": "0.5.1",
431 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz",
432 | "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==",
433 | "dev": true
434 | },
435 | "depd": {
436 | "version": "1.1.2",
437 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
438 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
439 | "dev": true
440 | },
441 | "destroy": {
442 | "version": "1.0.4",
443 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
444 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
445 | "dev": true
446 | },
447 | "dot-prop": {
448 | "version": "4.2.0",
449 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
450 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
451 | "dev": true,
452 | "requires": {
453 | "is-obj": "1.0.1"
454 | }
455 | },
456 | "duplexer": {
457 | "version": "0.1.1",
458 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
459 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
460 | "dev": true
461 | },
462 | "duplexer3": {
463 | "version": "0.1.4",
464 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
465 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
466 | "dev": true
467 | },
468 | "ee-first": {
469 | "version": "1.1.1",
470 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
471 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
472 | "dev": true
473 | },
474 | "encodeurl": {
475 | "version": "1.0.2",
476 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
477 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
478 | "dev": true
479 | },
480 | "escape-html": {
481 | "version": "1.0.3",
482 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
483 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
484 | "dev": true
485 | },
486 | "escape-string-regexp": {
487 | "version": "1.0.5",
488 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
489 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
490 | "dev": true
491 | },
492 | "etag": {
493 | "version": "1.8.1",
494 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
495 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
496 | "dev": true
497 | },
498 | "event-stream": {
499 | "version": "3.3.4",
500 | "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
501 | "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
502 | "dev": true,
503 | "requires": {
504 | "duplexer": "0.1.1",
505 | "from": "0.1.7",
506 | "map-stream": "0.1.0",
507 | "pause-stream": "0.0.11",
508 | "split": "0.3.3",
509 | "stream-combiner": "0.0.4",
510 | "through": "2.3.8"
511 | }
512 | },
513 | "execa": {
514 | "version": "0.7.0",
515 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
516 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
517 | "dev": true,
518 | "requires": {
519 | "cross-spawn": "5.1.0",
520 | "get-stream": "3.0.0",
521 | "is-stream": "1.1.0",
522 | "npm-run-path": "2.0.2",
523 | "p-finally": "1.0.0",
524 | "signal-exit": "3.0.2",
525 | "strip-eof": "1.0.0"
526 | }
527 | },
528 | "expand-brackets": {
529 | "version": "0.1.5",
530 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
531 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
532 | "dev": true,
533 | "requires": {
534 | "is-posix-bracket": "0.1.1"
535 | }
536 | },
537 | "expand-range": {
538 | "version": "1.8.2",
539 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
540 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
541 | "dev": true,
542 | "requires": {
543 | "fill-range": "2.2.3"
544 | }
545 | },
546 | "extglob": {
547 | "version": "0.3.2",
548 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
549 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
550 | "dev": true,
551 | "requires": {
552 | "is-extglob": "1.0.0"
553 | }
554 | },
555 | "faye-websocket": {
556 | "version": "0.11.1",
557 | "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
558 | "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
559 | "dev": true,
560 | "requires": {
561 | "websocket-driver": "0.7.0"
562 | }
563 | },
564 | "filename-regex": {
565 | "version": "2.0.1",
566 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
567 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
568 | "dev": true
569 | },
570 | "fill-range": {
571 | "version": "2.2.3",
572 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
573 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
574 | "dev": true,
575 | "requires": {
576 | "is-number": "2.1.0",
577 | "isobject": "2.1.0",
578 | "randomatic": "1.1.7",
579 | "repeat-element": "1.1.2",
580 | "repeat-string": "1.6.1"
581 | }
582 | },
583 | "finalhandler": {
584 | "version": "0.5.1",
585 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz",
586 | "integrity": "sha1-LEANjUUwk1vCMlScX6OF7Afeb80=",
587 | "dev": true,
588 | "requires": {
589 | "debug": "2.2.0",
590 | "escape-html": "1.0.3",
591 | "on-finished": "2.3.0",
592 | "statuses": "1.3.1",
593 | "unpipe": "1.0.0"
594 | }
595 | },
596 | "for-in": {
597 | "version": "1.0.2",
598 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
599 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
600 | "dev": true
601 | },
602 | "for-own": {
603 | "version": "0.1.5",
604 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
605 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
606 | "dev": true,
607 | "requires": {
608 | "for-in": "1.0.2"
609 | }
610 | },
611 | "fresh": {
612 | "version": "0.5.2",
613 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
614 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
615 | "dev": true
616 | },
617 | "from": {
618 | "version": "0.1.7",
619 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
620 | "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
621 | "dev": true
622 | },
623 | "fs.realpath": {
624 | "version": "1.0.0",
625 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
626 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
627 | "dev": true
628 | },
629 | "fsevents": {
630 | "version": "1.2.3",
631 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz",
632 | "integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==",
633 | "dev": true,
634 | "optional": true,
635 | "requires": {
636 | "nan": "2.10.0",
637 | "node-pre-gyp": "0.9.1"
638 | },
639 | "dependencies": {
640 | "abbrev": {
641 | "version": "1.1.1",
642 | "bundled": true,
643 | "dev": true,
644 | "optional": true
645 | },
646 | "ansi-regex": {
647 | "version": "2.1.1",
648 | "bundled": true,
649 | "dev": true
650 | },
651 | "aproba": {
652 | "version": "1.2.0",
653 | "bundled": true,
654 | "dev": true,
655 | "optional": true
656 | },
657 | "are-we-there-yet": {
658 | "version": "1.1.4",
659 | "bundled": true,
660 | "dev": true,
661 | "optional": true,
662 | "requires": {
663 | "delegates": "1.0.0",
664 | "readable-stream": "2.3.6"
665 | }
666 | },
667 | "balanced-match": {
668 | "version": "1.0.0",
669 | "bundled": true,
670 | "dev": true
671 | },
672 | "brace-expansion": {
673 | "version": "1.1.11",
674 | "bundled": true,
675 | "dev": true,
676 | "requires": {
677 | "balanced-match": "1.0.0",
678 | "concat-map": "0.0.1"
679 | }
680 | },
681 | "chownr": {
682 | "version": "1.0.1",
683 | "bundled": true,
684 | "dev": true,
685 | "optional": true
686 | },
687 | "code-point-at": {
688 | "version": "1.1.0",
689 | "bundled": true,
690 | "dev": true
691 | },
692 | "concat-map": {
693 | "version": "0.0.1",
694 | "bundled": true,
695 | "dev": true
696 | },
697 | "console-control-strings": {
698 | "version": "1.1.0",
699 | "bundled": true,
700 | "dev": true
701 | },
702 | "core-util-is": {
703 | "version": "1.0.2",
704 | "bundled": true,
705 | "dev": true,
706 | "optional": true
707 | },
708 | "debug": {
709 | "version": "2.6.9",
710 | "bundled": true,
711 | "dev": true,
712 | "optional": true,
713 | "requires": {
714 | "ms": "2.0.0"
715 | }
716 | },
717 | "deep-extend": {
718 | "version": "0.4.2",
719 | "bundled": true,
720 | "dev": true,
721 | "optional": true
722 | },
723 | "delegates": {
724 | "version": "1.0.0",
725 | "bundled": true,
726 | "dev": true,
727 | "optional": true
728 | },
729 | "detect-libc": {
730 | "version": "1.0.3",
731 | "bundled": true,
732 | "dev": true,
733 | "optional": true
734 | },
735 | "fs-minipass": {
736 | "version": "1.2.5",
737 | "bundled": true,
738 | "dev": true,
739 | "optional": true,
740 | "requires": {
741 | "minipass": "2.2.4"
742 | }
743 | },
744 | "fs.realpath": {
745 | "version": "1.0.0",
746 | "bundled": true,
747 | "dev": true,
748 | "optional": true
749 | },
750 | "gauge": {
751 | "version": "2.7.4",
752 | "bundled": true,
753 | "dev": true,
754 | "optional": true,
755 | "requires": {
756 | "aproba": "1.2.0",
757 | "console-control-strings": "1.1.0",
758 | "has-unicode": "2.0.1",
759 | "object-assign": "4.1.1",
760 | "signal-exit": "3.0.2",
761 | "string-width": "1.0.2",
762 | "strip-ansi": "3.0.1",
763 | "wide-align": "1.1.2"
764 | }
765 | },
766 | "glob": {
767 | "version": "7.1.2",
768 | "bundled": true,
769 | "dev": true,
770 | "optional": true,
771 | "requires": {
772 | "fs.realpath": "1.0.0",
773 | "inflight": "1.0.6",
774 | "inherits": "2.0.3",
775 | "minimatch": "3.0.4",
776 | "once": "1.4.0",
777 | "path-is-absolute": "1.0.1"
778 | }
779 | },
780 | "has-unicode": {
781 | "version": "2.0.1",
782 | "bundled": true,
783 | "dev": true,
784 | "optional": true
785 | },
786 | "iconv-lite": {
787 | "version": "0.4.21",
788 | "bundled": true,
789 | "dev": true,
790 | "optional": true,
791 | "requires": {
792 | "safer-buffer": "2.1.2"
793 | }
794 | },
795 | "ignore-walk": {
796 | "version": "3.0.1",
797 | "bundled": true,
798 | "dev": true,
799 | "optional": true,
800 | "requires": {
801 | "minimatch": "3.0.4"
802 | }
803 | },
804 | "inflight": {
805 | "version": "1.0.6",
806 | "bundled": true,
807 | "dev": true,
808 | "optional": true,
809 | "requires": {
810 | "once": "1.4.0",
811 | "wrappy": "1.0.2"
812 | }
813 | },
814 | "inherits": {
815 | "version": "2.0.3",
816 | "bundled": true,
817 | "dev": true
818 | },
819 | "ini": {
820 | "version": "1.3.5",
821 | "bundled": true,
822 | "dev": true,
823 | "optional": true
824 | },
825 | "is-fullwidth-code-point": {
826 | "version": "1.0.0",
827 | "bundled": true,
828 | "dev": true,
829 | "requires": {
830 | "number-is-nan": "1.0.1"
831 | }
832 | },
833 | "isarray": {
834 | "version": "1.0.0",
835 | "bundled": true,
836 | "dev": true,
837 | "optional": true
838 | },
839 | "minimatch": {
840 | "version": "3.0.4",
841 | "bundled": true,
842 | "dev": true,
843 | "requires": {
844 | "brace-expansion": "1.1.11"
845 | }
846 | },
847 | "minimist": {
848 | "version": "0.0.8",
849 | "bundled": true,
850 | "dev": true
851 | },
852 | "minipass": {
853 | "version": "2.2.4",
854 | "bundled": true,
855 | "dev": true,
856 | "requires": {
857 | "safe-buffer": "5.1.1",
858 | "yallist": "3.0.2"
859 | }
860 | },
861 | "minizlib": {
862 | "version": "1.1.0",
863 | "bundled": true,
864 | "dev": true,
865 | "optional": true,
866 | "requires": {
867 | "minipass": "2.2.4"
868 | }
869 | },
870 | "mkdirp": {
871 | "version": "0.5.1",
872 | "bundled": true,
873 | "dev": true,
874 | "requires": {
875 | "minimist": "0.0.8"
876 | }
877 | },
878 | "ms": {
879 | "version": "2.0.0",
880 | "bundled": true,
881 | "dev": true,
882 | "optional": true
883 | },
884 | "needle": {
885 | "version": "2.2.0",
886 | "bundled": true,
887 | "dev": true,
888 | "optional": true,
889 | "requires": {
890 | "debug": "2.6.9",
891 | "iconv-lite": "0.4.21",
892 | "sax": "1.2.4"
893 | }
894 | },
895 | "node-pre-gyp": {
896 | "version": "0.9.1",
897 | "bundled": true,
898 | "dev": true,
899 | "optional": true,
900 | "requires": {
901 | "detect-libc": "1.0.3",
902 | "mkdirp": "0.5.1",
903 | "needle": "2.2.0",
904 | "nopt": "4.0.1",
905 | "npm-packlist": "1.1.10",
906 | "npmlog": "4.1.2",
907 | "rc": "1.2.6",
908 | "rimraf": "2.6.2",
909 | "semver": "5.5.0",
910 | "tar": "4.4.1"
911 | }
912 | },
913 | "nopt": {
914 | "version": "4.0.1",
915 | "bundled": true,
916 | "dev": true,
917 | "optional": true,
918 | "requires": {
919 | "abbrev": "1.1.1",
920 | "osenv": "0.1.5"
921 | }
922 | },
923 | "npm-bundled": {
924 | "version": "1.0.3",
925 | "bundled": true,
926 | "dev": true,
927 | "optional": true
928 | },
929 | "npm-packlist": {
930 | "version": "1.1.10",
931 | "bundled": true,
932 | "dev": true,
933 | "optional": true,
934 | "requires": {
935 | "ignore-walk": "3.0.1",
936 | "npm-bundled": "1.0.3"
937 | }
938 | },
939 | "npmlog": {
940 | "version": "4.1.2",
941 | "bundled": true,
942 | "dev": true,
943 | "optional": true,
944 | "requires": {
945 | "are-we-there-yet": "1.1.4",
946 | "console-control-strings": "1.1.0",
947 | "gauge": "2.7.4",
948 | "set-blocking": "2.0.0"
949 | }
950 | },
951 | "number-is-nan": {
952 | "version": "1.0.1",
953 | "bundled": true,
954 | "dev": true
955 | },
956 | "object-assign": {
957 | "version": "4.1.1",
958 | "bundled": true,
959 | "dev": true,
960 | "optional": true
961 | },
962 | "once": {
963 | "version": "1.4.0",
964 | "bundled": true,
965 | "dev": true,
966 | "requires": {
967 | "wrappy": "1.0.2"
968 | }
969 | },
970 | "os-homedir": {
971 | "version": "1.0.2",
972 | "bundled": true,
973 | "dev": true,
974 | "optional": true
975 | },
976 | "os-tmpdir": {
977 | "version": "1.0.2",
978 | "bundled": true,
979 | "dev": true,
980 | "optional": true
981 | },
982 | "osenv": {
983 | "version": "0.1.5",
984 | "bundled": true,
985 | "dev": true,
986 | "optional": true,
987 | "requires": {
988 | "os-homedir": "1.0.2",
989 | "os-tmpdir": "1.0.2"
990 | }
991 | },
992 | "path-is-absolute": {
993 | "version": "1.0.1",
994 | "bundled": true,
995 | "dev": true,
996 | "optional": true
997 | },
998 | "process-nextick-args": {
999 | "version": "2.0.0",
1000 | "bundled": true,
1001 | "dev": true,
1002 | "optional": true
1003 | },
1004 | "rc": {
1005 | "version": "1.2.6",
1006 | "bundled": true,
1007 | "dev": true,
1008 | "optional": true,
1009 | "requires": {
1010 | "deep-extend": "0.4.2",
1011 | "ini": "1.3.5",
1012 | "minimist": "1.2.0",
1013 | "strip-json-comments": "2.0.1"
1014 | },
1015 | "dependencies": {
1016 | "minimist": {
1017 | "version": "1.2.0",
1018 | "bundled": true,
1019 | "dev": true,
1020 | "optional": true
1021 | }
1022 | }
1023 | },
1024 | "readable-stream": {
1025 | "version": "2.3.6",
1026 | "bundled": true,
1027 | "dev": true,
1028 | "optional": true,
1029 | "requires": {
1030 | "core-util-is": "1.0.2",
1031 | "inherits": "2.0.3",
1032 | "isarray": "1.0.0",
1033 | "process-nextick-args": "2.0.0",
1034 | "safe-buffer": "5.1.1",
1035 | "string_decoder": "1.1.1",
1036 | "util-deprecate": "1.0.2"
1037 | }
1038 | },
1039 | "rimraf": {
1040 | "version": "2.6.2",
1041 | "bundled": true,
1042 | "dev": true,
1043 | "optional": true,
1044 | "requires": {
1045 | "glob": "7.1.2"
1046 | }
1047 | },
1048 | "safe-buffer": {
1049 | "version": "5.1.1",
1050 | "bundled": true,
1051 | "dev": true
1052 | },
1053 | "safer-buffer": {
1054 | "version": "2.1.2",
1055 | "bundled": true,
1056 | "dev": true,
1057 | "optional": true
1058 | },
1059 | "sax": {
1060 | "version": "1.2.4",
1061 | "bundled": true,
1062 | "dev": true,
1063 | "optional": true
1064 | },
1065 | "semver": {
1066 | "version": "5.5.0",
1067 | "bundled": true,
1068 | "dev": true,
1069 | "optional": true
1070 | },
1071 | "set-blocking": {
1072 | "version": "2.0.0",
1073 | "bundled": true,
1074 | "dev": true,
1075 | "optional": true
1076 | },
1077 | "signal-exit": {
1078 | "version": "3.0.2",
1079 | "bundled": true,
1080 | "dev": true,
1081 | "optional": true
1082 | },
1083 | "string-width": {
1084 | "version": "1.0.2",
1085 | "bundled": true,
1086 | "dev": true,
1087 | "requires": {
1088 | "code-point-at": "1.1.0",
1089 | "is-fullwidth-code-point": "1.0.0",
1090 | "strip-ansi": "3.0.1"
1091 | }
1092 | },
1093 | "string_decoder": {
1094 | "version": "1.1.1",
1095 | "bundled": true,
1096 | "dev": true,
1097 | "optional": true,
1098 | "requires": {
1099 | "safe-buffer": "5.1.1"
1100 | }
1101 | },
1102 | "strip-ansi": {
1103 | "version": "3.0.1",
1104 | "bundled": true,
1105 | "dev": true,
1106 | "requires": {
1107 | "ansi-regex": "2.1.1"
1108 | }
1109 | },
1110 | "strip-json-comments": {
1111 | "version": "2.0.1",
1112 | "bundled": true,
1113 | "dev": true,
1114 | "optional": true
1115 | },
1116 | "tar": {
1117 | "version": "4.4.1",
1118 | "bundled": true,
1119 | "dev": true,
1120 | "optional": true,
1121 | "requires": {
1122 | "chownr": "1.0.1",
1123 | "fs-minipass": "1.2.5",
1124 | "minipass": "2.2.4",
1125 | "minizlib": "1.1.0",
1126 | "mkdirp": "0.5.1",
1127 | "safe-buffer": "5.1.1",
1128 | "yallist": "3.0.2"
1129 | }
1130 | },
1131 | "util-deprecate": {
1132 | "version": "1.0.2",
1133 | "bundled": true,
1134 | "dev": true,
1135 | "optional": true
1136 | },
1137 | "wide-align": {
1138 | "version": "1.1.2",
1139 | "bundled": true,
1140 | "dev": true,
1141 | "optional": true,
1142 | "requires": {
1143 | "string-width": "1.0.2"
1144 | }
1145 | },
1146 | "wrappy": {
1147 | "version": "1.0.2",
1148 | "bundled": true,
1149 | "dev": true
1150 | },
1151 | "yallist": {
1152 | "version": "3.0.2",
1153 | "bundled": true,
1154 | "dev": true
1155 | }
1156 | }
1157 | },
1158 | "get-stream": {
1159 | "version": "3.0.0",
1160 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
1161 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
1162 | "dev": true
1163 | },
1164 | "glob": {
1165 | "version": "7.1.2",
1166 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
1167 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1168 | "dev": true,
1169 | "requires": {
1170 | "fs.realpath": "1.0.0",
1171 | "inflight": "1.0.6",
1172 | "inherits": "2.0.3",
1173 | "minimatch": "3.0.4",
1174 | "once": "1.4.0",
1175 | "path-is-absolute": "1.0.1"
1176 | }
1177 | },
1178 | "glob-base": {
1179 | "version": "0.3.0",
1180 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1181 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1182 | "dev": true,
1183 | "requires": {
1184 | "glob-parent": "2.0.0",
1185 | "is-glob": "2.0.1"
1186 | }
1187 | },
1188 | "glob-parent": {
1189 | "version": "2.0.0",
1190 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1191 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1192 | "dev": true,
1193 | "requires": {
1194 | "is-glob": "2.0.1"
1195 | }
1196 | },
1197 | "global-dirs": {
1198 | "version": "0.1.1",
1199 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
1200 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
1201 | "dev": true,
1202 | "requires": {
1203 | "ini": "1.3.5"
1204 | }
1205 | },
1206 | "got": {
1207 | "version": "6.7.1",
1208 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
1209 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
1210 | "dev": true,
1211 | "requires": {
1212 | "create-error-class": "3.0.2",
1213 | "duplexer3": "0.1.4",
1214 | "get-stream": "3.0.0",
1215 | "is-redirect": "1.0.0",
1216 | "is-retry-allowed": "1.1.0",
1217 | "is-stream": "1.1.0",
1218 | "lowercase-keys": "1.0.1",
1219 | "safe-buffer": "5.1.2",
1220 | "timed-out": "4.0.1",
1221 | "unzip-response": "2.0.1",
1222 | "url-parse-lax": "1.0.0"
1223 | }
1224 | },
1225 | "graceful-fs": {
1226 | "version": "4.1.11",
1227 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1228 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1229 | "dev": true
1230 | },
1231 | "has-flag": {
1232 | "version": "3.0.0",
1233 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1234 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1235 | "dev": true
1236 | },
1237 | "http-auth": {
1238 | "version": "3.1.3",
1239 | "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz",
1240 | "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=",
1241 | "dev": true,
1242 | "requires": {
1243 | "apache-crypt": "1.2.1",
1244 | "apache-md5": "1.1.2",
1245 | "bcryptjs": "2.4.3",
1246 | "uuid": "3.2.1"
1247 | }
1248 | },
1249 | "http-errors": {
1250 | "version": "1.6.3",
1251 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
1252 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
1253 | "dev": true,
1254 | "requires": {
1255 | "depd": "1.1.2",
1256 | "inherits": "2.0.3",
1257 | "setprototypeof": "1.1.0",
1258 | "statuses": "1.5.0"
1259 | },
1260 | "dependencies": {
1261 | "statuses": {
1262 | "version": "1.5.0",
1263 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1264 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
1265 | "dev": true
1266 | }
1267 | }
1268 | },
1269 | "http-parser-js": {
1270 | "version": "0.4.12",
1271 | "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.12.tgz",
1272 | "integrity": "sha1-uc+/Sizybw/DSxDKFImid3HjR08=",
1273 | "dev": true
1274 | },
1275 | "import-lazy": {
1276 | "version": "2.1.0",
1277 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
1278 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
1279 | "dev": true
1280 | },
1281 | "imurmurhash": {
1282 | "version": "0.1.4",
1283 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1284 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1285 | "dev": true
1286 | },
1287 | "inflight": {
1288 | "version": "1.0.6",
1289 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1290 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1291 | "dev": true,
1292 | "requires": {
1293 | "once": "1.4.0",
1294 | "wrappy": "1.0.2"
1295 | }
1296 | },
1297 | "inherits": {
1298 | "version": "2.0.3",
1299 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1300 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1301 | "dev": true
1302 | },
1303 | "ini": {
1304 | "version": "1.3.5",
1305 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
1306 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
1307 | "dev": true
1308 | },
1309 | "is-binary-path": {
1310 | "version": "1.0.1",
1311 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
1312 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
1313 | "dev": true,
1314 | "requires": {
1315 | "binary-extensions": "1.11.0"
1316 | }
1317 | },
1318 | "is-buffer": {
1319 | "version": "1.1.6",
1320 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1321 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1322 | "dev": true
1323 | },
1324 | "is-ci": {
1325 | "version": "1.1.0",
1326 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz",
1327 | "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
1328 | "dev": true,
1329 | "requires": {
1330 | "ci-info": "1.1.3"
1331 | }
1332 | },
1333 | "is-dotfile": {
1334 | "version": "1.0.3",
1335 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
1336 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
1337 | "dev": true
1338 | },
1339 | "is-equal-shallow": {
1340 | "version": "0.1.3",
1341 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
1342 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1343 | "dev": true,
1344 | "requires": {
1345 | "is-primitive": "2.0.0"
1346 | }
1347 | },
1348 | "is-extendable": {
1349 | "version": "0.1.1",
1350 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1351 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1352 | "dev": true
1353 | },
1354 | "is-extglob": {
1355 | "version": "1.0.0",
1356 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1357 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1358 | "dev": true
1359 | },
1360 | "is-fullwidth-code-point": {
1361 | "version": "2.0.0",
1362 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1363 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1364 | "dev": true
1365 | },
1366 | "is-glob": {
1367 | "version": "2.0.1",
1368 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1369 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1370 | "dev": true,
1371 | "requires": {
1372 | "is-extglob": "1.0.0"
1373 | }
1374 | },
1375 | "is-installed-globally": {
1376 | "version": "0.1.0",
1377 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
1378 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
1379 | "dev": true,
1380 | "requires": {
1381 | "global-dirs": "0.1.1",
1382 | "is-path-inside": "1.0.1"
1383 | }
1384 | },
1385 | "is-npm": {
1386 | "version": "1.0.0",
1387 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
1388 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
1389 | "dev": true
1390 | },
1391 | "is-number": {
1392 | "version": "2.1.0",
1393 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1394 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1395 | "dev": true,
1396 | "requires": {
1397 | "kind-of": "3.2.2"
1398 | }
1399 | },
1400 | "is-obj": {
1401 | "version": "1.0.1",
1402 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1403 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1404 | "dev": true
1405 | },
1406 | "is-path-inside": {
1407 | "version": "1.0.1",
1408 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
1409 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
1410 | "dev": true,
1411 | "requires": {
1412 | "path-is-inside": "1.0.2"
1413 | }
1414 | },
1415 | "is-posix-bracket": {
1416 | "version": "0.1.1",
1417 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
1418 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
1419 | "dev": true
1420 | },
1421 | "is-primitive": {
1422 | "version": "2.0.0",
1423 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
1424 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
1425 | "dev": true
1426 | },
1427 | "is-redirect": {
1428 | "version": "1.0.0",
1429 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
1430 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
1431 | "dev": true
1432 | },
1433 | "is-retry-allowed": {
1434 | "version": "1.1.0",
1435 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
1436 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
1437 | "dev": true
1438 | },
1439 | "is-stream": {
1440 | "version": "1.1.0",
1441 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1442 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1443 | "dev": true
1444 | },
1445 | "is-wsl": {
1446 | "version": "1.1.0",
1447 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
1448 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
1449 | "dev": true
1450 | },
1451 | "isarray": {
1452 | "version": "1.0.0",
1453 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1454 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1455 | "dev": true
1456 | },
1457 | "isexe": {
1458 | "version": "2.0.0",
1459 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1460 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1461 | "dev": true
1462 | },
1463 | "isobject": {
1464 | "version": "2.1.0",
1465 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1466 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1467 | "dev": true,
1468 | "requires": {
1469 | "isarray": "1.0.0"
1470 | }
1471 | },
1472 | "kind-of": {
1473 | "version": "3.2.2",
1474 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1475 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1476 | "dev": true,
1477 | "requires": {
1478 | "is-buffer": "1.1.6"
1479 | }
1480 | },
1481 | "latest-version": {
1482 | "version": "3.1.0",
1483 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
1484 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
1485 | "dev": true,
1486 | "requires": {
1487 | "package-json": "4.0.1"
1488 | }
1489 | },
1490 | "live-server": {
1491 | "version": "1.2.0",
1492 | "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.0.tgz",
1493 | "integrity": "sha1-RJhkS7+Bpm8Y3Y3/3vYcTBw3TKM=",
1494 | "dev": true,
1495 | "requires": {
1496 | "chokidar": "1.7.0",
1497 | "colors": "1.2.4",
1498 | "connect": "3.5.1",
1499 | "cors": "2.8.4",
1500 | "event-stream": "3.3.4",
1501 | "faye-websocket": "0.11.1",
1502 | "http-auth": "3.1.3",
1503 | "morgan": "1.9.0",
1504 | "object-assign": "4.1.1",
1505 | "opn": "5.3.0",
1506 | "proxy-middleware": "0.15.0",
1507 | "send": "0.16.2",
1508 | "serve-index": "1.9.1"
1509 | }
1510 | },
1511 | "lowercase-keys": {
1512 | "version": "1.0.1",
1513 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1514 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
1515 | "dev": true
1516 | },
1517 | "lru-cache": {
1518 | "version": "4.1.2",
1519 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
1520 | "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
1521 | "dev": true,
1522 | "requires": {
1523 | "pseudomap": "1.0.2",
1524 | "yallist": "2.1.2"
1525 | }
1526 | },
1527 | "make-dir": {
1528 | "version": "1.2.0",
1529 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz",
1530 | "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==",
1531 | "dev": true,
1532 | "requires": {
1533 | "pify": "3.0.0"
1534 | }
1535 | },
1536 | "map-stream": {
1537 | "version": "0.1.0",
1538 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
1539 | "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
1540 | "dev": true
1541 | },
1542 | "micromatch": {
1543 | "version": "2.3.11",
1544 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
1545 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1546 | "dev": true,
1547 | "requires": {
1548 | "arr-diff": "2.0.0",
1549 | "array-unique": "0.2.1",
1550 | "braces": "1.8.5",
1551 | "expand-brackets": "0.1.5",
1552 | "extglob": "0.3.2",
1553 | "filename-regex": "2.0.1",
1554 | "is-extglob": "1.0.0",
1555 | "is-glob": "2.0.1",
1556 | "kind-of": "3.2.2",
1557 | "normalize-path": "2.1.1",
1558 | "object.omit": "2.0.1",
1559 | "parse-glob": "3.0.4",
1560 | "regex-cache": "0.4.4"
1561 | }
1562 | },
1563 | "mime": {
1564 | "version": "1.4.1",
1565 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
1566 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
1567 | "dev": true
1568 | },
1569 | "mime-db": {
1570 | "version": "1.33.0",
1571 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
1572 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
1573 | "dev": true
1574 | },
1575 | "mime-types": {
1576 | "version": "2.1.18",
1577 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
1578 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
1579 | "dev": true,
1580 | "requires": {
1581 | "mime-db": "1.33.0"
1582 | }
1583 | },
1584 | "minimatch": {
1585 | "version": "3.0.4",
1586 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1587 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1588 | "dev": true,
1589 | "requires": {
1590 | "brace-expansion": "1.1.11"
1591 | }
1592 | },
1593 | "minimist": {
1594 | "version": "1.2.0",
1595 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1596 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1597 | "dev": true
1598 | },
1599 | "morgan": {
1600 | "version": "1.9.0",
1601 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz",
1602 | "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=",
1603 | "dev": true,
1604 | "requires": {
1605 | "basic-auth": "2.0.0",
1606 | "debug": "2.6.9",
1607 | "depd": "1.1.2",
1608 | "on-finished": "2.3.0",
1609 | "on-headers": "1.0.1"
1610 | },
1611 | "dependencies": {
1612 | "debug": {
1613 | "version": "2.6.9",
1614 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1615 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1616 | "dev": true,
1617 | "requires": {
1618 | "ms": "2.0.0"
1619 | }
1620 | },
1621 | "ms": {
1622 | "version": "2.0.0",
1623 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1624 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1625 | "dev": true
1626 | }
1627 | }
1628 | },
1629 | "ms": {
1630 | "version": "0.7.1",
1631 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
1632 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
1633 | "dev": true
1634 | },
1635 | "nan": {
1636 | "version": "2.10.0",
1637 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
1638 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
1639 | "dev": true,
1640 | "optional": true
1641 | },
1642 | "negotiator": {
1643 | "version": "0.6.1",
1644 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
1645 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
1646 | "dev": true
1647 | },
1648 | "normalize-path": {
1649 | "version": "2.1.1",
1650 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1651 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1652 | "dev": true,
1653 | "requires": {
1654 | "remove-trailing-separator": "1.1.0"
1655 | }
1656 | },
1657 | "npm-run-path": {
1658 | "version": "2.0.2",
1659 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
1660 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
1661 | "dev": true,
1662 | "requires": {
1663 | "path-key": "2.0.1"
1664 | }
1665 | },
1666 | "object-assign": {
1667 | "version": "4.1.1",
1668 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1669 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1670 | "dev": true
1671 | },
1672 | "object.omit": {
1673 | "version": "2.0.1",
1674 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
1675 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
1676 | "dev": true,
1677 | "requires": {
1678 | "for-own": "0.1.5",
1679 | "is-extendable": "0.1.1"
1680 | }
1681 | },
1682 | "on-finished": {
1683 | "version": "2.3.0",
1684 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1685 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1686 | "dev": true,
1687 | "requires": {
1688 | "ee-first": "1.1.1"
1689 | }
1690 | },
1691 | "on-headers": {
1692 | "version": "1.0.1",
1693 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
1694 | "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
1695 | "dev": true
1696 | },
1697 | "once": {
1698 | "version": "1.4.0",
1699 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1700 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1701 | "dev": true,
1702 | "requires": {
1703 | "wrappy": "1.0.2"
1704 | }
1705 | },
1706 | "opn": {
1707 | "version": "5.3.0",
1708 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
1709 | "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
1710 | "dev": true,
1711 | "requires": {
1712 | "is-wsl": "1.1.0"
1713 | }
1714 | },
1715 | "p-finally": {
1716 | "version": "1.0.0",
1717 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
1718 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
1719 | "dev": true
1720 | },
1721 | "package-json": {
1722 | "version": "4.0.1",
1723 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
1724 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
1725 | "dev": true,
1726 | "requires": {
1727 | "got": "6.7.1",
1728 | "registry-auth-token": "3.3.2",
1729 | "registry-url": "3.1.0",
1730 | "semver": "5.5.0"
1731 | }
1732 | },
1733 | "parse-glob": {
1734 | "version": "3.0.4",
1735 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
1736 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
1737 | "dev": true,
1738 | "requires": {
1739 | "glob-base": "0.3.0",
1740 | "is-dotfile": "1.0.3",
1741 | "is-extglob": "1.0.0",
1742 | "is-glob": "2.0.1"
1743 | }
1744 | },
1745 | "parseurl": {
1746 | "version": "1.3.2",
1747 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
1748 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
1749 | "dev": true
1750 | },
1751 | "path-is-absolute": {
1752 | "version": "1.0.1",
1753 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1754 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1755 | "dev": true
1756 | },
1757 | "path-is-inside": {
1758 | "version": "1.0.2",
1759 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1760 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1761 | "dev": true
1762 | },
1763 | "path-key": {
1764 | "version": "2.0.1",
1765 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1766 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1767 | "dev": true
1768 | },
1769 | "pause-stream": {
1770 | "version": "0.0.11",
1771 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1772 | "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1773 | "dev": true,
1774 | "requires": {
1775 | "through": "2.3.8"
1776 | }
1777 | },
1778 | "pify": {
1779 | "version": "3.0.0",
1780 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1781 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1782 | "dev": true
1783 | },
1784 | "prepend-http": {
1785 | "version": "1.0.4",
1786 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
1787 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
1788 | "dev": true
1789 | },
1790 | "preserve": {
1791 | "version": "0.2.0",
1792 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
1793 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
1794 | "dev": true
1795 | },
1796 | "process-nextick-args": {
1797 | "version": "2.0.0",
1798 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1799 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
1800 | "dev": true
1801 | },
1802 | "proxy-middleware": {
1803 | "version": "0.15.0",
1804 | "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz",
1805 | "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=",
1806 | "dev": true
1807 | },
1808 | "pseudomap": {
1809 | "version": "1.0.2",
1810 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1811 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
1812 | "dev": true
1813 | },
1814 | "randomatic": {
1815 | "version": "1.1.7",
1816 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
1817 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
1818 | "dev": true,
1819 | "requires": {
1820 | "is-number": "3.0.0",
1821 | "kind-of": "4.0.0"
1822 | },
1823 | "dependencies": {
1824 | "is-number": {
1825 | "version": "3.0.0",
1826 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
1827 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
1828 | "dev": true,
1829 | "requires": {
1830 | "kind-of": "3.2.2"
1831 | },
1832 | "dependencies": {
1833 | "kind-of": {
1834 | "version": "3.2.2",
1835 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1836 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1837 | "dev": true,
1838 | "requires": {
1839 | "is-buffer": "1.1.6"
1840 | }
1841 | }
1842 | }
1843 | },
1844 | "kind-of": {
1845 | "version": "4.0.0",
1846 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
1847 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
1848 | "dev": true,
1849 | "requires": {
1850 | "is-buffer": "1.1.6"
1851 | }
1852 | }
1853 | }
1854 | },
1855 | "range-parser": {
1856 | "version": "1.2.0",
1857 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
1858 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
1859 | "dev": true
1860 | },
1861 | "rc": {
1862 | "version": "1.2.7",
1863 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz",
1864 | "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==",
1865 | "dev": true,
1866 | "requires": {
1867 | "deep-extend": "0.5.1",
1868 | "ini": "1.3.5",
1869 | "minimist": "1.2.0",
1870 | "strip-json-comments": "2.0.1"
1871 | }
1872 | },
1873 | "readable-stream": {
1874 | "version": "2.3.6",
1875 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1876 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1877 | "dev": true,
1878 | "requires": {
1879 | "core-util-is": "1.0.2",
1880 | "inherits": "2.0.3",
1881 | "isarray": "1.0.0",
1882 | "process-nextick-args": "2.0.0",
1883 | "safe-buffer": "5.1.2",
1884 | "string_decoder": "1.1.1",
1885 | "util-deprecate": "1.0.2"
1886 | }
1887 | },
1888 | "readdirp": {
1889 | "version": "2.1.0",
1890 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
1891 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
1892 | "dev": true,
1893 | "requires": {
1894 | "graceful-fs": "4.1.11",
1895 | "minimatch": "3.0.4",
1896 | "readable-stream": "2.3.6",
1897 | "set-immediate-shim": "1.0.1"
1898 | }
1899 | },
1900 | "regenerator-runtime": {
1901 | "version": "0.10.5",
1902 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
1903 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
1904 | "dev": true
1905 | },
1906 | "regex-cache": {
1907 | "version": "0.4.4",
1908 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
1909 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
1910 | "dev": true,
1911 | "requires": {
1912 | "is-equal-shallow": "0.1.3"
1913 | }
1914 | },
1915 | "registry-auth-token": {
1916 | "version": "3.3.2",
1917 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
1918 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
1919 | "dev": true,
1920 | "requires": {
1921 | "rc": "1.2.7",
1922 | "safe-buffer": "5.1.2"
1923 | }
1924 | },
1925 | "registry-url": {
1926 | "version": "3.1.0",
1927 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
1928 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
1929 | "dev": true,
1930 | "requires": {
1931 | "rc": "1.2.7"
1932 | }
1933 | },
1934 | "remove-trailing-separator": {
1935 | "version": "1.1.0",
1936 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
1937 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
1938 | "dev": true
1939 | },
1940 | "repeat-element": {
1941 | "version": "1.1.2",
1942 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
1943 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
1944 | "dev": true
1945 | },
1946 | "repeat-string": {
1947 | "version": "1.6.1",
1948 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1949 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
1950 | "dev": true
1951 | },
1952 | "safe-buffer": {
1953 | "version": "5.1.2",
1954 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1955 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1956 | "dev": true
1957 | },
1958 | "semver": {
1959 | "version": "5.5.0",
1960 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
1961 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
1962 | "dev": true
1963 | },
1964 | "semver-diff": {
1965 | "version": "2.1.0",
1966 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
1967 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
1968 | "dev": true,
1969 | "requires": {
1970 | "semver": "5.5.0"
1971 | }
1972 | },
1973 | "send": {
1974 | "version": "0.16.2",
1975 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
1976 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
1977 | "dev": true,
1978 | "requires": {
1979 | "debug": "2.6.9",
1980 | "depd": "1.1.2",
1981 | "destroy": "1.0.4",
1982 | "encodeurl": "1.0.2",
1983 | "escape-html": "1.0.3",
1984 | "etag": "1.8.1",
1985 | "fresh": "0.5.2",
1986 | "http-errors": "1.6.3",
1987 | "mime": "1.4.1",
1988 | "ms": "2.0.0",
1989 | "on-finished": "2.3.0",
1990 | "range-parser": "1.2.0",
1991 | "statuses": "1.4.0"
1992 | },
1993 | "dependencies": {
1994 | "debug": {
1995 | "version": "2.6.9",
1996 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1997 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1998 | "dev": true,
1999 | "requires": {
2000 | "ms": "2.0.0"
2001 | }
2002 | },
2003 | "ms": {
2004 | "version": "2.0.0",
2005 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2006 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2007 | "dev": true
2008 | },
2009 | "statuses": {
2010 | "version": "1.4.0",
2011 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
2012 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
2013 | "dev": true
2014 | }
2015 | }
2016 | },
2017 | "serve-index": {
2018 | "version": "1.9.1",
2019 | "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
2020 | "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
2021 | "dev": true,
2022 | "requires": {
2023 | "accepts": "1.3.5",
2024 | "batch": "0.6.1",
2025 | "debug": "2.6.9",
2026 | "escape-html": "1.0.3",
2027 | "http-errors": "1.6.3",
2028 | "mime-types": "2.1.18",
2029 | "parseurl": "1.3.2"
2030 | },
2031 | "dependencies": {
2032 | "debug": {
2033 | "version": "2.6.9",
2034 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2035 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2036 | "dev": true,
2037 | "requires": {
2038 | "ms": "2.0.0"
2039 | }
2040 | },
2041 | "ms": {
2042 | "version": "2.0.0",
2043 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2044 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2045 | "dev": true
2046 | }
2047 | }
2048 | },
2049 | "set-immediate-shim": {
2050 | "version": "1.0.1",
2051 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
2052 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
2053 | "dev": true
2054 | },
2055 | "setprototypeof": {
2056 | "version": "1.1.0",
2057 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
2058 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
2059 | "dev": true
2060 | },
2061 | "shebang-command": {
2062 | "version": "1.2.0",
2063 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
2064 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
2065 | "dev": true,
2066 | "requires": {
2067 | "shebang-regex": "1.0.0"
2068 | }
2069 | },
2070 | "shebang-regex": {
2071 | "version": "1.0.0",
2072 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
2073 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
2074 | "dev": true
2075 | },
2076 | "signal-exit": {
2077 | "version": "3.0.2",
2078 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2079 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2080 | "dev": true
2081 | },
2082 | "source-map": {
2083 | "version": "0.5.7",
2084 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2085 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2086 | "dev": true
2087 | },
2088 | "split": {
2089 | "version": "0.3.3",
2090 | "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
2091 | "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
2092 | "dev": true,
2093 | "requires": {
2094 | "through": "2.3.8"
2095 | }
2096 | },
2097 | "statuses": {
2098 | "version": "1.3.1",
2099 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
2100 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
2101 | "dev": true
2102 | },
2103 | "stream-combiner": {
2104 | "version": "0.0.4",
2105 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
2106 | "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
2107 | "dev": true,
2108 | "requires": {
2109 | "duplexer": "0.1.1"
2110 | }
2111 | },
2112 | "string-width": {
2113 | "version": "2.1.1",
2114 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2115 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2116 | "dev": true,
2117 | "requires": {
2118 | "is-fullwidth-code-point": "2.0.0",
2119 | "strip-ansi": "4.0.0"
2120 | }
2121 | },
2122 | "string_decoder": {
2123 | "version": "1.1.1",
2124 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2125 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2126 | "dev": true,
2127 | "requires": {
2128 | "safe-buffer": "5.1.2"
2129 | }
2130 | },
2131 | "strip-ansi": {
2132 | "version": "4.0.0",
2133 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2134 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2135 | "dev": true,
2136 | "requires": {
2137 | "ansi-regex": "3.0.0"
2138 | }
2139 | },
2140 | "strip-eof": {
2141 | "version": "1.0.0",
2142 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
2143 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
2144 | "dev": true
2145 | },
2146 | "strip-json-comments": {
2147 | "version": "2.0.1",
2148 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
2149 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
2150 | "dev": true
2151 | },
2152 | "supports-color": {
2153 | "version": "5.4.0",
2154 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
2155 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
2156 | "dev": true,
2157 | "requires": {
2158 | "has-flag": "3.0.0"
2159 | }
2160 | },
2161 | "term-size": {
2162 | "version": "1.2.0",
2163 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
2164 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
2165 | "dev": true,
2166 | "requires": {
2167 | "execa": "0.7.0"
2168 | }
2169 | },
2170 | "through": {
2171 | "version": "2.3.8",
2172 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2173 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2174 | "dev": true
2175 | },
2176 | "timed-out": {
2177 | "version": "4.0.1",
2178 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
2179 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
2180 | "dev": true
2181 | },
2182 | "ultron": {
2183 | "version": "1.1.1",
2184 | "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
2185 | "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
2186 | "dev": true
2187 | },
2188 | "unique-string": {
2189 | "version": "1.0.0",
2190 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
2191 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
2192 | "dev": true,
2193 | "requires": {
2194 | "crypto-random-string": "1.0.0"
2195 | }
2196 | },
2197 | "unix-crypt-td-js": {
2198 | "version": "1.0.0",
2199 | "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz",
2200 | "integrity": "sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=",
2201 | "dev": true
2202 | },
2203 | "unpipe": {
2204 | "version": "1.0.0",
2205 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2206 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
2207 | "dev": true
2208 | },
2209 | "unzip-response": {
2210 | "version": "2.0.1",
2211 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
2212 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
2213 | "dev": true
2214 | },
2215 | "update-notifier": {
2216 | "version": "2.5.0",
2217 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
2218 | "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
2219 | "dev": true,
2220 | "requires": {
2221 | "boxen": "1.3.0",
2222 | "chalk": "2.4.1",
2223 | "configstore": "3.1.2",
2224 | "import-lazy": "2.1.0",
2225 | "is-ci": "1.1.0",
2226 | "is-installed-globally": "0.1.0",
2227 | "is-npm": "1.0.0",
2228 | "latest-version": "3.1.0",
2229 | "semver-diff": "2.1.0",
2230 | "xdg-basedir": "3.0.0"
2231 | }
2232 | },
2233 | "url-parse-lax": {
2234 | "version": "1.0.0",
2235 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
2236 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
2237 | "dev": true,
2238 | "requires": {
2239 | "prepend-http": "1.0.4"
2240 | }
2241 | },
2242 | "util-deprecate": {
2243 | "version": "1.0.2",
2244 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2245 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2246 | "dev": true
2247 | },
2248 | "utils-merge": {
2249 | "version": "1.0.0",
2250 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
2251 | "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
2252 | "dev": true
2253 | },
2254 | "uuid": {
2255 | "version": "3.2.1",
2256 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
2257 | "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
2258 | "dev": true
2259 | },
2260 | "vary": {
2261 | "version": "1.1.2",
2262 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2263 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
2264 | "dev": true
2265 | },
2266 | "websocket-driver": {
2267 | "version": "0.7.0",
2268 | "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
2269 | "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
2270 | "dev": true,
2271 | "requires": {
2272 | "http-parser-js": "0.4.12",
2273 | "websocket-extensions": "0.1.3"
2274 | }
2275 | },
2276 | "websocket-extensions": {
2277 | "version": "0.1.3",
2278 | "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
2279 | "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
2280 | "dev": true
2281 | },
2282 | "which": {
2283 | "version": "1.3.0",
2284 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
2285 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
2286 | "dev": true,
2287 | "requires": {
2288 | "isexe": "2.0.0"
2289 | }
2290 | },
2291 | "widest-line": {
2292 | "version": "2.0.0",
2293 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz",
2294 | "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=",
2295 | "dev": true,
2296 | "requires": {
2297 | "string-width": "2.1.1"
2298 | }
2299 | },
2300 | "wrappy": {
2301 | "version": "1.0.2",
2302 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2303 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2304 | "dev": true
2305 | },
2306 | "write-file-atomic": {
2307 | "version": "2.3.0",
2308 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
2309 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
2310 | "dev": true,
2311 | "requires": {
2312 | "graceful-fs": "4.1.11",
2313 | "imurmurhash": "0.1.4",
2314 | "signal-exit": "3.0.2"
2315 | }
2316 | },
2317 | "ws": {
2318 | "version": "3.3.3",
2319 | "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
2320 | "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
2321 | "dev": true,
2322 | "requires": {
2323 | "async-limiter": "1.0.0",
2324 | "safe-buffer": "5.1.2",
2325 | "ultron": "1.1.1"
2326 | }
2327 | },
2328 | "xdg-basedir": {
2329 | "version": "3.0.0",
2330 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
2331 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
2332 | "dev": true
2333 | },
2334 | "yallist": {
2335 | "version": "2.1.2",
2336 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
2337 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
2338 | "dev": true
2339 | }
2340 | }
2341 | }
2342 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "paper-css",
3 | "version": "0.4.1",
4 | "description": "Paper CSS for happy printing",
5 | "files": [
6 | "paper.css",
7 | "paper.min.css"
8 | ],
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/cognitom/paper-css.git"
12 | },
13 | "keywords": [
14 | "css",
15 | "print",
16 | "pdf",
17 | "cli"
18 | ],
19 | "author": "Tsutomu Kawamura",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/cognitom/paper-css/issues"
23 | },
24 | "homepage": "https://github.com/cognitom/paper-css",
25 | "devDependencies": {
26 | "chrome-headless-render-pdf": "^1.7.1",
27 | "clean-css-cli": "^4.1.11",
28 | "live-server": "^1.2.0"
29 | },
30 | "scripts": {
31 | "build": "npm run minify && npm run export",
32 | "minify": "cleancss paper.css -o paper.min.css",
33 | "preview": "live-server examples/receipt.html",
34 | "export": "chrome-headless-render-pdf --url file://$PWD/examples/receipt.html --pdf images/receipt.pdf --paper-width 8.27 --paper-height 5.83"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/paper.css:
--------------------------------------------------------------------------------
1 | @page { margin: 0 }
2 | body { margin: 0 }
3 | .sheet {
4 | margin: 0;
5 | overflow: hidden;
6 | position: relative;
7 | box-sizing: border-box;
8 | page-break-after: always;
9 | }
10 |
11 | /** Paper sizes **/
12 | body.A3 .sheet { width: 297mm; height: 419mm }
13 | body.A3.landscape .sheet { width: 420mm; height: 296mm }
14 | body.A4 .sheet { width: 210mm; height: 296mm }
15 | body.A4.landscape .sheet { width: 297mm; height: 209mm }
16 | body.A5 .sheet { width: 148mm; height: 209mm }
17 | body.A5.landscape .sheet { width: 210mm; height: 147mm }
18 | body.letter .sheet { width: 216mm; height: 279mm }
19 | body.letter.landscape .sheet { width: 280mm; height: 215mm }
20 | body.legal .sheet { width: 216mm; height: 356mm }
21 | body.legal.landscape .sheet { width: 357mm; height: 215mm }
22 |
23 | /** Padding area **/
24 | .sheet.padding-10mm { padding: 10mm }
25 | .sheet.padding-15mm { padding: 15mm }
26 | .sheet.padding-20mm { padding: 20mm }
27 | .sheet.padding-25mm { padding: 25mm }
28 |
29 | /** For screen preview **/
30 | @media screen {
31 | body { background: #e0e0e0 }
32 | .sheet {
33 | background: white;
34 | box-shadow: 0 .5mm 2mm rgba(0,0,0,.3);
35 | margin: 5mm auto;
36 | }
37 | }
38 |
39 | /** Fix for Chrome issue #273306 **/
40 | @media print {
41 | body.A3.landscape { width: 420mm }
42 | body.A3, body.A4.landscape { width: 297mm }
43 | body.A4, body.A5.landscape { width: 210mm }
44 | body.A5 { width: 148mm }
45 | body.letter, body.legal { width: 216mm }
46 | body.letter.landscape { width: 280mm }
47 | body.legal.landscape { width: 357mm }
48 | }
49 |
--------------------------------------------------------------------------------
/paper.min.css:
--------------------------------------------------------------------------------
1 | @page{margin:0}body{margin:0}.sheet{margin:0;overflow:hidden;position:relative;box-sizing:border-box;page-break-after:always}body.A3 .sheet{width:297mm;height:419mm}body.A3.landscape .sheet{width:420mm;height:296mm}body.A4 .sheet{width:210mm;height:296mm}body.A4.landscape .sheet{width:297mm;height:209mm}body.A5 .sheet{width:148mm;height:209mm}body.A5.landscape .sheet{width:210mm;height:147mm}body.letter .sheet{width:216mm;height:279mm}body.letter.landscape .sheet{width:280mm;height:215mm}body.legal .sheet{width:216mm;height:356mm}body.legal.landscape .sheet{width:357mm;height:215mm}.sheet.padding-10mm{padding:10mm}.sheet.padding-15mm{padding:15mm}.sheet.padding-20mm{padding:20mm}.sheet.padding-25mm{padding:25mm}@media screen{body{background:#e0e0e0}.sheet{background:#fff;box-shadow:0 .5mm 2mm rgba(0,0,0,.3);margin:5mm auto}}@media print{body.A3.landscape{width:420mm}body.A3,body.A4.landscape{width:297mm}body.A4,body.A5.landscape{width:210mm}body.A5{width:148mm}body.legal,body.letter{width:216mm}body.letter.landscape{width:280mm}body.legal.landscape{width:357mm}}
--------------------------------------------------------------------------------
/test/fixture/white.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | White
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/test/spec.js:
--------------------------------------------------------------------------------
1 | /* eslint-env mocha */
2 | import {equal, ok} from 'assert'
3 | import {dirname} from 'path'
4 | import request from 'request-promise-native'
5 | import {readFile} from 'fs-promise'
6 | import findPort from '../lib/find-port'
7 | import startServer from '../lib/server'
8 |
9 | const root = dirname(__dirname)
10 |
11 | describe('paper-cli', function () {
12 | it('finds an available port', async function () {
13 | const port = await findPort()
14 | ok(Number.isInteger(port))
15 | })
16 |
17 | it('starts a static server', async function () {
18 | const port = await findPort()
19 | const server = await startServer(root, port)
20 | const file = 'test/fixture/white.html'
21 | const url = `http://localhost:${port}/${file}`
22 | const actual = await request(url)
23 | const expected = await readFile(file, 'utf8')
24 | equal(actual, expected)
25 | server.close()
26 | })
27 | })
28 |
--------------------------------------------------------------------------------