├── .vscode
└── launch.json
├── LICENSE
├── README.md
├── client
├── .gitignore
├── README.md
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── src
│ ├── App.css
│ ├── App.js
│ ├── CreatePost.css
│ ├── CreatePost.js
│ ├── Post.css
│ ├── Post.js
│ ├── Posts.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ └── registerServiceWorker.js
└── yarn.lock
└── server
├── .eslintrc.js
├── .gitignore
├── .prettierrc.json
├── README.md
├── package.json
├── schema.sql
├── src
└── index.js
├── uploads
└── .keep
└── yarn.lock
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 |
5 | {
6 | "type": "node",
7 | "request": "launch",
8 | "name": "Launch Server",
9 | "protocol": "inspector",
10 | "cwd": "${workspaceRoot}/server",
11 | "program": "${workspaceRoot}/server/src/index.js",
12 | "args": [],
13 | "runtimeExecutable": null,
14 | "runtimeArgs": [
15 | "--nolazy"
16 | ],
17 | "env": {
18 | "NODE_ENV": "development",
19 | },
20 | "sourceMaps": true
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Matt Bretl
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # postgraphile-upload-example
2 |
3 | This app demonstrates how to add file upload support to PostGraphile using the [GraphQL Multipart Request Spec](https://github.com/jaydenseric/graphql-multipart-request-spec).
4 |
5 | Server:
6 | - PostGraphile
7 | - [postgraphile-plugin-upload-field](https://github.com/mattbretl/postgraphile-plugin-upload-field)
8 | - [graphql-upload](https://github.com/jaydenseric/graphql-upload)
9 |
10 | Client:
11 | - create-react-app
12 | - [apollo-client](https://github.com/apollographql/apollo-client)
13 | - [apollo-upload-client](https://github.com/jaydenseric/apollo-upload-client)
14 |
15 | ## Quick Start
16 |
17 | Clone this repo.
18 |
19 | In one terminal:
20 |
21 | ```bash
22 | cd server
23 | createdb upload_example
24 | psql -d upload_example -f schema.sql
25 | yarn
26 | yarn start
27 | ```
28 |
29 | In another terminal:
30 |
31 | ```bash
32 | cd client
33 | yarn
34 | yarn start
35 | ```
36 |
37 | The app should now be fully functional at localhost:3000. Uploaded files will be stored locally in `/server/uploads`.
38 |
39 | ## How does it work?
40 |
41 | The [server](https://github.com/mattbretl/postgraphile-upload-example/blob/master/server/src/index.js) code should be relatively straightforward if you're familiar with PostGraphile. The [graphql-upload](https://github.com/jaydenseric/graphql-upload) middleware handles the multipart requests using [busboy](https://github.com/mscdex/busboy). The [postgraphile-plugin-upload-field](https://github.com/mattbretl/postgraphile-plugin-upload-field) plugin for PostGraphile is minimally documented, but briefly, `match` is a function used to specify the file upload metadata columns and `resolve` is a function that handles the actual file upload stream.
42 |
43 | The client is full of React/Apollo boilerplate. The unique parts are:
44 | - [These lines in clients/src/index.js](https://github.com/mattbretl/postgraphile-upload-example/blob/master/client/src/index.js#L26-28) where createUploadLink replaces the usual createHttpLink in the ApolloClient constructor; and
45 | - [All of client/src/CreatePost.js](https://github.com/mattbretl/postgraphile-upload-example/blob/master/client/src/CreatePost.js), which is the actual upload form. It uses the `Query` and `Mutation` components that were [added in React Apollo 2.1](https://dev-blog.apollodata.com/introducing-react-apollo-2-1-c837cc23d926).
46 |
47 | ## Preserving metadata
48 |
49 | By default, the example app only stores the local file path to Postgres. To preserve additional metadata, change the `header_image_file` column type to JSONB and replace the resolveUpload function with the following:
50 |
51 | ```js
52 | async function resolveUpload(upload) {
53 | const { filename, mimetype, encoding, createReadStream } = upload;
54 | const stream = createReadStream();
55 | // Save file to the local filesystem
56 | const { id, path } = await saveLocal({ stream, filename });
57 | // Return metadata to save it to Postgres
58 | return {
59 | id,
60 | path,
61 | filename,
62 | mimetype,
63 | encoding
64 | };
65 | }
66 | ```
67 |
68 | After making this change, you'll also need to update the client app to use the `path` property of the object.
69 |
70 | For a more robust solution, consider using something like [postgraphile-plugin-derived-field](https://github.com/mattbretl/postgraphile-plugin-derived-field) to expose URLs through GraphQL instead of exposing the raw path/metadata.
71 |
72 | If you're streaming file uploads to an object storage service such as S3, you can also use the derived field plugin to generate pre-signed URLs for clients.
--------------------------------------------------------------------------------
/client/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/ignore-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 |
6 | # testing
7 | /coverage
8 |
9 | # production
10 | /build
11 |
12 | # misc
13 | .DS_Store
14 | .env.local
15 | .env.development.local
16 | .env.test.local
17 | .env.production.local
18 |
19 | npm-debug.log*
20 | yarn-debug.log*
21 | yarn-error.log*
22 |
--------------------------------------------------------------------------------
/client/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "postgraphile-upload-example-client",
3 | "version": "1.0.0-alpha.0",
4 | "private": true,
5 | "author": "Matt Bretl",
6 | "license": "MIT",
7 | "dependencies": {
8 | "apollo-cache-inmemory": "^1.6.2",
9 | "apollo-client": "^2.6.3",
10 | "apollo-link": "^1.2.12",
11 | "apollo-link-error": "^1.1.11",
12 | "apollo-link-http": "^1.5.15",
13 | "apollo-upload-client": "^10.0.1",
14 | "graphql": "^14.4.2",
15 | "graphql-tag": "^2.10.1",
16 | "react": "^16.8.6",
17 | "react-apollo": "^2.5.8",
18 | "react-dom": "^16.8.6",
19 | "react-scripts": "3.0.1"
20 | },
21 | "scripts": {
22 | "start": "react-scripts start",
23 | "build": "react-scripts build",
24 | "test": "react-scripts test",
25 | "eject": "react-scripts eject"
26 | },
27 | "eslintConfig": {
28 | "extends": "react-app"
29 | },
30 | "browserslist": [
31 | ">0.2%",
32 | "not dead",
33 | "not ie <= 11",
34 | "not op_mini all"
35 | ]
36 | }
37 |
--------------------------------------------------------------------------------
/client/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/graphile-contrib/postgraphile-upload-example/1fd17352f85d103c52b398ae477c59ce7aef9a46/client/public/favicon.ico
--------------------------------------------------------------------------------
/client/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
22 | React App
23 |
24 |
25 |
26 | You need to enable JavaScript to run this app.
27 |
28 |
29 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/client/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": "./index.html",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/client/src/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: whitesmoke;
3 | }
4 |
5 | .App-header {
6 | background-color: #222;
7 | padding: 20px;
8 | color: white;
9 | }
10 |
11 | .App-title {
12 | font-size: 1.5em;
13 | }
14 |
15 | .create-post {
16 | float: left;
17 | margin: 10px;
18 | padding: 20px;
19 | background: white;
20 | border: 1px solid silver;
21 | border-bottom: 2px solid silver;
22 | border-radius: 3px;
23 | }
24 |
25 | .posts {
26 | display: grid;
27 | grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
28 | }
--------------------------------------------------------------------------------
/client/src/App.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import "./App.css";
3 | import CreatePost from "./CreatePost";
4 | import Posts from "./Posts";
5 |
6 | class App extends Component {
7 | render() {
8 | return (
9 |
22 | );
23 | }
24 | }
25 |
26 | export default App;
27 |
--------------------------------------------------------------------------------
/client/src/CreatePost.css:
--------------------------------------------------------------------------------
1 | .create-post-header {
2 | font-size: 1.2em;
3 | font-weight: bold;
4 | }
5 |
6 | form {
7 | display: grid;
8 | align-items: center;
9 | margin-top: 1rem;
10 | }
11 |
12 | @media (min-width: 400px) {
13 | form {
14 | grid-template-columns: auto 1fr;
15 | grid-gap: 10px;
16 | }
17 |
18 | label {
19 | text-align: right;
20 | grid-column: 1 / 2;
21 | }
22 |
23 | input,
24 | button,
25 | label.input {
26 | grid-column: 2 / 3;
27 | }
28 | }
29 |
30 | input[type="text"],
31 | select,
32 | textarea,
33 | button {
34 | padding: 4px;
35 | border: 1px solid #ccc;
36 | border-radius: 5px;
37 | background: white;
38 | }
39 |
40 | input[type="file"] {
41 | position: absolute;
42 | opacity: 0;
43 | top: 0;
44 | left: 0;
45 | width: 100%;
46 | height: 100%;
47 | cursor: pointer;
48 | }
49 |
50 | label.input {
51 | position: relative;
52 | }
53 |
54 | form button {
55 | border: 1px solid #ccc;
56 | padding: 4px;
57 | width: 100%;
58 | cursor: pointer;
59 | }
60 |
61 | form button input:disabled {
62 | background: inherit;
63 | color: inherit;
64 | border: 0;
65 | text-align: center;
66 | cursor: pointer;
67 | }
68 |
69 | form.locked {
70 | pointer-events: none;
71 | }
72 |
73 | @keyframes spinner {
74 | to {transform: rotate(360deg);}
75 | }
76 |
77 | form button[type="submit"].spinner {
78 | position: relative;
79 | }
80 |
81 | form button[type="submit"].spinner:after {
82 | content: '';
83 | box-sizing: border-box;
84 | position: absolute;
85 | top: 50%;
86 | right: 10px;
87 | width: 20px;
88 | height: 20px;
89 | margin-top: -10px;
90 | margin-left: -10px;
91 | border-radius: 50%;
92 | border: 2px solid #ccc;
93 | border-top-color: #333;
94 | animation: spinner 0.7s linear infinite;
95 | z-index: 2;
96 | opacity: 0.0;
97 | transition: opacity .5s ease;
98 | }
99 |
100 | form.locked button[type="submit"].spinner:after {
101 | opacity: 0.5;
102 | }
103 |
104 | form.locked button[type="submit"] {
105 | background-color: gainsboro;
106 | border-color: gainsboro;
107 | }
108 |
109 | /* Firefox fix */
110 | button::-moz-focus-inner {
111 | border: 0;
112 | }
--------------------------------------------------------------------------------
/client/src/CreatePost.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import gql from "graphql-tag";
3 | import { Mutation } from "react-apollo";
4 | import "./CreatePost.css";
5 |
6 | const CREATE_POST = gql`
7 | mutation createPost($input: CreatePostInput!) {
8 | createPost(input: $input) {
9 | post {
10 | headline
11 | body
12 | headerImageFile
13 | }
14 | }
15 | }
16 | `;
17 |
18 | const GET_POSTS = gql`
19 | query allPosts {
20 | allPosts(first: 50) {
21 | nodes {
22 | id
23 | headline
24 | headerImageFile
25 | }
26 | }
27 | }
28 | `;
29 |
30 | const CreatePost = () => {
31 | return (
32 | {
35 | document.getElementsByTagName("form")[0].reset();
36 | }}
37 | refetchQueries={[{ query: GET_POSTS }]}
38 | >
39 | {(createPost, { data, loading, error }) => (
40 |
41 |
Create Post
42 |
108 | {error &&
Error :( Please try again
}
109 |
110 | )}
111 |
112 | );
113 | };
114 |
115 | export default CreatePost;
116 |
--------------------------------------------------------------------------------
/client/src/Post.css:
--------------------------------------------------------------------------------
1 | div.post {
2 | margin: 10px;
3 | padding: 10px;
4 | background: white;
5 | border: 1px solid silver;
6 | border-bottom: 2px solid silver;
7 | border-radius: 3px;
8 | }
9 |
10 | .headline {
11 | font-size: 1em;
12 | font-weight: bold;
13 | }
14 |
15 | img {
16 | width: 100%;
17 | padding-top: 10px;
18 | }
--------------------------------------------------------------------------------
/client/src/Post.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import './Post.css';
3 |
4 | const Post = ({id, headline, headerImageFile}) => (
5 |
6 |
{headline}
7 | {headerImageFile ?
: null}
8 |
9 | )
10 |
11 | export default Post;
--------------------------------------------------------------------------------
/client/src/Posts.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import gql from 'graphql-tag';
3 | import { Query } from 'react-apollo';
4 | import Post from './Post';
5 |
6 | const GET_POSTS = gql`
7 | query allPosts {
8 | allPosts(first: 50) {
9 | nodes {
10 | id
11 | headline
12 | headerImageFile
13 | }
14 | }
15 | }
16 | `;
17 |
18 | const Posts = () => (
19 |
20 | {({ loading, error, data }) => {
21 | if (loading) return Loading...
;
22 | if (error) return Error :(
;
23 |
24 | return (
25 | data.allPosts.nodes.map(post => Post(post))
26 | )
27 | }}
28 |
29 | )
30 |
31 | export default Posts;
--------------------------------------------------------------------------------
/client/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: sans-serif;
5 | }
6 |
--------------------------------------------------------------------------------
/client/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import registerServiceWorker from './registerServiceWorker';
6 | import { ApolloProvider } from 'react-apollo';
7 | import { ApolloClient } from 'apollo-client';
8 | import { InMemoryCache } from 'apollo-cache-inmemory';
9 | //import { HttpLink } from 'apollo-link-http';
10 | import { onError } from 'apollo-link-error';
11 | import { ApolloLink } from 'apollo-link';
12 |
13 | import { createUploadLink } from 'apollo-upload-client'
14 |
15 | const client = new ApolloClient({
16 | link: ApolloLink.from([
17 | onError(({ graphQLErrors, networkError }) => {
18 | if (graphQLErrors)
19 | graphQLErrors.map(({ message, locations, path }) =>
20 | console.log(
21 | `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`,
22 | ),
23 | );
24 | if (networkError) console.log(`[Network error]: ${networkError}`);
25 | }),
26 | createUploadLink({
27 | uri: 'http://localhost:5000/graphql'
28 | })
29 | ]),
30 | cache: new InMemoryCache()
31 | });
32 |
33 | const ApolloApp = AppComponent => (
34 |
35 |
36 |
37 | );
38 |
39 | ReactDOM.render(ApolloApp(App), document.getElementById('root'));
40 | registerServiceWorker();
41 |
--------------------------------------------------------------------------------
/client/src/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/src/registerServiceWorker.js:
--------------------------------------------------------------------------------
1 | // In production, we register a service worker to serve assets from local cache.
2 |
3 | // This lets the app load faster on subsequent visits in production, and gives
4 | // it offline capabilities. However, it also means that developers (and users)
5 | // will only see deployed updates on the "N+1" visit to a page, since previously
6 | // cached resources are updated in the background.
7 |
8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy.
9 | // This link also includes instructions on opting out of this behavior.
10 |
11 | const isLocalhost = Boolean(
12 | window.location.hostname === 'localhost' ||
13 | // [::1] is the IPv6 localhost address.
14 | window.location.hostname === '[::1]' ||
15 | // 127.0.0.1/8 is considered localhost for IPv4.
16 | window.location.hostname.match(
17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
18 | )
19 | );
20 |
21 | export default function register() {
22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
23 | // The URL constructor is available in all browsers that support SW.
24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location);
25 | if (publicUrl.origin !== window.location.origin) {
26 | // Our service worker won't work if PUBLIC_URL is on a different origin
27 | // from what our page is served on. This might happen if a CDN is used to
28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
29 | return;
30 | }
31 |
32 | window.addEventListener('load', () => {
33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
34 |
35 | if (isLocalhost) {
36 | // This is running on localhost. Lets check if a service worker still exists or not.
37 | checkValidServiceWorker(swUrl);
38 |
39 | // Add some additional logging to localhost, pointing developers to the
40 | // service worker/PWA documentation.
41 | navigator.serviceWorker.ready.then(() => {
42 | console.log(
43 | 'This web app is being served cache-first by a service ' +
44 | 'worker. To learn more, visit https://goo.gl/SC7cgQ'
45 | );
46 | });
47 | } else {
48 | // Is not local host. Just register service worker
49 | registerValidSW(swUrl);
50 | }
51 | });
52 | }
53 | }
54 |
55 | function registerValidSW(swUrl) {
56 | navigator.serviceWorker
57 | .register(swUrl)
58 | .then(registration => {
59 | registration.onupdatefound = () => {
60 | const installingWorker = registration.installing;
61 | installingWorker.onstatechange = () => {
62 | if (installingWorker.state === 'installed') {
63 | if (navigator.serviceWorker.controller) {
64 | // At this point, the old content will have been purged and
65 | // the fresh content will have been added to the cache.
66 | // It's the perfect time to display a "New content is
67 | // available; please refresh." message in your web app.
68 | console.log('New content is available; please refresh.');
69 | } else {
70 | // At this point, everything has been precached.
71 | // It's the perfect time to display a
72 | // "Content is cached for offline use." message.
73 | console.log('Content is cached for offline use.');
74 | }
75 | }
76 | };
77 | };
78 | })
79 | .catch(error => {
80 | console.error('Error during service worker registration:', error);
81 | });
82 | }
83 |
84 | function checkValidServiceWorker(swUrl) {
85 | // Check if the service worker can be found. If it can't reload the page.
86 | fetch(swUrl)
87 | .then(response => {
88 | // Ensure service worker exists, and that we really are getting a JS file.
89 | if (
90 | response.status === 404 ||
91 | response.headers.get('content-type').indexOf('javascript') === -1
92 | ) {
93 | // No service worker found. Probably a different app. Reload the page.
94 | navigator.serviceWorker.ready.then(registration => {
95 | registration.unregister().then(() => {
96 | window.location.reload();
97 | });
98 | });
99 | } else {
100 | // Service worker found. Proceed as normal.
101 | registerValidSW(swUrl);
102 | }
103 | })
104 | .catch(() => {
105 | console.log(
106 | 'No internet connection found. App is running in offline mode.'
107 | );
108 | });
109 | }
110 |
111 | export function unregister() {
112 | if ('serviceWorker' in navigator) {
113 | navigator.serviceWorker.ready.then(registration => {
114 | registration.unregister();
115 | });
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/server/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | node: true,
4 | es6: true,
5 | },
6 | parserOptions: {
7 | ecmaVersion: 9,
8 | },
9 | extends: ["eslint:recommended", "plugin:prettier/recommended"],
10 | };
11 |
--------------------------------------------------------------------------------
/server/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/server/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5"
3 | }
4 |
--------------------------------------------------------------------------------
/server/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/graphile-contrib/postgraphile-upload-example/1fd17352f85d103c52b398ae477c59ce7aef9a46/server/README.md
--------------------------------------------------------------------------------
/server/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "postgraphile-upload-example-server",
3 | "version": "1.0.0-alpha.1",
4 | "private": true,
5 | "main": "index.js",
6 | "scripts": {
7 | "lint": "eslint src/**/*.js",
8 | "start": "node src/index.js"
9 | },
10 | "author": "Matt Bretl",
11 | "license": "MIT",
12 | "dependencies": {
13 | "express": "^4.16.4",
14 | "graphql-upload": "^10.0.0",
15 | "postgraphile": "^4.0.0",
16 | "postgraphile-plugin-upload-field": "^1.0.0-alpha.10"
17 | },
18 | "devDependencies": {
19 | "eslint": "^5.16.0",
20 | "eslint-config-prettier": "^4.0.0",
21 | "eslint-plugin-prettier": "^3.0.1",
22 | "prettier": "1.16.4"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/server/schema.sql:
--------------------------------------------------------------------------------
1 | create table public.post (
2 | id serial primary key,
3 | headline text,
4 | body text,
5 | header_image_file text
6 | );
--------------------------------------------------------------------------------
/server/src/index.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 | const express = require("express");
4 | const { postgraphile } = require("postgraphile");
5 | const PostGraphileUploadFieldPlugin = require("postgraphile-plugin-upload-field");
6 | const { graphqlUploadExpress } = require("graphql-upload");
7 |
8 | const app = express();
9 |
10 | const UPLOAD_DIR_NAME = "uploads";
11 |
12 | // Serve uploads as static resources
13 | app.use(`/${UPLOAD_DIR_NAME}`, express.static(path.resolve(UPLOAD_DIR_NAME)));
14 |
15 | // Attach multipart request handling middleware
16 | app.use(graphqlUploadExpress());
17 |
18 | app.use(
19 | postgraphile("postgres://localhost:5432/upload_example", "public", {
20 | graphiql: true,
21 | enableCors: true,
22 | appendPlugins: [PostGraphileUploadFieldPlugin],
23 | graphileBuildOptions: {
24 | uploadFieldDefinitions: [
25 | {
26 | match: ({ column }) => column === "header_image_file",
27 | resolve: resolveUpload,
28 | },
29 | ],
30 | },
31 | })
32 | );
33 |
34 | app.listen(5000, () => {
35 | // eslint-disable-next-line
36 | console.log("Server listening on port 5000");
37 | });
38 |
39 | async function resolveUpload(upload) {
40 | const { filename, createReadStream } = upload;
41 | const stream = createReadStream();
42 | // Save file to the local filesystem
43 | const { filepath } = await saveLocal({ stream, filename });
44 | // Return metadata to save it to Postgres
45 | return filepath;
46 | }
47 |
48 | function saveLocal({ stream, filename }) {
49 | const timestamp = new Date().toISOString().replace(/\D/g, "");
50 | const id = `${timestamp}_${filename}`;
51 | const filepath = path.join(UPLOAD_DIR_NAME, id);
52 | const fsPath = path.join(process.cwd(), filepath);
53 | return new Promise((resolve, reject) =>
54 | stream
55 | .on("error", error => {
56 | if (stream.truncated)
57 | // Delete the truncated file
58 | fs.unlinkSync(fsPath);
59 | reject(error);
60 | })
61 | .on("end", () => resolve({ id, filepath }))
62 | .pipe(fs.createWriteStream(fsPath))
63 | );
64 | }
65 |
--------------------------------------------------------------------------------
/server/uploads/.keep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/graphile-contrib/postgraphile-upload-example/1fd17352f85d103c52b398ae477c59ce7aef9a46/server/uploads/.keep
--------------------------------------------------------------------------------
/server/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0":
6 | version "7.8.3"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
8 | integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
9 | dependencies:
10 | "@babel/highlight" "^7.8.3"
11 |
12 | "@babel/helper-validator-identifier@^7.9.0":
13 | version "7.9.5"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
15 | integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
16 |
17 | "@babel/highlight@^7.8.3":
18 | version "7.9.0"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
20 | integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.9.0"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@graphile/lru@4.5.0":
27 | version "4.5.0"
28 | resolved "https://registry.yarnpkg.com/@graphile/lru/-/lru-4.5.0.tgz#e8fe036d322dfe1715675aab171979981e28ac9e"
29 | integrity sha512-OoIgewLowjegJzz3tpcRE5LpQKqsap1ETFaZtC1r9p36h5ieUJnWTxCTpB7XIsU9muMTt7MMt8x0E5apS47QIQ==
30 |
31 | "@types/accepts@*":
32 | version "1.3.5"
33 | resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575"
34 | integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==
35 | dependencies:
36 | "@types/node" "*"
37 |
38 | "@types/body-parser@*":
39 | version "1.19.0"
40 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
41 | integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==
42 | dependencies:
43 | "@types/connect" "*"
44 | "@types/node" "*"
45 |
46 | "@types/connect@*":
47 | version "3.4.33"
48 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
49 | integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==
50 | dependencies:
51 | "@types/node" "*"
52 |
53 | "@types/content-disposition@*":
54 | version "0.5.3"
55 | resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96"
56 | integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==
57 |
58 | "@types/cookies@*":
59 | version "0.7.4"
60 | resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b"
61 | integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==
62 | dependencies:
63 | "@types/connect" "*"
64 | "@types/express" "*"
65 | "@types/keygrip" "*"
66 | "@types/node" "*"
67 |
68 | "@types/express-serve-static-core@*":
69 | version "4.17.5"
70 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz#a00ac7dadd746ae82477443e4d480a6a93ea083c"
71 | integrity sha512-578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw==
72 | dependencies:
73 | "@types/node" "*"
74 | "@types/range-parser" "*"
75 |
76 | "@types/express@*":
77 | version "4.17.6"
78 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.6.tgz#6bce49e49570507b86ea1b07b806f04697fac45e"
79 | integrity sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==
80 | dependencies:
81 | "@types/body-parser" "*"
82 | "@types/express-serve-static-core" "*"
83 | "@types/qs" "*"
84 | "@types/serve-static" "*"
85 |
86 | "@types/http-assert@*":
87 | version "1.5.1"
88 | resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b"
89 | integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==
90 |
91 | "@types/json5@^0.0.30":
92 | version "0.0.30"
93 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.30.tgz#44cb52f32a809734ca562e685c6473b5754a7818"
94 | integrity sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==
95 |
96 | "@types/jsonwebtoken@^8.3.2":
97 | version "8.3.9"
98 | resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.3.9.tgz#48da9a49997e4eb046733e6878f583d7448f0594"
99 | integrity sha512-00rI8GbOKuRtoYxltFSRTVUXCRLbuYwln2/nUMPtFU9JGS7if+nnmLjeoFGmqsNCmblPLAaeQ/zMLVsHr6T5bg==
100 | dependencies:
101 | "@types/node" "*"
102 |
103 | "@types/keygrip@*":
104 | version "1.0.2"
105 | resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72"
106 | integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==
107 |
108 | "@types/koa-compose@*":
109 | version "3.2.5"
110 | resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d"
111 | integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==
112 | dependencies:
113 | "@types/koa" "*"
114 |
115 | "@types/koa@*", "@types/koa@^2.0.44":
116 | version "2.11.3"
117 | resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.11.3.tgz#540ece376581b12beadf9a417dd1731bc31c16ce"
118 | integrity sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q==
119 | dependencies:
120 | "@types/accepts" "*"
121 | "@types/content-disposition" "*"
122 | "@types/cookies" "*"
123 | "@types/http-assert" "*"
124 | "@types/keygrip" "*"
125 | "@types/koa-compose" "*"
126 | "@types/node" "*"
127 |
128 | "@types/mime@*":
129 | version "2.0.1"
130 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d"
131 | integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==
132 |
133 | "@types/node@*":
134 | version "13.13.4"
135 | resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.4.tgz#1581d6c16e3d4803eb079c87d4ac893ee7501c2c"
136 | integrity sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA==
137 |
138 | "@types/pg-types@*":
139 | version "1.11.5"
140 | resolved "https://registry.yarnpkg.com/@types/pg-types/-/pg-types-1.11.5.tgz#1eebbe62b6772fcc75c18957a90f933d155e005b"
141 | integrity sha512-L8ogeT6vDzT1vxlW3KITTCt+BVXXVkLXfZ/XNm6UqbcJgxf+KPO7yjWx7dQQE8RW07KopL10x2gNMs41+IkMGQ==
142 |
143 | "@types/pg@>=6 <8", "@types/pg@^7.4.10":
144 | version "7.14.3"
145 | resolved "https://registry.yarnpkg.com/@types/pg/-/pg-7.14.3.tgz#eb166e4f4287923890b10ed20371f937938cb995"
146 | integrity sha512-go5zddQ1FrUQHeBvqPzQ1svKo4KKucSwvqLsvwc/EIuQ9sxDA21b68xc/RwhzAK5pPCnez8NrkYatFIGdJBVvA==
147 | dependencies:
148 | "@types/node" "*"
149 | "@types/pg-types" "*"
150 |
151 | "@types/qs@*":
152 | version "6.9.1"
153 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.1.tgz#937fab3194766256ee09fcd40b781740758617e7"
154 | integrity sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw==
155 |
156 | "@types/range-parser@*":
157 | version "1.2.3"
158 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
159 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
160 |
161 | "@types/serve-static@*":
162 | version "1.13.3"
163 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1"
164 | integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==
165 | dependencies:
166 | "@types/express-serve-static-core" "*"
167 | "@types/mime" "*"
168 |
169 | "@types/ws@^6.0.1":
170 | version "6.0.4"
171 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.4.tgz#7797707c8acce8f76d8c34b370d4645b70421ff1"
172 | integrity sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==
173 | dependencies:
174 | "@types/node" "*"
175 |
176 | accepts@~1.3.7:
177 | version "1.3.7"
178 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
179 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
180 | dependencies:
181 | mime-types "~2.1.24"
182 | negotiator "0.6.2"
183 |
184 | acorn-jsx@^5.0.0:
185 | version "5.2.0"
186 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
187 | integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
188 |
189 | acorn@^6.0.7:
190 | version "6.4.1"
191 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
192 | integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
193 |
194 | ajv@^6.10.2, ajv@^6.9.1:
195 | version "6.12.2"
196 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
197 | integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==
198 | dependencies:
199 | fast-deep-equal "^3.1.1"
200 | fast-json-stable-stringify "^2.0.0"
201 | json-schema-traverse "^0.4.1"
202 | uri-js "^4.2.2"
203 |
204 | ansi-escapes@^3.2.0:
205 | version "3.2.0"
206 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
207 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
208 |
209 | ansi-regex@^3.0.0:
210 | version "3.0.0"
211 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
212 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
213 |
214 | ansi-regex@^4.1.0:
215 | version "4.1.0"
216 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
217 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
218 |
219 | ansi-styles@^3.2.0, ansi-styles@^3.2.1:
220 | version "3.2.1"
221 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
222 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
223 | dependencies:
224 | color-convert "^1.9.0"
225 |
226 | argparse@^1.0.7:
227 | version "1.0.10"
228 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
229 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
230 | dependencies:
231 | sprintf-js "~1.0.2"
232 |
233 | array-flatten@1.1.1:
234 | version "1.1.1"
235 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
236 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
237 |
238 | astral-regex@^1.0.0:
239 | version "1.0.0"
240 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
241 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
242 |
243 | async-limiter@~1.0.0:
244 | version "1.0.1"
245 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
246 | integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
247 |
248 | backo2@^1.0.2:
249 | version "1.0.2"
250 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
251 | integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
252 |
253 | balanced-match@^1.0.0:
254 | version "1.0.0"
255 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
256 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
257 |
258 | body-parser@1.19.0, body-parser@^1.15.2:
259 | version "1.19.0"
260 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
261 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
262 | dependencies:
263 | bytes "3.1.0"
264 | content-type "~1.0.4"
265 | debug "2.6.9"
266 | depd "~1.1.2"
267 | http-errors "1.7.2"
268 | iconv-lite "0.4.24"
269 | on-finished "~2.3.0"
270 | qs "6.7.0"
271 | raw-body "2.4.0"
272 | type-is "~1.6.17"
273 |
274 | brace-expansion@^1.1.7:
275 | version "1.1.11"
276 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
277 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
278 | dependencies:
279 | balanced-match "^1.0.0"
280 | concat-map "0.0.1"
281 |
282 | buffer-equal-constant-time@1.0.1:
283 | version "1.0.1"
284 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
285 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
286 |
287 | buffer-writer@2.0.0:
288 | version "2.0.0"
289 | resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
290 | integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
291 |
292 | busboy@^0.3.1:
293 | version "0.3.1"
294 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b"
295 | integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==
296 | dependencies:
297 | dicer "0.3.0"
298 |
299 | bytes@3.1.0:
300 | version "3.1.0"
301 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
302 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
303 |
304 | callsites@^3.0.0:
305 | version "3.1.0"
306 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
307 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
308 |
309 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
310 | version "2.4.2"
311 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
312 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
313 | dependencies:
314 | ansi-styles "^3.2.1"
315 | escape-string-regexp "^1.0.5"
316 | supports-color "^5.3.0"
317 |
318 | chardet@^0.7.0:
319 | version "0.7.0"
320 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
321 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
322 |
323 | cli-cursor@^2.1.0:
324 | version "2.1.0"
325 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
326 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
327 | dependencies:
328 | restore-cursor "^2.0.0"
329 |
330 | cli-width@^2.0.0:
331 | version "2.2.1"
332 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
333 | integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
334 |
335 | color-convert@^1.9.0:
336 | version "1.9.3"
337 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
338 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
339 | dependencies:
340 | color-name "1.1.3"
341 |
342 | color-name@1.1.3:
343 | version "1.1.3"
344 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
345 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
346 |
347 | commander@^2.19.0:
348 | version "2.20.3"
349 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
350 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
351 |
352 | concat-map@0.0.1:
353 | version "0.0.1"
354 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
355 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
356 |
357 | content-disposition@0.5.3:
358 | version "0.5.3"
359 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
360 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
361 | dependencies:
362 | safe-buffer "5.1.2"
363 |
364 | content-type@~1.0.4:
365 | version "1.0.4"
366 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
367 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
368 |
369 | cookie-signature@1.0.6:
370 | version "1.0.6"
371 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
372 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
373 |
374 | cookie@0.4.0:
375 | version "0.4.0"
376 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
377 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
378 |
379 | cross-spawn@^6.0.5:
380 | version "6.0.5"
381 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
382 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
383 | dependencies:
384 | nice-try "^1.0.4"
385 | path-key "^2.0.1"
386 | semver "^5.5.0"
387 | shebang-command "^1.2.0"
388 | which "^1.2.9"
389 |
390 | debug@2.6.9:
391 | version "2.6.9"
392 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
393 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
394 | dependencies:
395 | ms "2.0.0"
396 |
397 | "debug@>=3 <5", debug@^4.0.1, debug@^4.1.1:
398 | version "4.1.1"
399 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
400 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
401 | dependencies:
402 | ms "^2.1.1"
403 |
404 | deep-is@~0.1.3:
405 | version "0.1.3"
406 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
407 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
408 |
409 | depd@~1.1.2:
410 | version "1.1.2"
411 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
412 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
413 |
414 | destroy@~1.0.4:
415 | version "1.0.4"
416 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
417 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
418 |
419 | dicer@0.3.0:
420 | version "0.3.0"
421 | resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872"
422 | integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==
423 | dependencies:
424 | streamsearch "0.1.2"
425 |
426 | doctrine@^3.0.0:
427 | version "3.0.0"
428 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
429 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
430 | dependencies:
431 | esutils "^2.0.2"
432 |
433 | ecdsa-sig-formatter@1.0.11:
434 | version "1.0.11"
435 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
436 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
437 | dependencies:
438 | safe-buffer "^5.0.1"
439 |
440 | ee-first@1.1.1:
441 | version "1.1.1"
442 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
443 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
444 |
445 | emoji-regex@^7.0.1:
446 | version "7.0.3"
447 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
448 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
449 |
450 | encodeurl@~1.0.2:
451 | version "1.0.2"
452 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
453 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
454 |
455 | escape-html@~1.0.3:
456 | version "1.0.3"
457 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
458 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
459 |
460 | escape-string-regexp@^1.0.5:
461 | version "1.0.5"
462 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
463 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
464 |
465 | eslint-config-prettier@^4.0.0:
466 | version "4.3.0"
467 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.3.0.tgz#c55c1fcac8ce4518aeb77906984e134d9eb5a4f0"
468 | integrity sha512-sZwhSTHVVz78+kYD3t5pCWSYEdVSBR0PXnwjDRsUs8ytIrK8PLXw+6FKp8r3Z7rx4ZszdetWlXYKOHoUrrwPlA==
469 | dependencies:
470 | get-stdin "^6.0.0"
471 |
472 | eslint-plugin-prettier@^3.0.1:
473 | version "3.1.3"
474 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz#ae116a0fc0e598fdae48743a4430903de5b4e6ca"
475 | integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==
476 | dependencies:
477 | prettier-linter-helpers "^1.0.0"
478 |
479 | eslint-scope@^4.0.3:
480 | version "4.0.3"
481 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
482 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
483 | dependencies:
484 | esrecurse "^4.1.0"
485 | estraverse "^4.1.1"
486 |
487 | eslint-utils@^1.3.1:
488 | version "1.4.3"
489 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
490 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
491 | dependencies:
492 | eslint-visitor-keys "^1.1.0"
493 |
494 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
495 | version "1.1.0"
496 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
497 | integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
498 |
499 | eslint@^5.16.0:
500 | version "5.16.0"
501 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
502 | integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
503 | dependencies:
504 | "@babel/code-frame" "^7.0.0"
505 | ajv "^6.9.1"
506 | chalk "^2.1.0"
507 | cross-spawn "^6.0.5"
508 | debug "^4.0.1"
509 | doctrine "^3.0.0"
510 | eslint-scope "^4.0.3"
511 | eslint-utils "^1.3.1"
512 | eslint-visitor-keys "^1.0.0"
513 | espree "^5.0.1"
514 | esquery "^1.0.1"
515 | esutils "^2.0.2"
516 | file-entry-cache "^5.0.1"
517 | functional-red-black-tree "^1.0.1"
518 | glob "^7.1.2"
519 | globals "^11.7.0"
520 | ignore "^4.0.6"
521 | import-fresh "^3.0.0"
522 | imurmurhash "^0.1.4"
523 | inquirer "^6.2.2"
524 | js-yaml "^3.13.0"
525 | json-stable-stringify-without-jsonify "^1.0.1"
526 | levn "^0.3.0"
527 | lodash "^4.17.11"
528 | minimatch "^3.0.4"
529 | mkdirp "^0.5.1"
530 | natural-compare "^1.4.0"
531 | optionator "^0.8.2"
532 | path-is-inside "^1.0.2"
533 | progress "^2.0.0"
534 | regexpp "^2.0.1"
535 | semver "^5.5.1"
536 | strip-ansi "^4.0.0"
537 | strip-json-comments "^2.0.1"
538 | table "^5.2.3"
539 | text-table "^0.2.0"
540 |
541 | espree@^5.0.1:
542 | version "5.0.1"
543 | resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
544 | integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
545 | dependencies:
546 | acorn "^6.0.7"
547 | acorn-jsx "^5.0.0"
548 | eslint-visitor-keys "^1.0.0"
549 |
550 | esprima@^4.0.0:
551 | version "4.0.1"
552 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
553 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
554 |
555 | esquery@^1.0.1:
556 | version "1.3.1"
557 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
558 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
559 | dependencies:
560 | estraverse "^5.1.0"
561 |
562 | esrecurse@^4.1.0:
563 | version "4.2.1"
564 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
565 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
566 | dependencies:
567 | estraverse "^4.1.0"
568 |
569 | estraverse@^4.1.0, estraverse@^4.1.1:
570 | version "4.3.0"
571 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
572 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
573 |
574 | estraverse@^5.1.0:
575 | version "5.1.0"
576 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
577 | integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
578 |
579 | esutils@^2.0.2:
580 | version "2.0.3"
581 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
582 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
583 |
584 | etag@~1.8.1:
585 | version "1.8.1"
586 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
587 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
588 |
589 | eventemitter3@^3.1.0:
590 | version "3.1.2"
591 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
592 | integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
593 |
594 | express@^4.16.4:
595 | version "4.17.1"
596 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
597 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
598 | dependencies:
599 | accepts "~1.3.7"
600 | array-flatten "1.1.1"
601 | body-parser "1.19.0"
602 | content-disposition "0.5.3"
603 | content-type "~1.0.4"
604 | cookie "0.4.0"
605 | cookie-signature "1.0.6"
606 | debug "2.6.9"
607 | depd "~1.1.2"
608 | encodeurl "~1.0.2"
609 | escape-html "~1.0.3"
610 | etag "~1.8.1"
611 | finalhandler "~1.1.2"
612 | fresh "0.5.2"
613 | merge-descriptors "1.0.1"
614 | methods "~1.1.2"
615 | on-finished "~2.3.0"
616 | parseurl "~1.3.3"
617 | path-to-regexp "0.1.7"
618 | proxy-addr "~2.0.5"
619 | qs "6.7.0"
620 | range-parser "~1.2.1"
621 | safe-buffer "5.1.2"
622 | send "0.17.1"
623 | serve-static "1.14.1"
624 | setprototypeof "1.1.1"
625 | statuses "~1.5.0"
626 | type-is "~1.6.18"
627 | utils-merge "1.0.1"
628 | vary "~1.1.2"
629 |
630 | external-editor@^3.0.3:
631 | version "3.1.0"
632 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
633 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
634 | dependencies:
635 | chardet "^0.7.0"
636 | iconv-lite "^0.4.24"
637 | tmp "^0.0.33"
638 |
639 | fast-deep-equal@^3.1.1:
640 | version "3.1.1"
641 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
642 | integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
643 |
644 | fast-diff@^1.1.2:
645 | version "1.2.0"
646 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
647 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
648 |
649 | fast-json-stable-stringify@^2.0.0:
650 | version "2.1.0"
651 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
652 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
653 |
654 | fast-levenshtein@~2.0.6:
655 | version "2.0.6"
656 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
657 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
658 |
659 | figures@^2.0.0:
660 | version "2.0.0"
661 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
662 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
663 | dependencies:
664 | escape-string-regexp "^1.0.5"
665 |
666 | file-entry-cache@^5.0.1:
667 | version "5.0.1"
668 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
669 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
670 | dependencies:
671 | flat-cache "^2.0.1"
672 |
673 | finalhandler@^1.0.6, finalhandler@~1.1.2:
674 | version "1.1.2"
675 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
676 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
677 | dependencies:
678 | debug "2.6.9"
679 | encodeurl "~1.0.2"
680 | escape-html "~1.0.3"
681 | on-finished "~2.3.0"
682 | parseurl "~1.3.3"
683 | statuses "~1.5.0"
684 | unpipe "~1.0.0"
685 |
686 | flat-cache@^2.0.1:
687 | version "2.0.1"
688 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
689 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
690 | dependencies:
691 | flatted "^2.0.0"
692 | rimraf "2.6.3"
693 | write "1.0.3"
694 |
695 | flatted@^2.0.0:
696 | version "2.0.2"
697 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
698 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
699 |
700 | forwarded@~0.1.2:
701 | version "0.1.2"
702 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
703 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
704 |
705 | fresh@0.5.2:
706 | version "0.5.2"
707 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
708 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
709 |
710 | fs-capacitor@^6.1.0:
711 | version "6.1.0"
712 | resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-6.1.0.tgz#457f5868a743fe662caa9bd825be966c3d4641a4"
713 | integrity sha512-YsKGCLAB40P3OKeciIa7cKzt7WkY8QT9ETa2wVIG3fQDHW2h3xtRo0770lUIbPrjCr5Sa+zFhixNJ+2xNxaraQ==
714 |
715 | fs.realpath@^1.0.0:
716 | version "1.0.0"
717 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
718 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
719 |
720 | functional-red-black-tree@^1.0.1:
721 | version "1.0.1"
722 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
723 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
724 |
725 | get-stdin@^6.0.0:
726 | version "6.0.0"
727 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
728 | integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
729 |
730 | glob@^7.1.2, glob@^7.1.3:
731 | version "7.1.6"
732 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
733 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
734 | dependencies:
735 | fs.realpath "^1.0.0"
736 | inflight "^1.0.4"
737 | inherits "2"
738 | minimatch "^3.0.4"
739 | once "^1.3.0"
740 | path-is-absolute "^1.0.0"
741 |
742 | globals@^11.7.0:
743 | version "11.12.0"
744 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
745 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
746 |
747 | graphile-build-pg@4.7.0:
748 | version "4.7.0"
749 | resolved "https://registry.yarnpkg.com/graphile-build-pg/-/graphile-build-pg-4.7.0.tgz#6ee86e0623bad433c61812119ac22aa420788841"
750 | integrity sha512-dwGV+wUoPbly9RP9WgShs6yPv8A4N/xhdHGFu9sxYn49qkwJaAEdFehgsdCl12ZvJYpe/eDyK/6jR5PQOhJDbw==
751 | dependencies:
752 | "@graphile/lru" "4.5.0"
753 | chalk "^2.4.2"
754 | debug "^4.1.1"
755 | graphile-build "4.7.0"
756 | graphql-iso-date "^3.6.0"
757 | jsonwebtoken "^8.5.1"
758 | lodash ">=4 <5"
759 | lru-cache ">=4 <5"
760 | pg-sql2 "4.7.0"
761 | postgres-interval "^1.2.0"
762 |
763 | graphile-build@4.7.0:
764 | version "4.7.0"
765 | resolved "https://registry.yarnpkg.com/graphile-build/-/graphile-build-4.7.0.tgz#138ebd706f6418dcec08b7301c769267bf242a24"
766 | integrity sha512-zoh5KItIj40bZnHLEh1G6zAN6C0hmJkKVYsQUEZUeX4Ex80YoX9eFO8rI7LwMumPASJf4nmjlziksLY1+1cn6g==
767 | dependencies:
768 | "@graphile/lru" "4.5.0"
769 | chalk "^2.4.2"
770 | debug "^4.1.1"
771 | graphql-parse-resolve-info "4.7.0"
772 | iterall "^1.2.2"
773 | lodash ">=4 <5"
774 | lru-cache "^5.0.0"
775 | pluralize "^7.0.0"
776 | semver "^6.0.0"
777 |
778 | graphile-utils@^4.7.0:
779 | version "4.7.0"
780 | resolved "https://registry.yarnpkg.com/graphile-utils/-/graphile-utils-4.7.0.tgz#f1b4b77a84741bbcbb69c1f3d2c009bd9c7336f6"
781 | integrity sha512-q147Dn4BV7AfujMCSoWf48dqUJUdr2ReLCY9aal7+m2ZthxMlnqhqrbGFvsDz+Vdx/KaZoDbNqEgAmfhE9R0mA==
782 | dependencies:
783 | debug "^4.1.1"
784 | graphql ">=0.9 <0.14 || ^14.0.2"
785 |
786 | graphql-iso-date@^3.6.0:
787 | version "3.6.1"
788 | resolved "https://registry.yarnpkg.com/graphql-iso-date/-/graphql-iso-date-3.6.1.tgz#bd2d0dc886e0f954cbbbc496bbf1d480b57ffa96"
789 | integrity sha512-AwFGIuYMJQXOEAgRlJlFL4H1ncFM8n8XmoVDTNypNOZyQ8LFDG2ppMFlsS862BSTCDcSUfHp8PD3/uJhv7t59Q==
790 |
791 | graphql-parse-resolve-info@4.7.0:
792 | version "4.7.0"
793 | resolved "https://registry.yarnpkg.com/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.7.0.tgz#0f769684f5430f9d14964fb7dea56fbfaf54953f"
794 | integrity sha512-vrfvITs1vQCmzasAnfpzjTnImfo1gSwBijJEo6PF+0ZP3cLgJsmsNBvc9VJaiXxdjShS6sWI4V7HTrlz+UjGGw==
795 | dependencies:
796 | debug "^4.1.1"
797 |
798 | graphql-upload@^10.0.0:
799 | version "10.0.0"
800 | resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-10.0.0.tgz#1020c8ac6208c8cdf9de1f6ad9000eab7467e00f"
801 | integrity sha512-8n11qujsqHWT48visvQbqLqAj8o6NCLJ35tGkI/RynhDs7E07TxlswVe4vPZaLiXJeemZA7xrxkMohwP//DOqA==
802 | dependencies:
803 | busboy "^0.3.1"
804 | fs-capacitor "^6.1.0"
805 | http-errors "^1.7.3"
806 | isobject "^4.0.0"
807 | object-path "^0.11.4"
808 |
809 | "graphql@>=0.9 <0.14 || ^14.0.2", "graphql@^0.6.0 || ^0.7.0 || ^0.8.0-b || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.2":
810 | version "14.6.0"
811 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49"
812 | integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==
813 | dependencies:
814 | iterall "^1.2.2"
815 |
816 | has-flag@^3.0.0:
817 | version "3.0.0"
818 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
819 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
820 |
821 | http-errors@1.7.2:
822 | version "1.7.2"
823 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
824 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
825 | dependencies:
826 | depd "~1.1.2"
827 | inherits "2.0.3"
828 | setprototypeof "1.1.1"
829 | statuses ">= 1.5.0 < 2"
830 | toidentifier "1.0.0"
831 |
832 | http-errors@^1.5.1, http-errors@^1.7.3, http-errors@~1.7.2:
833 | version "1.7.3"
834 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
835 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
836 | dependencies:
837 | depd "~1.1.2"
838 | inherits "2.0.4"
839 | setprototypeof "1.1.1"
840 | statuses ">= 1.5.0 < 2"
841 | toidentifier "1.0.0"
842 |
843 | iconv-lite@0.4.24, iconv-lite@^0.4.24:
844 | version "0.4.24"
845 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
846 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
847 | dependencies:
848 | safer-buffer ">= 2.1.2 < 3"
849 |
850 | ignore@^4.0.6:
851 | version "4.0.6"
852 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
853 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
854 |
855 | import-fresh@^3.0.0:
856 | version "3.2.1"
857 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
858 | integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
859 | dependencies:
860 | parent-module "^1.0.0"
861 | resolve-from "^4.0.0"
862 |
863 | imurmurhash@^0.1.4:
864 | version "0.1.4"
865 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
866 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
867 |
868 | inflight@^1.0.4:
869 | version "1.0.6"
870 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
871 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
872 | dependencies:
873 | once "^1.3.0"
874 | wrappy "1"
875 |
876 | inherits@2, inherits@2.0.4:
877 | version "2.0.4"
878 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
879 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
880 |
881 | inherits@2.0.3:
882 | version "2.0.3"
883 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
884 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
885 |
886 | inquirer@^6.2.2:
887 | version "6.5.2"
888 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
889 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
890 | dependencies:
891 | ansi-escapes "^3.2.0"
892 | chalk "^2.4.2"
893 | cli-cursor "^2.1.0"
894 | cli-width "^2.0.0"
895 | external-editor "^3.0.3"
896 | figures "^2.0.0"
897 | lodash "^4.17.12"
898 | mute-stream "0.0.7"
899 | run-async "^2.2.0"
900 | rxjs "^6.4.0"
901 | string-width "^2.1.0"
902 | strip-ansi "^5.1.0"
903 | through "^2.3.6"
904 |
905 | ipaddr.js@1.9.1:
906 | version "1.9.1"
907 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
908 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
909 |
910 | is-fullwidth-code-point@^2.0.0:
911 | version "2.0.0"
912 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
913 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
914 |
915 | isexe@^2.0.0:
916 | version "2.0.0"
917 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
918 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
919 |
920 | isobject@^4.0.0:
921 | version "4.0.0"
922 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0"
923 | integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==
924 |
925 | iterall@^1.0.2, iterall@^1.2.1, iterall@^1.2.2:
926 | version "1.3.0"
927 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea"
928 | integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==
929 |
930 | js-tokens@^4.0.0:
931 | version "4.0.0"
932 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
933 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
934 |
935 | js-yaml@^3.13.0:
936 | version "3.13.1"
937 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
938 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
939 | dependencies:
940 | argparse "^1.0.7"
941 | esprima "^4.0.0"
942 |
943 | json-schema-traverse@^0.4.1:
944 | version "0.4.1"
945 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
946 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
947 |
948 | json-stable-stringify-without-jsonify@^1.0.1:
949 | version "1.0.1"
950 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
951 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
952 |
953 | json5@^2.1.1:
954 | version "2.1.3"
955 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
956 | integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
957 | dependencies:
958 | minimist "^1.2.5"
959 |
960 | jsonwebtoken@^8.0.0, jsonwebtoken@^8.5.1:
961 | version "8.5.1"
962 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
963 | integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
964 | dependencies:
965 | jws "^3.2.2"
966 | lodash.includes "^4.3.0"
967 | lodash.isboolean "^3.0.3"
968 | lodash.isinteger "^4.0.4"
969 | lodash.isnumber "^3.0.3"
970 | lodash.isplainobject "^4.0.6"
971 | lodash.isstring "^4.0.1"
972 | lodash.once "^4.0.0"
973 | ms "^2.1.1"
974 | semver "^5.6.0"
975 |
976 | jwa@^1.4.1:
977 | version "1.4.1"
978 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
979 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
980 | dependencies:
981 | buffer-equal-constant-time "1.0.1"
982 | ecdsa-sig-formatter "1.0.11"
983 | safe-buffer "^5.0.1"
984 |
985 | jws@^3.2.2:
986 | version "3.2.2"
987 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
988 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
989 | dependencies:
990 | jwa "^1.4.1"
991 | safe-buffer "^5.0.1"
992 |
993 | levn@^0.3.0, levn@~0.3.0:
994 | version "0.3.0"
995 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
996 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
997 | dependencies:
998 | prelude-ls "~1.1.2"
999 | type-check "~0.3.2"
1000 |
1001 | lodash.includes@^4.3.0:
1002 | version "4.3.0"
1003 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
1004 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
1005 |
1006 | lodash.isboolean@^3.0.3:
1007 | version "3.0.3"
1008 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
1009 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
1010 |
1011 | lodash.isinteger@^4.0.4:
1012 | version "4.0.4"
1013 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
1014 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
1015 |
1016 | lodash.isnumber@^3.0.3:
1017 | version "3.0.3"
1018 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
1019 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
1020 |
1021 | lodash.isplainobject@^4.0.6:
1022 | version "4.0.6"
1023 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
1024 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
1025 |
1026 | lodash.isstring@^4.0.1:
1027 | version "4.0.1"
1028 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
1029 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
1030 |
1031 | lodash.once@^4.0.0:
1032 | version "4.1.1"
1033 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
1034 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
1035 |
1036 | "lodash@>=4 <5", lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14:
1037 | version "4.17.15"
1038 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
1039 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
1040 |
1041 | "lru-cache@>=4 <5":
1042 | version "4.1.5"
1043 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
1044 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
1045 | dependencies:
1046 | pseudomap "^1.0.2"
1047 | yallist "^2.1.2"
1048 |
1049 | lru-cache@^5.0.0:
1050 | version "5.1.1"
1051 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
1052 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
1053 | dependencies:
1054 | yallist "^3.0.2"
1055 |
1056 | media-typer@0.3.0:
1057 | version "0.3.0"
1058 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
1059 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
1060 |
1061 | merge-descriptors@1.0.1:
1062 | version "1.0.1"
1063 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
1064 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
1065 |
1066 | methods@~1.1.2:
1067 | version "1.1.2"
1068 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
1069 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
1070 |
1071 | mime-db@1.44.0:
1072 | version "1.44.0"
1073 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
1074 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
1075 |
1076 | mime-types@~2.1.24:
1077 | version "2.1.27"
1078 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
1079 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
1080 | dependencies:
1081 | mime-db "1.44.0"
1082 |
1083 | mime@1.6.0:
1084 | version "1.6.0"
1085 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
1086 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
1087 |
1088 | mimic-fn@^1.0.0:
1089 | version "1.2.0"
1090 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
1091 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
1092 |
1093 | minimatch@^3.0.4:
1094 | version "3.0.4"
1095 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1096 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1097 | dependencies:
1098 | brace-expansion "^1.1.7"
1099 |
1100 | minimist@^1.2.5:
1101 | version "1.2.5"
1102 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1103 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1104 |
1105 | mkdirp@^0.5.1:
1106 | version "0.5.5"
1107 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
1108 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
1109 | dependencies:
1110 | minimist "^1.2.5"
1111 |
1112 | ms@2.0.0:
1113 | version "2.0.0"
1114 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1115 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
1116 |
1117 | ms@2.1.1:
1118 | version "2.1.1"
1119 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
1120 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
1121 |
1122 | ms@^2.1.1:
1123 | version "2.1.2"
1124 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1125 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1126 |
1127 | mute-stream@0.0.7:
1128 | version "0.0.7"
1129 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
1130 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
1131 |
1132 | natural-compare@^1.4.0:
1133 | version "1.4.0"
1134 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1135 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1136 |
1137 | negotiator@0.6.2:
1138 | version "0.6.2"
1139 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
1140 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
1141 |
1142 | nice-try@^1.0.4:
1143 | version "1.0.5"
1144 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
1145 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
1146 |
1147 | object-path@^0.11.4:
1148 | version "0.11.5"
1149 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a"
1150 | integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==
1151 |
1152 | on-finished@~2.3.0:
1153 | version "2.3.0"
1154 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
1155 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
1156 | dependencies:
1157 | ee-first "1.1.1"
1158 |
1159 | once@^1.3.0:
1160 | version "1.4.0"
1161 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1162 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1163 | dependencies:
1164 | wrappy "1"
1165 |
1166 | onetime@^2.0.0:
1167 | version "2.0.1"
1168 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
1169 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
1170 | dependencies:
1171 | mimic-fn "^1.0.0"
1172 |
1173 | optionator@^0.8.2:
1174 | version "0.8.3"
1175 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
1176 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
1177 | dependencies:
1178 | deep-is "~0.1.3"
1179 | fast-levenshtein "~2.0.6"
1180 | levn "~0.3.0"
1181 | prelude-ls "~1.1.2"
1182 | type-check "~0.3.2"
1183 | word-wrap "~1.2.3"
1184 |
1185 | os-tmpdir@~1.0.2:
1186 | version "1.0.2"
1187 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1188 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
1189 |
1190 | packet-reader@1.0.0:
1191 | version "1.0.0"
1192 | resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
1193 | integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
1194 |
1195 | parent-module@^1.0.0:
1196 | version "1.0.1"
1197 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1198 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1199 | dependencies:
1200 | callsites "^3.0.0"
1201 |
1202 | parseurl@^1.3.2, parseurl@~1.3.3:
1203 | version "1.3.3"
1204 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
1205 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
1206 |
1207 | path-is-absolute@^1.0.0:
1208 | version "1.0.1"
1209 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1210 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1211 |
1212 | path-is-inside@^1.0.2:
1213 | version "1.0.2"
1214 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
1215 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
1216 |
1217 | path-key@^2.0.1:
1218 | version "2.0.1"
1219 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1220 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
1221 |
1222 | path-to-regexp@0.1.7:
1223 | version "0.1.7"
1224 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
1225 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
1226 |
1227 | pg-connection-string@0.1.3:
1228 | version "0.1.3"
1229 | resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
1230 | integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
1231 |
1232 | pg-connection-string@^2.0.0:
1233 | version "2.2.1"
1234 | resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.2.1.tgz#fd22870c4cdff66f085a8759ee68cde8e9ca0cbf"
1235 | integrity sha512-WnIjIJR575VyX+jRqpSt5PqbIzr3+1D793CkBbQWvpiNTGuHffZEO9+VrwAw0XSVfvxea7QiplHINGahWe9rjg==
1236 |
1237 | pg-int8@1.0.1:
1238 | version "1.0.1"
1239 | resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
1240 | integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
1241 |
1242 | pg-pool@^3.1.1:
1243 | version "3.1.1"
1244 | resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.1.1.tgz#83763aa042ca8e48b0723693b3de3ff076de4ca1"
1245 | integrity sha512-kYH6S0mcZF1TPg1F9boFee2JlCSm2oqnlR2Mz2Wgn1psQbEBNVeNTJCw2wCK48QsctwvGUzbxLMg/lYV6hL/3A==
1246 |
1247 | pg-protocol@^1.2.2:
1248 | version "1.2.2"
1249 | resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.2.2.tgz#e16ef28087aa725ce933af092bfe38d8f609faab"
1250 | integrity sha512-r8hGxHOk3ccMjjmhFJ/QOSVW5A+PP84TeRlEwB/cQ9Zu+bvtZg8Z59Cx3AMfVQc9S0Z+EG+HKhicF1W1GN5Eqg==
1251 |
1252 | pg-sql2@4.7.0:
1253 | version "4.7.0"
1254 | resolved "https://registry.yarnpkg.com/pg-sql2/-/pg-sql2-4.7.0.tgz#2e4964bc0d94b8a81e4bc13651379a6436f8e370"
1255 | integrity sha512-/9YtclLJW7nIehd4RPxCECz9+mOAmQ5tkDRLbefzCxgctkKj31tsF6Xu1+Rwnnv7/hKyzH+ShzOJrxPRF8jEAw==
1256 | dependencies:
1257 | "@graphile/lru" "4.5.0"
1258 | "@types/pg" ">=6 <8"
1259 | debug ">=3 <5"
1260 |
1261 | pg-types@^2.1.0:
1262 | version "2.2.0"
1263 | resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
1264 | integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
1265 | dependencies:
1266 | pg-int8 "1.0.1"
1267 | postgres-array "~2.0.0"
1268 | postgres-bytea "~1.0.0"
1269 | postgres-date "~1.0.4"
1270 | postgres-interval "^1.1.0"
1271 |
1272 | "pg@>=6.1.0 <9":
1273 | version "8.0.3"
1274 | resolved "https://registry.yarnpkg.com/pg/-/pg-8.0.3.tgz#b220ee468a1819e1c7e9ca9878f8ae50ba8e1952"
1275 | integrity sha512-fvcNXn4o/iq4jKq15Ix/e58q3jPSmzOp6/8C3CaHoSR/bsxdg+1FXfDRePdtE/zBb3++TytvOrS1hNef3WC/Kg==
1276 | dependencies:
1277 | buffer-writer "2.0.0"
1278 | packet-reader "1.0.0"
1279 | pg-connection-string "0.1.3"
1280 | pg-pool "^3.1.1"
1281 | pg-protocol "^1.2.2"
1282 | pg-types "^2.1.0"
1283 | pgpass "1.x"
1284 | semver "4.3.2"
1285 |
1286 | pgpass@1.x:
1287 | version "1.0.2"
1288 | resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
1289 | integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
1290 | dependencies:
1291 | split "^1.0.0"
1292 |
1293 | pluralize@^7.0.0:
1294 | version "7.0.0"
1295 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
1296 | integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
1297 |
1298 | postgraphile-core@4.7.0:
1299 | version "4.7.0"
1300 | resolved "https://registry.yarnpkg.com/postgraphile-core/-/postgraphile-core-4.7.0.tgz#1aa82012f28369515bba7e5ef4dd2d35385b4bce"
1301 | integrity sha512-8tq/yipRxOCtMRqwUmFC73oiLUv2NmquoUl4pb6o2Fh3+RYsB5U6Jg0sM0KKO0T2TkrutLHbnRFYntnHo0SIwg==
1302 | dependencies:
1303 | graphile-build "4.7.0"
1304 | graphile-build-pg "4.7.0"
1305 |
1306 | postgraphile-plugin-upload-field@^1.0.0-alpha.10:
1307 | version "1.0.0-alpha.10"
1308 | resolved "https://registry.yarnpkg.com/postgraphile-plugin-upload-field/-/postgraphile-plugin-upload-field-1.0.0-alpha.10.tgz#ab21fdffbc94cf58e8b7b819be6a66b9f6638311"
1309 | integrity sha512-H9cXSXkYZm0gagBNJoCme1ndEys5322r+TbH6BT+kTXcgKr1JY0t4KcDQBm0vHVFuu+8YmRodwrmGaxzdLieDQ==
1310 |
1311 | postgraphile@^4.0.0:
1312 | version "4.7.0"
1313 | resolved "https://registry.yarnpkg.com/postgraphile/-/postgraphile-4.7.0.tgz#b6ec4ca5762b5d78c5b6c53b29a26fc89a4445e0"
1314 | integrity sha512-EtXs2laSS7/1N86eQ9uNgO9k1EP7+V9emop+OWbmGqbNGQsYTGPrUG9e3dvdyzuuDPN0+GgMvUzaZRBxpeaAWg==
1315 | dependencies:
1316 | "@graphile/lru" "4.5.0"
1317 | "@types/json5" "^0.0.30"
1318 | "@types/jsonwebtoken" "^8.3.2"
1319 | "@types/koa" "^2.0.44"
1320 | "@types/pg" "^7.4.10"
1321 | "@types/ws" "^6.0.1"
1322 | body-parser "^1.15.2"
1323 | chalk "^2.4.2"
1324 | commander "^2.19.0"
1325 | debug "^4.1.1"
1326 | finalhandler "^1.0.6"
1327 | graphile-utils "^4.7.0"
1328 | graphql "^0.6.0 || ^0.7.0 || ^0.8.0-b || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.2"
1329 | http-errors "^1.5.1"
1330 | iterall "^1.0.2"
1331 | json5 "^2.1.1"
1332 | jsonwebtoken "^8.0.0"
1333 | parseurl "^1.3.2"
1334 | pg ">=6.1.0 <9"
1335 | pg-connection-string "^2.0.0"
1336 | pg-sql2 "4.7.0"
1337 | postgraphile-core "4.7.0"
1338 | subscriptions-transport-ws "^0.9.15"
1339 | tslib "^1.5.0"
1340 | ws "^6.1.3"
1341 |
1342 | postgres-array@~2.0.0:
1343 | version "2.0.0"
1344 | resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
1345 | integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
1346 |
1347 | postgres-bytea@~1.0.0:
1348 | version "1.0.0"
1349 | resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
1350 | integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
1351 |
1352 | postgres-date@~1.0.4:
1353 | version "1.0.5"
1354 | resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee"
1355 | integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA==
1356 |
1357 | postgres-interval@^1.1.0, postgres-interval@^1.2.0:
1358 | version "1.2.0"
1359 | resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
1360 | integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
1361 | dependencies:
1362 | xtend "^4.0.0"
1363 |
1364 | prelude-ls@~1.1.2:
1365 | version "1.1.2"
1366 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
1367 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
1368 |
1369 | prettier-linter-helpers@^1.0.0:
1370 | version "1.0.0"
1371 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
1372 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
1373 | dependencies:
1374 | fast-diff "^1.1.2"
1375 |
1376 | prettier@1.16.4:
1377 | version "1.16.4"
1378 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717"
1379 | integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==
1380 |
1381 | progress@^2.0.0:
1382 | version "2.0.3"
1383 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1384 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
1385 |
1386 | proxy-addr@~2.0.5:
1387 | version "2.0.6"
1388 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
1389 | integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
1390 | dependencies:
1391 | forwarded "~0.1.2"
1392 | ipaddr.js "1.9.1"
1393 |
1394 | pseudomap@^1.0.2:
1395 | version "1.0.2"
1396 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
1397 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
1398 |
1399 | punycode@^2.1.0:
1400 | version "2.1.1"
1401 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1402 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1403 |
1404 | qs@6.7.0:
1405 | version "6.7.0"
1406 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
1407 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
1408 |
1409 | range-parser@~1.2.1:
1410 | version "1.2.1"
1411 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
1412 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
1413 |
1414 | raw-body@2.4.0:
1415 | version "2.4.0"
1416 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
1417 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
1418 | dependencies:
1419 | bytes "3.1.0"
1420 | http-errors "1.7.2"
1421 | iconv-lite "0.4.24"
1422 | unpipe "1.0.0"
1423 |
1424 | regexpp@^2.0.1:
1425 | version "2.0.1"
1426 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
1427 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
1428 |
1429 | resolve-from@^4.0.0:
1430 | version "4.0.0"
1431 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1432 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1433 |
1434 | restore-cursor@^2.0.0:
1435 | version "2.0.0"
1436 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
1437 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
1438 | dependencies:
1439 | onetime "^2.0.0"
1440 | signal-exit "^3.0.2"
1441 |
1442 | rimraf@2.6.3:
1443 | version "2.6.3"
1444 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
1445 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
1446 | dependencies:
1447 | glob "^7.1.3"
1448 |
1449 | run-async@^2.2.0:
1450 | version "2.4.1"
1451 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
1452 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
1453 |
1454 | rxjs@^6.4.0:
1455 | version "6.5.5"
1456 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
1457 | integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
1458 | dependencies:
1459 | tslib "^1.9.0"
1460 |
1461 | safe-buffer@5.1.2:
1462 | version "5.1.2"
1463 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1464 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1465 |
1466 | safe-buffer@^5.0.1:
1467 | version "5.2.0"
1468 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
1469 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
1470 |
1471 | "safer-buffer@>= 2.1.2 < 3":
1472 | version "2.1.2"
1473 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1474 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1475 |
1476 | semver@4.3.2:
1477 | version "4.3.2"
1478 | resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
1479 | integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
1480 |
1481 | semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
1482 | version "5.7.1"
1483 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1484 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1485 |
1486 | semver@^6.0.0:
1487 | version "6.3.0"
1488 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1489 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1490 |
1491 | send@0.17.1:
1492 | version "0.17.1"
1493 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
1494 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
1495 | dependencies:
1496 | debug "2.6.9"
1497 | depd "~1.1.2"
1498 | destroy "~1.0.4"
1499 | encodeurl "~1.0.2"
1500 | escape-html "~1.0.3"
1501 | etag "~1.8.1"
1502 | fresh "0.5.2"
1503 | http-errors "~1.7.2"
1504 | mime "1.6.0"
1505 | ms "2.1.1"
1506 | on-finished "~2.3.0"
1507 | range-parser "~1.2.1"
1508 | statuses "~1.5.0"
1509 |
1510 | serve-static@1.14.1:
1511 | version "1.14.1"
1512 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
1513 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
1514 | dependencies:
1515 | encodeurl "~1.0.2"
1516 | escape-html "~1.0.3"
1517 | parseurl "~1.3.3"
1518 | send "0.17.1"
1519 |
1520 | setprototypeof@1.1.1:
1521 | version "1.1.1"
1522 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
1523 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
1524 |
1525 | shebang-command@^1.2.0:
1526 | version "1.2.0"
1527 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1528 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
1529 | dependencies:
1530 | shebang-regex "^1.0.0"
1531 |
1532 | shebang-regex@^1.0.0:
1533 | version "1.0.0"
1534 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1535 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
1536 |
1537 | signal-exit@^3.0.2:
1538 | version "3.0.3"
1539 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
1540 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
1541 |
1542 | slice-ansi@^2.1.0:
1543 | version "2.1.0"
1544 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
1545 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
1546 | dependencies:
1547 | ansi-styles "^3.2.0"
1548 | astral-regex "^1.0.0"
1549 | is-fullwidth-code-point "^2.0.0"
1550 |
1551 | split@^1.0.0:
1552 | version "1.0.1"
1553 | resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
1554 | integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
1555 | dependencies:
1556 | through "2"
1557 |
1558 | sprintf-js@~1.0.2:
1559 | version "1.0.3"
1560 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1561 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
1562 |
1563 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
1564 | version "1.5.0"
1565 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
1566 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
1567 |
1568 | streamsearch@0.1.2:
1569 | version "0.1.2"
1570 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a"
1571 | integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=
1572 |
1573 | string-width@^2.1.0:
1574 | version "2.1.1"
1575 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1576 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
1577 | dependencies:
1578 | is-fullwidth-code-point "^2.0.0"
1579 | strip-ansi "^4.0.0"
1580 |
1581 | string-width@^3.0.0:
1582 | version "3.1.0"
1583 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1584 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
1585 | dependencies:
1586 | emoji-regex "^7.0.1"
1587 | is-fullwidth-code-point "^2.0.0"
1588 | strip-ansi "^5.1.0"
1589 |
1590 | strip-ansi@^4.0.0:
1591 | version "4.0.0"
1592 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1593 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
1594 | dependencies:
1595 | ansi-regex "^3.0.0"
1596 |
1597 | strip-ansi@^5.1.0:
1598 | version "5.2.0"
1599 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1600 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
1601 | dependencies:
1602 | ansi-regex "^4.1.0"
1603 |
1604 | strip-json-comments@^2.0.1:
1605 | version "2.0.1"
1606 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1607 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
1608 |
1609 | subscriptions-transport-ws@^0.9.15:
1610 | version "0.9.16"
1611 | resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz#90a422f0771d9c32069294c08608af2d47f596ec"
1612 | integrity sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==
1613 | dependencies:
1614 | backo2 "^1.0.2"
1615 | eventemitter3 "^3.1.0"
1616 | iterall "^1.2.1"
1617 | symbol-observable "^1.0.4"
1618 | ws "^5.2.0"
1619 |
1620 | supports-color@^5.3.0:
1621 | version "5.5.0"
1622 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1623 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1624 | dependencies:
1625 | has-flag "^3.0.0"
1626 |
1627 | symbol-observable@^1.0.4:
1628 | version "1.2.0"
1629 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
1630 | integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
1631 |
1632 | table@^5.2.3:
1633 | version "5.4.6"
1634 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
1635 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
1636 | dependencies:
1637 | ajv "^6.10.2"
1638 | lodash "^4.17.14"
1639 | slice-ansi "^2.1.0"
1640 | string-width "^3.0.0"
1641 |
1642 | text-table@^0.2.0:
1643 | version "0.2.0"
1644 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1645 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1646 |
1647 | through@2, through@^2.3.6:
1648 | version "2.3.8"
1649 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1650 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
1651 |
1652 | tmp@^0.0.33:
1653 | version "0.0.33"
1654 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
1655 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
1656 | dependencies:
1657 | os-tmpdir "~1.0.2"
1658 |
1659 | toidentifier@1.0.0:
1660 | version "1.0.0"
1661 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
1662 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
1663 |
1664 | tslib@^1.5.0, tslib@^1.9.0:
1665 | version "1.11.1"
1666 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
1667 | integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
1668 |
1669 | type-check@~0.3.2:
1670 | version "0.3.2"
1671 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
1672 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
1673 | dependencies:
1674 | prelude-ls "~1.1.2"
1675 |
1676 | type-is@~1.6.17, type-is@~1.6.18:
1677 | version "1.6.18"
1678 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
1679 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
1680 | dependencies:
1681 | media-typer "0.3.0"
1682 | mime-types "~2.1.24"
1683 |
1684 | unpipe@1.0.0, unpipe@~1.0.0:
1685 | version "1.0.0"
1686 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1687 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
1688 |
1689 | uri-js@^4.2.2:
1690 | version "4.2.2"
1691 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
1692 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
1693 | dependencies:
1694 | punycode "^2.1.0"
1695 |
1696 | utils-merge@1.0.1:
1697 | version "1.0.1"
1698 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1699 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
1700 |
1701 | vary@~1.1.2:
1702 | version "1.1.2"
1703 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1704 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
1705 |
1706 | which@^1.2.9:
1707 | version "1.3.1"
1708 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1709 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1710 | dependencies:
1711 | isexe "^2.0.0"
1712 |
1713 | word-wrap@~1.2.3:
1714 | version "1.2.3"
1715 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1716 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1717 |
1718 | wrappy@1:
1719 | version "1.0.2"
1720 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1721 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1722 |
1723 | write@1.0.3:
1724 | version "1.0.3"
1725 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
1726 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
1727 | dependencies:
1728 | mkdirp "^0.5.1"
1729 |
1730 | ws@^5.2.0:
1731 | version "5.2.3"
1732 | resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d"
1733 | integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==
1734 | dependencies:
1735 | async-limiter "~1.0.0"
1736 |
1737 | ws@^6.1.3:
1738 | version "6.2.1"
1739 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
1740 | integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
1741 | dependencies:
1742 | async-limiter "~1.0.0"
1743 |
1744 | xtend@^4.0.0:
1745 | version "4.0.2"
1746 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1747 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1748 |
1749 | yallist@^2.1.2:
1750 | version "2.1.2"
1751 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1752 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
1753 |
1754 | yallist@^3.0.2:
1755 | version "3.1.1"
1756 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
1757 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
1758 |
--------------------------------------------------------------------------------