vscode-apollo 2.5.6 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/.circleci/config.yml +17 -0
  2. package/.github/workflows/E2E.yml +3 -2
  3. package/.github/workflows/build-prs.yml +2 -1
  4. package/.prettierignore +3 -0
  5. package/.semgrepignore +2 -0
  6. package/.vscode/settings.json +7 -2
  7. package/CHANGELOG.md +6 -0
  8. package/apollo.connectors.mapping.configuration.json +10 -0
  9. package/package.json +37 -3
  10. package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/connector-bug-report.md +36 -0
  11. package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/new-connector.md +10 -0
  12. package/sampleWorkspace/connectors-community/.github/renovate.json5 +3 -0
  13. package/sampleWorkspace/connectors-community/.vscode/extensions.json +3 -0
  14. package/sampleWorkspace/connectors-community/.vscode/settings.json +13 -0
  15. package/sampleWorkspace/connectors-community/.vscode/tasks.json +10 -0
  16. package/sampleWorkspace/connectors-community/README.md +108 -0
  17. package/sampleWorkspace/connectors-community/apollo.config.json +5 -0
  18. package/sampleWorkspace/connectors-community/connectors/.template/Dockerfile +5 -0
  19. package/sampleWorkspace/connectors-community/connectors/.template/README +46 -0
  20. package/sampleWorkspace/connectors-community/connectors/.template/connector.graphql +31 -0
  21. package/sampleWorkspace/connectors-community/connectors/.template/router.yaml +18 -0
  22. package/sampleWorkspace/connectors-community/connectors/.template/supergraph.yaml +6 -0
  23. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/README +12 -0
  24. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/albums.graphql +48 -0
  25. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/comments.graphql +54 -0
  26. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/photos.graphql +54 -0
  27. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/posts.graphql +51 -0
  28. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/supergraph.yaml +26 -0
  29. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/todos.graphql +51 -0
  30. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/users.graphql +80 -0
  31. package/sampleWorkspace/connectors-community/connectors/TM-Forum/README.md +9 -0
  32. package/sampleWorkspace/connectors-community/connectors/TM-Forum/router.yaml +18 -0
  33. package/sampleWorkspace/connectors-community/connectors/TM-Forum/supergraph.yaml +6 -0
  34. package/sampleWorkspace/connectors-community/connectors/TM-Forum/tmf622-ProductOrdering.graphql +296 -0
  35. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/README.md +7 -0
  36. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/addresses.graphql +30 -0
  37. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/customer.graphql +77 -0
  38. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/products.graphql +70 -0
  39. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/router.yaml +24 -0
  40. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/supergraph.yaml +14 -0
  41. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/swagger.json +69226 -0
  42. package/sampleWorkspace/connectors-community/connectors/anthropic/Dockerfile +5 -0
  43. package/sampleWorkspace/connectors-community/connectors/anthropic/README +61 -0
  44. package/sampleWorkspace/connectors-community/connectors/anthropic/messages.graphql +258 -0
  45. package/sampleWorkspace/connectors-community/connectors/anthropic/router.yaml +18 -0
  46. package/sampleWorkspace/connectors-community/connectors/anthropic/supergraph.yaml +6 -0
  47. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/README +3 -0
  48. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/connector.graphql +38 -0
  49. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/router.yaml +18 -0
  50. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/supergraph.yaml +6 -0
  51. package/sampleWorkspace/connectors-community/connectors/apple/README +36 -0
  52. package/sampleWorkspace/connectors-community/connectors/apple/app-store-connect.graphql +100 -0
  53. package/sampleWorkspace/connectors-community/connectors/apple/router.yaml +18 -0
  54. package/sampleWorkspace/connectors-community/connectors/apple/supergraph.yaml +6 -0
  55. package/sampleWorkspace/connectors-community/connectors/aws/README +125 -0
  56. package/sampleWorkspace/connectors-community/connectors/aws/dynamodb.graphql +130 -0
  57. package/sampleWorkspace/connectors-community/connectors/aws/json-responses/product-price.json +10 -0
  58. package/sampleWorkspace/connectors-community/connectors/aws/json-responses/products.json +53 -0
  59. package/sampleWorkspace/connectors-community/connectors/aws/lambda.graphql +179 -0
  60. package/sampleWorkspace/connectors-community/connectors/aws/router.yaml +54 -0
  61. package/sampleWorkspace/connectors-community/connectors/aws/supergraph.yaml +10 -0
  62. package/sampleWorkspace/connectors-community/connectors/bored/README.md +35 -0
  63. package/sampleWorkspace/connectors-community/connectors/bored/bored.graphql +87 -0
  64. package/sampleWorkspace/connectors-community/connectors/bored/supergraph.yaml +6 -0
  65. package/sampleWorkspace/connectors-community/connectors/common-room/README.md +23 -0
  66. package/sampleWorkspace/connectors-community/connectors/common-room/contacts.graphql +141 -0
  67. package/sampleWorkspace/connectors-community/connectors/common-room/json-responses/members_email_.json +61 -0
  68. package/sampleWorkspace/connectors-community/connectors/common-room/router.yaml +18 -0
  69. package/sampleWorkspace/connectors-community/connectors/common-room/supergraph.yaml +6 -0
  70. package/sampleWorkspace/connectors-community/connectors/googlemaps/README.md +58 -0
  71. package/sampleWorkspace/connectors-community/connectors/googlemaps/distancematrix.graphql +155 -0
  72. package/sampleWorkspace/connectors-community/connectors/googlemaps/places-legacy.graphql +117 -0
  73. package/sampleWorkspace/connectors-community/connectors/googlemaps/places.graphql +399 -0
  74. package/sampleWorkspace/connectors-community/connectors/googlemaps/router.yaml +18 -0
  75. package/sampleWorkspace/connectors-community/connectors/googlemaps/supergraph.yaml +18 -0
  76. package/sampleWorkspace/connectors-community/connectors/googlemaps/timezone.graphql +64 -0
  77. package/sampleWorkspace/connectors-community/connectors/heygen/README +105 -0
  78. package/sampleWorkspace/connectors-community/connectors/heygen/avatars.graphql +79 -0
  79. package/sampleWorkspace/connectors-community/connectors/heygen/photo-avatars.graphql +454 -0
  80. package/sampleWorkspace/connectors-community/connectors/heygen/router.yaml +21 -0
  81. package/sampleWorkspace/connectors-community/connectors/heygen/supergraph.yaml +10 -0
  82. package/sampleWorkspace/connectors-community/connectors/jira/README +36 -0
  83. package/sampleWorkspace/connectors-community/connectors/jira/connector.graphql +197 -0
  84. package/sampleWorkspace/connectors-community/connectors/jira/router.yaml +18 -0
  85. package/sampleWorkspace/connectors-community/connectors/jira/supergraph.yaml +6 -0
  86. package/sampleWorkspace/connectors-community/connectors/museums/README.md +40 -0
  87. package/sampleWorkspace/connectors-community/connectors/museums/chicagoArt.graphql +150 -0
  88. package/sampleWorkspace/connectors-community/connectors/museums/met.graphql +119 -0
  89. package/sampleWorkspace/connectors-community/connectors/museums/supergraph.yaml +10 -0
  90. package/sampleWorkspace/connectors-community/connectors/nws/README.md +45 -0
  91. package/sampleWorkspace/connectors-community/connectors/nws/alerts.graphql +598 -0
  92. package/sampleWorkspace/connectors-community/connectors/nws/supergraph.yaml +6 -0
  93. package/sampleWorkspace/connectors-community/connectors/odata/README +18 -0
  94. package/sampleWorkspace/connectors-community/connectors/odata/connector.graphql +171 -0
  95. package/sampleWorkspace/connectors-community/connectors/odata/router.yaml +18 -0
  96. package/sampleWorkspace/connectors-community/connectors/odata/supergraph.yaml +6 -0
  97. package/sampleWorkspace/connectors-community/connectors/openai/README.md +61 -0
  98. package/sampleWorkspace/connectors-community/connectors/openai/assistants.graphql +285 -0
  99. package/sampleWorkspace/connectors-community/connectors/openai/chat-completions.graphql +169 -0
  100. package/sampleWorkspace/connectors-community/connectors/openai/models.graphql +47 -0
  101. package/sampleWorkspace/connectors-community/connectors/openai/router.yaml +24 -0
  102. package/sampleWorkspace/connectors-community/connectors/openai/supergraph.yaml +14 -0
  103. package/sampleWorkspace/connectors-community/connectors/pokeapi/README +45 -0
  104. package/sampleWorkspace/connectors-community/connectors/pokeapi/games.graphql +70 -0
  105. package/sampleWorkspace/connectors-community/connectors/pokeapi/locations.graphql +127 -0
  106. package/sampleWorkspace/connectors-community/connectors/pokeapi/moves.graphql +107 -0
  107. package/sampleWorkspace/connectors-community/connectors/pokeapi/pokemon.graphql +539 -0
  108. package/sampleWorkspace/connectors-community/connectors/pokeapi/router.yaml +18 -0
  109. package/sampleWorkspace/connectors-community/connectors/pokeapi/supergraph.yaml +18 -0
  110. package/sampleWorkspace/connectors-community/connectors/strapi/README.md +75 -0
  111. package/sampleWorkspace/connectors-community/connectors/strapi/router.yaml +19 -0
  112. package/sampleWorkspace/connectors-community/connectors/strapi/supergraph.yaml +6 -0
  113. package/sampleWorkspace/connectors-community/connectors/strapi/users.graphql +227 -0
  114. package/sampleWorkspace/connectors-community/connectors/stripe/README.md +83 -0
  115. package/sampleWorkspace/connectors-community/connectors/stripe/checkout.graphql +112 -0
  116. package/sampleWorkspace/connectors-community/connectors/stripe/core-resources.graphql +868 -0
  117. package/sampleWorkspace/connectors-community/connectors/stripe/payment-methods.graphql +526 -0
  118. package/sampleWorkspace/connectors-community/connectors/stripe/products.graphql +162 -0
  119. package/sampleWorkspace/connectors-community/connectors/stripe/router.yaml +26 -0
  120. package/sampleWorkspace/connectors-community/connectors/stripe/supergraph.yaml +18 -0
  121. package/sampleWorkspace/connectors-community/connectors/supabase/README.md +80 -0
  122. package/sampleWorkspace/connectors-community/connectors/supabase/router.yaml +5 -0
  123. package/sampleWorkspace/connectors-community/connectors/supabase/supabase.graphql +143 -0
  124. package/sampleWorkspace/connectors-community/connectors/supabase/supergraph.yaml +6 -0
  125. package/sampleWorkspace/connectors-community/connectors/thespacedevs/README +46 -0
  126. package/sampleWorkspace/connectors-community/connectors/thespacedevs/agencies.graphql +193 -0
  127. package/sampleWorkspace/connectors-community/connectors/thespacedevs/api-throttle.graphql +33 -0
  128. package/sampleWorkspace/connectors-community/connectors/thespacedevs/astronauts.graphql +237 -0
  129. package/sampleWorkspace/connectors-community/connectors/thespacedevs/celestial-bodies.graphql +131 -0
  130. package/sampleWorkspace/connectors-community/connectors/thespacedevs/docking-events.graphql +3460 -0
  131. package/sampleWorkspace/connectors-community/connectors/thespacedevs/launches.graphql +1156 -0
  132. package/sampleWorkspace/connectors-community/connectors/thespacedevs/supergraph.yaml +77 -0
  133. package/sampleWorkspace/connectors-community/connectors/tint/README +35 -0
  134. package/sampleWorkspace/connectors-community/connectors/tint/accounts.graphql +69 -0
  135. package/sampleWorkspace/connectors-community/connectors/tint/router.yaml +21 -0
  136. package/sampleWorkspace/connectors-community/connectors/tint/social-feeds.graphql +62 -0
  137. package/sampleWorkspace/connectors-community/connectors/tint/supergraph.yaml +10 -0
  138. package/sampleWorkspace/connectors-community/connectors/todoist/README.md +48 -0
  139. package/sampleWorkspace/connectors-community/connectors/todoist/supergraph.yaml +6 -0
  140. package/sampleWorkspace/connectors-community/connectors/todoist/todoist.graphql +381 -0
  141. package/sampleWorkspace/connectors-community/connectors/trimblemaps/README +99 -0
  142. package/sampleWorkspace/connectors-community/connectors/trimblemaps/connector.graphql +66 -0
  143. package/sampleWorkspace/connectors-community/connectors/trimblemaps/router.yaml +18 -0
  144. package/sampleWorkspace/connectors-community/connectors/trimblemaps/supergraph.yaml +6 -0
  145. package/sampleWorkspace/connectors-community/connectors/twilio/README.md +44 -0
  146. package/sampleWorkspace/connectors-community/connectors/twilio/messages.graphql +107 -0
  147. package/sampleWorkspace/connectors-community/connectors/twilio/router.yaml +6 -0
  148. package/sampleWorkspace/connectors-community/connectors/twilio/supergraph.yaml +6 -0
  149. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/README.md +44 -0
  150. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/earthquakes.graphql +235 -0
  151. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/supergraph.yaml +6 -0
  152. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/README.md +44 -0
  153. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/earthquake-simple.graphql +87 -0
  154. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/router.yaml +3 -0
  155. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/supergraph.yaml +6 -0
  156. package/sampleWorkspace/connectors-community/connectors/usps/README +36 -0
  157. package/sampleWorkspace/connectors-community/connectors/usps/router.yaml +18 -0
  158. package/sampleWorkspace/connectors-community/connectors/usps/supergraph.yaml +6 -0
  159. package/sampleWorkspace/connectors-community/connectors/usps/tracking.graphql +118 -0
  160. package/sampleWorkspace/connectors-community/connectors/zendesk/README +36 -0
  161. package/sampleWorkspace/connectors-community/connectors/zendesk/connector.graphql +98 -0
  162. package/sampleWorkspace/connectors-community/connectors/zendesk/router.yaml +18 -0
  163. package/sampleWorkspace/connectors-community/connectors/zendesk/supergraph.yaml +6 -0
  164. package/sampleWorkspace/connectors-community/file-new/index.js +520 -0
  165. package/sampleWorkspace/connectors-community/package-lock.json +119 -0
  166. package/sampleWorkspace/connectors-community/package.json +20 -0
  167. package/sampleWorkspace/connectors-community/supergraph.yaml +6 -0
  168. package/sampleWorkspace/sampleWorkspace.code-workspace +29 -8
  169. package/src/__tests__/fixtures/textmate/test.apollo.connectors.mapping +213 -0
  170. package/src/__tests__/fixtures/textmate/test.connect.graphql +104 -0
  171. package/src/language-server/__tests__/fixtures/documents/functionCall.ts.snap +3 -3
  172. package/syntaxes/build.ts +266 -0
  173. package/syntaxes/connectors.mapping.json +532 -0
  174. package/syntaxes/connectors.mapping.yaml +440 -0
  175. package/syntaxes/graphql.connectors.json +426 -0
  176. package/syntaxes/graphql.connectors.yaml +254 -0
  177. package/syntaxes/graphql.json +8 -1
  178. package/syntaxes/tsconfig.json +6 -0
@@ -0,0 +1,47 @@
1
+ extend schema
2
+ @link(url: "https://specs.apollo.dev/federation/v2.10", import: ["@key", "@requires"])
3
+ @link(
4
+ url: "https://specs.apollo.dev/connect/v0.2"
5
+ import: ["@source", "@connect"]
6
+ )
7
+ @source(
8
+ name: "openai"
9
+ http: {
10
+ baseURL: "https://api.openai.com/v1/",
11
+ headers:[{name:"Authorization", value:"Bearer {$config.apiKey}"}]
12
+ }
13
+ )
14
+
15
+ type Model {
16
+ id: ID!
17
+ created: Float
18
+ ownedBy: String
19
+ }
20
+
21
+ type Query {
22
+ models: [Model]
23
+ @connect(
24
+ source: "openai"
25
+ http: { GET: "/models" }
26
+ selection: """
27
+ $.data {
28
+ id
29
+ created
30
+ ownedBy: owned_by
31
+ }
32
+ """
33
+ )
34
+ model(id:ID!): Model
35
+ @connect(
36
+ source: "openai"
37
+ http: { GET: "/models/{$args.id}" }
38
+ selection: """
39
+ $.data {
40
+ id
41
+ created
42
+ ownedBy: owned_by
43
+ }
44
+ """
45
+ entity: true
46
+ )
47
+ }
@@ -0,0 +1,24 @@
1
+ supergraph:
2
+ listen: 0.0.0.0:${env.PORT:-4000}
3
+
4
+ headers:
5
+ all:
6
+ request:
7
+ - propagate:
8
+ matching: .*
9
+ telemetry:
10
+ instrumentation:
11
+ spans:
12
+ mode: spec_compliant
13
+
14
+ connectors:
15
+ sources:
16
+ assistants.openai:
17
+ $config:
18
+ apiKey: ${env.API_KEY}
19
+ models.openai:
20
+ $config:
21
+ apiKey: ${env.API_KEY}
22
+ chat.openai:
23
+ $config:
24
+ apiKey: ${env.API_KEY}
@@ -0,0 +1,14 @@
1
+ federation_version: =2.11.0
2
+ subgraphs:
3
+ assistants:
4
+ routing_url: http://assistants
5
+ schema:
6
+ file: assistants.graphql
7
+ models:
8
+ routing_url: http://models
9
+ schema:
10
+ file: models.graphql
11
+ chat:
12
+ routing_url: http://chat
13
+ schema:
14
+ file: chat-completions.graphql
@@ -0,0 +1,45 @@
1
+ # Pokeapi REST Connector
2
+
3
+ This connector currently covers the Pokemon, locations, moves and games in the [PokeAPI](https://pokeapi.co/).
4
+
5
+ ## Additional Setup for VS Code Task runner
6
+
7
+ Edit your `.vscode/settings.json` to include the following keys:
8
+
9
+ ```
10
+ {
11
+ "terminal.integrated.profiles.osx": {
12
+ "graphos": {
13
+ "path": "zsh",
14
+ "args": ["-l"],
15
+ "env": {
16
+ "API_KEY": "",
17
+ "APOLLO_KEY": "",
18
+ ...
19
+ }
20
+ }
21
+ },
22
+ "terminal.integrated.defaultProfile.osx": "graphos"
23
+ }
24
+ ```
25
+
26
+ Once you've set this up, you can execute the `Tasks: Run Task` command in VS Code to run the `rover dev` task.
27
+ Alternatively, you can open a new terminal window in VS Code with the `graphos` profile, then run `rover dev --supergraph-config supergraph.yaml --router-config router.yaml`.
28
+
29
+ ## Contributing
30
+
31
+
32
+ The following schema modules can be added to this connector:
33
+
34
+ - Abilities - https://pokeapi.co/docs/v2#abilities
35
+ - Characteristics - https://pokeapi.co/docs/v2#characteristics
36
+ - Egg Groups - https://pokeapi.co/docs/v2#egg_groups
37
+ - Genders - https://pokeapi.co/docs/v2#genders
38
+ - Growth Rates - https://pokeapi.co/docs/v2#growth_rates
39
+ - Natures - https://pokeapi.co/docs/v2#natures
40
+ - Pokeathlon Stats - https://pokeapi.co/docs/v2#pokeathlon
41
+
42
+ To contribute them, make sure to:
43
+
44
+ 1. Add a schema designed for the module as a new `.graphql` file.
45
+ 2. Update the `supergraph.yaml` file accordingly.
@@ -0,0 +1,70 @@
1
+ extend schema
2
+ @link(
3
+ url: "https://specs.apollo.dev/federation/v2.11"
4
+ import: ["@key", "@requires"]
5
+ )
6
+ @link(
7
+ url: "https://specs.apollo.dev/connect/v0.2"
8
+ import: ["@source", "@connect"]
9
+ )
10
+ @source(name: "pokeapi", http: { baseURL: "https://pokeapi.co/api/v2/" })
11
+
12
+ type Generation @key(fields:"name"){
13
+ name: String
14
+ moves: [Move]
15
+ }
16
+
17
+ type Move @key(fields: "name", resolvable: false) {
18
+ name: String
19
+ }
20
+ type Version @key(fields: "name") {
21
+ name: String
22
+ versionGroup: VersionGroup
23
+ }
24
+ type VersionGroup @key(fields: "name") {
25
+ name: String
26
+ order: Int
27
+ regions: [LocationArea]
28
+ }
29
+ type LocationArea @key(fields: "name",resolvable: false) {
30
+ name: String
31
+ }
32
+ type Query {
33
+ generation(name: String!): Generation
34
+ @connect(
35
+ source: "pokeapi"
36
+ http: { GET: "generation/{$args.name}" }
37
+ selection: """
38
+ name
39
+ moves {
40
+ name
41
+ }
42
+ """
43
+ entity: true
44
+ )
45
+ version(name: String!): Version
46
+ @connect(
47
+ source: "pokeapi"
48
+ http: { GET: "version/{$args.name}" }
49
+ selection: """
50
+ name
51
+ versionGroup: version_group {
52
+ name
53
+ }
54
+ """
55
+ entity: true
56
+ )
57
+ versionGroup(name: String!): VersionGroup
58
+ @connect(
59
+ source: "pokeapi"
60
+ http: { GET: "version-group/{$args.name}" }
61
+ selection: """
62
+ name
63
+ order
64
+ regions {
65
+ name
66
+ }
67
+ """
68
+ entity: true
69
+ )
70
+ }
@@ -0,0 +1,127 @@
1
+ extend schema
2
+ @link(
3
+ url: "https://specs.apollo.dev/federation/v2.11"
4
+ import: ["@key", "@requires", "@shareable"]
5
+ )
6
+ @link(
7
+ url: "https://specs.apollo.dev/connect/v0.2"
8
+ import: ["@source", "@connect"]
9
+ )
10
+ @source(name: "pokeapi", http: { baseURL: "https://pokeapi.co/api/v2/" })
11
+
12
+ type LocationsConnection {
13
+ total: Int
14
+ results: [Location]
15
+ }
16
+ type Location @key(fields: "name") {
17
+ name: String
18
+ gameIndices: [GenerationGameIndex]
19
+ }
20
+
21
+ type GenerationGameIndex @shareable {
22
+ gameIndex: Int
23
+ generation: Generation
24
+ }
25
+
26
+ type Generation @key(fields: "name", resolvable: false) {
27
+ name: String
28
+ }
29
+ type LocationArea @key(fields: "name") {
30
+ name: String
31
+ pokemonEncounters: [PokemonEncounter]
32
+ }
33
+
34
+ type PokemonEncounter {
35
+ pokemon: Pokemon
36
+ versionDetails: [VersionDetail]
37
+ }
38
+
39
+ type Pokemon @key(fields: "name",resolvable: false) {
40
+ name: String
41
+ }
42
+
43
+ type VersionDetail {
44
+ version: Version
45
+ maxChance: Int
46
+ encounterDetails: [EncounterDetail]
47
+ }
48
+
49
+ type Version @key(fields: "name",resolvable: false) {
50
+ name: String
51
+ }
52
+
53
+ type EncounterDetail {
54
+ chance: Int
55
+ method: EncounterMethod
56
+ }
57
+
58
+ type EncounterMethod @key(fields: "name",resolvable: false){
59
+ name: String
60
+ }
61
+ type Query {
62
+ location(name: String!): Location
63
+ @connect(
64
+ source: "pokeapi"
65
+ http: { GET: "location/{$args.name}" }
66
+ selection: """
67
+ name
68
+ gameIndices: game_indices {
69
+ gameIndex: game_index
70
+ generation {
71
+ name
72
+ }
73
+ }
74
+ # Circular references
75
+ # areas {
76
+ # name
77
+ # }
78
+ # region {
79
+ # name
80
+ # }
81
+ """
82
+ entity: true
83
+ )
84
+ locations(name: String!): LocationsConnection
85
+ @connect(
86
+ source: "pokeapi"
87
+ http: { GET: "location" }
88
+ selection: """
89
+ total: count
90
+ results {
91
+ name
92
+ }
93
+ """
94
+ )
95
+ locationArea(name: String!): LocationArea
96
+ @connect(
97
+ source: "pokeapi"
98
+ http: { GET: "location-area/{$args.name}" }
99
+ selection: """
100
+ name
101
+ pokemonEncounters: pokemon_encounters {
102
+ pokemon { name }
103
+ versionDetails: version_details {
104
+ version {
105
+ name
106
+ }
107
+ maxChance: max_chance
108
+ encounterDetails: encounter_details {
109
+ chance: chance
110
+ method {
111
+ name
112
+ }
113
+ }
114
+ }
115
+ }
116
+ # Circular references
117
+ # areas {
118
+ # name
119
+ # }
120
+ # region {
121
+ # name
122
+ # }
123
+ """
124
+ entity: true
125
+ )
126
+
127
+ }
@@ -0,0 +1,107 @@
1
+ extend schema
2
+ @link(
3
+ url: "https://specs.apollo.dev/federation/v2.11"
4
+ import: ["@key", "@requires"]
5
+ )
6
+ @link(
7
+ url: "https://specs.apollo.dev/connect/v0.2"
8
+ import: ["@source", "@connect"]
9
+ )
10
+ @source(name: "pokeapi", http: { baseURL: "https://pokeapi.co/api/v2/" })
11
+ type Move @key(fields: "name") {
12
+ name: String
13
+ accuracy: Int
14
+ effectChance: Int
15
+ pp: Int
16
+ priority: Int
17
+ power: Int
18
+ damageClass: DamageClass
19
+ effectEntries: [EffectEntry]
20
+ generation: Generation
21
+ target: Target
22
+ type: Type
23
+ }
24
+ type DamageClass {
25
+ name: String
26
+ }
27
+ type EffectEntry {
28
+ effect: String
29
+ shortEffect: String
30
+ }
31
+ type Generation @key(fields: "name", resolvable: false) {
32
+ name: String
33
+ }
34
+ type Target {
35
+ name: String
36
+ }
37
+ type Type {
38
+ name: String
39
+ }
40
+ type MovesConnection {
41
+ total: Int
42
+ results: [Move]
43
+ }
44
+ type Query {
45
+ move(name: String!): Move
46
+ @connect(
47
+ source: "pokeapi"
48
+ http: { GET: "move/{$args.name}" }
49
+ selection: """
50
+ name
51
+ accuracy
52
+ effectChance: effect_chance
53
+ pp
54
+ priority
55
+ power
56
+ damageClass: damage_class {
57
+ name
58
+ }
59
+ effectEntries: effect_entries {
60
+ effect
61
+ shortEffect: short_effect
62
+ }
63
+ generation {
64
+ name
65
+ }
66
+ target {
67
+ name
68
+ }
69
+ type {
70
+ name
71
+ }
72
+ """
73
+ entity: true
74
+ )
75
+ moves(limit: Int = 20, offset: Int = 0): MovesConnection
76
+ @connect(
77
+ source: "pokeapi"
78
+ http: { GET: "move/?limit={$args.limit}&offset={$args.offset}" }
79
+ selection: """
80
+ total: count
81
+ results {
82
+ name
83
+ accuracy
84
+ effectChance: effect_chance
85
+ pp
86
+ priority
87
+ power
88
+ damageClass: damage_class {
89
+ name
90
+ }
91
+ effectEntries: effect_entries {
92
+ effect
93
+ shortEffect: short_effect
94
+ }
95
+ generation {
96
+ name
97
+ }
98
+ target {
99
+ name
100
+ }
101
+ type {
102
+ name
103
+ }
104
+ }
105
+ """
106
+ )
107
+ }