From 6bfd15d85a628d572995066e3069c988e2fab009 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 12 Dec 2022 17:54:37 +0400 Subject: [PATCH] Add interactive GraphQL roadmap --- components/home/featured-roadmaps-list.tsx | 12 +- content/roadmaps.json | 49 +- .../roadmaps/116-graphql/content-paths.json | 66 + .../100-what-is-graphql.md | 1 + .../101-problems-graphql-solves.md | 1 + .../102-thinking-in-graphs.md | 1 + .../103-graphql-on-the-frontend.md | 1 + .../104-graphql-on-the-backend.md | 1 + .../100-graphql-introduction/readme.md | 1 + .../100-what-are-queries.md | 1 + .../content/101-graphql-queries/101-fields.md | 1 + .../101-graphql-queries/102-aliases.md | 1 + .../101-graphql-queries/103-arguments.md | 1 + .../101-graphql-queries/104-directives.md | 1 + .../101-graphql-queries/105-variables.md | 1 + .../101-graphql-queries/106-fragments.md | 1 + .../content/101-graphql-queries/readme.md | 1 + .../102-mutations/100-what-are-mutations.md | 1 + .../101-multiple-mutation-fields.md | 1 + .../102-mutations/102-operation-name.md | 1 + .../content/102-mutations/readme.md | 1 + .../100-what-are-subscriptions.md | 1 + .../101-event-based-subscriptions.md | 1 + .../103-subscriptions/102-live-queries.md | 1 + .../103-defer-stream-directives.md | 1 + .../content/103-subscriptions/readme.md | 1 + .../content/104-schema/100-type-system.md | 1 + .../content/104-schema/101-fields.md | 1 + .../content/104-schema/102-scalars.md | 1 + .../content/104-schema/103-enums.md | 1 + .../content/104-schema/104-objects.md | 1 + .../content/104-schema/105-lists.md | 1 + .../content/104-schema/106-interfaces.md | 1 + .../content/104-schema/107-unions.md | 1 + .../content/104-schema/108-arguments.md | 1 + .../116-graphql/content/104-schema/readme.md | 1 + .../116-graphql/content/104-validation.md | 1 + .../content/105-execution/100-root-fields.md | 1 + .../101-resolvers/100-synchronous.md | 1 + .../101-resolvers/101-asynchronous.md | 1 + .../101-resolvers/102-scalar-coercion.md | 1 + .../105-execution/101-resolvers/103-lists.md | 1 + .../105-execution/101-resolvers/readme.md | 1 + .../content/105-execution/102-validation.md | 1 + .../105-execution/103-producing-the-result.md | 1 + .../content/105-execution/readme.md | 1 + .../100-graphql-over-http/100-caching.md | 1 + .../100-graphql-over-http/101-batching.md | 1 + .../102-authorization.md | 1 + .../100-graphql-over-http/readme.md | 1 + .../100-real-time.md | 1 + .../101-authorization.md | 1 + .../101-graphql-over-websockets/readme.md | 1 + .../102-graphql-over-sse/100-authorization.md | 1 + .../102-graphql-over-sse/readme.md | 1 + .../106-serving-over-internet/readme.md | 1 + .../116-graphql/content/107-pagination.md | 1 + .../100-graphql-http.md | 1 + .../101-graphql-yoga.md | 1 + .../102-apollo-server.md | 1 + .../103-mercurius.md | 1 + .../108-frontend-implementations/readme.md | 1 + .../109-backend-implementations/100-relay.md | 1 + .../101-apollo-client.md | 1 + .../109-backend-implementations/102-urql.md | 1 + .../109-backend-implementations/readme.md | 1 + .../roadmaps/116-graphql/content/readme.md | 1 + content/roadmaps/116-graphql/meta.json | 43 + content/roadmaps/117-flutter/meta.json | 6 +- lib/roadmap.ts | 2 +- pages/[roadmap]/interactive.tsx | 4 + public/project/graphql.json | 4786 +++++++++++++++++ public/sitemap.xml | 10 +- scripts/content-skeleton.ts | 1 + 74 files changed, 5025 insertions(+), 18 deletions(-) create mode 100644 content/roadmaps/116-graphql/content-paths.json create mode 100644 content/roadmaps/116-graphql/content/100-graphql-introduction/100-what-is-graphql.md create mode 100644 content/roadmaps/116-graphql/content/100-graphql-introduction/101-problems-graphql-solves.md create mode 100644 content/roadmaps/116-graphql/content/100-graphql-introduction/102-thinking-in-graphs.md create mode 100644 content/roadmaps/116-graphql/content/100-graphql-introduction/103-graphql-on-the-frontend.md create mode 100644 content/roadmaps/116-graphql/content/100-graphql-introduction/104-graphql-on-the-backend.md create mode 100644 content/roadmaps/116-graphql/content/100-graphql-introduction/readme.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/100-what-are-queries.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/101-fields.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/102-aliases.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/103-arguments.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/104-directives.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/105-variables.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/106-fragments.md create mode 100644 content/roadmaps/116-graphql/content/101-graphql-queries/readme.md create mode 100644 content/roadmaps/116-graphql/content/102-mutations/100-what-are-mutations.md create mode 100644 content/roadmaps/116-graphql/content/102-mutations/101-multiple-mutation-fields.md create mode 100644 content/roadmaps/116-graphql/content/102-mutations/102-operation-name.md create mode 100644 content/roadmaps/116-graphql/content/102-mutations/readme.md create mode 100644 content/roadmaps/116-graphql/content/103-subscriptions/100-what-are-subscriptions.md create mode 100644 content/roadmaps/116-graphql/content/103-subscriptions/101-event-based-subscriptions.md create mode 100644 content/roadmaps/116-graphql/content/103-subscriptions/102-live-queries.md create mode 100644 content/roadmaps/116-graphql/content/103-subscriptions/103-defer-stream-directives.md create mode 100644 content/roadmaps/116-graphql/content/103-subscriptions/readme.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/100-type-system.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/101-fields.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/102-scalars.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/103-enums.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/104-objects.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/105-lists.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/106-interfaces.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/107-unions.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/108-arguments.md create mode 100644 content/roadmaps/116-graphql/content/104-schema/readme.md create mode 100644 content/roadmaps/116-graphql/content/104-validation.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/100-root-fields.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/101-resolvers/100-synchronous.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/101-resolvers/101-asynchronous.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/101-resolvers/102-scalar-coercion.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/101-resolvers/103-lists.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/101-resolvers/readme.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/102-validation.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/103-producing-the-result.md create mode 100644 content/roadmaps/116-graphql/content/105-execution/readme.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/100-caching.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/101-batching.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/102-authorization.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/readme.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/100-real-time.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/101-authorization.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/readme.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/100-authorization.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/readme.md create mode 100644 content/roadmaps/116-graphql/content/106-serving-over-internet/readme.md create mode 100644 content/roadmaps/116-graphql/content/107-pagination.md create mode 100644 content/roadmaps/116-graphql/content/108-frontend-implementations/100-graphql-http.md create mode 100644 content/roadmaps/116-graphql/content/108-frontend-implementations/101-graphql-yoga.md create mode 100644 content/roadmaps/116-graphql/content/108-frontend-implementations/102-apollo-server.md create mode 100644 content/roadmaps/116-graphql/content/108-frontend-implementations/103-mercurius.md create mode 100644 content/roadmaps/116-graphql/content/108-frontend-implementations/readme.md create mode 100644 content/roadmaps/116-graphql/content/109-backend-implementations/100-relay.md create mode 100644 content/roadmaps/116-graphql/content/109-backend-implementations/101-apollo-client.md create mode 100644 content/roadmaps/116-graphql/content/109-backend-implementations/102-urql.md create mode 100644 content/roadmaps/116-graphql/content/109-backend-implementations/readme.md create mode 100644 content/roadmaps/116-graphql/content/readme.md create mode 100644 content/roadmaps/116-graphql/meta.json create mode 100644 public/project/graphql.json diff --git a/components/home/featured-roadmaps-list.tsx b/components/home/featured-roadmaps-list.tsx index 1dc867b5a..f0c6bf3d7 100644 --- a/components/home/featured-roadmaps-list.tsx +++ b/components/home/featured-roadmaps-list.tsx @@ -20,12 +20,12 @@ export const upcomingRoadmaps = [ description: 'Step by step guide to become a Cyber Security Expert', id: 'cyber-security' }, - { - type: 'Skill Based', - title: 'TypeScript', - description: 'Step by step guide to learn TypeScript in 2022', - id: 'typescript' - }, + // { + // type: 'Skill Based', + // title: 'TypeScript', + // description: 'Step by step guide to learn TypeScript in 2022', + // id: 'typescript' + // }, // { // type: 'Skill Based', // title: 'Rust', diff --git a/content/roadmaps.json b/content/roadmaps.json index fdf279ffc..c6e03265e 100644 --- a/content/roadmaps.json +++ b/content/roadmaps.json @@ -1115,6 +1115,51 @@ "id": "aspnet-core", "metaPath": "/roadmaps/116-aspnet-core/meta.json" }, + { + "seo": { + "title": "GraphQL Roadmap", + "description": "Learn GraphQL with this step by step guide and resources.", + "keywords": [ + "guide to learn graphql", + "graphql roadmap", + "graphql roadmap", + "modern graphql roadmap", + "fullstack graphql roadmap", + "design and architecture roadmap", + "scalable design roadmap", + "design architecture patterns roadmap", + "application architectures" + ] + }, + "title": "GraphQL", + "description": "Step by step guide to learn GraphQL", + "featuredTitle": "GraphQL", + "type": "tool", + "featuredDescription": "Step by Step guide to learn GraphQL in 2022", + "isTextHeavy": false, + "isCommunity": false, + "isNew": true, + "isUpcoming": false, + "featured": true, + "jsonUrl": "/project/graphql.json", + "author": { + "name": "Kamran Ahmed", + "url": "https://twitter.com/kamranahmedse" + }, + "pdfUrl": "/pdfs/graphql.pdf", + "relatedRoadmaps": [ + "frontend", + "backend", + "nodejs", + "javascript", + "react", + "vue", + "angular" + ], + "contentPathsFilePath": "/roadmaps/116-graphql/content-paths.json", + "id": "graphql", + "metaPath": "/roadmaps/116-graphql/meta.json" + }, { "seo": { "title": "Learn to become a modern Flutter developer", @@ -1157,10 +1202,6 @@ "2018", "2017" ], - "author": { - "name": "Moien Tajik", - "url": "https://twitter.com/MoienTajik" - }, "pdfUrl": "/pdfs/flutter.pdf", "relatedRoadmaps": [ "backend", diff --git a/content/roadmaps/116-graphql/content-paths.json b/content/roadmaps/116-graphql/content-paths.json new file mode 100644 index 000000000..8abb21b1e --- /dev/null +++ b/content/roadmaps/116-graphql/content-paths.json @@ -0,0 +1,66 @@ +{ + "home": "/roadmaps/116-graphql/content/readme.md", + "graphql-introduction": "/roadmaps/116-graphql/content/100-graphql-introduction/readme.md", + "graphql-introduction:what-is-graphql": "/roadmaps/116-graphql/content/100-graphql-introduction/100-what-is-graphql.md", + "graphql-introduction:problems-graphql-solves": "/roadmaps/116-graphql/content/100-graphql-introduction/101-problems-graphql-solves.md", + "graphql-introduction:thinking-in-graphs": "/roadmaps/116-graphql/content/100-graphql-introduction/102-thinking-in-graphs.md", + "graphql-introduction:graphql-on-the-frontend": "/roadmaps/116-graphql/content/100-graphql-introduction/103-graphql-on-the-frontend.md", + "graphql-introduction:graphql-on-the-backend": "/roadmaps/116-graphql/content/100-graphql-introduction/104-graphql-on-the-backend.md", + "graphql-queries": "/roadmaps/116-graphql/content/101-graphql-queries/readme.md", + "graphql-queries:what-are-queries": "/roadmaps/116-graphql/content/101-graphql-queries/100-what-are-queries.md", + "graphql-queries:fields": "/roadmaps/116-graphql/content/101-graphql-queries/101-fields.md", + "graphql-queries:aliases": "/roadmaps/116-graphql/content/101-graphql-queries/102-aliases.md", + "graphql-queries:arguments": "/roadmaps/116-graphql/content/101-graphql-queries/103-arguments.md", + "graphql-queries:directives": "/roadmaps/116-graphql/content/101-graphql-queries/104-directives.md", + "graphql-queries:variables": "/roadmaps/116-graphql/content/101-graphql-queries/105-variables.md", + "graphql-queries:fragments": "/roadmaps/116-graphql/content/101-graphql-queries/106-fragments.md", + "mutations": "/roadmaps/116-graphql/content/102-mutations/readme.md", + "mutations:what-are-mutations": "/roadmaps/116-graphql/content/102-mutations/100-what-are-mutations.md", + "mutations:multiple-mutation-fields": "/roadmaps/116-graphql/content/102-mutations/101-multiple-mutation-fields.md", + "mutations:operation-name": "/roadmaps/116-graphql/content/102-mutations/102-operation-name.md", + "subscriptions": "/roadmaps/116-graphql/content/103-subscriptions/readme.md", + "subscriptions:what-are-subscriptions": "/roadmaps/116-graphql/content/103-subscriptions/100-what-are-subscriptions.md", + "subscriptions:event-based-subscriptions": "/roadmaps/116-graphql/content/103-subscriptions/101-event-based-subscriptions.md", + "subscriptions:live-queries": "/roadmaps/116-graphql/content/103-subscriptions/102-live-queries.md", + "subscriptions:defer-stream-directives": "/roadmaps/116-graphql/content/103-subscriptions/103-defer-stream-directives.md", + "schema": "/roadmaps/116-graphql/content/104-schema/readme.md", + "schema:type-system": "/roadmaps/116-graphql/content/104-schema/100-type-system.md", + "schema:fields": "/roadmaps/116-graphql/content/104-schema/101-fields.md", + "schema:scalars": "/roadmaps/116-graphql/content/104-schema/102-scalars.md", + "schema:enums": "/roadmaps/116-graphql/content/104-schema/103-enums.md", + "schema:objects": "/roadmaps/116-graphql/content/104-schema/104-objects.md", + "schema:lists": "/roadmaps/116-graphql/content/104-schema/105-lists.md", + "schema:interfaces": "/roadmaps/116-graphql/content/104-schema/106-interfaces.md", + "schema:unions": "/roadmaps/116-graphql/content/104-schema/107-unions.md", + "schema:arguments": "/roadmaps/116-graphql/content/104-schema/108-arguments.md", + "validation": "/roadmaps/116-graphql/content/104-validation.md", + "execution": "/roadmaps/116-graphql/content/105-execution/readme.md", + "execution:root-fields": "/roadmaps/116-graphql/content/105-execution/100-root-fields.md", + "execution:resolvers": "/roadmaps/116-graphql/content/105-execution/101-resolvers/readme.md", + "execution:resolvers:synchronous": "/roadmaps/116-graphql/content/105-execution/101-resolvers/100-synchronous.md", + "execution:resolvers:asynchronous": "/roadmaps/116-graphql/content/105-execution/101-resolvers/101-asynchronous.md", + "execution:resolvers:scalar-coercion": "/roadmaps/116-graphql/content/105-execution/101-resolvers/102-scalar-coercion.md", + "execution:resolvers:lists": "/roadmaps/116-graphql/content/105-execution/101-resolvers/103-lists.md", + "execution:validation": "/roadmaps/116-graphql/content/105-execution/102-validation.md", + "execution:producing-the-result": "/roadmaps/116-graphql/content/105-execution/103-producing-the-result.md", + "serving-over-internet": "/roadmaps/116-graphql/content/106-serving-over-internet/readme.md", + "serving-over-internet:graphql-over-http": "/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/readme.md", + "serving-over-internet:graphql-over-http:caching": "/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/100-caching.md", + "serving-over-internet:graphql-over-http:batching": "/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/101-batching.md", + "serving-over-internet:graphql-over-http:authorization": "/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/102-authorization.md", + "serving-over-internet:graphql-over-websockets": "/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/readme.md", + "serving-over-internet:graphql-over-websockets:real-time": "/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/100-real-time.md", + "serving-over-internet:graphql-over-websockets:authorization": "/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/101-authorization.md", + "serving-over-internet:graphql-over-sse": "/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/readme.md", + "serving-over-internet:graphql-over-sse:authorization": "/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/100-authorization.md", + "pagination": "/roadmaps/116-graphql/content/107-pagination.md", + "frontend-implementations": "/roadmaps/116-graphql/content/108-frontend-implementations/readme.md", + "frontend-implementations:graphql-http": "/roadmaps/116-graphql/content/108-frontend-implementations/100-graphql-http.md", + "frontend-implementations:graphql-yoga": "/roadmaps/116-graphql/content/108-frontend-implementations/101-graphql-yoga.md", + "frontend-implementations:apollo-server": "/roadmaps/116-graphql/content/108-frontend-implementations/102-apollo-server.md", + "frontend-implementations:mercurius": "/roadmaps/116-graphql/content/108-frontend-implementations/103-mercurius.md", + "backend-implementations": "/roadmaps/116-graphql/content/109-backend-implementations/readme.md", + "backend-implementations:relay": "/roadmaps/116-graphql/content/109-backend-implementations/100-relay.md", + "backend-implementations:apollo-client": "/roadmaps/116-graphql/content/109-backend-implementations/101-apollo-client.md", + "backend-implementations:urql": "/roadmaps/116-graphql/content/109-backend-implementations/102-urql.md" +} \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/100-graphql-introduction/100-what-is-graphql.md b/content/roadmaps/116-graphql/content/100-graphql-introduction/100-what-is-graphql.md new file mode 100644 index 000000000..11e755835 --- /dev/null +++ b/content/roadmaps/116-graphql/content/100-graphql-introduction/100-what-is-graphql.md @@ -0,0 +1 @@ +# What is graphql \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/100-graphql-introduction/101-problems-graphql-solves.md b/content/roadmaps/116-graphql/content/100-graphql-introduction/101-problems-graphql-solves.md new file mode 100644 index 000000000..007c67964 --- /dev/null +++ b/content/roadmaps/116-graphql/content/100-graphql-introduction/101-problems-graphql-solves.md @@ -0,0 +1 @@ +# Problems graphql solves \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/100-graphql-introduction/102-thinking-in-graphs.md b/content/roadmaps/116-graphql/content/100-graphql-introduction/102-thinking-in-graphs.md new file mode 100644 index 000000000..c3d208ad6 --- /dev/null +++ b/content/roadmaps/116-graphql/content/100-graphql-introduction/102-thinking-in-graphs.md @@ -0,0 +1 @@ +# Thinking in graphs \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/100-graphql-introduction/103-graphql-on-the-frontend.md b/content/roadmaps/116-graphql/content/100-graphql-introduction/103-graphql-on-the-frontend.md new file mode 100644 index 000000000..540ce73eb --- /dev/null +++ b/content/roadmaps/116-graphql/content/100-graphql-introduction/103-graphql-on-the-frontend.md @@ -0,0 +1 @@ +# Graphql on the frontend \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/100-graphql-introduction/104-graphql-on-the-backend.md b/content/roadmaps/116-graphql/content/100-graphql-introduction/104-graphql-on-the-backend.md new file mode 100644 index 000000000..25cce9195 --- /dev/null +++ b/content/roadmaps/116-graphql/content/100-graphql-introduction/104-graphql-on-the-backend.md @@ -0,0 +1 @@ +# Graphql on the backend \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/100-graphql-introduction/readme.md b/content/roadmaps/116-graphql/content/100-graphql-introduction/readme.md new file mode 100644 index 000000000..8c5278f5a --- /dev/null +++ b/content/roadmaps/116-graphql/content/100-graphql-introduction/readme.md @@ -0,0 +1 @@ +# Graphql introduction \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/100-what-are-queries.md b/content/roadmaps/116-graphql/content/101-graphql-queries/100-what-are-queries.md new file mode 100644 index 000000000..1170a166b --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/100-what-are-queries.md @@ -0,0 +1 @@ +# What are queries \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/101-fields.md b/content/roadmaps/116-graphql/content/101-graphql-queries/101-fields.md new file mode 100644 index 000000000..70dd38e66 --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/101-fields.md @@ -0,0 +1 @@ +# Fields \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/102-aliases.md b/content/roadmaps/116-graphql/content/101-graphql-queries/102-aliases.md new file mode 100644 index 000000000..1487a25f2 --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/102-aliases.md @@ -0,0 +1 @@ +# Aliases \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/103-arguments.md b/content/roadmaps/116-graphql/content/101-graphql-queries/103-arguments.md new file mode 100644 index 000000000..de7633005 --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/103-arguments.md @@ -0,0 +1 @@ +# Arguments \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/104-directives.md b/content/roadmaps/116-graphql/content/101-graphql-queries/104-directives.md new file mode 100644 index 000000000..511998d02 --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/104-directives.md @@ -0,0 +1 @@ +# Directives \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/105-variables.md b/content/roadmaps/116-graphql/content/101-graphql-queries/105-variables.md new file mode 100644 index 000000000..bb79b115c --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/105-variables.md @@ -0,0 +1 @@ +# Variables \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/106-fragments.md b/content/roadmaps/116-graphql/content/101-graphql-queries/106-fragments.md new file mode 100644 index 000000000..81225f465 --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/106-fragments.md @@ -0,0 +1 @@ +# Fragments \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/101-graphql-queries/readme.md b/content/roadmaps/116-graphql/content/101-graphql-queries/readme.md new file mode 100644 index 000000000..29779dc13 --- /dev/null +++ b/content/roadmaps/116-graphql/content/101-graphql-queries/readme.md @@ -0,0 +1 @@ +# Graphql queries \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/102-mutations/100-what-are-mutations.md b/content/roadmaps/116-graphql/content/102-mutations/100-what-are-mutations.md new file mode 100644 index 000000000..686d3f342 --- /dev/null +++ b/content/roadmaps/116-graphql/content/102-mutations/100-what-are-mutations.md @@ -0,0 +1 @@ +# What are mutations \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/102-mutations/101-multiple-mutation-fields.md b/content/roadmaps/116-graphql/content/102-mutations/101-multiple-mutation-fields.md new file mode 100644 index 000000000..05cc9a338 --- /dev/null +++ b/content/roadmaps/116-graphql/content/102-mutations/101-multiple-mutation-fields.md @@ -0,0 +1 @@ +# Multiple mutation fields \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/102-mutations/102-operation-name.md b/content/roadmaps/116-graphql/content/102-mutations/102-operation-name.md new file mode 100644 index 000000000..67807e90a --- /dev/null +++ b/content/roadmaps/116-graphql/content/102-mutations/102-operation-name.md @@ -0,0 +1 @@ +# Operation name \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/102-mutations/readme.md b/content/roadmaps/116-graphql/content/102-mutations/readme.md new file mode 100644 index 000000000..520d34a37 --- /dev/null +++ b/content/roadmaps/116-graphql/content/102-mutations/readme.md @@ -0,0 +1 @@ +# Mutations \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/103-subscriptions/100-what-are-subscriptions.md b/content/roadmaps/116-graphql/content/103-subscriptions/100-what-are-subscriptions.md new file mode 100644 index 000000000..842bb0275 --- /dev/null +++ b/content/roadmaps/116-graphql/content/103-subscriptions/100-what-are-subscriptions.md @@ -0,0 +1 @@ +# What are subscriptions \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/103-subscriptions/101-event-based-subscriptions.md b/content/roadmaps/116-graphql/content/103-subscriptions/101-event-based-subscriptions.md new file mode 100644 index 000000000..861aae1b4 --- /dev/null +++ b/content/roadmaps/116-graphql/content/103-subscriptions/101-event-based-subscriptions.md @@ -0,0 +1 @@ +# Event based subscriptions \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/103-subscriptions/102-live-queries.md b/content/roadmaps/116-graphql/content/103-subscriptions/102-live-queries.md new file mode 100644 index 000000000..425267a90 --- /dev/null +++ b/content/roadmaps/116-graphql/content/103-subscriptions/102-live-queries.md @@ -0,0 +1 @@ +# Live queries \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/103-subscriptions/103-defer-stream-directives.md b/content/roadmaps/116-graphql/content/103-subscriptions/103-defer-stream-directives.md new file mode 100644 index 000000000..f367ca34e --- /dev/null +++ b/content/roadmaps/116-graphql/content/103-subscriptions/103-defer-stream-directives.md @@ -0,0 +1 @@ +# Defer stream directives \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/103-subscriptions/readme.md b/content/roadmaps/116-graphql/content/103-subscriptions/readme.md new file mode 100644 index 000000000..bef80be2a --- /dev/null +++ b/content/roadmaps/116-graphql/content/103-subscriptions/readme.md @@ -0,0 +1 @@ +# Subscriptions \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/100-type-system.md b/content/roadmaps/116-graphql/content/104-schema/100-type-system.md new file mode 100644 index 000000000..7b44d60d1 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/100-type-system.md @@ -0,0 +1 @@ +# Type system \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/101-fields.md b/content/roadmaps/116-graphql/content/104-schema/101-fields.md new file mode 100644 index 000000000..70dd38e66 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/101-fields.md @@ -0,0 +1 @@ +# Fields \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/102-scalars.md b/content/roadmaps/116-graphql/content/104-schema/102-scalars.md new file mode 100644 index 000000000..cef903167 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/102-scalars.md @@ -0,0 +1 @@ +# Scalars \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/103-enums.md b/content/roadmaps/116-graphql/content/104-schema/103-enums.md new file mode 100644 index 000000000..1cf9f0037 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/103-enums.md @@ -0,0 +1 @@ +# Enums \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/104-objects.md b/content/roadmaps/116-graphql/content/104-schema/104-objects.md new file mode 100644 index 000000000..db71f7e72 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/104-objects.md @@ -0,0 +1 @@ +# Objects \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/105-lists.md b/content/roadmaps/116-graphql/content/104-schema/105-lists.md new file mode 100644 index 000000000..96bf734a5 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/105-lists.md @@ -0,0 +1 @@ +# Lists \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/106-interfaces.md b/content/roadmaps/116-graphql/content/104-schema/106-interfaces.md new file mode 100644 index 000000000..ae1d147ef --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/106-interfaces.md @@ -0,0 +1 @@ +# Interfaces \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/107-unions.md b/content/roadmaps/116-graphql/content/104-schema/107-unions.md new file mode 100644 index 000000000..6504457cd --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/107-unions.md @@ -0,0 +1 @@ +# Unions \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/108-arguments.md b/content/roadmaps/116-graphql/content/104-schema/108-arguments.md new file mode 100644 index 000000000..de7633005 --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/108-arguments.md @@ -0,0 +1 @@ +# Arguments \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-schema/readme.md b/content/roadmaps/116-graphql/content/104-schema/readme.md new file mode 100644 index 000000000..9946ba95f --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-schema/readme.md @@ -0,0 +1 @@ +# Schema \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/104-validation.md b/content/roadmaps/116-graphql/content/104-validation.md new file mode 100644 index 000000000..0d70767ab --- /dev/null +++ b/content/roadmaps/116-graphql/content/104-validation.md @@ -0,0 +1 @@ +# Validation \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/100-root-fields.md b/content/roadmaps/116-graphql/content/105-execution/100-root-fields.md new file mode 100644 index 000000000..d0324c3bb --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/100-root-fields.md @@ -0,0 +1 @@ +# Root fields \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/101-resolvers/100-synchronous.md b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/100-synchronous.md new file mode 100644 index 000000000..7b78737b8 --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/100-synchronous.md @@ -0,0 +1 @@ +# Synchronous \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/101-resolvers/101-asynchronous.md b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/101-asynchronous.md new file mode 100644 index 000000000..2340f8c71 --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/101-asynchronous.md @@ -0,0 +1 @@ +# Asynchronous \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/101-resolvers/102-scalar-coercion.md b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/102-scalar-coercion.md new file mode 100644 index 000000000..698613bb2 --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/102-scalar-coercion.md @@ -0,0 +1 @@ +# Scalar coercion \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/101-resolvers/103-lists.md b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/103-lists.md new file mode 100644 index 000000000..96bf734a5 --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/103-lists.md @@ -0,0 +1 @@ +# Lists \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/101-resolvers/readme.md b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/readme.md new file mode 100644 index 000000000..9b73464fc --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/101-resolvers/readme.md @@ -0,0 +1 @@ +# Resolvers \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/102-validation.md b/content/roadmaps/116-graphql/content/105-execution/102-validation.md new file mode 100644 index 000000000..0d70767ab --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/102-validation.md @@ -0,0 +1 @@ +# Validation \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/103-producing-the-result.md b/content/roadmaps/116-graphql/content/105-execution/103-producing-the-result.md new file mode 100644 index 000000000..d9196ed44 --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/103-producing-the-result.md @@ -0,0 +1 @@ +# Producing the result \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/105-execution/readme.md b/content/roadmaps/116-graphql/content/105-execution/readme.md new file mode 100644 index 000000000..b0301fd3f --- /dev/null +++ b/content/roadmaps/116-graphql/content/105-execution/readme.md @@ -0,0 +1 @@ +# Execution \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/100-caching.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/100-caching.md new file mode 100644 index 000000000..07f88797a --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/100-caching.md @@ -0,0 +1 @@ +# Caching \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/101-batching.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/101-batching.md new file mode 100644 index 000000000..e7cf2ce39 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/101-batching.md @@ -0,0 +1 @@ +# Batching \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/102-authorization.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/102-authorization.md new file mode 100644 index 000000000..02b25f227 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/102-authorization.md @@ -0,0 +1 @@ +# Authorization \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/readme.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/readme.md new file mode 100644 index 000000000..0c4ff9c45 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/100-graphql-over-http/readme.md @@ -0,0 +1 @@ +# Graphql over http \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/100-real-time.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/100-real-time.md new file mode 100644 index 000000000..1262176a4 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/100-real-time.md @@ -0,0 +1 @@ +# Real time \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/101-authorization.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/101-authorization.md new file mode 100644 index 000000000..02b25f227 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/101-authorization.md @@ -0,0 +1 @@ +# Authorization \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/readme.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/readme.md new file mode 100644 index 000000000..b3a413b86 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/101-graphql-over-websockets/readme.md @@ -0,0 +1 @@ +# Graphql over websockets \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/100-authorization.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/100-authorization.md new file mode 100644 index 000000000..02b25f227 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/100-authorization.md @@ -0,0 +1 @@ +# Authorization \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/readme.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/readme.md new file mode 100644 index 000000000..8ad883ce9 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/102-graphql-over-sse/readme.md @@ -0,0 +1 @@ +# Graphql over sse \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/106-serving-over-internet/readme.md b/content/roadmaps/116-graphql/content/106-serving-over-internet/readme.md new file mode 100644 index 000000000..a8c01d875 --- /dev/null +++ b/content/roadmaps/116-graphql/content/106-serving-over-internet/readme.md @@ -0,0 +1 @@ +# Serving over internet \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/107-pagination.md b/content/roadmaps/116-graphql/content/107-pagination.md new file mode 100644 index 000000000..4122fb7da --- /dev/null +++ b/content/roadmaps/116-graphql/content/107-pagination.md @@ -0,0 +1 @@ +# Pagination \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/108-frontend-implementations/100-graphql-http.md b/content/roadmaps/116-graphql/content/108-frontend-implementations/100-graphql-http.md new file mode 100644 index 000000000..1edaa4a53 --- /dev/null +++ b/content/roadmaps/116-graphql/content/108-frontend-implementations/100-graphql-http.md @@ -0,0 +1 @@ +# Graphql http \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/108-frontend-implementations/101-graphql-yoga.md b/content/roadmaps/116-graphql/content/108-frontend-implementations/101-graphql-yoga.md new file mode 100644 index 000000000..5701df9be --- /dev/null +++ b/content/roadmaps/116-graphql/content/108-frontend-implementations/101-graphql-yoga.md @@ -0,0 +1 @@ +# Graphql yoga \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/108-frontend-implementations/102-apollo-server.md b/content/roadmaps/116-graphql/content/108-frontend-implementations/102-apollo-server.md new file mode 100644 index 000000000..752088142 --- /dev/null +++ b/content/roadmaps/116-graphql/content/108-frontend-implementations/102-apollo-server.md @@ -0,0 +1 @@ +# Apollo server \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/108-frontend-implementations/103-mercurius.md b/content/roadmaps/116-graphql/content/108-frontend-implementations/103-mercurius.md new file mode 100644 index 000000000..27888829f --- /dev/null +++ b/content/roadmaps/116-graphql/content/108-frontend-implementations/103-mercurius.md @@ -0,0 +1 @@ +# Mercurius \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/108-frontend-implementations/readme.md b/content/roadmaps/116-graphql/content/108-frontend-implementations/readme.md new file mode 100644 index 000000000..97a69d8f2 --- /dev/null +++ b/content/roadmaps/116-graphql/content/108-frontend-implementations/readme.md @@ -0,0 +1 @@ +# Frontend implementations \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/109-backend-implementations/100-relay.md b/content/roadmaps/116-graphql/content/109-backend-implementations/100-relay.md new file mode 100644 index 000000000..c6cc93bbf --- /dev/null +++ b/content/roadmaps/116-graphql/content/109-backend-implementations/100-relay.md @@ -0,0 +1 @@ +# Relay \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/109-backend-implementations/101-apollo-client.md b/content/roadmaps/116-graphql/content/109-backend-implementations/101-apollo-client.md new file mode 100644 index 000000000..39a68c9cb --- /dev/null +++ b/content/roadmaps/116-graphql/content/109-backend-implementations/101-apollo-client.md @@ -0,0 +1 @@ +# Apollo client \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/109-backend-implementations/102-urql.md b/content/roadmaps/116-graphql/content/109-backend-implementations/102-urql.md new file mode 100644 index 000000000..c7d928b90 --- /dev/null +++ b/content/roadmaps/116-graphql/content/109-backend-implementations/102-urql.md @@ -0,0 +1 @@ +# Urql \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/109-backend-implementations/readme.md b/content/roadmaps/116-graphql/content/109-backend-implementations/readme.md new file mode 100644 index 000000000..b858fa06c --- /dev/null +++ b/content/roadmaps/116-graphql/content/109-backend-implementations/readme.md @@ -0,0 +1 @@ +# Backend implementations \ No newline at end of file diff --git a/content/roadmaps/116-graphql/content/readme.md b/content/roadmaps/116-graphql/content/readme.md new file mode 100644 index 000000000..4e768b56d --- /dev/null +++ b/content/roadmaps/116-graphql/content/readme.md @@ -0,0 +1 @@ +# \ No newline at end of file diff --git a/content/roadmaps/116-graphql/meta.json b/content/roadmaps/116-graphql/meta.json new file mode 100644 index 000000000..480764949 --- /dev/null +++ b/content/roadmaps/116-graphql/meta.json @@ -0,0 +1,43 @@ +{ + "seo": { + "title": "GraphQL Roadmap", + "description": "Learn GraphQL with this step by step guide and resources.", + "keywords": [ + "guide to learn graphql", + "graphql roadmap", + "graphql roadmap", + "modern graphql roadmap", + "fullstack graphql roadmap", + "design and architecture roadmap", + "scalable design roadmap", + "design architecture patterns roadmap", + "application architectures" + ] + }, + "title": "GraphQL", + "description": "Step by step guide to learn GraphQL", + "featuredTitle": "GraphQL", + "type": "tool", + "featuredDescription": "Step by Step guide to learn GraphQL in 2022", + "isTextHeavy": false, + "isCommunity": false, + "isNew": true, + "isUpcoming": false, + "featured": true, + "jsonUrl": "/project/graphql.json", + "author": { + "name": "Denis Badurina", + "url": "https://twitter.com/enisdenjo" + }, + "pdfUrl": "/pdfs/graphql.pdf", + "relatedRoadmaps": [ + "frontend", + "backend", + "nodejs", + "javascript", + "react", + "vue", + "angular" + ], + "contentPathsFilePath": "./content-paths.json" +} diff --git a/content/roadmaps/117-flutter/meta.json b/content/roadmaps/117-flutter/meta.json index 489fc46dc..32bb23d25 100644 --- a/content/roadmaps/117-flutter/meta.json +++ b/content/roadmaps/117-flutter/meta.json @@ -40,10 +40,6 @@ "2018", "2017" ], - "author": { - "name": "Moien Tajik", - "url": "https://twitter.com/MoienTajik" - }, "pdfUrl": "/pdfs/flutter.pdf", "relatedRoadmaps": [ "backend", @@ -54,4 +50,4 @@ "nodejs" ], "contentPathsFilePath": "./content-paths.json" -} \ No newline at end of file +} diff --git a/lib/roadmap.ts b/lib/roadmap.ts index 5a9ee1657..79b6e2e4f 100644 --- a/lib/roadmap.ts +++ b/lib/roadmap.ts @@ -49,5 +49,5 @@ export function getFeaturedRoadmaps(): RoadmapType[] { } export function isInteractiveRoadmap(id: string): boolean { - return ['frontend', 'backend', 'devops', 'react', 'vue', 'python', 'java', 'blockchain', 'golang', 'javascript', 'nodejs', 'qa', 'design-system', 'angular', 'software-architect', 'software-design-architecture', 'aspnet-core', 'flutter', 'computer-science'].includes(id); + return ['frontend', 'backend', 'devops', 'react', 'vue', 'python', 'java', 'blockchain', 'golang', 'javascript', 'nodejs', 'qa', 'design-system', 'angular', 'software-architect', 'software-design-architecture', 'aspnet-core', 'flutter', 'computer-science', 'graphql'].includes(id); } diff --git a/pages/[roadmap]/interactive.tsx b/pages/[roadmap]/interactive.tsx index 7b3d5f7a5..46ac86d8e 100644 --- a/pages/[roadmap]/interactive.tsx +++ b/pages/[roadmap]/interactive.tsx @@ -183,6 +183,10 @@ export function InteractiveRoadmapRenderer(props: RoadmapProps) { minHeight = ['1222px', '1393px', '2288px', '3084px', '3084px', '3084px']; } + if (roadmap.id === 'graphql') { + minHeight = ['770px', '1261px', '1617px', '1712px', '1712px', '1712px']; + } + return ( {(isLoading || isRendering) && } diff --git a/public/project/graphql.json b/public/project/graphql.json new file mode 100644 index 000000000..b6b050fa7 --- /dev/null +++ b/public/project/graphql.json @@ -0,0 +1,4786 @@ +{ + "mockup": { + "controls": { + "control": [ + { + "ID": "13453", + "typeID": "Arrow", + "zOrder": "30", + "h": "26", + "measuredW": "150", + "measuredH": "100", + "x": "813", + "y": "452", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "top", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 150.56236874959575, + "y": 26.403708599547826 + }, + "p1": { + "x": 0.32978996756534207, + "y": -0.06771016810341422 + }, + "p2": { + "x": 0.43331263552681776, + "y": -0.08965424411138656 + } + } + }, + { + "ID": "13454", + "typeID": "Arrow", + "zOrder": "31", + "h": "41", + "measuredW": "150", + "measuredH": "100", + "x": "386", + "y": "460", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "top", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 149.17520040738896, + "y": 0.4798779969340785 + }, + "p1": { + "x": 0.4552212800557557, + "y": -0.05494250203275635 + }, + "p2": { + "x": -0.4342686862449341, + "y": 41.80245913628414 + } + } + }, + { + "ID": "13455", + "typeID": "Arrow", + "zOrder": "32", + "w": "19", + "h": "76", + "measuredW": "150", + "measuredH": "100", + "x": "694", + "y": "200", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 13, + "y": 0 + }, + "p1": { + "x": 0.5175865027166142, + "y": -0.2113239919931367 + }, + "p2": { + "x": 19, + "y": 76 + }, + "stroke": "dotted" + } + }, + { + "ID": "13456", + "typeID": "Label", + "zOrder": "33", + "measuredW": "117", + "measuredH": "36", + "x": "667", + "y": "287", + "properties": { + "size": "28", + "text": "GraphQL" + } + }, + { + "ID": "13457", + "typeID": "Arrow", + "zOrder": "34", + "w": "22", + "h": "103", + "measuredW": "150", + "measuredH": "100", + "x": "727", + "y": "333", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 11.029393501935488, + "y": 0.059418606001656826 + }, + "p1": { + "x": 0.49551800146950753, + "y": 0.1519470977222632 + }, + "p2": { + "x": -0.3249048596328521, + "y": 103.50969256695669 + } + } + }, + { + "ID": "13458", + "typeID": "Canvas", + "zOrder": "35", + "w": "350", + "h": "141", + "measuredW": "100", + "measuredH": "70", + "x": "914", + "y": "174" + }, + { + "ID": "13459", + "typeID": "Label", + "zOrder": "36", + "measuredW": "314", + "measuredH": "25", + "x": "928", + "y": "191", + "properties": { + "size": "17", + "text": "Find the detailed version of this roadmap" + } + }, + { + "ID": "13460", + "typeID": "Label", + "zOrder": "37", + "measuredW": "319", + "measuredH": "25", + "x": "928", + "y": "219", + "properties": { + "size": "17", + "text": "along with resources and other roadmaps" + } + }, + { + "ID": "13461", + "typeID": "__group__", + "zOrder": "38", + "measuredW": "320", + "measuredH": "45", + "w": "320", + "h": "45", + "x": "929", + "y": "255", + "properties": { + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "320", + "h": "45", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "28", + "x": "141", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "roadmap.sh" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "45", + "measuredH": "28", + "x": "65", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "https" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "5", + "measuredH": "28", + "x": "113", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": ":" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "10", + "measuredH": "28", + "x": "120", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "10", + "measuredH": "28", + "x": "128", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + } + ] + } + } + }, + { + "ID": "13462", + "typeID": "Arrow", + "zOrder": "39", + "w": "151", + "h": "40", + "measuredW": "150", + "measuredH": "100", + "x": "380", + "y": "395", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "top", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 151.39043428686625, + "y": 40.24810386011575 + }, + "p1": { + "x": 0.4298167791706848, + "y": 0.059749276759884305 + }, + "p2": { + "x": -0.10435297027072465, + "y": 0.4883788108002136 + } + } + }, + { + "ID": "13482", + "typeID": "Arrow", + "zOrder": "29", + "w": "153", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "386", + "y": "448", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "top", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 152.95996652791177, + "y": 0.8639909285249132 + }, + "p1": { + "x": 0.4382716049382716, + "y": -0.006172839506172837 + }, + "p2": { + "x": 0.04614429332008285, + "y": 0.8639909285249132 + } + } + }, + { + "ID": "13484", + "typeID": "Arrow", + "zOrder": "28", + "w": "141", + "h": "24", + "measuredW": "150", + "measuredH": "100", + "x": "818", + "y": "418", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "top", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 141.77760262907304, + "y": -0.1525493288161215 + }, + "p1": { + "x": 0.36923672994963214, + "y": 0.07129019759783038 + }, + "p2": { + "x": 0.47966746289046114, + "y": 23.81763610116127 + } + } + }, + { + "ID": "13485", + "typeID": "Arrow", + "zOrder": "27", + "w": "266", + "h": "182", + "measuredW": "150", + "measuredH": "100", + "x": "447", + "y": "457", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 266, + "y": 0 + }, + "p1": { + "x": 0.5196733105235347, + "y": 0.11635559109419528 + }, + "p2": { + "x": -0.48086263296750076, + "y": 182.30200302391006 + } + } + }, + { + "ID": "13518", + "typeID": "Arrow", + "zOrder": "26", + "w": "1", + "h": "157", + "measuredW": "150", + "measuredH": "100", + "x": "204", + "y": "567", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0, + "y": 0.008428402580989314 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 157.4118734611966 + } + } + }, + { + "ID": "13519", + "typeID": "Arrow", + "zOrder": "25", + "w": "1", + "h": "79", + "measuredW": "150", + "measuredH": "100", + "x": "367", + "y": "645", + "properties": { + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 79.41187346119659 + }, + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263" + } + }, + { + "ID": "13520", + "typeID": "Arrow", + "zOrder": "24", + "w": "329", + "h": "6", + "measuredW": "150", + "measuredH": "100", + "x": "453", + "y": "649", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 329, + "y": 0 + }, + "p1": { + "x": 0.5003620041750366, + "y": 0.000010309641868442141 + }, + "p2": { + "x": 0, + "y": 5 + } + } + }, + { + "ID": "13530", + "typeID": "Arrow", + "zOrder": "23", + "w": "142", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "846", + "y": "645", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 141.8239574564367, + "y": -0.06821506978110392 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0.26007939085207, + "y": 3.515889985451963 + }, + "stroke": "dotted" + } + }, + { + "ID": "13531", + "typeID": "Arrow", + "zOrder": "22", + "w": "116", + "h": "40", + "measuredW": "150", + "measuredH": "100", + "x": "848", + "y": "597", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 115.8537720264593, + "y": -0.008585929735886566 + }, + "p1": { + "x": 0.5058536585365925, + "y": 0.08731707317075121 + }, + "p2": { + "x": -0.32239953814143973, + "y": 40.17572141740038 + } + } + }, + { + "ID": "13532", + "typeID": "Arrow", + "zOrder": "21", + "w": "119", + "h": "41", + "measuredW": "150", + "measuredH": "100", + "x": "848", + "y": "658", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 118.37694944014106, + "y": 40.91851061753732 + }, + "p1": { + "x": 0.56879239181546, + "y": -0.07536562568397247 + }, + "p2": { + "x": -0.32239953814143973, + "y": 0.43853748249716773 + } + } + }, + { + "ID": "13533", + "typeID": "Arrow", + "zOrder": "20", + "w": "1", + "h": "264", + "measuredW": "150", + "measuredH": "100", + "x": "771", + "y": "645", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": 264.23461901339067 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 0.41187346119659196 + } + } + }, + { + "ID": "13550", + "typeID": "Arrow", + "zOrder": "19", + "w": "136", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "849", + "y": "922", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 135.8239574564367, + "y": -0.06821506978110392 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0.09512153286505054, + "y": 3.641259367213479 + } + } + }, + { + "ID": "13551", + "typeID": "Arrow", + "zOrder": "16", + "w": "118", + "h": "138", + "measuredW": "150", + "measuredH": "100", + "x": "851", + "y": "761", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 117.19363717799206, + "y": -0.20390823351146992 + }, + "p1": { + "x": 0.520754716981132, + "y": 0.08846960167714851 + }, + "p2": { + "x": -0.4873573961285729, + "y": 137.70835901809085 + } + } + }, + { + "ID": "13552", + "typeID": "Arrow", + "zOrder": "17", + "w": "118", + "h": "96", + "measuredW": "150", + "measuredH": "100", + "x": "851", + "y": "813", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 117.19363717799206, + "y": -0.04983109270801833 + }, + "p1": { + "x": 0.5279390196599086, + "y": 0.101462632198872 + }, + "p2": { + "x": -0.4873573961285729, + "y": 95.63100651513605 + } + } + }, + { + "ID": "13553", + "typeID": "Arrow", + "zOrder": "18", + "w": "119", + "h": "56", + "measuredW": "150", + "measuredH": "100", + "x": "852", + "y": "862", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 118.86820523649476, + "y": 0.42967798959261927 + }, + "p1": { + "x": 0.4869450258896113, + "y": 0.07017737137820862 + }, + "p2": { + "x": -0.0698363251220826, + "y": 56.55365401218114 + } + } + }, + { + "ID": "13554", + "typeID": "Arrow", + "zOrder": "15", + "w": "206", + "h": "120", + "measuredW": "150", + "measuredH": "100", + "x": "770", + "y": "922", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 205.25449685243927, + "y": 119.16922665423931 + }, + "p1": { + "x": 0.5694268377138603, + "y": 0.20684328208811933 + }, + "p2": { + "x": -0.28605844349635845, + "y": -0.30189383398658265 + } + } + }, + { + "ID": "13587", + "typeID": "Arrow", + "zOrder": "14", + "w": "1", + "h": "92", + "measuredW": "150", + "measuredH": "100", + "x": "1158", + "y": "1040", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 91.56065948267815 + } + } + }, + { + "ID": "13588", + "typeID": "Arrow", + "zOrder": "13", + "w": "1", + "h": "82", + "measuredW": "150", + "measuredH": "100", + "x": "1025", + "y": "1040", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "10027263", + "p0": { + "x": 0, + "y": 0.008428402580989314 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 81.63801198563283 + } + } + }, + { + "ID": "13589", + "typeID": "Arrow", + "zOrder": "12", + "w": "209", + "h": "107", + "measuredW": "150", + "measuredH": "100", + "x": "769", + "y": "1057", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 209, + "y": 0 + }, + "p1": { + "x": 0.6162382546994787, + "y": -0.1825914488504046 + }, + "p2": { + "x": 0.018560935773280107, + "y": 107.34892809600183 + } + } + }, + { + "ID": "13611", + "typeID": "Arrow", + "zOrder": "11", + "w": "334", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "275", + "y": "1172", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 334, + "y": 0 + }, + "p1": { + "x": 0.4997639282341844, + "y": -0.0004990019960078705 + }, + "p2": { + "x": 0, + "y": 0 + } + } + }, + { + "ID": "13612", + "typeID": "Arrow", + "zOrder": "10", + "w": "98", + "h": "59", + "measuredW": "150", + "measuredH": "100", + "x": "416", + "y": "1181", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 98, + "y": 0 + }, + "p1": { + "x": 0.6562090340640424, + "y": -0.20033673139229707 + }, + "p2": { + "x": 0, + "y": 59 + } + } + }, + { + "ID": "13613", + "typeID": "Arrow", + "zOrder": "9", + "w": "92", + "h": "76", + "measuredW": "150", + "measuredH": "100", + "x": "422", + "y": "1085", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 91, + "y": 76 + }, + "p1": { + "x": 0.5037961962945972, + "y": 0.2165404130225926 + }, + "p2": { + "x": 0, + "y": 0 + } + } + }, + { + "ID": "13633", + "typeID": "Arrow", + "zOrder": "8", + "w": "171", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "280", + "y": "1415", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 170.2568873142808, + "y": -0.33333333333325754 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.4873068151357529, + "y": -0.33333333333325754 + } + } + }, + { + "ID": "13643", + "typeID": "Arrow", + "zOrder": "7", + "w": "136", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "615", + "y": "1172", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 135.46137249475214, + "y": 0 + }, + "p1": { + "x": 0.5003620041750365, + "y": 0.000010309641868442138 + }, + "p2": { + "x": -0.1629140492678971, + "y": 0 + } + } + }, + { + "ID": "13644", + "typeID": "Arrow", + "zOrder": "6", + "w": "174", + "h": "50", + "measuredW": "150", + "measuredH": "100", + "x": "637", + "y": "1360", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 173.8600961461624, + "y": -0.15010566235218903 + }, + "p1": { + "x": 0.3989410921162404, + "y": 0.0928968894330121 + }, + "p2": { + "x": -0.4873068151357529, + "y": 49.66666666666674 + } + } + }, + { + "ID": "13645", + "typeID": "Arrow", + "zOrder": "5", + "w": "170", + "h": "76", + "measuredW": "150", + "measuredH": "100", + "x": "637", + "y": "1420", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 169.63134238207817, + "y": 75.47418088166773 + }, + "p1": { + "x": 0.3084929073047626, + "y": -0.1593730272164304 + }, + "p2": { + "x": -0.4873068151357529, + "y": -0.33333333333325754 + } + } + }, + { + "ID": "13646", + "typeID": "Arrow", + "zOrder": "4", + "w": "1", + "h": "231", + "measuredW": "150", + "measuredH": "100", + "x": "587", + "y": "1177", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": 231.90548734293156 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 0.41187346119659196 + } + } + }, + { + "ID": "13647", + "typeID": "Arrow", + "zOrder": "3", + "w": "1", + "h": "204", + "measuredW": "150", + "measuredH": "100", + "x": "587", + "y": "1412", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": 203.9489460564091 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 0.41187346119659196 + } + } + }, + { + "ID": "13652", + "typeID": "TextArea", + "zOrder": "96", + "w": "124", + "h": "252", + "measuredW": "200", + "measuredH": "140", + "x": "185", + "y": "1602" + }, + { + "ID": "13653", + "typeID": "Label", + "zOrder": "97", + "measuredW": "81", + "measuredH": "25", + "x": "206", + "y": "1614", + "properties": { + "size": "17", + "text": "JavaScript" + } + }, + { + "ID": "13662", + "typeID": "TextArea", + "zOrder": "102", + "w": "124", + "h": "205", + "measuredW": "200", + "measuredH": "140", + "x": "732", + "y": "1599" + }, + { + "ID": "13663", + "typeID": "Label", + "zOrder": "103", + "measuredW": "81", + "measuredH": "25", + "x": "753", + "y": "1611", + "properties": { + "size": "17", + "text": "JavaScript" + } + }, + { + "ID": "13672", + "typeID": "Arrow", + "zOrder": "2", + "w": "171", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "279", + "y": "1626", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 170.2568873142808, + "y": -0.33333333333325754 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.4873068151357529, + "y": -0.33333333333325754 + } + } + }, + { + "ID": "13673", + "typeID": "Arrow", + "zOrder": "1", + "w": "171", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "608", + "y": "1674", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 170.2568873142808, + "y": -0.33333333333325754 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.4873068151357529, + "y": -0.33333333333325754 + } + } + }, + { + "ID": "13674", + "typeID": "Arrow", + "zOrder": "107", + "w": "1", + "h": "139", + "measuredW": "150", + "measuredH": "100", + "x": "581", + "y": "2021", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4438624012549725, + "y": -0.00008403832147459167 + }, + "p2": { + "x": 0, + "y": 139 + }, + "stroke": "dotted" + } + }, + { + "ID": "13675", + "typeID": "Arrow", + "zOrder": "0", + "w": "1", + "h": "286", + "measuredW": "150", + "measuredH": "100", + "x": "587", + "y": "1684", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4438624012549725, + "y": -0.00008403832147459167 + }, + "p2": { + "x": 0, + "y": 286.1591837857379 + } + } + }, + { + "ID": "13676", + "typeID": "TextArea", + "zOrder": "108", + "w": "552", + "h": "124", + "measuredW": "200", + "measuredH": "140", + "x": "307", + "y": "1952" + }, + { + "ID": "13677", + "typeID": "Label", + "zOrder": "109", + "measuredW": "486", + "measuredH": "25", + "x": "336", + "y": "1972", + "properties": { + "size": "17", + "text": "For ecosystem and more, check other tracks involving GraphQL" + } + }, + { + "ID": "13678", + "typeID": "__group__", + "zOrder": "110", + "measuredW": "229", + "measuredH": "44", + "w": "229", + "h": "44", + "x": "602", + "y": "2007", + "properties": { + "controlName": "ext_link:roadmap.sh/backend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "229", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "147", + "measuredH": "25", + "x": "41", + "y": "9", + "properties": { + "size": "17", + "text": "Backend Roadmap" + } + } + ] + } + } + }, + { + "ID": "13679", + "typeID": "__group__", + "zOrder": "111", + "measuredW": "252", + "measuredH": "44", + "w": "252", + "h": "44", + "x": "336", + "y": "2007", + "properties": { + "controlName": "ext_link:roadmap.sh/frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "252", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "149", + "measuredH": "25", + "x": "51", + "y": "9", + "properties": { + "size": "17", + "text": "Frontend Roadmap" + } + } + ] + } + } + }, + { + "ID": "13687", + "typeID": "Canvas", + "zOrder": "112", + "w": "457", + "h": "151", + "measuredW": "100", + "measuredH": "70", + "x": "114", + "y": "169" + }, + { + "ID": "13688", + "typeID": "Label", + "zOrder": "113", + "measuredW": "232", + "measuredH": "28", + "x": "140", + "y": "194", + "properties": { + "size": "20", + "text": "Other Related Roadmaps" + } + }, + { + "ID": "13689", + "typeID": "__group__", + "zOrder": "114", + "measuredW": "280", + "measuredH": "26", + "w": "280", + "h": "26", + "x": "141", + "y": "237", + "properties": { + "controlName": "ext_link:roadmap.sh/frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "247", + "measuredH": "26", + "x": "33", + "y": "0", + "properties": { + "size": "18", + "text": "Frontend Developer Roadmap" + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "1", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "1", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10066329" + } + } + ] + } + } + }, + { + "ID": "13690", + "typeID": "__group__", + "zOrder": "115", + "measuredW": "278", + "measuredH": "26", + "w": "278", + "h": "26", + "x": "141", + "y": "267", + "properties": { + "controlName": "ext_link:roadmap.sh/backend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "245", + "measuredH": "26", + "x": "33", + "y": "0", + "properties": { + "size": "18", + "text": "Backend Developer Roadmap" + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "1", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "1", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10066329" + } + } + ] + } + } + }, + { + "ID": "13693", + "typeID": "__group__", + "zOrder": "40", + "measuredW": "340", + "measuredH": "50", + "w": "340", + "h": "50", + "x": "524", + "y": "424", + "properties": { + "controlName": "100-graphql-introduction" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "340", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "187", + "measuredH": "25", + "x": "76", + "y": "12", + "properties": { + "size": "17", + "text": "Introduction to GraphQL" + } + } + ] + } + } + }, + { + "ID": "13694", + "typeID": "__group__", + "zOrder": "46", + "measuredW": "340", + "measuredH": "50", + "w": "340", + "h": "50", + "x": "127", + "y": "621", + "properties": { + "controlName": "101-graphql-queries" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "340", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "137", + "measuredH": "25", + "x": "101", + "y": "12", + "properties": { + "size": "17", + "text": "GraphQL Queries" + } + } + ] + } + } + }, + { + "ID": "13695", + "typeID": "__group__", + "zOrder": "54", + "measuredW": "198", + "measuredH": "50", + "w": "198", + "h": "50", + "x": "665", + "y": "623", + "properties": { + "controlName": "102-mutations" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "76", + "measuredH": "25", + "x": "61", + "y": "12", + "properties": { + "size": "17", + "text": "Mutations" + } + } + ] + } + } + }, + { + "ID": "13696", + "typeID": "__group__", + "zOrder": "58", + "measuredW": "198", + "measuredH": "50", + "w": "198", + "h": "50", + "x": "665", + "y": "885", + "properties": { + "controlName": "103-subscriptions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "100", + "measuredH": "25", + "x": "49", + "y": "12", + "properties": { + "size": "17", + "text": "Subscriptons" + } + } + ] + } + } + }, + { + "ID": "13697", + "typeID": "__group__", + "zOrder": "63", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "961", + "y": "1026", + "properties": { + "controlName": "104-schema" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "63", + "measuredH": "25", + "x": "100", + "y": "9", + "properties": { + "size": "17", + "text": "Schema" + } + } + ] + } + } + }, + { + "ID": "13698", + "typeID": "__group__", + "zOrder": "73", + "measuredW": "162", + "measuredH": "44", + "w": "162", + "h": "44", + "x": "695", + "y": "1150", + "properties": { + "controlName": "104-validation" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "162", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "75", + "measuredH": "25", + "x": "43", + "y": "9", + "properties": { + "size": "17", + "text": "Validation" + } + } + ] + } + } + }, + { + "ID": "13699", + "typeID": "__group__", + "zOrder": "74", + "measuredW": "152", + "measuredH": "44", + "w": "152", + "h": "44", + "x": "507", + "y": "1150", + "properties": { + "controlName": "105-execution" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "152", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "76", + "measuredH": "25", + "x": "38", + "y": "9", + "properties": { + "size": "17", + "text": "Execution" + } + } + ] + } + } + }, + { + "ID": "13700", + "typeID": "__group__", + "zOrder": "83", + "measuredW": "226", + "measuredH": "44", + "w": "226", + "h": "44", + "x": "424", + "y": "1393", + "properties": { + "controlName": "106-serving-over-internet" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "226", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "166", + "measuredH": "25", + "x": "30", + "y": "9", + "properties": { + "size": "17", + "text": "Serving Over Internet" + } + } + ] + } + } + }, + { + "ID": "13701", + "typeID": "__group__", + "zOrder": "93", + "measuredW": "226", + "measuredH": "44", + "w": "226", + "h": "44", + "x": "424", + "y": "1499", + "properties": { + "controlName": "107-pagination" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "226", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "82", + "measuredH": "25", + "x": "72", + "y": "9", + "properties": { + "size": "17", + "text": "Pagination" + } + } + ] + } + } + }, + { + "ID": "13702", + "typeID": "__group__", + "zOrder": "94", + "measuredW": "255", + "measuredH": "44", + "w": "255", + "h": "44", + "x": "409", + "y": "1604", + "properties": { + "controlName": "108-frontend-implementations" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "255", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "203", + "measuredH": "25", + "x": "26", + "y": "9", + "properties": { + "size": "17", + "text": "Frontend Implementations" + } + } + ] + } + } + }, + { + "ID": "13703", + "typeID": "__group__", + "zOrder": "95", + "measuredW": "255", + "measuredH": "44", + "w": "255", + "h": "44", + "x": "409", + "y": "1653", + "properties": { + "controlName": "109-backend-implementations" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "255", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "201", + "measuredH": "25", + "x": "27", + "y": "9", + "properties": { + "size": "17", + "text": "Backend Implementations" + } + } + ] + } + } + }, + { + "ID": "13704", + "typeID": "__group__", + "zOrder": "41", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "127", + "y": "375", + "properties": { + "controlName": "100-graphql-introduction:what-is-graphql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "132", + "measuredH": "25", + "x": "66", + "y": "10", + "properties": { + "size": "17", + "text": "What is GraphQL" + } + } + ] + } + } + }, + { + "ID": "13705", + "typeID": "__group__", + "zOrder": "42", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "127", + "y": "426", + "properties": { + "controlName": "101-graphql-introduction:problems-graphql-solves" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "202", + "measuredH": "25", + "x": "31", + "y": "10", + "properties": { + "size": "17", + "text": "Problems GraphQL Solves" + } + } + ] + } + } + }, + { + "ID": "13706", + "typeID": "__group__", + "zOrder": "43", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "127", + "y": "476", + "properties": { + "controlName": "102-graphql-introduction:thinking-in-graphs" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "144", + "measuredH": "25", + "x": "60", + "y": "10", + "properties": { + "size": "17", + "text": "Thinking in Graphs" + } + } + ] + } + } + }, + { + "ID": "13707", + "typeID": "__group__", + "zOrder": "44", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "957", + "y": "399", + "properties": { + "controlName": "103-graphql-introduction:graphql-on-the-frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "198", + "measuredH": "25", + "x": "33", + "y": "10", + "properties": { + "size": "17", + "text": "GraphQL on the Frontend" + } + } + ] + } + } + }, + { + "ID": "13708", + "typeID": "__group__", + "zOrder": "45", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "957", + "y": "447", + "properties": { + "controlName": "104-graphql-introduction:graphql-on-the-backend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "196", + "measuredH": "25", + "x": "34", + "y": "10", + "properties": { + "size": "17", + "text": "GraphQL on the Backend" + } + } + ] + } + } + }, + { + "ID": "13709", + "typeID": "__group__", + "zOrder": "47", + "measuredW": "209", + "measuredH": "44", + "w": "209", + "h": "44", + "x": "127", + "y": "555", + "properties": { + "controlName": "100-graphql-queries:what-are-queries" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "209", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "136", + "measuredH": "25", + "x": "37", + "y": "10", + "properties": { + "size": "17", + "text": "What are Queries" + } + } + ] + } + } + }, + { + "ID": "13710", + "typeID": "__group__", + "zOrder": "48", + "measuredW": "156", + "measuredH": "44", + "w": "156", + "h": "44", + "x": "127", + "y": "694", + "properties": { + "controlName": "101-graphql-queries:fields" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "156", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "25", + "x": "54", + "y": "9", + "properties": { + "size": "17", + "text": "Fields" + } + } + ] + } + } + }, + { + "ID": "13711", + "typeID": "__group__", + "zOrder": "49", + "measuredW": "156", + "measuredH": "44", + "w": "156", + "h": "44", + "x": "127", + "y": "743", + "properties": { + "controlName": "102-graphql-queries:aliases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "156", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "55", + "measuredH": "25", + "x": "50", + "y": "9", + "properties": { + "size": "17", + "text": "Aliases" + } + } + ] + } + } + }, + { + "ID": "13712", + "typeID": "__group__", + "zOrder": "50", + "measuredW": "156", + "measuredH": "44", + "w": "156", + "h": "44", + "x": "127", + "y": "793", + "properties": { + "controlName": "103-graphql-queries:arguments" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "156", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "83", + "measuredH": "25", + "x": "36", + "y": "9", + "properties": { + "size": "17", + "text": "Arguments" + } + } + ] + } + } + }, + { + "ID": "13713", + "typeID": "__group__", + "zOrder": "53", + "measuredW": "156", + "measuredH": "44", + "w": "156", + "h": "44", + "x": "127", + "y": "843", + "properties": { + "controlName": "104-graphql-queries:directives" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "156", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "77", + "measuredH": "25", + "x": "39", + "y": "9", + "properties": { + "size": "17", + "text": "Directives" + } + } + ] + } + } + }, + { + "ID": "13714", + "typeID": "__group__", + "zOrder": "51", + "measuredW": "148", + "measuredH": "143", + "w": "148", + "h": "143", + "x": "288", + "y": "694", + "properties": { + "controlName": "105-graphql-queries:variables" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "119", + "h": "121", + "measuredW": "200", + "measuredH": "140", + "x": "18", + "y": "22" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "71", + "measuredH": "25", + "x": "44", + "y": "107", + "properties": { + "size": "17", + "text": "Variables" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "2", + "w": "148", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "81", + "measuredH": "25", + "x": "33", + "y": "9", + "properties": { + "size": "17", + "text": "Definitions" + } + }, + { + "ID": "4", + "typeID": "TextArea", + "zOrder": "4", + "w": "148", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "49", + "properties": { + "color": "16770457" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "64", + "measuredH": "25", + "x": "42", + "y": "58", + "properties": { + "size": "17", + "text": "Defaults" + } + } + ] + } + } + }, + { + "ID": "13715", + "typeID": "__group__", + "zOrder": "52", + "measuredW": "308", + "measuredH": "142", + "w": "308", + "h": "142", + "x": "127", + "y": "846", + "properties": { + "controlName": "106-graphql-queries:fragments" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "119", + "h": "119", + "measuredW": "200", + "measuredH": "140", + "x": "178", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "83", + "measuredH": "25", + "x": "196", + "y": "16", + "properties": { + "size": "17", + "text": "Fragments" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "2", + "w": "308", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "48", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "176", + "measuredH": "25", + "x": "66", + "y": "58", + "properties": { + "size": "17", + "text": "Variables in Fragments" + } + }, + { + "ID": "4", + "typeID": "TextArea", + "zOrder": "4", + "w": "308", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "98", + "properties": { + "color": "16770457" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "237", + "measuredH": "25", + "x": "35", + "y": "107", + "properties": { + "size": "17", + "text": "Inline Fragments / Meta Fields" + } + } + ] + } + } + }, + { + "ID": "13716", + "typeID": "__group__", + "zOrder": "55", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "957", + "y": "577", + "properties": { + "controlName": "100-mutations:what-are-mutations" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "159", + "measuredH": "25", + "x": "52", + "y": "10", + "properties": { + "size": "17", + "text": "What are Mutations?" + } + } + ] + } + } + }, + { + "ID": "13717", + "typeID": "__group__", + "zOrder": "56", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "957", + "y": "625", + "properties": { + "controlName": "101-mutations:multiple-mutation-fields" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "210", + "measuredH": "25", + "x": "27", + "y": "10", + "properties": { + "size": "17", + "text": "Multiple Fields in Mutations" + } + } + ] + } + } + }, + { + "ID": "13718", + "typeID": "__group__", + "zOrder": "57", + "measuredW": "264", + "measuredH": "44", + "w": "264", + "h": "44", + "x": "957", + "y": "674", + "properties": { + "controlName": "102-mutations:operation-name" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "264", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "128", + "measuredH": "25", + "x": "68", + "y": "10", + "properties": { + "size": "17", + "text": "Operation Name" + } + } + ] + } + } + }, + { + "ID": "13719", + "typeID": "__group__", + "zOrder": "59", + "measuredW": "270", + "measuredH": "44", + "w": "270", + "h": "44", + "x": "955", + "y": "748", + "properties": { + "controlName": "100-subscriptions:what-are-subscriptions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "270", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "177", + "measuredH": "25", + "x": "46", + "y": "9", + "properties": { + "size": "17", + "text": "What are Subscriptions" + } + } + ] + } + } + }, + { + "ID": "13720", + "typeID": "__group__", + "zOrder": "60", + "measuredW": "270", + "measuredH": "44", + "w": "270", + "h": "44", + "x": "955", + "y": "797", + "properties": { + "controlName": "101-subscriptions:event-based-subscriptions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "270", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "206", + "measuredH": "25", + "x": "32", + "y": "9", + "properties": { + "size": "17", + "text": "Event Based Subscriptions" + } + } + ] + } + } + }, + { + "ID": "13721", + "typeID": "__group__", + "zOrder": "61", + "measuredW": "270", + "measuredH": "44", + "w": "270", + "h": "44", + "x": "955", + "y": "846", + "properties": { + "controlName": "102-subscriptions:live-queries" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "270", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "98", + "measuredH": "25", + "x": "86", + "y": "9", + "properties": { + "size": "17", + "text": "Live Queries" + } + } + ] + } + } + }, + { + "ID": "13722", + "typeID": "__group__", + "zOrder": "62", + "measuredW": "270", + "measuredH": "44", + "w": "270", + "h": "44", + "x": "955", + "y": "895", + "properties": { + "controlName": "103-subscriptions:defer-stream-directives" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "270", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "221", + "measuredH": "25", + "x": "24", + "y": "9", + "properties": { + "size": "17", + "text": "@defer / @stream directives" + } + } + ] + } + } + }, + { + "ID": "13723", + "typeID": "__group__", + "zOrder": "64", + "measuredW": "254", + "measuredH": "44", + "w": "254", + "h": "44", + "x": "961", + "y": "1102", + "properties": { + "controlName": "100-schema:type-system" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "254", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "97", + "measuredH": "25", + "x": "78", + "y": "9", + "properties": { + "size": "17", + "text": "Type System" + } + } + ] + } + } + }, + { + "ID": "13724", + "typeID": "__group__", + "zOrder": "65", + "measuredW": "122", + "measuredH": "44", + "w": "122", + "h": "44", + "x": "961", + "y": "1153", + "properties": { + "controlName": "101-schema:fields" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "122", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "25", + "x": "37", + "y": "9", + "properties": { + "size": "17", + "text": "Fields" + } + } + ] + } + } + }, + { + "ID": "13726", + "typeID": "__group__", + "zOrder": "66", + "measuredW": "135", + "measuredH": "284", + "w": "135", + "h": "284", + "x": "1093", + "y": "1153", + "properties": { + "controlName": "102-schema:scalars" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "98", + "h": "273", + "measuredW": "200", + "measuredH": "140", + "x": "19", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "57", + "measuredH": "25", + "x": "39", + "y": "12", + "properties": { + "size": "17", + "text": "Scalars" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "2", + "w": "135", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "47", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "21", + "measuredH": "25", + "x": "57", + "y": "56", + "properties": { + "size": "17", + "text": "Int" + } + }, + { + "ID": "4", + "typeID": "TextArea", + "zOrder": "4", + "w": "135", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "95", + "properties": { + "color": "16770457" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "39", + "measuredH": "25", + "x": "48", + "y": "104", + "properties": { + "size": "17", + "text": "Float" + } + }, + { + "ID": "6", + "typeID": "TextArea", + "zOrder": "6", + "w": "135", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "144", + "properties": { + "color": "16770457" + } + }, + { + "ID": "7", + "typeID": "Label", + "zOrder": "7", + "measuredW": "46", + "measuredH": "25", + "x": "45", + "y": "153", + "properties": { + "size": "17", + "text": "String" + } + }, + { + "ID": "8", + "typeID": "TextArea", + "zOrder": "8", + "w": "135", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "192", + "properties": { + "color": "16770457" + } + }, + { + "ID": "9", + "typeID": "Label", + "zOrder": "9", + "measuredW": "64", + "measuredH": "25", + "x": "36", + "y": "201", + "properties": { + "size": "17", + "text": "Boolean" + } + }, + { + "ID": "10", + "typeID": "TextArea", + "zOrder": "10", + "w": "135", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "240", + "properties": { + "color": "16770457" + } + }, + { + "ID": "11", + "typeID": "Label", + "zOrder": "11", + "measuredW": "18", + "measuredH": "25", + "x": "59", + "y": "249", + "properties": { + "size": "17", + "text": "ID" + } + } + ] + } + } + }, + { + "ID": "13727", + "typeID": "__group__", + "zOrder": "67", + "measuredW": "122", + "measuredH": "44", + "w": "122", + "h": "44", + "x": "962", + "y": "1200", + "properties": { + "controlName": "103-schema:enums" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "122", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "53", + "measuredH": "25", + "x": "34", + "y": "9", + "properties": { + "size": "17", + "text": "Enums" + } + } + ] + } + } + }, + { + "ID": "13728", + "typeID": "__group__", + "zOrder": "68", + "measuredW": "122", + "measuredH": "44", + "w": "122", + "h": "44", + "x": "962", + "y": "1248", + "properties": { + "controlName": "104-schema:objects" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "122", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "59", + "measuredH": "25", + "x": "31", + "y": "9", + "properties": { + "size": "17", + "text": "Objects" + } + } + ] + } + } + }, + { + "ID": "13729", + "typeID": "__group__", + "zOrder": "69", + "measuredW": "122", + "measuredH": "44", + "w": "122", + "h": "44", + "x": "962", + "y": "1296", + "properties": { + "controlName": "105-schema:lists" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "122", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "36", + "measuredH": "25", + "x": "43", + "y": "9", + "properties": { + "size": "17", + "text": "Lists" + } + } + ] + } + } + }, + { + "ID": "13730", + "typeID": "__group__", + "zOrder": "70", + "measuredW": "122", + "measuredH": "44", + "w": "122", + "h": "44", + "x": "962", + "y": "1345", + "properties": { + "controlName": "106-schema:interfaces" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "122", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "78", + "measuredH": "25", + "x": "22", + "y": "9", + "properties": { + "size": "17", + "text": "Interfaces" + } + } + ] + } + } + }, + { + "ID": "13731", + "typeID": "__group__", + "zOrder": "71", + "measuredW": "122", + "measuredH": "44", + "w": "122", + "h": "44", + "x": "962", + "y": "1394", + "properties": { + "controlName": "107-schema:unions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "122", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "54", + "measuredH": "25", + "x": "34", + "y": "9", + "properties": { + "size": "17", + "text": "Unions" + } + } + ] + } + } + }, + { + "ID": "13732", + "typeID": "__group__", + "zOrder": "72", + "measuredW": "267", + "measuredH": "89", + "w": "267", + "h": "89", + "x": "962", + "y": "1444", + "properties": { + "controlName": "108-schema:arguments" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "112", + "h": "77", + "measuredW": "200", + "measuredH": "140", + "x": "141", + "y": "12" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "83", + "measuredH": "25", + "x": "155", + "y": "53", + "properties": { + "size": "17", + "text": "Arguments" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "2", + "w": "267", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "89", + "measuredH": "25", + "x": "89", + "y": "9", + "properties": { + "size": "17", + "text": "Input Types" + } + } + ] + } + } + }, + { + "ID": "13733", + "typeID": "__group__", + "zOrder": "75", + "measuredW": "203", + "measuredH": "44", + "w": "203", + "h": "44", + "x": "332", + "y": "1062", + "properties": { + "controlName": "100-execution:root-fields" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "203", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "88", + "measuredH": "25", + "x": "58", + "y": "9", + "properties": { + "size": "17", + "text": "Root Fields" + } + } + ] + } + } + }, + { + "ID": "13734", + "typeID": "__group__", + "zOrder": "76", + "measuredW": "119", + "measuredH": "259", + "w": "119", + "h": "259", + "x": "189", + "y": "1060", + "properties": { + "controlName": "101-execution:resolvers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "119", + "h": "259", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "77", + "measuredH": "25", + "x": "23", + "y": "12", + "properties": { + "size": "17", + "text": "Resolvers" + } + } + ] + } + } + }, + { + "ID": "13735", + "typeID": "__group__", + "zOrder": "81", + "measuredW": "203", + "measuredH": "44", + "w": "203", + "h": "44", + "x": "332", + "y": "1223", + "properties": { + "controlName": "102-execution:validation" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "203", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "75", + "measuredH": "25", + "x": "64", + "y": "9", + "properties": { + "size": "17", + "text": "Validation" + } + } + ] + } + } + }, + { + "ID": "13736", + "typeID": "__group__", + "zOrder": "82", + "measuredW": "203", + "measuredH": "44", + "w": "203", + "h": "44", + "x": "332", + "y": "1273", + "properties": { + "controlName": "103-execution:producing-the-result" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "203", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "161", + "measuredH": "25", + "x": "21", + "y": "9", + "properties": { + "size": "17", + "text": "Producing the Result" + } + } + ] + } + } + }, + { + "ID": "13737", + "typeID": "__group__", + "zOrder": "77", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1108", + "properties": { + "controlName": "100-execution:resolvers:synchronous" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "99", + "measuredH": "25", + "x": "33", + "y": "9", + "properties": { + "size": "17", + "text": "Synchronous" + } + } + ] + } + } + }, + { + "ID": "13738", + "typeID": "__group__", + "zOrder": "78", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1158", + "properties": { + "controlName": "101-execution:resolvers:asynchronous" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "107", + "measuredH": "25", + "x": "29", + "y": "9", + "properties": { + "size": "17", + "text": "Asynchronous" + } + } + ] + } + } + }, + { + "ID": "13739", + "typeID": "__group__", + "zOrder": "79", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1207", + "properties": { + "controlName": "102-execution:resolvers:scalar-coercion" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "123", + "measuredH": "25", + "x": "21", + "y": "9", + "properties": { + "size": "17", + "text": "Scalar Coercion" + } + } + ] + } + } + }, + { + "ID": "13740", + "typeID": "__group__", + "zOrder": "80", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1256", + "properties": { + "controlName": "103-execution:resolvers:lists" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "36", + "measuredH": "25", + "x": "65", + "y": "9", + "properties": { + "size": "17", + "text": "Lists" + } + } + ] + } + } + }, + { + "ID": "13741", + "typeID": "__group__", + "zOrder": "84", + "measuredW": "124", + "measuredH": "206", + "w": "124", + "h": "206", + "x": "185", + "y": "1364", + "properties": { + "controlName": "100-serving-over-internet:graphql-over-http" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "124", + "h": "206", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "86", + "measuredH": "25", + "x": "19", + "y": "12", + "properties": { + "size": "17", + "text": "Over HTTP" + } + } + ] + } + } + }, + { + "ID": "13742", + "typeID": "__group__", + "zOrder": "88", + "measuredW": "169", + "measuredH": "155", + "w": "169", + "h": "155", + "x": "729", + "y": "1225", + "properties": { + "controlName": "101-serving-over-internet:graphql-over-websockets" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "169", + "h": "155", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "136", + "measuredH": "25", + "x": "17", + "y": "116", + "properties": { + "size": "17", + "text": "Over WebSockets" + } + } + ] + } + } + }, + { + "ID": "13743", + "typeID": "__group__", + "zOrder": "91", + "measuredW": "169", + "measuredH": "103", + "w": "169", + "h": "103", + "x": "728", + "y": "1455", + "properties": { + "controlName": "102-serving-over-internet:graphql-over-sse" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "169", + "h": "103", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "74", + "measuredH": "25", + "x": "48", + "y": "12", + "properties": { + "size": "17", + "text": "Over SSE" + } + } + ] + } + } + }, + { + "ID": "13744", + "typeID": "__group__", + "zOrder": "85", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1410", + "properties": { + "controlName": "100-serving-over-internet:graphql-over-http:caching" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "64", + "measuredH": "25", + "x": "51", + "y": "9", + "properties": { + "size": "17", + "text": "Caching" + } + } + ] + } + } + }, + { + "ID": "13745", + "typeID": "__group__", + "zOrder": "86", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1458", + "properties": { + "controlName": "101-serving-over-internet:graphql-over-http:batching" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "69", + "measuredH": "25", + "x": "48", + "y": "9", + "properties": { + "size": "17", + "text": "Batching" + } + } + ] + } + } + }, + { + "ID": "13746", + "typeID": "__group__", + "zOrder": "87", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "124", + "y": "1506", + "properties": { + "controlName": "102-serving-over-internet:graphql-over-http:authorization" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "101", + "measuredH": "25", + "x": "32", + "y": "9", + "properties": { + "size": "17", + "text": "Authorization" + } + } + ] + } + } + }, + { + "ID": "13747", + "typeID": "__group__", + "zOrder": "89", + "measuredW": "230", + "measuredH": "44", + "w": "230", + "h": "44", + "x": "699", + "y": "1239", + "properties": { + "controlName": "100-serving-over-internet:graphql-over-websockets:real-time" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "76", + "measuredH": "25", + "x": "77", + "y": "9", + "properties": { + "size": "17", + "text": "Real-time" + } + } + ] + } + } + }, + { + "ID": "13748", + "typeID": "__group__", + "zOrder": "90", + "measuredW": "230", + "measuredH": "44", + "w": "230", + "h": "44", + "x": "699", + "y": "1287", + "properties": { + "controlName": "101-serving-over-internet:graphql-over-websockets:authorization" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "101", + "measuredH": "25", + "x": "64", + "y": "9", + "properties": { + "size": "17", + "text": "Authorization" + } + } + ] + } + } + }, + { + "ID": "13749", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "230", + "measuredH": "44", + "w": "230", + "h": "44", + "x": "698", + "y": "1499", + "properties": { + "controlName": "100-serving-over-internet:graphql-over-sse:authorization" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "101", + "measuredH": "25", + "x": "64", + "y": "9", + "properties": { + "size": "17", + "text": "Authorization" + } + } + ] + } + } + }, + { + "ID": "13750", + "typeID": "__group__", + "zOrder": "98", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "125", + "y": "1648", + "properties": { + "controlName": "100-frontend-implementations:graphql-http" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "95", + "measuredH": "25", + "x": "35", + "y": "9", + "properties": { + "size": "17", + "text": "graphql-http" + } + } + ] + } + } + }, + { + "ID": "13751", + "typeID": "__group__", + "zOrder": "99", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "125", + "y": "1697", + "properties": { + "controlName": "101-frontend-implementations:graphql-yoga" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "112", + "measuredH": "25", + "x": "27", + "y": "9", + "properties": { + "size": "17", + "text": "GraphQL Yoga" + } + } + ] + } + } + }, + { + "ID": "13752", + "typeID": "__group__", + "zOrder": "100", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "125", + "y": "1746", + "properties": { + "controlName": "102-frontend-implementations:apollo-server" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "102", + "measuredH": "25", + "x": "32", + "y": "9", + "properties": { + "size": "17", + "text": "Apollo Server" + } + } + ] + } + } + }, + { + "ID": "13753", + "typeID": "__group__", + "zOrder": "101", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "125", + "y": "1796", + "properties": { + "controlName": "103-frontend-implementations:mercurius" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "77", + "measuredH": "25", + "x": "44", + "y": "9", + "properties": { + "size": "17", + "text": "mercurius" + } + } + ] + } + } + }, + { + "ID": "13754", + "typeID": "__group__", + "zOrder": "104", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "744", + "y": "1645", + "properties": { + "controlName": "100-backend-implementations:relay" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "44", + "measuredH": "25", + "x": "27", + "y": "9", + "properties": { + "size": "17", + "text": "Relay" + } + } + ] + } + } + }, + { + "ID": "13755", + "typeID": "__group__", + "zOrder": "105", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "744", + "y": "1694", + "properties": { + "controlName": "101-backend-implementations:apollo-client" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "97", + "measuredH": "25", + "x": "27", + "y": "9", + "properties": { + "size": "17", + "text": "Apollo Client" + } + } + ] + } + } + }, + { + "ID": "13756", + "typeID": "__group__", + "zOrder": "106", + "measuredW": "166", + "measuredH": "44", + "w": "166", + "h": "44", + "x": "744", + "y": "1743", + "properties": { + "controlName": "102-backend-implementations:urql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "32", + "measuredH": "25", + "x": "27", + "y": "9", + "properties": { + "size": "17", + "text": "Urql" + } + } + ] + } + } + } + ] + }, + "attributes": { + "name": "New Wireframe 1 copy 2", + "order": 1000006.8992828326, + "parentID": null, + "notes": "" + }, + "branchID": "Master", + "resourceID": "4BE92169-157F-4FC5-8E20-403CBCF7A6C6", + "mockupH": "1991", + "mockupW": "1150", + "measuredW": "1264", + "measuredH": "2160", + "version": "1.0" + }, + "groupOffset": { + "x": 0, + "y": 0 + }, + "dependencies": [], + "projectID": "file:///Users/kamranahmed/Desktop/devops%20roadmap%5C.bmpr" +} diff --git a/public/sitemap.xml b/public/sitemap.xml index f0aa187cf..dca9f8b50 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -120,10 +120,16 @@ 2022-11-14T14:37:05.493Z 1.0 + + https://roadmap.sh/graphql + monthly + 2022-12-12T13:43:44.831Z + 1.0 + https://roadmap.sh/flutter monthly - 2022-11-14T14:37:05.558Z + 2022-12-12T13:27:19.515Z 1.0 @@ -340,7 +346,7 @@ https://roadmap.sh/signup monthly - 2022-11-14T14:37:05.596Z + 2022-12-05T14:00:28.160Z 0.9 diff --git a/scripts/content-skeleton.ts b/scripts/content-skeleton.ts index ebc7849fd..5e5f27bc8 100644 --- a/scripts/content-skeleton.ts +++ b/scripts/content-skeleton.ts @@ -54,6 +54,7 @@ const roadmaps: Record = { 'aspnet-core': require('../public/project/aspnet-core.json'), 'flutter': require('../public/project/flutter.json'), 'computer-science': require('../public/project/computer-science.json'), + 'graphql': require('../public/project/graphql.json'), }; if (!roadmapKey || !roadmaps[roadmapKey]) {