diff options
| -rw-r--r-- | backend/.graphqlconfig.yml | 6 | ||||
| -rw-r--r-- | backend/database/prisma.yml | 3 | ||||
| -rw-r--r-- | backend/package-lock.json | 1256 | ||||
| -rw-r--r-- | backend/package.json | 1 | ||||
| -rw-r--r-- | backend/prisma/datamodel.graphql (renamed from backend/database/datamodel.graphql) | 0 | ||||
| -rw-r--r-- | backend/prisma/prisma.yml | 6 | ||||
| -rw-r--r-- | backend/src/createServer.js | 13 | ||||
| -rw-r--r-- | backend/src/db.js | 10 | ||||
| -rw-r--r-- | backend/src/generated/prisma.graphql | 2328 | ||||
| -rw-r--r-- | backend/src/index.js | 5 | ||||
| -rw-r--r-- | backend/src/resolvers/Query.js | 5 | ||||
| -rw-r--r-- | backend/src/schema.graphql | 7 | ||||
| -rw-r--r-- | backend/variables.env.sample | 2 |
13 files changed, 2268 insertions, 1374 deletions
diff --git a/backend/.graphqlconfig.yml b/backend/.graphqlconfig.yml index b495937..2f01155 100644 --- a/backend/.graphqlconfig.yml +++ b/backend/.graphqlconfig.yml @@ -3,8 +3,8 @@ projects: schemaPath: "src/schema.graphql" extensions: endpoints: - default: "http://localhost:4000" - database: + default: "http://localhost:4444" + prisma: schemaPath: "src/generated/prisma.graphql" extensions: - prisma: database/prisma.yml
\ No newline at end of file + prisma: prisma/prisma.yml
\ No newline at end of file diff --git a/backend/database/prisma.yml b/backend/database/prisma.yml deleted file mode 100644 index 8a11c08..0000000 --- a/backend/database/prisma.yml +++ /dev/null @@ -1,3 +0,0 @@ -endpoint: ${PRISMA_ENDPOINT} -datamodel: datamodel.graphql -secret: ${env:PRISMA_SECRET} diff --git a/backend/package-lock.json b/backend/package-lock.json index fd2a1a7..e4efb0f 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -12,6 +12,33 @@ "@babel/highlight": "7.0.0-beta.46" } }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.38", + "jsesc": "2.5.1", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, "@babel/highlight": { "version": "7.0.0-beta.46", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.46.tgz", @@ -32,12 +59,176 @@ "regenerator-runtime": "0.11.1" } }, + "@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==", + "dev": true, + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "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=", + "dev": true + } + } + }, "@heroku/linewrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@heroku/linewrap/-/linewrap-1.0.0.tgz", "integrity": "sha512-qPeQp2DnALUwWKaL6ZXfnOw/lHp+zNg5V8whx5c/Y10HMWYjuQFqKupgoJgyuEYjnvYwoZTarW280+aOXWQLCQ==", "dev": true }, + "@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==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "isomorphic-fetch": "2.2.1", + "js-yaml": "3.11.0", + "json-schema-ref-parser": "3.3.1", + "lodash": "4.17.10", + "node-request-by-swagger": "1.1.0", + "request": "2.85.0", + "request-promise": "4.2.2", + "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=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "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=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "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=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "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=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.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=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.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.1.1", + "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=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, "@types/body-parser": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", @@ -535,6 +726,108 @@ "graphql-extensions": "0.0.10" } }, + "apollo-codegen": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/apollo-codegen/-/apollo-codegen-0.19.1.tgz", + "integrity": "sha512-jlxz/b5iinRWfh48hXdmMtrjTPn/rDok0Z3b7icvkiaD6I30w4sq9B+JDkFbLnkldzsFLV2BZtBDa/dkZhx8Ng==", + "dev": true, + "requires": { + "@babel/generator": "7.0.0-beta.38", + "@babel/types": "7.0.0-beta.38", + "change-case": "3.0.2", + "common-tags": "1.7.2", + "core-js": "2.5.6", + "glob": "7.1.2", + "graphql": "0.13.2", + "graphql-config": "1.2.1", + "inflected": "2.0.4", + "node-fetch": "1.7.3", + "rimraf": "2.6.2", + "source-map-support": "0.5.5", + "yargs": "10.1.2" + }, + "dependencies": { + "graphql-config": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-1.2.1.tgz", + "integrity": "sha512-BOtbEOn/fD13jT0peCy3Fzp1DSTsA/1AcZp266AQ5Sk3wFndKCEa/H7donbu5UriOw1V/N1WDirYPnr7rd8E7Q==", + "dev": true, + "requires": { + "graphql": "0.12.3", + "graphql-import": "0.4.5", + "graphql-request": "1.6.0", + "js-yaml": "3.11.0", + "lodash": "4.17.10", + "minimatch": "3.0.4" + }, + "dependencies": { + "graphql": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.12.3.tgz", + "integrity": "sha512-Hn9rdu4zacplKXNrLCvR8YFiTGnbM4Zw/UH8FDmzBDsH7ou40lSNH4tIlsxcYnz2TGNVJCpu1WxCM23yd6kzhA==", + "dev": true, + "requires": { + "iterall": "1.1.3" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + }, + "iterall": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", + "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==", + "dev": true + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.1.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==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, "apollo-link": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.2.tgz", @@ -2010,6 +2303,12 @@ "integrity": "sha1-EqYHWj5JiNpMIvIY4pSFZj5MSmM=", "dev": true }, + "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=", + "dev": true + }, "callsites": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", @@ -2101,6 +2400,54 @@ "supports-color": "5.4.0" } }, + "change-case": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", + "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", + "dev": true, + "requires": { + "camel-case": "3.0.0", + "constant-case": "2.0.0", + "dot-case": "2.1.1", + "header-case": "1.0.1", + "is-lower-case": "1.1.3", + "is-upper-case": "1.1.2", + "lower-case": "1.1.4", + "lower-case-first": "1.0.2", + "no-case": "2.3.2", + "param-case": "2.1.1", + "pascal-case": "2.0.1", + "path-case": "2.1.1", + "sentence-case": "2.1.1", + "snake-case": "2.1.0", + "swap-case": "1.1.2", + "title-case": "2.1.1", + "upper-case": "1.1.3", + "upper-case-first": "1.1.2" + }, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case-first": "1.1.2" + } + } + } + }, "chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", @@ -2284,6 +2631,12 @@ "restore-cursor": "2.0.0" } }, + "cli-spinners": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "dev": true + }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -2309,6 +2662,12 @@ "wrap-ansi": "2.1.0" } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2349,6 +2708,33 @@ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true }, + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "dev": true, + "requires": { + "strip-ansi": "3.0.1", + "wcwidth": "1.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=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, "combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -2358,11 +2744,26 @@ "delayed-stream": "1.0.0" } }, + "command-exists": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.6.tgz", + "integrity": "sha512-Qst/zUUNmS/z3WziPxyqjrcz09pm+2Knbs5mAZL4VAE0sSrNY1/w8+/YxeHcoBTsO6iojA6BW7eFf27Eg2MRuw==", + "dev": true + }, "commander": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, + "common-tags": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz", + "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, "compare-versions": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.1.0.tgz", @@ -2448,6 +2849,16 @@ "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=", + "dev": true, + "requires": { + "snake-case": "2.1.0", + "upper-case": "1.1.3" + } + }, "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", @@ -2518,6 +2929,29 @@ "vary": "1.1.2" } }, + "cosmiconfig": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-3.1.0.tgz", + "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.11.0", + "parse-json": "3.0.0", + "require-from-string": "2.0.2" + }, + "dependencies": { + "parse-json": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz", + "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + } + } + }, "crc": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", @@ -2635,6 +3069,42 @@ "cssom": "0.3.2" } }, + "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==", + "dev": true, + "requires": { + "find": "0.2.9", + "fs-extra": "3.0.1", + "js-base64": "2.4.5", + "jsonfile": "3.0.1", + "lodash": "4.17.10", + "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=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "3.0.1", + "universalify": "0.1.1" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2798,6 +3268,15 @@ "strip-bom": "2.0.0" } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "1.0.4" + } + }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", @@ -2917,6 +3396,30 @@ "integrity": "sha1-4MGmb2JUgar31gN0Hw09k83Uhno=", "dev": true }, + "disparity": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/disparity/-/disparity-2.0.0.tgz", + "integrity": "sha1-V92stHMkrl9Y0swNqIbbTOnutxg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "diff": "1.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + } + } + }, "domexception": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", @@ -2926,6 +3429,15 @@ "webidl-conversions": "4.0.2" } }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "dev": true, + "requires": { + "no-case": "2.3.2" + } + }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -3246,6 +3758,15 @@ "fill-range": "2.2.4" } }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "1.0.1" + } + }, "expect": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz", @@ -3537,6 +4058,15 @@ } } }, + "find": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/find/-/find-0.2.9.tgz", + "integrity": "sha1-S3Px/55WrZG3bnFkB/5f/mVUu4w=", + "dev": true, + "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", @@ -3583,6 +4113,12 @@ "mime-types": "2.1.18" } }, + "format-util": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.3.tgz", + "integrity": "sha1-Ay3KShFiYqEsQ/TD7IVmQWxbLZU=", + "dev": true + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -4248,6 +4784,30 @@ "ini": "1.3.5" } }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "1.0.2", + "is-windows": "1.0.2", + "resolve-dir": "1.0.1" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "homedir-polyfill": "1.0.1", + "ini": "1.3.5", + "is-windows": "1.0.2", + "which": "1.3.0" + } + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -4320,6 +4880,62 @@ "through": "2.3.8" } }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "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.11.0", + "json-stable-stringify": "1.0.1", + "jsonwebtoken": "8.2.1", + "lodash": "4.17.10", + "replaceall": "0.1.6", + "scuid": "1.1.0", + "yaml-ast-parser": "0.0.40" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + } + } + }, "graphql": { "version": "0.13.2", "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz", @@ -4371,6 +4987,214 @@ } } }, + "graphql-cli": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/graphql-cli/-/graphql-cli-2.16.0.tgz", + "integrity": "sha512-JIfynto1O85LGNAZFc+cASpZGtYVgUlAQZUZcFZjSghAEgx/22E/u2m+aOuffcrrH9Hko8pNZ5X69okvu5D8+Q==", + "dev": true, + "requires": { + "adm-zip": "0.4.7", + "apollo-codegen": "0.19.1", + "chalk": "2.4.1", + "command-exists": "1.2.6", + "cross-spawn": "6.0.5", + "disparity": "2.0.0", + "dotenv": "5.0.1", + "express": "4.16.3", + "express-request-proxy": "2.0.0", + "graphql": "0.13.2", + "graphql-cli-prepare": "1.4.19", + "graphql-config": "2.0.1", + "graphql-config-extension-graphcool": "1.0.8", + "graphql-config-extension-openapi": "1.0.6", + "graphql-config-extension-prisma": "0.0.11", + "graphql-playground-middleware-express": "1.6.2", + "graphql-schema-linter": "0.1.1", + "inquirer": "5.1.0", + "is-url-superb": "2.0.0", + "js-yaml": "3.11.0", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "node-fetch": "2.0.0", + "npm-paths": "1.0.0", + "npm-run": "5.0.1", + "opn": "5.3.0", + "ora": "1.4.0", + "parse-github-url": "1.0.2", + "request": "2.85.0", + "rimraf": "2.6.2", + "source-map-support": "0.5.5", + "update-notifier": "2.5.0", + "yargs": "11.0.0" + }, + "dependencies": { + "adm-zip": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", + "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "graphql-config": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.0.1.tgz", + "integrity": "sha512-eb4FzlODifHE/Q+91QptAmkGw39wL5ToinJ2556UUsGt2drPc4tzifL+HSnHSaxiIbH8EUhc/Fa6+neinF04qA==", + "dev": true, + "requires": { + "graphql-import": "0.4.5", + "graphql-request": "1.6.0", + "js-yaml": "3.11.0", + "lodash": "4.17.10", + "minimatch": "3.0.4" + } + }, + "graphql-config-extension-prisma": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/graphql-config-extension-prisma/-/graphql-config-extension-prisma-0.0.11.tgz", + "integrity": "sha512-Mlj/VYshHbwDrVHgNyNAl2cBU7+Rh503S43UYXcBtR9Am2KNvmPPPccXEeP6yist0yY2WM0WTwL8JoIGrWeFOw==", + "dev": true, + "requires": { + "graphql-config": "2.0.1", + "prisma-yml": "1.0.50" + } + }, + "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==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + }, + "graphql-playground-middleware-express": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.6.2.tgz", + "integrity": "sha512-BHaEZe2J2lQ1TX2W73a6PI2zVjB9Nb0J9pFdbG1L7ugYdbait/elDrsNMxLCsDHVOGJF009VlYszrk7Cq7FiTg==", + "dev": true, + "requires": { + "graphql-playground-html": "1.5.5" + } + }, + "inquirer": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.1.0.tgz", + "integrity": "sha512-kn7N70US1MSZHZHSGJLiZ7iCwwncc7b0gc68YtlX29OjI3Mp0tSVV+snVXpZ1G+ONS3Ac9zd1m6hve2ibLDYfA==", + "dev": true, + "requires": { + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rxjs": "5.5.10", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "prisma-yml": { + "version": "1.0.50", + "resolved": "https://registry.npmjs.org/prisma-yml/-/prisma-yml-1.0.50.tgz", + "integrity": "sha512-Vpt6q+YzS6yozMnIPU75hlHzmDR1Hj4Z3FXaazJrOXUyeQx/xDqeEwRJ+ii4xl/GRYiFnMEVSLfsPzjLehA1Zw==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "bluebird": "3.5.1", + "chalk": "2.4.1", + "debug": "3.1.0", + "dotenv": "4.0.0", + "fs-extra": "5.0.0", + "graphql-request": "1.6.0", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "isomorphic-fetch": "2.2.1", + "js-yaml": "3.11.0", + "json-stable-stringify": "1.0.1", + "jsonwebtoken": "8.2.1", + "lodash": "4.17.10", + "prisma-json-schema": "0.0.4", + "replaceall": "0.1.6", + "scuid": "1.1.0", + "yaml-ast-parser": "0.0.40" + }, + "dependencies": { + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", + "dev": true + } + } + } + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.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==", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } + } + }, "graphql-config": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.0.0.tgz", @@ -4393,6 +5217,74 @@ } } }, + "graphql-config-extension-graphcool": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/graphql-config-extension-graphcool/-/graphql-config-extension-graphcool-1.0.8.tgz", + "integrity": "sha512-eMvL/RAo88EHo8SmP40Zcsrx7nrLTE82G4ZochsHYoEvP+QMo0XA+Vq9lxYeRTJEtGMFD4imjHXGHWh4B0srQw==", + "dev": true, + "requires": { + "graphcool-yml": "0.4.15", + "graphql-config": "2.0.1" + }, + "dependencies": { + "graphql-config": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.0.1.tgz", + "integrity": "sha512-eb4FzlODifHE/Q+91QptAmkGw39wL5ToinJ2556UUsGt2drPc4tzifL+HSnHSaxiIbH8EUhc/Fa6+neinF04qA==", + "dev": true, + "requires": { + "graphql-import": "0.4.5", + "graphql-request": "1.6.0", + "js-yaml": "3.11.0", + "lodash": "4.17.10", + "minimatch": "3.0.4" + } + }, + "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==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + } + } + }, + "graphql-config-extension-openapi": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/graphql-config-extension-openapi/-/graphql-config-extension-openapi-1.0.6.tgz", + "integrity": "sha512-Do6tHyQyxaPhaZdJ+ZCpYbVhczlqNqMVuO46aG/YkMuRQPoj/FRmeH9BFXniFkz60TZyRpLTQNel2sllMekRLQ==", + "dev": true, + "requires": { + "@kbrandwijk/swagger-to-graphql": "2.4.3", + "graphql-config": "2.0.1" + }, + "dependencies": { + "graphql-config": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.0.1.tgz", + "integrity": "sha512-eb4FzlODifHE/Q+91QptAmkGw39wL5ToinJ2556UUsGt2drPc4tzifL+HSnHSaxiIbH8EUhc/Fa6+neinF04qA==", + "dev": true, + "requires": { + "graphql-import": "0.4.5", + "graphql-request": "1.6.0", + "js-yaml": "3.11.0", + "lodash": "4.17.10", + "minimatch": "3.0.4" + } + }, + "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==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + } + } + }, "graphql-config-extension-prisma": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/graphql-config-extension-prisma/-/graphql-config-extension-prisma-0.0.12.tgz", @@ -4530,6 +5422,31 @@ "cross-fetch": "2.0.0" } }, + "graphql-schema-linter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/graphql-schema-linter/-/graphql-schema-linter-0.1.1.tgz", + "integrity": "sha512-caZbOgNw08/9p3a+qusmaFi1TklG9ti+KHI6a2yfdp009gyoClWGQ+ElKVIiZkJQSeWCri2s2UFBCZjoM0JwTw==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "columnify": "1.5.4", + "commander": "2.15.1", + "cosmiconfig": "3.1.0", + "figures": "2.0.0", + "glob": "7.1.2", + "graphql": "0.13.2", + "lodash": "4.17.10" + } + }, + "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==", + "dev": true, + "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", @@ -4747,6 +5664,16 @@ "sntp": "2.1.0" } }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, "hoek": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", @@ -4763,6 +5690,15 @@ "os-tmpdir": "1.0.2" } }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "1.0.0" + } + }, "hosted-git-info": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", @@ -4890,6 +5826,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "inflected": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.0.4.tgz", + "integrity": "sha512-HQPzFLTTUvwfeUH6RAGjD8cHS069mBqXG5n4qaxX7sJXBhVQrsGgF+0ZJGkSuN6a8pcUWB/GXStta11kKi/WvA==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4946,6 +5888,12 @@ "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=", + "dev": true + }, "ipaddr.js": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", @@ -5039,6 +5987,12 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -5105,6 +6059,15 @@ "is-path-inside": "1.0.1" } }, + "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=", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, "is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", @@ -5243,6 +6206,24 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "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=", + "dev": true, + "requires": { + "upper-case": "1.1.3" + } + }, + "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=", + "dev": true, + "requires": { + "url-regex": "3.2.0" + } + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -5872,6 +6853,12 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, + "js-base64": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", + "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", + "dev": true + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -5958,6 +6945,31 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, + "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==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "debug": "3.1.0", + "es6-promise": "4.2.4", + "js-yaml": "3.11.0", + "ono": "4.0.5", + "z-schema": "3.22.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", @@ -6252,6 +7264,12 @@ "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=", + "dev": true + }, "lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", @@ -6336,6 +7354,15 @@ "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", "dev": true }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "2.4.1" + } + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -6357,6 +7384,15 @@ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, + "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=", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -6757,6 +7793,21 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, "node-emoji": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", @@ -6795,6 +7846,12 @@ "which": "1.3.0" } }, + "node-request-by-swagger": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/node-request-by-swagger/-/node-request-by-swagger-1.1.0.tgz", + "integrity": "sha512-BptVwRKkvTotIKtw31TpKJ7ifFXdIu1mhD3q6pyZtjYv3rfKVLgVH1Yedto/BqIt1bYWiNY3gS3mPvPcU+ONAg==", + "dev": true + }, "nodemailer": { "version": "4.6.4", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.6.4.tgz", @@ -6886,6 +7943,16 @@ "which": "1.3.0" } }, + "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==", + "dev": true, + "requires": { + "global-modules": "1.0.0", + "is-windows": "1.0.2" + } + }, "npm-run": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npm-run/-/npm-run-5.0.1.tgz", @@ -7057,6 +8124,21 @@ "mimic-fn": "1.2.0" } }, + "ono": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.5.tgz", + "integrity": "sha512-ZVNuV9kJbr/2tWs83I2snrYo+WIS0DISF/xUfX9p9b6GyDD6F5N9PzHjW+p/dep6IGwSYylf1HCub5I/nM0R5Q==", + "dev": true, + "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=", + "dev": true + }, "opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -7106,6 +8188,18 @@ } } }, + "ora": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz", + "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-spinners": "1.3.1", + "log-symbols": "2.2.0" + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -7196,6 +8290,21 @@ "integrity": "sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=", "dev": true }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "2.3.2" + } + }, + "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==", + "dev": true + }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -7217,6 +8326,12 @@ "error-ex": "1.3.1" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", @@ -7228,12 +8343,43 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "dev": true, + "requires": { + "camel-case": "3.0.0", + "upper-case-first": "1.1.2" + }, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + } + } + }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "dev": true, + "requires": { + "no-case": "2.3.2" + } + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -8373,6 +9519,18 @@ "uuid": "3.1.0" } }, + "request-promise": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", + "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.4" + } + }, "request-promise-core": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", @@ -8398,6 +9556,12 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", @@ -8417,6 +9581,16 @@ "resolve-from": "3.0.0" } }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" + } + }, "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", @@ -9027,6 +10201,15 @@ "is-fullwidth-code-point": "2.0.0" } }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "dev": true, + "requires": { + "no-case": "2.3.2" + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -9454,6 +10637,16 @@ "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=", + "dev": true, + "requires": { + "lower-case": "1.1.4", + "upper-case": "1.1.3" + } + }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -9911,6 +11104,16 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -10023,6 +11226,12 @@ } } }, + "traverse-chain": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz", + "integrity": "sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE=", + "dev": true + }, "treeify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", @@ -10352,6 +11561,15 @@ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, + "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=", + "dev": true, + "requires": { + "upper-case": "1.1.3" + } + }, "uri-js": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz", @@ -10399,6 +11617,15 @@ "prepend-http": "1.0.4" } }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", + "dev": true, + "requires": { + "ip-regex": "1.0.3" + } + }, "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", @@ -10508,6 +11735,15 @@ "minimist": "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=", + "dev": true, + "requires": { + "defaults": "1.0.3" + } + }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -10741,6 +11977,26 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" }, + "z-schema": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.22.0.tgz", + "integrity": "sha512-Oq82unxX2PTcJ031gFGcksDHE5PNBs5CbcQ1tbre0Sl4Mu5habZTVmEAkuZS4cK//VgIdNg9UG9PMgMlN6KmiA==", + "dev": true, + "requires": { + "commander": "2.15.1", + "lodash.get": "4.4.2", + "lodash.isequal": "4.5.0", + "validator": "10.2.0" + }, + "dependencies": { + "validator": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.2.0.tgz", + "integrity": "sha512-gz/uknWtNfZTj1BLUzYHDxOoiQ7A4wZ6xPuuE6RpxswR4cNyT4I5kN9jmU0AQr7IBEap9vfYChI2TpssTN6Itg==", + "dev": true + } + } + }, "zen-observable": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.8.tgz", diff --git a/backend/package.json b/backend/package.json index a2c9199..10c7903 100644 --- a/backend/package.json +++ b/backend/package.json @@ -19,6 +19,7 @@ "devDependencies": { "babel-preset-env": "^1.7.0", "dotenv": "5.0.1", + "graphql-cli": "^2.16.0", "jest-cli": "^22.4.3", "nodemon": "1.17.4", "prisma": "1.8.0" diff --git a/backend/database/datamodel.graphql b/backend/prisma/datamodel.graphql index 9465524..9465524 100644 --- a/backend/database/datamodel.graphql +++ b/backend/prisma/datamodel.graphql diff --git a/backend/prisma/prisma.yml b/backend/prisma/prisma.yml new file mode 100644 index 0000000..2940bab --- /dev/null +++ b/backend/prisma/prisma.yml @@ -0,0 +1,6 @@ +datamodel: datamodel.graphql +endpoint: ${env:PRISMA_ENDPOINT} +secret: ${env:PRISMA_SECRET} +hooks: + post-deploy: + - graphql get-schema -p prisma diff --git a/backend/src/createServer.js b/backend/src/createServer.js index e913fde..036d15a 100644 --- a/backend/src/createServer.js +++ b/backend/src/createServer.js @@ -1,8 +1,7 @@ const { GraphQLServer } = require('graphql-yoga'); -const { Prisma } = require('prisma-binding'); - const Mutation = require('./resolvers/Mutation'); const Query = require('./resolvers/Query'); +const db = require('./db'); function createServer() { return new GraphQLServer({ @@ -14,15 +13,7 @@ function createServer() { Mutation, Query, }, - context: req => ({ - ...req, - db: new Prisma({ - typeDefs: 'src/generated/prisma.graphql', - endpoint: process.env.PRISMA_ENDPOINT, // the endpoint of the Prisma DB service (value is set in variables.env) - secret: process.env.PRISMA_SECRET, // taken from database/prisma.yml (value is set in .env) - debug: false, // log all GraphQL queries & mutations - }), - }), + context: req => ({ ...req, db }), }); } diff --git a/backend/src/db.js b/backend/src/db.js new file mode 100644 index 0000000..e8caa14 --- /dev/null +++ b/backend/src/db.js @@ -0,0 +1,10 @@ +const { Prisma } = require('prisma-binding'); + +const db = new Prisma({ + typeDefs: 'src/generated/prisma.graphql', + endpoint: process.env.PRISMA_ENDPOINT, // the endpoint of the Prisma DB service (value is set in variables.env) + secret: process.env.PRISMA_SECRET, // taken from prisma/prisma.yml (value is set in .env) + debug: false, // log all GraphQL queries & mutations +}); + +module.exports = db;
\ No newline at end of file diff --git a/backend/src/generated/prisma.graphql b/backend/src/generated/prisma.graphql index c88f966..aeacf68 100644 --- a/backend/src/generated/prisma.graphql +++ b/backend/src/generated/prisma.graphql @@ -1,73 +1,5 @@ -# THIS FILE HAS BEEN AUTO-GENERATED BY "PRISMA DEPLOY" -# DO NOT EDIT THIS FILE DIRECTLY - -# -# Model Types -# - -type CartItem implements Node { - id: ID! - quantity: Int! - item(where: ItemWhereInput): Item - user(where: UserWhereInput): User! - createdAt: DateTime! - updatedAt: DateTime! -} - -type Item implements Node { - id: ID! - title: String! - description: String! - image: String - largeImage: String - price: Int! - createdAt: DateTime! - updatedAt: DateTime! - user(where: UserWhereInput): User! -} - -type Order implements Node { - id: ID! - items(where: OrderItemWhereInput, orderBy: OrderItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [OrderItem!] - total: Int! - user(where: UserWhereInput): User! - createdAt: DateTime! - updatedAt: DateTime! - charge: String! -} - -type OrderItem implements Node { - id: ID! - title: String! - description: String! - image: String - largeImage: String - price: Int! - createdAt: DateTime! - updatedAt: DateTime! - quantity: Int! - item(where: ItemWhereInput): Item! - user(where: UserWhereInput): User! -} - -type User implements Node { - id: ID! - email: String! - password: String! - name: String! - orders(where: OrderWhereInput, orderBy: OrderOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Order!] - resetToken: String - resetTokenExpiry: String - cart(where: CartItemWhereInput, orderBy: CartItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [CartItem!] - createdAt: DateTime! - updatedAt: DateTime! - permissions: [Permission!] -} - - -# -# Other Types -# +# source: https://us1.prisma.sh/johannes-schickling/wesbos/dev +# timestamp: Mon May 21 2018 18:02:25 GMT-0700 (PDT) type AggregateCartItem { count: Int! @@ -90,23 +22,25 @@ type AggregateUser { } type BatchPayload { - """ - The number of nodes that have been affected by the Batch operation. - """ + """The number of nodes that have been affected by the Batch operation.""" count: Long! } -""" -A connection to a list of items. -""" +type CartItem implements Node { + id: ID! + quantity: Int! + item(where: ItemWhereInput): Item + user(where: UserWhereInput): User! + createdAt: DateTime! + updatedAt: DateTime! +} + +"""A connection to a list of items.""" type CartItemConnection { - """ - Information to aid in pagination. - """ + """Information to aid in pagination.""" pageInfo: PageInfo! - """ - A list of edges. - """ + + """A list of edges.""" edges: [CartItemEdge]! aggregate: AggregateCartItem! } @@ -127,17 +61,12 @@ input CartItemCreateWithoutUserInput { item: ItemCreateOneInput } -""" -An edge in a connection. -""" +"""An edge in a connection.""" type CartItemEdge { - """ - The item at the end of the edge. - """ + """The item at the end of the edge.""" node: CartItem! - """ - A cursor for use in pagination. - """ + + """A cursor for use in pagination.""" cursor: String! } @@ -167,26 +96,30 @@ type CartItemSubscriptionPayload { } input CartItemSubscriptionWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [CartItemSubscriptionWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [CartItemSubscriptionWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [CartItemSubscriptionWhereInput!] + """ The subscription event gets dispatched when it's listed in mutation_in """ mutation_in: [MutationType!] + """ The subscription event gets only dispatched when one of the updated fields names is included in this list """ updatedFields_contains: String + """ The subscription event gets only dispatched when all of the field names included in this list have been updated """ updatedFields_contains_every: [String!] + """ The subscription event gets only dispatched when some of the field names included in this list have been updated """ @@ -205,8 +138,8 @@ input CartItemUpdateManyWithoutUserInput { connect: [CartItemWhereUniqueInput!] disconnect: [CartItemWhereUniqueInput!] delete: [CartItemWhereUniqueInput!] - update: [CartItemUpdateWithoutUserInput!] - upsert: [CartItemUpsertWithoutUserInput!] + update: [CartItemUpdateWithWhereUniqueWithoutUserInput!] + upsert: [CartItemUpsertWithWhereUniqueWithoutUserInput!] } input CartItemUpdateWithoutUserDataInput { @@ -214,165 +147,131 @@ input CartItemUpdateWithoutUserDataInput { item: ItemUpdateOneInput } -input CartItemUpdateWithoutUserInput { +input CartItemUpdateWithWhereUniqueWithoutUserInput { where: CartItemWhereUniqueInput! data: CartItemUpdateWithoutUserDataInput! } -input CartItemUpsertWithoutUserInput { +input CartItemUpsertWithWhereUniqueWithoutUserInput { where: CartItemWhereUniqueInput! update: CartItemUpdateWithoutUserDataInput! create: CartItemCreateWithoutUserInput! } input CartItemWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [CartItemWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [CartItemWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [CartItemWhereInput!] id: ID - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" id_not: ID - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" id_in: [ID!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" id_not_in: [ID!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" id_lt: ID - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" id_lte: ID - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" id_gt: ID - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" id_gte: ID - """ - All values containing the given string. - """ + + """All values containing the given string.""" id_contains: ID - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" id_not_contains: ID - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" id_starts_with: ID - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" id_not_starts_with: ID - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" id_ends_with: ID - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" id_not_ends_with: ID quantity: Int - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" quantity_not: Int - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" quantity_in: [Int!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" quantity_not_in: [Int!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" quantity_lt: Int - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" quantity_lte: Int - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" quantity_gt: Int - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" quantity_gte: Int createdAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" createdAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" createdAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" createdAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" createdAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" createdAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" createdAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" createdAt_gte: DateTime updatedAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" updatedAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" updatedAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" updatedAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" updatedAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" updatedAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" updatedAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" updatedAt_gte: DateTime item: ItemWhereInput user: UserWhereInput @@ -384,17 +283,24 @@ input CartItemWhereUniqueInput { scalar DateTime -""" -A connection to a list of items. -""" +type Item implements Node { + id: ID! + title: String! + description: String! + image: String + largeImage: String + price: Int! + createdAt: DateTime! + updatedAt: DateTime! + user(where: UserWhereInput): User! +} + +"""A connection to a list of items.""" type ItemConnection { - """ - Information to aid in pagination. - """ + """Information to aid in pagination.""" pageInfo: PageInfo! - """ - A list of edges. - """ + + """A list of edges.""" edges: [ItemEdge]! aggregate: AggregateItem! } @@ -413,17 +319,12 @@ input ItemCreateOneInput { connect: ItemWhereUniqueInput } -""" -An edge in a connection. -""" +"""An edge in a connection.""" type ItemEdge { - """ - The item at the end of the edge. - """ + """The item at the end of the edge.""" node: Item! - """ - A cursor for use in pagination. - """ + + """A cursor for use in pagination.""" cursor: String! } @@ -465,26 +366,30 @@ type ItemSubscriptionPayload { } input ItemSubscriptionWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [ItemSubscriptionWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [ItemSubscriptionWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [ItemSubscriptionWhereInput!] + """ The subscription event gets dispatched when it's listed in mutation_in """ mutation_in: [MutationType!] + """ The subscription event gets only dispatched when one of the updated fields names is included in this list """ updatedFields_contains: String + """ The subscription event gets only dispatched when all of the field names included in this list have been updated """ updatedFields_contains_every: [String!] + """ The subscription event gets only dispatched when some of the field names included in this list have been updated """ @@ -492,6 +397,15 @@ input ItemSubscriptionWhereInput { node: ItemWhereInput } +input ItemUpdateDataInput { + title: String + description: String + image: String + largeImage: String + price: Int + user: UserUpdateOneInput +} + input ItemUpdateInput { title: String description: String @@ -504,370 +418,290 @@ input ItemUpdateInput { input ItemUpdateOneInput { create: ItemCreateInput connect: ItemWhereUniqueInput - disconnect: ItemWhereUniqueInput - delete: ItemWhereUniqueInput + delete: Boolean + update: ItemUpdateDataInput + upsert: ItemUpsertNestedInput +} + +input ItemUpsertNestedInput { + update: ItemUpdateDataInput! + create: ItemCreateInput! } input ItemWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [ItemWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [ItemWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [ItemWhereInput!] id: ID - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" id_not: ID - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" id_in: [ID!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" id_not_in: [ID!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" id_lt: ID - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" id_lte: ID - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" id_gt: ID - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" id_gte: ID - """ - All values containing the given string. - """ + + """All values containing the given string.""" id_contains: ID - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" id_not_contains: ID - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" id_starts_with: ID - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" id_not_starts_with: ID - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" id_ends_with: ID - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" id_not_ends_with: ID title: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" title_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" title_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" title_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" title_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" title_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" title_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" title_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" title_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" title_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" title_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" title_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" title_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" title_not_ends_with: String description: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" description_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" description_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" description_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" description_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" description_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" description_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" description_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" description_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" description_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" description_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" description_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" description_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" description_not_ends_with: String image: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" image_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" image_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" image_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" image_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" image_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" image_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" image_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" image_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" image_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" image_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" image_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" image_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" image_not_ends_with: String largeImage: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" largeImage_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" largeImage_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" largeImage_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" largeImage_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" largeImage_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" largeImage_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" largeImage_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" largeImage_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" largeImage_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" largeImage_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" largeImage_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" largeImage_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" largeImage_not_ends_with: String price: Int - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" price_not: Int - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" price_in: [Int!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" price_not_in: [Int!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" price_lt: Int - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" price_lte: Int - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" price_gt: Int - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" price_gte: Int createdAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" createdAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" createdAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" createdAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" createdAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" createdAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" createdAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" createdAt_gte: DateTime updatedAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" updatedAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" updatedAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" updatedAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" updatedAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" updatedAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" updatedAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" updatedAt_gte: DateTime user: UserWhereInput } @@ -903,16 +737,16 @@ type Mutation { upsertItem(where: ItemWhereUniqueInput!, create: ItemCreateInput!, update: ItemUpdateInput!): Item! upsertOrderItem(where: OrderItemWhereUniqueInput!, create: OrderItemCreateInput!, update: OrderItemUpdateInput!): OrderItem! upsertOrder(where: OrderWhereUniqueInput!, create: OrderCreateInput!, update: OrderUpdateInput!): Order! - updateManyUsers(data: UserUpdateInput!, where: UserWhereInput!): BatchPayload! - updateManyCartItems(data: CartItemUpdateInput!, where: CartItemWhereInput!): BatchPayload! - updateManyItems(data: ItemUpdateInput!, where: ItemWhereInput!): BatchPayload! - updateManyOrderItems(data: OrderItemUpdateInput!, where: OrderItemWhereInput!): BatchPayload! - updateManyOrders(data: OrderUpdateInput!, where: OrderWhereInput!): BatchPayload! - deleteManyUsers(where: UserWhereInput!): BatchPayload! - deleteManyCartItems(where: CartItemWhereInput!): BatchPayload! - deleteManyItems(where: ItemWhereInput!): BatchPayload! - deleteManyOrderItems(where: OrderItemWhereInput!): BatchPayload! - deleteManyOrders(where: OrderWhereInput!): BatchPayload! + updateManyUsers(data: UserUpdateInput!, where: UserWhereInput): BatchPayload! + updateManyCartItems(data: CartItemUpdateInput!, where: CartItemWhereInput): BatchPayload! + updateManyItems(data: ItemUpdateInput!, where: ItemWhereInput): BatchPayload! + updateManyOrderItems(data: OrderItemUpdateInput!, where: OrderItemWhereInput): BatchPayload! + updateManyOrders(data: OrderUpdateInput!, where: OrderWhereInput): BatchPayload! + deleteManyUsers(where: UserWhereInput): BatchPayload! + deleteManyCartItems(where: CartItemWhereInput): BatchPayload! + deleteManyItems(where: ItemWhereInput): BatchPayload! + deleteManyOrderItems(where: OrderItemWhereInput): BatchPayload! + deleteManyOrders(where: OrderWhereInput): BatchPayload! } enum MutationType { @@ -921,27 +755,28 @@ enum MutationType { DELETED } -""" -An object with an ID -""" +"""An object with an ID""" interface Node { - """ - The id of the object. - """ + """The id of the object.""" id: ID! } -""" -A connection to a list of items. -""" +type Order implements Node { + id: ID! + items(where: OrderItemWhereInput, orderBy: OrderItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [OrderItem!] + total: Int! + user(where: UserWhereInput): User! + createdAt: DateTime! + updatedAt: DateTime! + charge: String! +} + +"""A connection to a list of items.""" type OrderConnection { - """ - Information to aid in pagination. - """ + """Information to aid in pagination.""" pageInfo: PageInfo! - """ - A list of edges. - """ + + """A list of edges.""" edges: [OrderEdge]! aggregate: AggregateOrder! } @@ -964,31 +799,35 @@ input OrderCreateWithoutUserInput { items: OrderItemCreateManyInput } -""" -An edge in a connection. -""" +"""An edge in a connection.""" type OrderEdge { - """ - The item at the end of the edge. - """ + """The item at the end of the edge.""" node: Order! - """ - A cursor for use in pagination. - """ + + """A cursor for use in pagination.""" cursor: String! } -""" -A connection to a list of items. -""" +type OrderItem implements Node { + id: ID! + title: String! + description: String! + image: String + largeImage: String + price: Int! + createdAt: DateTime! + updatedAt: DateTime! + quantity: Int! + item(where: ItemWhereInput): Item! + user(where: UserWhereInput): User! +} + +"""A connection to a list of items.""" type OrderItemConnection { - """ - Information to aid in pagination. - """ + """Information to aid in pagination.""" pageInfo: PageInfo! - """ - A list of edges. - """ + + """A list of edges.""" edges: [OrderItemEdge]! aggregate: AggregateOrderItem! } @@ -1009,17 +848,12 @@ input OrderItemCreateManyInput { connect: [OrderItemWhereUniqueInput!] } -""" -An edge in a connection. -""" +"""An edge in a connection.""" type OrderItemEdge { - """ - The item at the end of the edge. - """ + """The item at the end of the edge.""" node: OrderItem! - """ - A cursor for use in pagination. - """ + + """A cursor for use in pagination.""" cursor: String! } @@ -1064,26 +898,30 @@ type OrderItemSubscriptionPayload { } input OrderItemSubscriptionWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [OrderItemSubscriptionWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [OrderItemSubscriptionWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [OrderItemSubscriptionWhereInput!] + """ The subscription event gets dispatched when it's listed in mutation_in """ mutation_in: [MutationType!] + """ The subscription event gets only dispatched when one of the updated fields names is included in this list """ updatedFields_contains: String + """ The subscription event gets only dispatched when all of the field names included in this list have been updated """ updatedFields_contains_every: [String!] + """ The subscription event gets only dispatched when some of the field names included in this list have been updated """ @@ -1091,6 +929,17 @@ input OrderItemSubscriptionWhereInput { node: OrderItemWhereInput } +input OrderItemUpdateDataInput { + title: String + description: String + image: String + largeImage: String + price: Int + quantity: Int + item: ItemUpdateOneInput + user: UserUpdateOneInput +} + input OrderItemUpdateInput { title: String description: String @@ -1107,397 +956,317 @@ input OrderItemUpdateManyInput { connect: [OrderItemWhereUniqueInput!] disconnect: [OrderItemWhereUniqueInput!] delete: [OrderItemWhereUniqueInput!] + update: [OrderItemUpdateWithWhereUniqueNestedInput!] + upsert: [OrderItemUpsertWithWhereUniqueNestedInput!] +} + +input OrderItemUpdateWithWhereUniqueNestedInput { + where: OrderItemWhereUniqueInput! + data: OrderItemUpdateDataInput! +} + +input OrderItemUpsertWithWhereUniqueNestedInput { + where: OrderItemWhereUniqueInput! + update: OrderItemUpdateDataInput! + create: OrderItemCreateInput! } input OrderItemWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [OrderItemWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [OrderItemWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [OrderItemWhereInput!] id: ID - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" id_not: ID - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" id_in: [ID!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" id_not_in: [ID!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" id_lt: ID - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" id_lte: ID - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" id_gt: ID - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" id_gte: ID - """ - All values containing the given string. - """ + + """All values containing the given string.""" id_contains: ID - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" id_not_contains: ID - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" id_starts_with: ID - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" id_not_starts_with: ID - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" id_ends_with: ID - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" id_not_ends_with: ID title: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" title_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" title_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" title_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" title_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" title_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" title_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" title_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" title_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" title_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" title_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" title_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" title_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" title_not_ends_with: String description: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" description_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" description_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" description_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" description_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" description_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" description_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" description_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" description_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" description_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" description_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" description_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" description_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" description_not_ends_with: String image: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" image_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" image_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" image_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" image_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" image_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" image_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" image_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" image_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" image_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" image_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" image_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" image_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" image_not_ends_with: String largeImage: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" largeImage_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" largeImage_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" largeImage_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" largeImage_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" largeImage_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" largeImage_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" largeImage_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" largeImage_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" largeImage_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" largeImage_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" largeImage_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" largeImage_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" largeImage_not_ends_with: String price: Int - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" price_not: Int - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" price_in: [Int!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" price_not_in: [Int!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" price_lt: Int - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" price_lte: Int - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" price_gt: Int - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" price_gte: Int createdAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" createdAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" createdAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" createdAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" createdAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" createdAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" createdAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" createdAt_gte: DateTime updatedAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" updatedAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" updatedAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" updatedAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" updatedAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" updatedAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" updatedAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" updatedAt_gte: DateTime quantity: Int - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" quantity_not: Int - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" quantity_in: [Int!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" quantity_not_in: [Int!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" quantity_lt: Int - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" quantity_lte: Int - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" quantity_gt: Int - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" quantity_gte: Int item: ItemWhereInput user: UserWhereInput @@ -1536,26 +1305,30 @@ type OrderSubscriptionPayload { } input OrderSubscriptionWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [OrderSubscriptionWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [OrderSubscriptionWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [OrderSubscriptionWhereInput!] + """ The subscription event gets dispatched when it's listed in mutation_in """ mutation_in: [MutationType!] + """ The subscription event gets only dispatched when one of the updated fields names is included in this list """ updatedFields_contains: String + """ The subscription event gets only dispatched when all of the field names included in this list have been updated """ updatedFields_contains_every: [String!] + """ The subscription event gets only dispatched when some of the field names included in this list have been updated """ @@ -1575,8 +1348,8 @@ input OrderUpdateManyWithoutUserInput { connect: [OrderWhereUniqueInput!] disconnect: [OrderWhereUniqueInput!] delete: [OrderWhereUniqueInput!] - update: [OrderUpdateWithoutUserInput!] - upsert: [OrderUpsertWithoutUserInput!] + update: [OrderUpdateWithWhereUniqueWithoutUserInput!] + upsert: [OrderUpsertWithWhereUniqueWithoutUserInput!] } input OrderUpdateWithoutUserDataInput { @@ -1585,218 +1358,171 @@ input OrderUpdateWithoutUserDataInput { items: OrderItemUpdateManyInput } -input OrderUpdateWithoutUserInput { +input OrderUpdateWithWhereUniqueWithoutUserInput { where: OrderWhereUniqueInput! data: OrderUpdateWithoutUserDataInput! } -input OrderUpsertWithoutUserInput { +input OrderUpsertWithWhereUniqueWithoutUserInput { where: OrderWhereUniqueInput! update: OrderUpdateWithoutUserDataInput! create: OrderCreateWithoutUserInput! } input OrderWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [OrderWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [OrderWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [OrderWhereInput!] id: ID - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" id_not: ID - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" id_in: [ID!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" id_not_in: [ID!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" id_lt: ID - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" id_lte: ID - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" id_gt: ID - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" id_gte: ID - """ - All values containing the given string. - """ + + """All values containing the given string.""" id_contains: ID - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" id_not_contains: ID - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" id_starts_with: ID - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" id_not_starts_with: ID - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" id_ends_with: ID - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" id_not_ends_with: ID total: Int - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" total_not: Int - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" total_in: [Int!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" total_not_in: [Int!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" total_lt: Int - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" total_lte: Int - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" total_gt: Int - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" total_gte: Int createdAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" createdAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" createdAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" createdAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" createdAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" createdAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" createdAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" createdAt_gte: DateTime updatedAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" updatedAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" updatedAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" updatedAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" updatedAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" updatedAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" updatedAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" updatedAt_gte: DateTime charge: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" charge_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" charge_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" charge_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" charge_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" charge_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" charge_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" charge_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" charge_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" charge_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" charge_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" charge_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" charge_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" charge_not_ends_with: String items_every: OrderItemWhereInput items_some: OrderItemWhereInput @@ -1808,25 +1534,18 @@ input OrderWhereUniqueInput { id: ID } -""" -Information about pagination in a connection. -""" +"""Information about pagination in a connection.""" type PageInfo { - """ - When paginating forwards, are there more items? - """ + """When paginating forwards, are there more items?""" hasNextPage: Boolean! - """ - When paginating backwards, are there more items? - """ + + """When paginating backwards, are there more items?""" hasPreviousPage: Boolean! - """ - When paginating backwards, the cursor to continue. - """ + + """When paginating backwards, the cursor to continue.""" startCursor: String - """ - When paginating forwards, the cursor to continue. - """ + + """When paginating forwards, the cursor to continue.""" endCursor: String } @@ -1837,7 +1556,6 @@ enum Permission { ITEMUPDATE ITEMDELETE PERMISSIONUPDATE - NUKE } type Query { @@ -1856,13 +1574,12 @@ type Query { itemsConnection(where: ItemWhereInput, orderBy: ItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): ItemConnection! orderItemsConnection(where: OrderItemWhereInput, orderBy: OrderItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): OrderItemConnection! ordersConnection(where: OrderWhereInput, orderBy: OrderOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): OrderConnection! - """ - Fetches an object given its ID - """ - node(""" - The ID of an object - """ - id: ID!): Node + + """Fetches an object given its ID""" + node( + """The ID of an object""" + id: ID! + ): Node } type Subscription { @@ -1873,17 +1590,26 @@ type Subscription { order(where: OrderSubscriptionWhereInput): OrderSubscriptionPayload } -""" -A connection to a list of items. -""" +type User implements Node { + id: ID! + email: String! + password: String! + name: String! + orders(where: OrderWhereInput, orderBy: OrderOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Order!] + resetToken: String + resetTokenExpiry: String + cart(where: CartItemWhereInput, orderBy: CartItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [CartItem!] + createdAt: DateTime! + updatedAt: DateTime! + permissions: [Permission!] +} + +"""A connection to a list of items.""" type UserConnection { - """ - Information to aid in pagination. - """ + """Information to aid in pagination.""" pageInfo: PageInfo! - """ - A list of edges. - """ + + """A list of edges.""" edges: [UserEdge]! aggregate: AggregateUser! } @@ -1938,17 +1664,12 @@ input UserCreateWithoutOrdersInput { cart: CartItemCreateManyWithoutUserInput } -""" -An edge in a connection. -""" +"""An edge in a connection.""" type UserEdge { - """ - The item at the end of the edge. - """ + """The item at the end of the edge.""" node: User! - """ - A cursor for use in pagination. - """ + + """A cursor for use in pagination.""" cursor: String! } @@ -1991,26 +1712,30 @@ type UserSubscriptionPayload { } input UserSubscriptionWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [UserSubscriptionWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [UserSubscriptionWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [UserSubscriptionWhereInput!] + """ The subscription event gets dispatched when it's listed in mutation_in """ mutation_in: [MutationType!] + """ The subscription event gets only dispatched when one of the updated fields names is included in this list """ updatedFields_contains: String + """ The subscription event gets only dispatched when all of the field names included in this list have been updated """ updatedFields_contains_every: [String!] + """ The subscription event gets only dispatched when some of the field names included in this list have been updated """ @@ -2018,6 +1743,17 @@ input UserSubscriptionWhereInput { node: UserWhereInput } +input UserUpdateDataInput { + email: String + password: String + name: String + resetToken: String + resetTokenExpiry: String + permissions: UserUpdatepermissionsInput + orders: OrderUpdateManyWithoutUserInput + cart: CartItemUpdateManyWithoutUserInput +} + input UserUpdateInput { email: String password: String @@ -2032,25 +1768,24 @@ input UserUpdateInput { input UserUpdateOneInput { create: UserCreateInput connect: UserWhereUniqueInput - disconnect: UserWhereUniqueInput - delete: UserWhereUniqueInput + delete: Boolean + update: UserUpdateDataInput + upsert: UserUpsertNestedInput } input UserUpdateOneWithoutCartInput { create: UserCreateWithoutCartInput connect: UserWhereUniqueInput - disconnect: UserWhereUniqueInput - delete: UserWhereUniqueInput - update: UserUpdateWithoutCartInput + delete: Boolean + update: UserUpdateWithoutCartDataInput upsert: UserUpsertWithoutCartInput } input UserUpdateOneWithoutOrdersInput { create: UserCreateWithoutOrdersInput connect: UserWhereUniqueInput - disconnect: UserWhereUniqueInput - delete: UserWhereUniqueInput - update: UserUpdateWithoutOrdersInput + delete: Boolean + update: UserUpdateWithoutOrdersDataInput upsert: UserUpsertWithoutOrdersInput } @@ -2068,11 +1803,6 @@ input UserUpdateWithoutCartDataInput { orders: OrderUpdateManyWithoutUserInput } -input UserUpdateWithoutCartInput { - where: UserWhereUniqueInput! - data: UserUpdateWithoutCartDataInput! -} - input UserUpdateWithoutOrdersDataInput { email: String password: String @@ -2083,407 +1813,313 @@ input UserUpdateWithoutOrdersDataInput { cart: CartItemUpdateManyWithoutUserInput } -input UserUpdateWithoutOrdersInput { - where: UserWhereUniqueInput! - data: UserUpdateWithoutOrdersDataInput! +input UserUpsertNestedInput { + update: UserUpdateDataInput! + create: UserCreateInput! } input UserUpsertWithoutCartInput { - where: UserWhereUniqueInput! update: UserUpdateWithoutCartDataInput! create: UserCreateWithoutCartInput! } input UserUpsertWithoutOrdersInput { - where: UserWhereUniqueInput! update: UserUpdateWithoutOrdersDataInput! create: UserCreateWithoutOrdersInput! } input UserWhereInput { - """ - Logical AND on all given filters. - """ + """Logical AND on all given filters.""" AND: [UserWhereInput!] - """ - Logical OR on all given filters. - """ + + """Logical OR on all given filters.""" OR: [UserWhereInput!] + + """Logical NOT on all given filters combined by AND.""" + NOT: [UserWhereInput!] id: ID - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" id_not: ID - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" id_in: [ID!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" id_not_in: [ID!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" id_lt: ID - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" id_lte: ID - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" id_gt: ID - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" id_gte: ID - """ - All values containing the given string. - """ + + """All values containing the given string.""" id_contains: ID - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" id_not_contains: ID - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" id_starts_with: ID - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" id_not_starts_with: ID - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" id_ends_with: ID - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" id_not_ends_with: ID email: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" email_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" email_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" email_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" email_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" email_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" email_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" email_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" email_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" email_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" email_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" email_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" email_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" email_not_ends_with: String password: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" password_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" password_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" password_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" password_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" password_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" password_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" password_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" password_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" password_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" password_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" password_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" password_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" password_not_ends_with: String name: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" name_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" name_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" name_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" name_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" name_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" name_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" name_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" name_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" name_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" name_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" name_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" name_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" name_not_ends_with: String resetToken: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" resetToken_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" resetToken_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" resetToken_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" resetToken_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" resetToken_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" resetToken_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" resetToken_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" resetToken_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" resetToken_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" resetToken_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" resetToken_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" resetToken_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" resetToken_not_ends_with: String resetTokenExpiry: String - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" resetTokenExpiry_not: String - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" resetTokenExpiry_in: [String!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" resetTokenExpiry_not_in: [String!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" resetTokenExpiry_lt: String - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" resetTokenExpiry_lte: String - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" resetTokenExpiry_gt: String - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" resetTokenExpiry_gte: String - """ - All values containing the given string. - """ + + """All values containing the given string.""" resetTokenExpiry_contains: String - """ - All values not containing the given string. - """ + + """All values not containing the given string.""" resetTokenExpiry_not_contains: String - """ - All values starting with the given string. - """ + + """All values starting with the given string.""" resetTokenExpiry_starts_with: String - """ - All values not starting with the given string. - """ + + """All values not starting with the given string.""" resetTokenExpiry_not_starts_with: String - """ - All values ending with the given string. - """ + + """All values ending with the given string.""" resetTokenExpiry_ends_with: String - """ - All values not ending with the given string. - """ + + """All values not ending with the given string.""" resetTokenExpiry_not_ends_with: String createdAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" createdAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" createdAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" createdAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" createdAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" createdAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" createdAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" createdAt_gte: DateTime updatedAt: DateTime - """ - All values that are not equal to given value. - """ + + """All values that are not equal to given value.""" updatedAt_not: DateTime - """ - All values that are contained in given list. - """ + + """All values that are contained in given list.""" updatedAt_in: [DateTime!] - """ - All values that are not contained in given list. - """ + + """All values that are not contained in given list.""" updatedAt_not_in: [DateTime!] - """ - All values less than the given value. - """ + + """All values less than the given value.""" updatedAt_lt: DateTime - """ - All values less than or equal the given value. - """ + + """All values less than or equal the given value.""" updatedAt_lte: DateTime - """ - All values greater than the given value. - """ + + """All values greater than the given value.""" updatedAt_gt: DateTime - """ - All values greater than or equal the given value. - """ + + """All values greater than or equal the given value.""" updatedAt_gte: DateTime orders_every: OrderWhereInput orders_some: OrderWhereInput diff --git a/backend/src/index.js b/backend/src/index.js index 86bba16..94911ec 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -3,6 +3,7 @@ require('dotenv').config({ path: 'variables.env' }); /* eslint-enable */ const jwt = require('jsonwebtoken'); const createServer = require('./createServer'); +const db = require('./db'); const cookieParser = require('cookie-parser'); const server = createServer(); @@ -21,9 +22,7 @@ server.express.use((req, res, next) => { // 2. Get User from their ID server.express.use(async (req, res, next) => { if (!req.userId) return next(); - const user = await server - .context() - .db.query.user({ where: { id: req.userId } }, `{ id, permissions, email, name }`); + const user = await db.query.user({ where: { id: req.userId } }, `{ id, permissions, email, name }`); req.user = user; next(); }); diff --git a/backend/src/resolvers/Query.js b/backend/src/resolvers/Query.js index cae19d8..51c2c42 100644 --- a/backend/src/resolvers/Query.js +++ b/backend/src/resolvers/Query.js @@ -3,10 +3,7 @@ const { hasPermission } = require('../utils'); const { forwardTo } = require('prisma-binding'); const Query = { - items(parent, args, ctx, info) { - return ctx.db.query.items({ ...args }, info); - }, - + items: forwardTo('db'), itemsConnection: forwardTo('db'), async order(parent, args, ctx, info) { diff --git a/backend/src/schema.graphql b/backend/src/schema.graphql index bd60b61..fdaa04f 100644 --- a/backend/src/schema.graphql +++ b/backend/src/schema.graphql @@ -1,9 +1,12 @@ -# The Below line looks like a comment, but its not! -# import Permission, Order, OrderItem, CartItem, ItemWhereInput, ItemOrderByInput, allItems, Item, ItemCreateInput, ItemOrderByInput, ItemWhereInput, Query.orders, Query.users, Query.items, Query.itemsConnection from './generated/prisma.graphql' +# The Below line looks like a comment, but it's not! +# import * from './generated/prisma.graphql' type Query { me: User order(id: ID!): Order! + orders(where: OrderWhereInput, orderBy: OrderOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Order]! + items(where: ItemWhereInput, orderBy: ItemOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Item]! + itemsConnection(where: ItemWhereInput, orderBy: ItemOrderByInput, first: Int, last: Int): ItemConnection! } type Mutation { diff --git a/backend/variables.env.sample b/backend/variables.env.sample index f4bb9bc..12cd06d 100644 --- a/backend/variables.env.sample +++ b/backend/variables.env.sample @@ -1,6 +1,4 @@ -PRISMA_STAGE="dev" PRISMA_ENDPOINT="https://FILLMEIN" -PRISMA_CLUSTER="prisma-us1" PRISMA_SECRET="omgchangeme" APP_SECRET="you-gotta-make-your-own" STRIPE_SECRET="sk_OMGGETYOUROWN" |
