initial commit of basic app

This commit is contained in:
Dave Lane 2020-10-26 21:53:10 +13:00
commit 739746f00b
13 changed files with 1753 additions and 0 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
/node_modules/
/public/build/
.DS_Store

105
README.md Normal file
View file

@ -0,0 +1,105 @@
*Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)*
---
# svelte app
This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template.
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
```bash
npx degit sveltejs/template svelte-app
cd svelte-app
```
*Note that you will need to have [Node.js](https://nodejs.org) installed.*
## Get started
Install the dependencies...
```bash
cd svelte-app
npm install
```
...then start [Rollup](https://rollupjs.org):
```bash
npm run dev
```
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.
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`.
If you're using [Visual Studio Code](https://code.visualstudio.com/) we recommend installing the official extension [Svelte for VS Code](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). If you are using other editors you may need to install a plugin in order to get syntax highlighting and intellisense.
## Building and running in production mode
To create an optimised version of the app:
```bash
npm run build
```
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).
## Single-page app mode
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.
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:
```js
"start": "sirv public --single"
```
## Using TypeScript
This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with:
```bash
node scripts/setupTypeScript.js
```
Or remove the script via:
```bash
rm scripts/setupTypeScript.js
```
## Deploying to the web
### With [Vercel](https://vercel.com)
Install `vercel` if you haven't already:
```bash
npm install -g vercel
```
Then, from within your project folder:
```bash
cd public
vercel deploy --name my-project
```
### With [surge](https://surge.sh/)
Install `surge` if you haven't already:
```bash
npm install -g surge
```
Then, from within your project folder:
```bash
npm run build
surge public my-project.surge.sh
```

542
npm-debug.log Normal file
View file

@ -0,0 +1,542 @@
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'update' ]
2 info using npm@3.5.2
3 info using node@v8.10.0
4 silly mapToRegistry name sirv-cli
5 silly mapToRegistry using default registry
6 silly mapToRegistry registry https://registry.npmjs.org/
7 silly mapToRegistry uri https://registry.npmjs.org/sirv-cli
8 silly mapToRegistry name @rollup/plugin-commonjs
9 silly mapToRegistry scope (from package name) @rollup
10 verbose mapToRegistry no registry URL found in name for scope @rollup
11 silly mapToRegistry using default registry
12 silly mapToRegistry registry https://registry.npmjs.org/
13 silly mapToRegistry uri https://registry.npmjs.org/@rollup%2fplugin-commonjs
14 silly mapToRegistry name @rollup/plugin-node-resolve
15 silly mapToRegistry scope (from package name) @rollup
16 verbose mapToRegistry no registry URL found in name for scope @rollup
17 silly mapToRegistry using default registry
18 silly mapToRegistry registry https://registry.npmjs.org/
19 silly mapToRegistry uri https://registry.npmjs.org/@rollup%2fplugin-node-resolve
20 silly mapToRegistry name rollup
21 silly mapToRegistry using default registry
22 silly mapToRegistry registry https://registry.npmjs.org/
23 silly mapToRegistry uri https://registry.npmjs.org/rollup
24 silly mapToRegistry name rollup-plugin-livereload
25 silly mapToRegistry using default registry
26 silly mapToRegistry registry https://registry.npmjs.org/
27 silly mapToRegistry uri https://registry.npmjs.org/rollup-plugin-livereload
28 silly mapToRegistry name rollup-plugin-svelte
29 silly mapToRegistry using default registry
30 silly mapToRegistry registry https://registry.npmjs.org/
31 silly mapToRegistry uri https://registry.npmjs.org/rollup-plugin-svelte
32 silly mapToRegistry name rollup-plugin-terser
33 silly mapToRegistry using default registry
34 silly mapToRegistry registry https://registry.npmjs.org/
35 silly mapToRegistry uri https://registry.npmjs.org/rollup-plugin-terser
36 silly mapToRegistry name svelte
37 silly mapToRegistry using default registry
38 silly mapToRegistry registry https://registry.npmjs.org/
39 silly mapToRegistry uri https://registry.npmjs.org/svelte
40 verbose request uri https://registry.npmjs.org/@rollup%2fplugin-commonjs
41 verbose request no auth needed
42 info attempt registry request try #1 at 4:32:02 PM
43 verbose request id ce4e6d1b6dbc7fc9
44 verbose etag W/"b477b9d0a6283ad1f1a1cf612994fe22"
45 verbose lastModified Mon, 21 Sep 2020 05:08:23 GMT
46 http request GET https://registry.npmjs.org/@rollup%2fplugin-commonjs
47 verbose request uri https://registry.npmjs.org/@rollup%2fplugin-node-resolve
48 verbose request no auth needed
49 info attempt registry request try #1 at 4:32:02 PM
50 verbose etag W/"a08394b2618e7d35dad8adaf2b6c9a59"
51 verbose lastModified Thu, 13 Aug 2020 14:08:27 GMT
52 http request GET https://registry.npmjs.org/@rollup%2fplugin-node-resolve
53 verbose request uri https://registry.npmjs.org/sirv-cli
54 verbose request no auth needed
55 info attempt registry request try #1 at 4:32:02 PM
56 verbose etag W/"7cc28bac041027d2397cbe4c0a557e6e"
57 verbose lastModified Fri, 16 Oct 2020 17:09:33 GMT
58 http request GET https://registry.npmjs.org/sirv-cli
59 verbose request uri https://registry.npmjs.org/rollup-plugin-livereload
60 verbose request no auth needed
61 info attempt registry request try #1 at 4:32:02 PM
62 verbose etag W/"12de9b942a6518d4f729a43740230d2b"
63 verbose lastModified Thu, 27 Aug 2020 22:43:06 GMT
64 http request GET https://registry.npmjs.org/rollup-plugin-livereload
65 verbose request uri https://registry.npmjs.org/rollup-plugin-svelte
66 verbose request no auth needed
67 info attempt registry request try #1 at 4:32:02 PM
68 verbose etag W/"6c2f3867d4a61a29538123a2d3bc6ba9"
69 verbose lastModified Tue, 08 Sep 2020 12:51:35 GMT
70 http request GET https://registry.npmjs.org/rollup-plugin-svelte
71 verbose request uri https://registry.npmjs.org/rollup-plugin-terser
72 verbose request no auth needed
73 info attempt registry request try #1 at 4:32:02 PM
74 verbose etag W/"7040abbb613191c4e02574d0b5cc5015"
75 verbose lastModified Fri, 04 Sep 2020 18:39:21 GMT
76 http request GET https://registry.npmjs.org/rollup-plugin-terser
77 verbose request uri https://registry.npmjs.org/rollup
78 verbose request no auth needed
79 info attempt registry request try #1 at 4:32:02 PM
80 verbose etag W/"a6afb35b1ea16c62e75c259cfe13a041"
81 verbose lastModified Fri, 16 Oct 2020 19:00:10 GMT
82 http request GET https://registry.npmjs.org/rollup
83 verbose request uri https://registry.npmjs.org/svelte
84 verbose request no auth needed
85 info attempt registry request try #1 at 4:32:02 PM
86 verbose etag W/"f7378241c6a589011a45c0fd3a522041"
87 verbose lastModified Tue, 29 Sep 2020 20:23:15 GMT
88 http request GET https://registry.npmjs.org/svelte
89 http 304 https://registry.npmjs.org/sirv-cli
90 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
90 verbose headers connection: 'keep-alive',
90 verbose headers 'set-cookie':
90 verbose headers [ '__cfduid=d6376a238ba6b7102e0e01dae318992dc1602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
90 verbose headers 'cf-ray': '5e3f309bf85aee96-AKL',
90 verbose headers age: '160',
90 verbose headers 'cache-control': 'public, max-age=300',
90 verbose headers etag: '"7cc28bac041027d2397cbe4c0a557e6e"',
90 verbose headers 'last-modified': 'Fri, 16 Oct 2020 17:09:33 GMT',
90 verbose headers vary: 'Accept-Encoding',
90 verbose headers 'cf-cache-status': 'HIT',
90 verbose headers 'cf-request-id': '05db5cb57c0000ee96dfbdf000000001',
90 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
90 verbose headers server: 'cloudflare' }
91 silly get cb [ 304,
91 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
91 silly get connection: 'keep-alive',
91 silly get 'set-cookie':
91 silly get [ '__cfduid=d6376a238ba6b7102e0e01dae318992dc1602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
91 silly get 'cf-ray': '5e3f309bf85aee96-AKL',
91 silly get age: '160',
91 silly get 'cache-control': 'public, max-age=300',
91 silly get etag: '"7cc28bac041027d2397cbe4c0a557e6e"',
91 silly get 'last-modified': 'Fri, 16 Oct 2020 17:09:33 GMT',
91 silly get vary: 'Accept-Encoding',
91 silly get 'cf-cache-status': 'HIT',
91 silly get 'cf-request-id': '05db5cb57c0000ee96dfbdf000000001',
91 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
91 silly get server: 'cloudflare' } ]
92 verbose etag https://registry.npmjs.org/sirv-cli from cache
93 verbose get saving sirv-cli to /home/dave/.npm/registry.npmjs.org/sirv-cli/.cache.json
94 http 304 https://registry.npmjs.org/rollup
95 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
95 verbose headers connection: 'keep-alive',
95 verbose headers 'set-cookie':
95 verbose headers [ '__cfduid=d2494dcfebd2b4a2c85ffdc37b49f18731602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
95 verbose headers 'cf-ray': '5e3f309c0bdefb84-AKL',
95 verbose headers age: '153',
95 verbose headers 'cache-control': 'public, max-age=300',
95 verbose headers etag: '"a6afb35b1ea16c62e75c259cfe13a041"',
95 verbose headers 'last-modified': 'Fri, 16 Oct 2020 19:00:10 GMT',
95 verbose headers vary: 'Accept-Encoding',
95 verbose headers 'cf-cache-status': 'HIT',
95 verbose headers 'cf-request-id': '05db5cb5880000fb84ba889000000001',
95 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
95 verbose headers server: 'cloudflare' }
96 silly get cb [ 304,
96 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
96 silly get connection: 'keep-alive',
96 silly get 'set-cookie':
96 silly get [ '__cfduid=d2494dcfebd2b4a2c85ffdc37b49f18731602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
96 silly get 'cf-ray': '5e3f309c0bdefb84-AKL',
96 silly get age: '153',
96 silly get 'cache-control': 'public, max-age=300',
96 silly get etag: '"a6afb35b1ea16c62e75c259cfe13a041"',
96 silly get 'last-modified': 'Fri, 16 Oct 2020 19:00:10 GMT',
96 silly get vary: 'Accept-Encoding',
96 silly get 'cf-cache-status': 'HIT',
96 silly get 'cf-request-id': '05db5cb5880000fb84ba889000000001',
96 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
96 silly get server: 'cloudflare' } ]
97 verbose etag https://registry.npmjs.org/rollup from cache
98 verbose get saving rollup to /home/dave/.npm/registry.npmjs.org/rollup/.cache.json
99 http 304 https://registry.npmjs.org/svelte
100 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
100 verbose headers connection: 'keep-alive',
100 verbose headers 'set-cookie':
100 verbose headers [ '__cfduid=d0d447c59f130326f3e4a82838c34c1991602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
100 verbose headers 'cf-ray': '5e3f309c1d04fb8c-AKL',
100 verbose headers age: '153',
100 verbose headers 'cache-control': 'public, max-age=300',
100 verbose headers etag: '"f7378241c6a589011a45c0fd3a522041"',
100 verbose headers 'last-modified': 'Tue, 29 Sep 2020 20:23:15 GMT',
100 verbose headers vary: 'Accept-Encoding',
100 verbose headers 'cf-cache-status': 'HIT',
100 verbose headers 'cf-request-id': '05db5cb58c0000fb8c543a8000000001',
100 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
100 verbose headers server: 'cloudflare' }
101 silly get cb [ 304,
101 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
101 silly get connection: 'keep-alive',
101 silly get 'set-cookie':
101 silly get [ '__cfduid=d0d447c59f130326f3e4a82838c34c1991602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
101 silly get 'cf-ray': '5e3f309c1d04fb8c-AKL',
101 silly get age: '153',
101 silly get 'cache-control': 'public, max-age=300',
101 silly get etag: '"f7378241c6a589011a45c0fd3a522041"',
101 silly get 'last-modified': 'Tue, 29 Sep 2020 20:23:15 GMT',
101 silly get vary: 'Accept-Encoding',
101 silly get 'cf-cache-status': 'HIT',
101 silly get 'cf-request-id': '05db5cb58c0000fb8c543a8000000001',
101 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
101 silly get server: 'cloudflare' } ]
102 verbose etag https://registry.npmjs.org/svelte from cache
103 verbose get saving svelte to /home/dave/.npm/registry.npmjs.org/svelte/.cache.json
104 http 304 https://registry.npmjs.org/@rollup%2fplugin-node-resolve
105 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
105 verbose headers connection: 'keep-alive',
105 verbose headers 'set-cookie':
105 verbose headers [ '__cfduid=d2494dcfebd2b4a2c85ffdc37b49f18731602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
105 verbose headers 'cf-ray': '5e3f309c0bddfb84-AKL',
105 verbose headers age: '152',
105 verbose headers 'cache-control': 'public, max-age=300',
105 verbose headers etag: '"a08394b2618e7d35dad8adaf2b6c9a59"',
105 verbose headers 'last-modified': 'Thu, 13 Aug 2020 14:08:27 GMT',
105 verbose headers vary: 'Accept-Encoding',
105 verbose headers 'cf-cache-status': 'HIT',
105 verbose headers 'cf-request-id': '05db5cb5890000fb8464325000000001',
105 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
105 verbose headers server: 'cloudflare' }
106 silly get cb [ 304,
106 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
106 silly get connection: 'keep-alive',
106 silly get 'set-cookie':
106 silly get [ '__cfduid=d2494dcfebd2b4a2c85ffdc37b49f18731602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
106 silly get 'cf-ray': '5e3f309c0bddfb84-AKL',
106 silly get age: '152',
106 silly get 'cache-control': 'public, max-age=300',
106 silly get etag: '"a08394b2618e7d35dad8adaf2b6c9a59"',
106 silly get 'last-modified': 'Thu, 13 Aug 2020 14:08:27 GMT',
106 silly get vary: 'Accept-Encoding',
106 silly get 'cf-cache-status': 'HIT',
106 silly get 'cf-request-id': '05db5cb5890000fb8464325000000001',
106 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
106 silly get server: 'cloudflare' } ]
107 verbose etag https://registry.npmjs.org/@rollup%2fplugin-node-resolve from cache
108 verbose get saving @rollup/plugin-node-resolve to /home/dave/.npm/registry.npmjs.org/_40rollup_252fplugin-node-resolve/.cache.json
109 http 304 https://registry.npmjs.org/rollup-plugin-svelte
110 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
110 verbose headers connection: 'keep-alive',
110 verbose headers 'set-cookie':
110 verbose headers [ '__cfduid=d2494dcfebd2b4a2c85ffdc37b49f18731602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
110 verbose headers 'cf-ray': '5e3f309c1bf5fb84-AKL',
110 verbose headers age: '153',
110 verbose headers 'cache-control': 'public, max-age=300',
110 verbose headers etag: '"6c2f3867d4a61a29538123a2d3bc6ba9"',
110 verbose headers 'last-modified': 'Tue, 08 Sep 2020 12:51:35 GMT',
110 verbose headers vary: 'Accept-Encoding',
110 verbose headers 'cf-cache-status': 'HIT',
110 verbose headers 'cf-request-id': '05db5cb5940000fb849385c000000001',
110 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
110 verbose headers server: 'cloudflare' }
111 silly get cb [ 304,
111 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
111 silly get connection: 'keep-alive',
111 silly get 'set-cookie':
111 silly get [ '__cfduid=d2494dcfebd2b4a2c85ffdc37b49f18731602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
111 silly get 'cf-ray': '5e3f309c1bf5fb84-AKL',
111 silly get age: '153',
111 silly get 'cache-control': 'public, max-age=300',
111 silly get etag: '"6c2f3867d4a61a29538123a2d3bc6ba9"',
111 silly get 'last-modified': 'Tue, 08 Sep 2020 12:51:35 GMT',
111 silly get vary: 'Accept-Encoding',
111 silly get 'cf-cache-status': 'HIT',
111 silly get 'cf-request-id': '05db5cb5940000fb849385c000000001',
111 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
111 silly get server: 'cloudflare' } ]
112 verbose etag https://registry.npmjs.org/rollup-plugin-svelte from cache
113 verbose get saving rollup-plugin-svelte to /home/dave/.npm/registry.npmjs.org/rollup-plugin-svelte/.cache.json
114 http 304 https://registry.npmjs.org/@rollup%2fplugin-commonjs
115 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
115 verbose headers connection: 'keep-alive',
115 verbose headers 'set-cookie':
115 verbose headers [ '__cfduid=d91de546b5a694a2e1a87e192a99df1b31602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
115 verbose headers 'cf-ray': '5e3f309c0b27a42d-AKL',
115 verbose headers age: '152',
115 verbose headers 'cache-control': 'public, max-age=300',
115 verbose headers etag: '"b477b9d0a6283ad1f1a1cf612994fe22"',
115 verbose headers 'last-modified': 'Mon, 21 Sep 2020 05:08:23 GMT',
115 verbose headers vary: 'Accept-Encoding',
115 verbose headers 'cf-cache-status': 'HIT',
115 verbose headers 'cf-request-id': '05db5cb5840000a42dc5acd000000001',
115 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
115 verbose headers server: 'cloudflare' }
116 silly get cb [ 304,
116 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
116 silly get connection: 'keep-alive',
116 silly get 'set-cookie':
116 silly get [ '__cfduid=d91de546b5a694a2e1a87e192a99df1b31602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
116 silly get 'cf-ray': '5e3f309c0b27a42d-AKL',
116 silly get age: '152',
116 silly get 'cache-control': 'public, max-age=300',
116 silly get etag: '"b477b9d0a6283ad1f1a1cf612994fe22"',
116 silly get 'last-modified': 'Mon, 21 Sep 2020 05:08:23 GMT',
116 silly get vary: 'Accept-Encoding',
116 silly get 'cf-cache-status': 'HIT',
116 silly get 'cf-request-id': '05db5cb5840000a42dc5acd000000001',
116 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
116 silly get server: 'cloudflare' } ]
117 verbose etag https://registry.npmjs.org/@rollup%2fplugin-commonjs from cache
118 verbose get saving @rollup/plugin-commonjs to /home/dave/.npm/registry.npmjs.org/_40rollup_252fplugin-commonjs/.cache.json
119 http 304 https://registry.npmjs.org/rollup-plugin-terser
120 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
120 verbose headers connection: 'keep-alive',
120 verbose headers 'set-cookie':
120 verbose headers [ '__cfduid=d39ccd0e6ba32a82ee1256b52e82ce9651602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
120 verbose headers 'cf-ray': '5e3f309c2977fb88-AKL',
120 verbose headers age: '153',
120 verbose headers 'cache-control': 'public, max-age=300',
120 verbose headers etag: '"7040abbb613191c4e02574d0b5cc5015"',
120 verbose headers 'last-modified': 'Fri, 04 Sep 2020 18:39:21 GMT',
120 verbose headers vary: 'Accept-Encoding',
120 verbose headers 'cf-cache-status': 'HIT',
120 verbose headers 'cf-request-id': '05db5cb5950000fb8829b00000000001',
120 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
120 verbose headers server: 'cloudflare' }
121 silly get cb [ 304,
121 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
121 silly get connection: 'keep-alive',
121 silly get 'set-cookie':
121 silly get [ '__cfduid=d39ccd0e6ba32a82ee1256b52e82ce9651602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
121 silly get 'cf-ray': '5e3f309c2977fb88-AKL',
121 silly get age: '153',
121 silly get 'cache-control': 'public, max-age=300',
121 silly get etag: '"7040abbb613191c4e02574d0b5cc5015"',
121 silly get 'last-modified': 'Fri, 04 Sep 2020 18:39:21 GMT',
121 silly get vary: 'Accept-Encoding',
121 silly get 'cf-cache-status': 'HIT',
121 silly get 'cf-request-id': '05db5cb5950000fb8829b00000000001',
121 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
121 silly get server: 'cloudflare' } ]
122 verbose etag https://registry.npmjs.org/rollup-plugin-terser from cache
123 verbose get saving rollup-plugin-terser to /home/dave/.npm/registry.npmjs.org/rollup-plugin-terser/.cache.json
124 http 304 https://registry.npmjs.org/rollup-plugin-livereload
125 verbose headers { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
125 verbose headers connection: 'keep-alive',
125 verbose headers 'set-cookie':
125 verbose headers [ '__cfduid=dd61f5ad46b3241c0583e2b335cb5e3fb1602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
125 verbose headers 'cf-ray': '5e3f309c2ba6a43f-AKL',
125 verbose headers age: '153',
125 verbose headers 'cache-control': 'public, max-age=300',
125 verbose headers etag: '"12de9b942a6518d4f729a43740230d2b"',
125 verbose headers 'last-modified': 'Thu, 27 Aug 2020 22:43:06 GMT',
125 verbose headers vary: 'Accept-Encoding',
125 verbose headers 'cf-cache-status': 'HIT',
125 verbose headers 'cf-request-id': '05db5cb59c0000a43fb394c000000001',
125 verbose headers 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
125 verbose headers server: 'cloudflare' }
126 silly get cb [ 304,
126 silly get { date: 'Sun, 18 Oct 2020 03:32:02 GMT',
126 silly get connection: 'keep-alive',
126 silly get 'set-cookie':
126 silly get [ '__cfduid=dd61f5ad46b3241c0583e2b335cb5e3fb1602991922; expires=Tue, 17-Nov-20 03:32:02 GMT; path=/; domain=.npmjs.org; HttpOnly; SameSite=Lax' ],
126 silly get 'cf-ray': '5e3f309c2ba6a43f-AKL',
126 silly get age: '153',
126 silly get 'cache-control': 'public, max-age=300',
126 silly get etag: '"12de9b942a6518d4f729a43740230d2b"',
126 silly get 'last-modified': 'Thu, 27 Aug 2020 22:43:06 GMT',
126 silly get vary: 'Accept-Encoding',
126 silly get 'cf-cache-status': 'HIT',
126 silly get 'cf-request-id': '05db5cb59c0000a43fb394c000000001',
126 silly get 'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
126 silly get server: 'cloudflare' } ]
127 verbose etag https://registry.npmjs.org/rollup-plugin-livereload from cache
128 verbose get saving rollup-plugin-livereload to /home/dave/.npm/registry.npmjs.org/rollup-plugin-livereload/.cache.json
129 info outdated updating [ { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: '@rollup/plugin-commonjs',
129 info outdated current: undefined,
129 info outdated wanted: '14.0.0',
129 info outdated latest: '15.1.0',
129 info outdated req: '^14.0.0',
129 info outdated what: '@rollup/plugin-commonjs@14.0.0' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: '@rollup/plugin-node-resolve',
129 info outdated current: undefined,
129 info outdated wanted: '8.4.0',
129 info outdated latest: '9.0.0',
129 info outdated req: '^8.0.0',
129 info outdated what: '@rollup/plugin-node-resolve@8.4.0' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: 'rollup',
129 info outdated current: undefined,
129 info outdated wanted: '2.32.0',
129 info outdated latest: '2.32.0',
129 info outdated req: '^2.3.4',
129 info outdated what: 'rollup@2.32.0' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: 'rollup-plugin-livereload',
129 info outdated current: undefined,
129 info outdated wanted: '2.0.0',
129 info outdated latest: '2.0.0',
129 info outdated req: '^2.0.0',
129 info outdated what: 'rollup-plugin-livereload@2.0.0' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: 'rollup-plugin-svelte',
129 info outdated current: undefined,
129 info outdated wanted: '6.0.1',
129 info outdated latest: '6.0.1',
129 info outdated req: '^6.0.0',
129 info outdated what: 'rollup-plugin-svelte@6.0.1' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: 'rollup-plugin-terser',
129 info outdated current: undefined,
129 info outdated wanted: '7.0.2',
129 info outdated latest: '7.0.2',
129 info outdated req: '^7.0.0',
129 info outdated what: 'rollup-plugin-terser@7.0.2' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: 'sirv-cli',
129 info outdated current: undefined,
129 info outdated wanted: '1.0.7',
129 info outdated latest: '1.0.7',
129 info outdated req: '^1.0.0',
129 info outdated what: 'sirv-cli@1.0.7' },
129 info outdated { dep:
129 info outdated { package: [Object],
129 info outdated path: '/home/dave/Projects/svelte/svelte-app',
129 info outdated parent: [Object],
129 info outdated isMissing: true },
129 info outdated depname: 'svelte',
129 info outdated current: undefined,
129 info outdated wanted: '3.29.0',
129 info outdated latest: '3.29.0',
129 info outdated req: '^3.0.0',
129 info outdated what: 'svelte@3.29.0' } ]
130 silly loadCurrentTree Starting
131 silly install loadCurrentTree
132 silly install readLocalPackageData
133 silly fetchPackageMetaData @rollup/plugin-commonjs@14.0.0
134 silly fetchPackageMetaData @rollup/plugin-node-resolve@8.4.0
135 silly fetchPackageMetaData rollup@2.32.0
136 silly fetchPackageMetaData rollup-plugin-livereload@2.0.0
137 silly fetchPackageMetaData rollup-plugin-svelte@6.0.1
138 silly fetchPackageMetaData rollup-plugin-terser@7.0.2
139 silly fetchPackageMetaData sirv-cli@1.0.7
140 silly fetchPackageMetaData svelte@3.29.0
141 silly fetchNamedPackageData @rollup/plugin-commonjs
142 silly mapToRegistry name @rollup/plugin-commonjs
143 silly mapToRegistry scope (from package name) @rollup
144 verbose mapToRegistry no registry URL found in name for scope @rollup
145 silly mapToRegistry using default registry
146 silly mapToRegistry registry https://registry.npmjs.org/
147 silly mapToRegistry uri https://registry.npmjs.org/@rollup%2fplugin-commonjs
148 silly fetchNamedPackageData @rollup/plugin-node-resolve
149 silly mapToRegistry name @rollup/plugin-node-resolve
150 silly mapToRegistry scope (from package name) @rollup
151 verbose mapToRegistry no registry URL found in name for scope @rollup
152 silly mapToRegistry using default registry
153 silly mapToRegistry registry https://registry.npmjs.org/
154 silly mapToRegistry uri https://registry.npmjs.org/@rollup%2fplugin-node-resolve
155 silly fetchNamedPackageData rollup
156 silly mapToRegistry name rollup
157 silly mapToRegistry using default registry
158 silly mapToRegistry registry https://registry.npmjs.org/
159 silly mapToRegistry uri https://registry.npmjs.org/rollup
160 silly fetchNamedPackageData rollup-plugin-livereload
161 silly mapToRegistry name rollup-plugin-livereload
162 silly mapToRegistry using default registry
163 silly mapToRegistry registry https://registry.npmjs.org/
164 silly mapToRegistry uri https://registry.npmjs.org/rollup-plugin-livereload
165 silly fetchNamedPackageData rollup-plugin-svelte
166 silly mapToRegistry name rollup-plugin-svelte
167 silly mapToRegistry using default registry
168 silly mapToRegistry registry https://registry.npmjs.org/
169 silly mapToRegistry uri https://registry.npmjs.org/rollup-plugin-svelte
170 silly fetchNamedPackageData rollup-plugin-terser
171 silly mapToRegistry name rollup-plugin-terser
172 silly mapToRegistry using default registry
173 silly mapToRegistry registry https://registry.npmjs.org/
174 silly mapToRegistry uri https://registry.npmjs.org/rollup-plugin-terser
175 silly fetchNamedPackageData sirv-cli
176 silly mapToRegistry name sirv-cli
177 silly mapToRegistry using default registry
178 silly mapToRegistry registry https://registry.npmjs.org/
179 silly mapToRegistry uri https://registry.npmjs.org/sirv-cli
180 silly fetchNamedPackageData svelte
181 silly mapToRegistry name svelte
182 silly mapToRegistry using default registry
183 silly mapToRegistry registry https://registry.npmjs.org/
184 silly mapToRegistry uri https://registry.npmjs.org/svelte
185 verbose get https://registry.npmjs.org/@rollup%2fplugin-commonjs not expired, no request
186 verbose get https://registry.npmjs.org/@rollup%2fplugin-node-resolve not expired, no request
187 verbose get https://registry.npmjs.org/rollup-plugin-livereload not expired, no request
188 verbose get https://registry.npmjs.org/rollup-plugin-svelte not expired, no request
189 verbose get https://registry.npmjs.org/sirv-cli not expired, no request
190 verbose get https://registry.npmjs.org/svelte not expired, no request
191 verbose get https://registry.npmjs.org/rollup-plugin-terser not expired, no request
192 verbose get https://registry.npmjs.org/rollup not expired, no request
193 silly install normalizeTree
194 silly loadCurrentTree Finishing
195 silly loadIdealTree Starting
196 silly install loadIdealTree
197 silly cloneCurrentTree Starting
198 silly install cloneCurrentTreeToIdealTree
199 silly cloneCurrentTree Finishing
200 silly loadShrinkwrap Starting
201 silly install loadShrinkwrap
202 silly loadShrinkwrap Finishing
203 silly loadAllDepsIntoIdealTree Starting
204 silly install loadAllDepsIntoIdealTree
205 silly resolveWithNewModule @rollup/plugin-commonjs@14.0.0 checking installable status
206 silly cache add args [ '@rollup/plugin-commonjs@14.0.0', null ]
207 verbose cache add spec @rollup/plugin-commonjs@14.0.0
208 verbose stack Error: Missing required argument #1
208 verbose stack at andLogAndFinish (/usr/share/npm/lib/fetch-package-metadata.js:31:3)
208 verbose stack at fetchPackageMetadata (/usr/share/npm/lib/fetch-package-metadata.js:51:22)
208 verbose stack at resolveWithNewModule (/usr/share/npm/lib/install/deps.js:456:12)
208 verbose stack at /usr/share/npm/lib/install/deps.js:190:5
208 verbose stack at /usr/share/npm/node_modules/slide/lib/async-map.js:52:35
208 verbose stack at Array.forEach (<anonymous>)
208 verbose stack at /usr/share/npm/node_modules/slide/lib/async-map.js:52:11
208 verbose stack at Array.forEach (<anonymous>)
208 verbose stack at asyncMap (/usr/share/npm/node_modules/slide/lib/async-map.js:51:8)
208 verbose stack at exports.loadRequestedDeps (/usr/share/npm/lib/install/deps.js:188:3)
209 verbose cwd /home/dave/Projects/svelte/svelte-app
210 error Linux 5.4.0-51-generic
211 error argv "/usr/bin/node" "/usr/bin/npm" "update"
212 error node v8.10.0
213 error npm v3.5.2
214 error code EMISSINGARG
215 error typeerror Error: Missing required argument #1
215 error typeerror at andLogAndFinish (/usr/share/npm/lib/fetch-package-metadata.js:31:3)
215 error typeerror at fetchPackageMetadata (/usr/share/npm/lib/fetch-package-metadata.js:51:22)
215 error typeerror at resolveWithNewModule (/usr/share/npm/lib/install/deps.js:456:12)
215 error typeerror at /usr/share/npm/lib/install/deps.js:190:5
215 error typeerror at /usr/share/npm/node_modules/slide/lib/async-map.js:52:35
215 error typeerror at Array.forEach (<anonymous>)
215 error typeerror at /usr/share/npm/node_modules/slide/lib/async-map.js:52:11
215 error typeerror at Array.forEach (<anonymous>)
215 error typeerror at asyncMap (/usr/share/npm/node_modules/slide/lib/async-map.js:51:8)
215 error typeerror at exports.loadRequestedDeps (/usr/share/npm/lib/install/deps.js:188:3)
216 error typeerror This is an error with npm itself. Please report this error at:
216 error typeerror <http://github.com/npm/npm/issues>
217 verbose exit [ 1, true ]

744
package-lock.json generated Normal file
View file

@ -0,0 +1,744 @@
{
"name": "svelte-app",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@babel/code-frame": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.10.4"
}
},
"@babel/helper-validator-identifier": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
"@babel/highlight": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.10.4",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
"@polka/url": {
"version": "1.0.0-next.11",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.11.tgz",
"integrity": "sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA=="
},
"@rollup/plugin-commonjs": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz",
"integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^3.0.8",
"commondir": "^1.0.1",
"estree-walker": "^1.0.1",
"glob": "^7.1.2",
"is-reference": "^1.1.2",
"magic-string": "^0.25.2",
"resolve": "^1.11.0"
}
},
"@rollup/plugin-node-resolve": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz",
"integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^3.1.0",
"@types/resolve": "1.17.1",
"builtin-modules": "^3.1.0",
"deep-freeze": "^0.0.1",
"deepmerge": "^4.2.2",
"is-module": "^1.0.0",
"resolve": "^1.17.0"
}
},
"@rollup/pluginutils": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
"integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
"requires": {
"@types/estree": "0.0.39",
"estree-walker": "^1.0.1",
"picomatch": "^2.2.2"
}
},
"@types/estree": {
"version": "0.0.39",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
"@types/node": {
"version": "14.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.10.tgz",
"integrity": "sha512-yV1nWZPlMFpoXyoknm4S56y2nlTAuFYaJuQtYRAOU7xA/FJ9RY0Xm7QOkaYMMmr8ESdHIuUb6oQgR/0+2NqlyA==",
"dev": true
},
"@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
"integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"anymatch": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"async-limiter": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"binary-extensions": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
}
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
"dev": true
},
"builtin-modules": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
"integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
"dev": true
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"chokidar": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
"integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.5.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
"console-clear": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz",
"integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ=="
},
"deep-freeze": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
"integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=",
"dev": true
},
"deepmerge": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
"integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
"dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"estree-walker": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"fsevents": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
"dev": true,
"optional": true
},
"get-port": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
"integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw="
},
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"glob-parent": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
"is-glob": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
},
"is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
"dev": true
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
"dev": true,
"requires": {
"@types/estree": "*"
}
},
"jest-worker": {
"version": "26.5.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz",
"integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==",
"dev": true,
"requires": {
"@types/node": "*",
"merge-stream": "^2.0.0",
"supports-color": "^7.0.0"
},
"dependencies": {
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"kleur": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
},
"livereload": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.1.tgz",
"integrity": "sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==",
"dev": true,
"requires": {
"chokidar": "^3.3.0",
"livereload-js": "^3.1.0",
"opts": ">= 1.2.0",
"ws": "^6.2.1"
}
},
"livereload-js": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.1.tgz",
"integrity": "sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ==",
"dev": true
},
"local-access": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/local-access/-/local-access-1.0.1.tgz",
"integrity": "sha512-ykt2pgN0aqIy6KQC1CqdWTWkmUwNgaOS6dcpHVjyBJONA+Xi7AtSB1vuxC/U/0tjIP3wcRudwQk1YYzUvzk2bA=="
},
"magic-string": {
"version": "0.25.7",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
"integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
"dev": true,
"requires": {
"sourcemap-codec": "^1.4.4"
}
},
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
"mime": {
"version": "2.4.6",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
"integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"mri": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz",
"integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ=="
},
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1"
}
},
"opts": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
"integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==",
"dev": true
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
"picomatch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
"dev": true
},
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.0"
}
},
"readdirp": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
"integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
"dev": true,
"requires": {
"picomatch": "^2.2.1"
}
},
"require-relative": {
"version": "0.8.7",
"resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
"integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
"dev": true
},
"resolve": {
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
"integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
}
},
"rollup": {
"version": "2.32.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.32.0.tgz",
"integrity": "sha512-0FIG1jY88uhCP2yP4CfvtKEqPDRmsUwfY1kEOOM+DH/KOGATgaIFd/is1+fQOxsvh62ELzcFfKonwKWnHhrqmw==",
"dev": true,
"requires": {
"fsevents": "~2.1.2"
}
},
"rollup-plugin-livereload": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.0.tgz",
"integrity": "sha512-oC/8NqumGYuphkqrfszOHUUIwzKsaHBICw6QRwT5uD07gvePTS+HW+GFwu6f9K8W02CUuTvtIM9AWJrbj4wE1A==",
"dev": true,
"requires": {
"livereload": "^0.9.1"
}
},
"rollup-plugin-svelte": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.0.1.tgz",
"integrity": "sha512-kS9/JZMBNgpKTqVKlwV8mhmGwxu8NiNf6+n5ZzdZ8yDp3+ADqjf8Au+JNEpoOn6kLlh1hLS2Gsa76k9RP57HDQ==",
"dev": true,
"requires": {
"require-relative": "^0.8.7",
"rollup-pluginutils": "^2.8.2",
"sourcemap-codec": "^1.4.8"
}
},
"rollup-plugin-terser": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
"integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
"jest-worker": "^26.2.1",
"serialize-javascript": "^4.0.0",
"terser": "^5.0.0"
}
},
"rollup-pluginutils": {
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
"integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
"dev": true,
"requires": {
"estree-walker": "^0.6.1"
},
"dependencies": {
"estree-walker": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
"dev": true
}
}
},
"sade": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",
"integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==",
"requires": {
"mri": "^1.1.0"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
},
"semiver": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
"integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg=="
},
"serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
}
},
"sirv": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.7.tgz",
"integrity": "sha512-QMT2OTD3CTr8de9VByPmvSEeyt6k8/Cxg0J2kQJ5HNhIWfhFg9ypcIWWzez9rPWnGj+WtJ7AZD/MdT/vdilV/A==",
"requires": {
"@polka/url": "^1.0.0-next.9",
"mime": "^2.3.1",
"totalist": "^1.0.0"
}
},
"sirv-cli": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.7.tgz",
"integrity": "sha512-Ln9oXA+HVXWbj/SM/Am6TIVesF6pgAGxnUtn6pw9ofOVEyazv6Gf/J9vU2u6VbE14+pf/NNRGQbVJ6ZWuOruuA==",
"requires": {
"console-clear": "^1.1.0",
"get-port": "^3.2.0",
"kleur": "^3.0.0",
"local-access": "^1.0.1",
"sade": "^1.6.0",
"semiver": "^1.0.0",
"sirv": "^1.0.7",
"tinydate": "^1.0.0"
}
},
"source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
"dev": true
},
"source-map-support": {
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
}
}
},
"sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"svelte": {
"version": "3.29.0",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.29.0.tgz",
"integrity": "sha512-f+A65eyOQ5ujETLy+igNXtlr6AEjAQLYd1yJE1VwNiXMQO5Z/Vmiy3rL+zblV/9jd7rtTTWqO1IcuXsP2Qv0OA==",
"dev": true
},
"terser": {
"version": "5.3.5",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.3.5.tgz",
"integrity": "sha512-Qw3CZAMmmfU824AoGKalx+riwocSI5Cs0PoGp9RdSLfmxkmJgyBxqLBP/isDNtFyhHnitikvRMZzyVgeq+U+Tg==",
"dev": true,
"requires": {
"commander": "^2.20.0",
"source-map": "~0.7.2",
"source-map-support": "~0.5.19"
}
},
"tinydate": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz",
"integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w=="
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
}
},
"totalist": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz",
"integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g=="
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"ws": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
"dev": true,
"requires": {
"async-limiter": "~1.0.0"
}
}
}
}

21
package.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "svelte-app",
"version": "1.0.0",
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"start": "sirv public"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-node-resolve": "^8.0.0",
"rollup": "^2.3.4",
"rollup-plugin-livereload": "^2.0.0",
"rollup-plugin-svelte": "^6.0.0",
"rollup-plugin-terser": "^7.0.0",
"svelte": "^3.0.0"
},
"dependencies": {
"sirv-cli": "^1.0.0"
}
}

BIN
public/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

63
public/global.css Normal file
View file

@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

18
public/index.html Normal file
View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width,initial-scale=1'>
<title>Svelte app</title>
<link rel='icon' type='image/png' href='/favicon.png'>
<link rel='stylesheet' href='/global.css'>
<link rel='stylesheet' href='/build/bundle.css'>
<script defer src='/build/bundle.js'></script>
</head>
<body>
</body>
</html>

75
rollup.config.js Normal file
View file

@ -0,0 +1,75 @@
import svelte from 'rollup-plugin-svelte';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import livereload from 'rollup-plugin-livereload';
import { terser } from 'rollup-plugin-terser';
const production = !process.env.ROLLUP_WATCH;
function serve() {
let server;
function toExit() {
if (server) server.kill(0);
}
return {
writeBundle() {
if (server) return;
server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
stdio: ['ignore', 'inherit', 'inherit'],
shell: true
});
process.on('SIGTERM', toExit);
process.on('exit', toExit);
}
};
}
export default {
input: 'src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
plugins: [
svelte({
// enable run-time checks when not in production
dev: !production,
// we'll extract any component CSS out into
// a separate file - better for performance
css: css => {
css.write('bundle.css');
}
}),
// If you have external dependencies installed from
// npm, you'll most likely need these plugins. In
// some cases you'll need additional configuration -
// consult the documentation for details:
// https://github.com/rollup/plugins/tree/master/packages/commonjs
resolve({
browser: true,
dedupe: ['svelte']
}),
commonjs(),
// In dev mode, call `npm run start` once
// the bundle has been generated
!production && serve(),
// Watch the `public` directory and refresh the
// browser on changes when not in production
!production && livereload('public'),
// If we're building for production (npm run build
// instead of npm run dev), minify
production && terser()
],
watch: {
clearScreen: false
}
};

128
scripts/setupTypeScript.js Normal file
View file

@ -0,0 +1,128 @@
// @ts-check
/** This script modifies the project to support TS code in .svelte files like:
<script lang="ts">
export let name: string;
</script>
As well as validating the code for CI.
*/
/** To work on this script:
rm -rf test-template template && git clone sveltejs/template test-template && node scripts/setupTypeScript.js test-template
*/
const fs = require("fs")
const path = require("path")
const { argv } = require("process")
const projectRoot = argv[2] || path.join(__dirname, "..")
// Add deps to pkg.json
const packageJSON = JSON.parse(fs.readFileSync(path.join(projectRoot, "package.json"), "utf8"))
packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, {
"svelte-check": "^1.0.0",
"svelte-preprocess": "^4.0.0",
"@rollup/plugin-typescript": "^6.0.0",
"typescript": "^3.9.3",
"tslib": "^2.0.0",
"@tsconfig/svelte": "^1.0.0"
})
// Add script for checking
packageJSON.scripts = Object.assign(packageJSON.scripts, {
"validate": "svelte-check"
})
// Write the package JSON
fs.writeFileSync(path.join(projectRoot, "package.json"), JSON.stringify(packageJSON, null, " "))
// mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too
const beforeMainJSPath = path.join(projectRoot, "src", "main.js")
const afterMainTSPath = path.join(projectRoot, "src", "main.ts")
fs.renameSync(beforeMainJSPath, afterMainTSPath)
// Switch the app.svelte file to use TS
const appSveltePath = path.join(projectRoot, "src", "App.svelte")
let appFile = fs.readFileSync(appSveltePath, "utf8")
appFile = appFile.replace("<script>", '<script lang="ts">')
appFile = appFile.replace("export let name;", 'export let name: string;')
fs.writeFileSync(appSveltePath, appFile)
// Edit rollup config
const rollupConfigPath = path.join(projectRoot, "rollup.config.js")
let rollupConfig = fs.readFileSync(rollupConfigPath, "utf8")
// Edit imports
rollupConfig = rollupConfig.replace(`'rollup-plugin-terser';`, `'rollup-plugin-terser';
import sveltePreprocess from 'svelte-preprocess';
import typescript from '@rollup/plugin-typescript';`)
// Replace name of entry point
rollupConfig = rollupConfig.replace(`'src/main.js'`, `'src/main.ts'`)
// Add preprocess to the svelte config, this is tricky because there's no easy signifier.
// Instead we look for `css:` then the next `}` and add the preprocessor to that
let foundCSS = false
let match
// https://regex101.com/r/OtNjwo/1
const configEditor = new RegExp(/css:.|\n*}/gmi)
while (( match = configEditor.exec(rollupConfig)) != null) {
if (foundCSS) {
const endOfCSSIndex = match.index + 1
rollupConfig = rollupConfig.slice(0, endOfCSSIndex) + ",\n preprocess: sveltePreprocess()," + rollupConfig.slice(endOfCSSIndex);
break
}
if (match[0].includes("css:")) foundCSS = true
}
// Add TypeScript
rollupConfig = rollupConfig.replace(
'commonjs(),',
'commonjs(),\n\t\ttypescript({\n\t\t\tsourceMap: !production,\n\t\t\tinlineSources: !production\n\t\t}),'
);
fs.writeFileSync(rollupConfigPath, rollupConfig)
// Add TSConfig
const tsconfig = `{
"extends": "@tsconfig/svelte/tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules/*", "__sapper__/*", "public/*"]
}`
const tsconfigPath = path.join(projectRoot, "tsconfig.json")
fs.writeFileSync(tsconfigPath, tsconfig)
// Delete this script, but not during testing
if (!argv[2]) {
// Remove the script
fs.unlinkSync(path.join(__filename))
// Check for Mac's DS_store file, and if it's the only one left remove it
const remainingFiles = fs.readdirSync(path.join(__dirname))
if (remainingFiles.length === 1 && remainingFiles[0] === '.DS_store') {
fs.unlinkSync(path.join(__dirname, '.DS_store'))
}
// Check if the scripts folder is empty
if (fs.readdirSync(path.join(__dirname)).length === 0) {
// Remove the scripts folder
fs.rmdirSync(path.join(__dirname))
}
}
// Adds the extension recommendation
fs.mkdirSync(path.join(projectRoot, ".vscode"))
fs.writeFileSync(path.join(projectRoot, ".vscode", "extensions.json"), `{
"recommendations": ["svelte.svelte-vscode"]
}
`)
console.log("Converted to TypeScript.")
if (fs.existsSync(path.join(projectRoot, "node_modules"))) {
console.log("\nYou will need to re-run your dependency manager to get started.")
}

32
src/App.svelte Normal file
View file

@ -0,0 +1,32 @@
<script>
export let name;
import Button from './Button.svelte';
</script>
<main>
<h1>Hello {name}!</h1>
<p>Visit the <a href="https://svelte.dev/tutorial">Svelte tutorial</a> to learn how to build Svelte apps.</p>
<Button />
</main>
<style>
main {
text-align: center;
padding: 1em;
max-width: 240px;
margin: 0 auto;
}
h1 {
color: #ff3e00;
text-transform: uppercase;
font-size: 4em;
font-weight: 100;
}
@media (min-width: 640px) {
main {
max-width: none;
}
}
</style>

11
src/Button.svelte Normal file
View file

@ -0,0 +1,11 @@
<script>
let count = 0;
const increment = () => {
count += 1;
};
</script>
<style></style>
<button on:click={increment}>Count: {count}</button>

10
src/main.js Normal file
View file

@ -0,0 +1,10 @@
import App from './App.svelte';
const app = new App({
target: document.body,
props: {
name: 'Seb & Nate'
}
});
export default app;