From c1bfe2b4e5a3b09f83d796e27eb4725839664cae Mon Sep 17 00:00:00 2001 From: Jean Carlos Date: Sun, 17 Nov 2019 17:35:43 -0300 Subject: [PATCH] integrating prisma to resolvers --- .gitignore | 1 + package-lock.json | 5341 +++++++++++++++++ package.json | 18 + prisma-client-tests.txt | 92 + prisma-review-website/datamodel.prisma | 22 + .../generated/prisma-client/index.d.ts | 1205 ++++ .../generated/prisma-client/index.js | 25 + .../generated/prisma-client/prisma-schema.js | 642 ++ prisma-review-website/prisma.yml | 6 + prisma/datamodel.prisma | 23 + prisma/docker-compose.yml | 24 + prisma/generated/prisma-client/index.d.ts | 1375 +++++ prisma/generated/prisma-client/index.js | 25 + .../generated/prisma-client/prisma-schema.js | 772 +++ prisma/prisma.yml | 6 + resolvers/comment.resolver.js | 10 + resolvers/mutation.resolver.js | 168 + resolvers/post.resolver.js | 9 + resolvers/query.resolver.js | 21 + resolvers/subscription.resolver.js | 19 + resolvers/user.resolver.js | 10 + src/db.js | 85 + src/index.js | 35 + src/schema.graphql | 100 + 24 files changed, 10034 insertions(+) create mode 100644 .gitignore create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 prisma-client-tests.txt create mode 100644 prisma-review-website/datamodel.prisma create mode 100644 prisma-review-website/generated/prisma-client/index.d.ts create mode 100644 prisma-review-website/generated/prisma-client/index.js create mode 100644 prisma-review-website/generated/prisma-client/prisma-schema.js create mode 100644 prisma-review-website/prisma.yml create mode 100644 prisma/datamodel.prisma create mode 100644 prisma/docker-compose.yml create mode 100644 prisma/generated/prisma-client/index.d.ts create mode 100644 prisma/generated/prisma-client/index.js create mode 100644 prisma/generated/prisma-client/prisma-schema.js create mode 100644 prisma/prisma.yml create mode 100644 resolvers/comment.resolver.js create mode 100644 resolvers/mutation.resolver.js create mode 100644 resolvers/post.resolver.js create mode 100644 resolvers/query.resolver.js create mode 100644 resolvers/subscription.resolver.js create mode 100644 resolvers/user.resolver.js create mode 100644 src/db.js create mode 100644 src/index.js create mode 100644 src/schema.graphql diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cf6eab1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5341 @@ +{ + "name": "1", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/generator": { + "version": "7.0.0-beta.38", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.38.tgz", + "integrity": "sha512-aOHQPhsEyaB6p2n+AK981+onHoc+Ork9rcAQVSUJR33wUkGiWRpu6/C685knRyIZVsKeSdG5Q4xMiYeFUhuLzA==", + "requires": { + "@babel/types": "7.0.0-beta.38", + "jsesc": "^2.5.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.38", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.38.tgz", + "integrity": "sha512-SAtyEjmA7KiEoL2eAOAUM6M9arQJGWxJKK0S9x0WyPOosHS420RXoxPhn57u/8orRnK8Kxm0nHQQNTX203cP1Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "@kbrandwijk/swagger-to-graphql": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@kbrandwijk/swagger-to-graphql/-/swagger-to-graphql-2.4.3.tgz", + "integrity": "sha512-CNVsCrMge/jq6DCT5buNZ8PACY9RTvPJbCNoIcndfkJOCsNxOx9dnc5qw4pHZdHi8GS6l3qlgkuFKp33iD8J2Q==", + "requires": { + "babel-runtime": "^6.25.0", + "isomorphic-fetch": "^2.2.1", + "js-yaml": "^3.8.4", + "json-schema-ref-parser": "^3.1.2", + "lodash": "^4.16.4", + "node-request-by-swagger": "^1.0.6", + "request": "^2.75.0", + "request-promise": "^4.1.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/aws-lambda": { + "version": "8.10.13", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.13.tgz", + "integrity": "sha512-a1sC60Bqll4N2RYnd4+XuynrVd8LO+uZrgwCVaAER0ldMQ00LRM4iTjU2ulPoQF6P5bHZK5hL/6IF9088VJhUA==" + }, + "@types/body-parser": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz", + "integrity": "sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-OU2+C7X+5Gs42JZzXoto7yOQ0A0=", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.32", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "requires": { + "@types/node": "*" + } + }, + "@types/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg==", + "requires": { + "@types/express": "*" + } + }, + "@types/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz", + "integrity": "sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.16.11", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.11.tgz", + "integrity": "sha512-K8d2M5t3tBQimkyaYTXxtHYyoJPUEhy2/omVRnTAKw5FEdT+Ft6lTaTOpoJdHeG+mIwQXXtqiTcYZ6IR8LTzjQ==", + "requires": { + "@types/node": "*", + "@types/range-parser": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "requires": { + "@types/node": "*" + } + }, + "@types/graphql": { + "version": "14.5.0", + "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-14.5.0.tgz", + "integrity": "sha512-MOkzsEp1Jk5bXuAsHsUi6BVv0zCO+7/2PTiZMXWDSsMXvNU6w/PLMQT2vHn8hy2i0JqojPz1Sz6rsFjHtsU0lA==", + "requires": { + "graphql": "*" + } + }, + "@types/graphql-deduplicator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/graphql-deduplicator/-/graphql-deduplicator-2.0.0.tgz", + "integrity": "sha512-swUwj5hWF1yFzbUXStLJrUa0ksAt11B8+SwhsAjQAX0LYJ1LLioAyuDcJ9bovWbsNzIXJYXLvljSPQw8nR728w==" + }, + "@types/methods": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.0.tgz", + "integrity": "sha512-ROomEm+QHlUmcQoDr3CBo3GRm0w4PVoFYjVT9YcfyBha/Per4deb1IpvHU7KTK7YBZCIvOYbSADoEyDnFgaWLA==" + }, + "@types/mime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", + "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==" + }, + "@types/node": { + "version": "12.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.7.tgz", + "integrity": "sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==" + }, + "@types/prettier": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.18.3.tgz", + "integrity": "sha512-48rnerQdcZ26odp+HOvDGX8IcUkYOCuMc2BodWYTe956MqkHlOGAG4oFQ83cjZ0a4GAgj7mb4GUClxYd2Hlodg==" + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "@types/serve-static": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", + "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/mime": "*" + } + }, + "@types/tough-cookie": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz", + "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==" + }, + "@types/zen-observable": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.5.4.tgz", + "integrity": "sha512-sW6xN96wUak4tgc89d0tbTg7QDGYhGv5hvQIS6h4mRCd8h2btiZ80loPU8cyLwsBbA4ZeQt0FjvUhJ4rNhdsGg==" + }, + "@wry/equality": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz", + "integrity": "sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ==", + "requires": { + "tslib": "^1.9.3" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", + "requires": { + "type-fest": "^0.5.2" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "apollo-cache-control": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.1.1.tgz", + "integrity": "sha512-XJQs167e9u+e5ybSi51nGYr70NPBbswdvTEHtbtXbwkZ+n9t0SLPvUcoqceayOSwjK1XYOdU/EKPawNdb3rLQA==", + "requires": { + "graphql-extensions": "^0.0.x" + } + }, + "apollo-codegen": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/apollo-codegen/-/apollo-codegen-0.20.2.tgz", + "integrity": "sha512-f95fPGoQoj+XcR7JWgR35mUYrD7RWT4kHbtSLs3aHeRFOKUHEWW2nHUNTOtQbbIdLulRuxPQCTvSddT7fFwhrA==", + "requires": { + "apollo-codegen-core": "^0.20.0", + "apollo-codegen-flow": "^0.20.0", + "apollo-codegen-flow-legacy": "^0.20.0", + "apollo-codegen-scala": "^0.20.0", + "apollo-codegen-swift": "^0.20.0", + "apollo-codegen-typescript": "^0.20.0", + "apollo-codegen-typescript-legacy": "^0.20.0", + "glob": "^7.1.2", + "graphql": "^0.13.1", + "node-fetch": "^1.7.3", + "rimraf": "^2.6.2", + "source-map-support": "^0.5.0", + "yargs": "^10.0.3" + }, + "dependencies": { + "graphql": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz", + "integrity": "sha512-QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==", + "requires": { + "iterall": "^1.2.1" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" + } + } + } + }, + "apollo-codegen-core": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.20.1.tgz", + "integrity": "sha512-sanUIqXWyyDpxY3fYOVU+Hsxwxdj5fmn3Zcy6CcMGnWmh9o7tautQAuod2a63wrDs1jcNQcFq3EKIpeB+2xECw==", + "requires": { + "@babel/generator": "7.0.0-beta.38", + "@babel/types": "7.0.0-beta.38", + "common-tags": "^1.5.1", + "core-js": "^2.5.3", + "graphql-config": "^2.0.1" + } + }, + "apollo-codegen-flow": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.20.0.tgz", + "integrity": "sha512-XgKE19B0Q74PBLVqHP/77NcCFrcvrN9wi3CcotH+FV8BeHTjvpHlilTsQMmd2STPt19cCvY2Qtz0EOeLXTUQ2Q==", + "requires": { + "apollo-codegen-core": "^0.20.0", + "change-case": "^3.0.1", + "inflected": "^2.0.3" + } + }, + "apollo-codegen-flow-legacy": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/apollo-codegen-flow-legacy/-/apollo-codegen-flow-legacy-0.20.0.tgz", + "integrity": "sha512-kGjJNkkkob9gGYSIhwfdgOzkj0PuN4/QPhng4ckSaSCE+8E4Awyvk0P8LiYPKauHzHVjmJzxWLSG6kI0PQTNgA==", + "requires": { + "apollo-codegen-core": "^0.20.0" + } + }, + "apollo-codegen-scala": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.20.0.tgz", + "integrity": "sha512-NbnMOfUXXovlTGRj4mIZGXB9HvidQhwKfAmdYHox5peHPkjjsqEzxGCIuWCSnubWiCF2uHZnQoIkg4sXWf0KLw==", + "requires": { + "apollo-codegen-core": "^0.20.0", + "change-case": "^3.0.1", + "inflected": "^2.0.3" + } + }, + "apollo-codegen-swift": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.20.0.tgz", + "integrity": "sha512-L9Y4StbXw0t/nuF+miz0ybSt/io6tsLc063Yeh1A8GCvhFFQyXE/yK0Rf3nO1Bl5Z9UZ5o8Aae9kK4GSWYIGNQ==", + "requires": { + "apollo-codegen-core": "^0.20.0", + "change-case": "^3.0.1", + "inflected": "^2.0.3" + } + }, + "apollo-codegen-typescript": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.20.0.tgz", + "integrity": "sha512-mzlIJXz+5WPwzeALqRHHR9aPPEf6IlhSrjCawpUHmFU1NK9hgwbguYCEYZv9mKkYBUUgDY+9cGFK1cafJX70AQ==", + "requires": { + "apollo-codegen-core": "^0.20.0", + "change-case": "^3.0.1", + "inflected": "^2.0.3" + } + }, + "apollo-codegen-typescript-legacy": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/apollo-codegen-typescript-legacy/-/apollo-codegen-typescript-legacy-0.20.0.tgz", + "integrity": "sha512-0/h5hce2FIGn6Y4+EHMeMINQxFwcgjw1vU+xV3KGaaEgyEAEQ3/n9pyz43M8mOm/JVgg8Eb4CtM1AtCkRQuFGw==", + "requires": { + "apollo-codegen-core": "^0.20.0" + } + }, + "apollo-link": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.13.tgz", + "integrity": "sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw==", + "requires": { + "apollo-utilities": "^1.3.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3", + "zen-observable-ts": "^0.8.20" + } + }, + "apollo-link-error": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.12.tgz", + "integrity": "sha512-psNmHyuy3valGikt/XHJfe0pKJnRX19tLLs6P6EHRxg+6q6JMXNVLYPaQBkL0FkwdTCB0cbFJAGRYCBviG8TDA==", + "requires": { + "apollo-link": "^1.2.13", + "apollo-link-http-common": "^0.2.15", + "tslib": "^1.9.3" + } + }, + "apollo-link-http-common": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.15.tgz", + "integrity": "sha512-+Heey4S2IPsPyTf8Ag3PugUupASJMW894iVps6hXbvwtg1aHSNMXUYO5VG7iRHkPzqpuzT4HMBanCTXPjtGzxg==", + "requires": { + "apollo-link": "^1.2.13", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3" + } + }, + "apollo-link-ws": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/apollo-link-ws/-/apollo-link-ws-1.0.19.tgz", + "integrity": "sha512-mRXmeUkc55ixOdYRtfq5rq3o9sboKghKABKroDVhJnkdS56zthBEWMAD+phajujOUbqByxjok0te8ABqByBdeQ==", + "requires": { + "apollo-link": "^1.2.13", + "tslib": "^1.9.3" + } + }, + "apollo-server-core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-1.4.0.tgz", + "integrity": "sha512-BP1Vh39krgEjkQxbjTdBURUjLHbFq1zeOChDJgaRsMxGtlhzuLWwwC6lLdPatN8jEPbeHq8Tndp9QZ3iQZOKKA==", + "requires": { + "apollo-cache-control": "^0.1.0", + "apollo-tracing": "^0.1.0", + "graphql-extensions": "^0.0.x" + } + }, + "apollo-server-express": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-1.4.0.tgz", + "integrity": "sha512-zkH00nxhLnJfO0HgnNPBTfZw8qI5ILaPZ5TecMCI9+Y9Ssr2b0bFr9pBRsXy9eudPhI+/O4yqegSUsnLdF/CPw==", + "requires": { + "apollo-server-core": "^1.4.0", + "apollo-server-module-graphiql": "^1.4.0" + } + }, + "apollo-server-lambda": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/apollo-server-lambda/-/apollo-server-lambda-1.3.6.tgz", + "integrity": "sha1-varDfxQ8Z5jkC4rnVYC6ZzzqJg4=", + "requires": { + "apollo-server-core": "^1.3.6", + "apollo-server-module-graphiql": "^1.3.4" + } + }, + "apollo-server-module-graphiql": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.4.0.tgz", + "integrity": "sha512-GmkOcb5he2x5gat+TuiTvabnBf1m4jzdecal3XbXBh/Jg+kx4hcvO3TTDFQ9CuTprtzdcVyA11iqG7iOMOt7vA==" + }, + "apollo-tracing": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.1.4.tgz", + "integrity": "sha512-Uv+1nh5AsNmC3m130i2u3IqbS+nrxyVV3KYimH5QKsdPjxxIQB3JAT+jJmpeDxBel8gDVstNmCh82QSLxLSIdQ==", + "requires": { + "graphql-extensions": "~0.0.9" + } + }, + "apollo-upload-server": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-7.1.0.tgz", + "integrity": "sha512-cD9ReCeyurYwZyEDqJYb5TOc9dt8yhPzS+MtrY3iJdqw+pqiiyPngAvVXHjN+Ca7Lajvom4/AT/PBrYVDMM3Kw==", + "requires": { + "busboy": "^0.2.14", + "fs-capacitor": "^1.0.0", + "http-errors": "^1.7.0", + "object-path": "^0.11.4" + } + }, + "apollo-utilities": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.2.tgz", + "integrity": "sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==", + "requires": { + "@wry/equality": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "body-parser-graphql": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/body-parser-graphql/-/body-parser-graphql-1.1.0.tgz", + "integrity": "sha512-bOBF4n1AnUjcY1SzLeibeIx4XOuYqEkjn/Lm4yKhnN6KedoXMv4hVqgcKHGRnxOMJP64tErqrQU+4cihhpbJXg==", + "requires": { + "body-parser": "^1.18.2" + } + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "change-case": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==" + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz", + "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", + "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "creato": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/creato/-/creato-1.1.0.tgz", + "integrity": "sha512-fxVZGER1+o5HTBtGYuQEtaYe4uTvplCoPm28uu/7nMzMdBdPvZJlA5qyONJUEevJQGssWJxcmrGMOOCbv25CeA==", + "requires": { + "chalk": "^2.4.2", + "inquirer": "^7.0.0", + "mkdirp": "^0.5.1", + "ora": "^4.0.2", + "parse-github-url": "^1.0.2", + "request": "^2.88.0", + "tar": "^5.0.5", + "tmp": "^0.1.0", + "update-notifier": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", + "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "inquirer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", + "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "ora": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz", + "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==", + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + } + } + }, + "cross-fetch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz", + "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "cucumber-html-reporter": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/cucumber-html-reporter/-/cucumber-html-reporter-3.0.4.tgz", + "integrity": "sha512-uit68jymdI8Z6m+kJ5YnJPeHf5IdYXt2j52l5xLwgpcLBQRhCvr1peV9UODaCN5nLnRN9nqh1qaw4iNp1rTpvQ==", + "requires": { + "find": "^0.2.7", + "fs-extra": "^3.0.1", + "js-base64": "^2.3.2", + "jsonfile": "^3.0.0", + "lodash": "^4.17.2", + "open": "0.0.5" + }, + "dependencies": { + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.0.tgz", + "integrity": "sha512-WE2sZoctWm/v4smfCAdjYbrfS55JiMRdlY9ZubFhsYbteCK9+BvAx4YV7nPjYM6ZnX5BcoVKwfmyx9sIFTgQMQ==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "deprecated-decorator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", + "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + } + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" + }, + "disparity": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/disparity/-/disparity-2.0.0.tgz", + "integrity": "sha1-V92stHMkrl9Y0swNqIbbTOnutxg=", + "requires": { + "ansi-styles": "^2.0.1", + "diff": "^1.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + } + } + }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "requires": { + "no-case": "^2.2.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "express-request-proxy": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/express-request-proxy/-/express-request-proxy-2.2.2.tgz", + "integrity": "sha512-0Dzn6LQG0ohd2S+zJVMhsntwcDakEzm/uKJSZxH7B66ZBvTsB5LU/HvfO1dHG+RRiKuCg0aWfUa66PljnDjEdw==", + "requires": { + "async": "^2.6.1", + "body-parser": "^1.18.3", + "camel-case": "^3.0.0", + "debug": "^3.1.0", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "path-to-regexp": "^1.1.1", + "request": "^2.87.0", + "simple-errors": "^1.0.1", + "through2": "^2.0.3", + "type-is": "^1.6.16", + "url-join": "4.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/find/-/find-0.2.9.tgz", + "integrity": "sha1-S3Px/55WrZG3bnFkB/5f/mVUu4w=", + "requires": { + "traverse-chain": "~0.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "flow-bin": { + "version": "0.87.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.87.0.tgz", + "integrity": "sha512-mnvBXXZkUp4y6A96bR5BHa3q1ioIIN2L10w5osxJqagAakTXFYZwjl0t9cT3y2aCEf1wnK6n91xgYypQS/Dqbw==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "format-util": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.3.tgz", + "integrity": "sha1-Ay3KShFiYqEsQ/TD7IVmQWxbLZU=" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-capacitor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-1.0.1.tgz", + "integrity": "sha512-XdZK0Q78WP29Vm3FGgJRhRhrBm51PagovzWtW2kJ3Q6cYJbGtZqWSGTSPwvtEkyjIirFd7b8Yes/dpOYjt4RRQ==" + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.0.0.tgz", + "integrity": "sha512-40Qz+LFXmd9tzYVnnBmZvFfvAADfUA14TXPK1s7IfElJTIZ97rA8w4Kin7Wt5JBrC3ShnnFJO/5vPjPEeJIq9A==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "graphcool-json-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/graphcool-json-schema/-/graphcool-json-schema-1.2.1.tgz", + "integrity": "sha1-bO+2yLUFQ2FebvpDu1T54/uygfM=" + }, + "graphcool-yml": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/graphcool-yml/-/graphcool-yml-0.4.15.tgz", + "integrity": "sha512-ZVbRfVI8l21+1JQkcG0XuRam9mgiVUh9/PIcluzCZca2+lZQg/e1WCDXpwsC69i2ZdPcZwpOCLFKQMg5rnulCA==", + "requires": { + "ajv": "^5.5.1", + "bluebird": "^3.5.1", + "debug": "^3.1.0", + "dotenv": "^4.0.0", + "fs-extra": "^4.0.3", + "graphcool-json-schema": "1.2.1", + "isomorphic-fetch": "^2.2.1", + "js-yaml": "^3.10.0", + "json-stable-stringify": "^1.0.1", + "jsonwebtoken": "^8.1.0", + "lodash": "^4.17.4", + "replaceall": "^0.1.6", + "scuid": "^1.0.2", + "yaml-ast-parser": "^0.0.40" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "graphql": { + "version": "14.5.8", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.5.8.tgz", + "integrity": "sha512-MMwmi0zlVLQKLdGiMfWkgQD7dY/TUKt4L+zgJ/aR0Howebod3aNgP5JkgvAULiR2HPVZaP2VEElqtdidHweLkg==", + "requires": { + "iterall": "^1.2.2" + } + }, + "graphql-binding": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/graphql-binding/-/graphql-binding-2.5.2.tgz", + "integrity": "sha512-CUDidmx/Ql6bB3Jz9owZK4TlSfD58/dJEXeGVPn6Zl0qrLjxZI+jhovxYw4ArU6cLG/NdadsSg62PlR1M6+reg==", + "requires": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0", + "graphql-import": "^0.7.1", + "graphql-tools": "4.0.5", + "iterall": "1.2.2", + "object-path-immutable": "^3.0.0", + "resolve-cwd": "^2.0.0", + "ts-node": "^7.0.1", + "yargs": "^12.0.2" + }, + "dependencies": { + "graphql-tools": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.5.tgz", + "integrity": "sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q==", + "requires": { + "apollo-link": "^1.2.3", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" + } + } + } + }, + "graphql-cli": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/graphql-cli/-/graphql-cli-3.0.14.tgz", + "integrity": "sha512-YNLHnZsePE2rJycM4E79sE4dx9G1S3rRbKdSbQEFEjOr1wHMEVzvZ3mL4Er6yqIYNWNC95HpQjxfCbjBBxRyng==", + "requires": { + "apollo-codegen": "^0.20.2", + "chalk": "^2.4.1", + "command-exists": "^1.2.8", + "creato": "^1.0.3", + "cross-spawn": "^6.0.5", + "disparity": "^2.0.0", + "dotenv": "^6.1.0", + "express": "^4.16.4", + "express-request-proxy": "^2.2.2", + "graphql": "^14.0.2", + "graphql-cli-prepare": "1.4.19", + "graphql-config": "2.2.1", + "graphql-config-extension-graphcool": "1.0.11", + "graphql-config-extension-prisma": "0.3.0", + "graphql-playground-middleware-express": "1.7.12", + "graphql-schema-linter": "0.2.1", + "inquirer": "6.2.0", + "is-url-superb": "2.0.0", + "js-yaml": "^3.12.0", + "lodash": "^4.17.11", + "mkdirp": "^0.5.1", + "node-fetch": "^2.3.0", + "npm-paths": "^1.0.0", + "npm-run": "4.1.2", + "opn": "^5.4.0", + "ora": "^3.0.0", + "rimraf": "2.7.1", + "source-map-support": "^0.5.9", + "tmp-graphql-config-extension-openapi": "^1.0.7", + "update-notifier": "^2.5.0", + "yargs": "12.0.5" + }, + "dependencies": { + "graphql-playground-middleware-express": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.12.tgz", + "integrity": "sha512-17szgonnVSxWVrgblLRHHLjWnMUONfkULIwSunaMvYx8k5oG3yL86cyGCbHuDFUFkyr2swLhdfYl4mDfDXuvOA==", + "requires": { + "graphql-playground-html": "1.6.12" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + } + } + }, + "graphql-cli-prepare": { + "version": "1.4.19", + "resolved": "https://registry.npmjs.org/graphql-cli-prepare/-/graphql-cli-prepare-1.4.19.tgz", + "integrity": "sha512-PJFm9/DvfZwKz3h2Wyn/5Sr/sX35XsYzNO3olfm5V8qqueNIONI0g7sVqpF7wYdvhEtt/8YA9DjgrGclCbpMfA==", + "requires": { + "chalk": "2.3.1", + "fs-extra": "5.0.0", + "graphql-import": "0.4.5", + "graphql-static-binding": "0.9.3", + "lodash": "4.17.5" + }, + "dependencies": { + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "^3.2.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.2.0" + } + }, + "graphql-import": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.4.5.tgz", + "integrity": "sha512-G/+I08Qp6/QGTb9qapknCm3yPHV0ZL7wbaalWFpxsfR8ZhZoTBe//LsbsCKlbALQpcMegchpJhpTSKiJjhaVqQ==", + "requires": { + "lodash": "^4.17.4" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + } + } + }, + "graphql-config": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.1.tgz", + "integrity": "sha512-U8+1IAhw9m6WkZRRcyj8ZarK96R6lQBQ0an4lp76Ps9FyhOXENC5YQOxOFGm5CxPrX2rD0g3Je4zG5xdNJjwzQ==", + "requires": { + "graphql-import": "^0.7.1", + "graphql-request": "^1.5.0", + "js-yaml": "^3.10.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.4" + } + }, + "graphql-config-extension-graphcool": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/graphql-config-extension-graphcool/-/graphql-config-extension-graphcool-1.0.11.tgz", + "integrity": "sha512-uNhyMqj30M4KLkD/gGEEr6cPuVX/jtm0C9O5Bj9V2jFhN5IdHXWJx+fC/p/xxh82iOuR8uibKNCXzwA7R6F6IA==", + "requires": { + "graphcool-yml": "0.4.15", + "graphql-config": "2.2.1" + } + }, + "graphql-config-extension-prisma": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/graphql-config-extension-prisma/-/graphql-config-extension-prisma-0.3.0.tgz", + "integrity": "sha512-bOufkkog0cSfHJ9gVD3Wy+KHmkSTHWcFfPaV/NVpIvfJx15gU0/CzuC6lcTjioWmn+UGzYdoqmP7OrJAWT57sw==", + "requires": { + "graphql-config": "2.2.1", + "prisma-yml": "1.26.6" + } + }, + "graphql-deduplicator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/graphql-deduplicator/-/graphql-deduplicator-2.0.5.tgz", + "integrity": "sha512-09yOnKej64C32saDU+jsQvIxDeYBTzDWhUkqE84AlCB6LUYuUktfgubZkOS3VdoFiYwsi2EL5Vc0wqemS9M3lg==" + }, + "graphql-extensions": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.0.10.tgz", + "integrity": "sha512-TnQueqUDCYzOSrpQb3q1ngDSP2otJSF+9yNLrQGPzkMsvnQ+v6e2d5tl+B35D4y+XpmvVnAn4T3ZK28mkILveA==", + "requires": { + "core-js": "^2.5.3", + "source-map-support": "^0.5.1" + } + }, + "graphql-import": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.7.1.tgz", + "integrity": "sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==", + "requires": { + "lodash": "^4.17.4", + "resolve-from": "^4.0.0" + } + }, + "graphql-middleware": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/graphql-middleware/-/graphql-middleware-4.0.1.tgz", + "integrity": "sha512-r9r+pcHV4yZW7LAOcjQYTbNY6nR9SrLgpVZKbrtgXxpQW/MUc1N8q3PESciebvp5s0EEUgRchcRjUkyaArCIFw==", + "requires": { + "graphql-tools": "^4.0.5" + } + }, + "graphql-playground-html": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.12.tgz", + "integrity": "sha512-yOYFwwSMBL0MwufeL8bkrNDgRE7eF/kTHiwrqn9FiR9KLcNIl1xw9l9a+6yIRZM56JReQOHpbQFXTZn1IuSKRg==" + }, + "graphql-playground-middleware-express": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.11.tgz", + "integrity": "sha512-sKItB4s3FxqlwCgXdMfwRAfssSoo31bcFsGAAg/HzaZLicY6CDlofKXP8G5iPDerB6NaoAcAaBLutLzl9sd4fQ==", + "requires": { + "graphql-playground-html": "1.6.12" + } + }, + "graphql-playground-middleware-lambda": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/graphql-playground-middleware-lambda/-/graphql-playground-middleware-lambda-1.7.12.tgz", + "integrity": "sha512-fJ1Y0Ck5ctmfaQFoWv7vNnVP7We19P3miVmOT85YPrjpzbMYv0wPfxm4Zjt8nnqXr0KU9nGW53tz3K7/Lvzxtw==", + "requires": { + "graphql-playground-html": "1.6.12" + } + }, + "graphql-request": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz", + "integrity": "sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==", + "requires": { + "cross-fetch": "2.2.2" + } + }, + "graphql-schema-linter": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/graphql-schema-linter/-/graphql-schema-linter-0.2.1.tgz", + "integrity": "sha512-Z0rKFkxvIXqktkd/4luMYgBXWZeVCp8VJysOKz3RtbcpqbiIpdwtH0J678xOQ+hJLwEfrdCrhKNxxvRpt6mCSg==", + "requires": { + "chalk": "^2.0.1", + "columnify": "^1.5.4", + "commander": "^2.11.0", + "cosmiconfig": "^5.2.1", + "glob": "^7.1.2", + "graphql": "^14.0.0" + } + }, + "graphql-static-binding": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/graphql-static-binding/-/graphql-static-binding-0.9.3.tgz", + "integrity": "sha512-C8+EqwNCiQxUhbrWEokxN16oINAkhIDBzEpKHXeatBRaAyMczXm0J6HMaMSKOuQmk7P1PbDHIVW3FVZwXF2WJQ==", + "requires": { + "cucumber-html-reporter": "^3.0.4" + } + }, + "graphql-subscriptions": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz", + "integrity": "sha512-0CaZnXKBw2pwnIbvmVckby5Ge5e2ecmjofhYCdyeACbCly2j3WXDP/pl+s+Dqd2GQFC7y99NB+53jrt55CKxYQ==", + "requires": { + "iterall": "^1.2.1" + } + }, + "graphql-tag": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.1.tgz", + "integrity": "sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg==" + }, + "graphql-tools": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.6.tgz", + "integrity": "sha512-jHLQw8x3xmSNRBCsaZqelXXsFfUSUSktSCUP8KYHiX1Z9qEuwcMpAf+FkdBzk8aTAFqOlPdNZ3OI4DKKqGKUqg==", + "requires": { + "apollo-link": "^1.2.3", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" + } + }, + "graphql-upload": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz", + "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==", + "requires": { + "busboy": "^0.3.1", + "fs-capacitor": "^2.0.4", + "http-errors": "^1.7.3", + "object-path": "^0.11.4" + }, + "dependencies": { + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "requires": { + "dicer": "0.3.0" + } + }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "requires": { + "streamsearch": "0.1.2" + } + }, + "fs-capacitor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", + "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" + } + } + }, + "graphql-yoga": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/graphql-yoga/-/graphql-yoga-1.18.3.tgz", + "integrity": "sha512-tR6JYbwLSBVu0Z8M7BIyt1PHhhexmRwneYM8Ru/g2pixrtsWbelBFAXU7bDPhXrqZ49Zxt2zLJ60x3bLNGo/bQ==", + "requires": { + "@types/aws-lambda": "8.10.13", + "@types/cors": "^2.8.4", + "@types/express": "^4.11.1", + "@types/graphql": "^14.0.0", + "@types/graphql-deduplicator": "^2.0.0", + "@types/zen-observable": "^0.5.3", + "apollo-server-express": "^1.3.6", + "apollo-server-lambda": "1.3.6", + "apollo-upload-server": "^7.0.0", + "body-parser-graphql": "1.1.0", + "cors": "^2.8.4", + "express": "^4.16.3", + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0", + "graphql-deduplicator": "^2.0.1", + "graphql-import": "^0.7.0", + "graphql-middleware": "4.0.1", + "graphql-playground-middleware-express": "1.7.11", + "graphql-playground-middleware-lambda": "1.7.12", + "graphql-subscriptions": "^0.5.8", + "graphql-tools": "^4.0.0", + "graphql-upload": "^8.0.0", + "subscriptions-transport-ws": "^0.9.8" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==" + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-link-dataloader": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/http-link-dataloader/-/http-link-dataloader-0.1.6.tgz", + "integrity": "sha512-r9B/n+SR32k++Z3MIAumI+Kv6ucL3+3ZfqcvGECWVkUc2BmfUWKu6gkPH7+uR1UKyUUJyuZENOLS/RDXVyXVTA==", + "requires": { + "apollo-link": "^1.2.3", + "cross-fetch": "2.2.2", + "dataloader": "^1.4.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflected": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.0.4.tgz", + "integrity": "sha512-HQPzFLTTUvwfeUH6RAGjD8cHS069mBqXG5n4qaxX7sJXBhVQrsGgF+0ZJGkSuN6a8pcUWB/GXStta11kKi/WvA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", + "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=" + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "requires": { + "isobject": "^4.0.0" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-url-superb": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-2.0.0.tgz", + "integrity": "sha1-tyihjPaS5NFtprlMdAioEdsNBJI=", + "requires": { + "url-regex": "^3.0.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "iterall": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.2.tgz", + "integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==" + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-ref-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-3.3.1.tgz", + "integrity": "sha512-stQTMhec2R/p2L9dH4XXRlpNCP0mY8QrLd/9Kl+8SHJQmwHtE1nDfXH4wbsSM+GkJMl8t92yZbI0OIol432CIQ==", + "requires": { + "call-me-maybe": "^1.0.1", + "debug": "^3.0.0", + "es6-promise": "^4.1.1", + "js-yaml": "^3.9.1", + "ono": "^4.0.2", + "z-schema": "^3.18.2" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "requires": { + "lower-case": "^1.1.2" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "requires": { + "make-error": "^1.2.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" + }, + "mime-types": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "requires": { + "mime-db": "1.42.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" + }, + "node-request-by-swagger": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/node-request-by-swagger/-/node-request-by-swagger-1.1.4.tgz", + "integrity": "sha512-hwaTaFPUwNKns5qXwGJpLQM3Z5zRluYeAxpYy1L8fWmWdT/DjLmsnW8/oGlSN8Vo4R28c2znfUoBUiB/RlPptw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, + "npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", + "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", + "requires": { + "which": "^1.2.10" + } + }, + "npm-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/npm-paths/-/npm-paths-1.0.0.tgz", + "integrity": "sha512-COlxSO5PK9UvZXIa7/sqJDZOlffWFx9+CKJJWkdbhUJMBwcf9sof2jxt4uiVsl+nY3sy0/XFGl4iGr8GoKfiXA==", + "requires": { + "global-modules": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "npm-run": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npm-run/-/npm-run-4.1.2.tgz", + "integrity": "sha1-EDDh7FaQjIn8w/o2bQOiwrqY65k=", + "requires": { + "cross-spawn": "^5.1.0", + "minimist": "^1.2.0", + "npm-path": "^2.0.3", + "npm-which": "^3.0.1", + "serializerr": "^1.0.3", + "sync-exec": "^0.6.2" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "requires": { + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=" + }, + "object-path-immutable": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/object-path-immutable/-/object-path-immutable-3.1.1.tgz", + "integrity": "sha512-NZDdPo/DEufre4+CyYZ7j6YQnWvKWnnGS+VS7dVd9M6WNcvFfnR4mW1lmakg9eCABAeE+PZW3bN/ZUTL8063IQ==", + "requires": { + "is-plain-object": "3.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } + } + }, + "ono": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz", + "integrity": "sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==", + "requires": { + "format-util": "^1.0.3" + } + }, + "open": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz", + "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=" + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "requires": { + "no-case": "^2.2.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "popsicle": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/popsicle/-/popsicle-10.0.1.tgz", + "integrity": "sha512-IFVBRz+hc05+MiVDH+KH9QoeE6gjFOiIZNxKePIwz+JbH/yP9rLreUT9+GocxRweYBiRh7O9+MfI5X1zKfSH6Q==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/methods": "^1.1.0", + "@types/tough-cookie": "^2.3.0", + "concat-stream": "^1.4.7", + "form-data": "^2.0.0", + "make-error-cause": "^1.2.1", + "tough-cookie": "^2.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "prettier": { + "version": "1.16.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", + "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==" + }, + "prisma-binding": { + "version": "2.3.16", + "resolved": "https://registry.npmjs.org/prisma-binding/-/prisma-binding-2.3.16.tgz", + "integrity": "sha512-ke8FOEdM9JQD4MsUPL7zwpck7cQjGtPJfqJknEA7HWXH1bvocyvWoBEVDB2I/GCu4tl4EVuJR+I4eAI9sFUOwg==", + "requires": { + "apollo-link": "1.2.13", + "apollo-link-error": "1.1.12", + "apollo-link-ws": "1.0.19", + "cross-fetch": "3.0.4", + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0", + "graphql-binding": "2.5.2", + "graphql-import": "0.7.1", + "graphql-tools": "4.0.5", + "http-link-dataloader": "^0.1.6", + "jsonwebtoken": "8.5.1", + "subscriptions-transport-ws": "0.9.16", + "yargs": "12.0.5" + }, + "dependencies": { + "cross-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz", + "integrity": "sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==", + "requires": { + "node-fetch": "2.6.0", + "whatwg-fetch": "3.0.0" + } + }, + "graphql-tools": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.5.tgz", + "integrity": "sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q==", + "requires": { + "apollo-link": "^1.2.3", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + } + } + }, + "prisma-client-lib": { + "version": "1.34.10", + "resolved": "https://registry.npmjs.org/prisma-client-lib/-/prisma-client-lib-1.34.10.tgz", + "integrity": "sha512-faMDYpYyToeD0HZZunbuozljWw/o2MEEuja96ADElTohuM688ZyOec9wL+oZxgFib0abz68FqmHdig8lgvc2HQ==", + "requires": { + "@types/node": "^10.12.0", + "@types/prettier": "^1.13.2", + "debug": "^4.1.0", + "flow-bin": "^0.87.0", + "graphql-tag": "^2.10.0", + "http-link-dataloader": "^0.1.6", + "jsonwebtoken": "^8.3.0", + "lodash.flatten": "^4.4.0", + "prettier": "1.16.4", + "prisma-datamodel": "1.34.10", + "prisma-generate-schema": "1.34.10", + "subscriptions-transport-ws": "^0.9.15", + "uppercamelcase": "^3.0.0", + "ws": "^6.1.0", + "zen-observable": "^0.8.10" + }, + "dependencies": { + "@types/node": { + "version": "10.17.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.5.tgz", + "integrity": "sha512-RElZIr/7JreF1eY6oD5RF3kpmdcreuQPjg5ri4oQ5g9sq7YWU8HkfB3eH8GwAwxf5OaCh0VPi7r4N/yoTGelrA==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "prisma-datamodel": { + "version": "1.34.10", + "resolved": "https://registry.npmjs.org/prisma-datamodel/-/prisma-datamodel-1.34.10.tgz", + "integrity": "sha512-pTIG/yR/EynDJXGt4O1DiuwJDKb3U8Oo/bRu8I8YbGWR+6MSbRHnsScHe5SFHituhCfbuP5T3iagFkJYtHwbVQ==", + "requires": { + "debug": "^4.1.1", + "graphql": "^14.3.0", + "pluralize": "^7.0.0", + "popsicle": "10" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "prisma-generate-schema": { + "version": "1.34.10", + "resolved": "https://registry.npmjs.org/prisma-generate-schema/-/prisma-generate-schema-1.34.10.tgz", + "integrity": "sha512-u2wYeJVELhUKlfy6FAjqg1p8olPRyWj1GEUhn9Nv130e6PfmblmqwSo4h9tvLxW08bqsohcKF0NgiTtjqxwqGQ==", + "requires": { + "graphql": "^14.3.0", + "pluralize": "^7.0.0", + "popsicle": "10", + "prisma-datamodel": "1.34.10" + } + }, + "prisma-json-schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/prisma-json-schema/-/prisma-json-schema-0.1.3.tgz", + "integrity": "sha512-XZrf2080oR81mY8/OC8al68HiwBm0nXlFE727JIia0ZbNqwuV4MyRYk6E0+OIa6/9KEYxZrcAmoBs3EW1cCvnA==" + }, + "prisma-yml": { + "version": "1.26.6", + "resolved": "https://registry.npmjs.org/prisma-yml/-/prisma-yml-1.26.6.tgz", + "integrity": "sha512-dWBTeQbyWr/4d97ZKjxFPvIHytnNlBsNzgsJC1eew3qoZ9A8vtRIFhsnPiD3kYIf67w56i2QO2O5Infe2FzMww==", + "requires": { + "ajv": "5", + "bluebird": "^3.5.1", + "chalk": "^2.3.0", + "debug": "^3.1.0", + "dotenv": "^4.0.0", + "fs-extra": "^7.0.0", + "graphql-request": "^1.5.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "isomorphic-fetch": "^2.2.1", + "js-yaml": "^3.10.0", + "json-stable-stringify": "^1.0.1", + "jsonwebtoken": "^8.1.0", + "lodash": "^4.17.4", + "prisma-json-schema": "0.1.3", + "replaceall": "^0.1.6", + "scuid": "^1.0.2", + "yaml-ast-parser": "^0.0.40" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "protochain": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/protochain/-/protochain-1.0.5.tgz", + "integrity": "sha1-mRxAfpneJkqt+PgVBLXn+ve/omA=" + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "registry-auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", + "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", + "requires": { + "rc": "^1.2.8", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "replaceall": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz", + "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=" + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "request-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz", + "integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==", + "requires": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "requires": { + "lodash": "^4.17.15" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "serializerr": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/serializerr/-/serializerr-1.0.3.tgz", + "integrity": "sha1-EtTFqhw/+49tHcXzlaqUVVacP5E=", + "requires": { + "protochain": "^1.0.5" + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-errors/-/simple-errors-1.0.1.tgz", + "integrity": "sha1-sLvsrB8QgvE7OWKJS0qeiPOgye8=", + "requires": { + "errno": "^0.1.1" + } + }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "subscriptions-transport-ws": { + "version": "0.9.16", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz", + "integrity": "sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "sync-exec": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", + "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=" + }, + "tar": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-5.0.5.tgz", + "integrity": "sha512-MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ==", + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^0.5.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "requires": { + "rimraf": "^2.6.3" + } + }, + "tmp-graphql-config-extension-openapi": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tmp-graphql-config-extension-openapi/-/tmp-graphql-config-extension-openapi-1.0.7.tgz", + "integrity": "sha512-NQPUaywaVC2hzWkBBsTX3sV2XfxU0mc409rJyrA7iCu5DSTjMLUqI+U4KJVSy/Ltp0zgbWMWua471R7zMql9Pw==", + "requires": { + "@kbrandwijk/swagger-to-graphql": "2.4.3", + "graphql-config": "2.2.1" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "traverse-chain": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", + "integrity": "sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "^1.9.3" + } + }, + "ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "dependencies": { + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "^4.0.0" + } + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "^1.1.1" + } + }, + "uppercamelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uppercamelcase/-/uppercamelcase-3.0.0.tgz", + "integrity": "sha1-OAsyG41zy6Fv7E11KldRUtHvcxc=", + "requires": { + "camelcase": "^4.1.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=" + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", + "requires": { + "ip-regex": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validator": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", + "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yaml-ast-parser": { + "version": "0.0.40", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.40.tgz", + "integrity": "sha1-CFNtTnPTIrHJziB6uN1w4E0grm4=" + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "requires": { + "camelcase": "^4.1.0" + } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" + }, + "z-schema": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.25.1.tgz", + "integrity": "sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q==", + "requires": { + "commander": "^2.7.1", + "core-js": "^2.5.7", + "lodash.get": "^4.0.0", + "lodash.isequal": "^4.0.0", + "validator": "^10.0.0" + } + }, + "zen-observable": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.14.tgz", + "integrity": "sha512-kQz39uonEjEESwh+qCi83kcC3rZJGh4mrZW7xjkSQYXkq//JZHTtKo+6yuVloTgMtzsIWOJrjIrKvk/dqm0L5g==" + }, + "zen-observable-ts": { + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz", + "integrity": "sha512-2rkjiPALhOtRaDX6pWyNqK1fnP5KkJJybYebopNSn6wDG1lxBoFs2+nwwXKoA6glHIrtwrfBBy6da0stkKtTAA==", + "requires": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bc69924 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "1", + "version": "1.0.0", + "description": "", + "main": "server.js", + "scripts": { + "start": "nodemon src/index.js" + }, + "author": "", + "license": "ISC", + "dependencies": { + "graphql-cli": "^3.0.14", + "graphql-yoga": "^1.18.3", + "prisma-binding": "^2.3.16", + "prisma-client-lib": "^1.34.10", + "uuid": "^3.3.3" + } +} diff --git a/prisma-client-tests.txt b/prisma-client-tests.txt new file mode 100644 index 0000000..53ac6ea --- /dev/null +++ b/prisma-client-tests.txt @@ -0,0 +1,92 @@ +// prisma +// .createPost({ +// title: "prisma client post", +// body: "hello", +// published: true, +// author: { +// connect: { email: "jean@hotmail.com" } +// } +// }) +// .then(console.log) +// .catch(e => console.log(e)) + +// prisma +// .createComment({ +// text: "prisma client comment.", +// author: { +// connect: { +// email: "carlos@hotmail.com" +// } +// }, +// post: { +// connect: { +// id: "ck338gs8t00750763f5lc0yrn" +// } +// } +// }) +// .then(console.log); + +const createPostForUser = async (authorId, data) => { + const post = await prisma.createPost({ + ...data, + author: { + connect: {id: authorId} + } + }); + + const user = await prisma + .users({ + where: { + id: authorId + } + }) + .$fragment(`fragment f on users { id name email posts {id title}}`); + + return user; +}; + +createPostForUser( + "ck337se9y00400763sb6h2t5q", + { + title: "susano post", + body: "hello", + published: true + } +).then(console.log) + +\\\\\\\\\\\\\\\\\\\\\\\ + +const updatePostForUser = async (postId, data) => { + const user = await prisma.updatePost({ + data: {...data}, + where: { + id: postId + } + }).author(); + console.log(user); +}; + +updatePostForUser("ck338gs8t00750763f5lc0yrn", { + title: "updated post using async-await" +}) +//////////////////////////////// + +const updatePostForUser = async (postId, data) => { + const postExists = await prisma.$exists.post({ id: postId }); + if (!postExists) throw new Error("post not found"); + + const user = await prisma + .updatePost({ + data: { ...data }, + where: { + id: postId + } + }) + .author(); + + console.log(user); +}; + +updatePostForUser("ck338gs8t00750763f5lc0yrn", { + title: "updated post using async-await" +}).catch(err => console.log(err)); \ No newline at end of file diff --git a/prisma-review-website/datamodel.prisma b/prisma-review-website/datamodel.prisma new file mode 100644 index 0000000..ed62c68 --- /dev/null +++ b/prisma-review-website/datamodel.prisma @@ -0,0 +1,22 @@ +type User { + id: ID! @id + username: String! @unique + reviews: [Review] @relation(name: "ReviewByUser" onDelete: CASCADE) +} + +type Book { + id: ID! @id + title: String! + author: String! + isbn: String! @unique + reviews: [Review] @relation(name: "ReviewToBook" onDelete: CASCADE) +} + +type Review { + id: ID! @id + text: String + rating: Int! + author: User! @relation(name: "ReviewByUser" onDelete: SET_NULL) + book: Book! @relation(name: "ReviewToBook" onDelete: SET_NULL) +} + diff --git a/prisma-review-website/generated/prisma-client/index.d.ts b/prisma-review-website/generated/prisma-client/index.d.ts new file mode 100644 index 0000000..5a2279c --- /dev/null +++ b/prisma-review-website/generated/prisma-client/index.d.ts @@ -0,0 +1,1205 @@ +// Code generated by Prisma (prisma@1.34.10). DO NOT EDIT. +// Please don't change this file manually but run `prisma generate` to update it. +// For more information, please read the docs: https://www.prisma.io/docs/prisma-client/ + +import { DocumentNode } from "graphql"; +import { + makePrismaClientClass, + BaseClientOptions, + Model +} from "prisma-client-lib"; +import { typeDefs } from "./prisma-schema"; + +export type AtLeastOne }> = Partial & + U[keyof U]; + +export type Maybe = T | undefined | null; + +export interface Exists { + book: (where?: BookWhereInput) => Promise; + review: (where?: ReviewWhereInput) => Promise; + user: (where?: UserWhereInput) => Promise; +} + +export interface Node {} + +export type FragmentableArray = Promise> & Fragmentable; + +export interface Fragmentable { + $fragment(fragment: string | DocumentNode): Promise; +} + +export interface Prisma { + $exists: Exists; + $graphql: ( + query: string, + variables?: { [key: string]: any } + ) => Promise; + + /** + * Queries + */ + + book: (where: BookWhereUniqueInput) => BookNullablePromise; + books: (args?: { + where?: BookWhereInput; + orderBy?: BookOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => FragmentableArray; + booksConnection: (args?: { + where?: BookWhereInput; + orderBy?: BookOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => BookConnectionPromise; + review: (where: ReviewWhereUniqueInput) => ReviewNullablePromise; + reviews: (args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => FragmentableArray; + reviewsConnection: (args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => ReviewConnectionPromise; + user: (where: UserWhereUniqueInput) => UserNullablePromise; + users: (args?: { + where?: UserWhereInput; + orderBy?: UserOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => FragmentableArray; + usersConnection: (args?: { + where?: UserWhereInput; + orderBy?: UserOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => UserConnectionPromise; + node: (args: { id: ID_Output }) => Node; + + /** + * Mutations + */ + + createBook: (data: BookCreateInput) => BookPromise; + updateBook: (args: { + data: BookUpdateInput; + where: BookWhereUniqueInput; + }) => BookPromise; + updateManyBooks: (args: { + data: BookUpdateManyMutationInput; + where?: BookWhereInput; + }) => BatchPayloadPromise; + upsertBook: (args: { + where: BookWhereUniqueInput; + create: BookCreateInput; + update: BookUpdateInput; + }) => BookPromise; + deleteBook: (where: BookWhereUniqueInput) => BookPromise; + deleteManyBooks: (where?: BookWhereInput) => BatchPayloadPromise; + createReview: (data: ReviewCreateInput) => ReviewPromise; + updateReview: (args: { + data: ReviewUpdateInput; + where: ReviewWhereUniqueInput; + }) => ReviewPromise; + updateManyReviews: (args: { + data: ReviewUpdateManyMutationInput; + where?: ReviewWhereInput; + }) => BatchPayloadPromise; + upsertReview: (args: { + where: ReviewWhereUniqueInput; + create: ReviewCreateInput; + update: ReviewUpdateInput; + }) => ReviewPromise; + deleteReview: (where: ReviewWhereUniqueInput) => ReviewPromise; + deleteManyReviews: (where?: ReviewWhereInput) => BatchPayloadPromise; + createUser: (data: UserCreateInput) => UserPromise; + updateUser: (args: { + data: UserUpdateInput; + where: UserWhereUniqueInput; + }) => UserPromise; + updateManyUsers: (args: { + data: UserUpdateManyMutationInput; + where?: UserWhereInput; + }) => BatchPayloadPromise; + upsertUser: (args: { + where: UserWhereUniqueInput; + create: UserCreateInput; + update: UserUpdateInput; + }) => UserPromise; + deleteUser: (where: UserWhereUniqueInput) => UserPromise; + deleteManyUsers: (where?: UserWhereInput) => BatchPayloadPromise; + + /** + * Subscriptions + */ + + $subscribe: Subscription; +} + +export interface Subscription { + book: ( + where?: BookSubscriptionWhereInput + ) => BookSubscriptionPayloadSubscription; + review: ( + where?: ReviewSubscriptionWhereInput + ) => ReviewSubscriptionPayloadSubscription; + user: ( + where?: UserSubscriptionWhereInput + ) => UserSubscriptionPayloadSubscription; +} + +export interface ClientConstructor { + new (options?: BaseClientOptions): T; +} + +/** + * Types + */ + +export type ReviewOrderByInput = + | "id_ASC" + | "id_DESC" + | "text_ASC" + | "text_DESC" + | "rating_ASC" + | "rating_DESC"; + +export type BookOrderByInput = + | "id_ASC" + | "id_DESC" + | "title_ASC" + | "title_DESC" + | "author_ASC" + | "author_DESC" + | "isbn_ASC" + | "isbn_DESC"; + +export type UserOrderByInput = + | "id_ASC" + | "id_DESC" + | "username_ASC" + | "username_DESC"; + +export type MutationType = "CREATED" | "UPDATED" | "DELETED"; + +export type BookWhereUniqueInput = AtLeastOne<{ + id: Maybe; + isbn?: Maybe; +}>; + +export interface ReviewWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + text?: Maybe; + text_not?: Maybe; + text_in?: Maybe; + text_not_in?: Maybe; + text_lt?: Maybe; + text_lte?: Maybe; + text_gt?: Maybe; + text_gte?: Maybe; + text_contains?: Maybe; + text_not_contains?: Maybe; + text_starts_with?: Maybe; + text_not_starts_with?: Maybe; + text_ends_with?: Maybe; + text_not_ends_with?: Maybe; + rating?: Maybe; + rating_not?: Maybe; + rating_in?: Maybe; + rating_not_in?: Maybe; + rating_lt?: Maybe; + rating_lte?: Maybe; + rating_gt?: Maybe; + rating_gte?: Maybe; + author?: Maybe; + book?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface UserWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + username?: Maybe; + username_not?: Maybe; + username_in?: Maybe; + username_not_in?: Maybe; + username_lt?: Maybe; + username_lte?: Maybe; + username_gt?: Maybe; + username_gte?: Maybe; + username_contains?: Maybe; + username_not_contains?: Maybe; + username_starts_with?: Maybe; + username_not_starts_with?: Maybe; + username_ends_with?: Maybe; + username_not_ends_with?: Maybe; + reviews_every?: Maybe; + reviews_some?: Maybe; + reviews_none?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface BookWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + title?: Maybe; + title_not?: Maybe; + title_in?: Maybe; + title_not_in?: Maybe; + title_lt?: Maybe; + title_lte?: Maybe; + title_gt?: Maybe; + title_gte?: Maybe; + title_contains?: Maybe; + title_not_contains?: Maybe; + title_starts_with?: Maybe; + title_not_starts_with?: Maybe; + title_ends_with?: Maybe; + title_not_ends_with?: Maybe; + author?: Maybe; + author_not?: Maybe; + author_in?: Maybe; + author_not_in?: Maybe; + author_lt?: Maybe; + author_lte?: Maybe; + author_gt?: Maybe; + author_gte?: Maybe; + author_contains?: Maybe; + author_not_contains?: Maybe; + author_starts_with?: Maybe; + author_not_starts_with?: Maybe; + author_ends_with?: Maybe; + author_not_ends_with?: Maybe; + isbn?: Maybe; + isbn_not?: Maybe; + isbn_in?: Maybe; + isbn_not_in?: Maybe; + isbn_lt?: Maybe; + isbn_lte?: Maybe; + isbn_gt?: Maybe; + isbn_gte?: Maybe; + isbn_contains?: Maybe; + isbn_not_contains?: Maybe; + isbn_starts_with?: Maybe; + isbn_not_starts_with?: Maybe; + isbn_ends_with?: Maybe; + isbn_not_ends_with?: Maybe; + reviews_every?: Maybe; + reviews_some?: Maybe; + reviews_none?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export type ReviewWhereUniqueInput = AtLeastOne<{ + id: Maybe; +}>; + +export type UserWhereUniqueInput = AtLeastOne<{ + id: Maybe; + username?: Maybe; +}>; + +export interface BookCreateInput { + id?: Maybe; + title: String; + author: String; + isbn: String; + reviews?: Maybe; +} + +export interface ReviewCreateManyWithoutBookInput { + create?: Maybe; + connect?: Maybe; +} + +export interface ReviewCreateWithoutBookInput { + id?: Maybe; + text?: Maybe; + rating: Int; + author: UserCreateOneWithoutReviewsInput; +} + +export interface UserCreateOneWithoutReviewsInput { + create?: Maybe; + connect?: Maybe; +} + +export interface UserCreateWithoutReviewsInput { + id?: Maybe; + username: String; +} + +export interface BookUpdateInput { + title?: Maybe; + author?: Maybe; + isbn?: Maybe; + reviews?: Maybe; +} + +export interface ReviewUpdateManyWithoutBookInput { + create?: Maybe; + delete?: Maybe; + connect?: Maybe; + set?: Maybe; + disconnect?: Maybe; + update?: Maybe< + | ReviewUpdateWithWhereUniqueWithoutBookInput[] + | ReviewUpdateWithWhereUniqueWithoutBookInput + >; + upsert?: Maybe< + | ReviewUpsertWithWhereUniqueWithoutBookInput[] + | ReviewUpsertWithWhereUniqueWithoutBookInput + >; + deleteMany?: Maybe; + updateMany?: Maybe< + | ReviewUpdateManyWithWhereNestedInput[] + | ReviewUpdateManyWithWhereNestedInput + >; +} + +export interface ReviewUpdateWithWhereUniqueWithoutBookInput { + where: ReviewWhereUniqueInput; + data: ReviewUpdateWithoutBookDataInput; +} + +export interface ReviewUpdateWithoutBookDataInput { + text?: Maybe; + rating?: Maybe; + author?: Maybe; +} + +export interface UserUpdateOneRequiredWithoutReviewsInput { + create?: Maybe; + update?: Maybe; + upsert?: Maybe; + connect?: Maybe; +} + +export interface UserUpdateWithoutReviewsDataInput { + username?: Maybe; +} + +export interface UserUpsertWithoutReviewsInput { + update: UserUpdateWithoutReviewsDataInput; + create: UserCreateWithoutReviewsInput; +} + +export interface ReviewUpsertWithWhereUniqueWithoutBookInput { + where: ReviewWhereUniqueInput; + update: ReviewUpdateWithoutBookDataInput; + create: ReviewCreateWithoutBookInput; +} + +export interface ReviewScalarWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + text?: Maybe; + text_not?: Maybe; + text_in?: Maybe; + text_not_in?: Maybe; + text_lt?: Maybe; + text_lte?: Maybe; + text_gt?: Maybe; + text_gte?: Maybe; + text_contains?: Maybe; + text_not_contains?: Maybe; + text_starts_with?: Maybe; + text_not_starts_with?: Maybe; + text_ends_with?: Maybe; + text_not_ends_with?: Maybe; + rating?: Maybe; + rating_not?: Maybe; + rating_in?: Maybe; + rating_not_in?: Maybe; + rating_lt?: Maybe; + rating_lte?: Maybe; + rating_gt?: Maybe; + rating_gte?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface ReviewUpdateManyWithWhereNestedInput { + where: ReviewScalarWhereInput; + data: ReviewUpdateManyDataInput; +} + +export interface ReviewUpdateManyDataInput { + text?: Maybe; + rating?: Maybe; +} + +export interface BookUpdateManyMutationInput { + title?: Maybe; + author?: Maybe; + isbn?: Maybe; +} + +export interface ReviewCreateInput { + id?: Maybe; + text?: Maybe; + rating: Int; + author: UserCreateOneWithoutReviewsInput; + book: BookCreateOneWithoutReviewsInput; +} + +export interface BookCreateOneWithoutReviewsInput { + create?: Maybe; + connect?: Maybe; +} + +export interface BookCreateWithoutReviewsInput { + id?: Maybe; + title: String; + author: String; + isbn: String; +} + +export interface ReviewUpdateInput { + text?: Maybe; + rating?: Maybe; + author?: Maybe; + book?: Maybe; +} + +export interface BookUpdateOneRequiredWithoutReviewsInput { + create?: Maybe; + update?: Maybe; + upsert?: Maybe; + connect?: Maybe; +} + +export interface BookUpdateWithoutReviewsDataInput { + title?: Maybe; + author?: Maybe; + isbn?: Maybe; +} + +export interface BookUpsertWithoutReviewsInput { + update: BookUpdateWithoutReviewsDataInput; + create: BookCreateWithoutReviewsInput; +} + +export interface ReviewUpdateManyMutationInput { + text?: Maybe; + rating?: Maybe; +} + +export interface UserCreateInput { + id?: Maybe; + username: String; + reviews?: Maybe; +} + +export interface ReviewCreateManyWithoutAuthorInput { + create?: Maybe< + ReviewCreateWithoutAuthorInput[] | ReviewCreateWithoutAuthorInput + >; + connect?: Maybe; +} + +export interface ReviewCreateWithoutAuthorInput { + id?: Maybe; + text?: Maybe; + rating: Int; + book: BookCreateOneWithoutReviewsInput; +} + +export interface UserUpdateInput { + username?: Maybe; + reviews?: Maybe; +} + +export interface ReviewUpdateManyWithoutAuthorInput { + create?: Maybe< + ReviewCreateWithoutAuthorInput[] | ReviewCreateWithoutAuthorInput + >; + delete?: Maybe; + connect?: Maybe; + set?: Maybe; + disconnect?: Maybe; + update?: Maybe< + | ReviewUpdateWithWhereUniqueWithoutAuthorInput[] + | ReviewUpdateWithWhereUniqueWithoutAuthorInput + >; + upsert?: Maybe< + | ReviewUpsertWithWhereUniqueWithoutAuthorInput[] + | ReviewUpsertWithWhereUniqueWithoutAuthorInput + >; + deleteMany?: Maybe; + updateMany?: Maybe< + | ReviewUpdateManyWithWhereNestedInput[] + | ReviewUpdateManyWithWhereNestedInput + >; +} + +export interface ReviewUpdateWithWhereUniqueWithoutAuthorInput { + where: ReviewWhereUniqueInput; + data: ReviewUpdateWithoutAuthorDataInput; +} + +export interface ReviewUpdateWithoutAuthorDataInput { + text?: Maybe; + rating?: Maybe; + book?: Maybe; +} + +export interface ReviewUpsertWithWhereUniqueWithoutAuthorInput { + where: ReviewWhereUniqueInput; + update: ReviewUpdateWithoutAuthorDataInput; + create: ReviewCreateWithoutAuthorInput; +} + +export interface UserUpdateManyMutationInput { + username?: Maybe; +} + +export interface BookSubscriptionWhereInput { + mutation_in?: Maybe; + updatedFields_contains?: Maybe; + updatedFields_contains_every?: Maybe; + updatedFields_contains_some?: Maybe; + node?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface ReviewSubscriptionWhereInput { + mutation_in?: Maybe; + updatedFields_contains?: Maybe; + updatedFields_contains_every?: Maybe; + updatedFields_contains_some?: Maybe; + node?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface UserSubscriptionWhereInput { + mutation_in?: Maybe; + updatedFields_contains?: Maybe; + updatedFields_contains_every?: Maybe; + updatedFields_contains_some?: Maybe; + node?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface NodeNode { + id: ID_Output; +} + +export interface Book { + id: ID_Output; + title: String; + author: String; + isbn: String; +} + +export interface BookPromise extends Promise, Fragmentable { + id: () => Promise; + title: () => Promise; + author: () => Promise; + isbn: () => Promise; + reviews: >(args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface BookSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + title: () => Promise>; + author: () => Promise>; + isbn: () => Promise>; + reviews: >>(args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface BookNullablePromise + extends Promise, + Fragmentable { + id: () => Promise; + title: () => Promise; + author: () => Promise; + isbn: () => Promise; + reviews: >(args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface Review { + id: ID_Output; + text?: String; + rating: Int; +} + +export interface ReviewPromise extends Promise, Fragmentable { + id: () => Promise; + text: () => Promise; + rating: () => Promise; + author: () => T; + book: () => T; +} + +export interface ReviewSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + text: () => Promise>; + rating: () => Promise>; + author: () => T; + book: () => T; +} + +export interface ReviewNullablePromise + extends Promise, + Fragmentable { + id: () => Promise; + text: () => Promise; + rating: () => Promise; + author: () => T; + book: () => T; +} + +export interface User { + id: ID_Output; + username: String; +} + +export interface UserPromise extends Promise, Fragmentable { + id: () => Promise; + username: () => Promise; + reviews: >(args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface UserSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + username: () => Promise>; + reviews: >>(args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface UserNullablePromise + extends Promise, + Fragmentable { + id: () => Promise; + username: () => Promise; + reviews: >(args?: { + where?: ReviewWhereInput; + orderBy?: ReviewOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface BookConnection { + pageInfo: PageInfo; + edges: BookEdge[]; +} + +export interface BookConnectionPromise + extends Promise, + Fragmentable { + pageInfo: () => T; + edges: >() => T; + aggregate: () => T; +} + +export interface BookConnectionSubscription + extends Promise>, + Fragmentable { + pageInfo: () => T; + edges: >>() => T; + aggregate: () => T; +} + +export interface PageInfo { + hasNextPage: Boolean; + hasPreviousPage: Boolean; + startCursor?: String; + endCursor?: String; +} + +export interface PageInfoPromise extends Promise, Fragmentable { + hasNextPage: () => Promise; + hasPreviousPage: () => Promise; + startCursor: () => Promise; + endCursor: () => Promise; +} + +export interface PageInfoSubscription + extends Promise>, + Fragmentable { + hasNextPage: () => Promise>; + hasPreviousPage: () => Promise>; + startCursor: () => Promise>; + endCursor: () => Promise>; +} + +export interface BookEdge { + node: Book; + cursor: String; +} + +export interface BookEdgePromise extends Promise, Fragmentable { + node: () => T; + cursor: () => Promise; +} + +export interface BookEdgeSubscription + extends Promise>, + Fragmentable { + node: () => T; + cursor: () => Promise>; +} + +export interface AggregateBook { + count: Int; +} + +export interface AggregateBookPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface AggregateBookSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface ReviewConnection { + pageInfo: PageInfo; + edges: ReviewEdge[]; +} + +export interface ReviewConnectionPromise + extends Promise, + Fragmentable { + pageInfo: () => T; + edges: >() => T; + aggregate: () => T; +} + +export interface ReviewConnectionSubscription + extends Promise>, + Fragmentable { + pageInfo: () => T; + edges: >>() => T; + aggregate: () => T; +} + +export interface ReviewEdge { + node: Review; + cursor: String; +} + +export interface ReviewEdgePromise extends Promise, Fragmentable { + node: () => T; + cursor: () => Promise; +} + +export interface ReviewEdgeSubscription + extends Promise>, + Fragmentable { + node: () => T; + cursor: () => Promise>; +} + +export interface AggregateReview { + count: Int; +} + +export interface AggregateReviewPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface AggregateReviewSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface UserConnection { + pageInfo: PageInfo; + edges: UserEdge[]; +} + +export interface UserConnectionPromise + extends Promise, + Fragmentable { + pageInfo: () => T; + edges: >() => T; + aggregate: () => T; +} + +export interface UserConnectionSubscription + extends Promise>, + Fragmentable { + pageInfo: () => T; + edges: >>() => T; + aggregate: () => T; +} + +export interface UserEdge { + node: User; + cursor: String; +} + +export interface UserEdgePromise extends Promise, Fragmentable { + node: () => T; + cursor: () => Promise; +} + +export interface UserEdgeSubscription + extends Promise>, + Fragmentable { + node: () => T; + cursor: () => Promise>; +} + +export interface AggregateUser { + count: Int; +} + +export interface AggregateUserPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface AggregateUserSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface BatchPayload { + count: Long; +} + +export interface BatchPayloadPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface BatchPayloadSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface BookSubscriptionPayload { + mutation: MutationType; + node: Book; + updatedFields: String[]; + previousValues: BookPreviousValues; +} + +export interface BookSubscriptionPayloadPromise + extends Promise, + Fragmentable { + mutation: () => Promise; + node: () => T; + updatedFields: () => Promise; + previousValues: () => T; +} + +export interface BookSubscriptionPayloadSubscription + extends Promise>, + Fragmentable { + mutation: () => Promise>; + node: () => T; + updatedFields: () => Promise>; + previousValues: () => T; +} + +export interface BookPreviousValues { + id: ID_Output; + title: String; + author: String; + isbn: String; +} + +export interface BookPreviousValuesPromise + extends Promise, + Fragmentable { + id: () => Promise; + title: () => Promise; + author: () => Promise; + isbn: () => Promise; +} + +export interface BookPreviousValuesSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + title: () => Promise>; + author: () => Promise>; + isbn: () => Promise>; +} + +export interface ReviewSubscriptionPayload { + mutation: MutationType; + node: Review; + updatedFields: String[]; + previousValues: ReviewPreviousValues; +} + +export interface ReviewSubscriptionPayloadPromise + extends Promise, + Fragmentable { + mutation: () => Promise; + node: () => T; + updatedFields: () => Promise; + previousValues: () => T; +} + +export interface ReviewSubscriptionPayloadSubscription + extends Promise>, + Fragmentable { + mutation: () => Promise>; + node: () => T; + updatedFields: () => Promise>; + previousValues: () => T; +} + +export interface ReviewPreviousValues { + id: ID_Output; + text?: String; + rating: Int; +} + +export interface ReviewPreviousValuesPromise + extends Promise, + Fragmentable { + id: () => Promise; + text: () => Promise; + rating: () => Promise; +} + +export interface ReviewPreviousValuesSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + text: () => Promise>; + rating: () => Promise>; +} + +export interface UserSubscriptionPayload { + mutation: MutationType; + node: User; + updatedFields: String[]; + previousValues: UserPreviousValues; +} + +export interface UserSubscriptionPayloadPromise + extends Promise, + Fragmentable { + mutation: () => Promise; + node: () => T; + updatedFields: () => Promise; + previousValues: () => T; +} + +export interface UserSubscriptionPayloadSubscription + extends Promise>, + Fragmentable { + mutation: () => Promise>; + node: () => T; + updatedFields: () => Promise>; + previousValues: () => T; +} + +export interface UserPreviousValues { + id: ID_Output; + username: String; +} + +export interface UserPreviousValuesPromise + extends Promise, + Fragmentable { + id: () => Promise; + username: () => Promise; +} + +export interface UserPreviousValuesSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + username: () => Promise>; +} + +/* +The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. +*/ +export type ID_Input = string | number; +export type ID_Output = string; + +/* +The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. +*/ +export type String = string; + +/* +The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. +*/ +export type Int = number; + +/* +The `Boolean` scalar type represents `true` or `false`. +*/ +export type Boolean = boolean; + +export type Long = string; + +/** + * Model Metadata + */ + +export const models: Model[] = [ + { + name: "User", + embedded: false + }, + { + name: "Book", + embedded: false + }, + { + name: "Review", + embedded: false + } +]; + +/** + * Type Defs + */ + +export const prisma: Prisma; diff --git a/prisma-review-website/generated/prisma-client/index.js b/prisma-review-website/generated/prisma-client/index.js new file mode 100644 index 0000000..393bca6 --- /dev/null +++ b/prisma-review-website/generated/prisma-client/index.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var prisma_lib_1 = require("prisma-client-lib"); +var typeDefs = require("./prisma-schema").typeDefs; + +var models = [ + { + name: "User", + embedded: false + }, + { + name: "Book", + embedded: false + }, + { + name: "Review", + embedded: false + } +]; +exports.Prisma = prisma_lib_1.makePrismaClientClass({ + typeDefs, + models, + endpoint: `http://192.168.99.100:4466/reviews/default` +}); +exports.prisma = new exports.Prisma(); diff --git a/prisma-review-website/generated/prisma-client/prisma-schema.js b/prisma-review-website/generated/prisma-client/prisma-schema.js new file mode 100644 index 0000000..4ef2c20 --- /dev/null +++ b/prisma-review-website/generated/prisma-client/prisma-schema.js @@ -0,0 +1,642 @@ +module.exports = { + typeDefs: // Code generated by Prisma (prisma@1.34.10). DO NOT EDIT. + // Please don't change this file manually but run `prisma generate` to update it. + // For more information, please read the docs: https://www.prisma.io/docs/prisma-client/ + +/* GraphQL */ `type AggregateBook { + count: Int! +} + +type AggregateReview { + count: Int! +} + +type AggregateUser { + count: Int! +} + +type BatchPayload { + count: Long! +} + +type Book { + id: ID! + title: String! + author: String! + isbn: String! + reviews(where: ReviewWhereInput, orderBy: ReviewOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Review!] +} + +type BookConnection { + pageInfo: PageInfo! + edges: [BookEdge]! + aggregate: AggregateBook! +} + +input BookCreateInput { + id: ID + title: String! + author: String! + isbn: String! + reviews: ReviewCreateManyWithoutBookInput +} + +input BookCreateOneWithoutReviewsInput { + create: BookCreateWithoutReviewsInput + connect: BookWhereUniqueInput +} + +input BookCreateWithoutReviewsInput { + id: ID + title: String! + author: String! + isbn: String! +} + +type BookEdge { + node: Book! + cursor: String! +} + +enum BookOrderByInput { + id_ASC + id_DESC + title_ASC + title_DESC + author_ASC + author_DESC + isbn_ASC + isbn_DESC +} + +type BookPreviousValues { + id: ID! + title: String! + author: String! + isbn: String! +} + +type BookSubscriptionPayload { + mutation: MutationType! + node: Book + updatedFields: [String!] + previousValues: BookPreviousValues +} + +input BookSubscriptionWhereInput { + mutation_in: [MutationType!] + updatedFields_contains: String + updatedFields_contains_every: [String!] + updatedFields_contains_some: [String!] + node: BookWhereInput + AND: [BookSubscriptionWhereInput!] + OR: [BookSubscriptionWhereInput!] + NOT: [BookSubscriptionWhereInput!] +} + +input BookUpdateInput { + title: String + author: String + isbn: String + reviews: ReviewUpdateManyWithoutBookInput +} + +input BookUpdateManyMutationInput { + title: String + author: String + isbn: String +} + +input BookUpdateOneRequiredWithoutReviewsInput { + create: BookCreateWithoutReviewsInput + update: BookUpdateWithoutReviewsDataInput + upsert: BookUpsertWithoutReviewsInput + connect: BookWhereUniqueInput +} + +input BookUpdateWithoutReviewsDataInput { + title: String + author: String + isbn: String +} + +input BookUpsertWithoutReviewsInput { + update: BookUpdateWithoutReviewsDataInput! + create: BookCreateWithoutReviewsInput! +} + +input BookWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + title: String + title_not: String + title_in: [String!] + title_not_in: [String!] + title_lt: String + title_lte: String + title_gt: String + title_gte: String + title_contains: String + title_not_contains: String + title_starts_with: String + title_not_starts_with: String + title_ends_with: String + title_not_ends_with: String + author: String + author_not: String + author_in: [String!] + author_not_in: [String!] + author_lt: String + author_lte: String + author_gt: String + author_gte: String + author_contains: String + author_not_contains: String + author_starts_with: String + author_not_starts_with: String + author_ends_with: String + author_not_ends_with: String + isbn: String + isbn_not: String + isbn_in: [String!] + isbn_not_in: [String!] + isbn_lt: String + isbn_lte: String + isbn_gt: String + isbn_gte: String + isbn_contains: String + isbn_not_contains: String + isbn_starts_with: String + isbn_not_starts_with: String + isbn_ends_with: String + isbn_not_ends_with: String + reviews_every: ReviewWhereInput + reviews_some: ReviewWhereInput + reviews_none: ReviewWhereInput + AND: [BookWhereInput!] + OR: [BookWhereInput!] + NOT: [BookWhereInput!] +} + +input BookWhereUniqueInput { + id: ID + isbn: String +} + +scalar Long + +type Mutation { + createBook(data: BookCreateInput!): Book! + updateBook(data: BookUpdateInput!, where: BookWhereUniqueInput!): Book + updateManyBooks(data: BookUpdateManyMutationInput!, where: BookWhereInput): BatchPayload! + upsertBook(where: BookWhereUniqueInput!, create: BookCreateInput!, update: BookUpdateInput!): Book! + deleteBook(where: BookWhereUniqueInput!): Book + deleteManyBooks(where: BookWhereInput): BatchPayload! + createReview(data: ReviewCreateInput!): Review! + updateReview(data: ReviewUpdateInput!, where: ReviewWhereUniqueInput!): Review + updateManyReviews(data: ReviewUpdateManyMutationInput!, where: ReviewWhereInput): BatchPayload! + upsertReview(where: ReviewWhereUniqueInput!, create: ReviewCreateInput!, update: ReviewUpdateInput!): Review! + deleteReview(where: ReviewWhereUniqueInput!): Review + deleteManyReviews(where: ReviewWhereInput): BatchPayload! + createUser(data: UserCreateInput!): User! + updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User + updateManyUsers(data: UserUpdateManyMutationInput!, where: UserWhereInput): BatchPayload! + upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User! + deleteUser(where: UserWhereUniqueInput!): User + deleteManyUsers(where: UserWhereInput): BatchPayload! +} + +enum MutationType { + CREATED + UPDATED + DELETED +} + +interface Node { + id: ID! +} + +type PageInfo { + hasNextPage: Boolean! + hasPreviousPage: Boolean! + startCursor: String + endCursor: String +} + +type Query { + book(where: BookWhereUniqueInput!): Book + books(where: BookWhereInput, orderBy: BookOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Book]! + booksConnection(where: BookWhereInput, orderBy: BookOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): BookConnection! + review(where: ReviewWhereUniqueInput!): Review + reviews(where: ReviewWhereInput, orderBy: ReviewOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Review]! + reviewsConnection(where: ReviewWhereInput, orderBy: ReviewOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): ReviewConnection! + user(where: UserWhereUniqueInput!): User + users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]! + usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection! + node(id: ID!): Node +} + +type Review { + id: ID! + text: String + rating: Int! + author: User! + book: Book! +} + +type ReviewConnection { + pageInfo: PageInfo! + edges: [ReviewEdge]! + aggregate: AggregateReview! +} + +input ReviewCreateInput { + id: ID + text: String + rating: Int! + author: UserCreateOneWithoutReviewsInput! + book: BookCreateOneWithoutReviewsInput! +} + +input ReviewCreateManyWithoutAuthorInput { + create: [ReviewCreateWithoutAuthorInput!] + connect: [ReviewWhereUniqueInput!] +} + +input ReviewCreateManyWithoutBookInput { + create: [ReviewCreateWithoutBookInput!] + connect: [ReviewWhereUniqueInput!] +} + +input ReviewCreateWithoutAuthorInput { + id: ID + text: String + rating: Int! + book: BookCreateOneWithoutReviewsInput! +} + +input ReviewCreateWithoutBookInput { + id: ID + text: String + rating: Int! + author: UserCreateOneWithoutReviewsInput! +} + +type ReviewEdge { + node: Review! + cursor: String! +} + +enum ReviewOrderByInput { + id_ASC + id_DESC + text_ASC + text_DESC + rating_ASC + rating_DESC +} + +type ReviewPreviousValues { + id: ID! + text: String + rating: Int! +} + +input ReviewScalarWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + text: String + text_not: String + text_in: [String!] + text_not_in: [String!] + text_lt: String + text_lte: String + text_gt: String + text_gte: String + text_contains: String + text_not_contains: String + text_starts_with: String + text_not_starts_with: String + text_ends_with: String + text_not_ends_with: String + rating: Int + rating_not: Int + rating_in: [Int!] + rating_not_in: [Int!] + rating_lt: Int + rating_lte: Int + rating_gt: Int + rating_gte: Int + AND: [ReviewScalarWhereInput!] + OR: [ReviewScalarWhereInput!] + NOT: [ReviewScalarWhereInput!] +} + +type ReviewSubscriptionPayload { + mutation: MutationType! + node: Review + updatedFields: [String!] + previousValues: ReviewPreviousValues +} + +input ReviewSubscriptionWhereInput { + mutation_in: [MutationType!] + updatedFields_contains: String + updatedFields_contains_every: [String!] + updatedFields_contains_some: [String!] + node: ReviewWhereInput + AND: [ReviewSubscriptionWhereInput!] + OR: [ReviewSubscriptionWhereInput!] + NOT: [ReviewSubscriptionWhereInput!] +} + +input ReviewUpdateInput { + text: String + rating: Int + author: UserUpdateOneRequiredWithoutReviewsInput + book: BookUpdateOneRequiredWithoutReviewsInput +} + +input ReviewUpdateManyDataInput { + text: String + rating: Int +} + +input ReviewUpdateManyMutationInput { + text: String + rating: Int +} + +input ReviewUpdateManyWithoutAuthorInput { + create: [ReviewCreateWithoutAuthorInput!] + delete: [ReviewWhereUniqueInput!] + connect: [ReviewWhereUniqueInput!] + set: [ReviewWhereUniqueInput!] + disconnect: [ReviewWhereUniqueInput!] + update: [ReviewUpdateWithWhereUniqueWithoutAuthorInput!] + upsert: [ReviewUpsertWithWhereUniqueWithoutAuthorInput!] + deleteMany: [ReviewScalarWhereInput!] + updateMany: [ReviewUpdateManyWithWhereNestedInput!] +} + +input ReviewUpdateManyWithoutBookInput { + create: [ReviewCreateWithoutBookInput!] + delete: [ReviewWhereUniqueInput!] + connect: [ReviewWhereUniqueInput!] + set: [ReviewWhereUniqueInput!] + disconnect: [ReviewWhereUniqueInput!] + update: [ReviewUpdateWithWhereUniqueWithoutBookInput!] + upsert: [ReviewUpsertWithWhereUniqueWithoutBookInput!] + deleteMany: [ReviewScalarWhereInput!] + updateMany: [ReviewUpdateManyWithWhereNestedInput!] +} + +input ReviewUpdateManyWithWhereNestedInput { + where: ReviewScalarWhereInput! + data: ReviewUpdateManyDataInput! +} + +input ReviewUpdateWithoutAuthorDataInput { + text: String + rating: Int + book: BookUpdateOneRequiredWithoutReviewsInput +} + +input ReviewUpdateWithoutBookDataInput { + text: String + rating: Int + author: UserUpdateOneRequiredWithoutReviewsInput +} + +input ReviewUpdateWithWhereUniqueWithoutAuthorInput { + where: ReviewWhereUniqueInput! + data: ReviewUpdateWithoutAuthorDataInput! +} + +input ReviewUpdateWithWhereUniqueWithoutBookInput { + where: ReviewWhereUniqueInput! + data: ReviewUpdateWithoutBookDataInput! +} + +input ReviewUpsertWithWhereUniqueWithoutAuthorInput { + where: ReviewWhereUniqueInput! + update: ReviewUpdateWithoutAuthorDataInput! + create: ReviewCreateWithoutAuthorInput! +} + +input ReviewUpsertWithWhereUniqueWithoutBookInput { + where: ReviewWhereUniqueInput! + update: ReviewUpdateWithoutBookDataInput! + create: ReviewCreateWithoutBookInput! +} + +input ReviewWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + text: String + text_not: String + text_in: [String!] + text_not_in: [String!] + text_lt: String + text_lte: String + text_gt: String + text_gte: String + text_contains: String + text_not_contains: String + text_starts_with: String + text_not_starts_with: String + text_ends_with: String + text_not_ends_with: String + rating: Int + rating_not: Int + rating_in: [Int!] + rating_not_in: [Int!] + rating_lt: Int + rating_lte: Int + rating_gt: Int + rating_gte: Int + author: UserWhereInput + book: BookWhereInput + AND: [ReviewWhereInput!] + OR: [ReviewWhereInput!] + NOT: [ReviewWhereInput!] +} + +input ReviewWhereUniqueInput { + id: ID +} + +type Subscription { + book(where: BookSubscriptionWhereInput): BookSubscriptionPayload + review(where: ReviewSubscriptionWhereInput): ReviewSubscriptionPayload + user(where: UserSubscriptionWhereInput): UserSubscriptionPayload +} + +type User { + id: ID! + username: String! + reviews(where: ReviewWhereInput, orderBy: ReviewOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Review!] +} + +type UserConnection { + pageInfo: PageInfo! + edges: [UserEdge]! + aggregate: AggregateUser! +} + +input UserCreateInput { + id: ID + username: String! + reviews: ReviewCreateManyWithoutAuthorInput +} + +input UserCreateOneWithoutReviewsInput { + create: UserCreateWithoutReviewsInput + connect: UserWhereUniqueInput +} + +input UserCreateWithoutReviewsInput { + id: ID + username: String! +} + +type UserEdge { + node: User! + cursor: String! +} + +enum UserOrderByInput { + id_ASC + id_DESC + username_ASC + username_DESC +} + +type UserPreviousValues { + id: ID! + username: String! +} + +type UserSubscriptionPayload { + mutation: MutationType! + node: User + updatedFields: [String!] + previousValues: UserPreviousValues +} + +input UserSubscriptionWhereInput { + mutation_in: [MutationType!] + updatedFields_contains: String + updatedFields_contains_every: [String!] + updatedFields_contains_some: [String!] + node: UserWhereInput + AND: [UserSubscriptionWhereInput!] + OR: [UserSubscriptionWhereInput!] + NOT: [UserSubscriptionWhereInput!] +} + +input UserUpdateInput { + username: String + reviews: ReviewUpdateManyWithoutAuthorInput +} + +input UserUpdateManyMutationInput { + username: String +} + +input UserUpdateOneRequiredWithoutReviewsInput { + create: UserCreateWithoutReviewsInput + update: UserUpdateWithoutReviewsDataInput + upsert: UserUpsertWithoutReviewsInput + connect: UserWhereUniqueInput +} + +input UserUpdateWithoutReviewsDataInput { + username: String +} + +input UserUpsertWithoutReviewsInput { + update: UserUpdateWithoutReviewsDataInput! + create: UserCreateWithoutReviewsInput! +} + +input UserWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + username: String + username_not: String + username_in: [String!] + username_not_in: [String!] + username_lt: String + username_lte: String + username_gt: String + username_gte: String + username_contains: String + username_not_contains: String + username_starts_with: String + username_not_starts_with: String + username_ends_with: String + username_not_ends_with: String + reviews_every: ReviewWhereInput + reviews_some: ReviewWhereInput + reviews_none: ReviewWhereInput + AND: [UserWhereInput!] + OR: [UserWhereInput!] + NOT: [UserWhereInput!] +} + +input UserWhereUniqueInput { + id: ID + username: String +} +` + } + \ No newline at end of file diff --git a/prisma-review-website/prisma.yml b/prisma-review-website/prisma.yml new file mode 100644 index 0000000..33e73a4 --- /dev/null +++ b/prisma-review-website/prisma.yml @@ -0,0 +1,6 @@ +endpoint: http://192.168.99.100:4466/reviews/default +datamodel: datamodel.prisma + +generate: + - generator: javascript-client + output: ./generated/prisma-client/ \ No newline at end of file diff --git a/prisma/datamodel.prisma b/prisma/datamodel.prisma new file mode 100644 index 0000000..45aa519 --- /dev/null +++ b/prisma/datamodel.prisma @@ -0,0 +1,23 @@ +type User { + id: ID! @id + name: String! + email: String! @unique + posts: [Post] @relation(name: "PostToUser", onDelete: CASCADE) + comments: [Comment] @relation(name: "CommentToUser", onDelete: CASCADE) +} + +type Post { + id: ID! @id + title: String! + body: String! + published: Boolean! + author: User! @relation(name: "PostToUser", onDelete: SET_NULL) + comments: [Comment] @relation(name: "CommentToPost", onDelete: CASCADE) +} + +type Comment { + id: ID! @id + text: String! + author: User! @relation(name: "CommentToUser", onDelete: SET_NULL) + post: Post! @relation(name: "CommentToPost", onDelete: SET_NULL) +} diff --git a/prisma/docker-compose.yml b/prisma/docker-compose.yml new file mode 100644 index 0000000..cbd3f71 --- /dev/null +++ b/prisma/docker-compose.yml @@ -0,0 +1,24 @@ +version: '3' +services: + prisma: + image: prismagraphql/prisma:1.34 + restart: always + ports: + - "4466:4466" + environment: + PRISMA_CONFIG: | + port: 4466 + # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security + # managementApiSecret: my-secret + databases: + default: + connector: postgres + host: ec2-174-129-253-180.compute-1.amazonaws.com + database: dc8aulraamt5ms + schema: public + user: aursttndplnowi + password: 9ae74278f62224452e3738f7cf20a0bfaf45a12ec41aa40e50c5263988293471 + ssl: true + rawAccess: true + port: '5432' + migrations: true \ No newline at end of file diff --git a/prisma/generated/prisma-client/index.d.ts b/prisma/generated/prisma-client/index.d.ts new file mode 100644 index 0000000..686a850 --- /dev/null +++ b/prisma/generated/prisma-client/index.d.ts @@ -0,0 +1,1375 @@ +// Code generated by Prisma (prisma@1.34.10). DO NOT EDIT. +// Please don't change this file manually but run `prisma generate` to update it. +// For more information, please read the docs: https://www.prisma.io/docs/prisma-client/ + +import { DocumentNode } from "graphql"; +import { + makePrismaClientClass, + BaseClientOptions, + Model +} from "prisma-client-lib"; +import { typeDefs } from "./prisma-schema"; + +export type AtLeastOne }> = Partial & + U[keyof U]; + +export type Maybe = T | undefined | null; + +export interface Exists { + comment: (where?: CommentWhereInput) => Promise; + post: (where?: PostWhereInput) => Promise; + user: (where?: UserWhereInput) => Promise; +} + +export interface Node {} + +export type FragmentableArray = Promise> & Fragmentable; + +export interface Fragmentable { + $fragment(fragment: string | DocumentNode): Promise; +} + +export interface Prisma { + $exists: Exists; + $graphql: ( + query: string, + variables?: { [key: string]: any } + ) => Promise; + + /** + * Queries + */ + + comment: (where: CommentWhereUniqueInput) => CommentNullablePromise; + comments: (args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => FragmentableArray; + commentsConnection: (args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => CommentConnectionPromise; + post: (where: PostWhereUniqueInput) => PostNullablePromise; + posts: (args?: { + where?: PostWhereInput; + orderBy?: PostOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => FragmentableArray; + postsConnection: (args?: { + where?: PostWhereInput; + orderBy?: PostOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => PostConnectionPromise; + user: (where: UserWhereUniqueInput) => UserNullablePromise; + users: (args?: { + where?: UserWhereInput; + orderBy?: UserOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => FragmentableArray; + usersConnection: (args?: { + where?: UserWhereInput; + orderBy?: UserOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => UserConnectionPromise; + node: (args: { id: ID_Output }) => Node; + + /** + * Mutations + */ + + createComment: (data: CommentCreateInput) => CommentPromise; + updateComment: (args: { + data: CommentUpdateInput; + where: CommentWhereUniqueInput; + }) => CommentPromise; + updateManyComments: (args: { + data: CommentUpdateManyMutationInput; + where?: CommentWhereInput; + }) => BatchPayloadPromise; + upsertComment: (args: { + where: CommentWhereUniqueInput; + create: CommentCreateInput; + update: CommentUpdateInput; + }) => CommentPromise; + deleteComment: (where: CommentWhereUniqueInput) => CommentPromise; + deleteManyComments: (where?: CommentWhereInput) => BatchPayloadPromise; + createPost: (data: PostCreateInput) => PostPromise; + updatePost: (args: { + data: PostUpdateInput; + where: PostWhereUniqueInput; + }) => PostPromise; + updateManyPosts: (args: { + data: PostUpdateManyMutationInput; + where?: PostWhereInput; + }) => BatchPayloadPromise; + upsertPost: (args: { + where: PostWhereUniqueInput; + create: PostCreateInput; + update: PostUpdateInput; + }) => PostPromise; + deletePost: (where: PostWhereUniqueInput) => PostPromise; + deleteManyPosts: (where?: PostWhereInput) => BatchPayloadPromise; + createUser: (data: UserCreateInput) => UserPromise; + updateUser: (args: { + data: UserUpdateInput; + where: UserWhereUniqueInput; + }) => UserPromise; + updateManyUsers: (args: { + data: UserUpdateManyMutationInput; + where?: UserWhereInput; + }) => BatchPayloadPromise; + upsertUser: (args: { + where: UserWhereUniqueInput; + create: UserCreateInput; + update: UserUpdateInput; + }) => UserPromise; + deleteUser: (where: UserWhereUniqueInput) => UserPromise; + deleteManyUsers: (where?: UserWhereInput) => BatchPayloadPromise; + + /** + * Subscriptions + */ + + $subscribe: Subscription; +} + +export interface Subscription { + comment: ( + where?: CommentSubscriptionWhereInput + ) => CommentSubscriptionPayloadSubscription; + post: ( + where?: PostSubscriptionWhereInput + ) => PostSubscriptionPayloadSubscription; + user: ( + where?: UserSubscriptionWhereInput + ) => UserSubscriptionPayloadSubscription; +} + +export interface ClientConstructor { + new (options?: BaseClientOptions): T; +} + +/** + * Types + */ + +export type PostOrderByInput = + | "id_ASC" + | "id_DESC" + | "title_ASC" + | "title_DESC" + | "body_ASC" + | "body_DESC" + | "published_ASC" + | "published_DESC"; + +export type CommentOrderByInput = + | "id_ASC" + | "id_DESC" + | "text_ASC" + | "text_DESC"; + +export type UserOrderByInput = + | "id_ASC" + | "id_DESC" + | "name_ASC" + | "name_DESC" + | "email_ASC" + | "email_DESC"; + +export type MutationType = "CREATED" | "UPDATED" | "DELETED"; + +export type CommentWhereUniqueInput = AtLeastOne<{ + id: Maybe; +}>; + +export interface PostWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + title?: Maybe; + title_not?: Maybe; + title_in?: Maybe; + title_not_in?: Maybe; + title_lt?: Maybe; + title_lte?: Maybe; + title_gt?: Maybe; + title_gte?: Maybe; + title_contains?: Maybe; + title_not_contains?: Maybe; + title_starts_with?: Maybe; + title_not_starts_with?: Maybe; + title_ends_with?: Maybe; + title_not_ends_with?: Maybe; + body?: Maybe; + body_not?: Maybe; + body_in?: Maybe; + body_not_in?: Maybe; + body_lt?: Maybe; + body_lte?: Maybe; + body_gt?: Maybe; + body_gte?: Maybe; + body_contains?: Maybe; + body_not_contains?: Maybe; + body_starts_with?: Maybe; + body_not_starts_with?: Maybe; + body_ends_with?: Maybe; + body_not_ends_with?: Maybe; + published?: Maybe; + published_not?: Maybe; + author?: Maybe; + comments_every?: Maybe; + comments_some?: Maybe; + comments_none?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface UserWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + name?: Maybe; + name_not?: Maybe; + name_in?: Maybe; + name_not_in?: Maybe; + name_lt?: Maybe; + name_lte?: Maybe; + name_gt?: Maybe; + name_gte?: Maybe; + name_contains?: Maybe; + name_not_contains?: Maybe; + name_starts_with?: Maybe; + name_not_starts_with?: Maybe; + name_ends_with?: Maybe; + name_not_ends_with?: Maybe; + email?: Maybe; + email_not?: Maybe; + email_in?: Maybe; + email_not_in?: Maybe; + email_lt?: Maybe; + email_lte?: Maybe; + email_gt?: Maybe; + email_gte?: Maybe; + email_contains?: Maybe; + email_not_contains?: Maybe; + email_starts_with?: Maybe; + email_not_starts_with?: Maybe; + email_ends_with?: Maybe; + email_not_ends_with?: Maybe; + posts_every?: Maybe; + posts_some?: Maybe; + posts_none?: Maybe; + comments_every?: Maybe; + comments_some?: Maybe; + comments_none?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface CommentWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + text?: Maybe; + text_not?: Maybe; + text_in?: Maybe; + text_not_in?: Maybe; + text_lt?: Maybe; + text_lte?: Maybe; + text_gt?: Maybe; + text_gte?: Maybe; + text_contains?: Maybe; + text_not_contains?: Maybe; + text_starts_with?: Maybe; + text_not_starts_with?: Maybe; + text_ends_with?: Maybe; + text_not_ends_with?: Maybe; + author?: Maybe; + post?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export type PostWhereUniqueInput = AtLeastOne<{ + id: Maybe; +}>; + +export type UserWhereUniqueInput = AtLeastOne<{ + id: Maybe; + email?: Maybe; +}>; + +export interface CommentCreateInput { + id?: Maybe; + text: String; + author: UserCreateOneWithoutCommentsInput; + post: PostCreateOneWithoutCommentsInput; +} + +export interface UserCreateOneWithoutCommentsInput { + create?: Maybe; + connect?: Maybe; +} + +export interface UserCreateWithoutCommentsInput { + id?: Maybe; + name: String; + email: String; + posts?: Maybe; +} + +export interface PostCreateManyWithoutAuthorInput { + create?: Maybe; + connect?: Maybe; +} + +export interface PostCreateWithoutAuthorInput { + id?: Maybe; + title: String; + body: String; + published: Boolean; + comments?: Maybe; +} + +export interface CommentCreateManyWithoutPostInput { + create?: Maybe< + CommentCreateWithoutPostInput[] | CommentCreateWithoutPostInput + >; + connect?: Maybe; +} + +export interface CommentCreateWithoutPostInput { + id?: Maybe; + text: String; + author: UserCreateOneWithoutCommentsInput; +} + +export interface PostCreateOneWithoutCommentsInput { + create?: Maybe; + connect?: Maybe; +} + +export interface PostCreateWithoutCommentsInput { + id?: Maybe; + title: String; + body: String; + published: Boolean; + author: UserCreateOneWithoutPostsInput; +} + +export interface UserCreateOneWithoutPostsInput { + create?: Maybe; + connect?: Maybe; +} + +export interface UserCreateWithoutPostsInput { + id?: Maybe; + name: String; + email: String; + comments?: Maybe; +} + +export interface CommentCreateManyWithoutAuthorInput { + create?: Maybe< + CommentCreateWithoutAuthorInput[] | CommentCreateWithoutAuthorInput + >; + connect?: Maybe; +} + +export interface CommentCreateWithoutAuthorInput { + id?: Maybe; + text: String; + post: PostCreateOneWithoutCommentsInput; +} + +export interface CommentUpdateInput { + text?: Maybe; + author?: Maybe; + post?: Maybe; +} + +export interface UserUpdateOneRequiredWithoutCommentsInput { + create?: Maybe; + update?: Maybe; + upsert?: Maybe; + connect?: Maybe; +} + +export interface UserUpdateWithoutCommentsDataInput { + name?: Maybe; + email?: Maybe; + posts?: Maybe; +} + +export interface PostUpdateManyWithoutAuthorInput { + create?: Maybe; + delete?: Maybe; + connect?: Maybe; + set?: Maybe; + disconnect?: Maybe; + update?: Maybe< + | PostUpdateWithWhereUniqueWithoutAuthorInput[] + | PostUpdateWithWhereUniqueWithoutAuthorInput + >; + upsert?: Maybe< + | PostUpsertWithWhereUniqueWithoutAuthorInput[] + | PostUpsertWithWhereUniqueWithoutAuthorInput + >; + deleteMany?: Maybe; + updateMany?: Maybe< + PostUpdateManyWithWhereNestedInput[] | PostUpdateManyWithWhereNestedInput + >; +} + +export interface PostUpdateWithWhereUniqueWithoutAuthorInput { + where: PostWhereUniqueInput; + data: PostUpdateWithoutAuthorDataInput; +} + +export interface PostUpdateWithoutAuthorDataInput { + title?: Maybe; + body?: Maybe; + published?: Maybe; + comments?: Maybe; +} + +export interface CommentUpdateManyWithoutPostInput { + create?: Maybe< + CommentCreateWithoutPostInput[] | CommentCreateWithoutPostInput + >; + delete?: Maybe; + connect?: Maybe; + set?: Maybe; + disconnect?: Maybe; + update?: Maybe< + | CommentUpdateWithWhereUniqueWithoutPostInput[] + | CommentUpdateWithWhereUniqueWithoutPostInput + >; + upsert?: Maybe< + | CommentUpsertWithWhereUniqueWithoutPostInput[] + | CommentUpsertWithWhereUniqueWithoutPostInput + >; + deleteMany?: Maybe; + updateMany?: Maybe< + | CommentUpdateManyWithWhereNestedInput[] + | CommentUpdateManyWithWhereNestedInput + >; +} + +export interface CommentUpdateWithWhereUniqueWithoutPostInput { + where: CommentWhereUniqueInput; + data: CommentUpdateWithoutPostDataInput; +} + +export interface CommentUpdateWithoutPostDataInput { + text?: Maybe; + author?: Maybe; +} + +export interface CommentUpsertWithWhereUniqueWithoutPostInput { + where: CommentWhereUniqueInput; + update: CommentUpdateWithoutPostDataInput; + create: CommentCreateWithoutPostInput; +} + +export interface CommentScalarWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + text?: Maybe; + text_not?: Maybe; + text_in?: Maybe; + text_not_in?: Maybe; + text_lt?: Maybe; + text_lte?: Maybe; + text_gt?: Maybe; + text_gte?: Maybe; + text_contains?: Maybe; + text_not_contains?: Maybe; + text_starts_with?: Maybe; + text_not_starts_with?: Maybe; + text_ends_with?: Maybe; + text_not_ends_with?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface CommentUpdateManyWithWhereNestedInput { + where: CommentScalarWhereInput; + data: CommentUpdateManyDataInput; +} + +export interface CommentUpdateManyDataInput { + text?: Maybe; +} + +export interface PostUpsertWithWhereUniqueWithoutAuthorInput { + where: PostWhereUniqueInput; + update: PostUpdateWithoutAuthorDataInput; + create: PostCreateWithoutAuthorInput; +} + +export interface PostScalarWhereInput { + id?: Maybe; + id_not?: Maybe; + id_in?: Maybe; + id_not_in?: Maybe; + id_lt?: Maybe; + id_lte?: Maybe; + id_gt?: Maybe; + id_gte?: Maybe; + id_contains?: Maybe; + id_not_contains?: Maybe; + id_starts_with?: Maybe; + id_not_starts_with?: Maybe; + id_ends_with?: Maybe; + id_not_ends_with?: Maybe; + title?: Maybe; + title_not?: Maybe; + title_in?: Maybe; + title_not_in?: Maybe; + title_lt?: Maybe; + title_lte?: Maybe; + title_gt?: Maybe; + title_gte?: Maybe; + title_contains?: Maybe; + title_not_contains?: Maybe; + title_starts_with?: Maybe; + title_not_starts_with?: Maybe; + title_ends_with?: Maybe; + title_not_ends_with?: Maybe; + body?: Maybe; + body_not?: Maybe; + body_in?: Maybe; + body_not_in?: Maybe; + body_lt?: Maybe; + body_lte?: Maybe; + body_gt?: Maybe; + body_gte?: Maybe; + body_contains?: Maybe; + body_not_contains?: Maybe; + body_starts_with?: Maybe; + body_not_starts_with?: Maybe; + body_ends_with?: Maybe; + body_not_ends_with?: Maybe; + published?: Maybe; + published_not?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface PostUpdateManyWithWhereNestedInput { + where: PostScalarWhereInput; + data: PostUpdateManyDataInput; +} + +export interface PostUpdateManyDataInput { + title?: Maybe; + body?: Maybe; + published?: Maybe; +} + +export interface UserUpsertWithoutCommentsInput { + update: UserUpdateWithoutCommentsDataInput; + create: UserCreateWithoutCommentsInput; +} + +export interface PostUpdateOneRequiredWithoutCommentsInput { + create?: Maybe; + update?: Maybe; + upsert?: Maybe; + connect?: Maybe; +} + +export interface PostUpdateWithoutCommentsDataInput { + title?: Maybe; + body?: Maybe; + published?: Maybe; + author?: Maybe; +} + +export interface UserUpdateOneRequiredWithoutPostsInput { + create?: Maybe; + update?: Maybe; + upsert?: Maybe; + connect?: Maybe; +} + +export interface UserUpdateWithoutPostsDataInput { + name?: Maybe; + email?: Maybe; + comments?: Maybe; +} + +export interface CommentUpdateManyWithoutAuthorInput { + create?: Maybe< + CommentCreateWithoutAuthorInput[] | CommentCreateWithoutAuthorInput + >; + delete?: Maybe; + connect?: Maybe; + set?: Maybe; + disconnect?: Maybe; + update?: Maybe< + | CommentUpdateWithWhereUniqueWithoutAuthorInput[] + | CommentUpdateWithWhereUniqueWithoutAuthorInput + >; + upsert?: Maybe< + | CommentUpsertWithWhereUniqueWithoutAuthorInput[] + | CommentUpsertWithWhereUniqueWithoutAuthorInput + >; + deleteMany?: Maybe; + updateMany?: Maybe< + | CommentUpdateManyWithWhereNestedInput[] + | CommentUpdateManyWithWhereNestedInput + >; +} + +export interface CommentUpdateWithWhereUniqueWithoutAuthorInput { + where: CommentWhereUniqueInput; + data: CommentUpdateWithoutAuthorDataInput; +} + +export interface CommentUpdateWithoutAuthorDataInput { + text?: Maybe; + post?: Maybe; +} + +export interface CommentUpsertWithWhereUniqueWithoutAuthorInput { + where: CommentWhereUniqueInput; + update: CommentUpdateWithoutAuthorDataInput; + create: CommentCreateWithoutAuthorInput; +} + +export interface UserUpsertWithoutPostsInput { + update: UserUpdateWithoutPostsDataInput; + create: UserCreateWithoutPostsInput; +} + +export interface PostUpsertWithoutCommentsInput { + update: PostUpdateWithoutCommentsDataInput; + create: PostCreateWithoutCommentsInput; +} + +export interface CommentUpdateManyMutationInput { + text?: Maybe; +} + +export interface PostCreateInput { + id?: Maybe; + title: String; + body: String; + published: Boolean; + author: UserCreateOneWithoutPostsInput; + comments?: Maybe; +} + +export interface PostUpdateInput { + title?: Maybe; + body?: Maybe; + published?: Maybe; + author?: Maybe; + comments?: Maybe; +} + +export interface PostUpdateManyMutationInput { + title?: Maybe; + body?: Maybe; + published?: Maybe; +} + +export interface UserCreateInput { + id?: Maybe; + name: String; + email: String; + posts?: Maybe; + comments?: Maybe; +} + +export interface UserUpdateInput { + name?: Maybe; + email?: Maybe; + posts?: Maybe; + comments?: Maybe; +} + +export interface UserUpdateManyMutationInput { + name?: Maybe; + email?: Maybe; +} + +export interface CommentSubscriptionWhereInput { + mutation_in?: Maybe; + updatedFields_contains?: Maybe; + updatedFields_contains_every?: Maybe; + updatedFields_contains_some?: Maybe; + node?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface PostSubscriptionWhereInput { + mutation_in?: Maybe; + updatedFields_contains?: Maybe; + updatedFields_contains_every?: Maybe; + updatedFields_contains_some?: Maybe; + node?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface UserSubscriptionWhereInput { + mutation_in?: Maybe; + updatedFields_contains?: Maybe; + updatedFields_contains_every?: Maybe; + updatedFields_contains_some?: Maybe; + node?: Maybe; + AND?: Maybe; + OR?: Maybe; + NOT?: Maybe; +} + +export interface NodeNode { + id: ID_Output; +} + +export interface Comment { + id: ID_Output; + text: String; +} + +export interface CommentPromise extends Promise, Fragmentable { + id: () => Promise; + text: () => Promise; + author: () => T; + post: () => T; +} + +export interface CommentSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + text: () => Promise>; + author: () => T; + post: () => T; +} + +export interface CommentNullablePromise + extends Promise, + Fragmentable { + id: () => Promise; + text: () => Promise; + author: () => T; + post: () => T; +} + +export interface User { + id: ID_Output; + name: String; + email: String; +} + +export interface UserPromise extends Promise, Fragmentable { + id: () => Promise; + name: () => Promise; + email: () => Promise; + posts: >(args?: { + where?: PostWhereInput; + orderBy?: PostOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; + comments: >(args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface UserSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + name: () => Promise>; + email: () => Promise>; + posts: >>(args?: { + where?: PostWhereInput; + orderBy?: PostOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; + comments: >>(args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface UserNullablePromise + extends Promise, + Fragmentable { + id: () => Promise; + name: () => Promise; + email: () => Promise; + posts: >(args?: { + where?: PostWhereInput; + orderBy?: PostOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; + comments: >(args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface Post { + id: ID_Output; + title: String; + body: String; + published: Boolean; +} + +export interface PostPromise extends Promise, Fragmentable { + id: () => Promise; + title: () => Promise; + body: () => Promise; + published: () => Promise; + author: () => T; + comments: >(args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface PostSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + title: () => Promise>; + body: () => Promise>; + published: () => Promise>; + author: () => T; + comments: >>(args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface PostNullablePromise + extends Promise, + Fragmentable { + id: () => Promise; + title: () => Promise; + body: () => Promise; + published: () => Promise; + author: () => T; + comments: >(args?: { + where?: CommentWhereInput; + orderBy?: CommentOrderByInput; + skip?: Int; + after?: String; + before?: String; + first?: Int; + last?: Int; + }) => T; +} + +export interface CommentConnection { + pageInfo: PageInfo; + edges: CommentEdge[]; +} + +export interface CommentConnectionPromise + extends Promise, + Fragmentable { + pageInfo: () => T; + edges: >() => T; + aggregate: () => T; +} + +export interface CommentConnectionSubscription + extends Promise>, + Fragmentable { + pageInfo: () => T; + edges: >>() => T; + aggregate: () => T; +} + +export interface PageInfo { + hasNextPage: Boolean; + hasPreviousPage: Boolean; + startCursor?: String; + endCursor?: String; +} + +export interface PageInfoPromise extends Promise, Fragmentable { + hasNextPage: () => Promise; + hasPreviousPage: () => Promise; + startCursor: () => Promise; + endCursor: () => Promise; +} + +export interface PageInfoSubscription + extends Promise>, + Fragmentable { + hasNextPage: () => Promise>; + hasPreviousPage: () => Promise>; + startCursor: () => Promise>; + endCursor: () => Promise>; +} + +export interface CommentEdge { + node: Comment; + cursor: String; +} + +export interface CommentEdgePromise extends Promise, Fragmentable { + node: () => T; + cursor: () => Promise; +} + +export interface CommentEdgeSubscription + extends Promise>, + Fragmentable { + node: () => T; + cursor: () => Promise>; +} + +export interface AggregateComment { + count: Int; +} + +export interface AggregateCommentPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface AggregateCommentSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface PostConnection { + pageInfo: PageInfo; + edges: PostEdge[]; +} + +export interface PostConnectionPromise + extends Promise, + Fragmentable { + pageInfo: () => T; + edges: >() => T; + aggregate: () => T; +} + +export interface PostConnectionSubscription + extends Promise>, + Fragmentable { + pageInfo: () => T; + edges: >>() => T; + aggregate: () => T; +} + +export interface PostEdge { + node: Post; + cursor: String; +} + +export interface PostEdgePromise extends Promise, Fragmentable { + node: () => T; + cursor: () => Promise; +} + +export interface PostEdgeSubscription + extends Promise>, + Fragmentable { + node: () => T; + cursor: () => Promise>; +} + +export interface AggregatePost { + count: Int; +} + +export interface AggregatePostPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface AggregatePostSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface UserConnection { + pageInfo: PageInfo; + edges: UserEdge[]; +} + +export interface UserConnectionPromise + extends Promise, + Fragmentable { + pageInfo: () => T; + edges: >() => T; + aggregate: () => T; +} + +export interface UserConnectionSubscription + extends Promise>, + Fragmentable { + pageInfo: () => T; + edges: >>() => T; + aggregate: () => T; +} + +export interface UserEdge { + node: User; + cursor: String; +} + +export interface UserEdgePromise extends Promise, Fragmentable { + node: () => T; + cursor: () => Promise; +} + +export interface UserEdgeSubscription + extends Promise>, + Fragmentable { + node: () => T; + cursor: () => Promise>; +} + +export interface AggregateUser { + count: Int; +} + +export interface AggregateUserPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface AggregateUserSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface BatchPayload { + count: Long; +} + +export interface BatchPayloadPromise + extends Promise, + Fragmentable { + count: () => Promise; +} + +export interface BatchPayloadSubscription + extends Promise>, + Fragmentable { + count: () => Promise>; +} + +export interface CommentSubscriptionPayload { + mutation: MutationType; + node: Comment; + updatedFields: String[]; + previousValues: CommentPreviousValues; +} + +export interface CommentSubscriptionPayloadPromise + extends Promise, + Fragmentable { + mutation: () => Promise; + node: () => T; + updatedFields: () => Promise; + previousValues: () => T; +} + +export interface CommentSubscriptionPayloadSubscription + extends Promise>, + Fragmentable { + mutation: () => Promise>; + node: () => T; + updatedFields: () => Promise>; + previousValues: () => T; +} + +export interface CommentPreviousValues { + id: ID_Output; + text: String; +} + +export interface CommentPreviousValuesPromise + extends Promise, + Fragmentable { + id: () => Promise; + text: () => Promise; +} + +export interface CommentPreviousValuesSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + text: () => Promise>; +} + +export interface PostSubscriptionPayload { + mutation: MutationType; + node: Post; + updatedFields: String[]; + previousValues: PostPreviousValues; +} + +export interface PostSubscriptionPayloadPromise + extends Promise, + Fragmentable { + mutation: () => Promise; + node: () => T; + updatedFields: () => Promise; + previousValues: () => T; +} + +export interface PostSubscriptionPayloadSubscription + extends Promise>, + Fragmentable { + mutation: () => Promise>; + node: () => T; + updatedFields: () => Promise>; + previousValues: () => T; +} + +export interface PostPreviousValues { + id: ID_Output; + title: String; + body: String; + published: Boolean; +} + +export interface PostPreviousValuesPromise + extends Promise, + Fragmentable { + id: () => Promise; + title: () => Promise; + body: () => Promise; + published: () => Promise; +} + +export interface PostPreviousValuesSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + title: () => Promise>; + body: () => Promise>; + published: () => Promise>; +} + +export interface UserSubscriptionPayload { + mutation: MutationType; + node: User; + updatedFields: String[]; + previousValues: UserPreviousValues; +} + +export interface UserSubscriptionPayloadPromise + extends Promise, + Fragmentable { + mutation: () => Promise; + node: () => T; + updatedFields: () => Promise; + previousValues: () => T; +} + +export interface UserSubscriptionPayloadSubscription + extends Promise>, + Fragmentable { + mutation: () => Promise>; + node: () => T; + updatedFields: () => Promise>; + previousValues: () => T; +} + +export interface UserPreviousValues { + id: ID_Output; + name: String; + email: String; +} + +export interface UserPreviousValuesPromise + extends Promise, + Fragmentable { + id: () => Promise; + name: () => Promise; + email: () => Promise; +} + +export interface UserPreviousValuesSubscription + extends Promise>, + Fragmentable { + id: () => Promise>; + name: () => Promise>; + email: () => Promise>; +} + +/* +The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. +*/ +export type ID_Input = string | number; +export type ID_Output = string; + +/* +The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. +*/ +export type String = string; + +/* +The `Boolean` scalar type represents `true` or `false`. +*/ +export type Boolean = boolean; + +/* +The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. +*/ +export type Int = number; + +export type Long = string; + +/** + * Model Metadata + */ + +export const models: Model[] = [ + { + name: "User", + embedded: false + }, + { + name: "Post", + embedded: false + }, + { + name: "Comment", + embedded: false + } +]; + +/** + * Type Defs + */ + +export const prisma: Prisma; diff --git a/prisma/generated/prisma-client/index.js b/prisma/generated/prisma-client/index.js new file mode 100644 index 0000000..624d628 --- /dev/null +++ b/prisma/generated/prisma-client/index.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var prisma_lib_1 = require("prisma-client-lib"); +var typeDefs = require("./prisma-schema").typeDefs; + +var models = [ + { + name: "User", + embedded: false + }, + { + name: "Post", + embedded: false + }, + { + name: "Comment", + embedded: false + } +]; +exports.Prisma = prisma_lib_1.makePrismaClientClass({ + typeDefs, + models, + endpoint: `http://192.168.99.100:4466` +}); +exports.prisma = new exports.Prisma(); diff --git a/prisma/generated/prisma-client/prisma-schema.js b/prisma/generated/prisma-client/prisma-schema.js new file mode 100644 index 0000000..97ed2dc --- /dev/null +++ b/prisma/generated/prisma-client/prisma-schema.js @@ -0,0 +1,772 @@ +module.exports = { + typeDefs: // Code generated by Prisma (prisma@1.34.10). DO NOT EDIT. + // Please don't change this file manually but run `prisma generate` to update it. + // For more information, please read the docs: https://www.prisma.io/docs/prisma-client/ + +/* GraphQL */ `type AggregateComment { + count: Int! +} + +type AggregatePost { + count: Int! +} + +type AggregateUser { + count: Int! +} + +type BatchPayload { + count: Long! +} + +type Comment { + id: ID! + text: String! + author: User! + post: Post! +} + +type CommentConnection { + pageInfo: PageInfo! + edges: [CommentEdge]! + aggregate: AggregateComment! +} + +input CommentCreateInput { + id: ID + text: String! + author: UserCreateOneWithoutCommentsInput! + post: PostCreateOneWithoutCommentsInput! +} + +input CommentCreateManyWithoutAuthorInput { + create: [CommentCreateWithoutAuthorInput!] + connect: [CommentWhereUniqueInput!] +} + +input CommentCreateManyWithoutPostInput { + create: [CommentCreateWithoutPostInput!] + connect: [CommentWhereUniqueInput!] +} + +input CommentCreateWithoutAuthorInput { + id: ID + text: String! + post: PostCreateOneWithoutCommentsInput! +} + +input CommentCreateWithoutPostInput { + id: ID + text: String! + author: UserCreateOneWithoutCommentsInput! +} + +type CommentEdge { + node: Comment! + cursor: String! +} + +enum CommentOrderByInput { + id_ASC + id_DESC + text_ASC + text_DESC +} + +type CommentPreviousValues { + id: ID! + text: String! +} + +input CommentScalarWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + text: String + text_not: String + text_in: [String!] + text_not_in: [String!] + text_lt: String + text_lte: String + text_gt: String + text_gte: String + text_contains: String + text_not_contains: String + text_starts_with: String + text_not_starts_with: String + text_ends_with: String + text_not_ends_with: String + AND: [CommentScalarWhereInput!] + OR: [CommentScalarWhereInput!] + NOT: [CommentScalarWhereInput!] +} + +type CommentSubscriptionPayload { + mutation: MutationType! + node: Comment + updatedFields: [String!] + previousValues: CommentPreviousValues +} + +input CommentSubscriptionWhereInput { + mutation_in: [MutationType!] + updatedFields_contains: String + updatedFields_contains_every: [String!] + updatedFields_contains_some: [String!] + node: CommentWhereInput + AND: [CommentSubscriptionWhereInput!] + OR: [CommentSubscriptionWhereInput!] + NOT: [CommentSubscriptionWhereInput!] +} + +input CommentUpdateInput { + text: String + author: UserUpdateOneRequiredWithoutCommentsInput + post: PostUpdateOneRequiredWithoutCommentsInput +} + +input CommentUpdateManyDataInput { + text: String +} + +input CommentUpdateManyMutationInput { + text: String +} + +input CommentUpdateManyWithoutAuthorInput { + create: [CommentCreateWithoutAuthorInput!] + delete: [CommentWhereUniqueInput!] + connect: [CommentWhereUniqueInput!] + set: [CommentWhereUniqueInput!] + disconnect: [CommentWhereUniqueInput!] + update: [CommentUpdateWithWhereUniqueWithoutAuthorInput!] + upsert: [CommentUpsertWithWhereUniqueWithoutAuthorInput!] + deleteMany: [CommentScalarWhereInput!] + updateMany: [CommentUpdateManyWithWhereNestedInput!] +} + +input CommentUpdateManyWithoutPostInput { + create: [CommentCreateWithoutPostInput!] + delete: [CommentWhereUniqueInput!] + connect: [CommentWhereUniqueInput!] + set: [CommentWhereUniqueInput!] + disconnect: [CommentWhereUniqueInput!] + update: [CommentUpdateWithWhereUniqueWithoutPostInput!] + upsert: [CommentUpsertWithWhereUniqueWithoutPostInput!] + deleteMany: [CommentScalarWhereInput!] + updateMany: [CommentUpdateManyWithWhereNestedInput!] +} + +input CommentUpdateManyWithWhereNestedInput { + where: CommentScalarWhereInput! + data: CommentUpdateManyDataInput! +} + +input CommentUpdateWithoutAuthorDataInput { + text: String + post: PostUpdateOneRequiredWithoutCommentsInput +} + +input CommentUpdateWithoutPostDataInput { + text: String + author: UserUpdateOneRequiredWithoutCommentsInput +} + +input CommentUpdateWithWhereUniqueWithoutAuthorInput { + where: CommentWhereUniqueInput! + data: CommentUpdateWithoutAuthorDataInput! +} + +input CommentUpdateWithWhereUniqueWithoutPostInput { + where: CommentWhereUniqueInput! + data: CommentUpdateWithoutPostDataInput! +} + +input CommentUpsertWithWhereUniqueWithoutAuthorInput { + where: CommentWhereUniqueInput! + update: CommentUpdateWithoutAuthorDataInput! + create: CommentCreateWithoutAuthorInput! +} + +input CommentUpsertWithWhereUniqueWithoutPostInput { + where: CommentWhereUniqueInput! + update: CommentUpdateWithoutPostDataInput! + create: CommentCreateWithoutPostInput! +} + +input CommentWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + text: String + text_not: String + text_in: [String!] + text_not_in: [String!] + text_lt: String + text_lte: String + text_gt: String + text_gte: String + text_contains: String + text_not_contains: String + text_starts_with: String + text_not_starts_with: String + text_ends_with: String + text_not_ends_with: String + author: UserWhereInput + post: PostWhereInput + AND: [CommentWhereInput!] + OR: [CommentWhereInput!] + NOT: [CommentWhereInput!] +} + +input CommentWhereUniqueInput { + id: ID +} + +scalar Long + +type Mutation { + createComment(data: CommentCreateInput!): Comment! + updateComment(data: CommentUpdateInput!, where: CommentWhereUniqueInput!): Comment + updateManyComments(data: CommentUpdateManyMutationInput!, where: CommentWhereInput): BatchPayload! + upsertComment(where: CommentWhereUniqueInput!, create: CommentCreateInput!, update: CommentUpdateInput!): Comment! + deleteComment(where: CommentWhereUniqueInput!): Comment + deleteManyComments(where: CommentWhereInput): BatchPayload! + createPost(data: PostCreateInput!): Post! + updatePost(data: PostUpdateInput!, where: PostWhereUniqueInput!): Post + updateManyPosts(data: PostUpdateManyMutationInput!, where: PostWhereInput): BatchPayload! + upsertPost(where: PostWhereUniqueInput!, create: PostCreateInput!, update: PostUpdateInput!): Post! + deletePost(where: PostWhereUniqueInput!): Post + deleteManyPosts(where: PostWhereInput): BatchPayload! + createUser(data: UserCreateInput!): User! + updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User + updateManyUsers(data: UserUpdateManyMutationInput!, where: UserWhereInput): BatchPayload! + upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User! + deleteUser(where: UserWhereUniqueInput!): User + deleteManyUsers(where: UserWhereInput): BatchPayload! +} + +enum MutationType { + CREATED + UPDATED + DELETED +} + +interface Node { + id: ID! +} + +type PageInfo { + hasNextPage: Boolean! + hasPreviousPage: Boolean! + startCursor: String + endCursor: String +} + +type Post { + id: ID! + title: String! + body: String! + published: Boolean! + author: User! + comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment!] +} + +type PostConnection { + pageInfo: PageInfo! + edges: [PostEdge]! + aggregate: AggregatePost! +} + +input PostCreateInput { + id: ID + title: String! + body: String! + published: Boolean! + author: UserCreateOneWithoutPostsInput! + comments: CommentCreateManyWithoutPostInput +} + +input PostCreateManyWithoutAuthorInput { + create: [PostCreateWithoutAuthorInput!] + connect: [PostWhereUniqueInput!] +} + +input PostCreateOneWithoutCommentsInput { + create: PostCreateWithoutCommentsInput + connect: PostWhereUniqueInput +} + +input PostCreateWithoutAuthorInput { + id: ID + title: String! + body: String! + published: Boolean! + comments: CommentCreateManyWithoutPostInput +} + +input PostCreateWithoutCommentsInput { + id: ID + title: String! + body: String! + published: Boolean! + author: UserCreateOneWithoutPostsInput! +} + +type PostEdge { + node: Post! + cursor: String! +} + +enum PostOrderByInput { + id_ASC + id_DESC + title_ASC + title_DESC + body_ASC + body_DESC + published_ASC + published_DESC +} + +type PostPreviousValues { + id: ID! + title: String! + body: String! + published: Boolean! +} + +input PostScalarWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + title: String + title_not: String + title_in: [String!] + title_not_in: [String!] + title_lt: String + title_lte: String + title_gt: String + title_gte: String + title_contains: String + title_not_contains: String + title_starts_with: String + title_not_starts_with: String + title_ends_with: String + title_not_ends_with: String + body: String + body_not: String + body_in: [String!] + body_not_in: [String!] + body_lt: String + body_lte: String + body_gt: String + body_gte: String + body_contains: String + body_not_contains: String + body_starts_with: String + body_not_starts_with: String + body_ends_with: String + body_not_ends_with: String + published: Boolean + published_not: Boolean + AND: [PostScalarWhereInput!] + OR: [PostScalarWhereInput!] + NOT: [PostScalarWhereInput!] +} + +type PostSubscriptionPayload { + mutation: MutationType! + node: Post + updatedFields: [String!] + previousValues: PostPreviousValues +} + +input PostSubscriptionWhereInput { + mutation_in: [MutationType!] + updatedFields_contains: String + updatedFields_contains_every: [String!] + updatedFields_contains_some: [String!] + node: PostWhereInput + AND: [PostSubscriptionWhereInput!] + OR: [PostSubscriptionWhereInput!] + NOT: [PostSubscriptionWhereInput!] +} + +input PostUpdateInput { + title: String + body: String + published: Boolean + author: UserUpdateOneRequiredWithoutPostsInput + comments: CommentUpdateManyWithoutPostInput +} + +input PostUpdateManyDataInput { + title: String + body: String + published: Boolean +} + +input PostUpdateManyMutationInput { + title: String + body: String + published: Boolean +} + +input PostUpdateManyWithoutAuthorInput { + create: [PostCreateWithoutAuthorInput!] + delete: [PostWhereUniqueInput!] + connect: [PostWhereUniqueInput!] + set: [PostWhereUniqueInput!] + disconnect: [PostWhereUniqueInput!] + update: [PostUpdateWithWhereUniqueWithoutAuthorInput!] + upsert: [PostUpsertWithWhereUniqueWithoutAuthorInput!] + deleteMany: [PostScalarWhereInput!] + updateMany: [PostUpdateManyWithWhereNestedInput!] +} + +input PostUpdateManyWithWhereNestedInput { + where: PostScalarWhereInput! + data: PostUpdateManyDataInput! +} + +input PostUpdateOneRequiredWithoutCommentsInput { + create: PostCreateWithoutCommentsInput + update: PostUpdateWithoutCommentsDataInput + upsert: PostUpsertWithoutCommentsInput + connect: PostWhereUniqueInput +} + +input PostUpdateWithoutAuthorDataInput { + title: String + body: String + published: Boolean + comments: CommentUpdateManyWithoutPostInput +} + +input PostUpdateWithoutCommentsDataInput { + title: String + body: String + published: Boolean + author: UserUpdateOneRequiredWithoutPostsInput +} + +input PostUpdateWithWhereUniqueWithoutAuthorInput { + where: PostWhereUniqueInput! + data: PostUpdateWithoutAuthorDataInput! +} + +input PostUpsertWithoutCommentsInput { + update: PostUpdateWithoutCommentsDataInput! + create: PostCreateWithoutCommentsInput! +} + +input PostUpsertWithWhereUniqueWithoutAuthorInput { + where: PostWhereUniqueInput! + update: PostUpdateWithoutAuthorDataInput! + create: PostCreateWithoutAuthorInput! +} + +input PostWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + title: String + title_not: String + title_in: [String!] + title_not_in: [String!] + title_lt: String + title_lte: String + title_gt: String + title_gte: String + title_contains: String + title_not_contains: String + title_starts_with: String + title_not_starts_with: String + title_ends_with: String + title_not_ends_with: String + body: String + body_not: String + body_in: [String!] + body_not_in: [String!] + body_lt: String + body_lte: String + body_gt: String + body_gte: String + body_contains: String + body_not_contains: String + body_starts_with: String + body_not_starts_with: String + body_ends_with: String + body_not_ends_with: String + published: Boolean + published_not: Boolean + author: UserWhereInput + comments_every: CommentWhereInput + comments_some: CommentWhereInput + comments_none: CommentWhereInput + AND: [PostWhereInput!] + OR: [PostWhereInput!] + NOT: [PostWhereInput!] +} + +input PostWhereUniqueInput { + id: ID +} + +type Query { + comment(where: CommentWhereUniqueInput!): Comment + comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment]! + commentsConnection(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): CommentConnection! + post(where: PostWhereUniqueInput!): Post + posts(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Post]! + postsConnection(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): PostConnection! + user(where: UserWhereUniqueInput!): User + users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]! + usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection! + node(id: ID!): Node +} + +type Subscription { + comment(where: CommentSubscriptionWhereInput): CommentSubscriptionPayload + post(where: PostSubscriptionWhereInput): PostSubscriptionPayload + user(where: UserSubscriptionWhereInput): UserSubscriptionPayload +} + +type User { + id: ID! + name: String! + email: String! + posts(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Post!] + comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment!] +} + +type UserConnection { + pageInfo: PageInfo! + edges: [UserEdge]! + aggregate: AggregateUser! +} + +input UserCreateInput { + id: ID + name: String! + email: String! + posts: PostCreateManyWithoutAuthorInput + comments: CommentCreateManyWithoutAuthorInput +} + +input UserCreateOneWithoutCommentsInput { + create: UserCreateWithoutCommentsInput + connect: UserWhereUniqueInput +} + +input UserCreateOneWithoutPostsInput { + create: UserCreateWithoutPostsInput + connect: UserWhereUniqueInput +} + +input UserCreateWithoutCommentsInput { + id: ID + name: String! + email: String! + posts: PostCreateManyWithoutAuthorInput +} + +input UserCreateWithoutPostsInput { + id: ID + name: String! + email: String! + comments: CommentCreateManyWithoutAuthorInput +} + +type UserEdge { + node: User! + cursor: String! +} + +enum UserOrderByInput { + id_ASC + id_DESC + name_ASC + name_DESC + email_ASC + email_DESC +} + +type UserPreviousValues { + id: ID! + name: String! + email: String! +} + +type UserSubscriptionPayload { + mutation: MutationType! + node: User + updatedFields: [String!] + previousValues: UserPreviousValues +} + +input UserSubscriptionWhereInput { + mutation_in: [MutationType!] + updatedFields_contains: String + updatedFields_contains_every: [String!] + updatedFields_contains_some: [String!] + node: UserWhereInput + AND: [UserSubscriptionWhereInput!] + OR: [UserSubscriptionWhereInput!] + NOT: [UserSubscriptionWhereInput!] +} + +input UserUpdateInput { + name: String + email: String + posts: PostUpdateManyWithoutAuthorInput + comments: CommentUpdateManyWithoutAuthorInput +} + +input UserUpdateManyMutationInput { + name: String + email: String +} + +input UserUpdateOneRequiredWithoutCommentsInput { + create: UserCreateWithoutCommentsInput + update: UserUpdateWithoutCommentsDataInput + upsert: UserUpsertWithoutCommentsInput + connect: UserWhereUniqueInput +} + +input UserUpdateOneRequiredWithoutPostsInput { + create: UserCreateWithoutPostsInput + update: UserUpdateWithoutPostsDataInput + upsert: UserUpsertWithoutPostsInput + connect: UserWhereUniqueInput +} + +input UserUpdateWithoutCommentsDataInput { + name: String + email: String + posts: PostUpdateManyWithoutAuthorInput +} + +input UserUpdateWithoutPostsDataInput { + name: String + email: String + comments: CommentUpdateManyWithoutAuthorInput +} + +input UserUpsertWithoutCommentsInput { + update: UserUpdateWithoutCommentsDataInput! + create: UserCreateWithoutCommentsInput! +} + +input UserUpsertWithoutPostsInput { + update: UserUpdateWithoutPostsDataInput! + create: UserCreateWithoutPostsInput! +} + +input UserWhereInput { + id: ID + id_not: ID + id_in: [ID!] + id_not_in: [ID!] + id_lt: ID + id_lte: ID + id_gt: ID + id_gte: ID + id_contains: ID + id_not_contains: ID + id_starts_with: ID + id_not_starts_with: ID + id_ends_with: ID + id_not_ends_with: ID + name: String + name_not: String + name_in: [String!] + name_not_in: [String!] + name_lt: String + name_lte: String + name_gt: String + name_gte: String + name_contains: String + name_not_contains: String + name_starts_with: String + name_not_starts_with: String + name_ends_with: String + name_not_ends_with: String + email: String + email_not: String + email_in: [String!] + email_not_in: [String!] + email_lt: String + email_lte: String + email_gt: String + email_gte: String + email_contains: String + email_not_contains: String + email_starts_with: String + email_not_starts_with: String + email_ends_with: String + email_not_ends_with: String + posts_every: PostWhereInput + posts_some: PostWhereInput + posts_none: PostWhereInput + comments_every: CommentWhereInput + comments_some: CommentWhereInput + comments_none: CommentWhereInput + AND: [UserWhereInput!] + OR: [UserWhereInput!] + NOT: [UserWhereInput!] +} + +input UserWhereUniqueInput { + id: ID + email: String +} +` + } + \ No newline at end of file diff --git a/prisma/prisma.yml b/prisma/prisma.yml new file mode 100644 index 0000000..06a1eea --- /dev/null +++ b/prisma/prisma.yml @@ -0,0 +1,6 @@ +endpoint: http://192.168.99.100:4466 +datamodel: datamodel.prisma + +generate: + - generator: javascript-client + output: ./generated/prisma-client/ \ No newline at end of file diff --git a/resolvers/comment.resolver.js b/resolvers/comment.resolver.js new file mode 100644 index 0000000..9e22e06 --- /dev/null +++ b/resolvers/comment.resolver.js @@ -0,0 +1,10 @@ +const Comment = { + author: (parent, agrs, { db: { users } }, info) => + users.find(user => user.id === parent.author), + post: (parent, agrs, { db: { posts } }, info) => + posts.find(post => post.id === parent.post) +}; + +module.exports = { + Comment +}; \ No newline at end of file diff --git a/resolvers/mutation.resolver.js b/resolvers/mutation.resolver.js new file mode 100644 index 0000000..74d0bdf --- /dev/null +++ b/resolvers/mutation.resolver.js @@ -0,0 +1,168 @@ +const uuid = require("uuid/v4"); + +const Mutation = { + createUser: (parent, { data }, { db: { users } }, info) => { + if (users.some(user => data.email === user.email)) { + throw new Error("Invalid user credentials."); + } + + const user = { + id: uuid(), + ...data + }; + + users.push(user); + + return user; + }, + deleteUser: (parent, { id }, { db: { users, posts, comments } }, info) => { + const userIndex = users.findIndex(user => user.id === id); + if (userIndex === -1) throw new Error("user not found"); + + const deletedUser = users.splice(userIndex, 1); + + posts = posts.filter(post => { + const match = post.author === id; + match + ? (comments = comments.filter(comment => comment.post !== post.id)) + : null; + return !match; + }); + + comments = comments.filter(comment => comment.author !== id); + + return deletedUser[0]; + }, + updateUser: (parent, { id, data }, { db: { users } }, info) => { + const user = users.find(user => user.id === id); + if (!user) throw new Error("user not found"); + + const isEmailTaken = users.some(user => user.email === data.email); + if (isEmailTaken) throw new Error("email is already taken"); + + // data = JSON.parse(JSON.stringify(data)); + return Object.assign(user, data); + }, + createPost: (parent, { data }, { db: { users, posts }, pubsub }, info) => { + if (!users.some(user => data.author === user.id)) { + throw new Error("user not found."); + } + + const post = { + id: uuid(), + ...data + }; + + posts.push(post); + post.published + ? pubsub.publish("post", { + post: { + mutation: "CREATED", + data: post + } + }) + : null; + return post; + }, + deletePost: (parent, { id }, { db: { posts, comments }, pubsub }, info) => { + const postIndex = posts.findIndex(post => post.id === id); + if (postIndex === -1) throw new Error("post not found"); + const [deletedPost] = posts.splice(postIndex, 1); + comments = comments.filter(comment => comment.post !== id); + deletedPost.published + ? pubsub.publish("post", { + post: { + mutation: "DELETED", + data: deletedPost + } + }) + : null; + + return deletedPost; + }, + updatePost: (parent, { id, data }, { db: { posts }, pubsub }, info) => { + const post = posts.find(post => id === post.id); + if (!post) throw new Error("post not found"); + if (!data.published && post.published) { + pubsub.publish("post", { + post: { + mutation: "DELETED", + data: post + } + }); + } else if (data.published && !post.published) { + pubsub.publish("post", { + post: { + mutation: "CREATED", + data: Object.assign(post, data) + } + }); + } else if (post.published) { + pubsub.publish("post", { + post: { + mutation: "UPDATED", + data: Object.assign(post, data) + } + }); + } + return Object.assign(post, data); + }, + createComment: ( + parent, + { data }, + { db: { users, posts, comments }, pubsub }, + info + ) => { + const userExists = users.some(user => user.id === data.author); + const postExists = posts.some( + post => post.id === data.post && post.published + ); + + if (!userExists || !postExists) { + throw new Error("user or post not found"); + } + + const comment = { + id: uuid(), + ...data + }; + + comments.push(comment); + + pubsub.publish(`comment ${data.post}`, { + comment: { + mutation: "CREATED", + payload: comment + } + }); + + return comment; + }, + deleteComment: (parent, { id }, { db: { comments }, pubsub }, info) => { + const commentIndex = comments.findIndex(comment => comment.id === id); + if (commentIndex === -1) throw new Error("comment not found"); + const [deletedComment] = comments.splice(commentIndex, 1); + pubsub.publish(`comment ${deletedComment.post}`, { + comment: { + mutation: "DELETED", + payload: deletedComment + } + }); + return deletedComment; + }, + updateComment: (parent, { id, data }, { db: { comments }, pubsub }, info) => { + const comment = comments.find(comment => id === comment.id); + if (!comment) throw new Error("comment not found"); + pubsub.publish(`comment ${comment.post}`, { + comment: { + mutation: "UPDATED", + payload: Object.assign(comment, data) + } + }); + return Object.assign(comment, data); + } +}; + +module.exports = { + Mutation +}; diff --git a/resolvers/post.resolver.js b/resolvers/post.resolver.js new file mode 100644 index 0000000..63c897e --- /dev/null +++ b/resolvers/post.resolver.js @@ -0,0 +1,9 @@ +const Post = { + author: (parent, agrs, { prisma }, info) => prisma.post({ id: parent.id }).author(), + comments: (parent, agrs, { db: { comments } }, info) => + comments.filter(comment => comment.post === parent.id) +}; + +module.exports = { + Post +}; diff --git a/resolvers/query.resolver.js b/resolvers/query.resolver.js new file mode 100644 index 0000000..fa15493 --- /dev/null +++ b/resolvers/query.resolver.js @@ -0,0 +1,21 @@ +const Query = { + users: (parent, args, { prisma }, info) => { + return prisma.users(); + // return args.query + // ? users.filter(user => + // user.name.toLowerCase().includes(args.query.toLowerCase()) + // ) + // : users; + }, + posts: (parent, args, { prisma }, info) => prisma.posts(), + // args.query + // ? posts.filter(post => + // post.title.toLowerCase().includes(args.query.toLowerCase()) + // ) + // : posts, + comments: (parent, args, { db: { comments } }, info) => comments +}; + +module.exports = { + Query +}; diff --git a/resolvers/subscription.resolver.js b/resolvers/subscription.resolver.js new file mode 100644 index 0000000..bcbf169 --- /dev/null +++ b/resolvers/subscription.resolver.js @@ -0,0 +1,19 @@ +const Subscription = { + comment: { + subscribe: (parent, { postId }, { db: { posts }, pubsub }, info) => { + const post = posts.find(post => postId === post.id && post.published); + if (!post) throw new Error("post not found"); + + return pubsub.asyncIterator(`comment ${postId}`); + } + }, + post: { + subscribe: (parent, args, { pubsub }, info) => { + return pubsub.asyncIterator("post"); + } + } +}; + +module.exports = { + Subscription +}; diff --git a/resolvers/user.resolver.js b/resolvers/user.resolver.js new file mode 100644 index 0000000..11b75c9 --- /dev/null +++ b/resolvers/user.resolver.js @@ -0,0 +1,10 @@ +const User = { + posts: (parent, args, { db: { posts } }, info) => + posts.filter(post => post.author === parent.id), + comments: (parent, args, { db: { comments } }, info) => + comments.filter(comment => comment.author === parent.id) +}; + + module.exports = { + User + }; \ No newline at end of file diff --git a/src/db.js b/src/db.js new file mode 100644 index 0000000..4bcc844 --- /dev/null +++ b/src/db.js @@ -0,0 +1,85 @@ +const users = [{ + id: '1', + name: 'Andrew', + email: 'andrew@example.com', + age: 27 +}, { + id: '2', + name: 'Sarah', + email: 'sarah@example.com' +}, { + id: '3', + name: 'Mike', + email: 'mike@example.com' +}] + +const posts = [{ + id: '10', + title: 'GraphQL 101', + body: 'This is how to use GraphQL...', + published: true, + author: '1' +}, { + id: '11', + title: 'GraphQL 201', + body: 'This is an advanced GraphQL post...', + published: false, + author: '1' +}, { + id: '12', + title: 'Programming Music', + body: '', + published: false, + author: '2' +}] + +const comments = [ + { + id: '331', + text: 'Minus culpa quia possimus mollitia fuga quaerat delectus', + author: '1', + post: '11' + }, + { + id: '11654', + text: 'Perspiciatis quia molestias aliquid', + author: '1', + post: '12' + }, + { + id: '63151', + text: 'Iusto incidunt id omnis', + author: '2', + post: '10' + }, + { + id: '39217', + text: 'Atque veniam quaerat', + author: '2', + post: '11' + }, + { + id: '73500', + text: 'Aut autem qui veritatis consequatur eveniet cum voluptatem atque et', + author: '3', + post: '11' + }, + { + id: '57995', + text: 'Voluptates omnis nam', + author: '3', + post: '12' + }, + { + id: '63112', + text: 'Rerum est possimus', + author: '3', + post: '12' + }, +]; + +module.exports = { + users, + posts, + comments +} \ No newline at end of file diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..288a7d4 --- /dev/null +++ b/src/index.js @@ -0,0 +1,35 @@ +const { GraphQLServer, PubSub } = require("graphql-yoga"); +// const { RedisPubSub } = require("graphql-redis-subscriptions"); +const { Query } = require("../resolvers/query.resolver"); +const { Mutation } = require("../resolvers/mutation.resolver"); +const { User } = require("../resolvers/user.resolver"); +const { Post } = require("../resolvers/post.resolver"); +const { Comment } = require("../resolvers/comment.resolver"); +const { Subscription } = require("../resolvers/subscription.resolver"); +let db = require("./db"); +const { prisma } = require("../prisma/generated/prisma-client/index"); + +const pubsub = new PubSub(); + +const resolvers = { + Query, + Mutation, + Subscription, + Post, + User, + Comment +}; + +const server = new GraphQLServer({ + typeDefs: "./src/schema.graphql", + resolvers, + context: { + db, + prisma, + pubsub + } +}); + +server.start(() => { + console.log("it is working!"); +}); diff --git a/src/schema.graphql b/src/schema.graphql new file mode 100644 index 0000000..519e5fa --- /dev/null +++ b/src/schema.graphql @@ -0,0 +1,100 @@ +type Query { + me: User + users(query: String): [User] + posts(query: String): [Post] + comments: [Comment] +} + +type Mutation { + createUser(data: CreateUserInput): User! + deleteUser(id: ID!): User! + updateUser(id: ID!, data: updateUserInput): User! + createPost(data: CreatePostInput): Post! + deletePost(id: ID!): Post! + updatePost(id: ID!, data: updatePostInput): Post! + createComment(data: CreateCommentInput): Comment! + deleteComment(id: ID!): Comment! + updateComment(id: ID!, data: updateCommentInput): Comment! +} + +type Subscription { + comment(postId: ID!): CommentSubscriptionPayload! + post: PostSubscriptionPayload! +} + +input CreateUserInput { + name: String! + email: String! + age: Int +} + +input updateUserInput { + name: String + email: String + age: Int +} + +input CreatePostInput { + title: String! + body: String! + published: Boolean! + author: ID! +} + +input updatePostInput { + title: String + body: String + published: Boolean +} + +input CreateCommentInput { + text: String! + author: ID! + post: ID! +} + +input updateCommentInput { + text: String +} + +type User { + id: ID! + name: String! + email: String! + age: Int + posts: [Post] + comments: [Comment] +} + +type Post { + id: ID! + title: String! + body: String! + published: Boolean! + author: User! + comments: [Comment] +} + +type Comment { + id: ID! + text: String! + author: User! + post: Post! +} + +enum MutationType { + CREATED + UPDATED + DELETED +} + +type PostSubscriptionPayload { + mutation: MutationType! + data: Post! +} + +type CommentSubscriptionPayload { + mutation: MutationType! + data: Post! +} +