오윤석

개발 환경 설정

1 +/app/config/*.secret
2 +/app/node/node_modules
...\ No newline at end of file ...\ No newline at end of file
1 +version: "3"
2 +services:
3 +
4 + web:
5 + image: nginx
6 + container_name: nginx
7 + ports:
8 + - "8081:80"
9 + networks:
10 + mynet:
11 + ipv4_address: 172.28.0.2
12 + volumes:
13 + - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
14 + - ./web:/var/www/html
15 + restart: on-failure
16 + links:
17 + - app
18 +
19 + svelte:
20 + image: node
21 + container_name: svelte
22 + working_dir: /var/www/html
23 + volumes:
24 + - ./web:/var/www/html
25 + command: bash -c "npm install && npm run dev"
26 + restart: on-failure
27 +
28 + app:
29 + image: node
30 + container_name: node
31 + ports:
32 + - "8082:80"
33 + networks:
34 + mynet:
35 + ipv4_address: 172.28.0.3
36 + working_dir: /app
37 + volumes:
38 + - ./node:/app
39 + - ./config:/app/config
40 + command: bash -c "npm install && node app.js"
41 + environment:
42 + - NODE_ENV=production
43 + restart: on-failure
44 +
45 +networks:
46 + mynet:
47 + ipam:
48 + driver: default
49 + config:
50 + - subnet: 172.28.0.0/16
...\ No newline at end of file ...\ No newline at end of file
1 +server {
2 + listen 80;
3 + server_name localhost;
4 + access_log /var/log/nginx/access.log.1;
5 + error_log /var/log/nginx/error.log.1;
6 +
7 + location /api {
8 + proxy_pass http://172.28.0.3;
9 + }
10 +
11 + location / {
12 + root /var/www/html/public;
13 + index index.html;
14 + }
15 +}
...\ No newline at end of file ...\ No newline at end of file
1 +let express = require('express');
2 +let app = express();
3 +let bodyParser = require('body-parser');
4 +let routes = require('./routes');
5 +
6 +app.use(bodyParser.urlencoded({ extended: false }));
7 +app.use(bodyParser.json());
8 +
9 +app.get('/api/home', routes.home);
10 +
11 +let server = app.listen(80);
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "node",
3 + "version": "1.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "accepts": {
8 + "version": "1.3.7",
9 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
10 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
11 + "requires": {
12 + "mime-types": "~2.1.24",
13 + "negotiator": "0.6.2"
14 + }
15 + },
16 + "array-flatten": {
17 + "version": "1.1.1",
18 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
19 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
20 + },
21 + "body-parser": {
22 + "version": "1.19.0",
23 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
24 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
25 + "requires": {
26 + "bytes": "3.1.0",
27 + "content-type": "~1.0.4",
28 + "debug": "2.6.9",
29 + "depd": "~1.1.2",
30 + "http-errors": "1.7.2",
31 + "iconv-lite": "0.4.24",
32 + "on-finished": "~2.3.0",
33 + "qs": "6.7.0",
34 + "raw-body": "2.4.0",
35 + "type-is": "~1.6.17"
36 + }
37 + },
38 + "bytes": {
39 + "version": "3.1.0",
40 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
41 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
42 + },
43 + "content-disposition": {
44 + "version": "0.5.3",
45 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
46 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
47 + "requires": {
48 + "safe-buffer": "5.1.2"
49 + }
50 + },
51 + "content-type": {
52 + "version": "1.0.4",
53 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
54 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
55 + },
56 + "cookie": {
57 + "version": "0.4.0",
58 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
59 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
60 + },
61 + "cookie-signature": {
62 + "version": "1.0.6",
63 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
64 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
65 + },
66 + "debug": {
67 + "version": "2.6.9",
68 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
69 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
70 + "requires": {
71 + "ms": "2.0.0"
72 + }
73 + },
74 + "depd": {
75 + "version": "1.1.2",
76 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
77 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
78 + },
79 + "destroy": {
80 + "version": "1.0.4",
81 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
82 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
83 + },
84 + "ee-first": {
85 + "version": "1.1.1",
86 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
87 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
88 + },
89 + "encodeurl": {
90 + "version": "1.0.2",
91 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
92 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
93 + },
94 + "escape-html": {
95 + "version": "1.0.3",
96 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
97 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
98 + },
99 + "etag": {
100 + "version": "1.8.1",
101 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
102 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
103 + },
104 + "express": {
105 + "version": "4.17.1",
106 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
107 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
108 + "requires": {
109 + "accepts": "~1.3.7",
110 + "array-flatten": "1.1.1",
111 + "body-parser": "1.19.0",
112 + "content-disposition": "0.5.3",
113 + "content-type": "~1.0.4",
114 + "cookie": "0.4.0",
115 + "cookie-signature": "1.0.6",
116 + "debug": "2.6.9",
117 + "depd": "~1.1.2",
118 + "encodeurl": "~1.0.2",
119 + "escape-html": "~1.0.3",
120 + "etag": "~1.8.1",
121 + "finalhandler": "~1.1.2",
122 + "fresh": "0.5.2",
123 + "merge-descriptors": "1.0.1",
124 + "methods": "~1.1.2",
125 + "on-finished": "~2.3.0",
126 + "parseurl": "~1.3.3",
127 + "path-to-regexp": "0.1.7",
128 + "proxy-addr": "~2.0.5",
129 + "qs": "6.7.0",
130 + "range-parser": "~1.2.1",
131 + "safe-buffer": "5.1.2",
132 + "send": "0.17.1",
133 + "serve-static": "1.14.1",
134 + "setprototypeof": "1.1.1",
135 + "statuses": "~1.5.0",
136 + "type-is": "~1.6.18",
137 + "utils-merge": "1.0.1",
138 + "vary": "~1.1.2"
139 + }
140 + },
141 + "finalhandler": {
142 + "version": "1.1.2",
143 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
144 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
145 + "requires": {
146 + "debug": "2.6.9",
147 + "encodeurl": "~1.0.2",
148 + "escape-html": "~1.0.3",
149 + "on-finished": "~2.3.0",
150 + "parseurl": "~1.3.3",
151 + "statuses": "~1.5.0",
152 + "unpipe": "~1.0.0"
153 + }
154 + },
155 + "forwarded": {
156 + "version": "0.1.2",
157 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
158 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
159 + },
160 + "fresh": {
161 + "version": "0.5.2",
162 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
163 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
164 + },
165 + "http": {
166 + "version": "0.0.1-security",
167 + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
168 + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g=="
169 + },
170 + "http-errors": {
171 + "version": "1.7.2",
172 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
173 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
174 + "requires": {
175 + "depd": "~1.1.2",
176 + "inherits": "2.0.3",
177 + "setprototypeof": "1.1.1",
178 + "statuses": ">= 1.5.0 < 2",
179 + "toidentifier": "1.0.0"
180 + },
181 + "dependencies": {
182 + "inherits": {
183 + "version": "2.0.3",
184 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
185 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
186 + }
187 + }
188 + },
189 + "iconv-lite": {
190 + "version": "0.4.24",
191 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
192 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
193 + "requires": {
194 + "safer-buffer": ">= 2.1.2 < 3"
195 + }
196 + },
197 + "ipaddr.js": {
198 + "version": "1.9.1",
199 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
200 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
201 + },
202 + "media-typer": {
203 + "version": "0.3.0",
204 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
205 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
206 + },
207 + "merge-descriptors": {
208 + "version": "1.0.1",
209 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
210 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
211 + },
212 + "methods": {
213 + "version": "1.1.2",
214 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
215 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
216 + },
217 + "mime": {
218 + "version": "1.6.0",
219 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
220 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
221 + },
222 + "mime-db": {
223 + "version": "1.44.0",
224 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
225 + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
226 + },
227 + "mime-types": {
228 + "version": "2.1.27",
229 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
230 + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
231 + "requires": {
232 + "mime-db": "1.44.0"
233 + }
234 + },
235 + "ms": {
236 + "version": "2.0.0",
237 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
238 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
239 + },
240 + "negotiator": {
241 + "version": "0.6.2",
242 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
243 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
244 + },
245 + "on-finished": {
246 + "version": "2.3.0",
247 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
248 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
249 + "requires": {
250 + "ee-first": "1.1.1"
251 + }
252 + },
253 + "parseurl": {
254 + "version": "1.3.3",
255 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
256 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
257 + },
258 + "path-to-regexp": {
259 + "version": "0.1.7",
260 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
261 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
262 + },
263 + "proxy-addr": {
264 + "version": "2.0.6",
265 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
266 + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
267 + "requires": {
268 + "forwarded": "~0.1.2",
269 + "ipaddr.js": "1.9.1"
270 + }
271 + },
272 + "qs": {
273 + "version": "6.7.0",
274 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
275 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
276 + },
277 + "range-parser": {
278 + "version": "1.2.1",
279 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
280 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
281 + },
282 + "raw-body": {
283 + "version": "2.4.0",
284 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
285 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
286 + "requires": {
287 + "bytes": "3.1.0",
288 + "http-errors": "1.7.2",
289 + "iconv-lite": "0.4.24",
290 + "unpipe": "1.0.0"
291 + }
292 + },
293 + "safe-buffer": {
294 + "version": "5.1.2",
295 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
296 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
297 + },
298 + "safer-buffer": {
299 + "version": "2.1.2",
300 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
301 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
302 + },
303 + "send": {
304 + "version": "0.17.1",
305 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
306 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
307 + "requires": {
308 + "debug": "2.6.9",
309 + "depd": "~1.1.2",
310 + "destroy": "~1.0.4",
311 + "encodeurl": "~1.0.2",
312 + "escape-html": "~1.0.3",
313 + "etag": "~1.8.1",
314 + "fresh": "0.5.2",
315 + "http-errors": "~1.7.2",
316 + "mime": "1.6.0",
317 + "ms": "2.1.1",
318 + "on-finished": "~2.3.0",
319 + "range-parser": "~1.2.1",
320 + "statuses": "~1.5.0"
321 + },
322 + "dependencies": {
323 + "ms": {
324 + "version": "2.1.1",
325 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
326 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
327 + }
328 + }
329 + },
330 + "serve-static": {
331 + "version": "1.14.1",
332 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
333 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
334 + "requires": {
335 + "encodeurl": "~1.0.2",
336 + "escape-html": "~1.0.3",
337 + "parseurl": "~1.3.3",
338 + "send": "0.17.1"
339 + }
340 + },
341 + "setprototypeof": {
342 + "version": "1.1.1",
343 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
344 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
345 + },
346 + "statuses": {
347 + "version": "1.5.0",
348 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
349 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
350 + },
351 + "toidentifier": {
352 + "version": "1.0.0",
353 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
354 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
355 + },
356 + "type-is": {
357 + "version": "1.6.18",
358 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
359 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
360 + "requires": {
361 + "media-typer": "0.3.0",
362 + "mime-types": "~2.1.24"
363 + }
364 + },
365 + "unpipe": {
366 + "version": "1.0.0",
367 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
368 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
369 + },
370 + "utils-merge": {
371 + "version": "1.0.1",
372 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
373 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
374 + },
375 + "vary": {
376 + "version": "1.1.2",
377 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
378 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
379 + }
380 + }
381 +}
1 +{
2 + "name": "node",
3 + "version": "1.0.0",
4 + "description": "",
5 + "main": "app.js",
6 + "scripts": {
7 + "test": "echo \"Error: no test specified\" && exit 1"
8 + },
9 + "author": "",
10 + "license": "ISC",
11 + "dependencies": {
12 + "express": "^4.17.1",
13 + "http": "0.0.1-security"
14 + }
15 +}
1 +module.exports = function(req, res) {
2 + res.send('this is home');
3 +}
...\ No newline at end of file ...\ No newline at end of file
1 +let routes = {};
2 +routes.home = require('./home');
3 +
4 +module.exports = routes;
...\ No newline at end of file ...\ No newline at end of file
1 +/node_modules/
2 +/public/build/
3 +
4 +.DS_Store
1 +*Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)*
2 +
3 +---
4 +
5 +# svelte app
6 +
7 +This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template.
8 +
9 +To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
10 +
11 +```bash
12 +npx degit sveltejs/template svelte-app
13 +cd svelte-app
14 +```
15 +
16 +*Note that you will need to have [Node.js](https://nodejs.org) installed.*
17 +
18 +
19 +## Get started
20 +
21 +Install the dependencies...
22 +
23 +```bash
24 +cd svelte-app
25 +npm install
26 +```
27 +
28 +...then start [Rollup](https://rollupjs.org):
29 +
30 +```bash
31 +npm run dev
32 +```
33 +
34 +Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes.
35 +
36 +By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`.
37 +
38 +
39 +## Building and running in production mode
40 +
41 +To create an optimised version of the app:
42 +
43 +```bash
44 +npm run build
45 +```
46 +
47 +You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com).
48 +
49 +
50 +## Single-page app mode
51 +
52 +By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere.
53 +
54 +If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for *any* path. You can make it so by editing the `"start"` command in package.json:
55 +
56 +```js
57 +"start": "sirv public --single"
58 +```
59 +
60 +
61 +## Deploying to the web
62 +
63 +### With [now](https://zeit.co/now)
64 +
65 +Install `now` if you haven't already:
66 +
67 +```bash
68 +npm install -g now
69 +```
70 +
71 +Then, from within your project folder:
72 +
73 +```bash
74 +cd public
75 +now deploy --name my-project
76 +```
77 +
78 +As an alternative, use the [Now desktop client](https://zeit.co/download) and simply drag the unzipped project folder to the taskbar icon.
79 +
80 +### With [surge](https://surge.sh/)
81 +
82 +Install `surge` if you haven't already:
83 +
84 +```bash
85 +npm install -g surge
86 +```
87 +
88 +Then, from within your project folder:
89 +
90 +```bash
91 +npm run build
92 +surge public my-project.surge.sh
93 +```
1 +{
2 + "name": "svelte-app",
3 + "version": "1.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "@babel/code-frame": {
8 + "version": "7.8.3",
9 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
10 + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
11 + "dev": true,
12 + "requires": {
13 + "@babel/highlight": "^7.8.3"
14 + }
15 + },
16 + "@babel/helper-validator-identifier": {
17 + "version": "7.9.5",
18 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
19 + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
20 + "dev": true
21 + },
22 + "@babel/highlight": {
23 + "version": "7.9.0",
24 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
25 + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
26 + "dev": true,
27 + "requires": {
28 + "@babel/helper-validator-identifier": "^7.9.0",
29 + "chalk": "^2.0.0",
30 + "js-tokens": "^4.0.0"
31 + }
32 + },
33 + "@nodelib/fs.scandir": {
34 + "version": "2.1.3",
35 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
36 + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
37 + "requires": {
38 + "@nodelib/fs.stat": "2.0.3",
39 + "run-parallel": "^1.1.9"
40 + }
41 + },
42 + "@nodelib/fs.stat": {
43 + "version": "2.0.3",
44 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
45 + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
46 + },
47 + "@nodelib/fs.walk": {
48 + "version": "1.2.4",
49 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
50 + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
51 + "requires": {
52 + "@nodelib/fs.scandir": "2.1.3",
53 + "fastq": "^1.6.0"
54 + }
55 + },
56 + "@polka/url": {
57 + "version": "0.5.0",
58 + "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz",
59 + "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw=="
60 + },
61 + "@rollup/plugin-commonjs": {
62 + "version": "11.0.2",
63 + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.0.2.tgz",
64 + "integrity": "sha512-MPYGZr0qdbV5zZj8/2AuomVpnRVXRU5XKXb3HVniwRoRCreGlf5kOE081isNWeiLIi6IYkwTX9zE0/c7V8g81g==",
65 + "dev": true,
66 + "requires": {
67 + "@rollup/pluginutils": "^3.0.0",
68 + "estree-walker": "^1.0.1",
69 + "is-reference": "^1.1.2",
70 + "magic-string": "^0.25.2",
71 + "resolve": "^1.11.0"
72 + }
73 + },
74 + "@rollup/plugin-node-resolve": {
75 + "version": "7.1.3",
76 + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
77 + "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==",
78 + "dev": true,
79 + "requires": {
80 + "@rollup/pluginutils": "^3.0.8",
81 + "@types/resolve": "0.0.8",
82 + "builtin-modules": "^3.1.0",
83 + "is-module": "^1.0.0",
84 + "resolve": "^1.14.2"
85 + }
86 + },
87 + "@rollup/pluginutils": {
88 + "version": "3.0.10",
89 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.10.tgz",
90 + "integrity": "sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==",
91 + "dev": true,
92 + "requires": {
93 + "@types/estree": "0.0.39",
94 + "estree-walker": "^1.0.1",
95 + "picomatch": "^2.2.2"
96 + }
97 + },
98 + "@types/estree": {
99 + "version": "0.0.39",
100 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
101 + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
102 + "dev": true
103 + },
104 + "@types/events": {
105 + "version": "3.0.0",
106 + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
107 + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="
108 + },
109 + "@types/fs-extra": {
110 + "version": "8.1.1",
111 + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz",
112 + "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==",
113 + "requires": {
114 + "@types/node": "*"
115 + }
116 + },
117 + "@types/glob": {
118 + "version": "7.1.1",
119 + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
120 + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
121 + "requires": {
122 + "@types/events": "*",
123 + "@types/minimatch": "*",
124 + "@types/node": "*"
125 + }
126 + },
127 + "@types/minimatch": {
128 + "version": "3.0.3",
129 + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
130 + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
131 + },
132 + "@types/node": {
133 + "version": "14.0.1",
134 + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz",
135 + "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA=="
136 + },
137 + "@types/resolve": {
138 + "version": "0.0.8",
139 + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
140 + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
141 + "dev": true,
142 + "requires": {
143 + "@types/node": "*"
144 + }
145 + },
146 + "acorn": {
147 + "version": "7.2.0",
148 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
149 + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==",
150 + "dev": true
151 + },
152 + "ansi-styles": {
153 + "version": "3.2.1",
154 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
155 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
156 + "dev": true,
157 + "requires": {
158 + "color-convert": "^1.9.0"
159 + }
160 + },
161 + "anymatch": {
162 + "version": "3.1.1",
163 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
164 + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
165 + "dev": true,
166 + "requires": {
167 + "normalize-path": "^3.0.0",
168 + "picomatch": "^2.0.4"
169 + }
170 + },
171 + "array-union": {
172 + "version": "2.1.0",
173 + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
174 + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
175 + },
176 + "async-limiter": {
177 + "version": "1.0.1",
178 + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
179 + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
180 + "dev": true
181 + },
182 + "balanced-match": {
183 + "version": "1.0.0",
184 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
185 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
186 + },
187 + "binary-extensions": {
188 + "version": "2.0.0",
189 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
190 + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
191 + "dev": true
192 + },
193 + "brace-expansion": {
194 + "version": "1.1.11",
195 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
196 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
197 + "requires": {
198 + "balanced-match": "^1.0.0",
199 + "concat-map": "0.0.1"
200 + }
201 + },
202 + "braces": {
203 + "version": "3.0.2",
204 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
205 + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
206 + "requires": {
207 + "fill-range": "^7.0.1"
208 + }
209 + },
210 + "buffer-from": {
211 + "version": "1.1.1",
212 + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
213 + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
214 + "dev": true
215 + },
216 + "builtin-modules": {
217 + "version": "3.1.0",
218 + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
219 + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
220 + "dev": true
221 + },
222 + "chalk": {
223 + "version": "2.4.2",
224 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
225 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
226 + "dev": true,
227 + "requires": {
228 + "ansi-styles": "^3.2.1",
229 + "escape-string-regexp": "^1.0.5",
230 + "supports-color": "^5.3.0"
231 + }
232 + },
233 + "chokidar": {
234 + "version": "3.4.0",
235 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
236 + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
237 + "dev": true,
238 + "requires": {
239 + "anymatch": "~3.1.1",
240 + "braces": "~3.0.2",
241 + "fsevents": "~2.1.2",
242 + "glob-parent": "~5.1.0",
243 + "is-binary-path": "~2.1.0",
244 + "is-glob": "~4.0.1",
245 + "normalize-path": "~3.0.0",
246 + "readdirp": "~3.4.0"
247 + }
248 + },
249 + "color-convert": {
250 + "version": "1.9.3",
251 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
252 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
253 + "dev": true,
254 + "requires": {
255 + "color-name": "1.1.3"
256 + }
257 + },
258 + "color-name": {
259 + "version": "1.1.3",
260 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
261 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
262 + "dev": true
263 + },
264 + "colorette": {
265 + "version": "1.2.0",
266 + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz",
267 + "integrity": "sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw=="
268 + },
269 + "commander": {
270 + "version": "2.20.3",
271 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
272 + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
273 + "dev": true
274 + },
275 + "concat-map": {
276 + "version": "0.0.1",
277 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
278 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
279 + },
280 + "console-clear": {
281 + "version": "1.1.1",
282 + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz",
283 + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ=="
284 + },
285 + "dir-glob": {
286 + "version": "3.0.1",
287 + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
288 + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
289 + "requires": {
290 + "path-type": "^4.0.0"
291 + }
292 + },
293 + "escape-string-regexp": {
294 + "version": "1.0.5",
295 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
296 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
297 + "dev": true
298 + },
299 + "estree-walker": {
300 + "version": "1.0.1",
301 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
302 + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
303 + "dev": true
304 + },
305 + "fast-glob": {
306 + "version": "3.2.2",
307 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz",
308 + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==",
309 + "requires": {
310 + "@nodelib/fs.stat": "^2.0.2",
311 + "@nodelib/fs.walk": "^1.2.3",
312 + "glob-parent": "^5.1.0",
313 + "merge2": "^1.3.0",
314 + "micromatch": "^4.0.2",
315 + "picomatch": "^2.2.1"
316 + }
317 + },
318 + "fastq": {
319 + "version": "1.8.0",
320 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
321 + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
322 + "requires": {
323 + "reusify": "^1.0.4"
324 + }
325 + },
326 + "fill-range": {
327 + "version": "7.0.1",
328 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
329 + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
330 + "requires": {
331 + "to-regex-range": "^5.0.1"
332 + }
333 + },
334 + "fs-extra": {
335 + "version": "8.1.0",
336 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
337 + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
338 + "requires": {
339 + "graceful-fs": "^4.2.0",
340 + "jsonfile": "^4.0.0",
341 + "universalify": "^0.1.0"
342 + }
343 + },
344 + "fs.realpath": {
345 + "version": "1.0.0",
346 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
347 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
348 + },
349 + "fsevents": {
350 + "version": "2.1.3",
351 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
352 + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
353 + "dev": true,
354 + "optional": true
355 + },
356 + "get-port": {
357 + "version": "3.2.0",
358 + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
359 + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw="
360 + },
361 + "glob": {
362 + "version": "7.1.6",
363 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
364 + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
365 + "requires": {
366 + "fs.realpath": "^1.0.0",
367 + "inflight": "^1.0.4",
368 + "inherits": "2",
369 + "minimatch": "^3.0.4",
370 + "once": "^1.3.0",
371 + "path-is-absolute": "^1.0.0"
372 + }
373 + },
374 + "glob-parent": {
375 + "version": "5.1.1",
376 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
377 + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
378 + "requires": {
379 + "is-glob": "^4.0.1"
380 + }
381 + },
382 + "globby": {
383 + "version": "10.0.1",
384 + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
385 + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
386 + "requires": {
387 + "@types/glob": "^7.1.1",
388 + "array-union": "^2.1.0",
389 + "dir-glob": "^3.0.1",
390 + "fast-glob": "^3.0.3",
391 + "glob": "^7.1.3",
392 + "ignore": "^5.1.1",
393 + "merge2": "^1.2.3",
394 + "slash": "^3.0.0"
395 + }
396 + },
397 + "graceful-fs": {
398 + "version": "4.2.4",
399 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
400 + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
401 + },
402 + "has-flag": {
403 + "version": "3.0.0",
404 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
405 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
406 + "dev": true
407 + },
408 + "ignore": {
409 + "version": "5.1.6",
410 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.6.tgz",
411 + "integrity": "sha512-cgXgkypZBcCnOgSihyeqbo6gjIaIyDqPQB7Ra4vhE9m6kigdGoQDMHjviFhRZo3IMlRy6yElosoviMs5YxZXUA=="
412 + },
413 + "inflight": {
414 + "version": "1.0.6",
415 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
416 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
417 + "requires": {
418 + "once": "^1.3.0",
419 + "wrappy": "1"
420 + }
421 + },
422 + "inherits": {
423 + "version": "2.0.4",
424 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
425 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
426 + },
427 + "is-binary-path": {
428 + "version": "2.1.0",
429 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
430 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
431 + "dev": true,
432 + "requires": {
433 + "binary-extensions": "^2.0.0"
434 + }
435 + },
436 + "is-extglob": {
437 + "version": "2.1.1",
438 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
439 + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
440 + },
441 + "is-glob": {
442 + "version": "4.0.1",
443 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
444 + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
445 + "requires": {
446 + "is-extglob": "^2.1.1"
447 + }
448 + },
449 + "is-module": {
450 + "version": "1.0.0",
451 + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
452 + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
453 + "dev": true
454 + },
455 + "is-number": {
456 + "version": "7.0.0",
457 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
458 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
459 + },
460 + "is-plain-object": {
461 + "version": "3.0.0",
462 + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
463 + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
464 + "requires": {
465 + "isobject": "^4.0.0"
466 + }
467 + },
468 + "is-reference": {
469 + "version": "1.1.4",
470 + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz",
471 + "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==",
472 + "dev": true,
473 + "requires": {
474 + "@types/estree": "0.0.39"
475 + }
476 + },
477 + "isobject": {
478 + "version": "4.0.0",
479 + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
480 + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA=="
481 + },
482 + "jest-worker": {
483 + "version": "24.9.0",
484 + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
485 + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
486 + "dev": true,
487 + "requires": {
488 + "merge-stream": "^2.0.0",
489 + "supports-color": "^6.1.0"
490 + },
491 + "dependencies": {
492 + "supports-color": {
493 + "version": "6.1.0",
494 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
495 + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
496 + "dev": true,
497 + "requires": {
498 + "has-flag": "^3.0.0"
499 + }
500 + }
501 + }
502 + },
503 + "js-tokens": {
504 + "version": "4.0.0",
505 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
506 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
507 + "dev": true
508 + },
509 + "jsonfile": {
510 + "version": "4.0.0",
511 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
512 + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
513 + "requires": {
514 + "graceful-fs": "^4.1.6"
515 + }
516 + },
517 + "kleur": {
518 + "version": "3.0.3",
519 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
520 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
521 + },
522 + "livereload": {
523 + "version": "0.9.1",
524 + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.1.tgz",
525 + "integrity": "sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==",
526 + "dev": true,
527 + "requires": {
528 + "chokidar": "^3.3.0",
529 + "livereload-js": "^3.1.0",
530 + "opts": ">= 1.2.0",
531 + "ws": "^6.2.1"
532 + }
533 + },
534 + "livereload-js": {
535 + "version": "3.2.2",
536 + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.2.2.tgz",
537 + "integrity": "sha512-xhScbNeC687ZINjEf/bD+BMiPx4s4q0mehcLb3zCc8+mykOtmaBR4vqzyIV9rIGdG9JjHaT0LiFdscvivCjX1Q==",
538 + "dev": true
539 + },
540 + "local-access": {
541 + "version": "1.0.1",
542 + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.0.1.tgz",
543 + "integrity": "sha512-ykt2pgN0aqIy6KQC1CqdWTWkmUwNgaOS6dcpHVjyBJONA+Xi7AtSB1vuxC/U/0tjIP3wcRudwQk1YYzUvzk2bA=="
544 + },
545 + "magic-string": {
546 + "version": "0.25.7",
547 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
548 + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
549 + "dev": true,
550 + "requires": {
551 + "sourcemap-codec": "^1.4.4"
552 + }
553 + },
554 + "merge-stream": {
555 + "version": "2.0.0",
556 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
557 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
558 + "dev": true
559 + },
560 + "merge2": {
561 + "version": "1.3.0",
562 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz",
563 + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw=="
564 + },
565 + "micromatch": {
566 + "version": "4.0.2",
567 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
568 + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
569 + "requires": {
570 + "braces": "^3.0.1",
571 + "picomatch": "^2.0.5"
572 + }
573 + },
574 + "mime": {
575 + "version": "2.4.5",
576 + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
577 + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w=="
578 + },
579 + "minimatch": {
580 + "version": "3.0.4",
581 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
582 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
583 + "requires": {
584 + "brace-expansion": "^1.1.7"
585 + }
586 + },
587 + "mri": {
588 + "version": "1.1.5",
589 + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz",
590 + "integrity": "sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg=="
591 + },
592 + "normalize-path": {
593 + "version": "3.0.0",
594 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
595 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
596 + "dev": true
597 + },
598 + "once": {
599 + "version": "1.4.0",
600 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
601 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
602 + "requires": {
603 + "wrappy": "1"
604 + }
605 + },
606 + "opts": {
607 + "version": "1.2.7",
608 + "resolved": "https://registry.npmjs.org/opts/-/opts-1.2.7.tgz",
609 + "integrity": "sha512-hwZhzGGG/GQ7igxAVFOEun2N4fWul31qE9nfBdCnZGQCB5+L7tN9xZ+94B4aUpLOJx/of3zZs5XsuubayQYQjA==",
610 + "dev": true
611 + },
612 + "path-is-absolute": {
613 + "version": "1.0.1",
614 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
615 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
616 + },
617 + "path-parse": {
618 + "version": "1.0.6",
619 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
620 + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
621 + "dev": true
622 + },
623 + "path-type": {
624 + "version": "4.0.0",
625 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
626 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
627 + },
628 + "picomatch": {
629 + "version": "2.2.2",
630 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
631 + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
632 + },
633 + "readdirp": {
634 + "version": "3.4.0",
635 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
636 + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
637 + "dev": true,
638 + "requires": {
639 + "picomatch": "^2.2.1"
640 + }
641 + },
642 + "regexparam": {
643 + "version": "1.3.0",
644 + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
645 + "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g=="
646 + },
647 + "require-relative": {
648 + "version": "0.8.7",
649 + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
650 + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
651 + "dev": true
652 + },
653 + "resolve": {
654 + "version": "1.17.0",
655 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
656 + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
657 + "dev": true,
658 + "requires": {
659 + "path-parse": "^1.0.6"
660 + }
661 + },
662 + "reusify": {
663 + "version": "1.0.4",
664 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
665 + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
666 + },
667 + "rollup": {
668 + "version": "1.32.1",
669 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
670 + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
671 + "dev": true,
672 + "requires": {
673 + "@types/estree": "*",
674 + "@types/node": "*",
675 + "acorn": "^7.1.0"
676 + }
677 + },
678 + "rollup-plugin-copy": {
679 + "version": "3.3.0",
680 + "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.3.0.tgz",
681 + "integrity": "sha512-euDjCUSBXZa06nqnwCNADbkAcYDfzwowfZQkto9K/TFhiH+QG7I4PUsEMwM9tDgomGWJc//z7KLW8t+tZwxADA==",
682 + "requires": {
683 + "@types/fs-extra": "^8.0.1",
684 + "colorette": "^1.1.0",
685 + "fs-extra": "^8.1.0",
686 + "globby": "10.0.1",
687 + "is-plain-object": "^3.0.0"
688 + }
689 + },
690 + "rollup-plugin-livereload": {
691 + "version": "1.3.0",
692 + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-1.3.0.tgz",
693 + "integrity": "sha512-abyqXaB21+nFHo+vJULBqfzNx6zXABC19UyvqgDfdoxR/8pFAd041GO+GIUe8ZYC2DbuMUmioh1Lvbk14YLZgw==",
694 + "dev": true,
695 + "requires": {
696 + "livereload": "^0.9.1"
697 + }
698 + },
699 + "rollup-plugin-svelte": {
700 + "version": "5.2.2",
701 + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-5.2.2.tgz",
702 + "integrity": "sha512-I+TJ2T+VLKGbKQcpeMJ4AR2ciROqTZNjxbiMiH4Cn1yByaB9OEuy3CnrgHHuWatQcPuF3yIViyKX7OlETWDKOQ==",
703 + "dev": true,
704 + "requires": {
705 + "require-relative": "^0.8.7",
706 + "rollup-pluginutils": "^2.8.2",
707 + "sourcemap-codec": "^1.4.8"
708 + }
709 + },
710 + "rollup-plugin-terser": {
711 + "version": "5.3.0",
712 + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz",
713 + "integrity": "sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==",
714 + "dev": true,
715 + "requires": {
716 + "@babel/code-frame": "^7.5.5",
717 + "jest-worker": "^24.9.0",
718 + "rollup-pluginutils": "^2.8.2",
719 + "serialize-javascript": "^2.1.2",
720 + "terser": "^4.6.2"
721 + }
722 + },
723 + "rollup-pluginutils": {
724 + "version": "2.8.2",
725 + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
726 + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
727 + "dev": true,
728 + "requires": {
729 + "estree-walker": "^0.6.1"
730 + },
731 + "dependencies": {
732 + "estree-walker": {
733 + "version": "0.6.1",
734 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
735 + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
736 + "dev": true
737 + }
738 + }
739 + },
740 + "run-parallel": {
741 + "version": "1.1.9",
742 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
743 + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q=="
744 + },
745 + "sade": {
746 + "version": "1.7.3",
747 + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.3.tgz",
748 + "integrity": "sha512-m4BctppMvJ60W1dXnHq7jMmFe3hPJZDAH85kQ3ACTo7XZNVUuTItCQ+2HfyaMeV5cKrbw7l4vD/6We3GBxvdJw==",
749 + "requires": {
750 + "mri": "^1.1.0"
751 + }
752 + },
753 + "serialize-javascript": {
754 + "version": "2.1.2",
755 + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
756 + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
757 + "dev": true
758 + },
759 + "sirv": {
760 + "version": "0.4.2",
761 + "resolved": "https://registry.npmjs.org/sirv/-/sirv-0.4.2.tgz",
762 + "integrity": "sha512-dQbZnsMaIiTQPZmbGmktz+c74zt/hyrJEB4tdp2Jj0RNv9J6B/OWR5RyrZEvIn9fyh9Zlg2OlE2XzKz6wMKGAw==",
763 + "requires": {
764 + "@polka/url": "^0.5.0",
765 + "mime": "^2.3.1"
766 + }
767 + },
768 + "sirv-cli": {
769 + "version": "0.4.5",
770 + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-0.4.5.tgz",
771 + "integrity": "sha512-Fl6icSm0EwPrXSGid2xphMp//WNTSX2yENRAGnJuuZNmdc8LvE/BtdZD3MPn28ifAfDqTMwbB3dpcZojAIOiBg==",
772 + "requires": {
773 + "console-clear": "^1.1.0",
774 + "get-port": "^3.2.0",
775 + "kleur": "^3.0.0",
776 + "local-access": "^1.0.1",
777 + "sade": "^1.4.0",
778 + "sirv": "^0.4.2",
779 + "tinydate": "^1.0.0"
780 + }
781 + },
782 + "slash": {
783 + "version": "3.0.0",
784 + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
785 + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
786 + },
787 + "source-map": {
788 + "version": "0.6.1",
789 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
790 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
791 + "dev": true
792 + },
793 + "source-map-support": {
794 + "version": "0.5.19",
795 + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
796 + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
797 + "dev": true,
798 + "requires": {
799 + "buffer-from": "^1.0.0",
800 + "source-map": "^0.6.0"
801 + }
802 + },
803 + "sourcemap-codec": {
804 + "version": "1.4.8",
805 + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
806 + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
807 + "dev": true
808 + },
809 + "supports-color": {
810 + "version": "5.5.0",
811 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
812 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
813 + "dev": true,
814 + "requires": {
815 + "has-flag": "^3.0.0"
816 + }
817 + },
818 + "svelte": {
819 + "version": "3.22.3",
820 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.22.3.tgz",
821 + "integrity": "sha512-DumSy5eWPFPlMUGf3+eHyFSkt5yLqyAmMdCuXOE4qc5GtFyLxwTAGKZmgKmW2jmbpTTeFQ/fSQfDBQbl9Eo7yw==",
822 + "dev": true
823 + },
824 + "svelte-spa-router": {
825 + "version": "2.1.0",
826 + "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-2.1.0.tgz",
827 + "integrity": "sha512-9bcQPTQ6A+Z92Z+NirVVusa/Sw6nqzKwZAKfu1Cl6+XjStf12hfIcPoMfTutEBoX0Ik+z7gJbJ934PKk94BvCg==",
828 + "requires": {
829 + "regexparam": "1.3.0"
830 + }
831 + },
832 + "terser": {
833 + "version": "4.7.0",
834 + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz",
835 + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==",
836 + "dev": true,
837 + "requires": {
838 + "commander": "^2.20.0",
839 + "source-map": "~0.6.1",
840 + "source-map-support": "~0.5.12"
841 + }
842 + },
843 + "tinydate": {
844 + "version": "1.2.0",
845 + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.2.0.tgz",
846 + "integrity": "sha512-3GwPk8VhDFnUZ2TrgkhXJs6hcMAIIw4x/xkz+ayK6dGoQmp2nUwKzBXK0WnMsqkh6vfUhpqQicQF3rbshfyJkg=="
847 + },
848 + "to-regex-range": {
849 + "version": "5.0.1",
850 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
851 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
852 + "requires": {
853 + "is-number": "^7.0.0"
854 + }
855 + },
856 + "universalify": {
857 + "version": "0.1.2",
858 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
859 + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
860 + },
861 + "wrappy": {
862 + "version": "1.0.2",
863 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
864 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
865 + },
866 + "ws": {
867 + "version": "6.2.1",
868 + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
869 + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
870 + "dev": true,
871 + "requires": {
872 + "async-limiter": "~1.0.0"
873 + }
874 + }
875 + }
876 +}
1 +{
2 + "name": "svelte-app",
3 + "version": "1.0.0",
4 + "scripts": {
5 + "build": "rollup -c",
6 + "dev": "rollup -c -w",
7 + "start": "sirv public"
8 + },
9 + "devDependencies": {
10 + "@rollup/plugin-commonjs": "11.0.2",
11 + "@rollup/plugin-node-resolve": "^7.0.0",
12 + "rollup": "^1.20.0",
13 + "rollup-plugin-livereload": "^1.0.0",
14 + "rollup-plugin-svelte": "^5.0.3",
15 + "rollup-plugin-terser": "^5.1.2",
16 + "svelte": "^3.0.0"
17 + },
18 + "dependencies": {
19 + "rollup-plugin-copy": "^3.3.0",
20 + "sirv-cli": "^0.4.4",
21 + "svelte-spa-router": "^2.1.0"
22 + }
23 +}
1 +html, body {
2 + position: relative;
3 + width: 100%;
4 + height: 100%;
5 +}
6 +
7 +body {
8 + color: #333;
9 + margin: 0;
10 + padding: 8px;
11 + box-sizing: border-box;
12 + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
13 +}
14 +
15 +a {
16 + color: rgb(0,100,200);
17 + text-decoration: none;
18 +}
19 +
20 +a:hover {
21 + text-decoration: underline;
22 +}
23 +
24 +a:visited {
25 + color: rgb(0,80,160);
26 +}
27 +
28 +label {
29 + display: block;
30 +}
31 +
32 +input, button, select, textarea {
33 + font-family: inherit;
34 + font-size: inherit;
35 + padding: 0.4em;
36 + margin: 0 0 0.5em 0;
37 + box-sizing: border-box;
38 + border: 1px solid #ccc;
39 + border-radius: 2px;
40 +}
41 +
42 +input:disabled {
43 + color: #ccc;
44 +}
45 +
46 +input[type="range"] {
47 + height: 0;
48 +}
49 +
50 +button {
51 + color: #333;
52 + background-color: #f4f4f4;
53 + outline: none;
54 +}
55 +
56 +button:disabled {
57 + color: #999;
58 +}
59 +
60 +button:not(:disabled):active {
61 + background-color: #ddd;
62 +}
63 +
64 +button:focus {
65 + border-color: #666;
66 +}
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +<head>
4 + <meta charset='utf-8'>
5 + <meta name='viewport' content='width=device-width,initial-scale=1'>
6 +
7 + <title>Svelte app</title>
8 +
9 + <link rel='icon' type='image/png' href='/favicon.png'>
10 + <link rel='stylesheet' href='/global.css'>
11 + <link rel='stylesheet' href='/build/bundle.css'>
12 +
13 + <script defer src='/build/bundle.js'></script>
14 +</head>
15 +
16 +<body>
17 +</body>
18 +</html>
1 +import svelte from 'rollup-plugin-svelte';
2 +import resolve from '@rollup/plugin-node-resolve';
3 +import commonjs from '@rollup/plugin-commonjs';
4 +import livereload from 'rollup-plugin-livereload';
5 +import { terser } from 'rollup-plugin-terser';
6 +import copy from 'rollup-plugin-copy';
7 +
8 +const production = !process.env.ROLLUP_WATCH;
9 +
10 +export default {
11 + input: 'src/main.js',
12 + output: {
13 + sourcemap: true,
14 + format: 'iife',
15 + name: 'app',
16 + file: 'public/build/bundle.js'
17 + },
18 + plugins: [
19 + svelte({
20 + // enable run-time checks when not in production
21 + dev: !production,
22 + // we'll extract any component CSS out into
23 + // a separate file - better for performance
24 + css: css => {
25 + css.write('public/build/bundle.css');
26 + }
27 + }),
28 +
29 + // If you have external dependencies installed from
30 + // npm, you'll most likely need these plugins. In
31 + // some cases you'll need additional configuration -
32 + // consult the documentation for details:
33 + // https://github.com/rollup/plugins/tree/master/packages/commonjs
34 + resolve({
35 + browser: true,
36 + dedupe: ['svelte']
37 + }),
38 + commonjs(),
39 +
40 + copy({
41 + targets:[
42 + { src:'src/images', dest:'public' }
43 + ]
44 + }),
45 +
46 + // In dev mode, call `npm run start` once
47 + // the bundle has been generated
48 + !production && serve(),
49 +
50 + // Watch the `public` directory and refresh the
51 + // browser on changes when not in production
52 + !production && livereload('public'),
53 +
54 + // If we're building for production (npm run build
55 + // instead of npm run dev), minify
56 + production && terser()
57 + ],
58 + watch: {
59 + clearScreen: false
60 + }
61 +};
62 +
63 +function serve() {
64 + let started = false;
65 +
66 + return {
67 + writeBundle() {
68 + if (!started) {
69 + started = true;
70 +
71 + require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
72 + stdio: ['ignore', 'inherit', 'inherit'],
73 + shell: true
74 + });
75 + }
76 + }
77 + };
78 +}
1 +<script>
2 + import Router from 'svelte-spa-router';
3 + import routes from './routes';
4 +</script>
5 +
6 +<Router {routes} />
...\ No newline at end of file ...\ No newline at end of file
1 +import App from './App.svelte';
2 +
3 +const app = new App({
4 + target: document.body,
5 + props: {
6 + name: 'world'
7 + }
8 +});
9 +
10 +export default app;
...\ No newline at end of file ...\ No newline at end of file
1 +import Home from './routes/Home.svelte';
2 +
3 +const routes = {
4 + '/': Home,
5 +};
6 +
7 +export default routes;
...\ No newline at end of file ...\ No newline at end of file
1 +<main>
2 + <h1>Hello, This is Home!</h1>
3 + <p>Visit the <a href="https://svelte.dev/tutorial">Svelte tutorial</a> to learn how to build Svelte apps.</p>
4 +</main>
5 +
6 +<style>
7 + main {
8 + text-align: center;
9 + padding: 1em;
10 + max-width: 240px;
11 + margin: 0 auto;
12 + }
13 +
14 + h1 {
15 + color: #ff3e00;
16 + text-transform: uppercase;
17 + font-size: 4em;
18 + font-weight: 100;
19 + }
20 +
21 + @media (min-width: 640px) {
22 + main {
23 + max-width: none;
24 + }
25 + }
26 +</style>
...\ No newline at end of file ...\ No newline at end of file