diff --git a/example/apollo-federation/services/accounts/index.js b/example/apollo-federation/services/accounts/index.js index fecbb523..ead396c0 100644 --- a/example/apollo-federation/services/accounts/index.js +++ b/example/apollo-federation/services/accounts/index.js @@ -30,6 +30,7 @@ export const accountsSchema = buildFederatedSchema([ `, { isFederated: true + // subscription: false // default is false } ), resolvers: { diff --git a/example/apollo-federation/services/inventory/index.js b/example/apollo-federation/services/inventory/index.js index 0f60a601..f1f65843 100644 --- a/example/apollo-federation/services/inventory/index.js +++ b/example/apollo-federation/services/inventory/index.js @@ -72,6 +72,7 @@ export const inventorySchema = buildFederatedSchema([ }, config: { isFederated: true + // subscription: false, // default is false // debug: true } }) diff --git a/example/apollo-federation/services/products/index.js b/example/apollo-federation/services/products/index.js index 6dc4462e..4a6707b8 100644 --- a/example/apollo-federation/services/products/index.js +++ b/example/apollo-federation/services/products/index.js @@ -29,7 +29,8 @@ export const productsSchema = buildFederatedSchema([ } `, config: { - isFederated: true + isFederated: true, + subscription: false // debug: true } }) diff --git a/example/apollo-federation/services/reviews/index.js b/example/apollo-federation/services/reviews/index.js index 06c9c3ed..3a40d257 100644 --- a/example/apollo-federation/services/reviews/index.js +++ b/example/apollo-federation/services/reviews/index.js @@ -199,7 +199,8 @@ export const reviewsSchema = buildFederatedSchema([ } }, config: { - isFederated: true + isFederated: true, + subscription: false // debug: true } }) diff --git a/example/apollo-server/bookmarks.js b/example/apollo-server/bookmarks.js index 5dbba301..94085b23 100644 --- a/example/apollo-server/bookmarks.js +++ b/example/apollo-server/bookmarks.js @@ -7,13 +7,13 @@ type Person { _id: Long! born: Int name: String! - acted_in: [Movie] @relation(name: "ACTED_IN", direction: "OUT") + acted_in: [Movie] @relation(name: "ACTED_IN", direction: OUT) ACTED_IN_rel: [ACTED_IN] - directed: [Movie] @relation(name: "DIRECTED", direction: "OUT") - produced: [Movie] @relation(name: "PRODUCED", direction: "OUT") - wrote: [Movie] @relation(name: "WROTE", direction: "OUT") - follows: [Person] @relation(name: "FOLLOWS", direction: "OUT") - reviewed: [Movie] @relation(name: "REVIEWED", direction: "OUT") + directed: [Movie] @relation(name: "DIRECTED", direction: OUT) + produced: [Movie] @relation(name: "PRODUCED", direction: OUT) + wrote: [Movie] @relation(name: "WROTE", direction: OUT) + follows: [Person] @relation(name: "FOLLOWS", direction: OUT) + reviewed: [Movie] @relation(name: "REVIEWED", direction: OUT) REVIEWED_rel: [REVIEWED] } @@ -22,11 +22,11 @@ type Movie { released: Int! tagline: String title: String! - persons_acted_in: [Person] @relation(name: "ACTED_IN", direction: "IN") - persons_directed: [Person] @relation(name: "DIRECTED", direction: "IN") - persons_produced: [Person] @relation(name: "PRODUCED", direction: "IN") - persons_wrote: [Person] @relation(name: "WROTE", direction: "IN") - persons_reviewed: [Person] @relation(name: "REVIEWED", direction: "IN") + persons_acted_in: [Person] @relation(name: "ACTED_IN", direction: IN) + persons_directed: [Person] @relation(name: "DIRECTED", direction: IN) + persons_produced: [Person] @relation(name: "PRODUCED", direction: IN) + persons_wrote: [Person] @relation(name: "WROTE", direction: IN) + persons_reviewed: [Person] @relation(name: "REVIEWED", direction: IN) } type ACTED_IN @relation(name: "ACTED_IN") { diff --git a/example/apollo-server/movies-middleware.js b/example/apollo-server/movies-middleware.js index 106a33c3..0af3a290 100644 --- a/example/apollo-server/movies-middleware.js +++ b/example/apollo-server/movies-middleware.js @@ -3,11 +3,27 @@ import { ApolloServer } from 'apollo-server-express'; import express from 'express'; import bodyParser from 'body-parser'; import neo4j from 'neo4j-driver'; -import { typeDefs, resolvers } from './movies-schema'; +import { typeDefs, resolvers, pubsub } from './movies-schema'; +import http from 'http'; + +const PORT = 3000; const schema = makeAugmentedSchema({ typeDefs, - resolvers + resolvers, + config: { + subscription: { + publish: (event, key, data) => { + pubsub.publish(event, { + [key]: data + }); + }, + subscribe: events => { + return pubsub.asyncIterator(events); + }, + exclude: ['User'] + } + } }); const driver = neo4j.driver( @@ -35,10 +51,26 @@ const server = new ApolloServer({ context: ({ req }) => { return { driver, - req + req, + cypherParams: { + userId: 'user-id' + } }; } }); server.applyMiddleware({ app, path: '/' }); -app.listen(3000, '0.0.0.0'); + +// See: https://www.apollographql.com/docs/apollo-server/data/subscriptions/#subscriptions-with-additional-middleware +const httpServer = http.createServer(app); +server.installSubscriptionHandlers(httpServer); + +// ⚠️ Pay attention to the fact that we are calling `listen` on the http server variable, and not on `app`. +httpServer.listen(PORT, '0.0.0.0', () => { + console.log( + `🚀 Server ready at http://localhost:${PORT}${server.graphqlPath}` + ); + console.log( + `🚀 Subscriptions ready at ws://localhost:${PORT}${server.subscriptionsPath}` + ); +}); diff --git a/example/apollo-server/movies-schema.js b/example/apollo-server/movies-schema.js index 5c4a5814..6ac453c5 100644 --- a/example/apollo-server/movies-schema.js +++ b/example/apollo-server/movies-schema.js @@ -1,4 +1,7 @@ import { neo4jgraphql } from '../../src/index'; +import { PubSub } from 'apollo-server'; + +export const pubsub = new PubSub(); export const typeDefs = ` type Movie { @@ -13,13 +16,13 @@ type Movie { poster: String imdbRating: Float ratings: [Rated] - genres: [Genre] @relation(name: "IN_GENRE", direction: "OUT") + genres: [Genre] @relation(name: "IN_GENRE", direction: OUT) similar(first: Int = 3, offset: Int = 0, limit: Int = 5): [Movie] @cypher(statement: "MATCH (this)--(:Genre)--(o:Movie) RETURN o LIMIT $limit") mostSimilar: Movie @cypher(statement: "RETURN this") degree: Int @cypher(statement: "RETURN SIZE((this)--())") - actors(first: Int = 3, offset: Int = 0): [Actor] @relation(name: "ACTED_IN", direction:"IN") + actors(first: Int = 3, offset: Int = 0): [Actor] @relation(name: "ACTED_IN", direction:IN) avgStars: Float - filmedIn: State @relation(name: "FILMED_IN", direction: "OUT") + filmedIn: State @relation(name: "FILMED_IN", direction: OUT) location: Point locations: [Point] scaleRating(scale: Int = 3): Float @cypher(statement: "RETURN $scale * this.imdbRating") @@ -29,7 +32,7 @@ type Movie { type Genre { name: String - movies(first: Int = 3, offset: Int = 0): [Movie] @relation(name: "IN_GENRE", direction: "IN") + movies(first: Int = 3, offset: Int = 0): [Movie] @relation(name: "IN_GENRE", direction: IN) highestRatedMovie: Movie @cypher(statement: "MATCH (m:Movie)-[:IN_GENRE]->(this) RETURN m ORDER BY m.imdbRating DESC LIMIT 1") } @@ -45,8 +48,8 @@ interface Person { type Actor { id: ID! name: String - movies: [Movie] @relation(name: "ACTED_IN", direction: "OUT") - knows: [Person] @relation(name: "KNOWS", direction: "OUT") + movies: [Movie] @relation(name: "ACTED_IN", direction: OUT) + knows: [Person] @relation(name: "KNOWS", direction: OUT) } type User implements Person { @@ -115,10 +118,10 @@ type NewCamera implements Camera { type CameraMan implements Person { userId: ID! name: String - favoriteCamera: Camera @relation(name: "favoriteCamera", direction: "OUT") + favoriteCamera: Camera @relation(name: "favoriteCamera", direction: OUT) heaviestCamera: [Camera] @cypher(statement: "MATCH (c: Camera)--(this) RETURN c ORDER BY c.weight DESC LIMIT 1") - cameras: [Camera!]! @relation(name: "cameras", direction: "OUT") - cameraBuddy: Person @relation(name: "cameraBuddy", direction: "OUT") + cameras: [Camera!]! @relation(name: "cameras", direction: OUT) + cameraBuddy: Person @relation(name: "cameraBuddy", direction: OUT) } union MovieSearch = Movie | Genre | Book | User | OldCamera @@ -135,12 +138,23 @@ type Query { } type Mutation { + CustomWithPublish: String @publish(event: "customEventName") @cypher(statement: "RETURN 'hello world'") CustomCamera: Camera @cypher(statement: "CREATE (newCamera:Camera:NewCamera {id: apoc.create.uuid(), type: 'macro'}) RETURN newCamera") CustomCameras: [Camera] @cypher(statement: "CREATE (newCamera:Camera:NewCamera {id: apoc.create.uuid(), type: 'macro', features: ['selfie', 'zoom']}) CREATE (oldCamera:Camera:OldCamera {id: apoc.create.uuid(), type: 'floating', smell: 'rusty' }) RETURN [newCamera, oldCamera]") } + +type Subscription { + subscribeToCustomWithPublish: String @subscribe(to: "customEventName") +} `; export const resolvers = { + Subscription: { + // normally generated + subscribeToCustomWithPublish: { + subscribe: () => pubsub.asyncIterator(['customEventName']) + } + }, // root entry point to GraphQL service Query: { Movie(object, params, ctx, resolveInfo) { diff --git a/example/apollo-server/movies-typedefs.js b/example/apollo-server/movies-typedefs.js index aac3d43f..885c8b00 100644 --- a/example/apollo-server/movies-typedefs.js +++ b/example/apollo-server/movies-typedefs.js @@ -11,17 +11,17 @@ type Movie { poster: String imdbRating: Float ratings: [Rated] - genres: [Genre] @relation(name: "IN_GENRE", direction: "OUT") - actors: [Actor] @relation(name: "ACTED_IN", direction: "IN") + genres: [Genre] @relation(name: "IN_GENRE", direction: OUT) + actors: [Actor] @relation(name: "ACTED_IN", direction: IN) } type Genre { name: String - movies: [Movie] @relation(name: "IN_GENRE", direction: "IN") + movies: [Movie] @relation(name: "IN_GENRE", direction: IN) } type Actor { id: ID! name: String - movies: [Movie] @relation(name: "ACTED_IN", direction: "OUT") + movies: [Movie] @relation(name: "ACTED_IN", direction: OUT) } type User { userId: ID! diff --git a/example/apollo-server/movies.js b/example/apollo-server/movies.js index e4caa261..9519c85a 100644 --- a/example/apollo-server/movies.js +++ b/example/apollo-server/movies.js @@ -1,7 +1,7 @@ import { augmentTypeDefs, augmentSchema } from '../../src/index'; import { ApolloServer, gql, makeExecutableSchema } from 'apollo-server'; import neo4j from 'neo4j-driver'; -import { typeDefs, resolvers } from './movies-schema'; +import { typeDefs, resolvers, pubsub } from './movies-schema'; const schema = makeExecutableSchema({ typeDefs: augmentTypeDefs(typeDefs), @@ -12,7 +12,19 @@ const schema = makeExecutableSchema({ }); // Add auto-generated mutations -const augmentedSchema = augmentSchema(schema); +const augmentedSchema = augmentSchema(schema, { + subscription: { + publish: (event, key, data) => { + pubsub.publish(event, { + [key]: data + }); + }, + subscribe: events => { + return pubsub.asyncIterator(events); + }, + exclude: ['User'] + } +}); const driver = neo4j.driver( process.env.NEO4J_URI || 'bolt://localhost:7687', diff --git a/example/apollo-server/multidatabase.js b/example/apollo-server/multidatabase.js index 5ff6e374..83de2b98 100644 --- a/example/apollo-server/multidatabase.js +++ b/example/apollo-server/multidatabase.js @@ -6,19 +6,19 @@ const typeDefs = ` type User { name: String! - wrote: [Review] @relation(name: "WROTE", direction: "OUT") + wrote: [Review] @relation(name: "WROTE", direction: OUT) } type Review { date: Date! reviewId: String! stars: Float! text: String - reviews: [Business] @relation(name: "REVIEWS", direction: "OUT") - users: [User] @relation(name: "WROTE", direction: "IN") + reviews: [Business] @relation(name: "REVIEWS", direction: OUT) + users: [User] @relation(name: "WROTE", direction: IN) } type Category { name: String! - business: [Business] @relation(name: "IN_CATEGORY", direction: "IN") + business: [Business] @relation(name: "IN_CATEGORY", direction: IN) } type Business { address: String! @@ -26,8 +26,8 @@ type User { location: Point! name: String! state: String! - in_category: [Category] @relation(name: "IN_CATEGORY", direction: "OUT") - reviews: [Review] @relation(name: "REVIEWS", direction: "IN") + in_category: [Category] @relation(name: "IN_CATEGORY", direction: OUT) + reviews: [Review] @relation(name: "REVIEWS", direction: IN) } `; diff --git a/package-lock.json b/package-lock.json index c35a5dc3..8549bb31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,22 @@ { "name": "neo4j-graphql-js", - "version": "2.19.0", + "version": "2.19.2", "lockfileVersion": 1, "requires": true, "dependencies": { "@apollo/client": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.6.tgz", - "integrity": "sha512-XSm/STyNS8aHdDigLLACKNMHwI0qaQmEHWHtTP+jHe/E1wZRnn66VZMMgwKLy2V4uHISHfmiZ4KpUKDPeJAKqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.11.tgz", + "integrity": "sha512-54+D5FB6RJlQ+g37f432gaexnyvDsG5X6L9VO5kqN54HJlbF8hCf/8CXtAQEHCWodAwZhy6kOLp2RM96829q3A==", "requires": { "@graphql-typed-document-node/core": "^3.0.0", "@types/zen-observable": "^0.8.0", "@wry/context": "^0.5.2", "@wry/equality": "^0.3.0", "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.11.0", + "graphql-tag": "^2.12.0", "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.13.1", + "optimism": "^0.14.0", "prop-types": "^15.7.2", "symbol-observable": "^2.0.0", "ts-invariant": "^0.6.0", @@ -24,35 +24,14 @@ "zen-observable": "^0.8.14" }, "dependencies": { - "@wry/context": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.5.3.tgz", - "integrity": "sha512-n0uKHiWpf2ArHhmcHcUsKA+Dj0gtye/h56VmsDcoMRuK/ZPFeHKi8ck5L/ftqtF12ZbQR9l8xMPV7y+xybaRDA==", - "requires": { - "tslib": "^1.14.1" - } - }, "@wry/equality": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.3.1.tgz", - "integrity": "sha512-8/Ftr3jUZ4EXhACfSwPIfNsE8V6WKesdjp+Dxi78Bej6qlasAxiz0/F8j0miACRj9CL4vC5Y5FsfwwEYAuhWbg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.3.3.tgz", + "integrity": "sha512-pMrKHIgDAWxLDTGsbaVag+USmwZ2+gGrSBrtyGUxp2pxRg1Cad70lI/hd0NTPtJ4zJxN16EQ679U1Rts83AF5g==", "requires": { "tslib": "^1.14.1" } }, - "optimism": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.13.2.tgz", - "integrity": "sha512-kJkpDUEs/Rp8HsAYYlDzyvQHlT6YZa95P+2GGNR8p/VvsIkt6NilAk7oeTvMRKCq7BeclB7+bmdIexog2859GQ==", - "requires": { - "@wry/context": "^0.5.2" - } - }, - "symbol-observable": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", - "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==" - }, "ts-invariant": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.6.0.tgz", @@ -78,9 +57,9 @@ }, "dependencies": { "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz", + "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", "dev": true } } @@ -138,9 +117,9 @@ } }, "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz", + "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", "dev": true } } @@ -167,20 +146,20 @@ }, "dependencies": { "@types/node": { - "version": "10.17.49", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.49.tgz", - "integrity": "sha512-PGaJNs5IZz5XgzwJvL/1zRfZB7iaJ5BydZ8/Picm+lUNYoNO9iVTQkVy5eUh0dZDrx3rBOIs3GCbCRmMuYyqwg==", + "version": "10.17.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.54.tgz", + "integrity": "sha512-c8Lm7+hXdSPmWH4B9z/P/xIXhFK3mCQin4yCYMd2p1qpMG5AfgyJuYZ+3q2dT7qLiMMMGMd5dnkFpdqJARlvtQ==", "dev": true } } }, "@apollographql/apollo-tools": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz", - "integrity": "sha512-W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.9.tgz", + "integrity": "sha512-M50pk8oo3CGTu4waGOklIX3YtTZoPfWG9K/G9WB8NpyQGA1OwYTiBFv94XqUtKElTDoFwoMXpMQd3Wy5dINvxA==", "dev": true, "requires": { - "apollo-env": "^0.6.5" + "apollo-env": "^0.6.6" } }, "@apollographql/graphql-playground-html": { @@ -192,6 +171,29 @@ "xss": "^1.0.6" } }, + "@apollographql/graphql-upload-8-fork": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", + "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", + "dev": true, + "requires": { + "@types/express": "*", + "@types/fs-capacitor": "*", + "@types/koa": "*", + "busboy": "^0.3.1", + "fs-capacitor": "^2.0.4", + "http-errors": "^1.7.3", + "object-path": "^0.11.4" + }, + "dependencies": { + "fs-capacitor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", + "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", + "dev": true + } + } + }, "@ardatan/aggregate-error": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", @@ -237,9 +239,9 @@ } }, "@babel/cli": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.10.tgz", - "integrity": "sha512-+y4ZnePpvWs1fc/LhZRTHkTesbXkyBYuOB+5CyodZqrEuETXi3zOVfpAQIdgC3lXbHLTDG9dQosxR9BhvLKDLQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.0.tgz", + "integrity": "sha512-y5AohgeVhU+wO5kU1WGMLdocFj83xCxVjsVFa2ilII8NEwmBZvx7Ambq621FbFIK68loYJ9p43nfoi6es+rzSA==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -259,245 +261,477 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true } } }, "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", - "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", - "dev": true + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.6.tgz", + "integrity": "sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw==" }, "@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", - "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.1.tgz", + "integrity": "sha512-FzeKfFBG2rmFtGiiMdXZPFt/5R5DXubVi82uYhjGX4Msf+pgYQMCFIqFXZWs5vbIYbf14VeBIgdGI03CDOOM1w==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.0", + "@babel/parser": "^7.13.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "lodash": "^4.17.19", - "semver": "^5.4.1", + "semver": "7.0.0", "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==" + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.0.tgz", + "integrity": "sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw==", "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.11.tgz", - "integrity": "sha512-4oGVOekPI8dh9JphkPXC68iIuP6qp/RPbaPmorRmEFbRAHZjSqxPjqHudn18GVDPgCuFM/KdFXc63C17Ygfa9w==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.10", - "@babel/helper-module-imports": "^7.12.5", - "@babel/types": "^7.12.11" + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", - "dev": true, + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.0.tgz", + "integrity": "sha512-SOWD0JK9+MMIhTQiUVd4ng8f3NXhPVQvTv7D3UN4wbp/6cAHnB2EmMaU1zZA2Hh1gwme+THBrVSqTFxHczTh0Q==", "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", + "@babel/compat-data": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", - "semver": "^5.5.0" + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.0.tgz", + "integrity": "sha512-twwzhthM4/+6o9766AW2ZBHpIHPSGrPGk1+WfHiu13u/lBnggXGNYCpeAyVfNwGDKfkhEDp+WOD/xafoJ2iLjA==", "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", "regexpu-core": "^4.7.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "@babel/helper-define-polyfill-provider": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.2.tgz", + "integrity": "sha512-hWeolZJivTNGHXHzJjQz/NwDaG4mGXf22ZroOP8bQYgvHNzaQ5tylsVbAcAS2oDjXBwpu8qH2I/654QFS2rDpw==", + "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", + "dev": true + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", + "dev": true + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", "requires": { - "@babel/types": "^7.12.7" + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", "requires": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.12.13" } }, "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==" + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==" + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.12.13" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -509,11 +743,11 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { @@ -522,50 +756,118 @@ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" }, "@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", - "dev": true + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" }, "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", + "dev": true + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.0.tgz", + "integrity": "sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ==", "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==" + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/node": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.12.10.tgz", - "integrity": "sha512-lJT1sXp1bEfAZ7B2ChEOOiUxaGbIWkcAixqZDpbHnJWUqIjoofOGo5ON1bJ9HOmtMdF7rqKiOoM7zZSI87El3g==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.13.0.tgz", + "integrity": "sha512-WJcD7YMnTs7qFo45lstvAOR7Sa370sydddnF8JNpD5xen3BwMlhHd0XVVDIB0crYIlSav/W/+dVw+D1wJQUZBQ==", "dev": true, "requires": { - "@babel/register": "^7.12.10", + "@babel/register": "^7.13.0", "commander": "^4.0.1", "core-js": "^3.2.1", "lodash": "^4.17.19", @@ -581,147 +883,147 @@ "dev": true }, "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz", + "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", "dev": true } } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==" + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "version": "7.13.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.5.tgz", + "integrity": "sha512-8cErJEDzhZgNKzYyjCKsHuyPqtWxG8gc9h4OFSUDJu0vCAOsObPU2LcECnW0kJwh/b+uUz46lObVzIXw0fzAbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.17.tgz", + "integrity": "sha512-ZNGoFZqrnuy9H2izB2jLlnNDAfVPlGl5NhFEiFe4D84ix9GQGygF+CWMGHKuE+bpyS/AOuDQCnkiRNqW2IzS1Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz", + "integrity": "sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz", + "integrity": "sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.0.tgz", + "integrity": "sha512-UkAvFA/9+lBBL015gjA68NvKiCReNxqFLm3SdNKaM3XXoDisA7tMAIX4PmIwatFoFqMxxT3WyG9sK3MO0Kting==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", - "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.0.tgz", + "integrity": "sha512-B4qphdSTp0nLsWcuei07JPKeZej4+Hd22MdnulJXQa1nCcGSBlk8FiqenGERaPZ+PuYhz4Li2Wjc8yfJvHgUMw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/plugin-transform-parameters": "^7.13.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz", + "integrity": "sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.0.tgz", + "integrity": "sha512-OVRQOZEBP2luZrvEbNSX5FfWDousthhdEoAOpej+Tpe58HFLvqRClT89RauIvBuCDFEip7GW1eT86/5lMy2RNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-async-generators": { @@ -734,11 +1036,11 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-dynamic-import": { @@ -760,11 +1062,11 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.1.tgz", - "integrity": "sha512-1lBLLmtxrwpm4VKmtVFselI/P3pX+G63fAtUUt6b2Nzgao77KNDwyuRt90Mj2/9pKobtt68FdvjfqohZjg/FCA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-json-strings": { @@ -777,11 +1079,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -838,375 +1140,397 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", - "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.10.tgz", - "integrity": "sha512-0ti12wLTLeUIzu9U7kjqIn4MyOL7+Wibc7avsHhj4o1l5C0ATs8p2IMHrVYjm9t9wzhfEO6S3kxax0Rpdo8LTg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", + "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.12.1" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-flow": "^7.12.13" } }, "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.0.tgz", + "integrity": "sha512-j7397PkIB4lcn25U2dClK6VLC6pr2s3q+wbE8R3vJvY6U1UTBBj0n6F+5v6+Fd/UwfDPAorMOs2TV+T4M+owpQ==", "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz", + "integrity": "sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-hoist-variables": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" + "@babel/helper-create-regexp-features-plugin": "^7.12.13" } }, "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" } }, "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", - "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.11.tgz", - "integrity": "sha512-5nWOw6mTylaFU72BdZfa0dP1HsGdY3IMExpxn8LBE8dNmkQjB+W+sR+JwIdtbzkPvVuFviT3zyNbSUkuVTVxbw==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz", + "integrity": "sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw==", "requires": { - "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.12.11", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.12.17" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-runtime": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", - "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.6.tgz", + "integrity": "sha512-QsTomUTIeOdYrNsOMJRSp2QzGvB1KYD4ePCC8Mei2SuoHScncYS3h1E9PR5gDL7buJmcqIHrWyH6B5GZMgDrRg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "semver": "^5.5.1" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/preset-env": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", - "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "version": "7.13.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.5.tgz", + "integrity": "sha512-xUeKBIIcbwxGevyWMSWZOW98W1lp7toITvVsMxSddCEQy932yYiF4fCB+CG3E/MXzFX3KbefgvCqEQ7TDoE6UQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.5", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.13.5", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.12.17", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.12.13", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.0", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", + "@babel/plugin-proposal-optional-chaining": "^7.13.0", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", @@ -1216,43 +1540,65 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.11", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.10", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.0", + "@babel/plugin-transform-modules-systemjs": "^7.12.13", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.11", - "core-js-compat": "^3.8.0", - "semver": "^5.5.0" + "@babel/types": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } } }, "@babel/preset-modules": { @@ -1269,9 +1615,9 @@ } }, "@babel/register": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.10.tgz", - "integrity": "sha512-EvX/BvMMJRAA3jZgILWgbsrHwBQvllC5T8B29McyME8DvkdOxk4ujESfrMvME8IHSDvWXrmMXxPvA/lx2gqPLQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.13.0.tgz", + "integrity": "sha512-nswFANDBcO661RvGOHfVKVRBZIe9wJuFFIJYJWpO8LwYn8WI+h/2JZhceLvlxjxEvMH6/oGkEBgz5SnqUUMkCg==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", @@ -1282,52 +1628,52 @@ } }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.6.tgz", + "integrity": "sha512-Y/DEVhSQ91u27rxq7D0EH/sewS6+x06p/MgO1VppbDHMzYXLZrAR5cFjCom78e9RUw1BQAq6qJg6fXc/ep7glA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs2": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.12.5.tgz", - "integrity": "sha512-kt5YpZ7F5A05LOgQuaMXXmcxakK/qttf5C/E1BJPA3Kf5PanbjPzDoXN+PIslUnjUxpuKblCsXyP0QfMiqyKqA==", + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.13.6.tgz", + "integrity": "sha512-01HFbBBVfJHmuppTCzTrdS8IlBJchVWwef00iGK15oMiTCK/qBU3f40GLof7K4tnxEqE7Wp1xRre5JPEQjsFJQ==", "requires": { "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", - "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.10", - "@babel/types": "^7.12.10", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", - "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", @@ -1352,9 +1698,9 @@ } }, "@graphql-inspector/core": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@graphql-inspector/core/-/core-2.3.0.tgz", - "integrity": "sha512-bxYqAvVK7vDQ0O/ygZ/JNs5XCxSe+DtKwkCsov7RMPoSkkFuHyyC9BDTm6eN57wPwVk5AJ5b5s32oYVTphvELA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@graphql-inspector/core/-/core-2.4.0.tgz", + "integrity": "sha512-7wHre2vx0TNgAPM6TXTSqlQzotxlF6zvVLNVtKMjW+DPGSco2PjAev1PQR5VnOrFf8U4FfC05Rb0KlcrYi0PTw==", "dev": true, "requires": { "dependency-graph": "0.9.0", @@ -1362,9 +1708,9 @@ }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", "dev": true } } @@ -1397,11 +1743,6 @@ "tslib": "~2.0.1" }, "dependencies": { - "is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" - }, "tslib": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", @@ -1410,26 +1751,26 @@ } }, "@graphql-tools/code-file-loader": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.2.6.tgz", - "integrity": "sha512-oDuMiXy1Rj1KszY7no+PFNzw2H25PVJKg9K/deK+IHL1631Q+VLK6/czBIw4TMEsbYhlKErgWDI+XBzK73VZSQ==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz", + "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==", "requires": { - "@graphql-tools/graphql-tag-pluck": "^6.2.6", + "@graphql-tools/graphql-tag-pluck": "^6.5.1", "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/delegate": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.8.tgz", - "integrity": "sha512-pS1wci7ZxzdCITRrMI66UA+6/E0Z1Yczd3QxJBDb4Kp0nTGy1xy7enGa0+i55EmCvKvuwyx+tzXzwA1fNGRJzg==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.10.tgz", + "integrity": "sha512-6Di9ia5ohoDvrHuhj2cak1nJGhIefJmUsd3WKZcJ2nu2yZAFawWMxGvQImqv3N7iyaWKiVhrrK8Roi/JrYhdKg==", "requires": { "@ardatan/aggregate-error": "0.0.6", "@graphql-tools/batch-execute": "^7.0.0", @@ -1437,35 +1778,30 @@ "@graphql-tools/utils": "^7.1.6", "dataloader": "2.0.0", "is-promise": "4.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { - "is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" - }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/git-loader": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.5.tgz", - "integrity": "sha512-WOQDSzazyPZMZUvymHBv5oZ80/mS7tc8XUNy2GmU5My8YRny5zu4fEgP4vQeFcD1trG3uoHUaJPGF7Mmvp6Yhg==", + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz", + "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==", "requires": { "@graphql-tools/graphql-tag-pluck": "^6.2.6", "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -1488,93 +1824,54 @@ } }, "@graphql-tools/graphql-file-loader": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.6.tgz", - "integrity": "sha512-L+RdYl5C6+X0zdOTUotY0K5zwqvSGpqI/qcZpVvCDenoAcVTyaNLmnd/ViErwedhCaGqAAV0wI1nPtyKFPlMUg==", + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz", + "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==", "requires": { - "@graphql-tools/import": "^6.2.5", + "@graphql-tools/import": "^6.2.6", "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/graphql-tag-pluck": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.3.0.tgz", - "integrity": "sha512-wdXE6iKTD/ePvhPaukhXm6M8FcsiR9rrwFvkYN96sx2UjDjXzU6vS1QUniNuwjRPaQuSe635vqfaUSN9JuNHvA==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz", + "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==", "requires": { - "@babel/parser": "7.11.5", - "@babel/traverse": "7.12.1", - "@babel/types": "7.12.1", + "@babel/parser": "7.12.16", + "@babel/traverse": "7.12.13", + "@babel/types": "7.12.13", "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1", - "vue-template-compiler": "^2.6.12" + "tslib": "~2.1.0" }, "dependencies": { - "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==" - }, - "@babel/traverse": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", - "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.1", - "@babel/types": "^7.12.1", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==" - } - } - }, - "@babel/types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", - "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/import": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.5.tgz", - "integrity": "sha512-ZGXT5tDod7m+LO38fc+o0JzR1LstL0RF35HKEWoUdxRIVaaeYH9VMuan9Gn+9M9RDME3RnzEa9aGzf9ATj8bTA==", + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.6.tgz", + "integrity": "sha512-/0H/bDjNK1MnKonk8fMbB7wIYU6QLCwbQOHtSHbFJ4j2qki5CqfAxpF+fGX6KovDtkdigcgRMvSKKi14oiuHPA==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -1595,77 +1892,46 @@ } }, "@graphql-tools/links": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/links/-/links-7.0.3.tgz", - "integrity": "sha512-if/o6H6Gjk7Ph2hZsBaUL1z95jeAMDdgAIA8RFxepXJAHLIcyufFvCoKxReeXhuG6C20FfLIVhDXeXdsQkezmQ==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/links/-/links-7.0.5.tgz", + "integrity": "sha512-2239z359Op2++WtJLaJOM7nn5+ssv78V397i60nBRTt6O1guHJHXaaDXcWwqbvRJQf4LICMVmOcLW3X6cgRdsw==", "requires": { - "@graphql-tools/delegate": "^7.0.3", + "@graphql-tools/delegate": "^7.0.10", "@graphql-tools/utils": "^7.0.2", - "apollo-upload-client": "14.1.2", + "apollo-upload-client": "14.1.3", "cross-fetch": "3.0.6", - "form-data": "3.0.0", + "form-data": "4.0.0", "is-promise": "4.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { - "is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" - }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/load": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.5.tgz", - "integrity": "sha512-TpDgp+id0hhD1iMhdFSgWgWumdI/IpFWwouJeaEhEEAEBkdvH4W9gbBiJBSbPQwMPRNWx8/AZtry0cYKLW4lHg==", + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.7.tgz", + "integrity": "sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ==", "requires": { - "@graphql-tools/merge": "^6.2.5", - "@graphql-tools/utils": "^7.0.0", - "globby": "11.0.1", + "@graphql-tools/merge": "^6.2.9", + "@graphql-tools/utils": "^7.5.0", + "globby": "11.0.2", "import-from": "3.0.0", "is-glob": "4.0.1", - "p-limit": "3.0.2", - "tslib": "~2.0.1", + "p-limit": "3.1.0", + "tslib": "~2.1.0", "unixify": "1.0.0", "valid-url": "1.0.9" }, "dependencies": { - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "requires": { - "p-try": "^2.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -1692,11 +1958,6 @@ "slash": "^3.0.0" } }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, "tslib": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", @@ -1705,19 +1966,19 @@ } }, "@graphql-tools/merge": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.6.tgz", - "integrity": "sha512-G6x0QlIzFHoJ3dyF9a4gxmBtaEYJ+EoAAGqXHsE/drRr58K1jscQdfKZdF1wZWZgxkgakHqgt1+oFMeQg/O6ug==", + "version": "6.2.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.9.tgz", + "integrity": "sha512-4PPB2rOEjnN91CVltOIVdBOOTEsC+2sHzOVngSoqtgZxvLwcRKwivy3sBuL3WyucBonzpXlV97Q418njslYa/w==", "requires": { "@graphql-tools/schema": "^7.0.0", - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1" + "@graphql-tools/utils": "^7.5.0", + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -1739,18 +2000,18 @@ } }, "@graphql-tools/module-loader": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/module-loader/-/module-loader-6.2.5.tgz", - "integrity": "sha512-tH7SMLKCoPJPkQ6lw3zhNbylOVkUWqSqV0JL4FzLRu5JTO9u/48KI8dldVIq+d8ZyCC1LIt7WoYLiVMCn/Uv/A==", + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/module-loader/-/module-loader-6.2.7.tgz", + "integrity": "sha512-ItAAbHvwfznY9h1H9FwHYDstTcm22Dr5R9GZtrWlpwqj0jaJGcBxsMB9jnK9kFqkbtFYEe4E/NsSnxsS4/vViQ==", "requires": { - "@graphql-tools/utils": "^7.0.0", - "tslib": "~2.0.1" + "@graphql-tools/utils": "^7.5.0", + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -1796,6 +2057,11 @@ "tslib": "~2.0.1" }, "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, "tslib": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", @@ -1804,52 +2070,47 @@ } }, "@graphql-tools/schema": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.2.tgz", - "integrity": "sha512-GabNT51ErVHE2riDH4EQdRusUsI+nMElT8LdFHyuP53v8gwtleAj+LePQ9jif4NYUe/JQVqO8V28vPcHrA7gfQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", + "integrity": "sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==", "requires": { "@graphql-tools/utils": "^7.1.2", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/stitch": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/stitch/-/stitch-7.1.6.tgz", - "integrity": "sha512-aRdzvEV84LiIn+SmTpba587QClHyO69akX6MPgLuTOCz51kDtXpewMFE0aHf6KgCIykn51XprG5uySq7EbPaBA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/stitch/-/stitch-7.3.0.tgz", + "integrity": "sha512-D9rlb7zYL4kVe1XRAhkg3gE840AawuuNOYCyHWnd76VuSz7WOigGLpyR6btdlrj3noJf8BKuGbwtmyWEn7cf+g==", "requires": { "@graphql-tools/batch-delegate": "^7.0.0", - "@graphql-tools/delegate": "^7.0.8", - "@graphql-tools/merge": "^6.2.6", + "@graphql-tools/delegate": "^7.0.10", + "@graphql-tools/merge": "^6.2.7", "@graphql-tools/schema": "^7.1.2", - "@graphql-tools/utils": "^7.1.6", + "@graphql-tools/utils": "^7.2.4", "@graphql-tools/wrap": "^7.0.3", "is-promise": "4.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { - "is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" - }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/url-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.7.1.tgz", - "integrity": "sha512-7NJ1G5diJAuWYZszQf0mNwPipVMOjIIMteNkutdExBq4CgN0V1xa3/iC25CUrI7sZiq+D367zZNONmKf+3bA2Q==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.1.tgz", + "integrity": "sha512-iE/y9IAu0cZYL7o9IIDdGm5WjxacN25nGgVqjZINYlisW/wyuBxng7DMJBAp6yM6gkxkCpMno1ljA/52MXzVPQ==", "requires": { "@graphql-tools/delegate": "^7.0.1", "@graphql-tools/utils": "^7.1.5", @@ -1858,91 +2119,54 @@ "cross-fetch": "3.0.6", "eventsource": "1.0.7", "extract-files": "9.0.0", + "form-data": "4.0.0", "graphql-upload": "^11.0.0", - "graphql-ws": "3.1.0", + "graphql-ws": "4.1.5", "is-promise": "4.0.0", - "isomorphic-form-data": "2.0.0", "isomorphic-ws": "4.0.1", "sse-z": "0.3.0", "sync-fetch": "0.3.0", - "tslib": "~2.0.1", + "tslib": "~2.1.0", "valid-url": "1.0.9", - "ws": "7.4.1" + "ws": "7.4.3" }, "dependencies": { - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - } - }, - "is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" - }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" - }, - "ws": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", - "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/utils": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz", - "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz", + "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "@graphql-tools/wrap": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.4.tgz", - "integrity": "sha512-txBs0W4k3WR86aEzBYXtKdGeeUXCNdRNxjQA/95T6ywNYoM8pw2mvpoXrWOvzbeaH3zwhbHY7kwii4atrC9irg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz", + "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==", "requires": { "@graphql-tools/delegate": "^7.0.7", "@graphql-tools/schema": "^7.1.2", - "@graphql-tools/utils": "^7.1.4", + "@graphql-tools/utils": "^7.2.1", "is-promise": "4.0.0", "tslib": "~2.0.1" }, "dependencies": { - "is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" - }, "tslib": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", @@ -1986,35 +2210,145 @@ "upath": "^1.1.1" }, "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "optional": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" } }, @@ -2098,9 +2432,9 @@ "dev": true }, "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -2177,9 +2511,9 @@ "dev": true }, "@types/cookies": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.5.tgz", - "integrity": "sha512-3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz", + "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==", "dev": true, "requires": { "@types/connect": "*", @@ -2198,21 +2532,21 @@ } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz", - "integrity": "sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "dev": true, "requires": { "@types/node": "*", @@ -2239,18 +2573,6 @@ "@types/node": "*" } }, - "@types/graphql-upload": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.4.tgz", - "integrity": "sha512-0TRyJD2o8vbkmJF8InppFcPVcXKk+Rvlg/xvpHBIndSJYpmDWfmtx/ZAtl4f3jR2vfarpTqYgj8MZuJssSoU7Q==", - "dev": true, - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "graphql": "^15.3.0" - } - }, "@types/http-assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", @@ -2295,9 +2617,9 @@ "dev": true }, "@types/koa": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.6.tgz", - "integrity": "sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.0.tgz", + "integrity": "sha512-hNs1Z2lX+R5sZroIy/WIGbPlH/719s/Nd5uIjSIAdHn9q+g7z6mxOnhwMjK1urE4/NUP0SOoYUOD4MnvD9FRNw==", "dev": true, "requires": { "@types/accepts": "*", @@ -2326,9 +2648,9 @@ "dev": true }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/minimatch": { @@ -2338,9 +2660,9 @@ "dev": true }, "@types/node": { - "version": "14.14.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.14.tgz", - "integrity": "sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ==" + "version": "14.14.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", + "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" }, "@types/node-fetch": { "version": "2.5.7", @@ -2350,6 +2672,19 @@ "requires": { "@types/node": "*", "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "@types/qs": { @@ -2365,12 +2700,12 @@ "dev": true }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "dev": true, "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" } }, @@ -2406,29 +2741,27 @@ } }, "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, "@types/zen-observable": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.1.tgz", - "integrity": "sha512-wmk0xQI6Yy7Fs/il4EpOcflG4uonUpYGqvZARESLc2oy4u69fkatFLbJOeW4Q6awO15P4rduAe6xkwHevpXcUQ==" + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz", + "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==" }, "@ungap/global-this": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@ungap/global-this/-/global-this-0.4.3.tgz", - "integrity": "sha512-MuHEpDBurNVeD6mV9xBcAN2wfTwuaFQhHuhWkJuXmyVJ5P5sBCw+nnFpdfb0tAvgWkfefWCsAoAsh7MTUr3LPg==" + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@ungap/global-this/-/global-this-0.4.4.tgz", + "integrity": "sha512-mHkm6FvepJECMNthFuIgpAEFmPOk71UyXuIxYfjytvFTnSDBIz7jmViO+LfHI/AjrazWije0PnSP3+/NlwzqtA==" }, "@wry/context": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz", - "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==", - "dev": true, + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.5.4.tgz", + "integrity": "sha512-/pktJKHUXDr4D6TJqWgudOPJW2Z+Nb+bqk40jufA3uTkLbnCRKdJPiYDIa/c7mfcPH8Hr6O8zjCERpg5Sq04Zg==", "requires": { - "@types/node": ">=6", - "tslib": "^1.9.3" + "tslib": "^1.14.1" } }, "@wry/equality": { @@ -2439,6 +2772,14 @@ "tslib": "^1.9.3" } }, + "@wry/trie": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.2.2.tgz", + "integrity": "sha512-OxqBB39x6MfHaa2HpMiRMfhuUnQTddD32Ko020eBeJXq87ivX6xnSSnzKHVbA21p7iqBASz8n/07b6W5wW1BVQ==", + "requires": { + "tslib": "^1.14.1" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -2462,9 +2803,9 @@ "dev": true }, "agentkeepalive": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "dev": true, "requires": { "debug": "^4.1.0", @@ -2491,6 +2832,12 @@ "string-width": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -2513,6 +2860,15 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, @@ -2526,10 +2882,9 @@ } }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "ansi-styles": { "version": "3.2.1", @@ -2555,13 +2910,113 @@ "normalize-path": "^2.1.1" }, "dependencies": { - "normalize-path": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } @@ -2577,13 +3032,25 @@ } }, "apollo-cache-control": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz", - "integrity": "sha512-FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.6.tgz", + "integrity": "sha512-YZ+uuIG+fPy+mkpBS2qKF0v1qlzZ3PW6xZVaDukeK3ed3iAs4L/2YnkTqau3OmoF/VPzX2FmSkocX/OVd59YSw==", "dev": true, "requires": { - "apollo-server-env": "^2.4.5", - "apollo-server-plugin-base": "^0.10.2" + "apollo-server-env": "^3.0.0", + "apollo-server-plugin-base": "^0.10.4" + }, + "dependencies": { + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dev": true, + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + } } }, "apollo-cache-inmemory": { @@ -2597,6 +3064,27 @@ "optimism": "^0.10.0", "ts-invariant": "^0.4.0", "tslib": "^1.10.0" + }, + "dependencies": { + "@wry/context": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz", + "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==", + "dev": true, + "requires": { + "@types/node": ">=6", + "tslib": "^1.9.3" + } + }, + "optimism": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz", + "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==", + "dev": true, + "requires": { + "@wry/context": "^0.4.0" + } + } } }, "apollo-client": { @@ -2613,16 +3101,36 @@ "ts-invariant": "^0.4.0", "tslib": "^1.10.0", "zen-observable": "^0.8.0" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + } } }, "apollo-datasource": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz", - "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.3.tgz", + "integrity": "sha512-PE0ucdZYjHjUyXrFWRwT02yLcx2DACsZ0jm1Mp/0m/I9nZu/fEkvJxfsryXB6JndpmQO77gQHixf/xGCN976kA==", "dev": true, "requires": { - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5" + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0" + }, + "dependencies": { + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dev": true, + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + } } }, "apollo-engine-reporting-protobuf": { @@ -2635,9 +3143,9 @@ } }, "apollo-env": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz", - "integrity": "sha512-jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==", + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.6.tgz", + "integrity": "sha512-hXI9PjJtzmD34XviBU+4sPMOxnifYrHVmxpjykqI/dUD2G3yTiuRaiQqwRwB2RCdwC1Ug/jBfoQ/NHDTnnjndQ==", "dev": true, "requires": { "@types/node-fetch": "2.5.7", @@ -2647,9 +3155,9 @@ }, "dependencies": { "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz", + "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", "dev": true } } @@ -2664,12 +3172,12 @@ } }, "apollo-graphql": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.0.tgz", - "integrity": "sha512-BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.1.tgz", + "integrity": "sha512-ZRXAV+k+hboCVS+FW86FW/QgnDR7gm/xMUwJPGXEbV53OLGuQQdIT0NCYK7AzzVkCfsbb7NJ3mmEclkZY9uuxQ==", "dev": true, "requires": { - "apollo-env": "^0.6.5", + "apollo-env": "^0.6.6", "lodash.sortby": "^4.7.0" } }, @@ -2707,25 +3215,26 @@ } }, "apollo-reporting-protobuf": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz", - "integrity": "sha512-qr4DheFP154PGZsd93SSIS9RkqHnR5b6vT+eCloWjy3UIpY+yZ3cVLlttlIjYvOG4xTJ25XEwcHiAExatQo/7g==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.2.tgz", + "integrity": "sha512-WJTJxLM+MRHNUxt1RTl4zD0HrLdH44F2mDzMweBj1yHL0kSt8I1WwoiF/wiGVSpnG48LZrBegCaOJeuVbJTbtw==", "dev": true, "requires": { "@apollo/protobufjs": "^1.0.3" } }, "apollo-server": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.19.0.tgz", - "integrity": "sha512-CchLtSwgm6NxQPvOXcMaxp8ckQT2ryLqdWIxjs2e+lCZ15tDsbqyPE+jVmqQKs9rsQNKnTwkMRdqmXqTciFJ8Q==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.21.0.tgz", + "integrity": "sha512-OqngjOSB0MEH6VKGWHcrqt4y39HlhYh9CrMvn4PhadTt53IPYRmBglk5qSRA8xMorGqy60iKrOReqj5YfCjTOg==", "dev": true, "requires": { - "apollo-server-core": "^2.19.0", - "apollo-server-express": "^2.19.0", + "apollo-server-core": "^2.21.0", + "apollo-server-express": "^2.21.0", "express": "^4.0.0", "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.0" + "graphql-tools": "^4.0.8", + "stoppable": "^1.1.0" }, "dependencies": { "graphql-tools": { @@ -2744,68 +3253,77 @@ } }, "apollo-server-caching": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz", - "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.3.tgz", + "integrity": "sha512-iMi3087iphDAI0U2iSBE9qtx9kQoMMEWr6w+LwXruBD95ek9DWyj7OeC2U/ngLjRsXM43DoBDXlu7R+uMjahrQ==", "dev": true, "requires": { - "lru-cache": "^5.0.0" + "lru-cache": "^6.0.0" } }, "apollo-server-core": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz", - "integrity": "sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.21.0.tgz", + "integrity": "sha512-GtIiq2F0dVDLzzIuO5+dK/pGq/sGxYlKCqAuQQqzYg0fvZ7fukyluXtcTe0tMI+FJZjU0j0WnKgiLsboCoAlPQ==", "dev": true, "requires": { "@apollographql/apollo-tools": "^0.4.3", "@apollographql/graphql-playground-html": "1.6.26", - "@types/graphql-upload": "^8.0.0", + "@apollographql/graphql-upload-8-fork": "^8.1.3", "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.11.4", - "apollo-datasource": "^0.7.2", + "apollo-cache-control": "^0.11.6", + "apollo-datasource": "^0.7.3", "apollo-graphql": "^0.6.0", - "apollo-reporting-protobuf": "^0.6.1", - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5", + "apollo-reporting-protobuf": "^0.6.2", + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0", "apollo-server-errors": "^2.4.2", - "apollo-server-plugin-base": "^0.10.2", - "apollo-server-types": "^0.6.1", - "apollo-tracing": "^0.12.0", + "apollo-server-plugin-base": "^0.10.4", + "apollo-server-types": "^0.6.3", + "apollo-tracing": "^0.12.2", "async-retry": "^1.2.1", "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.12.6", - "graphql-tag": "^2.9.2", - "graphql-tools": "^4.0.0", - "graphql-upload": "^8.0.2", + "graphql-extensions": "^0.12.8", + "graphql-tag": "^2.11.0", + "graphql-tools": "^4.0.8", "loglevel": "^1.6.7", - "lru-cache": "^5.0.0", + "lru-cache": "^6.0.0", "sha.js": "^2.4.11", "subscriptions-transport-ws": "^0.9.11", "uuid": "^8.0.0", "ws": "^6.0.0" }, "dependencies": { + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dev": true, + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + }, "apollo-server-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz", - "integrity": "sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.3.tgz", + "integrity": "sha512-aVR7SlSGGY41E1f11YYz5bvwA89uGmkVUtzMiklDhZ7IgRJhysT5Dflt5IuwDxp+NdQkIhVCErUXakopocFLAg==", "dev": true, "requires": { - "apollo-reporting-protobuf": "^0.6.1", - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5" + "apollo-reporting-protobuf": "^0.6.2", + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0" } }, "graphql-extensions": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.6.tgz", - "integrity": "sha512-EUNw+OIRXYTPxToSoJjhJvS5aGa94KkdkZnL1I9DCZT64/+rzQNeLeGj+goj2RYuYvoQe1Bmcx0CNZ1GqwBhng==", + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.8.tgz", + "integrity": "sha512-xjsSaB6yKt9jarFNNdivl2VOx52WySYhxPgf8Y16g6GKZyAzBoIFiwyGw5PJDlOSUa6cpmzn6o7z8fVMbSAbkg==", "dev": true, "requires": { "@apollographql/apollo-tools": "^0.4.3", - "apollo-server-env": "^2.4.5", - "apollo-server-types": "^0.6.1" + "apollo-server-env": "^3.0.0", + "apollo-server-types": "^0.6.3" } }, "graphql-tools": { @@ -2834,6 +3352,15 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } } } }, @@ -2853,9 +3380,9 @@ "integrity": "sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==" }, "apollo-server-express": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.19.0.tgz", - "integrity": "sha512-3rgSrTme1SlLoecAYtSa8ThH6vYvz29QecgZCigq5Vdc6bFP2SZrCk0ls6BAdD8OZbVKUtizzRxd0yd/uREPAw==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.21.0.tgz", + "integrity": "sha512-zbOSNGuxUjlOFZnRrbMpga3pKDEroitF4NAqoVxgBivx7v2hGsE7rljct3PucTx2cMN90AyYe3cU4oA8jBxZIQ==", "dev": true, "requires": { "@apollographql/graphql-playground-html": "1.6.26", @@ -2863,15 +3390,15 @@ "@types/body-parser": "1.19.0", "@types/cors": "2.8.8", "@types/express": "4.17.7", - "@types/express-serve-static-core": "4.17.13", + "@types/express-serve-static-core": "4.17.18", "accepts": "^1.3.5", - "apollo-server-core": "^2.19.0", - "apollo-server-types": "^0.6.1", + "apollo-server-core": "^2.21.0", + "apollo-server-types": "^0.6.3", "body-parser": "^1.18.3", "cors": "^2.8.4", "express": "^4.17.1", "graphql-subscriptions": "^1.0.0", - "graphql-tools": "^4.0.0", + "graphql-tools": "^4.0.8", "parseurl": "^1.3.2", "subscriptions-transport-ws": "^0.9.16", "type-is": "^1.6.16" @@ -2889,26 +3416,25 @@ "@types/serve-static": "*" } }, - "@types/express-serve-static-core": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz", - "integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==", + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", "dev": true, "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" } }, "apollo-server-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz", - "integrity": "sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.3.tgz", + "integrity": "sha512-aVR7SlSGGY41E1f11YYz5bvwA89uGmkVUtzMiklDhZ7IgRJhysT5Dflt5IuwDxp+NdQkIhVCErUXakopocFLAg==", "dev": true, "requires": { - "apollo-reporting-protobuf": "^0.6.1", - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5" + "apollo-reporting-protobuf": "^0.6.2", + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0" } }, "graphql-tools": { @@ -2927,23 +3453,33 @@ } }, "apollo-server-plugin-base": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz", - "integrity": "sha512-uM5uL1lOxbXdgvt/aEIbgs40fV9xA45Y3Mmh0VtQ/ddqq0MXR5aG92nnf8rM+URarBCUfxKJKaYzJJ/CXAnEdA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.4.tgz", + "integrity": "sha512-HRhbyHgHFTLP0ImubQObYhSgpmVH4Rk1BinnceZmwudIVLKrqayIVOELdyext/QnSmmzg5W7vF3NLGBcVGMqDg==", "dev": true, "requires": { - "apollo-server-types": "^0.6.1" + "apollo-server-types": "^0.6.3" }, "dependencies": { + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dev": true, + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + }, "apollo-server-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz", - "integrity": "sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.3.tgz", + "integrity": "sha512-aVR7SlSGGY41E1f11YYz5bvwA89uGmkVUtzMiklDhZ7IgRJhysT5Dflt5IuwDxp+NdQkIhVCErUXakopocFLAg==", "dev": true, "requires": { - "apollo-reporting-protobuf": "^0.6.1", - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5" + "apollo-reporting-protobuf": "^0.6.2", + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0" } } } @@ -2960,22 +3496,34 @@ } }, "apollo-tracing": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.0.tgz", - "integrity": "sha512-cMUYGE6mOEwb9HDqhf4fiPEo2JMhjPIqEprAQEC57El76avRpRig5NM0bnqMZcYJZR5QmLlNcttNccOwf9WrNg==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.2.tgz", + "integrity": "sha512-SYN4o0C0wR1fyS3+P0FthyvsQVHFopdmN3IU64IaspR/RZScPxZ3Ae8uu++fTvkQflAkglnFM0aX6DkZERBp6w==", "dev": true, "requires": { - "apollo-server-env": "^2.4.5", - "apollo-server-plugin-base": "^0.10.2" + "apollo-server-env": "^3.0.0", + "apollo-server-plugin-base": "^0.10.4" + }, + "dependencies": { + "apollo-server-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", + "dev": true, + "requires": { + "node-fetch": "^2.1.2", + "util.promisify": "^1.0.0" + } + } } }, "apollo-upload-client": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-14.1.2.tgz", - "integrity": "sha512-ozaW+4tnVz1rpfwiQwG3RCdCcZ93RV/37ZQbRnObcQ9mjb+zur58sGDPVg9Ef3fiujLmiE/Fe9kdgvIMA3VOjA==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-14.1.3.tgz", + "integrity": "sha512-X2T+7pHk5lcaaWnvP9h2tuAAMCzOW6/9juedQ0ZuGp3Ufl81BpDISlCs0o6u29wBV0RRT/QpMU2gbP+3FCfVpQ==", "requires": { - "@apollo/client": "^3.1.5", - "@babel/runtime": "^7.11.2", + "@apollo/client": "^3.2.5", + "@babel/runtime": "^7.12.5", "extract-files": "^9.0.0" } }, @@ -3218,6 +3766,12 @@ "write-file-atomic": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -3227,15 +3781,6 @@ "color-convert": "^2.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3257,23 +3802,20 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" } }, "has-flag": { @@ -3282,26 +3824,17 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, "is-plain-object": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", "dev": true }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true }, "make-dir": { "version": "3.1.0", @@ -3312,42 +3845,20 @@ "semver": "^6.0.0" } }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } }, "supports-color": { "version": "7.2.0", @@ -3357,15 +3868,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, @@ -3392,6 +3894,44 @@ "estraverse": "^4.1.1" } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.5.tgz", + "integrity": "sha512-5IzdFIjYWqlOFVr/hMYUpc+5fbfuvJTAISwIY58jhH++ZtawtNlcJnxAixlk8ahVwHCz1ipW/kpXYliEBp66wg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.2", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.4.tgz", + "integrity": "sha512-ysSzFn/qM8bvcDAn4mC7pKk85Y5dVaoa9h4u0mHxOEpDzabsseONhUpR7kHxpUinfj1bjU7mUZqD23rMZBoeSg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.2", + "core-js-compat": "^3.8.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.3.tgz", + "integrity": "sha512-hRjTJQiOYt/wBKEc+8V8p9OJ9799blAJcuKzn1JXh3pApHoWl1Emxh2BHc6MC7Qt6bbr3uDpNxaYQnATLIudEg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.2" + } + }, "babel-plugin-syntax-trailing-function-commas": { "version": "7.0.0-beta.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", @@ -3494,6 +4034,12 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -3508,16 +4054,6 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -3615,10 +4151,10 @@ "widest-line": "^2.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { @@ -3644,6 +4180,15 @@ "strip-ansi": "^5.1.0" } }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, "type-fest": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", @@ -3662,45 +4207,23 @@ } }, "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "fill-range": "^7.0.1" } }, "browserslist": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", - "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", - "dev": true, + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "requires": { - "caniuse-lite": "^1.0.30001165", + "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.621", + "electron-to-chromium": "^1.3.649", "escalade": "^3.1.1", - "node-releases": "^1.1.67" + "node-releases": "^1.1.70" } }, "bser": { @@ -3770,6 +4293,23 @@ "ssri": "^7.0.0", "tar": "^6.0.0", "unique-filename": "^1.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "cache-base": { @@ -3787,6 +4327,14 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "cacheable-request": { @@ -3874,12 +4422,12 @@ } }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" } }, "call-matcher": { @@ -3934,17 +4482,16 @@ }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "camelcase-keys": { "version": "4.2.0", @@ -3955,13 +4502,20 @@ "camelcase": "^4.1.0", "map-obj": "^2.0.0", "quick-lru": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } } }, "caniuse-lite": { - "version": "1.0.30001170", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz", - "integrity": "sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA==", - "dev": true + "version": "1.0.30001191", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", + "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==" }, "capture-stack-trace": { "version": "1.0.1", @@ -3980,14 +4534,14 @@ } }, "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", + "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -4006,38 +4560,11 @@ } }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4047,10 +4574,10 @@ "binary-extensions": "^2.0.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "readdirp": { @@ -4061,15 +4588,6 @@ "requires": { "picomatch": "^2.2.1" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, @@ -4117,6 +4635,12 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -4171,21 +4695,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "clone": { @@ -4244,8 +4753,7 @@ "colorette": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" }, "combined-stream": { "version": "1.0.8", @@ -4464,12 +4972,12 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", - "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", + "integrity": "sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ==", "dev": true, "requires": { - "browserslist": "^4.15.0", + "browserslist": "^4.16.3", "semver": "7.0.0" }, "dependencies": { @@ -4609,12 +5117,6 @@ "time-zone": "^1.0.0" } }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "optional": true - }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -4757,6 +5259,12 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -4898,10 +5406,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.630", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.630.tgz", - "integrity": "sha512-HSTsvqOrR3kWsoekKu0EOQXR/YOncKs3HAys9lysvIS2ec/mlfV1ZoLHSx00semK+PscVJwqcvBN4ayGPs++fA==", - "dev": true + "version": "1.3.672", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.672.tgz", + "integrity": "sha512-gFQe7HBb0lbOMqK2GAS5/1F+B0IMdYiAgB9OT/w1F4M7lgJK2aNOMNOM622aEax+nS1cTMytkiT0uMOkbtFmHw==" }, "elegant-spinner": { "version": "1.0.1", @@ -4977,22 +5484,25 @@ } }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" } }, "es-to-primitive": { @@ -5030,8 +5540,7 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-html": { "version": "1.0.3", @@ -5352,9 +5861,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5362,54 +5871,6 @@ "merge2": "^1.3.0", "micromatch": "^4.0.2", "picomatch": "^2.2.1" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } } }, "fast-json-stable-stringify": { @@ -5418,9 +5879,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", + "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", "requires": { "reusify": "^1.0.4" } @@ -5467,34 +5928,12 @@ "escape-string-regexp": "^1.0.5" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "to-regex-range": "^5.0.1" } }, "finalhandler": { @@ -5547,12 +5986,21 @@ "dev": true }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "is-callable": "^1.1.3" } }, "for-in": { @@ -5600,9 +6048,9 @@ } }, "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5631,10 +6079,9 @@ "dev": true }, "fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", - "dev": true + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", + "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" }, "fs-minipass": { "version": "2.1.0", @@ -5669,9 +6116,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -5691,9 +6138,9 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -5738,24 +6185,11 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-glob": "^4.0.1" } }, "global-dirs": { @@ -5773,27 +6207,16 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", "requires": { - "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } } }, "got": { @@ -5827,20 +6250,20 @@ } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "graphql": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", - "integrity": "sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==" + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==" }, "graphql-auth-directives": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/graphql-auth-directives/-/graphql-auth-directives-2.2.1.tgz", - "integrity": "sha512-8tOb1fG09u9DTSdxfPA+zjG8E3q7YfcSFWF39XVg9Puht7zZaiwUiRtEPGP3kmfivXCevrzYkeoeDnyaPJEpBA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/graphql-auth-directives/-/graphql-auth-directives-2.2.2.tgz", + "integrity": "sha512-Pt+h1NJzEzP2oq2jl7pDjV6oMufvkyWiCFbHJG2IBHZXDi5JyjgSLok31jFGsX6kTRsuW4nTgSFrrgBQsdlYJQ==", "requires": { "apollo-errors": "^1.9.0", "graphql-tools": "^4.0.7", @@ -5873,35 +6296,38 @@ } }, "graphql-subscriptions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz", - "integrity": "sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.0.tgz", + "integrity": "sha512-uXvp729fztqwa7HFUFaAqKwNMwwOfsvu4HwOu7/35Cd44bNrMPCn97mNGN0ybuuZE36CPXBTaW/4U/xyOS4D9w==", "dev": true, "requires": { - "iterall": "^1.2.1" + "iterall": "^1.3.0" } }, "graphql-tag": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz", - "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==" + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.1.tgz", + "integrity": "sha512-LPewEE1vzGkHnCO8zdOGogKsHHBdtpGyihow1UuMwp6RnZa0lAS7NcbvltLOuo4pi5diQCPASAXZkQq44ffixA==", + "requires": { + "tslib": "^1.14.1" + } }, "graphql-tools": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-7.0.2.tgz", - "integrity": "sha512-dEthp7uFH/Myrk1x9d/fHF4n0yn8s0ON496pd1VwZ2D7cGws4DnPzo6UciuWhCr+fyq73LzkqPoYtWgKmXjm4A==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-7.0.4.tgz", + "integrity": "sha512-9tEqKSAprMQMCB8WzwQKudzTVl6a3nANR4rLL9VJbgGn+ULjZTxeW0lMA8gKfds5Cu4EtD/Esc8QRbEf3seY6g==", "requires": { "@graphql-tools/batch-delegate": "^7.0.0", "@graphql-tools/batch-execute": "^7.0.0", "@graphql-tools/code-file-loader": "^6.2.5", - "@graphql-tools/delegate": "^7.0.1", + "@graphql-tools/delegate": "^7.0.10", "@graphql-tools/git-loader": "^6.2.5", "@graphql-tools/github-loader": "^6.2.5", "@graphql-tools/graphql-file-loader": "^6.2.5", "@graphql-tools/graphql-tag-pluck": "^6.2.6", "@graphql-tools/import": "^6.2.4", "@graphql-tools/json-file-loader": "^6.2.5", - "@graphql-tools/links": "^7.0.0", + "@graphql-tools/links": "^7.0.4", "@graphql-tools/load": "^6.2.5", "@graphql-tools/load-files": "^6.2.4", "@graphql-tools/merge": "^6.2.5", @@ -5911,36 +6337,36 @@ "@graphql-tools/relay-operation-optimizer": "^6.2.5", "@graphql-tools/resolvers-composition": "^6.2.5", "@graphql-tools/schema": "^7.0.0", - "@graphql-tools/stitch": "^7.0.1", + "@graphql-tools/stitch": "^7.3.0", "@graphql-tools/url-loader": "^6.3.2", "@graphql-tools/utils": "^7.0.1", "@graphql-tools/wrap": "^7.0.0", - "tslib": "~2.0.1" + "tslib": "~2.1.0" }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, "graphql-upload": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz", - "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==", - "dev": true, + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", + "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", "requires": { "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", + "fs-capacitor": "^6.1.0", "http-errors": "^1.7.3", + "isobject": "^4.0.0", "object-path": "^0.11.4" } }, "graphql-ws": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-3.1.0.tgz", - "integrity": "sha512-zbex3FSiFz0iRgfkzDNWpOY/sYWoX+iZ5XUhakaDwOh99HSuk8rPt5suuxdXUVzEg5TGQ9rwzNaz/+mTPtS0yg==" + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.5.tgz", + "integrity": "sha512-yUQ1AjegD1Y9jDS699kyw7Mw+9H+rILm2HoS8N5a5B5YTH93xy3yifFhAJpKGc2wb/8yGdlVy8gTcud0TPqi6Q==" }, "has": { "version": "1.0.3", @@ -5986,6 +6412,14 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "has-values": { @@ -5998,6 +6432,26 @@ "kind-of": "^4.0.0" }, "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -6033,12 +6487,6 @@ } } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "optional": true - }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -6235,40 +6683,6 @@ "resolve-cwd": "^3.0.0" }, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -6387,9 +6801,9 @@ "dev": true }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-ci": { @@ -6531,24 +6945,9 @@ "dev": true }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-obj": { "version": "2.0.0", @@ -6599,13 +6998,20 @@ "dev": true, "requires": { "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" }, "is-redirect": { "version": "1.0.0", @@ -6614,11 +7020,12 @@ "dev": true }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, @@ -6692,30 +7099,9 @@ "dev": true }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isomorphic-form-data": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz", - "integrity": "sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg==", - "requires": { - "form-data": "^2.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" }, "isomorphic-ws": { "version": "4.0.1", @@ -6892,9 +7278,9 @@ "dev": true }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "requires": { "minimist": "^1.2.5" } @@ -7001,6 +7387,35 @@ "stringify-object": "^3.2.2" }, "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -7025,12 +7440,82 @@ "strip-eof": "^1.0.0" } }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "p-map": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", @@ -7042,6 +7527,16 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, @@ -7071,6 +7566,12 @@ "symbol-observable": "^1.1.0" } }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -7082,6 +7583,12 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true } } }, @@ -7288,19 +7795,17 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.clonedeep": { "version": "4.5.0", @@ -7308,6 +7813,12 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -7521,9 +8032,9 @@ }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -7534,12 +8045,12 @@ "dev": true }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "make-dir": { @@ -7573,6 +8084,23 @@ "promise-retry": "^1.1.1", "socks-proxy-agent": "^4.0.0", "ssri": "^7.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "map-cache": { @@ -7651,6 +8179,12 @@ "yargs-parser": "^10.0.0" }, "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -7660,6 +8194,15 @@ "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } } } }, @@ -7698,24 +8241,12 @@ "dev": true }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "mime": { @@ -7725,16 +8256,16 @@ "dev": true }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", "requires": { - "mime-db": "1.44.0" + "mime-db": "1.46.0" } }, "mimic-fn": { @@ -7787,14 +8318,6 @@ "dev": true, "requires": { "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "minipass-collect": { @@ -7807,9 +8330,9 @@ } }, "minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", "dev": true, "requires": { "encoding": "^0.1.12", @@ -7853,14 +8376,6 @@ "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "mixin-deep": { @@ -7920,13 +8435,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -7953,9 +8461,9 @@ "dev": true }, "neo4j-driver": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/neo4j-driver/-/neo4j-driver-4.2.1.tgz", - "integrity": "sha512-5Zkb7yIsoManNvVW1dePeotb+qcLOEdFPScdIUaHAvhU/guiqvc2OHwjpIXWjz+4xdKTXZ4YWJBEr2ZaW9f+MQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/neo4j-driver/-/neo4j-driver-4.2.2.tgz", + "integrity": "sha512-2XItlip3L8g4ONCu3XgrdhHAgPEomNFEzfc3oNkeKBTSHtykStwKkssWGZrwnZx+l0GbQ1KkeZBVqLtuxGK7wA==", "requires": { "@babel/runtime": "^7.5.5", "rxjs": "^6.6.3", @@ -8018,9 +8526,9 @@ }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -8051,10 +8559,9 @@ "dev": true }, "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", - "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", - "dev": true + "version": "1.1.70", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", + "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==" }, "nodemon": { "version": "1.19.4", @@ -8104,6 +8611,30 @@ "widest-line": "^2.0.0" } }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", @@ -8168,15 +8699,53 @@ "is-obj": "^1.0.0" } }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, "fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "got": { @@ -8225,6 +8794,15 @@ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", "dev": true }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -8237,6 +8815,21 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -8255,6 +8848,12 @@ "pify": "^3.0.0" } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -8317,6 +8916,16 @@ "ansi-regex": "^3.0.0" } }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, "update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", @@ -8379,10 +8988,12 @@ } }, "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } }, "normalize-url": { "version": "4.5.0", @@ -8463,10 +9074,10 @@ "yargs-parser": "^13.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "cliui": { @@ -8486,12 +9097,55 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -8509,6 +9163,15 @@ "strip-ansi": "^5.1.0" } }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -8593,12 +9256,12 @@ "dev": true }, "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, @@ -8619,6 +9282,14 @@ "dev": true, "requires": { "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "object.assign": { @@ -8633,36 +9304,14 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "es-abstract": "^1.18.0-next.2" } }, "object.pick": { @@ -8672,6 +9321,14 @@ "dev": true, "requires": { "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "observable-to-promise": { @@ -8682,6 +9339,14 @@ "requires": { "is-observable": "^2.0.0", "symbol-observable": "^1.0.4" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + } } }, "on-finished": { @@ -8711,12 +9376,12 @@ } }, "optimism": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz", - "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==", - "dev": true, + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.14.0.tgz", + "integrity": "sha512-ygbNt8n4DOCVpkwiLF+IrKKeNHOjtr9aXLWGP9HNJGoblSGsnVbJLstcH6/nE9Xy5ZQtlkSioFQNnthmENW6FQ==", "requires": { - "@wry/context": "^0.4.0" + "@wry/context": "^0.5.2", + "@wry/trie": "^0.2.1" } }, "ora": { @@ -8733,6 +9398,12 @@ "wcwidth": "^1.0.1" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -8766,6 +9437,15 @@ "onetime": "^2.0.0", "signal-exit": "^3.0.2" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, @@ -8802,20 +9482,29 @@ "dev": true }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } } }, "p-map": { @@ -8902,9 +9591,9 @@ }, "dependencies": { "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -8921,10 +9610,9 @@ "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", @@ -9005,6 +9693,15 @@ "load-json-file": "^5.2.0" }, "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "load-json-file": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", @@ -9018,6 +9715,40 @@ "type-fest": "^0.3.0" } }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "type-fest": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", @@ -9033,6 +9764,51 @@ "dev": true, "requires": { "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, "please-upgrade-node": { @@ -9081,6 +9857,14 @@ "ansi-regex": "^4.0.0", "ansi-styles": "^3.2.0", "react-is": "^16.8.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } } }, "pretty-ms": { @@ -9188,6 +9972,11 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" + }, "quick-lru": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", @@ -9345,6 +10134,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, @@ -9386,6 +10181,117 @@ "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, "redent": { @@ -9446,13 +10352,13 @@ } }, "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "regexpu-core": { @@ -9494,9 +10400,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -9635,12 +10541,12 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -9710,9 +10616,12 @@ } }, "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } }, "run-queue": { "version": "1.0.3", @@ -9950,10 +10859,9 @@ } }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { "version": "3.0.0", @@ -10097,6 +11005,12 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -10188,9 +11102,9 @@ } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "spawn-wrap": { @@ -10329,6 +11243,12 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "dev": true + }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -10348,21 +11268,6 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "string.prototype.trimend": { @@ -10422,12 +11327,11 @@ } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } }, "strip-bom": { @@ -10476,6 +11380,12 @@ "ws": "^5.2.0" }, "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, "ws": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", @@ -10538,10 +11448,9 @@ } }, "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==" }, "sync-fetch": { "version": "0.3.0", @@ -10553,9 +11462,9 @@ } }, "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", "dev": true, "requires": { "chownr": "^2.0.0", @@ -10571,12 +11480,6 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } }, @@ -10601,6 +11504,49 @@ "require-main-filename": "^2.0.0" }, "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "read-pkg-up": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", @@ -10674,13 +11620,11 @@ } }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "toidentifier": { @@ -10760,9 +11704,9 @@ } }, "ua-parser-js": { - "version": "0.7.23", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz", - "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA==" + "version": "0.7.24", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==" }, "uid2": { "version": "0.0.3", @@ -10891,16 +11835,6 @@ "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=", "requires": { "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } } }, "unpipe": { @@ -10946,6 +11880,12 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -10982,9 +11922,9 @@ } }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } @@ -10996,9 +11936,9 @@ "dev": true }, "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -11034,15 +11974,16 @@ "dev": true }, "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", + "for-each": "^0.3.3", "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" + "object.getownpropertydescriptors": "^2.1.1" } }, "utils-merge": { @@ -11086,16 +12027,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vue-template-compiler": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz", - "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==", - "optional": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -11177,11 +12108,6 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11202,14 +12128,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -11231,13 +12149,9 @@ } }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", + "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==" }, "xdg-basedir": { "version": "3.0.0", @@ -11267,9 +12181,9 @@ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yargs": { @@ -11288,63 +12202,22 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, "zen-observable": { "version": "0.8.15", "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", diff --git a/package.json b/package.json index eb0d8479..8a0940f7 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "neo4j-graphql-js", - "version": "2.19.1", + "version": "2.19.2", "description": "A GraphQL to Cypher query execution layer for Neo4j. ", "main": "./dist/index.js", "scripts": { @@ -71,7 +71,7 @@ "@babel/runtime-corejs2": "^7.5.5", "apollo-server-errors": "^2.4.1", "debug": "^4.1.1", - "graphql-auth-directives": "^2.2.1", + "graphql-auth-directives": "^2.2.2", "lodash": "^4.17.19", "neo4j-driver": "^4.2.1", "graphql": "^15.4.0", diff --git a/src/augment/augment.js b/src/augment/augment.js index a0f26ff6..a0eea443 100644 --- a/src/augment/augment.js +++ b/src/augment/augment.js @@ -306,22 +306,22 @@ export const shouldAugmentRelationshipField = ( ); }; -// An enum containing the names of the augmentation config keys -const APIConfiguration = { - QUERY: 'query', - MUTATION: 'mutation', - TEMPORAL: 'temporal', - SPATIAL: 'spatial' -}; - /** * Builds the default values in a given configuration object */ export const setDefaultConfig = ({ config = {} }) => { const configKeys = Object.keys(config); - Object.values(APIConfiguration).forEach(configKey => { + // An enum containing the names of the augmentation config keys + const APIConfiguration = { + query: true, + mutation: true, + subscription: false, + temporal: true, + spatial: true + }; + Object.entries(APIConfiguration).forEach(([configKey, configDefault]) => { if (!configKeys.find(providedKey => providedKey === configKey)) { - config[configKey] = true; + config[configKey] = configDefault; } }); return config; diff --git a/src/augment/directives.js b/src/augment/directives.js index cb6962d6..6abee21a 100644 --- a/src/augment/directives.js +++ b/src/augment/directives.js @@ -1,5 +1,5 @@ -import { Kind, DirectiveLocation, GraphQLString, GraphQLFloat } from 'graphql'; -import { TypeWrappers, getFieldType } from './fields'; +import { Kind, DirectiveLocation, GraphQLString } from 'graphql'; +import { TypeWrappers } from './fields'; import { buildDirectiveDefinition, buildInputValue, @@ -28,7 +28,9 @@ export const DirectiveDefinition = { ID: 'id', UNIQUE: 'unique', INDEX: 'index', - SEARCH: 'search' + SEARCH: 'search', + PUBLISH: 'publish', + SUBSCRIBE: 'subscribe' }; // The name of Role type used in authorization logic @@ -434,6 +436,37 @@ const directiveDefinitionBuilderMap = { ], locations: [DirectiveLocation.FIELD_DEFINITION] }; + }, + [DirectiveDefinition.SUBSCRIBE]: ({ config }) => { + return { + name: DirectiveDefinition.SUBSCRIBE, + args: [ + { + name: 'to', + type: { + name: GraphQLString, + wrappers: { + [TypeWrappers.LIST_TYPE]: true + } + } + } + ], + locations: [DirectiveLocation.FIELD_DEFINITION] + }; + }, + [DirectiveDefinition.PUBLISH]: ({ config }) => { + return { + name: DirectiveDefinition.PUBLISH, + args: [ + { + name: 'event', + type: { + name: GraphQLString + } + } + ], + locations: [DirectiveLocation.FIELD_DEFINITION] + }; } }; @@ -500,7 +533,12 @@ export const getDirectiveArgument = ({ directive, name }) => { return value; }; -export const augmentDirectives = ({ directives = [] }) => { +export const augmentDirectives = ({ + directives = [], + mutationName = '', + isMutationType = false, + isSubscriptionType = false +}) => { let cypherDirective = getDirective({ directives, name: DirectiveDefinition.CYPHER @@ -510,6 +548,57 @@ export const augmentDirectives = ({ directives = [] }) => { directive: cypherDirective }); } + //? + if (isMutationType) { + const eventArg = buildDirectiveArgument({ + name: buildName({ name: 'event' }), + value: { + kind: Kind.STRING, + value: mutationName + } + }); + directives = augmentDirectiveArguments({ + directives, + directiveName: DirectiveDefinition.PUBLISH, + argName: 'event', + argument: eventArg + }); + } else if (isSubscriptionType) { + const eventArg = buildDirectiveArgument({ + name: buildName({ name: 'to' }), + value: { + kind: Kind.STRING, + value: mutationName + } + }); + directives = augmentDirectiveArguments({ + directives, + directiveName: DirectiveDefinition.SUBSCRIBE, + argName: 'to', + argument: eventArg + }); + } + return directives; +}; + +const augmentDirectiveArguments = ({ + directives = [], + directiveName = '', + argName = '', + argument +}) => { + const directiveIndex = directives.findIndex( + directive => directive.name.value === directiveName + ); + if (directiveIndex >= 0) { + const directiveInstance = directives[directiveIndex]; + const args = directiveInstance.arguments; + const argIndex = args.findIndex(arg => arg.name.value === argName); + // add provided directive argument if not provided + if (argument && argIndex === -1) args.splice(argIndex, 1, argument); + directiveInstance.arguments = args; + directives.splice(directiveIndex, 1, directiveInstance); + } return directives; }; @@ -526,3 +615,34 @@ const escapeCypherStatement = ({ directive }) => { } return directive; }; + +export const buildSubscribeDirective = ({ name = '', config = {} }) => { + return buildDirective({ + name: buildName({ name: DirectiveDefinition.SUBSCRIBE }), + args: [ + buildDirectiveArgument({ + name: buildName({ name: 'to' }), + value: { + kind: Kind.STRING, + value: name + } + }) + ] + }); +}; + +export const buildPublishDirective = ({ mutationName = '', config = {} }) => { + const defaultEventName = mutationName; + return buildDirective({ + name: buildName({ name: DirectiveDefinition.PUBLISH }), + args: [ + buildDirectiveArgument({ + name: buildName({ name: 'event' }), + value: { + kind: Kind.STRING, + value: defaultEventName + } + }) + ] + }); +}; diff --git a/src/augment/resolvers.js b/src/augment/resolvers.js index 70772f63..63d3e545 100644 --- a/src/augment/resolvers.js +++ b/src/augment/resolvers.js @@ -4,6 +4,13 @@ import { generateBaseTypeReferenceResolvers, generateNonLocalTypeExtensionReferenceResolvers } from '../federation'; +import { + DirectiveDefinition, + getDirective, + getDirectiveArgument +} from './directives'; +import { getResponseKeyFromInfo } from 'graphql-tools'; +import { Kind } from 'graphql'; /** * The main export for the generation of resolvers for the @@ -78,6 +85,7 @@ export const augmentResolvers = ({ operationType: mutationType, operationTypeExtensions: mutationTypeExtensions, resolvers: mutationResolvers, + isMutationType: true, config }); if (Object.keys(mutationResolvers).length > 0) { @@ -85,14 +93,63 @@ export const augmentResolvers = ({ } } - // Persist Subscription resolvers const subscriptionType = operationTypeMap[subscriptionTypeName]; - if (subscriptionType) { - subscriptionTypeName = subscriptionType.name.value; - let subscriptionResolvers = + if (subscriptionType) subscriptionTypeName = subscriptionType.name.value; + const subscriptionTypeExtensions = + typeExtensionDefinitionMap[subscriptionTypeName]; + if ( + config['subscription'] && + (subscriptionType || + (subscriptionTypeExtensions && subscriptionTypeExtensions.length)) + ) { + const subscriptionResolvers = resolvers && resolvers[subscriptionTypeName] ? resolvers[subscriptionTypeName] : {}; + const fieldMap = getOperationFieldMap({ + operationType: subscriptionType, + operationTypeExtensions: subscriptionTypeExtensions + }); + + const subscriptionConfig = config.subscription || {}; + const abstractSubscriber = subscriptionConfig.subscribe; + if (typeof abstractSubscriber === 'function') { + Object.values(fieldMap).forEach(field => { + let { name, directives } = field; + name = name.value; + const subscriptionDirective = getDirective({ + directives, + name: DirectiveDefinition.SUBSCRIBE + }); + if (subscriptionDirective) { + const eventArg = subscriptionDirective.arguments.find( + arg => arg.name.value === 'to' + ); + if (eventArg) { + const valueKind = eventArg.value.kind; + const eventNames = []; + if (valueKind === Kind.LIST) { + const events = eventArg.value.values.map(value => value.value); + eventNames.push(...events); + } else if (valueKind === Kind.STRING) { + const eventName = eventArg.value.value; + if (eventName) { + eventNames.push(eventArg.value.value); + } + } + if (eventNames.length) { + if (subscriptionResolvers[name] === undefined) { + subscriptionResolvers[name] = { + subscribe: function() { + return abstractSubscriber(eventNames); + } + }; + } + } + } + } + }); + } if (Object.keys(subscriptionResolvers).length > 0) { resolvers[subscriptionTypeName] = subscriptionResolvers; } @@ -117,15 +174,18 @@ export const augmentResolvers = ({ return resolvers; }; -const getOperationFieldMap = ({ operationType, operationTypeExtensions }) => { +const getOperationFieldMap = ({ + operationType, + operationTypeExtensions = [] +}) => { const fieldMap = {}; const fields = operationType ? operationType.fields : []; fields.forEach(field => { - fieldMap[field.name.value] = true; + fieldMap[field.name.value] = field; }); operationTypeExtensions.forEach(extension => { extension.fields.forEach(field => { - fieldMap[field.name.value] = true; + fieldMap[field.name.value] = field; }); }); return fieldMap; @@ -139,23 +199,110 @@ const possiblyAddResolvers = ({ operationType, operationTypeExtensions = [], resolvers, + isMutationType = false, config }) => { const fieldMap = getOperationFieldMap({ operationType, operationTypeExtensions }); + const subscriptionConfig = config.subscription || {}; + const abstractPublisher = subscriptionConfig.publish; Object.keys(fieldMap).forEach(name => { - // If not provided if (resolvers[name] === undefined) { - resolvers[name] = async function(...args) { - return await neo4jgraphql(...args, config.debug); - }; + if (isMutationType) { + // args[3] is resolveInfo + resolvers[name] = async function(...args) { + const data = await neo4jgraphql(...args, config.debug); + if (typeof abstractPublisher === 'function') { + publishMutationEvents(args[3], data, abstractPublisher); + } + return data; + }; + } else { + resolvers[name] = async function(...args) { + return await neo4jgraphql(...args, config.debug); + }; + } } }); return resolvers; }; +const publishMutationEvents = (resolveInfo, data, abstractPublisher) => { + const [eventName, subscription] = getEventSubscription(resolveInfo); + if (eventName && subscription) { + abstractPublisher(eventName, subscription.name.value, data); + } +}; +const getEventSubscription = resolveInfo => { + const mutationName = getResponseKeyFromInfo(resolveInfo); + const schema = resolveInfo.schema; + const mutationType = schema.getMutationType(); + const mutationField = mutationType.getFields()[mutationName]; + let subscription = undefined; + let eventName = ''; + // FIXME getResponseKeyFromInfo doesn't work for aliased + // muttion fields + if (mutationField) { + const directives = mutationField.astNode.directives; + const subscriptionType = schema.getSubscriptionType(); + const publishDirective = directives.find( + directive => directive.name.value === DirectiveDefinition.PUBLISH + ); + if (publishDirective) { + eventName = getDirectiveArgument({ + directive: publishDirective, + name: 'event' + }); + // has a publish directive but no event argument, + // so the default event name is the mutation field name + if (!eventName) eventName = mutationName; + if (subscriptionType) { + const fields = Object.values(subscriptionType.getFields()).map( + type => type.astNode + ); + // get the subscription field @subscribe'd to this event + subscription = getMutationSubscription({ fields, eventName }); + } + } + } + return [eventName, subscription]; +}; + +export const getMutationSubscription = ({ fields = [], eventName }) => { + return Object.values(fields).find(field => { + return field.directives.some(directive => { + if (directive.name.value === DirectiveDefinition.SUBSCRIBE) { + const eventArg = directive.arguments.find( + arg => arg.name.value === 'to' + ); + const valueKind = eventArg.value.kind; + const eventNames = []; + if (valueKind === Kind.LIST) { + const events = eventArg.value.values.map(value => value.value); + eventNames.push(...events); + } else if (valueKind === Kind.STRING) { + eventNames.push(eventArg.value.value); + } + return eventNames.includes(eventName); + } + return false; + }); + }); +}; + +export const getPublishedMutation = ({ fields = [], eventName }) => { + return Object.values(fields).find(field => { + return field.directives.some(directive => { + if (directive.name.value === DirectiveDefinition.PUBLISH) { + return getDirectiveArgument({ directive, name: 'event' }) === eventName; + } + return false; + }); + }); +}; + /** * Extracts resolvers from a schema */ diff --git a/src/augment/types/node/mutation.js b/src/augment/types/node/mutation.js index 3994db81..b1ba4702 100644 --- a/src/augment/types/node/mutation.js +++ b/src/augment/types/node/mutation.js @@ -9,6 +9,7 @@ import { import { DirectiveDefinition, buildAuthScopeDirective, + buildPublishDirective, useAuthDirective, isCypherField } from '../../directives'; @@ -308,6 +309,7 @@ const buildNodeMutationField = ({ name: typeName }), directives: buildNodeMutationDirectives({ + mutationName, mutationAction, typeName, config @@ -354,7 +356,12 @@ const buildNodeMutationField = ({ * Builds the AST definitions for directive instances used by * generated node Mutation fields of NodeMutation names */ -const buildNodeMutationDirectives = ({ mutationAction, typeName, config }) => { +const buildNodeMutationDirectives = ({ + mutationName, + mutationAction, + typeName, + config +}) => { const directives = []; if (useAuthDirective(config, DirectiveDefinition.HAS_SCOPE)) { directives.push( @@ -368,5 +375,13 @@ const buildNodeMutationDirectives = ({ mutationAction, typeName, config }) => { }) ); } + if (shouldAugmentType(config, 'subscription', typeName)) { + directives.push( + buildPublishDirective({ + mutationName, + config + }) + ); + } return directives; }; diff --git a/src/augment/types/relationship/mutation.js b/src/augment/types/relationship/mutation.js index 38b61e14..478c8e32 100644 --- a/src/augment/types/relationship/mutation.js +++ b/src/augment/types/relationship/mutation.js @@ -15,7 +15,8 @@ import { useAuthDirective, getDirective, isCypherField, - getDirectiveArgument + getDirectiveArgument, + buildPublishDirective } from '../../directives'; import { buildInputValue, @@ -329,7 +330,8 @@ const buildRelationshipMutationField = ({ '[merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships)'; grandstackDocUrl = '#merge-relationship'; } - operationTypeMap[OperationType.MUTATION].fields.push( + const mutationFields = operationTypeMap[OperationType.MUTATION].fields; + mutationFields.push( buildField({ name: buildName({ name: mutationName @@ -348,6 +350,7 @@ const buildRelationshipMutationField = ({ config }), directives: buildRelationshipMutationDirectives({ + mutationName, mutationAction, relationshipName, fromType, @@ -462,6 +465,7 @@ const buildRelationshipMutationArguments = ({ * names */ const buildRelationshipMutationDirectives = ({ + mutationName, mutationAction, relationshipName, fromType, @@ -502,6 +506,16 @@ const buildRelationshipMutationDirectives = ({ ); } } + if ( + shouldAugmentRelationshipField(config, 'subscription', fromType, toType) + ) { + directives.push( + buildPublishDirective({ + mutationName, + config + }) + ); + } return directives; }; diff --git a/src/augment/types/types.js b/src/augment/types/types.js index 4f233e66..b0222808 100644 --- a/src/augment/types/types.js +++ b/src/augment/types/types.js @@ -11,7 +11,9 @@ import { isIgnoredField, DirectiveDefinition, getDirective, - augmentDirectives + augmentDirectives, + buildSubscribeDirective, + getDirectiveArgument } from '../directives'; import { buildOperationType, @@ -35,12 +37,12 @@ import { SpatialType, Neo4jPoint, augmentSpatialTypes } from './spatial'; import { isNeo4jTypeField, unwrapNamedType, - getFieldDefinition, isTemporalField, isSpatialField } from '../fields'; import { augmentNodeType, augmentNodeTypeFields } from './node/node'; -import { RelationshipDirectionField } from '../types/relationship/relationship'; +import { getMutationSubscription } from '../resolvers'; +import { shouldAugmentType } from '../augment'; /** * An enum describing Neo4j entity types, used in type predicate functions @@ -235,7 +237,6 @@ export const interpretType = ({ definition = {} }) => { if (neo4jStructuralTypes) { const name = definition.name.value; if (!isNeo4jPropertyType({ type: name })) { - const fields = definition.fields; const typeDirectives = definition.directives; if ( neo4jStructuralTypes.RELATIONSHIP && @@ -284,6 +285,10 @@ export const augmentTypes = ({ definition, operationTypeMap }); + const isSubscriptionType = isSubscriptionTypeDefinition({ + definition, + operationTypeMap + }); if (isOperationType) { [definition, typeExtensionDefinitionMap] = augmentOperationType({ typeName, @@ -291,6 +296,7 @@ export const augmentTypes = ({ typeExtensionDefinitionMap, isQueryType, isMutationType, + isSubscriptionType, isObjectType, typeDefinitionMap, generatedTypeMap, @@ -376,9 +382,71 @@ export const augmentTypes = ({ } } ); + operationTypeMap = generateMutationSubscriptions({ + operationTypeMap, + config + }); return [typeExtensionDefinitionMap, generatedTypeMap, operationTypeMap]; }; +const generateMutationSubscriptions = ({ + operationTypeMap = {}, + config = {} +}) => { + if (config['subscription'] !== false) { + const subscriptionType = operationTypeMap[OperationType.SUBSCRIPTION] || {}; + const mutationType = operationTypeMap[OperationType.MUTATION] || {}; + const mutationFields = mutationType.fields || []; + if (mutationFields.length) { + const subscriptionFields = subscriptionType.fields || []; + mutationFields.forEach(field => { + let { name, directives, type } = field; + name = name.value; + const outputTypeName = unwrapNamedType({ type }).name; + if (shouldAugmentType(config, 'subscription', outputTypeName)) { + const publishDirective = getDirective({ + directives, + name: DirectiveDefinition.PUBLISH + }); + // default subscription fields only generated for mutations + // with a @publish directive + if (publishDirective) { + let eventName = getDirectiveArgument({ + directive: publishDirective, + name: 'event' + }); + if (!eventName) eventName = name; + const subscriptionExists = getMutationSubscription({ + fields: subscriptionFields, + eventName + }); + // prevents generation of default subscription field for an event + // already subscribed to by a @subscribe directive on a custom + // subscription field + if (!subscriptionExists) { + const subscribeDirective = buildSubscribeDirective({ + name: eventName, + config + }); + operationTypeMap[OperationType.SUBSCRIPTION].fields.push( + buildField({ + name: buildName({ + name: name + }), + type, + args: [], + directives: [subscribeDirective] + }) + ); + } + } + } + }); + } + } + return operationTypeMap; +}; + /** * Builds the GraphQL AST type definitions that represent complex Neo4j * property types (Temporal, Spatial) picked by the translation process @@ -717,6 +785,7 @@ const augmentOperationType = ({ typeExtensionDefinitionMap, isQueryType, isMutationType, + isSubscriptionType, isObjectType, typeDefinitionMap, generatedTypeMap, @@ -775,10 +844,15 @@ const augmentOperationType = ({ if (!isIgnoredType) { definition.fields = propertyOutputFields; } - } else if (isMutationType) { + } else if (isMutationType || isSubscriptionType) { // Augment existing Mutation type fields definition.fields = definition.fields.map(field => { - field.directives = augmentDirectives({ directives: field.directives }); + field.directives = augmentDirectives({ + directives: field.directives, + mutationName: field.name.value, + isMutationType, + isSubscriptionType + }); return field; }); if (typeExtensions.length) { @@ -787,7 +861,10 @@ const augmentOperationType = ({ if (fields && fields.length) { extension.fields = fields.map(field => { field.directives = augmentDirectives({ - directives: field.directives + directives: field.directives, + mutationName: field.name.value, + isMutationType, + isSubscriptionType }); return field; }); diff --git a/src/index.js b/src/index.js index 099fae19..1138c6a4 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ import Neo4jSchemaTree from './neo4j-schema/Neo4jSchemaTree'; import graphQLMapper from './neo4j-schema/graphQLMapper'; import { checkRequestError } from './auth'; import { translateQuery } from './translate/translate'; -import { translateMutation } from './translate/mutation'; +import { translateMutation } from './translate/mutation/mutation'; import Debug from 'debug'; import { extractQueryResult, @@ -62,9 +62,8 @@ export async function neo4jgraphql( let query; let cypherParams; - const cypherFunction = isMutation(resolveInfo) - ? cypherMutation - : cypherQuery; + const isMutationOperation = isMutation(resolveInfo); + const cypherFunction = isMutationOperation ? cypherMutation : cypherQuery; [query, cypherParams] = cypherFunction( params, context, @@ -128,7 +127,7 @@ export async function neo4jgraphql( let result; try { - if (isMutation(resolveInfo)) { + if (isMutationOperation) { result = await session.writeTransaction(async tx => { const result = await tx.run(query, cypherParams); return extractQueryResult(result, resolveInfo.returnType); @@ -193,6 +192,7 @@ export function cypherMutation( export const augmentTypeDefs = (typeDefs, config = {}) => { config.query = false; config.mutation = false; + config.subscription = false; if (config.isFederated === undefined) config.isFederated = false; const isParsedTypeDefs = isSchemaDocument({ definition: typeDefs }); let definitions = []; diff --git a/src/translate/mutation/input-values.js b/src/translate/mutation/input-values.js new file mode 100644 index 00000000..b9e656ba --- /dev/null +++ b/src/translate/mutation/input-values.js @@ -0,0 +1,437 @@ +import { TypeWrappers, unwrapNamedType } from '../../augment/fields'; +import { + getDirective, + DirectiveDefinition, + getDirectiveArgument +} from '../../augment/directives'; +import { isInputObjectType } from 'graphql'; +import _ from 'lodash'; + +export const translateNestedMutations = ({ + inputFields = [], + parameterData = {}, + paramVariable = '', + parameterMap, + parentFieldName = '', + parentIsListArgument = false, + isListArgument = false, + isRootArgument = false, + rootUsesListVariable = false, + rootStatement = '', + typeMap = {} +}) => { + if (!_.isObject(parameterMap)) { + parameterMap = mapParameters(parameterData); + isRootArgument = true; + } + return inputFields + .reduce((translations, field) => { + const { name, type } = field; + const fieldName = name.value; + const unwrappedType = unwrapNamedType({ type }); + const inputTypeName = unwrappedType.name; + const inputTypeWrappers = unwrappedType.wrappers; + const inputType = typeMap[inputTypeName]; + const nestedParameterMap = parameterMap[fieldName]; + if (isInputObjectType(inputType) && _.isObject(nestedParameterMap)) { + [isListArgument, rootUsesListVariable] = decideCypherParameterArity({ + rootStatement, + fieldName, + inputTypeName, + inputTypeWrappers, + paramVariable, + isRootArgument, + rootUsesListVariable, + isListArgument + }); + const cypherDirective = getDirective({ + directives: field.directives, + name: DirectiveDefinition.CYPHER + }); + // get the path to the parameter data to iterate over + const nestedParamVariable = decideCypherParameter({ + paramVariable, + fieldName, + inputTypeName, + cypherDirective, + isRootArgument, + rootUsesListVariable + }); + if (cypherDirective) { + // wrap this Cypher statement in a subquery + // and recurse for any nested @cypher fields + const translated = translateNestedMutation({ + paramVariable: nestedParamVariable, + parameterMap: nestedParameterMap, + cypherDirective, + inputType, + inputTypeName, + isListArgument, + parentIsListArgument, + parentFieldName, + fieldName, + isRootArgument, + rootUsesListVariable, + typeMap + }); + if (translated) { + translations.push(translated); + } + } else { + // continue looking for sibling @cypher fields + const nestedStatements = translateNestedMutations({ + inputFields: getFieldAstNodes(inputType), + paramVariable: nestedParamVariable, + parentFieldName: fieldName, + parentIsListArgument: isListArgument, + parameterMap: nestedParameterMap, + isRootArgument, + rootUsesListVariable, + rootStatement, + typeMap + }); + if (nestedStatements) { + // these subqueries are siblings within this scope, + // but have longer paths to nested @cypher fields + translations.push(nestedStatements); + } + } + } + return translations; + }, []) + .join('\n'); +}; + +const translateNestedMutation = ({ + paramVariable, + parameterMap, + inputType, + inputTypeName, + cypherDirective, + fieldName, + typeMap, + parentIsListArgument, + parentFieldName, + isRootArgument, + isListArgument, + rootUsesListVariable +}) => { + // recurse to handle child @cypher input + const nestedStatements = translateNestedMutations({ + inputFields: getFieldAstNodes(inputType), + paramVariable: inputTypeName, + parentIsListArgument: isListArgument, + parentFieldName: fieldName, + parameterMap, + typeMap + }); + const cypherStatement = augmentWithClauses({ + cypherDirective, + inputTypeName, + nestedStatements + }); + // the parameter data for this @cypher field is iterated + // over using a Cypher UNWIND clause + const unwindClause = decideUnwindClause({ + fieldName, + inputTypeName, + parentIsListArgument, + parentFieldName, + paramVariable, + isRootArgument, + rootUsesListVariable + }); + const openVariableScope = `WITH *`; + const closeVariableScope = `RETURN COUNT(*) AS _${ + parentFieldName ? `${parentFieldName}_` : '' + }${fieldName}_`; + return ` +CALL { + ${openVariableScope} + ${unwindClause} + ${cypherStatement}${nestedStatements} + ${closeVariableScope} +}`; +}; + +const decideCypherParameterArity = ({ + rootStatement = '', + fieldName = '', + inputTypeName = '', + inputTypeWrappers = {}, + paramVariable = '', + isRootArgument = false, + rootUsesListVariable = false, + isListArgument = false +}) => { + if (isRootArgument) { + isListArgument = inputTypeWrappers[TypeWrappers.LIST_TYPE]; + if (!paramVariable) { + // These properties are used to identify cases where the root + // Cypher statement of a @cypher mutation already unwinds a list + // argument containing nested @cypher fields + rootUsesListVariable = includesCypherUnwindClause({ + typeName: inputTypeName, + fieldName, + statement: rootStatement + }); + } + } + return [isListArgument, rootUsesListVariable]; +}; + +const includesCypherUnwindClause = ({ + typeName = '', + fieldName = '', + statement = '' +}) => { + const unwindRegExp = new RegExp( + `\\s*\\UNWIND\\s*\\$${fieldName}\\s*\\AS\\s*${typeName}`, + 'i' + ); + const matched = statement.match(unwindRegExp); + let hasUnwindClause = false; + if (matched) { + const match = matched[0]; + const includesParameter = match.includes(`$${fieldName}`); + const includesVariable = match.includes(typeName); + if (includesParameter && includesVariable) { + hasUnwindClause = true; + } + } + return hasUnwindClause; +}; + +const decideCypherParameter = ({ + paramVariable, + inputTypeName, + fieldName, + cypherDirective, + isRootArgument, + rootUsesListVariable +}) => { + if (paramVariable) { + if (cypherDirective) { + if (isRootArgument) { + if (!rootUsesListVariable) { + // Cypher parameter prefix + return `$${paramVariable}`; + } + return paramVariable; + } + // prefixed with _ to correspond to alias + // of parent UNWIND variable + return `_${paramVariable}.${fieldName}`; + } + return `${paramVariable}.${fieldName}`; + } + if (rootUsesListVariable) { + // root @cypher mutation unwinds this argument + // so continue with its Cypher variable + return inputTypeName; + } + return fieldName; +}; + +const decideUnwindClause = ({ + fieldName, + inputTypeName, + parentFieldName, + parentIsListArgument, + paramVariable, + isRootArgument, + rootUsesListVariable +}) => { + if (isRootArgument) { + if (parentIsListArgument && !rootUsesListVariable) { + // two-dimensional unwind for root list arguments + // not already unwound by the root Cypher statement + return `UNWIND ${paramVariable} AS _${parentFieldName} + UNWIND _${parentFieldName}.${fieldName} as ${inputTypeName}`; + } + return `UNWIND ${paramVariable}.${fieldName} AS ${inputTypeName}`; + } + return `UNWIND ${paramVariable} AS ${inputTypeName}`; +}; + +const augmentWithClauses = ({ + inputTypeName = '', + nestedStatements = [], + cypherDirective +}) => { + let statement = getDirectiveArgument({ + directive: cypherDirective, + name: 'statement' + }); + let openingWithClause = ''; + let endingWithClause = ''; + if (statement) { + const lowercasedStatement = statement.toLowerCase(); + const isCommentedRegExp = new RegExp(`with(?!\/*.*)`, 'i'); + let firstWithIndex = lowercasedStatement.indexOf('with'); + isCommentedRegExp.lastIndex = firstWithIndex; + let lastWithIndex = lowercasedStatement.lastIndexOf('with'); + // this makes the regex match "sticky", which begins the match from the given index + isCommentedRegExp.lastIndex = lastWithIndex; + if (firstWithIndex !== -1) { + const firstWithMatch = statement.substr(firstWithIndex); + // so, to determine which is at the top, see that the index is actually 0, test this + if (firstWithMatch) { + // there is only one WITH clause + if (firstWithIndex === lastWithIndex) { + const onlyMatch = statement.substr(firstWithIndex); + if (firstWithIndex === 0) { + // the only WITH clause also begins at index 0, so it's an opening WITH clause + openingWithClause = onlyMatch; + } else { + // assume the last WITH clause is at the end of the statement + endingWithClause = onlyMatch; + } + } else if (lastWithIndex !== -1) { + // there are two or more WITH clauses + const firstMatch = statement.substr(firstWithIndex); + const lastMatch = statement.substr(lastWithIndex); + if (firstWithIndex === 0) openingWithClause = firstMatch; + endingWithClause = lastMatch; + } + if (openingWithClause && endingWithClause) { + openingWithClause = openingWithClause.substr(0, lastWithIndex); + } + if (openingWithClause) { + // add a Cypher variable for inputTypeName - the name of the parent + // UNWIND variable - to keep it available within the proceeding Cypher + statement = augmentWithClause({ + withClause: openingWithClause, + inputTypeName, + isImportClause: true + }); + } + if (endingWithClause) { + // add an alias for the Cypher variable from the parent UNWIND statement, + // to allow the same input type to be used again by a nested UNWIND, + // preventing variable name conflicts + const augmentedWithClause = augmentWithClause({ + withClause: endingWithClause, + inputTypeName, + isExportClause: true + }); + if (openingWithClause) { + // if there is also a WITH clause importing variables, + // then it has already been augmented (above) and equal to statement, + // so the now augmented exporting WITH clause is appended + statement = `${statement}${augmentedWithClause}`; + } else { + // otherwise, statement is still unmodified, so get everything before + // the exporting WITH clause, appending after it the augmented clause + const beforeEndingWith = statement.substr(0, lastWithIndex); + statement = `${beforeEndingWith}\n${augmentedWithClause}`; + } + } + } + } + } + if (!endingWithClause && nestedStatements.length) { + const paramVariable = `${inputTypeName} AS _${inputTypeName}`; + // continue with all Cypher variables in scope and an alias of the input type + endingWithClause = `WITH *, ${paramVariable}`; + statement = `${statement}\n${endingWithClause}`; + } + return statement; +}; + +const augmentWithClause = ({ + withClause = '', + inputTypeName = '', + isImportClause = false, + isExportClause = false +}) => { + // find the index of the first comma, for checking if this is a variable list + const firstCommaIndex = withClause.indexOf(','); + // regex to check if this clause begins with the pattern WITH * + const withEverythingRegex = new RegExp(`WITH\\s*\\\*+`, 'i'); + const continuesWithEverything = withClause.match(withEverythingRegex); + // assume the clause is not a variable list, e.g., WITH *, ... or WITH x, ... + let isVariableList = false; + // assume the clause does not begin with WITH * + let isWithAsterisk = false; + let augmentedWithClause = withClause; + // remove the WITH from the beginning of the clause + let withClauseRemainder = withClause.substr(4); + if (continuesWithEverything) { + isWithAsterisk = true; + const match = continuesWithEverything[0]; + const matchLen = match.length; + // get everything proceeding WITH * + const nextCypher = withClause.substr(matchLen); + if (nextCypher) { + // trim everything proceeding, so we can check the next character + // using String.startsWith + const trimmed = nextCypher.trim(); + if (trimmed.startsWith(',') && firstCommaIndex !== -1) { + // if the clause begins with WITH * and is immediately proceeded + // by a comma, the clause begins as: "WITH *, ..." + isVariableList = true; + } + } + } + let paramVariable = ''; + if (isImportClause) { + // if an importating WITH clause is provided, then we need to persist + // the parent UNWIND clause's variable along with it to keep it available + paramVariable = inputTypeName; + } else if (isExportClause) { + // alias this input type name for it to be unwound by the nested UNWIND, + // to allow for reusing the same input type in nested cases + paramVariable = `${inputTypeName} AS _${inputTypeName}`; + } + if (isWithAsterisk) { + if (isVariableList) { + // set withClauseRemainder forward to start at the first comma + withClauseRemainder = withClause.substr(firstCommaIndex); + } else { + // set withClauseRemainder to immediately after WITH * + withClauseRemainder = withClause.substr(6); + } + // inject paramVariable into the clause + augmentedWithClause = `WITH *, ${paramVariable}${withClauseRemainder}`; + } else { + // otherwise, the clause is not WITH * and not a list, as neither "WITH *", nor "WITH x, ..." + // so it is added with a preceeding comma, assuming the clause provides at least 1 variable + augmentedWithClause = `WITH ${paramVariable}${ + withClauseRemainder ? `,${withClauseRemainder}` : '' + }`; + } + return augmentedWithClause; +}; + +export const mapParameters = (params = {}) => { + // reduce parameter json to a json with keys only for object + // and array values, used to identify usage of @cypher input + return Object.entries(params).reduce((mapped, [name, param]) => { + const mappedParam = mapParameter(param); + if (mappedParam) { + mapped[name] = mappedParam; + } + return mapped; + }, {}); +}; + +const mapParameter = param => { + if (_.isArray(param)) { + // object type list field + if (_.isObject(param[0])) { + // after graphql validation, all values + // in this array should also be objects + return param.reduce((mapped, params) => { + return _.merge(mapped, mapParameters(params)); + }, {}); + } + // scalar list field + } else if (_.isObject(param)) { + return mapParameters(param); + } + // scalar field / null +}; + +const getFieldAstNodes = type => + Object.values(type.getFields()).map(field => field.astNode); diff --git a/src/translate/mutation.js b/src/translate/mutation/mutation.js similarity index 67% rename from src/translate/mutation.js rename to src/translate/mutation/mutation.js index 8c004515..af88e3e5 100644 --- a/src/translate/mutation.js +++ b/src/translate/mutation/mutation.js @@ -27,31 +27,27 @@ import { getAdditionalLabels, getPayloadSelections, isGraphqlObjectType -} from '../utils'; -import { getPrimaryKey } from '../augment/types/node/selection'; -import { getNamedType, isInputObjectType } from 'graphql'; +} from '../../utils'; +import { getPrimaryKey } from '../../augment/types/node/selection'; +import { getNamedType } from 'graphql'; import { buildCypherSelection, isFragmentedSelection, mergeSelectionFragments -} from '../selections'; +} from '../../selections'; import _ from 'lodash'; -import { isUnionTypeDefinition } from '../augment/types/types'; -import { unwrapNamedType } from '../augment/fields'; -import { - getDirective, - DirectiveDefinition, - getDirectiveArgument -} from '../augment/directives'; -import { analyzeMutationArguments } from '../augment/input-values'; +import { isUnionTypeDefinition } from '../../augment/types/types'; +import { unwrapNamedType } from '../../augment/fields'; +import { analyzeMutationArguments } from '../../augment/input-values'; import { getCypherParams, derivedTypesParams, buildMapProjection, fragmentType, processFilterArgument -} from './translate'; +} from '../translate'; import { ApolloError } from 'apollo-server-errors'; +import { translateNestedMutations } from './input-values'; // Mutation API root operation branch export const translateMutation = ({ @@ -257,12 +253,10 @@ const customMutation = ({ }); const rootStatement = cypherQueryArg.value.value; const nestedStatements = translateNestedMutations({ - args, - mutationStatement: rootStatement, - dataParams: params, - typeMap, - isRoot: true, - isCustom: true + inputFields: args, + parameterData: params, + rootStatement, + typeMap }); const cypherStatement = augmentCustomMutation({ rootStatement: rootStatement, @@ -396,20 +390,18 @@ const nodeCreate = ({ delete params.params; // translate nested mutations discovered in input object arguments nestedStatements = translateNestedMutations({ - args, - dataParams: params, - typeMap, - isRoot: true + inputFields: args, + parameterData: params, + typeMap }); args = Object.values(inputValues).map(arg => arg.astNode); } else { // translate nested mutations discovered in input object arguments nestedStatements = translateNestedMutations({ - args, - dataParams, - typeMap, + inputFields: args, + parameterData: dataParams, paramVariable: paramKey, - isRoot: true + typeMap }); } @@ -557,18 +549,16 @@ ${onMatchStatements}\n`; params = { ...params, ...serializedFilter }; } nestedStatements = translateNestedMutations({ - args, - dataParams, - typeMap, - isRoot: true + inputFields: args, + parameterData: dataParams, + typeMap }); } else { nestedStatements = translateNestedMutations({ - args, - dataParams, + inputFields: args, + parameterData: dataParams, paramVariable: paramKey, - typeMap, - isRoot: true + typeMap }); const [primaryKeyParam, updateParams] = splitSelectionParameters( params, @@ -643,10 +633,9 @@ const nodeDelete = ({ matchStatement = `MATCH (${safeVariableName}:${safeLabelName} {${primaryKeyArgName}: $${primaryKeyArgName}})`; } const nestedStatements = translateNestedMutations({ - args, - dataParams: params, - typeMap, - isRoot: true + inputFields: args, + parameterData: params, + typeMap }); const [subQuery, subParams] = buildCypherSelection({ selections, @@ -1238,539 +1227,3 @@ const getUnionLabels = ({ typeName = '', typeMap = {} }) => { }); return unionLabels; }; - -const translateNestedMutations = ({ - args = [], - dataParams = {}, - paramVariable, - mutationStatement = '', - typeMap = {}, - isRoot = false, - isCustom = false -}) => { - const mappedDataParams = mapMutationParams({ params: dataParams }); - return args - .reduce((statements, arg) => { - const argName = arg.name.value; - const typeName = unwrapNamedType({ type: arg.type }).name; - const inputType = typeMap[typeName]; - const argValue = dataParams[argName]; - const usesInputObjectArgument = - isInputObjectType(inputType) && typeof argValue === 'object'; - if (usesInputObjectArgument) { - let paramName = argName; - if (isRoot) { - paramName = paramVariable; - } - const argumentIsArray = Array.isArray(dataParams[argName]); - const isCustomRootListArgument = isCustom && isRoot && argumentIsArray; - const rootUsesListVariable = includesCypherUnwindClause({ - typeName, - argName, - statement: mutationStatement - }); - const statement = translateNestedMutation({ - paramName, - dataParams: mappedDataParams, - args: [arg], - parentTypeName: typeName, - paramVariable, - typeMap, - isRoot, - isCustom, - argumentIsArray, - rootUsesListVariable, - isCustomRootListArgument, - mutationStatement - }); - if (statement.length) { - // inputType has at least one @cypher input field - statements.push(...statement); - } else { - let paramName = argName; - // inputType did not have a @cypher input field, so keep looking - const nestedParams = mappedDataParams[argName]; - const nestedArgs = Object.values(inputType.getFields()).map( - arg => arg.astNode - ); - const statement = translateNestedMutation({ - isNestedParam: true, - isCustom, - paramName, - args: nestedArgs, - dataParams: nestedParams, - parentTypeName: typeName, - paramVariable, - typeMap, - isRoot, - argumentIsArray, - rootUsesListVariable, - isCustomRootListArgument, - mutationStatement - }); - if (statement.length) { - statements.push(...statement); - } - } - } - return statements; - }, []) - .join('\n'); -}; - -const includesCypherUnwindClause = ({ - typeName = '', - argName = '', - statement = '' -}) => { - const unwindRegExp = new RegExp( - `\\s*\\UNWIND\\s*\\$${argName}\\s*\\AS\\s*${typeName}`, - 'i' - ); - const matched = statement.match(unwindRegExp); - let hasUnwindClause = false; - if (matched) { - const match = matched[0]; - const includesParameter = match.includes(`$${argName}`); - const includesVariable = match.includes(typeName); - if (includesParameter && includesVariable) { - hasUnwindClause = true; - } - } - return hasUnwindClause; -}; - -const translateNestedMutation = ({ - args = [], - paramName, - isRoot, - isNestedParam = false, - isCustom = false, - argumentIsArray = false, - rootUsesListVariable = false, - dataParams = {}, - paramVariable, - parentTypeName, - typeMap = {}, - isCustomRootListArgument, - mutationStatement -}) => { - return args.reduce((translations, arg) => { - const argName = arg.name.value; - const argumentTypeName = unwrapNamedType({ type: arg.type }).name; - const argumentType = typeMap[argumentTypeName]; - const argValue = dataParams[argName]; - const usesInputObjectArgument = - isInputObjectType(argumentType) && typeof argValue === 'object'; - if (usesInputObjectArgument) { - Object.keys(argValue).forEach(name => { - const translation = translateNestedMutationInput({ - name, - argName, - argValue, - argumentType, - paramName, - parentTypeName, - paramVariable, - isRoot, - isNestedParam, - isCustom, - argumentIsArray, - rootUsesListVariable, - typeMap, - isCustomRootListArgument, - mutationStatement - }); - if (translation.length) translations.push(...translation); - }); - } - return translations; - }, []); -}; - -const translateNestedMutationInput = ({ - name, - argName, - argValue, - argumentType, - parentTypeName, - paramName, - paramVariable, - isRoot, - isNestedParam, - isCustom, - argumentIsArray, - rootUsesListVariable, - typeMap, - isCustomRootListArgument, - mutationStatement -}) => { - const translations = []; - const inputFields = argumentType.getFields(); - const inputField = inputFields[name]; - if (inputField) { - const inputFieldAst = inputFields[name].astNode; - const inputFieldTypeName = unwrapNamedType({ type: inputFieldAst.type }) - .name; - const inputFieldType = typeMap[inputFieldTypeName]; - const customCypher = getDirective({ - directives: inputFieldAst.directives, - name: DirectiveDefinition.CYPHER - }); - if (isInputObjectType(inputFieldType)) { - if (customCypher) { - const inputFieldTypeName = inputFieldType.name; - const statement = getDirectiveArgument({ - directive: customCypher, - name: 'statement' - }); - let nestedParamVariable = paramVariable ? paramVariable : ''; - if (isRoot) { - nestedParamVariable = paramName; - } else if (isNestedParam) { - // recursively builds nested cypher variable path - nestedParamVariable = `${paramVariable}.${paramName}`; - } - if (isCustomRootListArgument && rootUsesListVariable) { - nestedParamVariable = parentTypeName; - } - const translated = buildMutationSubQuery({ - inputFieldTypeName, - inputFieldType, - statement, - name, - parentTypeName, - paramVariable: nestedParamVariable, - argName, - argValue, - typeMap, - isRoot, - argumentIsArray, - isNestedParam, - rootUsesListVariable, - isCustomRootListArgument, - mutationStatement - }); - if (translated) { - translations.push(translated); - } - } else if (isNestedParam) { - // keep looking - const nestedArgs = Object.values(argumentType.getFields()).map( - arg => arg.astNode - ); - let nestedParamVariable = `${ - paramVariable ? `${paramVariable}.` : '' - }${paramName}`; - let nestedParamName = argName; - if (isRoot) { - // recursively builds cypher variable path - nestedParamName = `${paramName ? `${paramName}.` : ''}${argName}`; - } - const statement = translateNestedMutation({ - isNestedParam: true, - isRoot, - paramName: nestedParamName, - args: nestedArgs, - dataParams: argValue, - paramVariable: nestedParamVariable, - typeMap, - isCustom, - mutationStatement, - rootUsesListVariable, - isCustomRootListArgument - }); - const nestedStatements = statement.join('\n'); - if (nestedStatements) translations.push(nestedStatements); - } - } - } - return translations; -}; - -const buildMutationSubQuery = ({ - inputFieldTypeName, - inputFieldType, - statement, - name, - parentTypeName, - paramVariable, - argName, - argValue, - typeMap, - isRoot, - argumentIsArray, - isNestedParam, - rootUsesListVariable, - isCustomRootListArgument, - mutationStatement -}) => { - const inputFieldTypeFields = inputFieldType.getFields(); - const nestedArgs = Object.values(inputFieldTypeFields).map( - arg => arg.astNode - ); - const nestedDataParams = argValue[name]; - const mappedDataParams = mapMutationParams({ params: nestedDataParams }); - const nestedMutationStatements = translateNestedMutations({ - args: nestedArgs, - dataParams: mappedDataParams, - paramVariable: inputFieldTypeName, - typeMap, - mutationStatement - }); - const augmentedStatement = augmentMutationWithClauses({ - inputFieldTypeName, - statement, - nestedMutationStatements - }); - const statements = `${augmentedStatement}${nestedMutationStatements}`; - // generalized solution for possible edge case where the current and - // nested input type names are the same - if (!isRoot && paramVariable) { - paramVariable = `_${paramVariable}`; - } - let paramPath = `${ - paramVariable ? `${paramVariable}.` : '' - }${argName}.${name}`; - // If we are at root, and if the argument type is not a list when - // this is a custom @cypher mutation - if (isRoot && (!isNestedParam || !argumentIsArray)) { - paramPath = `$${paramPath}`; - } - return cypherSubQuery({ - argName, - name, - paramPath, - inputFieldTypeName, - parentTypeName, - paramVariable, - statements, - isRoot, - argumentIsArray, - isNestedParam, - rootUsesListVariable, - mutationStatement, - isCustomRootListArgument - }); -}; - -const augmentMutationWithClauses = ({ - inputFieldTypeName = '', - nestedMutationStatements = [], - statement = '' -}) => { - let openingWithClause = ''; - let endingWithClause = ''; - if (statement) { - const lowercasedStatement = statement.toLowerCase(); - const isCommentedRegExp = new RegExp(`with(?!\/*.*)`, 'i'); - let firstWithIndex = lowercasedStatement.indexOf('with'); - isCommentedRegExp.lastIndex = firstWithIndex; - let lastWithIndex = lowercasedStatement.lastIndexOf('with'); - // this makes the regex match "sticky", which begins the match from the given index - isCommentedRegExp.lastIndex = lastWithIndex; - if (firstWithIndex !== -1) { - const firstWithMatch = statement.substr(firstWithIndex); - // so, to determine which is at the top, see that the index is actually 0, test this - if (firstWithMatch) { - // there is only one WITH clause - if (firstWithIndex === lastWithIndex) { - const onlyMatch = statement.substr(firstWithIndex); - if (firstWithIndex === 0) { - // the only WITH clause also begins at index 0, so it's an opening WITH clause - openingWithClause = onlyMatch; - } else { - // assume the last WITH clause is at the end of the statement - endingWithClause = onlyMatch; - } - } else if (lastWithIndex !== -1) { - // there are two or more WITH clauses - const firstMatch = statement.substr(firstWithIndex); - const lastMatch = statement.substr(lastWithIndex); - if (firstWithIndex === 0) openingWithClause = firstMatch; - endingWithClause = lastMatch; - } - if (openingWithClause && endingWithClause) { - openingWithClause = openingWithClause.substr(0, lastWithIndex); - } - if (openingWithClause) { - // add a Cypher variable for inputFieldTypeName - the name of the parent - // UNWIND variable - to keep it available within the proceeding Cypher - statement = augmentMutationWithClause({ - withClause: openingWithClause, - inputFieldTypeName, - isImportClause: true - }); - } - if (endingWithClause) { - // add an alias for the Cypher variable from the parent UNWIND statement, - // to allow the same input type to be used again by a nested UNWIND, - // preventing variable name conflicts - const augmentedWithClause = augmentMutationWithClause({ - withClause: endingWithClause, - inputFieldTypeName, - isExportClause: true - }); - if (openingWithClause) { - // if there is also a WITH clause importing variables, - // then it has already been augmented (above) and equal to statement, - // so the now augmented exporting WITH clause is appended - statement = `${statement}${augmentedWithClause}`; - } else { - // otherwise, statement is still unmodified, so get everything before - // the exporting WITH clause, appending after it the augmented clause - const beforeEndingWith = statement.substr(0, lastWithIndex); - statement = `${beforeEndingWith}\n${augmentedWithClause}`; - } - } - } - } - } - if (!endingWithClause && nestedMutationStatements.length) { - const paramVariable = `${inputFieldTypeName} AS _${inputFieldTypeName}`; - // as a default, continue with all variables, along with the aliased input type name - // to allow for reusing its input type in nested cases - endingWithClause = `WITH *, ${paramVariable}`; - statement = `${statement}\n${endingWithClause}`; - } - return statement; -}; - -const augmentMutationWithClause = ({ - withClause = '', - inputFieldTypeName = '', - isImportClause = false, - isExportClause = false -}) => { - // find the index of the first comma, for checking if this is a variable list - const firstCommaIndex = withClause.indexOf(','); - // regex to check if this clause begins with the pattern WITH * - const withEverythingRegex = new RegExp(`WITH\\s*\\\*+`, 'i'); - const continuesWithEverything = withClause.match(withEverythingRegex); - // assume the clause is not a variable list, e.g., WITH *, ... or WITH x, ... - let isVariableList = false; - // assume the clause does not begin with WITH * - let isWithAsterisk = false; - let augmentedWithClause = withClause; - // remove the WITH from the beginning of the clause - let withClauseRemainder = withClause.substr(4); - if (continuesWithEverything) { - isWithAsterisk = true; - const match = continuesWithEverything[0]; - const matchLen = match.length; - // get everything proceeding WITH * - const nextCypher = withClause.substr(matchLen); - if (nextCypher) { - // trim everything proceeding, so we can check the next character - // using String.startsWith - const trimmed = nextCypher.trim(); - if (trimmed.startsWith(',') && firstCommaIndex !== -1) { - // if the clause begins with WITH * and is immediately proceeded - // by a comma, the clause begins as: "WITH *, ..." - isVariableList = true; - } - } - } - let paramVariable = ''; - if (isImportClause) { - // if an importating WITH clause is provided, then we need to persist - // the parent UNWIND clause's variable along with it to keep it available - paramVariable = inputFieldTypeName; - } else if (isExportClause) { - // alias this input type name for it to be unwound by the nested UNWIND, - // to allow for reusing the same input type in nested cases - paramVariable = `${inputFieldTypeName} AS _${inputFieldTypeName}`; - } - if (isWithAsterisk) { - if (isVariableList) { - // set withClauseRemainder forward to start at the first comma - withClauseRemainder = withClause.substr(firstCommaIndex); - } else { - // set withClauseRemainder to immediately after WITH * - withClauseRemainder = withClause.substr(6); - } - // inject paramVariable into the clause - augmentedWithClause = `WITH *, ${paramVariable}${withClauseRemainder}`; - } else { - // otherwise, the clause is not WITH * and not a list, as neither "WITH *", nor "WITH x, ..." - // so it is added with a preceeding comma, assuming the clause provides at least 1 variable - augmentedWithClause = `WITH ${paramVariable}${ - withClauseRemainder ? `,${withClauseRemainder}` : '' - }`; - } - return augmentedWithClause; -}; - -const cypherSubQuery = ({ - argName = '', - name = '', - paramPath = '', - inputFieldTypeName = '', - parentTypeName = '', - paramVariable = '', - statements = '', - isRoot, - argumentIsArray, - isNestedParam = false, - rootUsesListVariable = false, - isCustomRootListArgument = false -}) => { - let unwindStatement = `UNWIND ${paramPath} AS ${inputFieldTypeName}`; - if (isCustomRootListArgument) { - if (rootUsesListVariable) { - if (isNestedParam) { - unwindStatement = `UNWIND ${parentTypeName}.${argName}.${name} AS ${inputFieldTypeName}`; - } else { - unwindStatement = `UNWIND ${paramVariable}.${name} AS ${inputFieldTypeName}`; - } - } else { - unwindStatement = `UNWIND $${argName} AS _${argName} - UNWIND _${argName}.${name} as ${inputFieldTypeName}`; - } - } else if (isRoot && argumentIsArray) { - unwindStatement = `UNWIND $${paramVariable}.${argName} AS _${argName} - UNWIND _${argName}.${name} as ${inputFieldTypeName}`; - } - return ` -CALL { - WITH * - ${unwindStatement} - ${statements} - RETURN COUNT(*) AS _${argName}_${name}_ -}`; -}; - -const mapMutationParams = ({ params = {} }) => { - return Object.entries(params).reduce((mapped, [name, param]) => { - if (param === null) { - mapped[name] = true; - } else { - mapped[name] = mapMutationParam({ param }); - } - return mapped; - }, {}); -}; - -const mapMutationParam = ({ param }) => { - if (Array.isArray(param)) { - const firstElement = param[0]; - if (typeof firstElement === 'object' && !Array.isArray(firstElement)) { - // list of object values - return param.reduce((subMap, listObject) => { - const subMapped = mapMutationParams({ - params: listObject - }); - return _.merge(subMap, subMapped); - }, {}); - } else { - // list argument of non-object values - return true; - } - } else if (typeof param === 'object') { - if (param === null) return true; - return mapMutationParams({ - params: param - }); - } - return true; -}; diff --git a/test/helpers/configTestHelpers.js b/test/helpers/configTestHelpers.js index a36e3bed..41945aa5 100644 --- a/test/helpers/configTestHelpers.js +++ b/test/helpers/configTestHelpers.js @@ -3,14 +3,14 @@ type Tweet { id: ID! timestamp: DateTime text: String - hashtags: [Hashtag] @relation(name: "HAS_TAG", direction: "OUT") - user: User @relation(name: "POSTED", direction: "IN") + hashtags: [Hashtag] @relation(name: "HAS_TAG", direction: OUT) + user: User @relation(name: "POSTED", direction: IN) } type User { id: ID! screen_name: String - tweets: [Tweet] @relation(name: "POSTED", direction: "OUT") + tweets: [Tweet] @relation(name: "POSTED", direction: OUT) } type Hashtag { diff --git a/test/helpers/experimental/custom/testSchema.js b/test/helpers/experimental/custom/testSchema.js index 4376a9d3..7f980b46 100644 --- a/test/helpers/experimental/custom/testSchema.js +++ b/test/helpers/experimental/custom/testSchema.js @@ -28,7 +28,7 @@ export const testSchema = gql` User: [User!] Movie: [Movie!] } - + type Mutation { CreateUser(data: UserCreate!): User MergeUser(where: UserWhere!, data: UserCreate!): User @@ -41,7 +41,7 @@ export const testSchema = gql` `}) MergeCustoms(data: [CustomData], nestedBatch: [CustomBatchMutation], sideEffects: CustomSideEffects, otherData: CustomSideEffects, computed: CustomComputed): [Custom] @cypher(statement: """ UnwiNd $data aS - CustomData + CustomData MERGE (custom: Custom { id: CustomData.id }) @@ -49,7 +49,7 @@ export const testSchema = gql` """) MergeCustomsWithoutReturnOrWithClause(data: [CustomData], nestedBatch: [CustomBatchMutation], sideEffects: CustomSideEffects, otherData: CustomSideEffects, computed: CustomComputed): [Custom] @cypher(statement: """ UnwiNd $data aS - CustomData + CustomData MERGE (custom: Custom { id: CustomData.id }) @@ -95,11 +95,24 @@ export const testSchema = gql` input XNodeInput { id: ID! xy: YNodeMutation + y: [YNodeInput] @cypher(${cypher` + MERGE (yNode: YNode { + id: YNodeInput.id + }) + MERGE (xNode)-[:XY]->(yNode) + WITH yNode + `}) } input YNodeInput { id: ID! yz: ZNodeMutation + z: [ZNodeInput] @cypher(${cypher` + MERGE (zNode: ZNode { + id: ZNodeInput.id + }) + MERGE (yNode)-[:YZ]->(zNode) + `}) } input ZNodeInput { @@ -140,10 +153,24 @@ export const testSchema = gql` input CustomCreate { id: ID! nested: CustomSideEffects + merge: [CustomCreate] @cypher(${cypher` + MERGE (subCustom: Custom { + id: CustomCreate.id + }) + MERGE (custom)-[:RELATED]->(subCustom) + WITH subCustom AS custom + `}) } input CustomComputed { computed: ComputeComputed + merge: [CustomCreate] @cypher(${cypher` + MERGE (subCustom: Custom { + id: CustomCreate.id + }) + MERGE (custom)-[:RELATED]->(subCustom) + WITH subCustom AS custom + `}) } input CustomComputedInput { @@ -154,6 +181,9 @@ export const testSchema = gql` multiply: CustomComputedInput @cypher(${cypher` SET custom.computed = CustomComputedInput.value * 10 `}) + add: CustomComputedInput @cypher(${cypher` + SET custom.computed = CustomComputedInput.value + 10 + `}) } input CustomSideEffects { diff --git a/test/helpers/testSchema.js b/test/helpers/testSchema.js index 910c5380..63c2098f 100644 --- a/test/helpers/testSchema.js +++ b/test/helpers/testSchema.js @@ -29,7 +29,7 @@ export const testSchema = ` poster: String imdbRating: Float "@relation field line description" - genres: [Genre] @relation(name: "IN_GENRE", direction: "OUT") + genres: [Genre] @relation(name: "IN_GENRE", direction: OUT) similar(first: Int = 3, offset: Int = 0): [Movie] @cypher( statement: "WITH {this} AS this MATCH (this)--(:Genre)--(o:Movie) RETURN o" @@ -44,9 +44,9 @@ export const testSchema = ` names: [String] strings: [String] datetimes: [DateTime] - ): [Actor] @relation(name: "ACTED_IN", direction: "IN") + ): [Actor] @relation(name: "ACTED_IN", direction: IN) avgStars: Float - filmedIn: State @relation(name: "FILMED_IN", direction: "OUT") + filmedIn: State @relation(name: "FILMED_IN", direction: OUT) location: Point locations: [Point] scaleRating(scale: Int = 3): Float @@ -127,14 +127,14 @@ export const testSchema = ` ): [InterfaceNoScalars] @relation(name: "INTERFACE_NO_SCALARS", direction: OUT) extensionScalar: String @search - extensionNode: [Genre] @relation(name: "IN_GENRE", direction: "OUT") + extensionNode: [Genre] @relation(name: "IN_GENRE", direction: OUT) } type Genre { _id: String! name: String movies(first: Int = 3, offset: Int = 0): [Movie] - @relation(name: "IN_GENRE", direction: "IN") + @relation(name: "IN_GENRE", direction: IN) highestRatedMovie: Movie @cypher( statement: "MATCH (m:Movie)-[:IN_GENRE]->(this) RETURN m ORDER BY m.imdbRating DESC LIMIT 1" @@ -320,8 +320,8 @@ export const testSchema = ` type Actor { userId: ID! name: String - movies: [Movie] @relation(name: "ACTED_IN", direction: "OUT") - knows: [Person] @relation(name: "KNOWS", direction: "OUT") + movies: [Movie] @relation(name: "ACTED_IN", direction: OUT) + knows: [Person] @relation(name: "KNOWS", direction: OUT) extensionScalar: String datetimes: [DateTime] strings: [String] @@ -425,7 +425,7 @@ export const testSchema = ` from: String to: Int ): [FriendOfCustomFromTo] - favorites: [Movie] @relation(name: "FAVORITED", direction: "OUT") + favorites: [Movie] @relation(name: "FAVORITED", direction: OUT) movieSearch: [MovieSearch] computedMovieSearch: [MovieSearch] @cypher(statement: "MATCH (ms:MovieSearch) RETURN ms") @@ -804,7 +804,7 @@ export const testSchema = ` type CasedType { name: String - state: State @relation(name: "FILMED_IN", direction: "OUT") + state: State @relation(name: "FILMED_IN", direction: OUT) } interface InterfaceNoScalars { @@ -938,13 +938,13 @@ export const testSchema = ` type CameraMan implements Person { userId: ID! name: String - favoriteCamera: Camera @relation(name: "favoriteCamera", direction: "OUT") + favoriteCamera: Camera @relation(name: "favoriteCamera", direction: OUT) heaviestCamera: [Camera] @cypher( statement: "MATCH (c: Camera)--(this) RETURN c ORDER BY c.weight DESC LIMIT 1" ) - cameras: [Camera!]! @relation(name: "cameras", direction: "OUT") - cameraBuddy: Person @relation(name: "cameraBuddy", direction: "OUT") + cameras: [Camera!]! @relation(name: "cameras", direction: OUT) + cameraBuddy: Person @relation(name: "cameraBuddy", direction: OUT) extensionScalar: String interfacedRelationshipType: [InterfacedRelationshipType] reflexiveInterfacedRelationshipType: [ReflexiveInterfacedRelationshipType] diff --git a/test/unit/augmentSchemaTest.test.js b/test/unit/augmentSchemaTest.test.js index f5c7bd7e..961b36bb 100644 --- a/test/unit/augmentSchemaTest.test.js +++ b/test/unit/augmentSchemaTest.test.js @@ -21,143 +21,102 @@ test.cb('Test augmented schema', t => { }); const expectedTypeDefs = /* GraphQL */ ` - schema { - query: QueryA - subscription: SubscriptionC - mutation: Mutation - } type _AddMovieExtensionNodePayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _RemoveMovieExtensionNodePayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _MergeMovieExtensionNodePayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _AddMovieGenresPayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _RemoveMovieGenresPayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _MergeMovieGenresPayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _AddMovieActorsPayload @relation(name: "ACTED_IN", from: "Actor", to: "Movie") { - """ - Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _RemoveMovieActorsPayload @relation(name: "ACTED_IN", from: "Actor", to: "Movie") { - """ - Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _MergeMovieActorsPayload @relation(name: "ACTED_IN", from: "Actor", to: "Movie") { - """ - Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _AddMovieFilmedInPayload @relation(name: "FILMED_IN", from: "Movie", to: "State") { - """ - Field for the Movie node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: State } + type _RemoveMovieFilmedInPayload @relation(name: "FILMED_IN", from: "Movie", to: "State") { - """ - Field for the Movie node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: State } + type _MergeMovieFilmedInPayload @relation(name: "FILMED_IN", from: "Movie", to: "State") { - """ - Field for the Movie node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: State } + type _MovieRatings @relation(name: "RATED", from: "User", to: "Movie") { currentUserId(strArg: String): String @cypher( @@ -172,15 +131,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." User: User } + input _MovieRatedFilter { AND: [_MovieRatedFilter!] OR: [_MovieRatedFilter!] @@ -253,6 +209,7 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter User: _UserFilter } + enum _RatedOrdering { currentUserId_asc currentUserId_desc @@ -271,6 +228,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _RatedInput { rating: Int ratings: [Int] @@ -282,15 +240,12 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] location: _Neo4jPointInput } + type _AddMovieRatingsPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -305,31 +260,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveMovieRatingsPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _UpdateMovieRatingsPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -344,20 +291,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeMovieRatingsPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -372,72 +314,57 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MovieRatingsNoProps @relation(name: "RATED_NO_PROPS", from: "User", to: "Movie") { - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." User: User } + input _MovieRatedNoPropsFilter { AND: [_MovieRatedNoPropsFilter!] OR: [_MovieRatedNoPropsFilter!] User: _UserFilter } + enum _RatedNoPropsOrdering { _id_asc _id_desc } + type _AddMovieRatingsNoPropsPayload @relation(name: "RATED_NO_PROPS", from: "User", to: "Movie") { - """ - Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveMovieRatingsNoPropsPayload @relation(name: "RATED_NO_PROPS", from: "User", to: "Movie") { - """ - Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _MergeMovieRatingsNoPropsPayload @relation(name: "RATED_NO_PROPS", from: "User", to: "Movie") { - """ - Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_NO_PROPS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MovieRatingsCustomFrom @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { currentUserId(strArg: String): String @@ -453,15 +380,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User } + input _MovieRatedCustomFromFilter { AND: [_MovieRatedCustomFromFilter!] OR: [_MovieRatedCustomFromFilter!] @@ -534,6 +458,7 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter ratedBy: _UserFilter } + enum _RatedCustomFromOrdering { currentUserId_asc currentUserId_desc @@ -552,6 +477,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _RatedCustomFromInput { rating: Int ratings: [Int] @@ -563,15 +489,12 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] location: _Neo4jPointInput } + type _AddMovieRatingsCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -586,31 +509,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveMovieRatingsCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _UpdateMovieRatingsCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -625,20 +540,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeMovieRatingsCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -653,11 +563,10 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MovieRatingsCustomTo @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { currentUserId(strArg: String): String @@ -673,15 +582,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." User: User } + input _MovieRatedCustomToFilter { AND: [_MovieRatedCustomToFilter!] OR: [_MovieRatedCustomToFilter!] @@ -754,6 +660,7 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter User: _UserFilter } + enum _RatedCustomToOrdering { currentUserId_asc currentUserId_desc @@ -772,6 +679,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _RatedCustomToInput { rating: Int ratings: [Int] @@ -783,15 +691,12 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] location: _Neo4jPointInput } + type _AddMovieRatingsCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie currentUserId: String @cypher( @@ -806,31 +711,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveMovieRatingsCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie } + type _UpdateMovieRatingsCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie currentUserId: String @cypher( @@ -845,20 +742,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeMovieRatingsCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie currentUserId: String @cypher( @@ -873,11 +765,10 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MovieRatingsCustomFromTo @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { from: String @@ -894,16 +785,13 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User } + input _MovieRatedCustomFromToFilter { AND: [_MovieRatedCustomFromToFilter!] OR: [_MovieRatedCustomFromToFilter!] @@ -995,6 +883,7 @@ test.cb('Test augmented schema', t => { to_gte: Int ratedBy: _UserFilter } + enum _RatedCustomFromToOrdering { from_asc from_desc @@ -1017,6 +906,7 @@ test.cb('Test augmented schema', t => { to_asc to_desc } + input _RatedCustomFromToInput { from: String rating: Int @@ -1030,15 +920,12 @@ test.cb('Test augmented schema', t => { location: _Neo4jPointInput to: Int } + type _AddMovieRatingsCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie from: String currentUserId: String @@ -1054,32 +941,24 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int } + type _RemoveMovieRatingsCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie } + type _UpdateMovieRatingsCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie from: String currentUserId: String @@ -1095,21 +974,16 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int } + type _MergeMovieRatingsCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie from: String currentUserId: String @@ -1125,15 +999,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int } + input _MovieInput { movieId: ID! } + enum _MovieOrdering { _id_asc _id_desc @@ -1166,6 +1040,7 @@ test.cb('Test augmented schema', t => { extensionScalar_asc extensionScalar_desc } + input _MovieFilter { AND: [_MovieFilter!] OR: [_MovieFilter!] @@ -1389,47 +1264,41 @@ test.cb('Test augmented schema', t => { extensionNode_single: _GenreFilter extensionNode_every: _GenreFilter } + input _MovieSearch { MovieSearch: String MovieSearchID: String threshold: Float } - """ - Object type line description - """ + + "Object type line description" type Movie @additionalLabels( labels: ["u_<%= $cypherParams.userId %>", "newMovieLabel"] ) { - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String - """ - Field line description - """ + "Field line description" movieId: ID! @id @search(index: "MovieSearchID") """ Field block description """ - title: String @search + title: String @isAuthenticated @search someprefix_title_with_underscores: String year: Int released: _Neo4jDateTime plot: String @search poster: String imdbRating: Float - """ - @relation field line description - """ + "@relation field line description" genres( first: Int offset: Int orderBy: [_GenreOrdering] filter: _GenreFilter - ): [Genre] @relation(name: "IN_GENRE", direction: "OUT") + ): [Genre] @relation(name: "IN_GENRE", direction: OUT) similar( first: Int = 3 offset: Int = 0 @@ -1450,10 +1319,10 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] orderBy: [_ActorOrdering] filter: _ActorFilter - ): [Actor] @relation(name: "ACTED_IN", direction: "IN") + ): [Actor] @relation(name: "ACTED_IN", direction: IN) avgStars: Float filmedIn(filter: _StateFilter): State - @relation(name: "FILMED_IN", direction: "OUT") + @relation(name: "FILMED_IN", direction: OUT) location: _Neo4jPoint locations: [_Neo4jPoint] scaleRating(scale: Int = 3): Float @@ -1464,9 +1333,7 @@ test.cb('Test augmented schema', t => { @cypher( statement: "MATCH (this)-[:ACTED_IN*2]-(other:Movie) RETURN other" ) - """ - @relation type field line description - """ + "@relation type field line description" ratings( rating: Int time: _Neo4jTimeInput @@ -1537,71 +1404,38 @@ test.cb('Test augmented schema', t => { years: [Int] titles: [String] imdbRatings: [Float] - """ - Temporal type field line description - """ + "Temporal type field line description" releases: [_Neo4jDateTime] booleans: [Boolean] enums: [BookGenre] - """ - Ignored field line description - """ + "Ignored field line description" customField: String @neo4j_ignore - currentUserId(strArg: String): String - @cypher( - statement: "RETURN $cypherParams.currentUserId AS cypherParamsUserId" - ) - """ - Object type extension field line description - """ - interfaceNoScalars( - orderBy: _InterfaceNoScalarsOrdering - first: Int - offset: Int - filter: _InterfaceNoScalarsFilter - ): [InterfaceNoScalars] - @relation(name: "INTERFACE_NO_SCALARS", direction: OUT) - extensionScalar: String @search - extensionNode( - first: Int - offset: Int - orderBy: [_GenreOrdering] - filter: _GenreFilter - ): [Genre] @relation(name: "IN_GENRE", direction: "OUT") } + type _AddGenreMoviesPayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _RemoveGenreMoviesPayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _MergeGenreMoviesPayload @relation(name: "IN_GENRE", from: "Movie", to: "Genre") { - """ - Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Movie node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Movie - """ - Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this IN_GENRE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _GenreInterfacedRelationshipType @relation( name: "INTERFACED_RELATIONSHIP_TYPE" @@ -1610,15 +1444,12 @@ test.cb('Test augmented schema', t => { ) { string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." Person: Person } + enum _InterfacedRelationshipTypeOrdering { string_asc string_desc @@ -1627,95 +1458,78 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _InterfacedRelationshipTypeInput { string: String! boolean: Boolean } + type _AddGenreInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveGenreInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _UpdateGenreInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeGenreInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + input _GenreInput { name: String! } + type Genre { - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String name: String movies( @@ -1723,7 +1537,7 @@ test.cb('Test augmented schema', t => { offset: Int = 0 orderBy: [_MovieOrdering] filter: _MovieFilter - ): [Movie] @relation(name: "IN_GENRE", direction: "IN") + ): [Movie] @relation(name: "IN_GENRE", direction: IN) highestRatedMovie: Movie @cypher( statement: "MATCH (m:Movie)-[:IN_GENRE]->(this) RETURN m ORDER BY m.imdbRating DESC LIMIT 1" @@ -1735,9 +1549,11 @@ test.cb('Test augmented schema', t => { filter: _GenreInterfacedRelationshipTypeFilter ): [_GenreInterfacedRelationshipType] } + input _StateInput { name: String! } + enum _StateOrdering { name_asc name_desc @@ -1746,6 +1562,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _StateFilter { AND: [_StateFilter!] OR: [_StateFilter!] @@ -1772,15 +1589,15 @@ test.cb('Test augmented schema', t => { id_ends_with: ID id_not_ends_with: ID } + type State { customField: String @neo4j_ignore name: String! @index id: ID - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _PersonInterfacedRelationshipType @relation( name: "INTERFACED_RELATIONSHIP_TYPE" @@ -1789,111 +1606,86 @@ test.cb('Test augmented schema', t => { ) { string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." Genre: Genre } + type _AddPersonInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemovePersonInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _UpdatePersonInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergePersonInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _PersonReflexiveInterfacedRelationshipTypeDirections @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from( first: Int offset: Int orderBy: [_ReflexiveInterfacedRelationshipTypeOrdering] filter: _ReflexiveInterfacedRelationshipTypeFilter ): [_PersonReflexiveInterfacedRelationshipType] - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to( first: Int offset: Int @@ -1901,6 +1693,7 @@ test.cb('Test augmented schema', t => { filter: _ReflexiveInterfacedRelationshipTypeFilter ): [_PersonReflexiveInterfacedRelationshipType] } + type _PersonReflexiveInterfacedRelationshipType @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" @@ -1908,106 +1701,89 @@ test.cb('Test augmented schema', t => { to: "Person" ) { boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." Person: Person } + input _ReflexiveInterfacedRelationshipTypeDirectionsFilter { from: _ReflexiveInterfacedRelationshipTypeFilter to: _ReflexiveInterfacedRelationshipTypeFilter } + enum _ReflexiveInterfacedRelationshipTypeOrdering { boolean_asc boolean_desc _id_asc _id_desc } + input _ReflexiveInterfacedRelationshipTypeInput { boolean: Boolean } + type _AddPersonReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemovePersonReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _UpdatePersonReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergePersonReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + input _PersonInput { userId: ID! } + """ Interface type block description @@ -2022,14 +1798,15 @@ test.cb('Test augmented schema', t => { ): [_PersonInterfacedRelationshipType] userId: ID! @id reflexiveInterfacedRelationshipType: _PersonReflexiveInterfacedRelationshipTypeDirections - extensionScalar: String } + type ReflexiveInterfacedRelationshipType @relation(name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE") { from: Person! boolean: Boolean to: Person! } + type InterfacedRelationshipType @relation(name: "INTERFACED_RELATIONSHIP_TYPE") { from: Person! @@ -2037,13 +1814,10 @@ test.cb('Test augmented schema', t => { boolean: Boolean to: Genre! } - """ - Enum type line description - """ + + "Enum type line description" enum _PersonOrdering { - """ - Enum value line description - """ + "Enum value line description" userId_asc """ Enum value @@ -2054,6 +1828,7 @@ test.cb('Test augmented schema', t => { name_asc name_desc } + """ Custom filtering input type block description @@ -2108,6 +1883,7 @@ test.cb('Test augmented schema', t => { extensionScalar_ends_with: String extensionScalar_not_ends_with: String } + input _PersonInterfacedRelationshipTypeFilter { AND: [_PersonInterfacedRelationshipTypeFilter!] OR: [_PersonInterfacedRelationshipTypeFilter!] @@ -2125,6 +1901,7 @@ test.cb('Test augmented schema', t => { boolean_not: Boolean Genre: _GenreFilter } + input _GenreFilter { AND: [_GenreFilter!] OR: [_GenreFilter!] @@ -2147,6 +1924,7 @@ test.cb('Test augmented schema', t => { interfacedRelationshipType_single: _GenreInterfacedRelationshipTypeFilter interfacedRelationshipType_every: _GenreInterfacedRelationshipTypeFilter } + input _GenreInterfacedRelationshipTypeFilter { AND: [_GenreInterfacedRelationshipTypeFilter!] OR: [_GenreInterfacedRelationshipTypeFilter!] @@ -2164,6 +1942,7 @@ test.cb('Test augmented schema', t => { boolean_not: Boolean Person: _PersonFilter } + input _ReflexiveInterfacedRelationshipTypeFilter { AND: [_ReflexiveInterfacedRelationshipTypeFilter!] OR: [_ReflexiveInterfacedRelationshipTypeFilter!] @@ -2171,228 +1950,176 @@ test.cb('Test augmented schema', t => { boolean_not: Boolean Person: _PersonFilter } + type _AddActorMoviesPayload @relation(name: "ACTED_IN", from: "Actor", to: "Movie") { - """ - Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _RemoveActorMoviesPayload @relation(name: "ACTED_IN", from: "Actor", to: "Movie") { - """ - Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _MergeActorMoviesPayload @relation(name: "ACTED_IN", from: "Actor", to: "Movie") { - """ - Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this ACTED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _AddActorKnowsPayload @relation(name: "KNOWS", from: "Actor", to: "Person") { - """ - Field for the Actor node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Person node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _RemoveActorKnowsPayload @relation(name: "KNOWS", from: "Actor", to: "Person") { - """ - Field for the Actor node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Person node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _MergeActorKnowsPayload @relation(name: "KNOWS", from: "Actor", to: "Person") { - """ - Field for the Actor node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Actor node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Actor - """ - Field for the Person node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this KNOWS [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _AddActorInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveActorInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _UpdateActorInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeActorInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _AddActorReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveActorReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _UpdateActorReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeActorReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + input _ActorInput { userId: ID! } + enum _ActorOrdering { userId_asc userId_desc @@ -2403,6 +2130,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _ActorFilter { AND: [_ActorFilter!] OR: [_ActorFilter!] @@ -2487,7 +2215,8 @@ test.cb('Test augmented schema', t => { reflexiveInterfacedRelationshipType_single: _ReflexiveInterfacedRelationshipTypeDirectionsFilter reflexiveInterfacedRelationshipType_every: _ReflexiveInterfacedRelationshipTypeDirectionsFilter } - type Actor implements Person { + + type Actor { userId: ID! name: String movies( @@ -2495,13 +2224,13 @@ test.cb('Test augmented schema', t => { offset: Int orderBy: [_MovieOrdering] filter: _MovieFilter - ): [Movie] @relation(name: "ACTED_IN", direction: "OUT") + ): [Movie] @relation(name: "ACTED_IN", direction: OUT) knows( first: Int offset: Int orderBy: [_PersonOrdering] filter: _PersonFilter - ): [Person] @relation(name: "KNOWS", direction: "OUT") + ): [Person] @relation(name: "KNOWS", direction: OUT) extensionScalar: String datetimes: [_Neo4jDateTime] strings: [String] @@ -2512,164 +2241,127 @@ test.cb('Test augmented schema', t => { filter: _PersonInterfacedRelationshipTypeFilter ): [_PersonInterfacedRelationshipType] reflexiveInterfacedRelationshipType: _PersonReflexiveInterfacedRelationshipTypeDirections - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _AddUserInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _UpdateUserInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _AddUserReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _UpdateUserReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserRated @relation(name: "RATED", from: "User", to: "Movie") { currentUserId(strArg: String): String @cypher( @@ -2684,15 +2376,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." Movie: Movie } + input _UserRatedFilter { AND: [_UserRatedFilter!] OR: [_UserRatedFilter!] @@ -2765,15 +2454,12 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter Movie: _MovieFilter } + type _AddUserRatedPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -2788,31 +2474,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserRatedPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _UpdateUserRatedPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -2827,20 +2505,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserRatedPayload @relation(name: "RATED", from: "User", to: "Movie") { - """ - Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -2855,11 +2528,10 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserRatedCustomFrom @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { currentUserId(strArg: String): String @@ -2875,15 +2547,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." Movie: Movie } + input _UserRatedCustomFromFilter { AND: [_UserRatedCustomFromFilter!] OR: [_UserRatedCustomFromFilter!] @@ -2956,15 +2625,12 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter Movie: _MovieFilter } + type _AddUserRatedCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -2979,31 +2645,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserRatedCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _UpdateUserRatedCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -3018,20 +2676,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserRatedCustomFromPayload @relation(name: "RATED_CUSTOM_FROM", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie currentUserId: String @cypher( @@ -3046,11 +2699,10 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserRatedCustomTo @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { currentUserId(strArg: String): String @@ -3066,15 +2718,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie } + input _UserRatedCustomToFilter { AND: [_UserRatedCustomToFilter!] OR: [_UserRatedCustomToFilter!] @@ -3147,15 +2796,12 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter movie: _MovieFilter } + type _AddUserRatedCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie currentUserId: String @cypher( @@ -3170,31 +2816,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserRatedCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie } + type _UpdateUserRatedCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie currentUserId: String @cypher( @@ -3209,20 +2847,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserRatedCustomToPayload @relation(name: "RATED_CUSTOM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie currentUserId: String @cypher( @@ -3237,11 +2870,10 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserRatedCustomFromTo @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { from: String @@ -3258,16 +2890,13 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie } + input _UserRatedCustomFromToFilter { AND: [_UserRatedCustomFromToFilter!] OR: [_UserRatedCustomFromToFilter!] @@ -3359,15 +2988,12 @@ test.cb('Test augmented schema', t => { to_gte: Int movie: _MovieFilter } + type _AddUserRatedCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie from: String currentUserId: String @@ -3383,32 +3009,24 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int } + type _RemoveUserRatedCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie } + type _UpdateUserRatedCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie from: String currentUserId: String @@ -3424,21 +3042,16 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int } + type _MergeUserRatedCustomFromToPayload @relation(name: "RATED_CUSTOM_FROM_TO", from: "User", to: "Movie") { - """ - Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." ratedBy: User - """ - Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this RATED_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." movie: Movie from: String currentUserId: String @@ -3454,17 +3067,14 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime datetimes: [_Neo4jDateTime] location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String to: Int } + type _UserFriendsDirections @relation(name: "FRIEND_OF", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from( since: Int time: _Neo4jTimeInput @@ -3480,9 +3090,7 @@ test.cb('Test augmented schema', t => { orderBy: [_FriendOfOrdering] filter: _FriendOfFilter ): [_UserFriends] - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to( since: Int time: _Neo4jTimeInput @@ -3499,6 +3107,7 @@ test.cb('Test augmented schema', t => { filter: _FriendOfFilter ): [_UserFriends] } + type _UserFriends @relation(name: "FRIEND_OF", from: "User", to: "User") { currentUserId: String @cypher( @@ -3513,19 +3122,17 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." User: User } + input _FriendOfDirectionsFilter { from: _FriendOfFilter to: _FriendOfFilter } + input _FriendOfFilter { AND: [_FriendOfFilter!] OR: [_FriendOfFilter!] @@ -3601,6 +3208,7 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter User: _UserFilter } + enum _FriendOfOrdering { currentUserId_asc currentUserId_desc @@ -3619,6 +3227,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _FriendOfInput { since: Int time: _Neo4jTimeInput @@ -3630,15 +3239,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTimeInput location: _Neo4jPointInput } + type _AddUserFriendsPayload @relation(name: "FRIEND_OF", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User currentUserId: String @cypher( @@ -3653,31 +3259,23 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserFriendsPayload @relation(name: "FRIEND_OF", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User } + type _UpdateUserFriendsPayload @relation(name: "FRIEND_OF", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User currentUserId: String @cypher( @@ -3692,20 +3290,15 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserFriendsPayload @relation(name: "FRIEND_OF", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User currentUserId: String @cypher( @@ -3720,16 +3313,13 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserFriendsCustomFromDirections @relation(name: "FRIEND_OF_CUSTOM_FROM", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy( since: Int time: _Neo4jTimeInput @@ -3745,9 +3335,7 @@ test.cb('Test augmented schema', t => { orderBy: [_FriendOfCustomFromOrdering] filter: _FriendOfCustomFromFilter ): [_UserFriendsCustomFrom] - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to( since: Int time: _Neo4jTimeInput @@ -3764,6 +3352,7 @@ test.cb('Test augmented schema', t => { filter: _FriendOfCustomFromFilter ): [_UserFriendsCustomFrom] } + type _UserFriendsCustomFrom @relation(name: "FRIEND_OF_CUSTOM_FROM", from: "User", to: "User") { currentUserId: String @@ -3779,19 +3368,17 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." User: User } + input _FriendOfCustomFromDirectionsFilter { friendedBy: _FriendOfCustomFromFilter to: _FriendOfCustomFromFilter } + input _FriendOfCustomFromFilter { AND: [_FriendOfCustomFromFilter!] OR: [_FriendOfCustomFromFilter!] @@ -3867,6 +3454,7 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter User: _UserFilter } + enum _FriendOfCustomFromOrdering { currentUserId_asc currentUserId_desc @@ -3885,6 +3473,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _FriendOfCustomFromInput { since: Int time: _Neo4jTimeInput @@ -3896,15 +3485,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTimeInput location: _Neo4jPointInput } + type _AddUserFriendsCustomFromPayload @relation(name: "FRIEND_OF_CUSTOM_FROM", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User currentUserId: String @cypher( @@ -3919,31 +3505,23 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserFriendsCustomFromPayload @relation(name: "FRIEND_OF_CUSTOM_FROM", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User } + type _UpdateUserFriendsCustomFromPayload @relation(name: "FRIEND_OF_CUSTOM_FROM", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User currentUserId: String @cypher( @@ -3958,20 +3536,15 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserFriendsCustomFromPayload @relation(name: "FRIEND_OF_CUSTOM_FROM", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: User currentUserId: String @cypher( @@ -3986,16 +3559,13 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserFriendsCustomToDirections @relation(name: "FRIEND_OF_CUSTOM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from( since: Int time: _Neo4jTimeInput @@ -4011,9 +3581,7 @@ test.cb('Test augmented schema', t => { orderBy: [_FriendOfCustomToOrdering] filter: _FriendOfCustomToFilter ): [_UserFriendsCustomTo] - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended( since: Int time: _Neo4jTimeInput @@ -4030,6 +3598,7 @@ test.cb('Test augmented schema', t => { filter: _FriendOfCustomToFilter ): [_UserFriendsCustomTo] } + type _UserFriendsCustomTo @relation(name: "FRIEND_OF_CUSTOM_TO", from: "User", to: "User") { currentUserId: String @@ -4045,19 +3614,17 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." User: User } + input _FriendOfCustomToDirectionsFilter { from: _FriendOfCustomToFilter friended: _FriendOfCustomToFilter } + input _FriendOfCustomToFilter { AND: [_FriendOfCustomToFilter!] OR: [_FriendOfCustomToFilter!] @@ -4133,6 +3700,7 @@ test.cb('Test augmented schema', t => { location_distance_gte: _Neo4jPointDistanceFilter User: _UserFilter } + enum _FriendOfCustomToOrdering { currentUserId_asc currentUserId_desc @@ -4151,6 +3719,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _FriendOfCustomToInput { since: Int time: _Neo4jTimeInput @@ -4162,15 +3731,12 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTimeInput location: _Neo4jPointInput } + type _AddUserFriendsCustomToPayload @relation(name: "FRIEND_OF_CUSTOM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User currentUserId: String @cypher( @@ -4185,31 +3751,23 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserFriendsCustomToPayload @relation(name: "FRIEND_OF_CUSTOM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User } + type _UpdateUserFriendsCustomToPayload @relation(name: "FRIEND_OF_CUSTOM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User currentUserId: String @cypher( @@ -4224,20 +3782,15 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserFriendsCustomToPayload @relation(name: "FRIEND_OF_CUSTOM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User currentUserId: String @cypher( @@ -4252,16 +3805,13 @@ test.cb('Test augmented schema', t => { localtime: _Neo4jLocalTime localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _UserFriendsCustomFromToDirections @relation(name: "FRIEND_OF_CUSTOM_FROM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy( since: Int time: _Neo4jTimeInput @@ -4279,9 +3829,7 @@ test.cb('Test augmented schema', t => { orderBy: [_FriendOfCustomFromToOrdering] filter: _FriendOfCustomFromToFilter ): [_UserFriendsCustomFromTo] - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended( since: Int time: _Neo4jTimeInput @@ -4300,6 +3848,7 @@ test.cb('Test augmented schema', t => { filter: _FriendOfCustomFromToFilter ): [_UserFriendsCustomFromTo] } + type _UserFriendsCustomFromTo @relation(name: "FRIEND_OF_CUSTOM_FROM_TO", from: "User", to: "User") { from: String @@ -4317,19 +3866,17 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint to: Int - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." User: User } + input _FriendOfCustomFromToDirectionsFilter { friendedBy: _FriendOfCustomFromToFilter friended: _FriendOfCustomFromToFilter } + input _FriendOfCustomFromToFilter { AND: [_FriendOfCustomFromToFilter!] OR: [_FriendOfCustomFromToFilter!] @@ -4424,6 +3971,7 @@ test.cb('Test augmented schema', t => { to_gte: Int User: _UserFilter } + enum _FriendOfCustomFromToOrdering { from_asc from_desc @@ -4446,6 +3994,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _FriendOfCustomFromToInput { from: String since: Int @@ -4459,15 +4008,12 @@ test.cb('Test augmented schema', t => { location: _Neo4jPointInput to: Int } + type _AddUserFriendsCustomFromToPayload @relation(name: "FRIEND_OF_CUSTOM_FROM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User from: String currentUserId: String @@ -4484,31 +4030,23 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint to: Int - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveUserFriendsCustomFromToPayload @relation(name: "FRIEND_OF_CUSTOM_FROM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User } + type _UpdateUserFriendsCustomFromToPayload @relation(name: "FRIEND_OF_CUSTOM_FROM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User from: String currentUserId: String @@ -4525,20 +4063,15 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint to: Int - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeUserFriendsCustomFromToPayload @relation(name: "FRIEND_OF_CUSTOM_FROM_TO", from: "User", to: "User") { - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." friendedBy: User - """ - Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the User node this FRIEND_OF_CUSTOM_FROM_TO [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." friended: User from: String currentUserId: String @@ -4555,47 +4088,38 @@ test.cb('Test augmented schema', t => { localdatetime: _Neo4jLocalDateTime location: _Neo4jPoint to: Int - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _AddUserFavoritesPayload @relation(name: "FAVORITED", from: "User", to: "Movie") { - """ - Field for the User node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _RemoveUserFavoritesPayload @relation(name: "FAVORITED", from: "User", to: "Movie") { - """ - Field for the User node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + type _MergeUserFavoritesPayload @relation(name: "FAVORITED", from: "User", to: "Movie") { - """ - Field for the User node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the User node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: User - """ - Field for the Movie node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Movie node this FAVORITED [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Movie } + input _UserInput { userId: ID! } + enum _UserOrdering { userId_asc userId_desc @@ -4608,6 +4132,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _UserFilter { AND: [_UserFilter!] OR: [_UserFilter!] @@ -4733,6 +4258,7 @@ test.cb('Test augmented schema', t => { extensionScalar_ends_with: String extensionScalar_not_ends_with: String } + type User implements Person { userId: ID! name: String @@ -4810,16 +4336,15 @@ test.cb('Test augmented schema', t => { offset: Int orderBy: [_MovieOrdering] filter: _MovieFilter - ): [Movie] @relation(name: "FAVORITED", direction: "OUT") + ): [Movie] @relation(name: "FAVORITED", direction: OUT) movieSearch(first: Int, offset: Int): [MovieSearch] computedMovieSearch(first: Int, offset: Int): [MovieSearch] @cypher(statement: "MATCH (ms:MovieSearch) RETURN ms") extensionScalar: String - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type FriendOf @relation { from: User currentUserId: String @@ -4837,6 +4362,7 @@ test.cb('Test augmented schema', t => { location: _Neo4jPoint to: User } + type FriendOfCustomFrom @relation(from: "friendedBy") { friendedBy: User currentUserId: String @@ -4854,6 +4380,7 @@ test.cb('Test augmented schema', t => { location: _Neo4jPoint to: User } + type FriendOfCustomTo @relation(to: "friended") { from: User currentUserId: String @@ -4871,6 +4398,7 @@ test.cb('Test augmented schema', t => { location: _Neo4jPoint friended: User } + type FriendOfCustomFromTo @relation(from: "friendedBy", to: "friended") { friendedBy: User from: String @@ -4890,6 +4418,7 @@ test.cb('Test augmented schema', t => { friended: User to: Int } + type Rated @relation { from: User currentUserId(strArg: String): String @@ -4908,10 +4437,12 @@ test.cb('Test augmented schema', t => { _id: String to: Movie } + type RatedNoProps @relation { from: User to: Movie } + type RatedCustomFrom @relation(from: "ratedBy") { ratedBy: User currentUserId(strArg: String): String @@ -4930,6 +4461,7 @@ test.cb('Test augmented schema', t => { _id: String to: Movie } + type RatedCustomTo @relation(to: "movie") { from: User currentUserId(strArg: String): String @@ -4948,6 +4480,7 @@ test.cb('Test augmented schema', t => { _id: String movie: Movie } + type RatedCustomFromTo @relation(from: "ratedBy", to: "movie") { ratedBy: User from: String @@ -4968,20 +4501,23 @@ test.cb('Test augmented schema', t => { to: Int movie: Movie } + enum BookGenre { Mystery Science - Math } + input _BookInput { genre: BookGenre! } + enum _BookOrdering { genre_asc genre_desc _id_asc _id_desc } + input _BookFilter { AND: [_BookFilter!] OR: [_BookFilter!] @@ -4990,19 +4526,21 @@ test.cb('Test augmented schema', t => { genre_in: [BookGenre!] genre_not_in: [BookGenre!] } + type Book { genre: BookGenre - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + input _NodeTypeMutationTestInput { NodeTypeMutationTest: BookGenre! } + type NodeTypeMutationTest { NodeTypeMutationTest: BookGenre } + """ Custom ordering enum type block description @@ -5011,15 +4549,18 @@ test.cb('Test augmented schema', t => { name_desc name_asc } + input _currentUserIdInput { userId: String! } + enum _currentUserIdOrdering { userId_asc userId_desc _id_asc _id_desc } + input _currentUserIdFilter { AND: [_currentUserIdFilter!] OR: [_currentUserIdFilter!] @@ -5035,49 +4576,41 @@ test.cb('Test augmented schema', t => { userId_ends_with: String userId_not_ends_with: String } + type currentUserId { userId: String - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _AddTemporalNodeTemporalNodesPayload @relation(name: "TEMPORAL", from: "TemporalNode", to: "TemporalNode") { - """ - Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: TemporalNode - """ - Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: TemporalNode } + type _RemoveTemporalNodeTemporalNodesPayload @relation(name: "TEMPORAL", from: "TemporalNode", to: "TemporalNode") { - """ - Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: TemporalNode - """ - Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: TemporalNode } + type _MergeTemporalNodeTemporalNodesPayload @relation(name: "TEMPORAL", from: "TemporalNode", to: "TemporalNode") { - """ - Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: TemporalNode - """ - Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the TemporalNode node this TEMPORAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: TemporalNode } + input _TemporalNodeInput { name: String! } + enum _TemporalNodeOrdering { datetime_asc datetime_desc @@ -5096,6 +4629,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _TemporalNodeFilter { AND: [_TemporalNodeFilter!] OR: [_TemporalNodeFilter!] @@ -5165,6 +4699,7 @@ test.cb('Test augmented schema', t => { temporalNodes_single: _TemporalNodeFilter temporalNodes_every: _TemporalNodeFilter } + type TemporalNode { datetime: _Neo4jDateTime name: String @@ -5186,53 +4721,45 @@ test.cb('Test augmented schema', t => { orderBy: [_TemporalNodeOrdering] filter: _TemporalNodeFilter ): [TemporalNode] @relation(name: "TEMPORAL", direction: OUT) - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _AddSpatialNodeSpatialNodesPayload @relation(name: "SPATIAL", from: "SpatialNode", to: "SpatialNode") { - """ - Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: SpatialNode - """ - Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: SpatialNode } + type _RemoveSpatialNodeSpatialNodesPayload @relation(name: "SPATIAL", from: "SpatialNode", to: "SpatialNode") { - """ - Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: SpatialNode - """ - Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: SpatialNode } + type _MergeSpatialNodeSpatialNodesPayload @relation(name: "SPATIAL", from: "SpatialNode", to: "SpatialNode") { - """ - Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: SpatialNode - """ - Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the SpatialNode node this SPATIAL [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: SpatialNode } + input _SpatialNodeInput { id: ID! } + enum _SpatialNodeOrdering { id_asc id_desc _id_asc _id_desc } + input _SpatialNodeFilter { AND: [_SpatialNodeFilter!] OR: [_SpatialNodeFilter!] @@ -5263,6 +4790,7 @@ test.cb('Test augmented schema', t => { spatialNodes_single: _SpatialNodeFilter spatialNodes_every: _SpatialNodeFilter } + type SpatialNode { id: ID! point: _Neo4jPoint @@ -5273,79 +4801,72 @@ test.cb('Test augmented schema', t => { orderBy: [_SpatialNodeOrdering] filter: _SpatialNodeFilter ): [SpatialNode] @relation(name: "SPATIAL", direction: OUT) - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type ignoredType { ignoredField: String @neo4j_ignore } - """ - Custom scalar type line description - """ + + "Custom scalar type line description" scalar Time + scalar Date + scalar DateTime + scalar LocalTime + scalar LocalDateTime - """ - Input object type line description - """ + + "Input object type line description" input strInput { - """ - Input field line description - """ + "Input field line description" strArg: String - extensionArg: String } + enum Role { reader user admin } + type _AddCasedTypeStatePayload @relation(name: "FILMED_IN", from: "CasedType", to: "State") { - """ - Field for the CasedType node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CasedType node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CasedType - """ - Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: State } + type _RemoveCasedTypeStatePayload @relation(name: "FILMED_IN", from: "CasedType", to: "State") { - """ - Field for the CasedType node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CasedType node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CasedType - """ - Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: State } + type _MergeCasedTypeStatePayload @relation(name: "FILMED_IN", from: "CasedType", to: "State") { - """ - Field for the CasedType node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CasedType node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CasedType - """ - Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the State node this FILMED_IN [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: State } + input _CasedTypeInput { name: String! } + enum _CasedTypeOrdering { name_asc name_desc _id_asc _id_desc } + input _CasedTypeFilter { AND: [_CasedTypeFilter!] OR: [_CasedTypeFilter!] @@ -5365,15 +4886,15 @@ test.cb('Test augmented schema', t => { state_in: [_StateFilter!] state_not_in: [_StateFilter!] } + type CasedType { name: String state(filter: _StateFilter): State - @relation(name: "FILMED_IN", direction: "OUT") - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + @relation(name: "FILMED_IN", direction: OUT) + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + input _InterfaceNoScalarsFilter { AND: [_InterfaceNoScalarsFilter!] OR: [_InterfaceNoScalarsFilter!] @@ -5386,6 +4907,7 @@ test.cb('Test augmented schema', t => { movies_single: _MovieFilter movies_every: _MovieFilter } + interface InterfaceNoScalars { movies( first: Int @@ -5394,9 +4916,11 @@ test.cb('Test augmented schema', t => { filter: _MovieFilter ): [Movie] @relation(name: "MOVIES", direction: OUT) } + enum _InterfaceNoScalarsOrdering { movies_asc } + input _CameraFilter { AND: [_CameraFilter!] OR: [_CameraFilter!] @@ -5447,87 +4971,71 @@ test.cb('Test augmented schema', t => { operators_single: _PersonFilter operators_every: _PersonFilter } + type _AddCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "Camera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _RemoveCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "Camera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _MergeCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "Camera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _AddCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "Camera" to: "Camera" ) { - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Camera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _RemoveCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "Camera" to: "Camera" ) { - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Camera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _MergeCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "Camera" to: "Camera" ) { - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Camera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + input _CameraInput { id: ID! } + interface Camera { type: String id: ID! @unique @@ -5554,6 +5062,7 @@ test.cb('Test augmented schema', t => { ): [Camera] @relation(name: "REFLEXIVE_INTERFACE_RELATIONSHIP", direction: OUT) } + enum _CameraOrdering { id_asc id_desc @@ -5564,87 +5073,71 @@ test.cb('Test augmented schema', t => { weight_asc weight_desc } + type _AddOldCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "OldCamera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the OldCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the OldCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: OldCamera } + type _RemoveOldCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "OldCamera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the OldCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the OldCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: OldCamera } + type _MergeOldCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "OldCamera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the OldCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the OldCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: OldCamera } + type _AddOldCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "OldCamera" to: "Camera" ) { - """ - Field for the OldCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the OldCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: OldCamera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _RemoveOldCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "OldCamera" to: "Camera" ) { - """ - Field for the OldCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the OldCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: OldCamera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _MergeOldCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "OldCamera" to: "Camera" ) { - """ - Field for the OldCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the OldCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: OldCamera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + input _OldCameraInput { id: ID! } + enum _OldCameraOrdering { type_asc type_desc @@ -5659,6 +5152,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _OldCameraFilter { AND: [_OldCameraFilter!] OR: [_OldCameraFilter!] @@ -5731,6 +5225,7 @@ test.cb('Test augmented schema', t => { reflexiveInterfaceRelationship_single: _CameraFilter reflexiveInterfaceRelationship_every: _CameraFilter } + type OldCamera implements Camera { type: String id: ID! @unique @@ -5757,92 +5252,74 @@ test.cb('Test augmented schema', t => { filter: _CameraFilter ): [Camera] @relation(name: "REFLEXIVE_INTERFACE_RELATIONSHIP", direction: OUT) - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _AddNewCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "NewCamera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the NewCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the NewCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: NewCamera } + type _RemoveNewCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "NewCamera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the NewCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the NewCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: NewCamera } + type _MergeNewCameraOperatorsPayload @relation(name: "cameras", from: "Person", to: "NewCamera") { - """ - Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the NewCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the NewCamera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: NewCamera } + type _AddNewCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "NewCamera" to: "Camera" ) { - """ - Field for the NewCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the NewCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: NewCamera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _RemoveNewCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "NewCamera" to: "Camera" ) { - """ - Field for the NewCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the NewCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: NewCamera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _MergeNewCameraReflexiveInterfaceRelationshipPayload @relation( name: "REFLEXIVE_INTERFACE_RELATIONSHIP" from: "NewCamera" to: "Camera" ) { - """ - Field for the NewCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the NewCamera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: NewCamera - """ - Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this REFLEXIVE_INTERFACE_RELATIONSHIP [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + input _NewCameraInput { id: ID! } + enum _NewCameraOrdering { type_asc type_desc @@ -5855,6 +5332,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _NewCameraFilter { AND: [_NewCameraFilter!] OR: [_NewCameraFilter!] @@ -5925,6 +5403,7 @@ test.cb('Test augmented schema', t => { reflexiveInterfaceRelationship_single: _CameraFilter reflexiveInterfaceRelationship_every: _CameraFilter } + type NewCamera implements Camera { type: String id: ID! @unique @@ -5951,271 +5430,209 @@ test.cb('Test augmented schema', t => { filter: _CameraFilter ): [Camera] @relation(name: "REFLEXIVE_INTERFACE_RELATIONSHIP", direction: OUT) - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + """ Union type block description """ - union MovieSearch = Movie | Genre | Book | Actor | OldCamera + union MovieSearch = Movie | Genre | Book + type _AddCameraManFavoriteCameraPayload @relation(name: "favoriteCamera", from: "CameraMan", to: "Camera") { - """ - Field for the CameraMan node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Camera node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _RemoveCameraManFavoriteCameraPayload @relation(name: "favoriteCamera", from: "CameraMan", to: "Camera") { - """ - Field for the CameraMan node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Camera node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _MergeCameraManFavoriteCameraPayload @relation(name: "favoriteCamera", from: "CameraMan", to: "Camera") { - """ - Field for the CameraMan node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Camera node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this favoriteCamera [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _AddCameraManCamerasPayload @relation(name: "cameras", from: "CameraMan", to: "Camera") { - """ - Field for the CameraMan node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _RemoveCameraManCamerasPayload @relation(name: "cameras", from: "CameraMan", to: "Camera") { - """ - Field for the CameraMan node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _MergeCameraManCamerasPayload @relation(name: "cameras", from: "CameraMan", to: "Camera") { - """ - Field for the CameraMan node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Camera node this cameras [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Camera } + type _AddCameraManCameraBuddyPayload @relation(name: "cameraBuddy", from: "CameraMan", to: "Person") { - """ - Field for the CameraMan node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Person node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _RemoveCameraManCameraBuddyPayload @relation(name: "cameraBuddy", from: "CameraMan", to: "Person") { - """ - Field for the CameraMan node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Person node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _MergeCameraManCameraBuddyPayload @relation(name: "cameraBuddy", from: "CameraMan", to: "Person") { - """ - Field for the CameraMan node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the CameraMan node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: CameraMan - """ - Field for the Person node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this cameraBuddy [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _AddCameraManInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveCameraManInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre } + type _UpdateCameraManInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeCameraManInterfacedRelationshipTypePayload @relation( name: "INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Genre" ) { - """ - Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Genre node this INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Genre string: String! boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _AddCameraManReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _RemoveCameraManReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person } + type _UpdateCameraManReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + type _MergeCameraManReflexiveInterfacedRelationshipTypePayload @relation( name: "REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE" from: "Person" to: "Person" ) { - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: Person - """ - Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the Person node this REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: Person boolean: Boolean - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this relationship." _id: String } + input _CameraManInput { userId: ID! } + enum _CameraManOrdering { userId_asc userId_desc @@ -6226,6 +5643,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _CameraManFilter { AND: [_CameraManFilter!] OR: [_CameraManFilter!] @@ -6295,11 +5713,12 @@ test.cb('Test augmented schema', t => { reflexiveInterfacedRelationshipType_single: _ReflexiveInterfacedRelationshipTypeDirectionsFilter reflexiveInterfacedRelationshipType_every: _ReflexiveInterfacedRelationshipTypeDirectionsFilter } + type CameraMan implements Person { userId: ID! name: String favoriteCamera(filter: _CameraFilter): Camera - @relation(name: "favoriteCamera", direction: "OUT") + @relation(name: "favoriteCamera", direction: OUT) heaviestCamera( first: Int offset: Int @@ -6313,9 +5732,9 @@ test.cb('Test augmented schema', t => { offset: Int orderBy: [_CameraOrdering] filter: _CameraFilter - ): [Camera!]! @relation(name: "cameras", direction: "OUT") + ): [Camera!]! @relation(name: "cameras", direction: OUT) cameraBuddy(filter: _PersonFilter): Person - @relation(name: "cameraBuddy", direction: "OUT") + @relation(name: "cameraBuddy", direction: OUT) extensionScalar: String interfacedRelationshipType( first: Int @@ -6324,59 +5743,50 @@ test.cb('Test augmented schema', t => { filter: _PersonInterfacedRelationshipTypeFilter ): [_PersonInterfacedRelationshipType] reflexiveInterfacedRelationshipType: _PersonReflexiveInterfacedRelationshipTypeDirections - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _AddUniqueNodeTestRelationPayload @relation( name: "TEST_RELATION" from: "UniqueNode" to: "UniqueStringNode" ) { - """ - Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: UniqueNode - """ - Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: UniqueStringNode } + type _RemoveUniqueNodeTestRelationPayload @relation( name: "TEST_RELATION" from: "UniqueNode" to: "UniqueStringNode" ) { - """ - Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: UniqueNode - """ - Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: UniqueStringNode } + type _MergeUniqueNodeTestRelationPayload @relation( name: "TEST_RELATION" from: "UniqueNode" to: "UniqueStringNode" ) { - """ - Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: UniqueNode - """ - Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: UniqueStringNode } + input _UniqueNodeInput { id: ID! } + enum _UniqueNodeOrdering { string_asc string_desc @@ -6387,6 +5797,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _UniqueNodeFilter { AND: [_UniqueNodeFilter!] OR: [_UniqueNodeFilter!] @@ -6432,6 +5843,7 @@ test.cb('Test augmented schema', t => { testRelation_single: _UniqueStringNodeFilter testRelation_every: _UniqueStringNodeFilter } + type UniqueNode { string: String @unique id: ID @id @@ -6442,59 +5854,50 @@ test.cb('Test augmented schema', t => { orderBy: [_UniqueStringNodeOrdering] filter: _UniqueStringNodeFilter ): [UniqueStringNode] @relation(name: "TEST_RELATION", direction: OUT) - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String } + type _AddUniqueStringNodeTestRelationPayload @relation( name: "TEST_RELATION" from: "UniqueNode" to: "UniqueStringNode" ) { - """ - Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: UniqueNode - """ - Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: UniqueStringNode } + type _RemoveUniqueStringNodeTestRelationPayload @relation( name: "TEST_RELATION" from: "UniqueNode" to: "UniqueStringNode" ) { - """ - Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: UniqueNode - """ - Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: UniqueStringNode } + type _MergeUniqueStringNodeTestRelationPayload @relation( name: "TEST_RELATION" from: "UniqueNode" to: "UniqueStringNode" ) { - """ - Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from. - """ + "Field for the UniqueNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is coming from." from: UniqueNode - """ - Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to. - """ + "Field for the UniqueStringNode node this TEST_RELATION [relationship](https://grandstack.io/docs/graphql-relationship-types) is going to." to: UniqueStringNode } + input _UniqueStringNodeInput { uniqueString: String! } + enum _UniqueStringNodeOrdering { id_asc id_desc @@ -6503,6 +5906,7 @@ test.cb('Test augmented schema', t => { _id_asc _id_desc } + input _UniqueStringNodeFilter { AND: [_UniqueStringNodeFilter!] OR: [_UniqueStringNodeFilter!] @@ -6537,23 +5941,14 @@ test.cb('Test augmented schema', t => { testRelation_single: _UniqueNodeFilter testRelation_every: _UniqueNodeFilter } + type UniqueStringNode { id: ID! - """ - Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node. - """ + "Generated field for querying the Neo4j [system id](https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id) of this node." _id: String - uniqueString: String @unique - testRelation( - first: Int - offset: Int - orderBy: [_UniqueNodeOrdering] - filter: _UniqueNodeFilter - ): [UniqueNode] @relation(name: "TEST_RELATION", direction: IN) } - """ - Generated Time input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments). - """ + + "Generated Time input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments)." input _Neo4jTimeInput { hour: Int minute: Int @@ -6562,14 +5957,11 @@ test.cb('Test augmented schema', t => { microsecond: Int nanosecond: Int timezone: String - """ - Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) Time value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/time/#functions-time-create-string). - """ + "Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) Time value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/time/#functions-time-create-string)." formatted: String } - """ - Generated Time object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries). - """ + + "Generated Time object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries)." type _Neo4jTime { hour: Int minute: Int @@ -6578,38 +5970,29 @@ test.cb('Test augmented schema', t => { microsecond: Int nanosecond: Int timezone: String - """ - Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) Time value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function. - """ + "Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) Time value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function." formatted: String } - """ - Generated Date input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments). - """ + + "Generated Date input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments)." input _Neo4jDateInput { year: Int month: Int day: Int - """ - Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) Date value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/date/#functions-date-create-string). - """ + "Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) Date value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/date/#functions-date-create-string)." formatted: String } - """ - Generated Date object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries). - """ + + "Generated Date object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries)." type _Neo4jDate { year: Int month: Int day: Int - """ - Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) Date value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function. - """ + "Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) Date value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function." formatted: String } - """ - Generated DateTime input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments). - """ + + "Generated DateTime input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments)." input _Neo4jDateTimeInput { year: Int month: Int @@ -6621,14 +6004,11 @@ test.cb('Test augmented schema', t => { microsecond: Int nanosecond: Int timezone: String - """ - Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) DateTime value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/datetime/#functions-datetime-create-string). - """ + "Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) DateTime value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/datetime/#functions-datetime-create-string)." formatted: String } - """ - Generated DateTime object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries). - """ + + "Generated DateTime object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries)." type _Neo4jDateTime { year: Int month: Int @@ -6640,14 +6020,11 @@ test.cb('Test augmented schema', t => { microsecond: Int nanosecond: Int timezone: String - """ - Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) DateTime value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function. - """ + "Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) DateTime value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function." formatted: String } - """ - Generated LocalTime input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments). - """ + + "Generated LocalTime input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments)." input _Neo4jLocalTimeInput { hour: Int minute: Int @@ -6655,14 +6032,11 @@ test.cb('Test augmented schema', t => { millisecond: Int microsecond: Int nanosecond: Int - """ - Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) LocalTime value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/localtime/#functions-localtime-create-string). - """ + "Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) LocalTime value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/localtime/#functions-localtime-create-string)." formatted: String } - """ - Generated LocalTime object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries). - """ + + "Generated LocalTime object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries)." type _Neo4jLocalTime { hour: Int minute: Int @@ -6670,14 +6044,11 @@ test.cb('Test augmented schema', t => { millisecond: Int microsecond: Int nanosecond: Int - """ - Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) LocalTime value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function. - """ + "Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) LocalTime value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function." formatted: String } - """ - Generated LocalDateTime input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments). - """ + + "Generated LocalDateTime input object for Neo4j [Temporal field arguments](https://grandstack.io/docs/graphql-temporal-types-datetime/#temporal-query-arguments)." input _Neo4jLocalDateTimeInput { year: Int month: Int @@ -6688,14 +6059,11 @@ test.cb('Test augmented schema', t => { millisecond: Int microsecond: Int nanosecond: Int - """ - Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) LocalDateTime value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/localdatetime/#functions-localdatetime-create-string). - """ + "Creates a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime/#using-temporal-fields-in-mutations) LocalDateTime value using a [String format](https://neo4j.com/docs/cypher-manual/current/functions/temporal/localdatetime/#functions-localdatetime-create-string)." formatted: String } - """ - Generated LocalDateTime object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries). - """ + + "Generated LocalDateTime object type for Neo4j [Temporal fields](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries)." type _Neo4jLocalDateTime { year: Int month: Int @@ -6706,18 +6074,16 @@ test.cb('Test augmented schema', t => { millisecond: Int microsecond: Int nanosecond: Int - """ - Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) LocalDateTime value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function. - """ + "Outputs a Neo4j [Temporal](https://grandstack.io/docs/graphql-temporal-types-datetime#using-temporal-fields-in-queries) LocalDateTime value as a String type by using the [toString](https://neo4j.com/docs/cypher-manual/current/functions/string/#functions-tostring) Cypher function." formatted: String } + input _Neo4jPointDistanceFilter { point: _Neo4jPointInput! distance: Float! } - """ - Generated Point input object for Neo4j [Spatial field arguments](https://grandstack.io/docs/graphql-spatial-types/#point-query-arguments). - """ + + "Generated Point input object for Neo4j [Spatial field arguments](https://grandstack.io/docs/graphql-spatial-types/#point-query-arguments)." input _Neo4jPointInput { x: Float y: Float @@ -6728,9 +6094,8 @@ test.cb('Test augmented schema', t => { crs: String srid: Int } - """ - Generated Point object type for Neo4j [Spatial fields](https://grandstack.io/docs/graphql-spatial-types#using-point-in-queries). - """ + + "Generated Point object type for Neo4j [Spatial fields](https://grandstack.io/docs/graphql-spatial-types#using-point-in-queries)." type _Neo4jPoint { x: Float y: Float @@ -6741,13 +6106,122 @@ test.cb('Test augmented schema', t => { crs: String srid: Int } + enum _RelationDirections { IN OUT } - """ - Query type line description - """ + + """ + Directive definition + block + description + """ + directive @cypher( + statement: String + ) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION + + directive @relation( + name: String + direction: _RelationDirections + from: String + to: String + ) on FIELD_DEFINITION | OBJECT + + directive @additionalLabels(labels: [String]) on OBJECT + + directive @MutationMeta( + relationship: String + from: String + to: String + ) on FIELD_DEFINITION + + directive @neo4j_ignore on FIELD_DEFINITION + + directive @id on FIELD_DEFINITION + + directive @unique on FIELD_DEFINITION + + directive @index on FIELD_DEFINITION + + directive @search(index: String) on FIELD_DEFINITION + + directive @subscribe(to: [String]) on FIELD_DEFINITION + + directive @publish(event: String) on FIELD_DEFINITION + + directive @isAuthenticated on OBJECT | FIELD_DEFINITION + + directive @hasRole(roles: [Role]) on OBJECT | FIELD_DEFINITION + + directive @hasScope(scopes: [String]) on OBJECT | FIELD_DEFINITION + + extend type Movie @hasRole(roles: [admin]) { + currentUserId(strArg: String): String + @cypher( + statement: "RETURN $cypherParams.currentUserId AS cypherParamsUserId" + ) + "Object type extension field line description" + interfaceNoScalars( + orderBy: _InterfaceNoScalarsOrdering + first: Int + offset: Int + filter: _InterfaceNoScalarsFilter + ): [InterfaceNoScalars] + @relation(name: "INTERFACE_NO_SCALARS", direction: OUT) + extensionScalar: String @search + extensionNode( + first: Int + offset: Int + orderBy: [_GenreOrdering] + filter: _GenreFilter + ): [Genre] @relation(name: "IN_GENRE", direction: OUT) + } + + extend interface Person { + extensionScalar: String + } + + extend type Actor implements Person + + extend enum BookGenre { + Math + } + + extend type QueryA { + MovieSearch(first: Int, offset: Int): [MovieSearch] + computedMovieSearch(first: Int, offset: Int): [MovieSearch] + @cypher(statement: "MATCH (ms:MovieSearch) RETURN ms") + } + + extend type Mutation { + CustomCamera: Camera + @cypher( + statement: "CREATE (newCamera:Camera:NewCamera {id: apoc.create.uuid(), type: 'macro'}) RETURN newCamera" + ) + CustomCameras: [Camera] + @cypher( + statement: "CREATE (newCamera:Camera:NewCamera {id: apoc.create.uuid(), type: 'macro', features: ['selfie', 'zoom']}) CREATE (oldCamera:Camera:OldCamera {id: apoc.create.uuid(), type: 'floating', smell: 'rusty' }) RETURN [newCamera, oldCamera]" + ) + } + + extend input strInput { + extensionArg: String + } + + extend union MovieSearch = Actor | OldCamera + + extend type UniqueStringNode { + uniqueString: String @unique + testRelation( + first: Int + offset: Int + orderBy: [_UniqueNodeOrdering] + filter: _UniqueNodeFilter + ): [UniqueNode] @relation(name: "TEST_RELATION", direction: IN) + } + + "Query type line description" type QueryA { """ Query field @@ -6780,9 +6254,7 @@ test.cb('Test augmented schema', t => { @cypher( statement: "MATCH (g:Genre) WHERE toLower(g.name) CONTAINS toLower($substring) RETURN g" ) - """ - Object type query field line description - """ + "Object type query field line description" State( first: Int offset: Int @@ -6835,9 +6307,7 @@ test.cb('Test augmented schema', t => { orderBy: [_CasedTypeOrdering] filter: _CasedTypeFilter ): [CasedType] - """ - Interface type query field line description - """ + "Interface type query field line description" Camera( type: String first: Int @@ -6867,9 +6337,7 @@ test.cb('Test augmented schema', t => { orderBy: [_CameraOrdering] ): [Camera] @cypher(statement: "MATCH (c:Camera) RETURN c") CustomCamera: Camera @cypher(statement: "MATCH (c:Camera) RETURN c") - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Movie type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Movie type nodes." Movie( _id: String movieId: ID @@ -6896,9 +6364,7 @@ test.cb('Test augmented schema', t => { filter: _MovieFilter search: _MovieSearch ): [Movie] @hasScope(scopes: ["Movie: Read", "read:movie"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Genre type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Genre type nodes." Genre( _id: String name: String @@ -6907,9 +6373,7 @@ test.cb('Test augmented schema', t => { orderBy: [_GenreOrdering] filter: _GenreFilter ): [Genre] @hasScope(scopes: ["Genre: Read", "read:genre"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Actor type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Actor type nodes." Actor( userId: ID name: String @@ -6922,9 +6386,7 @@ test.cb('Test augmented schema', t => { orderBy: [_ActorOrdering] filter: _ActorFilter ): [Actor] @hasScope(scopes: ["Actor: Read", "read:actor"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Book type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for Book type nodes." Book( genre: BookGenre _id: String @@ -6933,9 +6395,7 @@ test.cb('Test augmented schema', t => { orderBy: [_BookOrdering] filter: _BookFilter ): [Book] @hasScope(scopes: ["Book: Read", "read:book"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for TemporalNode type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for TemporalNode type nodes." TemporalNode( datetime: _Neo4jDateTimeInput name: String @@ -6951,9 +6411,7 @@ test.cb('Test augmented schema', t => { filter: _TemporalNodeFilter ): [TemporalNode] @hasScope(scopes: ["TemporalNode: Read", "read:temporalnode"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for SpatialNode type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for SpatialNode type nodes." SpatialNode( id: ID point: _Neo4jPointInput @@ -6964,9 +6422,7 @@ test.cb('Test augmented schema', t => { filter: _SpatialNodeFilter ): [SpatialNode] @hasScope(scopes: ["SpatialNode: Read", "read:spatialnode"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for OldCamera type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for OldCamera type nodes." OldCamera( type: String id: ID @@ -6979,9 +6435,7 @@ test.cb('Test augmented schema', t => { orderBy: [_OldCameraOrdering] filter: _OldCameraFilter ): [OldCamera] @hasScope(scopes: ["OldCamera: Read", "read:oldcamera"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for NewCamera type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for NewCamera type nodes." NewCamera( type: String id: ID @@ -6994,9 +6448,7 @@ test.cb('Test augmented schema', t => { orderBy: [_NewCameraOrdering] filter: _NewCameraFilter ): [NewCamera] @hasScope(scopes: ["NewCamera: Read", "read:newcamera"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for CameraMan type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for CameraMan type nodes." CameraMan( userId: ID name: String @@ -7007,9 +6459,7 @@ test.cb('Test augmented schema', t => { orderBy: [_CameraManOrdering] filter: _CameraManFilter ): [CameraMan] @hasScope(scopes: ["CameraMan: Read", "read:cameraman"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for UniqueNode type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for UniqueNode type nodes." UniqueNode( string: String id: ID @@ -7020,9 +6470,7 @@ test.cb('Test augmented schema', t => { orderBy: [_UniqueNodeOrdering] filter: _UniqueNodeFilter ): [UniqueNode] @hasScope(scopes: ["UniqueNode: Read", "read:uniquenode"]) - """ - [Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for UniqueStringNode type nodes. - """ + "[Generated query](https://grandstack.io/docs/graphql-schema-generation-augmentation#generated-queries) for UniqueStringNode type nodes." UniqueStringNode( id: ID uniqueString: String @@ -7033,17 +6481,11 @@ test.cb('Test augmented schema', t => { filter: _UniqueStringNodeFilter ): [UniqueStringNode] @hasScope(scopes: ["UniqueStringNode: Read", "read:uniquestringnode"]) - MovieSearch(first: Int, offset: Int): [MovieSearch] - computedMovieSearch(first: Int, offset: Int): [MovieSearch] - @cypher(statement: "MATCH (ms:MovieSearch) RETURN ms") } - """ - Mutation type line description - """ + + "Mutation type line description" type Mutation { - """ - Mutation field line description - """ + "Mutation field line description" currentUserId: String @cypher(statement: "RETURN $cypherParams.currentUserId") """ @@ -7087,9 +6529,7 @@ test.cb('Test augmented schema', t => { @cypher( statement: "CREATE (n:Node { integer: $integer, datetime: datetime($datetime), point: point($point), integers: $integers, datetimes: [value IN $datetimes | datetime(value)], points: [value IN $points | point(value)] }) RETURN TRUE" ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the IN_GENRE relationship." AddMovieExtensionNode( from: _MovieInput! to: _GenreInput! @@ -7103,9 +6543,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the IN_GENRE relationship." RemoveMovieExtensionNode( from: _MovieInput! to: _GenreInput! @@ -7119,9 +6557,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the IN_GENRE relationship." MergeMovieExtensionNode( from: _MovieInput! to: _GenreInput! @@ -7130,9 +6566,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["Movie: Merge", "merge:movie", "Genre: Merge", "merge:genre"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the IN_GENRE relationship." AddMovieGenres( from: _MovieInput! to: _GenreInput! @@ -7146,9 +6580,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the IN_GENRE relationship." RemoveMovieGenres( from: _MovieInput! to: _GenreInput! @@ -7162,9 +6594,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the IN_GENRE relationship." MergeMovieGenres( from: _MovieInput! to: _GenreInput! @@ -7173,9 +6603,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["Movie: Merge", "merge:movie", "Genre: Merge", "merge:genre"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the ACTED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the ACTED_IN relationship." AddMovieActors( from: _ActorInput! to: _MovieInput! @@ -7189,9 +6617,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the ACTED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the ACTED_IN relationship." RemoveMovieActors( from: _ActorInput! to: _MovieInput! @@ -7205,9 +6631,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the ACTED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the ACTED_IN relationship." MergeMovieActors( from: _ActorInput! to: _MovieInput! @@ -7216,9 +6640,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["Actor: Merge", "merge:actor", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FILMED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FILMED_IN relationship." AddMovieFilmedIn( from: _MovieInput! to: _StateInput! @@ -7232,9 +6654,7 @@ test.cb('Test augmented schema', t => { "create:state" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FILMED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FILMED_IN relationship." RemoveMovieFilmedIn( from: _MovieInput! to: _StateInput! @@ -7248,9 +6668,7 @@ test.cb('Test augmented schema', t => { "delete:state" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FILMED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FILMED_IN relationship." MergeMovieFilmedIn( from: _MovieInput! to: _StateInput! @@ -7259,9 +6677,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["Movie: Merge", "merge:movie", "State: Merge", "merge:state"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED relationship." AddMovieRatings( from: _UserInput! to: _MovieInput! @@ -7276,9 +6692,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED relationship." RemoveMovieRatings( from: _UserInput! to: _MovieInput! @@ -7292,9 +6706,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED relationship." UpdateMovieRatings( from: _UserInput! to: _MovieInput! @@ -7309,9 +6721,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED relationship." MergeMovieRatings( from: _UserInput! to: _MovieInput! @@ -7321,9 +6731,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_NO_PROPS relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_NO_PROPS relationship." AddMovieRatingsNoProps( from: _UserInput! to: _MovieInput! @@ -7337,9 +6745,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_NO_PROPS relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_NO_PROPS relationship." RemoveMovieRatingsNoProps( from: _UserInput! to: _MovieInput! @@ -7353,9 +6759,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_NO_PROPS relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_NO_PROPS relationship." MergeMovieRatingsNoProps( from: _UserInput! to: _MovieInput! @@ -7364,9 +6768,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM relationship." AddMovieRatingsCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -7385,9 +6787,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM relationship." RemoveMovieRatingsCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -7405,9 +6805,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM relationship." UpdateMovieRatingsCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -7426,9 +6824,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM relationship." MergeMovieRatingsCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -7442,9 +6838,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_TO relationship." AddMovieRatingsCustomTo( from: _UserInput! movie: _MovieInput! @@ -7463,9 +6857,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_TO relationship." RemoveMovieRatingsCustomTo( from: _UserInput! movie: _MovieInput! @@ -7483,9 +6875,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_TO relationship." UpdateMovieRatingsCustomTo( from: _UserInput! movie: _MovieInput! @@ -7504,9 +6894,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_TO relationship." MergeMovieRatingsCustomTo( from: _UserInput! movie: _MovieInput! @@ -7520,9 +6908,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM_TO relationship." AddMovieRatingsCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -7541,9 +6927,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM_TO relationship." RemoveMovieRatingsCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -7561,9 +6945,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM_TO relationship." UpdateMovieRatingsCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -7582,9 +6964,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM_TO relationship." MergeMovieRatingsCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -7598,9 +6978,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Movie node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Movie node." CreateMovie( movieId: ID title: String @@ -7621,9 +6999,7 @@ test.cb('Test augmented schema', t => { enums: [BookGenre] extensionScalar: String ): Movie @hasScope(scopes: ["Movie: Create", "create:movie"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a Movie node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a Movie node." UpdateMovie( movieId: ID! title: String @@ -7644,14 +7020,10 @@ test.cb('Test augmented schema', t => { enums: [BookGenre] extensionScalar: String ): Movie @hasScope(scopes: ["Movie: Update", "update:movie"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Movie node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Movie node." DeleteMovie(movieId: ID!): Movie @hasScope(scopes: ["Movie: Delete", "delete:movie"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Movie node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Movie node." MergeMovie( movieId: ID! title: String @@ -7672,9 +7044,7 @@ test.cb('Test augmented schema', t => { enums: [BookGenre] extensionScalar: String ): Movie @hasScope(scopes: ["Movie: Merge", "merge:movie"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the IN_GENRE relationship." AddGenreMovies( from: _MovieInput! to: _GenreInput! @@ -7688,9 +7058,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the IN_GENRE relationship." RemoveGenreMovies( from: _MovieInput! to: _GenreInput! @@ -7704,9 +7072,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the IN_GENRE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the IN_GENRE relationship." MergeGenreMovies( from: _MovieInput! to: _GenreInput! @@ -7715,9 +7081,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["Movie: Merge", "merge:movie", "Genre: Merge", "merge:genre"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." AddGenreInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7736,9 +7100,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship." RemoveGenreInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7756,9 +7118,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship." UpdateGenreInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7777,9 +7137,7 @@ test.cb('Test augmented schema', t => { "update:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." MergeGenreInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7798,44 +7156,28 @@ test.cb('Test augmented schema', t => { "merge:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Genre node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Genre node." CreateGenre(name: String): Genre @hasScope(scopes: ["Genre: Create", "create:genre"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Genre node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Genre node." DeleteGenre(name: String!): Genre @hasScope(scopes: ["Genre: Delete", "delete:genre"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Genre node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Genre node." MergeGenre(name: String!): Genre @hasScope(scopes: ["Genre: Merge", "merge:genre"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a State node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a State node." CreateState(name: String!, id: ID): State @hasScope(scopes: ["State: Create", "create:state"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a State node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a State node." UpdateState(name: String!, id: ID): State @hasScope(scopes: ["State: Update", "update:state"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a State node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a State node." DeleteState(name: String!): State @hasScope(scopes: ["State: Delete", "delete:state"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a State node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a State node." MergeState(name: String!, id: ID): State @hasScope(scopes: ["State: Merge", "merge:state"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." AddPersonInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7854,9 +7196,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship." RemovePersonInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7874,9 +7214,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship." UpdatePersonInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7895,9 +7233,7 @@ test.cb('Test augmented schema', t => { "update:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." MergePersonInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -7916,9 +7252,7 @@ test.cb('Test augmented schema', t => { "merge:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." AddPersonReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -7937,9 +7271,7 @@ test.cb('Test augmented schema', t => { "create:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." RemovePersonReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -7957,9 +7289,7 @@ test.cb('Test augmented schema', t => { "delete:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." UpdatePersonReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -7978,9 +7308,7 @@ test.cb('Test augmented schema', t => { "update:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." MergePersonReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -7999,9 +7327,7 @@ test.cb('Test augmented schema', t => { "merge:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the ACTED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the ACTED_IN relationship." AddActorMovies( from: _ActorInput! to: _MovieInput! @@ -8015,9 +7341,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the ACTED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the ACTED_IN relationship." RemoveActorMovies( from: _ActorInput! to: _MovieInput! @@ -8031,9 +7355,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the ACTED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the ACTED_IN relationship." MergeActorMovies( from: _ActorInput! to: _MovieInput! @@ -8042,9 +7364,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["Actor: Merge", "merge:actor", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the KNOWS relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the KNOWS relationship." AddActorKnows( from: _ActorInput! to: _PersonInput! @@ -8058,9 +7378,7 @@ test.cb('Test augmented schema', t => { "create:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the KNOWS relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the KNOWS relationship." RemoveActorKnows( from: _ActorInput! to: _PersonInput! @@ -8074,9 +7392,7 @@ test.cb('Test augmented schema', t => { "delete:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the KNOWS relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the KNOWS relationship." MergeActorKnows( from: _ActorInput! to: _PersonInput! @@ -8090,9 +7406,7 @@ test.cb('Test augmented schema', t => { "merge:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." AddActorInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8111,9 +7425,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship." RemoveActorInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8131,9 +7443,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship." UpdateActorInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8152,9 +7462,7 @@ test.cb('Test augmented schema', t => { "update:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." MergeActorInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8173,9 +7481,7 @@ test.cb('Test augmented schema', t => { "merge:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." AddActorReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8194,9 +7500,7 @@ test.cb('Test augmented schema', t => { "create:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." RemoveActorReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8214,9 +7518,7 @@ test.cb('Test augmented schema', t => { "delete:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." UpdateActorReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8235,9 +7537,7 @@ test.cb('Test augmented schema', t => { "update:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." MergeActorReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8256,9 +7556,7 @@ test.cb('Test augmented schema', t => { "merge:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Actor node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Actor node." CreateActor( userId: ID name: String @@ -8266,9 +7564,7 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] strings: [String] ): Actor @hasScope(scopes: ["Actor: Create", "create:actor"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a Actor node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a Actor node." UpdateActor( userId: ID! name: String @@ -8276,14 +7572,10 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] strings: [String] ): Actor @hasScope(scopes: ["Actor: Update", "update:actor"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Actor node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Actor node." DeleteActor(userId: ID!): Actor @hasScope(scopes: ["Actor: Delete", "delete:actor"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Actor node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Actor node." MergeActor( userId: ID! name: String @@ -8291,9 +7583,7 @@ test.cb('Test augmented schema', t => { datetimes: [_Neo4jDateTimeInput] strings: [String] ): Actor @hasScope(scopes: ["Actor: Merge", "merge:actor"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." AddUserInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8312,9 +7602,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship." RemoveUserInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8332,9 +7620,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship." UpdateUserInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8353,9 +7639,7 @@ test.cb('Test augmented schema', t => { "update:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." MergeUserInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -8374,9 +7658,7 @@ test.cb('Test augmented schema', t => { "merge:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." AddUserReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8395,9 +7677,7 @@ test.cb('Test augmented schema', t => { "create:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." RemoveUserReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8415,9 +7695,7 @@ test.cb('Test augmented schema', t => { "delete:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." UpdateUserReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8436,9 +7714,7 @@ test.cb('Test augmented schema', t => { "update:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." MergeUserReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -8457,9 +7733,7 @@ test.cb('Test augmented schema', t => { "merge:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED relationship." AddUserRated( from: _UserInput! to: _MovieInput! @@ -8474,9 +7748,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED relationship." RemoveUserRated( from: _UserInput! to: _MovieInput! @@ -8490,9 +7762,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED relationship." UpdateUserRated( from: _UserInput! to: _MovieInput! @@ -8507,9 +7777,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED relationship." MergeUserRated( from: _UserInput! to: _MovieInput! @@ -8519,9 +7787,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM relationship." AddUserRatedCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -8540,9 +7806,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM relationship." RemoveUserRatedCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -8560,9 +7824,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM relationship." UpdateUserRatedCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -8581,9 +7843,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM relationship." MergeUserRatedCustomFrom( ratedBy: _UserInput! to: _MovieInput! @@ -8597,9 +7857,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_TO relationship." AddUserRatedCustomTo( from: _UserInput! movie: _MovieInput! @@ -8618,9 +7876,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_TO relationship." RemoveUserRatedCustomTo( from: _UserInput! movie: _MovieInput! @@ -8638,9 +7894,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_TO relationship." UpdateUserRatedCustomTo( from: _UserInput! movie: _MovieInput! @@ -8659,9 +7913,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_TO relationship." MergeUserRatedCustomTo( from: _UserInput! movie: _MovieInput! @@ -8675,9 +7927,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the RATED_CUSTOM_FROM_TO relationship." AddUserRatedCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -8696,9 +7946,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the RATED_CUSTOM_FROM_TO relationship." RemoveUserRatedCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -8716,9 +7964,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the RATED_CUSTOM_FROM_TO relationship." UpdateUserRatedCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -8737,9 +7983,7 @@ test.cb('Test augmented schema', t => { "update:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the RATED_CUSTOM_FROM_TO relationship." MergeUserRatedCustomFromTo( ratedBy: _UserInput! movie: _MovieInput! @@ -8753,9 +7997,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF relationship." AddUserFriends( from: _UserInput! to: _UserInput! @@ -8765,9 +8007,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Create", "create:user", "User: Create", "create:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF relationship." RemoveUserFriends( from: _UserInput! to: _UserInput! @@ -8776,9 +8016,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Delete", "delete:user", "User: Delete", "delete:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF relationship." UpdateUserFriends( from: _UserInput! to: _UserInput! @@ -8788,9 +8026,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Update", "update:user", "User: Update", "update:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF relationship." MergeUserFriends( from: _UserInput! to: _UserInput! @@ -8800,9 +8036,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "User: Merge", "merge:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF_CUSTOM_FROM relationship." AddUserFriendsCustomFrom( friendedBy: _UserInput! to: _UserInput! @@ -8816,9 +8050,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Create", "create:user", "User: Create", "create:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF_CUSTOM_FROM relationship." RemoveUserFriendsCustomFrom( friendedBy: _UserInput! to: _UserInput! @@ -8830,10 +8062,8 @@ test.cb('Test augmented schema', t => { ) @hasScope( scopes: ["User: Delete", "delete:user", "User: Delete", "delete:user"] - ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF_CUSTOM_FROM relationship. - """ + ) + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF_CUSTOM_FROM relationship." UpdateUserFriendsCustomFrom( friendedBy: _UserInput! to: _UserInput! @@ -8847,9 +8077,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Update", "update:user", "User: Update", "update:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF_CUSTOM_FROM relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF_CUSTOM_FROM relationship." MergeUserFriendsCustomFrom( friendedBy: _UserInput! to: _UserInput! @@ -8863,9 +8091,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "User: Merge", "merge:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF_CUSTOM_TO relationship." AddUserFriendsCustomTo( from: _UserInput! friended: _UserInput! @@ -8879,9 +8105,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Create", "create:user", "User: Create", "create:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF_CUSTOM_TO relationship." RemoveUserFriendsCustomTo( from: _UserInput! friended: _UserInput! @@ -8894,9 +8118,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Delete", "delete:user", "User: Delete", "delete:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF_CUSTOM_TO relationship." UpdateUserFriendsCustomTo( from: _UserInput! friended: _UserInput! @@ -8910,9 +8132,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Update", "update:user", "User: Update", "update:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF_CUSTOM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF_CUSTOM_TO relationship." MergeUserFriendsCustomTo( from: _UserInput! friended: _UserInput! @@ -8926,9 +8146,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "User: Merge", "merge:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FRIEND_OF_CUSTOM_FROM_TO relationship." AddUserFriendsCustomFromTo( friendedBy: _UserInput! friended: _UserInput! @@ -8942,9 +8160,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Create", "create:user", "User: Create", "create:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FRIEND_OF_CUSTOM_FROM_TO relationship." RemoveUserFriendsCustomFromTo( friendedBy: _UserInput! friended: _UserInput! @@ -8957,9 +8173,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Delete", "delete:user", "User: Delete", "delete:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the FRIEND_OF_CUSTOM_FROM_TO relationship." UpdateUserFriendsCustomFromTo( friendedBy: _UserInput! friended: _UserInput! @@ -8973,9 +8187,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Update", "update:user", "User: Update", "update:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF_CUSTOM_FROM_TO relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FRIEND_OF_CUSTOM_FROM_TO relationship." MergeUserFriendsCustomFromTo( friendedBy: _UserInput! friended: _UserInput! @@ -8989,9 +8201,7 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "User: Merge", "merge:user"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FAVORITED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FAVORITED relationship." AddUserFavorites( from: _UserInput! to: _MovieInput! @@ -9005,9 +8215,7 @@ test.cb('Test augmented schema', t => { "create:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FAVORITED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FAVORITED relationship." RemoveUserFavorites( from: _UserInput! to: _MovieInput! @@ -9021,9 +8229,7 @@ test.cb('Test augmented schema', t => { "delete:movie" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FAVORITED relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FAVORITED relationship." MergeUserFavorites( from: _UserInput! to: _MovieInput! @@ -9032,44 +8238,28 @@ test.cb('Test augmented schema', t => { @hasScope( scopes: ["User: Merge", "merge:user", "Movie: Merge", "merge:movie"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a User node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a User node." CreateUser(userId: ID, name: String, extensionScalar: String): User @hasScope(scopes: ["User: Create", "create:user"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a User node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a User node." UpdateUser(userId: ID!, name: String, extensionScalar: String): User @hasScope(scopes: ["User: Update", "update:user"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a User node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a User node." DeleteUser(userId: ID!): User @hasScope(scopes: ["User: Delete", "delete:user"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a User node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a User node." MergeUser(userId: ID!, name: String, extensionScalar: String): User @hasScope(scopes: ["User: Merge", "merge:user"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Book node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a Book node." CreateBook(genre: BookGenre): Book @hasScope(scopes: ["Book: Create", "create:book"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Book node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a Book node." DeleteBook(genre: BookGenre!): Book @hasScope(scopes: ["Book: Delete", "delete:book"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Book node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a Book node." MergeBook(genre: BookGenre!): Book @hasScope(scopes: ["Book: Merge", "merge:book"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a NodeTypeMutationTest node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a NodeTypeMutationTest node." CreateNodeTypeMutationTest( NodeTypeMutationTest: BookGenre ): NodeTypeMutationTest @@ -9079,9 +8269,7 @@ test.cb('Test augmented schema', t => { "create:nodetypemutationtest" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a NodeTypeMutationTest node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a NodeTypeMutationTest node." DeleteNodeTypeMutationTest( NodeTypeMutationTest: BookGenre! ): NodeTypeMutationTest @@ -9091,33 +8279,23 @@ test.cb('Test augmented schema', t => { "delete:nodetypemutationtest" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a NodeTypeMutationTest node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a NodeTypeMutationTest node." MergeNodeTypeMutationTest( NodeTypeMutationTest: BookGenre! ): NodeTypeMutationTest @hasScope( scopes: ["NodeTypeMutationTest: Merge", "merge:nodetypemutationtest"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a currentUserId node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a currentUserId node." CreatecurrentUserId(userId: String): currentUserId @hasScope(scopes: ["currentUserId: Create", "create:currentuserid"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a currentUserId node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a currentUserId node." DeletecurrentUserId(userId: String!): currentUserId @hasScope(scopes: ["currentUserId: Delete", "delete:currentuserid"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a currentUserId node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a currentUserId node." MergecurrentUserId(userId: String!): currentUserId @hasScope(scopes: ["currentUserId: Merge", "merge:currentuserid"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the TEMPORAL relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the TEMPORAL relationship." AddTemporalNodeTemporalNodes( from: _TemporalNodeInput! to: _TemporalNodeInput! @@ -9135,9 +8313,7 @@ test.cb('Test augmented schema', t => { "create:temporalnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the TEMPORAL relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the TEMPORAL relationship." RemoveTemporalNodeTemporalNodes( from: _TemporalNodeInput! to: _TemporalNodeInput! @@ -9155,9 +8331,7 @@ test.cb('Test augmented schema', t => { "delete:temporalnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the TEMPORAL relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the TEMPORAL relationship." MergeTemporalNodeTemporalNodes( from: _TemporalNodeInput! to: _TemporalNodeInput! @@ -9175,9 +8349,7 @@ test.cb('Test augmented schema', t => { "merge:temporalnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a TemporalNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a TemporalNode node." CreateTemporalNode( datetime: _Neo4jDateTimeInput name: String @@ -9188,9 +8360,7 @@ test.cb('Test augmented schema', t => { localdatetimes: [_Neo4jLocalDateTimeInput] ): TemporalNode @hasScope(scopes: ["TemporalNode: Create", "create:temporalnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a TemporalNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a TemporalNode node." UpdateTemporalNode( datetime: _Neo4jDateTimeInput name: String! @@ -9201,14 +8371,10 @@ test.cb('Test augmented schema', t => { localdatetimes: [_Neo4jLocalDateTimeInput] ): TemporalNode @hasScope(scopes: ["TemporalNode: Update", "update:temporalnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a TemporalNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a TemporalNode node." DeleteTemporalNode(name: String!): TemporalNode @hasScope(scopes: ["TemporalNode: Delete", "delete:temporalnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a TemporalNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a TemporalNode node." MergeTemporalNode( datetime: _Neo4jDateTimeInput name: String! @@ -9219,9 +8385,7 @@ test.cb('Test augmented schema', t => { localdatetimes: [_Neo4jLocalDateTimeInput] ): TemporalNode @hasScope(scopes: ["TemporalNode: Merge", "merge:temporalnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the SPATIAL relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the SPATIAL relationship." AddSpatialNodeSpatialNodes( from: _SpatialNodeInput! to: _SpatialNodeInput! @@ -9239,9 +8403,7 @@ test.cb('Test augmented schema', t => { "create:spatialnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the SPATIAL relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the SPATIAL relationship." RemoveSpatialNodeSpatialNodes( from: _SpatialNodeInput! to: _SpatialNodeInput! @@ -9259,9 +8421,7 @@ test.cb('Test augmented schema', t => { "delete:spatialnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the SPATIAL relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the SPATIAL relationship." MergeSpatialNodeSpatialNodes( from: _SpatialNodeInput! to: _SpatialNodeInput! @@ -9279,29 +8439,19 @@ test.cb('Test augmented schema', t => { "merge:spatialnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a SpatialNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a SpatialNode node." CreateSpatialNode(id: ID, point: _Neo4jPointInput): SpatialNode @hasScope(scopes: ["SpatialNode: Create", "create:spatialnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a SpatialNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a SpatialNode node." UpdateSpatialNode(id: ID!, point: _Neo4jPointInput): SpatialNode @hasScope(scopes: ["SpatialNode: Update", "update:spatialnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a SpatialNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a SpatialNode node." DeleteSpatialNode(id: ID!): SpatialNode @hasScope(scopes: ["SpatialNode: Delete", "delete:spatialnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a SpatialNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a SpatialNode node." MergeSpatialNode(id: ID!, point: _Neo4jPointInput): SpatialNode @hasScope(scopes: ["SpatialNode: Merge", "merge:spatialnode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FILMED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the FILMED_IN relationship." AddCasedTypeState( from: _CasedTypeInput! to: _StateInput! @@ -9315,9 +8465,7 @@ test.cb('Test augmented schema', t => { "create:state" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FILMED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the FILMED_IN relationship." RemoveCasedTypeState( from: _CasedTypeInput! to: _StateInput! @@ -9331,9 +8479,7 @@ test.cb('Test augmented schema', t => { "delete:state" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FILMED_IN relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the FILMED_IN relationship." MergeCasedTypeState( from: _CasedTypeInput! to: _StateInput! @@ -9347,24 +8493,16 @@ test.cb('Test augmented schema', t => { "merge:state" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a CasedType node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a CasedType node." CreateCasedType(name: String): CasedType @hasScope(scopes: ["CasedType: Create", "create:casedtype"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a CasedType node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a CasedType node." DeleteCasedType(name: String!): CasedType @hasScope(scopes: ["CasedType: Delete", "delete:casedtype"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a CasedType node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a CasedType node." MergeCasedType(name: String!): CasedType @hasScope(scopes: ["CasedType: Merge", "merge:casedtype"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship." AddCameraOperators( from: _PersonInput! to: _CameraInput! @@ -9378,9 +8516,7 @@ test.cb('Test augmented schema', t => { "create:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship." RemoveCameraOperators( from: _PersonInput! to: _CameraInput! @@ -9394,9 +8530,7 @@ test.cb('Test augmented schema', t => { "delete:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship." MergeCameraOperators( from: _PersonInput! to: _CameraInput! @@ -9410,9 +8544,7 @@ test.cb('Test augmented schema', t => { "merge:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." AddCameraReflexiveInterfaceRelationship( from: _CameraInput! to: _CameraInput! @@ -9430,9 +8562,7 @@ test.cb('Test augmented schema', t => { "create:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." RemoveCameraReflexiveInterfaceRelationship( from: _CameraInput! to: _CameraInput! @@ -9450,9 +8580,7 @@ test.cb('Test augmented schema', t => { "delete:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." MergeCameraReflexiveInterfaceRelationship( from: _CameraInput! to: _CameraInput! @@ -9470,9 +8598,7 @@ test.cb('Test augmented schema', t => { "merge:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship." AddOldCameraOperators( from: _PersonInput! to: _OldCameraInput! @@ -9486,9 +8612,7 @@ test.cb('Test augmented schema', t => { "create:oldcamera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship." RemoveOldCameraOperators( from: _PersonInput! to: _OldCameraInput! @@ -9502,9 +8626,7 @@ test.cb('Test augmented schema', t => { "delete:oldcamera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship." MergeOldCameraOperators( from: _PersonInput! to: _OldCameraInput! @@ -9518,9 +8640,7 @@ test.cb('Test augmented schema', t => { "merge:oldcamera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." AddOldCameraReflexiveInterfaceRelationship( from: _OldCameraInput! to: _CameraInput! @@ -9538,9 +8658,7 @@ test.cb('Test augmented schema', t => { "create:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." RemoveOldCameraReflexiveInterfaceRelationship( from: _OldCameraInput! to: _CameraInput! @@ -9558,9 +8676,7 @@ test.cb('Test augmented schema', t => { "delete:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." MergeOldCameraReflexiveInterfaceRelationship( from: _OldCameraInput! to: _CameraInput! @@ -9578,9 +8694,7 @@ test.cb('Test augmented schema', t => { "merge:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a OldCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a OldCamera node." CreateOldCamera( type: String id: ID @@ -9588,9 +8702,7 @@ test.cb('Test augmented schema', t => { weight: Int smell: String ): OldCamera @hasScope(scopes: ["OldCamera: Create", "create:oldcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a OldCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a OldCamera node." UpdateOldCamera( type: String id: ID! @@ -9598,14 +8710,10 @@ test.cb('Test augmented schema', t => { weight: Int smell: String ): OldCamera @hasScope(scopes: ["OldCamera: Update", "update:oldcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a OldCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a OldCamera node." DeleteOldCamera(id: ID!): OldCamera @hasScope(scopes: ["OldCamera: Delete", "delete:oldcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a OldCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a OldCamera node." MergeOldCamera( type: String id: ID! @@ -9613,9 +8721,7 @@ test.cb('Test augmented schema', t => { weight: Int smell: String ): OldCamera @hasScope(scopes: ["OldCamera: Merge", "merge:oldcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship." AddNewCameraOperators( from: _PersonInput! to: _NewCameraInput! @@ -9629,9 +8735,7 @@ test.cb('Test augmented schema', t => { "create:newcamera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship." RemoveNewCameraOperators( from: _PersonInput! to: _NewCameraInput! @@ -9645,9 +8749,7 @@ test.cb('Test augmented schema', t => { "delete:newcamera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship." MergeNewCameraOperators( from: _PersonInput! to: _NewCameraInput! @@ -9661,9 +8763,7 @@ test.cb('Test augmented schema', t => { "merge:newcamera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." AddNewCameraReflexiveInterfaceRelationship( from: _NewCameraInput! to: _CameraInput! @@ -9681,9 +8781,7 @@ test.cb('Test augmented schema', t => { "create:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." RemoveNewCameraReflexiveInterfaceRelationship( from: _NewCameraInput! to: _CameraInput! @@ -9701,9 +8799,7 @@ test.cb('Test augmented schema', t => { "delete:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACE_RELATIONSHIP relationship." MergeNewCameraReflexiveInterfaceRelationship( from: _NewCameraInput! to: _CameraInput! @@ -9721,9 +8817,7 @@ test.cb('Test augmented schema', t => { "merge:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a NewCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a NewCamera node." CreateNewCamera( type: String id: ID @@ -9731,9 +8825,7 @@ test.cb('Test augmented schema', t => { weight: Int features: [String] ): NewCamera @hasScope(scopes: ["NewCamera: Create", "create:newcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a NewCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a NewCamera node." UpdateNewCamera( type: String id: ID! @@ -9741,14 +8833,10 @@ test.cb('Test augmented schema', t => { weight: Int features: [String] ): NewCamera @hasScope(scopes: ["NewCamera: Update", "update:newcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a NewCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a NewCamera node." DeleteNewCamera(id: ID!): NewCamera @hasScope(scopes: ["NewCamera: Delete", "delete:newcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a NewCamera node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a NewCamera node." MergeNewCamera( type: String id: ID! @@ -9756,9 +8844,7 @@ test.cb('Test augmented schema', t => { weight: Int features: [String] ): NewCamera @hasScope(scopes: ["NewCamera: Merge", "merge:newcamera"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the favoriteCamera relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the favoriteCamera relationship." AddCameraManFavoriteCamera( from: _CameraManInput! to: _CameraInput! @@ -9776,9 +8862,7 @@ test.cb('Test augmented schema', t => { "create:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the favoriteCamera relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the favoriteCamera relationship." RemoveCameraManFavoriteCamera( from: _CameraManInput! to: _CameraInput! @@ -9796,9 +8880,7 @@ test.cb('Test augmented schema', t => { "delete:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the favoriteCamera relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the favoriteCamera relationship." MergeCameraManFavoriteCamera( from: _CameraManInput! to: _CameraInput! @@ -9816,9 +8898,7 @@ test.cb('Test augmented schema', t => { "merge:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameras relationship." AddCameraManCameras( from: _CameraManInput! to: _CameraInput! @@ -9832,9 +8912,7 @@ test.cb('Test augmented schema', t => { "create:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameras relationship." RemoveCameraManCameras( from: _CameraManInput! to: _CameraInput! @@ -9848,9 +8926,7 @@ test.cb('Test augmented schema', t => { "delete:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameras relationship." MergeCameraManCameras( from: _CameraManInput! to: _CameraInput! @@ -9864,9 +8940,7 @@ test.cb('Test augmented schema', t => { "merge:camera" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameraBuddy relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the cameraBuddy relationship." AddCameraManCameraBuddy( from: _CameraManInput! to: _PersonInput! @@ -9884,9 +8958,7 @@ test.cb('Test augmented schema', t => { "create:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameraBuddy relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the cameraBuddy relationship." RemoveCameraManCameraBuddy( from: _CameraManInput! to: _PersonInput! @@ -9904,9 +8976,7 @@ test.cb('Test augmented schema', t => { "delete:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameraBuddy relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the cameraBuddy relationship." MergeCameraManCameraBuddy( from: _CameraManInput! to: _PersonInput! @@ -9924,9 +8994,7 @@ test.cb('Test augmented schema', t => { "merge:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." AddCameraManInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -9945,9 +9013,7 @@ test.cb('Test augmented schema', t => { "create:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the INTERFACED_RELATIONSHIP_TYPE relationship." RemoveCameraManInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -9965,9 +9031,7 @@ test.cb('Test augmented schema', t => { "delete:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the INTERFACED_RELATIONSHIP_TYPE relationship." UpdateCameraManInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -9986,9 +9050,7 @@ test.cb('Test augmented schema', t => { "update:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the INTERFACED_RELATIONSHIP_TYPE relationship." MergeCameraManInterfacedRelationshipType( from: _PersonInput! to: _GenreInput! @@ -10007,9 +9069,7 @@ test.cb('Test augmented schema', t => { "merge:genre" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." AddCameraManReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -10028,9 +9088,7 @@ test.cb('Test augmented schema', t => { "create:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." RemoveCameraManReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -10048,9 +9106,7 @@ test.cb('Test augmented schema', t => { "delete:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##update-relationship) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." UpdateCameraManReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -10069,9 +9125,7 @@ test.cb('Test augmented schema', t => { "update:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the REFLEXIVE_INTERFACED_RELATIONSHIP_TYPE relationship." MergeCameraManReflexiveInterfacedRelationshipType( from: _PersonInput! to: _PersonInput! @@ -10090,38 +9144,28 @@ test.cb('Test augmented schema', t => { "merge:person" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a CameraMan node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a CameraMan node." CreateCameraMan( userId: ID name: String extensionScalar: String ): CameraMan @hasScope(scopes: ["CameraMan: Create", "create:cameraman"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a CameraMan node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a CameraMan node." UpdateCameraMan( userId: ID! name: String extensionScalar: String ): CameraMan @hasScope(scopes: ["CameraMan: Update", "update:cameraman"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a CameraMan node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a CameraMan node." DeleteCameraMan(userId: ID!): CameraMan @hasScope(scopes: ["CameraMan: Delete", "delete:cameraman"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a CameraMan node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a CameraMan node." MergeCameraMan( userId: ID! name: String extensionScalar: String ): CameraMan @hasScope(scopes: ["CameraMan: Merge", "merge:cameraman"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the TEST_RELATION relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the TEST_RELATION relationship." AddUniqueNodeTestRelation( from: _UniqueNodeInput! to: _UniqueStringNodeInput! @@ -10139,9 +9183,7 @@ test.cb('Test augmented schema', t => { "create:uniquestringnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the TEST_RELATION relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the TEST_RELATION relationship." RemoveUniqueNodeTestRelation( from: _UniqueNodeInput! to: _UniqueStringNodeInput! @@ -10159,9 +9201,7 @@ test.cb('Test augmented schema', t => { "delete:uniquestringnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the TEST_RELATION relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the TEST_RELATION relationship." MergeUniqueNodeTestRelation( from: _UniqueNodeInput! to: _UniqueStringNodeInput! @@ -10179,29 +9219,19 @@ test.cb('Test augmented schema', t => { "merge:uniquestringnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a UniqueNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a UniqueNode node." CreateUniqueNode(string: String, id: ID, anotherId: ID): UniqueNode @hasScope(scopes: ["UniqueNode: Create", "create:uniquenode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a UniqueNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a UniqueNode node." UpdateUniqueNode(string: String, id: ID!, anotherId: ID): UniqueNode @hasScope(scopes: ["UniqueNode: Update", "update:uniquenode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a UniqueNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a UniqueNode node." DeleteUniqueNode(id: ID!): UniqueNode @hasScope(scopes: ["UniqueNode: Delete", "delete:uniquenode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a UniqueNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a UniqueNode node." MergeUniqueNode(string: String, id: ID!, anotherId: ID): UniqueNode @hasScope(scopes: ["UniqueNode: Merge", "merge:uniquenode"]) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the TEST_RELATION relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-relationships) the TEST_RELATION relationship." AddUniqueStringNodeTestRelation( from: _UniqueNodeInput! to: _UniqueStringNodeInput! @@ -10219,9 +9249,7 @@ test.cb('Test augmented schema', t => { "create:uniquestringnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the TEST_RELATION relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##add--remove-relationship) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-relationships-only) the TEST_RELATION relationship." RemoveUniqueStringNodeTestRelation( from: _UniqueNodeInput! to: _UniqueStringNodeInput! @@ -10239,9 +9267,7 @@ test.cb('Test augmented schema', t => { "delete:uniquestringnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the TEST_RELATION relationship. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/##merge-relationship) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-relationships) the TEST_RELATION relationship." MergeUniqueStringNodeTestRelation( from: _UniqueNodeInput! to: _UniqueStringNodeInput! @@ -10259,78 +9285,40 @@ test.cb('Test augmented schema', t => { "merge:uniquestringnode" ] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a UniqueStringNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#create) for [creating](https://neo4j.com/docs/cypher-manual/4.1/clauses/create/#create-nodes) a UniqueStringNode node." CreateUniqueStringNode(id: ID!, uniqueString: String): UniqueStringNode @hasScope( scopes: ["UniqueStringNode: Create", "create:uniquestringnode"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a UniqueStringNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#update) for [updating](https://neo4j.com/docs/cypher-manual/4.1/clauses/set/#set-update-a-property) a UniqueStringNode node." UpdateUniqueStringNode(id: ID, uniqueString: String!): UniqueStringNode @hasScope( scopes: ["UniqueStringNode: Update", "update:uniquestringnode"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a UniqueStringNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#delete) for [deleting](https://neo4j.com/docs/cypher-manual/4.1/clauses/delete/#delete-delete-single-node) a UniqueStringNode node." DeleteUniqueStringNode(uniqueString: String!): UniqueStringNode @hasScope( scopes: ["UniqueStringNode: Delete", "delete:uniquestringnode"] ) - """ - [Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a UniqueStringNode node. - """ + "[Generated mutation](https://grandstack.io/docs/graphql-schema-generation-augmentation/#merge) for [merging](https://neo4j.com/docs/cypher-manual/4.1/clauses/merge/#query-merge-node-derived) a UniqueStringNode node." MergeUniqueStringNode(id: ID, uniqueString: String!): UniqueStringNode @hasScope(scopes: ["UniqueStringNode: Merge", "merge:uniquestringnode"]) - CustomCamera: Camera - @cypher( - statement: "CREATE (newCamera:Camera:NewCamera {id: apoc.create.uuid(), type: 'macro'}) RETURN newCamera" - ) - CustomCameras: [Camera] - @cypher( - statement: "CREATE (newCamera:Camera:NewCamera {id: apoc.create.uuid(), type: 'macro', features: ['selfie', 'zoom']}) CREATE (oldCamera:Camera:OldCamera {id: apoc.create.uuid(), type: 'floating', smell: 'rusty' }) RETURN [newCamera, oldCamera]" - ) } + type SubscriptionC { testSubscribe: Boolean } - """ - Directive definition - block - description - """ - directive @cypher( - statement: String - ) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION - directive @relation( - name: String - direction: _RelationDirections - from: String - to: String - ) on FIELD_DEFINITION | OBJECT - directive @additionalLabels(labels: [String]) on OBJECT - directive @MutationMeta( - relationship: String - from: String - to: String - ) on FIELD_DEFINITION - directive @neo4j_ignore on FIELD_DEFINITION - directive @id on FIELD_DEFINITION - directive @unique on FIELD_DEFINITION - directive @index on FIELD_DEFINITION - directive @search(index: String) on FIELD_DEFINITION - directive @isAuthenticated on OBJECT | FIELD_DEFINITION - directive @hasRole(roles: [Role]) on OBJECT | FIELD_DEFINITION - directive @hasScope(scopes: [String]) on OBJECT | FIELD_DEFINITION + + schema { + query: QueryA + subscription: SubscriptionC + mutation: Mutation + } `; const expectedSchema = buildSchema(expectedTypeDefs); const differences = diff(sourceSchema, expectedSchema); if (differences.length) { - console.log('differences: ', differences); t.fail(); } else { t.pass(); diff --git a/test/unit/experimental/augmentSchemaTest.test.js b/test/unit/experimental/augmentSchemaTest.test.js index 20f3dfee..1f724475 100644 --- a/test/unit/experimental/augmentSchemaTest.test.js +++ b/test/unit/experimental/augmentSchemaTest.test.js @@ -741,6 +741,10 @@ test.cb('Test augmented schema', t => { directive @search(index: String) on FIELD_DEFINITION + directive @subscribe(to: [String]) on FIELD_DEFINITION + + directive @publish(event: String) on FIELD_DEFINITION + directive @isAuthenticated on OBJECT | FIELD_DEFINITION directive @hasRole(roles: [Role]) on OBJECT | FIELD_DEFINITION @@ -986,11 +990,6 @@ test.cb('Test augmented schema', t => { MergeMovie(where: _MovieKeys!, data: _MovieCreate!): Movie @hasScope(scopes: ["Movie: Merge", "merge:movie"]) } - - schema { - query: Query - mutation: Mutation - } `; const expectedSchema = buildSchema(expectedTypeDefs); diff --git a/test/unit/experimental/custom/cypherTest.test.js b/test/unit/experimental/custom/cypherTest.test.js index 325473b5..d42f2e27 100644 --- a/test/unit/experimental/custom/cypherTest.test.js +++ b/test/unit/experimental/custom/cypherTest.test.js @@ -3037,7 +3037,7 @@ test('Custom batch @cypher mutation using single UNWIND clause on list argument } } }`, - expectedCypherQuery = `CALL apoc.cypher.doIt("UnwiNd $data aS CustomData MERGE (custom: Custom { id: CustomData.id }) + expectedCypherQuery = `CALL apoc.cypher.doIt("UnwiNd $data aS CustomData MERGE (custom: Custom { id: CustomData.id }) WITH * CALL { @@ -3331,7 +3331,7 @@ test('Custom batch @cypher mutation without RETURN or WITH clause, using nested } } }`, - expectedCypherQuery = `CALL apoc.cypher.doIt("UnwiNd $data aS CustomData MERGE (custom: Custom { id: CustomData.id }) + expectedCypherQuery = `CALL apoc.cypher.doIt("UnwiNd $data aS CustomData MERGE (custom: Custom { id: CustomData.id }) WITH * CALL { @@ -3563,7 +3563,7 @@ test('Custom @cypher mutation with RETURN clause and no nested @cypher input (ex } }`, expectedCypherQuery = `CALL apoc.cypher.doIt("UnwiNd $data aS - CustomData + CustomData MERGE (custom: Custom { id: CustomData.id }) @@ -3763,6 +3763,504 @@ RETURN xNode", {xNodes:$xNodes, first:$first, offset:$offset, cypherParams: $cyp ]); }); +test('Custom @cypher mutation with object and list type nested @cypher (experimental api)', t => { + const graphQLQuery = `mutation { + Custom( + id: "a" + sideEffects: { + create: [ + { + id: "b", + nested: { + create: [{ id: "c" }, { id: "d" }] } + } + { + id: "e", + nested: { + create: [{ id: "f" }, { id: "g" }] } + } + ] + } + computed: { + merge: [ + { id: "h", nested: { create: [{ id: "i" }, { id: "j" }] } } + ] + computed: { + multiply: { + value: 5 + } + } + } + ) { + id + computed + nested { + id + nested { + id + } + } + } + } +`, + expectedCypherQuery = `CALL apoc.cypher.doIt("MERGE (custom: Custom { id: $id }) +WITH * + +CALL { + WITH * + UNWIND $sideEffects.create AS CustomCreate + MERGE (subCustom: Custom { + id: CustomCreate.id +}) +MERGE (custom)-[:RELATED]->(subCustom) + +WITH CustomCreate AS _CustomCreate, subCustom AS custom +CALL { + WITH * + UNWIND _CustomCreate.nested.create AS CustomCreate + MERGE (subCustom: Custom { + id: CustomCreate.id +}) +MERGE (custom)-[:RELATED]->(subCustom) + +WITH CustomCreate AS _CustomCreate, subCustom AS custom + RETURN COUNT(*) AS _nested_create_ +} + RETURN COUNT(*) AS _sideEffects_create_ +} + +CALL { + WITH * + UNWIND $computed.computed.multiply AS CustomComputedInput + SET custom.computed = CustomComputedInput.value * 10 + RETURN COUNT(*) AS _computed_multiply_ +} + +CALL { + WITH * + UNWIND $computed.merge AS CustomCreate + MERGE (subCustom: Custom { + id: CustomCreate.id +}) +MERGE (custom)-[:RELATED]->(subCustom) + +WITH CustomCreate AS _CustomCreate, subCustom AS custom +CALL { + WITH * + UNWIND _CustomCreate.nested.create AS CustomCreate + MERGE (subCustom: Custom { + id: CustomCreate.id +}) +MERGE (custom)-[:RELATED]->(subCustom) + +WITH CustomCreate AS _CustomCreate, subCustom AS custom + RETURN COUNT(*) AS _nested_create_ +} + RETURN COUNT(*) AS _computed_merge_ +} +RETURN custom", {id:$id, sideEffects:$sideEffects, computed:$computed, first:$first, offset:$offset, cypherParams: $cypherParams}) YIELD value + WITH apoc.map.values(value, [keys(value)[0]])[0] AS \`custom\` + RETURN \`custom\` { .id , .computed ,nested: [(\`custom\`)-[:\`RELATED\`]->(\`custom_nested\`:\`Custom\`) | \`custom_nested\` { .id ,nested: [(\`custom_nested\`)-[:\`RELATED\`]->(\`custom_nested_nested\`:\`Custom\`) | \`custom_nested_nested\` { .id }] }] } AS \`custom\``, + expectedParams = { + id: 'a', + sideEffects: { + create: [ + { + id: 'b', + nested: { + create: [ + { + id: 'c' + }, + { + id: 'd' + } + ] + } + }, + { + id: 'e', + nested: { + create: [ + { + id: 'f' + }, + { + id: 'g' + } + ] + } + } + ] + }, + computed: { + computed: { + multiply: { + value: { + low: 5, + high: 0 + } + } + }, + merge: [ + { + id: 'h', + nested: { + create: [ + { + id: 'i' + }, + { + id: 'j' + } + ] + } + } + ] + }, + first: -1, + offset: 0, + cypherParams: CYPHER_PARAMS + }; + t.plan(4); + return Promise.all([ + cypherTestRunner(t, graphQLQuery, {}, expectedCypherQuery, expectedParams), + augmentedSchemaCypherTestRunner( + t, + graphQLQuery, + {}, + expectedCypherQuery, + expectedParams + ) + ]); +}); + +test('Custom batch @cypher mutation with list type @cypher field deeply nested in root list argument (experimental api)', t => { + const graphQLQuery = `mutation MergeLayeredNetwork { + MergeLayeredNetwork( + xNodes: [ + { + id: "a" + xy: { + merge: [ + { + id: "d" + z: [{ id: "f" }, { id: "g" }, { id: "h" }, { id: "i" }] + } + { + id: "k", + z: [ + { + id: "l" + } + ] + } + ] + } + } + ] + ) { + id + xy { + id + yz { + id + } + } + } + }`, + expectedCypherQuery = `CALL apoc.cypher.doIt("UNWIND $xNodes AS XNodeInput MERGE (xNode: XNode { id: XNodeInput.id }) +WITH * + +CALL { + WITH * + UNWIND XNodeInput.xy.merge AS YNodeInput + MERGE (yNode: YNode { + id: YNodeInput.id +}) +MERGE (xNode)-[:XY]->(yNode) + +WITH YNodeInput AS _YNodeInput, yNode +CALL { + WITH * + UNWIND _YNodeInput.z AS ZNodeInput + MERGE (zNode: ZNode { + id: ZNodeInput.id +}) +MERGE (yNode)-[:YZ]->(zNode) + RETURN COUNT(*) AS _merge_z_ +} + RETURN COUNT(*) AS _xy_merge_ +} +RETURN xNode", {xNodes:$xNodes, first:$first, offset:$offset, cypherParams: $cypherParams}) YIELD value + WITH apoc.map.values(value, [keys(value)[0]])[0] AS \`xNode\` + RETURN \`xNode\` { .id ,xy: [(\`xNode\`)-[:\`XY\`]->(\`xNode_xy\`:\`YNode\`) | \`xNode_xy\` { .id ,yz: [(\`xNode_xy\`)-[:\`YZ\`]->(\`xNode_xy_yz\`:\`ZNode\`) | \`xNode_xy_yz\` { .id }] }] } AS \`xNode\``, + expectedParams = { + xNodes: [ + { + id: 'a', + xy: { + merge: [ + { + id: 'd', + z: [ + { + id: 'f' + }, + { + id: 'g' + }, + { + id: 'h' + }, + { + id: 'i' + } + ] + }, + { + id: 'k', + z: [ + { + id: 'l' + } + ] + } + ] + } + } + ], + first: -1, + offset: 0, + cypherParams: CYPHER_PARAMS + }; + t.plan(4); + return Promise.all([ + cypherTestRunner(t, graphQLQuery, {}, expectedCypherQuery, expectedParams), + augmentedSchemaCypherTestRunner( + t, + graphQLQuery, + {}, + expectedCypherQuery, + expectedParams + ) + ]); +}); + +test('Custom batch @cypher mutation with list type @cypher nested in root list argument (experimental api)', t => { + const graphQLQuery = `mutation MergeLayeredNetwork { + MergeLayeredNetwork( + xNodes: [ + { + id: "a" + y: [ + { + id: "d" + z: [{ id: "f" }, { id: "g" }, { id: "h" }, { id: "i" }] + } + ] + } + ] + ) { + id + xy { + id + yz { + id + } + } + } + }`, + expectedCypherQuery = `CALL apoc.cypher.doIt("UNWIND $xNodes AS XNodeInput MERGE (xNode: XNode { id: XNodeInput.id }) +WITH * + +CALL { + WITH * + UNWIND XNodeInput.y AS YNodeInput + MERGE (yNode: YNode { + id: YNodeInput.id +}) +MERGE (xNode)-[:XY]->(yNode) + +WITH YNodeInput AS _YNodeInput, yNode +CALL { + WITH * + UNWIND _YNodeInput.z AS ZNodeInput + MERGE (zNode: ZNode { + id: ZNodeInput.id +}) +MERGE (yNode)-[:YZ]->(zNode) + RETURN COUNT(*) AS _y_z_ +} + RETURN COUNT(*) AS _xNodes_y_ +} +RETURN xNode", {xNodes:$xNodes, first:$first, offset:$offset, cypherParams: $cypherParams}) YIELD value + WITH apoc.map.values(value, [keys(value)[0]])[0] AS \`xNode\` + RETURN \`xNode\` { .id ,xy: [(\`xNode\`)-[:\`XY\`]->(\`xNode_xy\`:\`YNode\`) | \`xNode_xy\` { .id ,yz: [(\`xNode_xy\`)-[:\`YZ\`]->(\`xNode_xy_yz\`:\`ZNode\`) | \`xNode_xy_yz\` { .id }] }] } AS \`xNode\``, + expectedParams = { + xNodes: [ + { + id: 'a', + y: [ + { + id: 'd', + z: [ + { + id: 'f' + }, + { + id: 'g' + }, + { + id: 'h' + }, + { + id: 'i' + } + ] + } + ] + } + ], + first: -1, + offset: 0, + cypherParams: CYPHER_PARAMS + }; + t.plan(4); + return Promise.all([ + cypherTestRunner(t, graphQLQuery, {}, expectedCypherQuery, expectedParams), + augmentedSchemaCypherTestRunner( + t, + graphQLQuery, + {}, + expectedCypherQuery, + expectedParams + ) + ]); +}); + +test('Custom batch @cypher mutation with object and list type @cypher nested in root list argument (experimental api)', t => { + const graphQLQuery = `mutation MergeLayeredNetwork { + MergeLayeredNetwork( + xNodes: [ + { + id: "a" + y: [ + { + id: "d" + yz: { + merge: [{ id: "f" }, { id: "g" }, { id: "h" }, { id: "i" }] + } + } + { + id: "x" + z: [ + { + id: "y" + } + ] + } + ] + } + ] + ) { + id + xy { + id + yz { + id + } + } + } + }`, + expectedCypherQuery = `CALL apoc.cypher.doIt("UNWIND $xNodes AS XNodeInput MERGE (xNode: XNode { id: XNodeInput.id }) +WITH * + +CALL { + WITH * + UNWIND XNodeInput.y AS YNodeInput + MERGE (yNode: YNode { + id: YNodeInput.id +}) +MERGE (xNode)-[:XY]->(yNode) + +WITH YNodeInput AS _YNodeInput, yNode +CALL { + WITH * + UNWIND _YNodeInput.yz.merge AS ZNodeInput + MERGE (zNode: ZNode { + id: ZNodeInput.id +}) +MERGE (yNode)-[:YZ]->(zNode) + RETURN COUNT(*) AS _yz_merge_ +} + +CALL { + WITH * + UNWIND _YNodeInput.z AS ZNodeInput + MERGE (zNode: ZNode { + id: ZNodeInput.id +}) +MERGE (yNode)-[:YZ]->(zNode) + RETURN COUNT(*) AS _y_z_ +} + RETURN COUNT(*) AS _xNodes_y_ +} +RETURN xNode", {xNodes:$xNodes, first:$first, offset:$offset, cypherParams: $cypherParams}) YIELD value + WITH apoc.map.values(value, [keys(value)[0]])[0] AS \`xNode\` + RETURN \`xNode\` { .id ,xy: [(\`xNode\`)-[:\`XY\`]->(\`xNode_xy\`:\`YNode\`) | \`xNode_xy\` { .id ,yz: [(\`xNode_xy\`)-[:\`YZ\`]->(\`xNode_xy_yz\`:\`ZNode\`) | \`xNode_xy_yz\` { .id }] }] } AS \`xNode\``, + expectedParams = { + xNodes: [ + { + id: 'a', + y: [ + { + id: 'd', + yz: { + merge: [ + { + id: 'f' + }, + { + id: 'g' + }, + { + id: 'h' + }, + { + id: 'i' + } + ] + } + }, + { + id: 'x', + z: [ + { + id: 'y' + } + ] + } + ] + } + ], + first: -1, + offset: 0, + cypherParams: CYPHER_PARAMS + }; + t.plan(4); + return Promise.all([ + cypherTestRunner(t, graphQLQuery, {}, expectedCypherQuery, expectedParams), + augmentedSchemaCypherTestRunner( + t, + graphQLQuery, + {}, + expectedCypherQuery, + expectedParams + ) + ]); +}); + test('Custom batch @cypher mutation using multiple UNWIND clause on list argument with nested @cypher input 3 levels deep (experimental api)', t => { const graphQLQuery = `mutation MergeLayeredNetwork2 { MergeLayeredNetwork2(