DongyoungKwon

Add Express-server && Modify overall client-layout

...@@ -22,3 +22,6 @@ ...@@ -22,3 +22,6 @@
22 npm-debug.log* 22 npm-debug.log*
23 yarn-debug.log* 23 yarn-debug.log*
24 yarn-error.log* 24 yarn-error.log*
25 +
26 +# Google Speech-to-Text ssh
27 +TelePrompt-SST-507a938e9249.json
...\ No newline at end of file ...\ No newline at end of file
......
1 +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 +
3 +# dependencies
4 +/node_modules
5 +/.pnp
6 +.pnp.js
7 +
8 +# testing
9 +/coverage
10 +
11 +# production
12 +/build
13 +
14 +# misc
15 +.DS_Store
16 +.env.local
17 +.env.development.local
18 +.env.test.local
19 +.env.production.local
20 +.eslintcache
21 +
22 +npm-debug.log*
23 +yarn-debug.log*
24 +yarn-error.log*
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "teleprompter-frontend",
3 + "version": "0.1.0",
4 + "private": true,
5 + "dependencies": {
6 + "@material-ui/core": "^4.11.0",
7 + "@testing-library/jest-dom": "^5.11.4",
8 + "@testing-library/react": "^11.1.0",
9 + "@testing-library/user-event": "^12.1.10",
10 + "axios": "^0.21.0",
11 + "react": "^17.0.1",
12 + "react-dom": "^17.0.1",
13 + "react-router-dom": "^5.2.0",
14 + "react-scripts": "4.0.1",
15 + "web-vitals": "^0.2.4"
16 + },
17 + "scripts": {
18 + "start": "react-scripts start",
19 + "build": "react-scripts build",
20 + "test": "react-scripts test",
21 + "eject": "react-scripts eject"
22 + },
23 + "eslintConfig": {
24 + "extends": [
25 + "react-app",
26 + "react-app/jest"
27 + ]
28 + },
29 + "browserslist": {
30 + "production": [
31 + ">0.2%",
32 + "not dead",
33 + "not op_mini all"
34 + ],
35 + "development": [
36 + "last 1 chrome version",
37 + "last 1 firefox version",
38 + "last 1 safari version"
39 + ]
40 + },
41 + "proxy": "http://localhost:5000/"
42 +}
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
9 name="description" 9 name="description"
10 content="Web site created using create-react-app" 10 content="Web site created using create-react-app"
11 /> 11 />
12 - <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> 12 + <!-- <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> -->
13 <!-- 13 <!--
14 manifest.json provides metadata used when your web app is installed on a 14 manifest.json provides metadata used when your web app is installed on a
15 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ 15 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
......
...@@ -6,16 +6,6 @@ ...@@ -6,16 +6,6 @@
6 "src": "favicon.ico", 6 "src": "favicon.ico",
7 "sizes": "64x64 32x32 24x24 16x16", 7 "sizes": "64x64 32x32 24x24 16x16",
8 "type": "image/x-icon" 8 "type": "image/x-icon"
9 - },
10 - {
11 - "src": "logo192.png",
12 - "type": "image/png",
13 - "sizes": "192x192"
14 - },
15 - {
16 - "src": "logo512.png",
17 - "type": "image/png",
18 - "sizes": "512x512"
19 } 9 }
20 ], 10 ],
21 "start_url": ".", 11 "start_url": ".",
......
1 +import React, { Component } from 'react';
2 +import { Route } from 'react-router-dom';
3 +import MainPage from './pages/MainPage';
4 +import PrompterPage from './pages/PrompterPage';
5 +
6 +class App extends Component {
7 + render() {
8 + return (
9 + <>
10 + <Route path="/" component={MainPage} exact={true} />
11 + <Route path="/prompter" component={PrompterPage} exact={true} />
12 + </>
13 + );
14 + }
15 +}
16 +
17 +export default App;
...\ No newline at end of file ...\ No newline at end of file
1 +import React from 'react';
2 +import ReactDOM from 'react-dom';
3 +import { BrowserRouter } from 'react-router-dom';
4 +import './index.css';
5 +import App from './App';
6 +import * as serviceWorker from './serviceWorker';
7 +import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
8 +
9 +const theme = createMuiTheme({
10 + typography: {
11 + fontFamily: '"Noto Sans KR", serif',
12 + }
13 +})
14 +
15 +ReactDOM.render(
16 + <BrowserRouter>
17 + <MuiThemeProvider theme={theme}><App /></MuiThemeProvider>
18 + </BrowserRouter>,
19 + document.getElementById('root')
20 +);
21 +
22 +serviceWorker.unregister();
...\ No newline at end of file ...\ No newline at end of file
1 import React, { Component, Fragment } from 'react'; 1 import React, { Component, Fragment } from 'react';
2 -import './App.css'; 2 +import { post } from 'axios';
3 -import { withStyles, Typography, Paper, Button, TextField} from '@material-ui/core'; 3 +import { withStyles, Typography, Paper, Button, TextField } from '@material-ui/core';
4 +// import PrompterPage from './PrompterPage';
4 5
5 const styles = theme => ({ 6 const styles = theme => ({
6 - root: { 7 + root: {
7 - '& .MuiTextField-root': { 8 + '& .MuiTextField-root': {
8 - margin: theme.spacing(1), 9 + margin: theme.spacing(1),
9 - width: '100%', 10 + width: '100%',
10 - minWidth: 1080 11 + minWidth: 1080
11 - },
12 }, 12 },
13 - title: { 13 + },
14 - marginTop: theme.spacing.unit * 5, 14 + title: {
15 - textAlign: 'center', 15 + marginTop: theme.spacing.unit * 5,
16 - display: 'none', 16 + textAlign: 'center',
17 - fontSize: '2.0rem', 17 + display: 'none',
18 - [theme.breakpoints.up('sm')]: { 18 + fontSize: '2.0rem',
19 - display: 'block', 19 + [theme.breakpoints.up('sm')]: {
20 - } 20 + display: 'block',
21 - },
22 - paper: {
23 - marginTop: theme.spacing.unit * 5,
24 - marginLeft: theme.spacing.unit * 20,
25 - marginRight: theme.spacing.unit * 20
26 - },
27 - button: {
28 - marginTop: theme.spacing.unit * 1,
29 - marginLeft: theme.spacing.unit * 20,
30 - fontSize: '1rem',
31 - },
32 - });
33 -
34 -class App extends Component {
35 - constructor(props) {
36 - super(props);
37 - this.state = {
38 - script: ''
39 - }
40 } 21 }
22 + },
23 + paper: {
24 + marginTop: theme.spacing.unit * 5,
25 + marginLeft: theme.spacing.unit * 20,
26 + marginRight: theme.spacing.unit * 20
27 + },
28 + button: {
29 + marginTop: theme.spacing.unit * 1,
30 + marginLeft: theme.spacing.unit * 20,
31 + fontSize: '1rem',
32 + },
33 +});
41 34
42 - // Get Script 35 +class MainPage extends Component {
43 - getScript = (e) => { 36 + constructor(props) {
44 - this.script = e.target.value; 37 + super(props);
38 + this.state = {
39 + script: ''
45 } 40 }
41 + }
46 42
47 - // Send script to server && Move Next URL 43 + stateRefresh = () => {
48 - handleScriptSubmit = (e) => { 44 + this.setState({
49 - console.log(this.script); // test 45 + script: '',
50 - } 46 + });
47 + this.callApi()
48 + .then(res => this.setState({script: res}))
49 + .catch(err => console.log(err));
50 + }
51 51
52 - render() { 52 + callApi = async () => {
53 - const { classes } = this.props; 53 + const response = await fetch('/api/script');
54 - return ( 54 + const body = await response.json();
55 - <Fragment> 55 + return body;
56 - <Typography className={classes.title} variant="h6" color="inherit" noWrap>์Œ์„ฑ์— ๋งž์ถฐ ๋Œ€๋ณธ์„ ํ™”๋ฉด์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กฌํ”„ํ„ฐ ์„œ๋น„์Šค</Typography> 56 + }
57 - <Paper className={classes.paper} elevation={3}> 57 +
58 - <TextField id="outlined-textarea" label="Script๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”." fullWidth="true" rows={20} placeholder="Script" multiline variant="outlined" onChange={this.getScript}/> 58 + // Get Script
59 - </Paper> 59 + getScript = (e) => {
60 - <Button className={classes.button} variant="contained" color="primary" size="medium" onClick={this.handleScriptSubmit}>์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.</Button> 60 + this.script = e.target.value;
61 - </Fragment> 61 + }
62 - ); 62 +
63 + // Execute addScript() && Move Next URL
64 + handleScriptSubmit = (e) => {
65 + e.preventDefault()
66 + this.addScript()
67 + .then((response) => {
68 + console.log(response.data);
69 + this.stateRefresh();
70 + })
71 + this.setState({
72 + script: ''
73 + })
74 + this.props.history.push('/prompter');
75 +}
76 +
77 + // Send script to Server
78 + addScript = () => {
79 + const url = '/api/script';
80 + let scriptJSON = { script : this.script };
81 + const config = {
82 + headers: {
83 + 'content-type': 'application/json'
84 + }
63 } 85 }
86 + return post(url, JSON.stringify(scriptJSON), config);
87 +}
88 +
89 + render() {
90 + const { classes } = this.props;
91 + return (
92 + <Fragment>
93 + <Typography className={classes.title} variant="h6" color="inherit" noWrap>์Œ์„ฑ์— ๋งž์ถฐ ๋Œ€๋ณธ์„ ํ™”๋ฉด์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กฌํ”„ํ„ฐ ์„œ๋น„์Šค</Typography>
94 + <Paper className={classes.paper} elevation={3}>
95 + <TextField id="outlined-textarea" label="Script๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”." fullWidth="true" rows={20} placeholder="Script" multiline variant="outlined" onChange={this.getScript} />
96 + </Paper>
97 + <Button className={classes.button} variant="contained" color="primary" size="medium" onClick={this.handleScriptSubmit}>์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.</Button>
98 + </Fragment>
99 + );
100 + }
64 } 101 }
65 102
66 -export default withStyles(styles)(App);
...\ No newline at end of file ...\ No newline at end of file
103 +export default withStyles(styles)(MainPage);
...\ No newline at end of file ...\ No newline at end of file
......
1 +import React, { Component, Fragment } from 'react';
2 +// import { withStyles, Typography, Paper, Button, TextField} from '@material-ui/core';
3 +
4 +// const styles = theme => ({
5 +// root: {
6 +// '& .MuiTextField-root': {
7 +// margin: theme.spacing(1),
8 +// width: '100%',
9 +// minWidth: 1080
10 +// },
11 +// },
12 +// title: {
13 +// marginTop: theme.spacing.unit * 5,
14 +// textAlign: 'center',
15 +// display: 'none',
16 +// fontSize: '2.0rem',
17 +// [theme.breakpoints.up('sm')]: {
18 +// display: 'block',
19 +// }
20 +// },
21 +// paper: {
22 +// marginTop: theme.spacing.unit * 5,
23 +// marginLeft: theme.spacing.unit * 20,
24 +// marginRight: theme.spacing.unit * 20
25 +// },
26 +// button: {
27 +// marginTop: theme.spacing.unit * 1,
28 +// marginLeft: theme.spacing.unit * 20,
29 +// fontSize: '1rem',
30 +// },
31 +// });
32 +
33 +class PrompterPage extends Component {
34 +
35 + render() {
36 + // const { classes } = this.props;
37 + return (
38 + <Fragment>
39 + <h1>{this.props.script}</h1>
40 + </Fragment>
41 + );
42 + }
43 +}
44 +
45 +// export default withStyles(styles)(PrompterPage);
46 +export default PrompterPage;
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 +{
2 + "name": "teleprompter-sst",
3 + "version": "1.0.0",
4 + "lockfileVersion": 1,
5 + "requires": true,
6 + "dependencies": {
7 + "@sindresorhus/is": {
8 + "version": "0.14.0",
9 + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
10 + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
11 + "dev": true
12 + },
13 + "@szmarczak/http-timer": {
14 + "version": "1.1.2",
15 + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
16 + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
17 + "dev": true,
18 + "requires": {
19 + "defer-to-connect": "^1.0.1"
20 + }
21 + },
22 + "abbrev": {
23 + "version": "1.1.1",
24 + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
25 + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
26 + "dev": true
27 + },
28 + "accepts": {
29 + "version": "1.3.7",
30 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
31 + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
32 + "requires": {
33 + "mime-types": "~2.1.24",
34 + "negotiator": "0.6.2"
35 + }
36 + },
37 + "ansi-align": {
38 + "version": "3.0.0",
39 + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
40 + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
41 + "dev": true,
42 + "requires": {
43 + "string-width": "^3.0.0"
44 + },
45 + "dependencies": {
46 + "string-width": {
47 + "version": "3.1.0",
48 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
49 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
50 + "dev": true,
51 + "requires": {
52 + "emoji-regex": "^7.0.1",
53 + "is-fullwidth-code-point": "^2.0.0",
54 + "strip-ansi": "^5.1.0"
55 + }
56 + }
57 + }
58 + },
59 + "ansi-regex": {
60 + "version": "4.1.0",
61 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
62 + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
63 + "dev": true
64 + },
65 + "ansi-styles": {
66 + "version": "4.3.0",
67 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
68 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
69 + "dev": true,
70 + "requires": {
71 + "color-convert": "^2.0.1"
72 + }
73 + },
74 + "anymatch": {
75 + "version": "3.1.1",
76 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
77 + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
78 + "dev": true,
79 + "requires": {
80 + "normalize-path": "^3.0.0",
81 + "picomatch": "^2.0.4"
82 + }
83 + },
84 + "append-field": {
85 + "version": "1.0.0",
86 + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
87 + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
88 + },
89 + "array-flatten": {
90 + "version": "1.1.1",
91 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
92 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
93 + },
94 + "balanced-match": {
95 + "version": "1.0.0",
96 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
97 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
98 + "dev": true
99 + },
100 + "binary-extensions": {
101 + "version": "2.1.0",
102 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
103 + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
104 + "dev": true
105 + },
106 + "body-parser": {
107 + "version": "1.19.0",
108 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
109 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
110 + "requires": {
111 + "bytes": "3.1.0",
112 + "content-type": "~1.0.4",
113 + "debug": "2.6.9",
114 + "depd": "~1.1.2",
115 + "http-errors": "1.7.2",
116 + "iconv-lite": "0.4.24",
117 + "on-finished": "~2.3.0",
118 + "qs": "6.7.0",
119 + "raw-body": "2.4.0",
120 + "type-is": "~1.6.17"
121 + }
122 + },
123 + "boxen": {
124 + "version": "4.2.0",
125 + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
126 + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
127 + "dev": true,
128 + "requires": {
129 + "ansi-align": "^3.0.0",
130 + "camelcase": "^5.3.1",
131 + "chalk": "^3.0.0",
132 + "cli-boxes": "^2.2.0",
133 + "string-width": "^4.1.0",
134 + "term-size": "^2.1.0",
135 + "type-fest": "^0.8.1",
136 + "widest-line": "^3.1.0"
137 + }
138 + },
139 + "brace-expansion": {
140 + "version": "1.1.11",
141 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
142 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
143 + "dev": true,
144 + "requires": {
145 + "balanced-match": "^1.0.0",
146 + "concat-map": "0.0.1"
147 + }
148 + },
149 + "braces": {
150 + "version": "3.0.2",
151 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
152 + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
153 + "dev": true,
154 + "requires": {
155 + "fill-range": "^7.0.1"
156 + }
157 + },
158 + "buffer-from": {
159 + "version": "1.1.1",
160 + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
161 + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
162 + },
163 + "busboy": {
164 + "version": "0.2.14",
165 + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
166 + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
167 + "requires": {
168 + "dicer": "0.2.5",
169 + "readable-stream": "1.1.x"
170 + }
171 + },
172 + "bytes": {
173 + "version": "3.1.0",
174 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
175 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
176 + },
177 + "cacheable-request": {
178 + "version": "6.1.0",
179 + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
180 + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
181 + "dev": true,
182 + "requires": {
183 + "clone-response": "^1.0.2",
184 + "get-stream": "^5.1.0",
185 + "http-cache-semantics": "^4.0.0",
186 + "keyv": "^3.0.0",
187 + "lowercase-keys": "^2.0.0",
188 + "normalize-url": "^4.1.0",
189 + "responselike": "^1.0.2"
190 + },
191 + "dependencies": {
192 + "get-stream": {
193 + "version": "5.2.0",
194 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
195 + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
196 + "dev": true,
197 + "requires": {
198 + "pump": "^3.0.0"
199 + }
200 + },
201 + "lowercase-keys": {
202 + "version": "2.0.0",
203 + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
204 + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
205 + "dev": true
206 + }
207 + }
208 + },
209 + "camelcase": {
210 + "version": "5.3.1",
211 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
212 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
213 + "dev": true
214 + },
215 + "chalk": {
216 + "version": "3.0.0",
217 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
218 + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
219 + "dev": true,
220 + "requires": {
221 + "ansi-styles": "^4.1.0",
222 + "supports-color": "^7.1.0"
223 + },
224 + "dependencies": {
225 + "has-flag": {
226 + "version": "4.0.0",
227 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
228 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
229 + "dev": true
230 + },
231 + "supports-color": {
232 + "version": "7.2.0",
233 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
234 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
235 + "dev": true,
236 + "requires": {
237 + "has-flag": "^4.0.0"
238 + }
239 + }
240 + }
241 + },
242 + "chokidar": {
243 + "version": "3.4.3",
244 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
245 + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
246 + "dev": true,
247 + "requires": {
248 + "anymatch": "~3.1.1",
249 + "braces": "~3.0.2",
250 + "fsevents": "~2.1.2",
251 + "glob-parent": "~5.1.0",
252 + "is-binary-path": "~2.1.0",
253 + "is-glob": "~4.0.1",
254 + "normalize-path": "~3.0.0",
255 + "readdirp": "~3.5.0"
256 + }
257 + },
258 + "ci-info": {
259 + "version": "2.0.0",
260 + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
261 + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
262 + "dev": true
263 + },
264 + "cli-boxes": {
265 + "version": "2.2.1",
266 + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
267 + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
268 + "dev": true
269 + },
270 + "cliui": {
271 + "version": "5.0.0",
272 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
273 + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
274 + "dev": true,
275 + "requires": {
276 + "string-width": "^3.1.0",
277 + "strip-ansi": "^5.2.0",
278 + "wrap-ansi": "^5.1.0"
279 + },
280 + "dependencies": {
281 + "string-width": {
282 + "version": "3.1.0",
283 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
284 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
285 + "dev": true,
286 + "requires": {
287 + "emoji-regex": "^7.0.1",
288 + "is-fullwidth-code-point": "^2.0.0",
289 + "strip-ansi": "^5.1.0"
290 + }
291 + }
292 + }
293 + },
294 + "clone-response": {
295 + "version": "1.0.2",
296 + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
297 + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
298 + "dev": true,
299 + "requires": {
300 + "mimic-response": "^1.0.0"
301 + }
302 + },
303 + "color-convert": {
304 + "version": "2.0.1",
305 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
306 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
307 + "dev": true,
308 + "requires": {
309 + "color-name": "~1.1.4"
310 + }
311 + },
312 + "color-name": {
313 + "version": "1.1.4",
314 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
315 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
316 + "dev": true
317 + },
318 + "concat-map": {
319 + "version": "0.0.1",
320 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
321 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
322 + "dev": true
323 + },
324 + "concat-stream": {
325 + "version": "1.6.2",
326 + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
327 + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
328 + "requires": {
329 + "buffer-from": "^1.0.0",
330 + "inherits": "^2.0.3",
331 + "readable-stream": "^2.2.2",
332 + "typedarray": "^0.0.6"
333 + },
334 + "dependencies": {
335 + "isarray": {
336 + "version": "1.0.0",
337 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
338 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
339 + },
340 + "readable-stream": {
341 + "version": "2.3.7",
342 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
343 + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
344 + "requires": {
345 + "core-util-is": "~1.0.0",
346 + "inherits": "~2.0.3",
347 + "isarray": "~1.0.0",
348 + "process-nextick-args": "~2.0.0",
349 + "safe-buffer": "~5.1.1",
350 + "string_decoder": "~1.1.1",
351 + "util-deprecate": "~1.0.1"
352 + }
353 + },
354 + "string_decoder": {
355 + "version": "1.1.1",
356 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
357 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
358 + "requires": {
359 + "safe-buffer": "~5.1.0"
360 + }
361 + }
362 + }
363 + },
364 + "concurrently": {
365 + "version": "5.3.0",
366 + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz",
367 + "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==",
368 + "dev": true,
369 + "requires": {
370 + "chalk": "^2.4.2",
371 + "date-fns": "^2.0.1",
372 + "lodash": "^4.17.15",
373 + "read-pkg": "^4.0.1",
374 + "rxjs": "^6.5.2",
375 + "spawn-command": "^0.0.2-1",
376 + "supports-color": "^6.1.0",
377 + "tree-kill": "^1.2.2",
378 + "yargs": "^13.3.0"
379 + },
380 + "dependencies": {
381 + "ansi-styles": {
382 + "version": "3.2.1",
383 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
384 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
385 + "dev": true,
386 + "requires": {
387 + "color-convert": "^1.9.0"
388 + }
389 + },
390 + "chalk": {
391 + "version": "2.4.2",
392 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
393 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
394 + "dev": true,
395 + "requires": {
396 + "ansi-styles": "^3.2.1",
397 + "escape-string-regexp": "^1.0.5",
398 + "supports-color": "^5.3.0"
399 + },
400 + "dependencies": {
401 + "supports-color": {
402 + "version": "5.5.0",
403 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
404 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
405 + "dev": true,
406 + "requires": {
407 + "has-flag": "^3.0.0"
408 + }
409 + }
410 + }
411 + },
412 + "color-convert": {
413 + "version": "1.9.3",
414 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
415 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
416 + "dev": true,
417 + "requires": {
418 + "color-name": "1.1.3"
419 + }
420 + },
421 + "color-name": {
422 + "version": "1.1.3",
423 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
424 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
425 + "dev": true
426 + },
427 + "supports-color": {
428 + "version": "6.1.0",
429 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
430 + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
431 + "dev": true,
432 + "requires": {
433 + "has-flag": "^3.0.0"
434 + }
435 + }
436 + }
437 + },
438 + "configstore": {
439 + "version": "5.0.1",
440 + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
441 + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
442 + "dev": true,
443 + "requires": {
444 + "dot-prop": "^5.2.0",
445 + "graceful-fs": "^4.1.2",
446 + "make-dir": "^3.0.0",
447 + "unique-string": "^2.0.0",
448 + "write-file-atomic": "^3.0.0",
449 + "xdg-basedir": "^4.0.0"
450 + }
451 + },
452 + "content-disposition": {
453 + "version": "0.5.3",
454 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
455 + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
456 + "requires": {
457 + "safe-buffer": "5.1.2"
458 + }
459 + },
460 + "content-type": {
461 + "version": "1.0.4",
462 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
463 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
464 + },
465 + "cookie": {
466 + "version": "0.4.0",
467 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
468 + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
469 + },
470 + "cookie-signature": {
471 + "version": "1.0.6",
472 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
473 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
474 + },
475 + "core-util-is": {
476 + "version": "1.0.2",
477 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
478 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
479 + },
480 + "crypto-random-string": {
481 + "version": "2.0.0",
482 + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
483 + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
484 + "dev": true
485 + },
486 + "date-fns": {
487 + "version": "2.16.1",
488 + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.16.1.tgz",
489 + "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==",
490 + "dev": true
491 + },
492 + "debug": {
493 + "version": "2.6.9",
494 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
495 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
496 + "requires": {
497 + "ms": "2.0.0"
498 + }
499 + },
500 + "decamelize": {
501 + "version": "1.2.0",
502 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
503 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
504 + "dev": true
505 + },
506 + "decompress-response": {
507 + "version": "3.3.0",
508 + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
509 + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
510 + "dev": true,
511 + "requires": {
512 + "mimic-response": "^1.0.0"
513 + }
514 + },
515 + "deep-extend": {
516 + "version": "0.6.0",
517 + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
518 + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
519 + "dev": true
520 + },
521 + "defer-to-connect": {
522 + "version": "1.1.3",
523 + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
524 + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
525 + "dev": true
526 + },
527 + "depd": {
528 + "version": "1.1.2",
529 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
530 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
531 + },
532 + "destroy": {
533 + "version": "1.0.4",
534 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
535 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
536 + },
537 + "dicer": {
538 + "version": "0.2.5",
539 + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
540 + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
541 + "requires": {
542 + "readable-stream": "1.1.x",
543 + "streamsearch": "0.1.2"
544 + }
545 + },
546 + "dot-prop": {
547 + "version": "5.3.0",
548 + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
549 + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
550 + "dev": true,
551 + "requires": {
552 + "is-obj": "^2.0.0"
553 + }
554 + },
555 + "duplexer3": {
556 + "version": "0.1.4",
557 + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
558 + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
559 + "dev": true
560 + },
561 + "ee-first": {
562 + "version": "1.1.1",
563 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
564 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
565 + },
566 + "emoji-regex": {
567 + "version": "7.0.3",
568 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
569 + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
570 + "dev": true
571 + },
572 + "encodeurl": {
573 + "version": "1.0.2",
574 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
575 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
576 + },
577 + "end-of-stream": {
578 + "version": "1.4.4",
579 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
580 + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
581 + "dev": true,
582 + "requires": {
583 + "once": "^1.4.0"
584 + }
585 + },
586 + "error-ex": {
587 + "version": "1.3.2",
588 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
589 + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
590 + "dev": true,
591 + "requires": {
592 + "is-arrayish": "^0.2.1"
593 + }
594 + },
595 + "escape-goat": {
596 + "version": "2.1.1",
597 + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
598 + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
599 + "dev": true
600 + },
601 + "escape-html": {
602 + "version": "1.0.3",
603 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
604 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
605 + },
606 + "escape-string-regexp": {
607 + "version": "1.0.5",
608 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
609 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
610 + "dev": true
611 + },
612 + "etag": {
613 + "version": "1.8.1",
614 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
615 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
616 + },
617 + "express": {
618 + "version": "4.17.1",
619 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
620 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
621 + "requires": {
622 + "accepts": "~1.3.7",
623 + "array-flatten": "1.1.1",
624 + "body-parser": "1.19.0",
625 + "content-disposition": "0.5.3",
626 + "content-type": "~1.0.4",
627 + "cookie": "0.4.0",
628 + "cookie-signature": "1.0.6",
629 + "debug": "2.6.9",
630 + "depd": "~1.1.2",
631 + "encodeurl": "~1.0.2",
632 + "escape-html": "~1.0.3",
633 + "etag": "~1.8.1",
634 + "finalhandler": "~1.1.2",
635 + "fresh": "0.5.2",
636 + "merge-descriptors": "1.0.1",
637 + "methods": "~1.1.2",
638 + "on-finished": "~2.3.0",
639 + "parseurl": "~1.3.3",
640 + "path-to-regexp": "0.1.7",
641 + "proxy-addr": "~2.0.5",
642 + "qs": "6.7.0",
643 + "range-parser": "~1.2.1",
644 + "safe-buffer": "5.1.2",
645 + "send": "0.17.1",
646 + "serve-static": "1.14.1",
647 + "setprototypeof": "1.1.1",
648 + "statuses": "~1.5.0",
649 + "type-is": "~1.6.18",
650 + "utils-merge": "1.0.1",
651 + "vary": "~1.1.2"
652 + },
653 + "dependencies": {
654 + "body-parser": {
655 + "version": "1.19.0",
656 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
657 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
658 + "requires": {
659 + "bytes": "3.1.0",
660 + "content-type": "~1.0.4",
661 + "debug": "2.6.9",
662 + "depd": "~1.1.2",
663 + "http-errors": "1.7.2",
664 + "iconv-lite": "0.4.24",
665 + "on-finished": "~2.3.0",
666 + "qs": "6.7.0",
667 + "raw-body": "2.4.0",
668 + "type-is": "~1.6.17"
669 + }
670 + }
671 + }
672 + },
673 + "fill-range": {
674 + "version": "7.0.1",
675 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
676 + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
677 + "dev": true,
678 + "requires": {
679 + "to-regex-range": "^5.0.1"
680 + }
681 + },
682 + "finalhandler": {
683 + "version": "1.1.2",
684 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
685 + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
686 + "requires": {
687 + "debug": "2.6.9",
688 + "encodeurl": "~1.0.2",
689 + "escape-html": "~1.0.3",
690 + "on-finished": "~2.3.0",
691 + "parseurl": "~1.3.3",
692 + "statuses": "~1.5.0",
693 + "unpipe": "~1.0.0"
694 + }
695 + },
696 + "find-up": {
697 + "version": "3.0.0",
698 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
699 + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
700 + "dev": true,
701 + "requires": {
702 + "locate-path": "^3.0.0"
703 + }
704 + },
705 + "forwarded": {
706 + "version": "0.1.2",
707 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
708 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
709 + },
710 + "fresh": {
711 + "version": "0.5.2",
712 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
713 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
714 + },
715 + "fsevents": {
716 + "version": "2.1.3",
717 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
718 + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
719 + "dev": true,
720 + "optional": true
721 + },
722 + "function-bind": {
723 + "version": "1.1.1",
724 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
725 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
726 + "dev": true
727 + },
728 + "get-caller-file": {
729 + "version": "2.0.5",
730 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
731 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
732 + "dev": true
733 + },
734 + "get-stream": {
735 + "version": "4.1.0",
736 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
737 + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
738 + "dev": true,
739 + "requires": {
740 + "pump": "^3.0.0"
741 + }
742 + },
743 + "glob-parent": {
744 + "version": "5.1.1",
745 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
746 + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
747 + "dev": true,
748 + "requires": {
749 + "is-glob": "^4.0.1"
750 + }
751 + },
752 + "global-dirs": {
753 + "version": "2.0.1",
754 + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz",
755 + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
756 + "dev": true,
757 + "requires": {
758 + "ini": "^1.3.5"
759 + }
760 + },
761 + "got": {
762 + "version": "9.6.0",
763 + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
764 + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
765 + "dev": true,
766 + "requires": {
767 + "@sindresorhus/is": "^0.14.0",
768 + "@szmarczak/http-timer": "^1.1.2",
769 + "cacheable-request": "^6.0.0",
770 + "decompress-response": "^3.3.0",
771 + "duplexer3": "^0.1.4",
772 + "get-stream": "^4.1.0",
773 + "lowercase-keys": "^1.0.1",
774 + "mimic-response": "^1.0.1",
775 + "p-cancelable": "^1.0.0",
776 + "to-readable-stream": "^1.0.0",
777 + "url-parse-lax": "^3.0.0"
778 + }
779 + },
780 + "graceful-fs": {
781 + "version": "4.2.4",
782 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
783 + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
784 + "dev": true
785 + },
786 + "has": {
787 + "version": "1.0.3",
788 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
789 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
790 + "dev": true,
791 + "requires": {
792 + "function-bind": "^1.1.1"
793 + }
794 + },
795 + "has-flag": {
796 + "version": "3.0.0",
797 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
798 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
799 + "dev": true
800 + },
801 + "has-yarn": {
802 + "version": "2.1.0",
803 + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
804 + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
805 + "dev": true
806 + },
807 + "hosted-git-info": {
808 + "version": "2.8.8",
809 + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
810 + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
811 + "dev": true
812 + },
813 + "http-cache-semantics": {
814 + "version": "4.1.0",
815 + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
816 + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
817 + "dev": true
818 + },
819 + "http-errors": {
820 + "version": "1.7.2",
821 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
822 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
823 + "requires": {
824 + "depd": "~1.1.2",
825 + "inherits": "2.0.3",
826 + "setprototypeof": "1.1.1",
827 + "statuses": ">= 1.5.0 < 2",
828 + "toidentifier": "1.0.0"
829 + },
830 + "dependencies": {
831 + "inherits": {
832 + "version": "2.0.3",
833 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
834 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
835 + }
836 + }
837 + },
838 + "iconv-lite": {
839 + "version": "0.4.24",
840 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
841 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
842 + "requires": {
843 + "safer-buffer": ">= 2.1.2 < 3"
844 + }
845 + },
846 + "ignore-by-default": {
847 + "version": "1.0.1",
848 + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
849 + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
850 + "dev": true
851 + },
852 + "import-lazy": {
853 + "version": "2.1.0",
854 + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
855 + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
856 + "dev": true
857 + },
858 + "imurmurhash": {
859 + "version": "0.1.4",
860 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
861 + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
862 + "dev": true
863 + },
864 + "inherits": {
865 + "version": "2.0.4",
866 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
867 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
868 + },
869 + "ini": {
870 + "version": "1.3.5",
871 + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
872 + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
873 + "dev": true
874 + },
875 + "ipaddr.js": {
876 + "version": "1.9.1",
877 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
878 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
879 + },
880 + "is-arrayish": {
881 + "version": "0.2.1",
882 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
883 + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
884 + "dev": true
885 + },
886 + "is-binary-path": {
887 + "version": "2.1.0",
888 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
889 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
890 + "dev": true,
891 + "requires": {
892 + "binary-extensions": "^2.0.0"
893 + }
894 + },
895 + "is-ci": {
896 + "version": "2.0.0",
897 + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
898 + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
899 + "dev": true,
900 + "requires": {
901 + "ci-info": "^2.0.0"
902 + }
903 + },
904 + "is-core-module": {
905 + "version": "2.2.0",
906 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
907 + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
908 + "dev": true,
909 + "requires": {
910 + "has": "^1.0.3"
911 + }
912 + },
913 + "is-extglob": {
914 + "version": "2.1.1",
915 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
916 + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
917 + "dev": true
918 + },
919 + "is-fullwidth-code-point": {
920 + "version": "2.0.0",
921 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
922 + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
923 + "dev": true
924 + },
925 + "is-glob": {
926 + "version": "4.0.1",
927 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
928 + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
929 + "dev": true,
930 + "requires": {
931 + "is-extglob": "^2.1.1"
932 + }
933 + },
934 + "is-installed-globally": {
935 + "version": "0.3.2",
936 + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
937 + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
938 + "dev": true,
939 + "requires": {
940 + "global-dirs": "^2.0.1",
941 + "is-path-inside": "^3.0.1"
942 + }
943 + },
944 + "is-npm": {
945 + "version": "4.0.0",
946 + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
947 + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==",
948 + "dev": true
949 + },
950 + "is-number": {
951 + "version": "7.0.0",
952 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
953 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
954 + "dev": true
955 + },
956 + "is-obj": {
957 + "version": "2.0.0",
958 + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
959 + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
960 + "dev": true
961 + },
962 + "is-path-inside": {
963 + "version": "3.0.2",
964 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
965 + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
966 + "dev": true
967 + },
968 + "is-typedarray": {
969 + "version": "1.0.0",
970 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
971 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
972 + "dev": true
973 + },
974 + "is-yarn-global": {
975 + "version": "0.3.0",
976 + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
977 + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
978 + "dev": true
979 + },
980 + "isarray": {
981 + "version": "0.0.1",
982 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
983 + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
984 + },
985 + "json-buffer": {
986 + "version": "3.0.0",
987 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
988 + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
989 + "dev": true
990 + },
991 + "json-parse-better-errors": {
992 + "version": "1.0.2",
993 + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
994 + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
995 + "dev": true
996 + },
997 + "keyv": {
998 + "version": "3.1.0",
999 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1000 + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1001 + "dev": true,
1002 + "requires": {
1003 + "json-buffer": "3.0.0"
1004 + }
1005 + },
1006 + "latest-version": {
1007 + "version": "5.1.0",
1008 + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
1009 + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
1010 + "dev": true,
1011 + "requires": {
1012 + "package-json": "^6.3.0"
1013 + }
1014 + },
1015 + "locate-path": {
1016 + "version": "3.0.0",
1017 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
1018 + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
1019 + "dev": true,
1020 + "requires": {
1021 + "p-locate": "^3.0.0",
1022 + "path-exists": "^3.0.0"
1023 + }
1024 + },
1025 + "lodash": {
1026 + "version": "4.17.20",
1027 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
1028 + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
1029 + "dev": true
1030 + },
1031 + "lowercase-keys": {
1032 + "version": "1.0.1",
1033 + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1034 + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
1035 + "dev": true
1036 + },
1037 + "make-dir": {
1038 + "version": "3.1.0",
1039 + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1040 + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1041 + "dev": true,
1042 + "requires": {
1043 + "semver": "^6.0.0"
1044 + },
1045 + "dependencies": {
1046 + "semver": {
1047 + "version": "6.3.0",
1048 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1049 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1050 + "dev": true
1051 + }
1052 + }
1053 + },
1054 + "media-typer": {
1055 + "version": "0.3.0",
1056 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1057 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1058 + },
1059 + "merge-descriptors": {
1060 + "version": "1.0.1",
1061 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1062 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1063 + },
1064 + "methods": {
1065 + "version": "1.1.2",
1066 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1067 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1068 + },
1069 + "mime": {
1070 + "version": "1.6.0",
1071 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1072 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1073 + },
1074 + "mime-db": {
1075 + "version": "1.44.0",
1076 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
1077 + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
1078 + },
1079 + "mime-types": {
1080 + "version": "2.1.27",
1081 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
1082 + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
1083 + "requires": {
1084 + "mime-db": "1.44.0"
1085 + }
1086 + },
1087 + "mimic-response": {
1088 + "version": "1.0.1",
1089 + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1090 + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
1091 + "dev": true
1092 + },
1093 + "minimatch": {
1094 + "version": "3.0.4",
1095 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1096 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1097 + "dev": true,
1098 + "requires": {
1099 + "brace-expansion": "^1.1.7"
1100 + }
1101 + },
1102 + "minimist": {
1103 + "version": "1.2.5",
1104 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1105 + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1106 + },
1107 + "mkdirp": {
1108 + "version": "0.5.5",
1109 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1110 + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1111 + "requires": {
1112 + "minimist": "^1.2.5"
1113 + }
1114 + },
1115 + "ms": {
1116 + "version": "2.0.0",
1117 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1118 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1119 + },
1120 + "multer": {
1121 + "version": "1.4.2",
1122 + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
1123 + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
1124 + "requires": {
1125 + "append-field": "^1.0.0",
1126 + "busboy": "^0.2.11",
1127 + "concat-stream": "^1.5.2",
1128 + "mkdirp": "^0.5.1",
1129 + "object-assign": "^4.1.1",
1130 + "on-finished": "^2.3.0",
1131 + "type-is": "^1.6.4",
1132 + "xtend": "^4.0.0"
1133 + }
1134 + },
1135 + "negotiator": {
1136 + "version": "0.6.2",
1137 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1138 + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1139 + },
1140 + "nodemon": {
1141 + "version": "2.0.6",
1142 + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz",
1143 + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==",
1144 + "dev": true,
1145 + "requires": {
1146 + "chokidar": "^3.2.2",
1147 + "debug": "^3.2.6",
1148 + "ignore-by-default": "^1.0.1",
1149 + "minimatch": "^3.0.4",
1150 + "pstree.remy": "^1.1.7",
1151 + "semver": "^5.7.1",
1152 + "supports-color": "^5.5.0",
1153 + "touch": "^3.1.0",
1154 + "undefsafe": "^2.0.3",
1155 + "update-notifier": "^4.1.0"
1156 + },
1157 + "dependencies": {
1158 + "debug": {
1159 + "version": "3.2.7",
1160 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1161 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1162 + "dev": true,
1163 + "requires": {
1164 + "ms": "^2.1.1"
1165 + }
1166 + },
1167 + "ms": {
1168 + "version": "2.1.2",
1169 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1170 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1171 + "dev": true
1172 + }
1173 + }
1174 + },
1175 + "nopt": {
1176 + "version": "1.0.10",
1177 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1178 + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1179 + "dev": true,
1180 + "requires": {
1181 + "abbrev": "1"
1182 + }
1183 + },
1184 + "normalize-package-data": {
1185 + "version": "2.5.0",
1186 + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
1187 + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
1188 + "dev": true,
1189 + "requires": {
1190 + "hosted-git-info": "^2.1.4",
1191 + "resolve": "^1.10.0",
1192 + "semver": "2 || 3 || 4 || 5",
1193 + "validate-npm-package-license": "^3.0.1"
1194 + }
1195 + },
1196 + "normalize-path": {
1197 + "version": "3.0.0",
1198 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1199 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1200 + "dev": true
1201 + },
1202 + "normalize-url": {
1203 + "version": "4.5.0",
1204 + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
1205 + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
1206 + "dev": true
1207 + },
1208 + "object-assign": {
1209 + "version": "4.1.1",
1210 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1211 + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1212 + },
1213 + "on-finished": {
1214 + "version": "2.3.0",
1215 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1216 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1217 + "requires": {
1218 + "ee-first": "1.1.1"
1219 + }
1220 + },
1221 + "once": {
1222 + "version": "1.4.0",
1223 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1224 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1225 + "dev": true,
1226 + "requires": {
1227 + "wrappy": "1"
1228 + }
1229 + },
1230 + "p-cancelable": {
1231 + "version": "1.1.0",
1232 + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
1233 + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
1234 + "dev": true
1235 + },
1236 + "p-limit": {
1237 + "version": "2.3.0",
1238 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1239 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1240 + "dev": true,
1241 + "requires": {
1242 + "p-try": "^2.0.0"
1243 + }
1244 + },
1245 + "p-locate": {
1246 + "version": "3.0.0",
1247 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
1248 + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
1249 + "dev": true,
1250 + "requires": {
1251 + "p-limit": "^2.0.0"
1252 + }
1253 + },
1254 + "p-try": {
1255 + "version": "2.2.0",
1256 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1257 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1258 + "dev": true
1259 + },
1260 + "package-json": {
1261 + "version": "6.5.0",
1262 + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
1263 + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
1264 + "dev": true,
1265 + "requires": {
1266 + "got": "^9.6.0",
1267 + "registry-auth-token": "^4.0.0",
1268 + "registry-url": "^5.0.0",
1269 + "semver": "^6.2.0"
1270 + },
1271 + "dependencies": {
1272 + "semver": {
1273 + "version": "6.3.0",
1274 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1275 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1276 + "dev": true
1277 + }
1278 + }
1279 + },
1280 + "parse-json": {
1281 + "version": "4.0.0",
1282 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
1283 + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
1284 + "dev": true,
1285 + "requires": {
1286 + "error-ex": "^1.3.1",
1287 + "json-parse-better-errors": "^1.0.1"
1288 + }
1289 + },
1290 + "parseurl": {
1291 + "version": "1.3.3",
1292 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1293 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1294 + },
1295 + "path-exists": {
1296 + "version": "3.0.0",
1297 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1298 + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1299 + "dev": true
1300 + },
1301 + "path-parse": {
1302 + "version": "1.0.6",
1303 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1304 + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1305 + "dev": true
1306 + },
1307 + "path-to-regexp": {
1308 + "version": "0.1.7",
1309 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1310 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1311 + },
1312 + "picomatch": {
1313 + "version": "2.2.2",
1314 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
1315 + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
1316 + "dev": true
1317 + },
1318 + "pify": {
1319 + "version": "3.0.0",
1320 + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1321 + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1322 + "dev": true
1323 + },
1324 + "prepend-http": {
1325 + "version": "2.0.0",
1326 + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1327 + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
1328 + "dev": true
1329 + },
1330 + "process-nextick-args": {
1331 + "version": "2.0.1",
1332 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1333 + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1334 + },
1335 + "proxy-addr": {
1336 + "version": "2.0.6",
1337 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
1338 + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
1339 + "requires": {
1340 + "forwarded": "~0.1.2",
1341 + "ipaddr.js": "1.9.1"
1342 + }
1343 + },
1344 + "pstree.remy": {
1345 + "version": "1.1.8",
1346 + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
1347 + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
1348 + "dev": true
1349 + },
1350 + "pump": {
1351 + "version": "3.0.0",
1352 + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1353 + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1354 + "dev": true,
1355 + "requires": {
1356 + "end-of-stream": "^1.1.0",
1357 + "once": "^1.3.1"
1358 + }
1359 + },
1360 + "pupa": {
1361 + "version": "2.1.1",
1362 + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
1363 + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
1364 + "dev": true,
1365 + "requires": {
1366 + "escape-goat": "^2.0.0"
1367 + }
1368 + },
1369 + "qs": {
1370 + "version": "6.7.0",
1371 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
1372 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
1373 + },
1374 + "range-parser": {
1375 + "version": "1.2.1",
1376 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1377 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1378 + },
1379 + "raw-body": {
1380 + "version": "2.4.0",
1381 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1382 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1383 + "requires": {
1384 + "bytes": "3.1.0",
1385 + "http-errors": "1.7.2",
1386 + "iconv-lite": "0.4.24",
1387 + "unpipe": "1.0.0"
1388 + }
1389 + },
1390 + "rc": {
1391 + "version": "1.2.8",
1392 + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1393 + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1394 + "dev": true,
1395 + "requires": {
1396 + "deep-extend": "^0.6.0",
1397 + "ini": "~1.3.0",
1398 + "minimist": "^1.2.0",
1399 + "strip-json-comments": "~2.0.1"
1400 + }
1401 + },
1402 + "read-pkg": {
1403 + "version": "4.0.1",
1404 + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
1405 + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
1406 + "dev": true,
1407 + "requires": {
1408 + "normalize-package-data": "^2.3.2",
1409 + "parse-json": "^4.0.0",
1410 + "pify": "^3.0.0"
1411 + }
1412 + },
1413 + "readable-stream": {
1414 + "version": "1.1.14",
1415 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
1416 + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
1417 + "requires": {
1418 + "core-util-is": "~1.0.0",
1419 + "inherits": "~2.0.1",
1420 + "isarray": "0.0.1",
1421 + "string_decoder": "~0.10.x"
1422 + }
1423 + },
1424 + "readdirp": {
1425 + "version": "3.5.0",
1426 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
1427 + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
1428 + "dev": true,
1429 + "requires": {
1430 + "picomatch": "^2.2.1"
1431 + }
1432 + },
1433 + "registry-auth-token": {
1434 + "version": "4.2.1",
1435 + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
1436 + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
1437 + "dev": true,
1438 + "requires": {
1439 + "rc": "^1.2.8"
1440 + }
1441 + },
1442 + "registry-url": {
1443 + "version": "5.1.0",
1444 + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
1445 + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
1446 + "dev": true,
1447 + "requires": {
1448 + "rc": "^1.2.8"
1449 + }
1450 + },
1451 + "require-directory": {
1452 + "version": "2.1.1",
1453 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1454 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1455 + "dev": true
1456 + },
1457 + "require-main-filename": {
1458 + "version": "2.0.0",
1459 + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1460 + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1461 + "dev": true
1462 + },
1463 + "resolve": {
1464 + "version": "1.19.0",
1465 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
1466 + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
1467 + "dev": true,
1468 + "requires": {
1469 + "is-core-module": "^2.1.0",
1470 + "path-parse": "^1.0.6"
1471 + }
1472 + },
1473 + "responselike": {
1474 + "version": "1.0.2",
1475 + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
1476 + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
1477 + "dev": true,
1478 + "requires": {
1479 + "lowercase-keys": "^1.0.0"
1480 + }
1481 + },
1482 + "rxjs": {
1483 + "version": "6.6.3",
1484 + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
1485 + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
1486 + "dev": true,
1487 + "requires": {
1488 + "tslib": "^1.9.0"
1489 + }
1490 + },
1491 + "safe-buffer": {
1492 + "version": "5.1.2",
1493 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1494 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1495 + },
1496 + "safer-buffer": {
1497 + "version": "2.1.2",
1498 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1499 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1500 + },
1501 + "semver": {
1502 + "version": "5.7.1",
1503 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1504 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1505 + "dev": true
1506 + },
1507 + "semver-diff": {
1508 + "version": "3.1.1",
1509 + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
1510 + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
1511 + "dev": true,
1512 + "requires": {
1513 + "semver": "^6.3.0"
1514 + },
1515 + "dependencies": {
1516 + "semver": {
1517 + "version": "6.3.0",
1518 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1519 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1520 + "dev": true
1521 + }
1522 + }
1523 + },
1524 + "send": {
1525 + "version": "0.17.1",
1526 + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1527 + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1528 + "requires": {
1529 + "debug": "2.6.9",
1530 + "depd": "~1.1.2",
1531 + "destroy": "~1.0.4",
1532 + "encodeurl": "~1.0.2",
1533 + "escape-html": "~1.0.3",
1534 + "etag": "~1.8.1",
1535 + "fresh": "0.5.2",
1536 + "http-errors": "~1.7.2",
1537 + "mime": "1.6.0",
1538 + "ms": "2.1.1",
1539 + "on-finished": "~2.3.0",
1540 + "range-parser": "~1.2.1",
1541 + "statuses": "~1.5.0"
1542 + },
1543 + "dependencies": {
1544 + "ms": {
1545 + "version": "2.1.1",
1546 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1547 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1548 + }
1549 + }
1550 + },
1551 + "serve-static": {
1552 + "version": "1.14.1",
1553 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1554 + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1555 + "requires": {
1556 + "encodeurl": "~1.0.2",
1557 + "escape-html": "~1.0.3",
1558 + "parseurl": "~1.3.3",
1559 + "send": "0.17.1"
1560 + }
1561 + },
1562 + "set-blocking": {
1563 + "version": "2.0.0",
1564 + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1565 + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
1566 + "dev": true
1567 + },
1568 + "setprototypeof": {
1569 + "version": "1.1.1",
1570 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1571 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1572 + },
1573 + "signal-exit": {
1574 + "version": "3.0.3",
1575 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1576 + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
1577 + "dev": true
1578 + },
1579 + "spawn-command": {
1580 + "version": "0.0.2-1",
1581 + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
1582 + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
1583 + "dev": true
1584 + },
1585 + "spdx-correct": {
1586 + "version": "3.1.1",
1587 + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
1588 + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
1589 + "dev": true,
1590 + "requires": {
1591 + "spdx-expression-parse": "^3.0.0",
1592 + "spdx-license-ids": "^3.0.0"
1593 + }
1594 + },
1595 + "spdx-exceptions": {
1596 + "version": "2.3.0",
1597 + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
1598 + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
1599 + "dev": true
1600 + },
1601 + "spdx-expression-parse": {
1602 + "version": "3.0.1",
1603 + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
1604 + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
1605 + "dev": true,
1606 + "requires": {
1607 + "spdx-exceptions": "^2.1.0",
1608 + "spdx-license-ids": "^3.0.0"
1609 + }
1610 + },
1611 + "spdx-license-ids": {
1612 + "version": "3.0.7",
1613 + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz",
1614 + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==",
1615 + "dev": true
1616 + },
1617 + "statuses": {
1618 + "version": "1.5.0",
1619 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1620 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1621 + },
1622 + "streamsearch": {
1623 + "version": "0.1.2",
1624 + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
1625 + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
1626 + },
1627 + "string-width": {
1628 + "version": "4.2.0",
1629 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
1630 + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
1631 + "dev": true,
1632 + "requires": {
1633 + "emoji-regex": "^8.0.0",
1634 + "is-fullwidth-code-point": "^3.0.0",
1635 + "strip-ansi": "^6.0.0"
1636 + },
1637 + "dependencies": {
1638 + "ansi-regex": {
1639 + "version": "5.0.0",
1640 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
1641 + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
1642 + "dev": true
1643 + },
1644 + "emoji-regex": {
1645 + "version": "8.0.0",
1646 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1647 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1648 + "dev": true
1649 + },
1650 + "is-fullwidth-code-point": {
1651 + "version": "3.0.0",
1652 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1653 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1654 + "dev": true
1655 + },
1656 + "strip-ansi": {
1657 + "version": "6.0.0",
1658 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1659 + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1660 + "dev": true,
1661 + "requires": {
1662 + "ansi-regex": "^5.0.0"
1663 + }
1664 + }
1665 + }
1666 + },
1667 + "string_decoder": {
1668 + "version": "0.10.31",
1669 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
1670 + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
1671 + },
1672 + "strip-ansi": {
1673 + "version": "5.2.0",
1674 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1675 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1676 + "dev": true,
1677 + "requires": {
1678 + "ansi-regex": "^4.1.0"
1679 + }
1680 + },
1681 + "strip-json-comments": {
1682 + "version": "2.0.1",
1683 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1684 + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
1685 + "dev": true
1686 + },
1687 + "supports-color": {
1688 + "version": "5.5.0",
1689 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1690 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1691 + "dev": true,
1692 + "requires": {
1693 + "has-flag": "^3.0.0"
1694 + }
1695 + },
1696 + "term-size": {
1697 + "version": "2.2.1",
1698 + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
1699 + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
1700 + "dev": true
1701 + },
1702 + "to-readable-stream": {
1703 + "version": "1.0.0",
1704 + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
1705 + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
1706 + "dev": true
1707 + },
1708 + "to-regex-range": {
1709 + "version": "5.0.1",
1710 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1711 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1712 + "dev": true,
1713 + "requires": {
1714 + "is-number": "^7.0.0"
1715 + }
1716 + },
1717 + "toidentifier": {
1718 + "version": "1.0.0",
1719 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1720 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1721 + },
1722 + "touch": {
1723 + "version": "3.1.0",
1724 + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
1725 + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
1726 + "dev": true,
1727 + "requires": {
1728 + "nopt": "~1.0.10"
1729 + }
1730 + },
1731 + "tree-kill": {
1732 + "version": "1.2.2",
1733 + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
1734 + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
1735 + "dev": true
1736 + },
1737 + "tslib": {
1738 + "version": "1.14.1",
1739 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1740 + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
1741 + "dev": true
1742 + },
1743 + "type-fest": {
1744 + "version": "0.8.1",
1745 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1746 + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1747 + "dev": true
1748 + },
1749 + "type-is": {
1750 + "version": "1.6.18",
1751 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1752 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1753 + "requires": {
1754 + "media-typer": "0.3.0",
1755 + "mime-types": "~2.1.24"
1756 + }
1757 + },
1758 + "typedarray": {
1759 + "version": "0.0.6",
1760 + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1761 + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
1762 + },
1763 + "typedarray-to-buffer": {
1764 + "version": "3.1.5",
1765 + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1766 + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1767 + "dev": true,
1768 + "requires": {
1769 + "is-typedarray": "^1.0.0"
1770 + }
1771 + },
1772 + "undefsafe": {
1773 + "version": "2.0.3",
1774 + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
1775 + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
1776 + "dev": true,
1777 + "requires": {
1778 + "debug": "^2.2.0"
1779 + }
1780 + },
1781 + "unique-string": {
1782 + "version": "2.0.0",
1783 + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1784 + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1785 + "dev": true,
1786 + "requires": {
1787 + "crypto-random-string": "^2.0.0"
1788 + }
1789 + },
1790 + "unpipe": {
1791 + "version": "1.0.0",
1792 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1793 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1794 + },
1795 + "update-notifier": {
1796 + "version": "4.1.3",
1797 + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
1798 + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
1799 + "dev": true,
1800 + "requires": {
1801 + "boxen": "^4.2.0",
1802 + "chalk": "^3.0.0",
1803 + "configstore": "^5.0.1",
1804 + "has-yarn": "^2.1.0",
1805 + "import-lazy": "^2.1.0",
1806 + "is-ci": "^2.0.0",
1807 + "is-installed-globally": "^0.3.1",
1808 + "is-npm": "^4.0.0",
1809 + "is-yarn-global": "^0.3.0",
1810 + "latest-version": "^5.0.0",
1811 + "pupa": "^2.0.1",
1812 + "semver-diff": "^3.1.1",
1813 + "xdg-basedir": "^4.0.0"
1814 + }
1815 + },
1816 + "url-parse-lax": {
1817 + "version": "3.0.0",
1818 + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
1819 + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
1820 + "dev": true,
1821 + "requires": {
1822 + "prepend-http": "^2.0.0"
1823 + }
1824 + },
1825 + "util-deprecate": {
1826 + "version": "1.0.2",
1827 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1828 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1829 + },
1830 + "utils-merge": {
1831 + "version": "1.0.1",
1832 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1833 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1834 + },
1835 + "validate-npm-package-license": {
1836 + "version": "3.0.4",
1837 + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
1838 + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
1839 + "dev": true,
1840 + "requires": {
1841 + "spdx-correct": "^3.0.0",
1842 + "spdx-expression-parse": "^3.0.0"
1843 + }
1844 + },
1845 + "vary": {
1846 + "version": "1.1.2",
1847 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1848 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1849 + },
1850 + "which-module": {
1851 + "version": "2.0.0",
1852 + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
1853 + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
1854 + "dev": true
1855 + },
1856 + "widest-line": {
1857 + "version": "3.1.0",
1858 + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
1859 + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
1860 + "dev": true,
1861 + "requires": {
1862 + "string-width": "^4.0.0"
1863 + }
1864 + },
1865 + "wrap-ansi": {
1866 + "version": "5.1.0",
1867 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
1868 + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
1869 + "dev": true,
1870 + "requires": {
1871 + "ansi-styles": "^3.2.0",
1872 + "string-width": "^3.0.0",
1873 + "strip-ansi": "^5.0.0"
1874 + },
1875 + "dependencies": {
1876 + "ansi-styles": {
1877 + "version": "3.2.1",
1878 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1879 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1880 + "dev": true,
1881 + "requires": {
1882 + "color-convert": "^1.9.0"
1883 + }
1884 + },
1885 + "color-convert": {
1886 + "version": "1.9.3",
1887 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1888 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1889 + "dev": true,
1890 + "requires": {
1891 + "color-name": "1.1.3"
1892 + }
1893 + },
1894 + "color-name": {
1895 + "version": "1.1.3",
1896 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1897 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1898 + "dev": true
1899 + },
1900 + "string-width": {
1901 + "version": "3.1.0",
1902 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1903 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1904 + "dev": true,
1905 + "requires": {
1906 + "emoji-regex": "^7.0.1",
1907 + "is-fullwidth-code-point": "^2.0.0",
1908 + "strip-ansi": "^5.1.0"
1909 + }
1910 + }
1911 + }
1912 + },
1913 + "wrappy": {
1914 + "version": "1.0.2",
1915 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1916 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1917 + "dev": true
1918 + },
1919 + "write-file-atomic": {
1920 + "version": "3.0.3",
1921 + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
1922 + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
1923 + "dev": true,
1924 + "requires": {
1925 + "imurmurhash": "^0.1.4",
1926 + "is-typedarray": "^1.0.0",
1927 + "signal-exit": "^3.0.2",
1928 + "typedarray-to-buffer": "^3.1.5"
1929 + }
1930 + },
1931 + "xdg-basedir": {
1932 + "version": "4.0.0",
1933 + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
1934 + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
1935 + "dev": true
1936 + },
1937 + "xtend": {
1938 + "version": "4.0.2",
1939 + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
1940 + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
1941 + },
1942 + "y18n": {
1943 + "version": "4.0.1",
1944 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
1945 + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
1946 + "dev": true
1947 + },
1948 + "yargs": {
1949 + "version": "13.3.2",
1950 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
1951 + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
1952 + "dev": true,
1953 + "requires": {
1954 + "cliui": "^5.0.0",
1955 + "find-up": "^3.0.0",
1956 + "get-caller-file": "^2.0.1",
1957 + "require-directory": "^2.1.1",
1958 + "require-main-filename": "^2.0.0",
1959 + "set-blocking": "^2.0.0",
1960 + "string-width": "^3.0.0",
1961 + "which-module": "^2.0.0",
1962 + "y18n": "^4.0.0",
1963 + "yargs-parser": "^13.1.2"
1964 + },
1965 + "dependencies": {
1966 + "string-width": {
1967 + "version": "3.1.0",
1968 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1969 + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1970 + "dev": true,
1971 + "requires": {
1972 + "emoji-regex": "^7.0.1",
1973 + "is-fullwidth-code-point": "^2.0.0",
1974 + "strip-ansi": "^5.1.0"
1975 + }
1976 + }
1977 + }
1978 + },
1979 + "yargs-parser": {
1980 + "version": "13.1.2",
1981 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
1982 + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
1983 + "dev": true,
1984 + "requires": {
1985 + "camelcase": "^5.0.0",
1986 + "decamelize": "^1.2.0"
1987 + }
1988 + }
1989 + }
1990 +}
1 { 1 {
2 "name": "teleprompter-sst", 2 "name": "teleprompter-sst",
3 - "version": "0.1.0", 3 + "version": "1.0.0",
4 - "private": true, 4 + "description": "",
5 - "dependencies": { 5 + "main": "index.js",
6 - "@material-ui/core": "^4.11.0",
7 - "@testing-library/jest-dom": "^5.11.4",
8 - "@testing-library/react": "^11.1.0",
9 - "@testing-library/user-event": "^12.1.10",
10 - "react": "^17.0.1",
11 - "react-dom": "^17.0.1",
12 - "react-scripts": "4.0.1",
13 - "web-vitals": "^0.2.4"
14 - },
15 "scripts": { 6 "scripts": {
16 - "start": "react-scripts start", 7 + "client": "cd client && yarn start",
17 - "build": "react-scripts build", 8 + "server": "nodemon server.js",
18 - "test": "react-scripts test", 9 + "dev": "concurrently --kill-others-on-fail \"yarn server\" \"yarn client\""
19 - "eject": "react-scripts eject"
20 }, 10 },
21 - "eslintConfig": { 11 + "repository": {
22 - "extends": [ 12 + "type": "git",
23 - "react-app", 13 + "url": "http://khuhub.khu.ac.kr/2016110307/Teleprompter-SST.git"
24 - "react-app/jest" 14 + },
25 - ] 15 + "author": "Dongyoung Kwon <ehddud2468@khu.ac.kr>",
16 + "license": "MIT",
17 + "dependencies": {
18 + "body-parser": "^1.19.0",
19 + "express": "^4.17.1",
20 + "multer": "^1.4.2"
26 }, 21 },
27 - "browserslist": { 22 + "devDependencies": {
28 - "production": [ 23 + "concurrently": "^5.3.0",
29 - ">0.2%", 24 + "nodemon": "^2.0.6"
30 - "not dead",
31 - "not op_mini all"
32 - ],
33 - "development": [
34 - "last 1 chrome version",
35 - "last 1 firefox version",
36 - "last 1 safari version"
37 - ]
38 } 25 }
39 } 26 }
......
1 +const fs = require('fs');
2 +const express = require('express');
3 +const bodyParser = require('body-parser');
4 +const app = express();
5 +const port = process.env.PORT || 5000;
6 +
7 +app.use(bodyParser.json());
8 +app.use(bodyParser.urlencoded({ extended: true}));
9 +
10 +// const data = fs.readFileSync('./database.json');
11 +// const conf = JSON.parse(data);
12 +// const mysql = require('mysql');
13 +
14 +
15 +const multer = require('multer');
16 +
17 +// app.get('/api/customers', (req, res) => {
18 +// connection.query(
19 +// "SELECT * FROM course",
20 +// (err, rows, fields) => {
21 +// res.send(rows);
22 +// }
23 +// );
24 +// });
25 +
26 +// app.get('/api/customers/:id', (req, res) => {
27 +// let sql = 'SELECT * FROM course WHERE id=?';
28 +// let params = [req.params.id];
29 +// connection.query(sql, params,
30 +// (err, rows, fields) => {
31 +// res.send(rows);
32 +// }
33 +// );
34 +// });
35 +let scriptReceived = "";
36 +app.get('/api/script', (req, res) => {
37 + res.send(
38 + scriptReceived
39 + )
40 +});
41 +
42 +
43 +app.post('/api/script', (req, res) => {
44 + scriptReceived = req.body.script;
45 +});
46 +
47 +app.listen(port, () => console.log(`Listening on port ${port}`));
...\ No newline at end of file ...\ No newline at end of file
1 -import React from 'react';
2 -import ReactDOM from 'react-dom';
3 -import './index.css';
4 -import App from './App';
5 -import * as serviceWorker from './serviceWorker';
6 -import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
7 -
8 -const theme = createMuiTheme({
9 - typography: {
10 - fontFamily: '"Noto Sans KR", serif',
11 - }
12 -})
13 -
14 -ReactDOM.render(<MuiThemeProvider theme={theme}><App /></MuiThemeProvider>, document.getElementById('root'));
15 -
16 -// If you want your app to work offline and load faster, you can change
17 -// unregister() to register() below. Note this comes with some pitfalls.
18 -// Learn more about service workers: http://bit.ly/CRA-PWA
19 -serviceWorker.unregister();
20 -
21 -// import React from 'react';
22 -// import ReactDOM from 'react-dom';
23 -// import './index.css';
24 -// import App from './App';
25 -// import reportWebVitals from './reportWebVitals';
26 -
27 -// ReactDOM.render(
28 -// <React.StrictMode>
29 -// <App />
30 -// </React.StrictMode>,
31 -// document.getElementById('root')
32 -// );
33 -
34 -// // If you want to start measuring performance in your app, pass a function
35 -// // to log results (for example: reportWebVitals(console.log))
36 -// // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
37 -// reportWebVitals();
This diff could not be displayed because it is too large.
  • ๋ณ€๊ฒฝ ์‚ฌํ•ญ

    1. Express ์ด์šฉํ•ด์„œ Server ๊ตฌ์ถ•
    2. ์ „์ฒด์ ์ธ Front-end ์ˆ˜์ •
      • react-router-dom ์ด์šฉํ•ด์„œ 2 Page๋กœ ๊ตฌ์„ฑ
      • ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ script๋ฅผ Back-end๋กœ ์ „์†กํ•˜๋„๋ก ๊ตฌํ˜„
    Edited