vscode-apollo 2.5.6 → 2.6.1

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 (180) 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/.github/workflows/release.yml +2 -2
  5. package/.prettierignore +3 -0
  6. package/.semgrepignore +2 -0
  7. package/.vscode/settings.json +7 -2
  8. package/CHANGELOG.md +12 -0
  9. package/apollo.connectors.mapping.configuration.json +10 -0
  10. package/package.json +38 -4
  11. package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/connector-bug-report.md +36 -0
  12. package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/new-connector.md +10 -0
  13. package/sampleWorkspace/connectors-community/.github/renovate.json5 +3 -0
  14. package/sampleWorkspace/connectors-community/.vscode/extensions.json +3 -0
  15. package/sampleWorkspace/connectors-community/.vscode/settings.json +13 -0
  16. package/sampleWorkspace/connectors-community/.vscode/tasks.json +10 -0
  17. package/sampleWorkspace/connectors-community/README.md +108 -0
  18. package/sampleWorkspace/connectors-community/apollo.config.json +5 -0
  19. package/sampleWorkspace/connectors-community/connectors/.template/Dockerfile +5 -0
  20. package/sampleWorkspace/connectors-community/connectors/.template/README +46 -0
  21. package/sampleWorkspace/connectors-community/connectors/.template/connector.graphql +31 -0
  22. package/sampleWorkspace/connectors-community/connectors/.template/router.yaml +18 -0
  23. package/sampleWorkspace/connectors-community/connectors/.template/supergraph.yaml +6 -0
  24. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/README +12 -0
  25. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/albums.graphql +48 -0
  26. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/comments.graphql +54 -0
  27. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/photos.graphql +54 -0
  28. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/posts.graphql +51 -0
  29. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/supergraph.yaml +26 -0
  30. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/todos.graphql +51 -0
  31. package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/users.graphql +80 -0
  32. package/sampleWorkspace/connectors-community/connectors/TM-Forum/README.md +9 -0
  33. package/sampleWorkspace/connectors-community/connectors/TM-Forum/router.yaml +18 -0
  34. package/sampleWorkspace/connectors-community/connectors/TM-Forum/supergraph.yaml +6 -0
  35. package/sampleWorkspace/connectors-community/connectors/TM-Forum/tmf622-ProductOrdering.graphql +296 -0
  36. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/README.md +7 -0
  37. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/addresses.graphql +30 -0
  38. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/customer.graphql +77 -0
  39. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/products.graphql +70 -0
  40. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/router.yaml +24 -0
  41. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/supergraph.yaml +14 -0
  42. package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/swagger.json +69226 -0
  43. package/sampleWorkspace/connectors-community/connectors/anthropic/Dockerfile +5 -0
  44. package/sampleWorkspace/connectors-community/connectors/anthropic/README +61 -0
  45. package/sampleWorkspace/connectors-community/connectors/anthropic/messages.graphql +258 -0
  46. package/sampleWorkspace/connectors-community/connectors/anthropic/router.yaml +18 -0
  47. package/sampleWorkspace/connectors-community/connectors/anthropic/supergraph.yaml +6 -0
  48. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/README +3 -0
  49. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/connector.graphql +38 -0
  50. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/router.yaml +18 -0
  51. package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/supergraph.yaml +6 -0
  52. package/sampleWorkspace/connectors-community/connectors/apple/README +36 -0
  53. package/sampleWorkspace/connectors-community/connectors/apple/app-store-connect.graphql +100 -0
  54. package/sampleWorkspace/connectors-community/connectors/apple/router.yaml +18 -0
  55. package/sampleWorkspace/connectors-community/connectors/apple/supergraph.yaml +6 -0
  56. package/sampleWorkspace/connectors-community/connectors/aws/README +125 -0
  57. package/sampleWorkspace/connectors-community/connectors/aws/dynamodb.graphql +130 -0
  58. package/sampleWorkspace/connectors-community/connectors/aws/json-responses/product-price.json +10 -0
  59. package/sampleWorkspace/connectors-community/connectors/aws/json-responses/products.json +53 -0
  60. package/sampleWorkspace/connectors-community/connectors/aws/lambda.graphql +179 -0
  61. package/sampleWorkspace/connectors-community/connectors/aws/router.yaml +54 -0
  62. package/sampleWorkspace/connectors-community/connectors/aws/supergraph.yaml +10 -0
  63. package/sampleWorkspace/connectors-community/connectors/bored/README.md +35 -0
  64. package/sampleWorkspace/connectors-community/connectors/bored/bored.graphql +87 -0
  65. package/sampleWorkspace/connectors-community/connectors/bored/supergraph.yaml +6 -0
  66. package/sampleWorkspace/connectors-community/connectors/common-room/README.md +23 -0
  67. package/sampleWorkspace/connectors-community/connectors/common-room/contacts.graphql +141 -0
  68. package/sampleWorkspace/connectors-community/connectors/common-room/json-responses/members_email_.json +61 -0
  69. package/sampleWorkspace/connectors-community/connectors/common-room/router.yaml +18 -0
  70. package/sampleWorkspace/connectors-community/connectors/common-room/supergraph.yaml +6 -0
  71. package/sampleWorkspace/connectors-community/connectors/googlemaps/README.md +58 -0
  72. package/sampleWorkspace/connectors-community/connectors/googlemaps/distancematrix.graphql +155 -0
  73. package/sampleWorkspace/connectors-community/connectors/googlemaps/places-legacy.graphql +117 -0
  74. package/sampleWorkspace/connectors-community/connectors/googlemaps/places.graphql +399 -0
  75. package/sampleWorkspace/connectors-community/connectors/googlemaps/router.yaml +18 -0
  76. package/sampleWorkspace/connectors-community/connectors/googlemaps/supergraph.yaml +18 -0
  77. package/sampleWorkspace/connectors-community/connectors/googlemaps/timezone.graphql +64 -0
  78. package/sampleWorkspace/connectors-community/connectors/heygen/README +105 -0
  79. package/sampleWorkspace/connectors-community/connectors/heygen/avatars.graphql +79 -0
  80. package/sampleWorkspace/connectors-community/connectors/heygen/photo-avatars.graphql +454 -0
  81. package/sampleWorkspace/connectors-community/connectors/heygen/router.yaml +21 -0
  82. package/sampleWorkspace/connectors-community/connectors/heygen/supergraph.yaml +10 -0
  83. package/sampleWorkspace/connectors-community/connectors/jira/README +36 -0
  84. package/sampleWorkspace/connectors-community/connectors/jira/connector.graphql +197 -0
  85. package/sampleWorkspace/connectors-community/connectors/jira/router.yaml +18 -0
  86. package/sampleWorkspace/connectors-community/connectors/jira/supergraph.yaml +6 -0
  87. package/sampleWorkspace/connectors-community/connectors/museums/README.md +40 -0
  88. package/sampleWorkspace/connectors-community/connectors/museums/chicagoArt.graphql +150 -0
  89. package/sampleWorkspace/connectors-community/connectors/museums/met.graphql +119 -0
  90. package/sampleWorkspace/connectors-community/connectors/museums/supergraph.yaml +10 -0
  91. package/sampleWorkspace/connectors-community/connectors/nws/README.md +45 -0
  92. package/sampleWorkspace/connectors-community/connectors/nws/alerts.graphql +598 -0
  93. package/sampleWorkspace/connectors-community/connectors/nws/supergraph.yaml +6 -0
  94. package/sampleWorkspace/connectors-community/connectors/odata/README +18 -0
  95. package/sampleWorkspace/connectors-community/connectors/odata/connector.graphql +171 -0
  96. package/sampleWorkspace/connectors-community/connectors/odata/router.yaml +18 -0
  97. package/sampleWorkspace/connectors-community/connectors/odata/supergraph.yaml +6 -0
  98. package/sampleWorkspace/connectors-community/connectors/openai/README.md +61 -0
  99. package/sampleWorkspace/connectors-community/connectors/openai/assistants.graphql +285 -0
  100. package/sampleWorkspace/connectors-community/connectors/openai/chat-completions.graphql +169 -0
  101. package/sampleWorkspace/connectors-community/connectors/openai/models.graphql +47 -0
  102. package/sampleWorkspace/connectors-community/connectors/openai/router.yaml +24 -0
  103. package/sampleWorkspace/connectors-community/connectors/openai/supergraph.yaml +14 -0
  104. package/sampleWorkspace/connectors-community/connectors/pokeapi/README +45 -0
  105. package/sampleWorkspace/connectors-community/connectors/pokeapi/games.graphql +70 -0
  106. package/sampleWorkspace/connectors-community/connectors/pokeapi/locations.graphql +127 -0
  107. package/sampleWorkspace/connectors-community/connectors/pokeapi/moves.graphql +107 -0
  108. package/sampleWorkspace/connectors-community/connectors/pokeapi/pokemon.graphql +539 -0
  109. package/sampleWorkspace/connectors-community/connectors/pokeapi/router.yaml +18 -0
  110. package/sampleWorkspace/connectors-community/connectors/pokeapi/supergraph.yaml +18 -0
  111. package/sampleWorkspace/connectors-community/connectors/strapi/README.md +75 -0
  112. package/sampleWorkspace/connectors-community/connectors/strapi/router.yaml +19 -0
  113. package/sampleWorkspace/connectors-community/connectors/strapi/supergraph.yaml +6 -0
  114. package/sampleWorkspace/connectors-community/connectors/strapi/users.graphql +227 -0
  115. package/sampleWorkspace/connectors-community/connectors/stripe/README.md +83 -0
  116. package/sampleWorkspace/connectors-community/connectors/stripe/checkout.graphql +112 -0
  117. package/sampleWorkspace/connectors-community/connectors/stripe/core-resources.graphql +868 -0
  118. package/sampleWorkspace/connectors-community/connectors/stripe/payment-methods.graphql +526 -0
  119. package/sampleWorkspace/connectors-community/connectors/stripe/products.graphql +162 -0
  120. package/sampleWorkspace/connectors-community/connectors/stripe/router.yaml +26 -0
  121. package/sampleWorkspace/connectors-community/connectors/stripe/supergraph.yaml +18 -0
  122. package/sampleWorkspace/connectors-community/connectors/supabase/README.md +80 -0
  123. package/sampleWorkspace/connectors-community/connectors/supabase/router.yaml +5 -0
  124. package/sampleWorkspace/connectors-community/connectors/supabase/supabase.graphql +143 -0
  125. package/sampleWorkspace/connectors-community/connectors/supabase/supergraph.yaml +6 -0
  126. package/sampleWorkspace/connectors-community/connectors/thespacedevs/README +46 -0
  127. package/sampleWorkspace/connectors-community/connectors/thespacedevs/agencies.graphql +193 -0
  128. package/sampleWorkspace/connectors-community/connectors/thespacedevs/api-throttle.graphql +33 -0
  129. package/sampleWorkspace/connectors-community/connectors/thespacedevs/astronauts.graphql +237 -0
  130. package/sampleWorkspace/connectors-community/connectors/thespacedevs/celestial-bodies.graphql +131 -0
  131. package/sampleWorkspace/connectors-community/connectors/thespacedevs/docking-events.graphql +3460 -0
  132. package/sampleWorkspace/connectors-community/connectors/thespacedevs/launches.graphql +1156 -0
  133. package/sampleWorkspace/connectors-community/connectors/thespacedevs/supergraph.yaml +77 -0
  134. package/sampleWorkspace/connectors-community/connectors/tint/README +35 -0
  135. package/sampleWorkspace/connectors-community/connectors/tint/accounts.graphql +69 -0
  136. package/sampleWorkspace/connectors-community/connectors/tint/router.yaml +21 -0
  137. package/sampleWorkspace/connectors-community/connectors/tint/social-feeds.graphql +62 -0
  138. package/sampleWorkspace/connectors-community/connectors/tint/supergraph.yaml +10 -0
  139. package/sampleWorkspace/connectors-community/connectors/todoist/README.md +48 -0
  140. package/sampleWorkspace/connectors-community/connectors/todoist/supergraph.yaml +6 -0
  141. package/sampleWorkspace/connectors-community/connectors/todoist/todoist.graphql +381 -0
  142. package/sampleWorkspace/connectors-community/connectors/trimblemaps/README +99 -0
  143. package/sampleWorkspace/connectors-community/connectors/trimblemaps/connector.graphql +66 -0
  144. package/sampleWorkspace/connectors-community/connectors/trimblemaps/router.yaml +18 -0
  145. package/sampleWorkspace/connectors-community/connectors/trimblemaps/supergraph.yaml +6 -0
  146. package/sampleWorkspace/connectors-community/connectors/twilio/README.md +44 -0
  147. package/sampleWorkspace/connectors-community/connectors/twilio/messages.graphql +107 -0
  148. package/sampleWorkspace/connectors-community/connectors/twilio/router.yaml +6 -0
  149. package/sampleWorkspace/connectors-community/connectors/twilio/supergraph.yaml +6 -0
  150. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/README.md +44 -0
  151. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/earthquakes.graphql +235 -0
  152. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/supergraph.yaml +6 -0
  153. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/README.md +44 -0
  154. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/earthquake-simple.graphql +87 -0
  155. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/router.yaml +3 -0
  156. package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/supergraph.yaml +6 -0
  157. package/sampleWorkspace/connectors-community/connectors/usps/README +36 -0
  158. package/sampleWorkspace/connectors-community/connectors/usps/router.yaml +18 -0
  159. package/sampleWorkspace/connectors-community/connectors/usps/supergraph.yaml +6 -0
  160. package/sampleWorkspace/connectors-community/connectors/usps/tracking.graphql +118 -0
  161. package/sampleWorkspace/connectors-community/connectors/zendesk/README +36 -0
  162. package/sampleWorkspace/connectors-community/connectors/zendesk/connector.graphql +98 -0
  163. package/sampleWorkspace/connectors-community/connectors/zendesk/router.yaml +18 -0
  164. package/sampleWorkspace/connectors-community/connectors/zendesk/supergraph.yaml +6 -0
  165. package/sampleWorkspace/connectors-community/file-new/index.js +520 -0
  166. package/sampleWorkspace/connectors-community/package-lock.json +119 -0
  167. package/sampleWorkspace/connectors-community/package.json +20 -0
  168. package/sampleWorkspace/connectors-community/supergraph.yaml +6 -0
  169. package/sampleWorkspace/sampleWorkspace.code-workspace +29 -8
  170. package/src/__tests__/fixtures/textmate/test.apollo.connectors.mapping +213 -0
  171. package/src/__tests__/fixtures/textmate/test.connect.graphql +104 -0
  172. package/src/language-server/__tests__/fixtures/documents/functionCall.ts.snap +3 -3
  173. package/syntaxes/build.ts +266 -0
  174. package/syntaxes/connectors.mapping.json +532 -0
  175. package/syntaxes/connectors.mapping.yaml +440 -0
  176. package/syntaxes/graphql.connectors.json +426 -0
  177. package/syntaxes/graphql.connectors.yaml +254 -0
  178. package/syntaxes/graphql.json +8 -1
  179. package/syntaxes/publish.sh +43 -0
  180. package/syntaxes/tsconfig.json +6 -0
@@ -0,0 +1,54 @@
1
+ extend schema
2
+ @link(
3
+ url: "https://specs.apollo.dev/federation/v2.10"
4
+ import: ["@key"]
5
+ )
6
+ @link(
7
+ url: "https://specs.apollo.dev/connect/v0.2"
8
+ import: ["@connect", "@source"]
9
+ )
10
+ # A @source directive defines a shared data source for multiple connectors.
11
+ @source(
12
+ name: "JSONPlaceholder"
13
+ http: { baseURL: "https://jsonplaceholder.typicode.com/" }
14
+ )
15
+
16
+ type Photo {
17
+ id: ID!
18
+ albumId: ID!
19
+ title: String
20
+ url: String
21
+ thumbnailUrl: String
22
+ }
23
+
24
+ type Album @key(fields: "id") {
25
+ id: ID!
26
+ photos: [Photo]
27
+ @connect(
28
+ source: "JSONPlaceholder"
29
+ http: { GET: "/albums/{$this.id}/photos" }
30
+ selection: """
31
+ id
32
+ albumId
33
+ title
34
+ url
35
+ thumbnailUrl
36
+ """
37
+ )
38
+ }
39
+
40
+ type Query {
41
+ getPhoto(id: ID!): Photo
42
+ @connect(
43
+ source: "JSONPlaceholder"
44
+ http: { GET: "/photos/{$args.id}" }
45
+ selection: """
46
+ id
47
+ albumId
48
+ title
49
+ url
50
+ thumbnailUrl
51
+ """
52
+ entity: true
53
+ )
54
+ }
@@ -0,0 +1,51 @@
1
+ extend schema
2
+ @link(
3
+ url: "https://specs.apollo.dev/federation/v2.10"
4
+ import: ["@key"]
5
+ )
6
+ @link(
7
+ url: "https://specs.apollo.dev/connect/v0.2"
8
+ import: ["@connect", "@source"]
9
+ )
10
+ # A @source directive defines a shared data source for multiple connectors.
11
+ @source(
12
+ name: "JSONPlaceholder"
13
+ http: { baseURL: "https://jsonplaceholder.typicode.com/" }
14
+ )
15
+
16
+ type Post @key(fields: "id") {
17
+ id: ID!
18
+ userId: ID!
19
+ title: String
20
+ body: String
21
+ }
22
+
23
+ type User @key(fields: "id") {
24
+ id: ID!
25
+ posts: [Post]
26
+ @connect(
27
+ source: "JSONPlaceholder"
28
+ http: { GET: "/users/{$this.id}/posts" }
29
+ selection: """
30
+ id
31
+ userId
32
+ title
33
+ body
34
+ """
35
+ )
36
+ }
37
+
38
+ type Query {
39
+ getPost(id: ID!): Post
40
+ @connect(
41
+ source: "JSONPlaceholder"
42
+ http: { GET: "/posts/{$args.id}" }
43
+ selection: """
44
+ id
45
+ userId
46
+ title
47
+ body
48
+ """
49
+ entity: true
50
+ )
51
+ }
@@ -0,0 +1,26 @@
1
+ federation_version: =2.11.0
2
+ subgraphs:
3
+ users:
4
+ routing_url: http://ignored
5
+ schema:
6
+ file: users.graphql
7
+ todos:
8
+ routing_url: http://ignored
9
+ schema:
10
+ file: todos.graphql
11
+ posts:
12
+ routing_url: http://ignored
13
+ schema:
14
+ file: posts.graphql
15
+ comments:
16
+ routing_url: http://ignored
17
+ schema:
18
+ file: comments.graphql
19
+ albums:
20
+ routing_url: http://ignored
21
+ schema:
22
+ file: albums.graphql
23
+ photos:
24
+ routing_url: http://ignored
25
+ schema:
26
+ file: photos.graphql
@@ -0,0 +1,51 @@
1
+ extend schema
2
+ @link(
3
+ url: "https://specs.apollo.dev/federation/v2.10"
4
+ import: ["@key"]
5
+ )
6
+ @link(
7
+ url: "https://specs.apollo.dev/connect/v0.2"
8
+ import: ["@connect", "@source"]
9
+ )
10
+ # A @source directive defines a shared data source for multiple connectors.
11
+ @source(
12
+ name: "JSONPlaceholder"
13
+ http: { baseURL: "https://jsonplaceholder.typicode.com/" }
14
+ )
15
+
16
+ type ToDo {
17
+ id: ID!
18
+ userId: ID!
19
+ title: String
20
+ completed: Boolean
21
+ }
22
+
23
+ type User @key(fields: "id") {
24
+ id: ID!
25
+ todos: [ToDo]
26
+ @connect(
27
+ source: "JSONPlaceholder"
28
+ http: { GET: "/users/{$this.id}/todos" }
29
+ selection: """
30
+ id
31
+ userId
32
+ title
33
+ completed
34
+ """
35
+ )
36
+ }
37
+
38
+ type Query {
39
+ getToDo(id: ID!): ToDo
40
+ @connect(
41
+ source: "JSONPlaceholder"
42
+ http: { GET: "/todos/{$args.id}" }
43
+ selection: """
44
+ id
45
+ userId
46
+ title
47
+ completed
48
+ """
49
+ entity: true
50
+ )
51
+ }
@@ -0,0 +1,80 @@
1
+
2
+ # These are the necessary federation and connector directives you will be using
3
+ extend schema
4
+ @link(
5
+ url: "https://specs.apollo.dev/federation/v2.10"
6
+ import: ["@key"]
7
+ )
8
+ @link(
9
+ url: "https://specs.apollo.dev/connect/v0.2"
10
+ import: ["@connect", "@source"]
11
+ )
12
+ # A @source directive defines a shared data source for multiple connectors.
13
+ @source(
14
+ name: "JSONPlaceholder"
15
+ http: { baseURL: "https://jsonplaceholder.typicode.com/" }
16
+ )
17
+
18
+ type User @key(fields: "id") {
19
+ id: ID!
20
+ name: String
21
+ username: String
22
+ email: String
23
+ address: Address
24
+ phone: String
25
+ website: String
26
+ company: Company
27
+ }
28
+
29
+
30
+ type Address {
31
+ line1: String
32
+ line2: String
33
+ city: String
34
+ zip: String
35
+ geo: Geo
36
+ }
37
+
38
+ type Geo {
39
+ lat: String
40
+ lng: String
41
+ }
42
+
43
+ type Company {
44
+ name: String
45
+ catchPhrase: String
46
+ bs: String
47
+ }
48
+
49
+ type Query {
50
+ getUser(id: ID!): User
51
+ # A @connect directive defines the API data source of a GraphQL schema field.
52
+ @connect(
53
+ source: "JSONPlaceholder"
54
+ http: { GET: "/users/{$args.id}" }
55
+ selection: """
56
+ id
57
+ name
58
+ username
59
+ email
60
+ address: $.address {
61
+ line1: street
62
+ line2: suite
63
+ city
64
+ zip: zipcode
65
+ geo: $.geo {
66
+ lat
67
+ lng
68
+ }
69
+ }
70
+ phone
71
+ website
72
+ company: $.company {
73
+ name
74
+ catchPhrase
75
+ bs
76
+ }
77
+ """
78
+ entity: true
79
+ )
80
+ }
@@ -0,0 +1,9 @@
1
+ # [TM Forum](https://www.tmforum.org/) Connector
2
+
3
+ This connector currently only covers [TMF622 Product Ordering](https://github.com/tmforum-apis/TMF622_ProductOrder/blob/master/TMF622-ProductOrder-v4.0.0.swagger.json).
4
+
5
+ ## Additional Setup for VS Code Task runner
6
+
7
+ ## Contributing
8
+
9
+ Any of the other TM Forum APIs can be contributed, just name the schema file in a format: tmfXXX-{TMF_NAME}.graphql
@@ -0,0 +1,18 @@
1
+ supergraph:
2
+ listen: 127.0.0.1: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
+ # subgraphs:
16
+ # connector:
17
+ # $config:
18
+ # api: ${env.API_KEY}
@@ -0,0 +1,6 @@
1
+ federation_version: =2.11.0
2
+ subgraphs:
3
+ connector:
4
+ routing_url: http://connector
5
+ schema:
6
+ file: connector.graphql
@@ -0,0 +1,296 @@
1
+ extend schema
2
+ @link(url: "https://specs.apollo.dev/federation/v2.10", import: ["@key", "@requires", "@shareable"])
3
+ @link(
4
+ url: "https://specs.apollo.dev/connect/v0.2"
5
+ import: ["@source", "@connect"]
6
+ )
7
+ @source(
8
+ name: "tmf"
9
+ http: {
10
+ # https://github.com/tmforum-apis/TMF622_ProductOrder/blob/master/TMF622-ProductOrder-v4.0.0.swagger.json
11
+ baseURL: "http://127.0.0.1:4010"
12
+ }
13
+ )
14
+
15
+ type ProductOrder @key(fields: "id"){
16
+ id: ID!
17
+ category: String
18
+ description: String
19
+ priority: String
20
+ """
21
+ Related channels used for order capture
22
+ """
23
+ channels: [Channel]
24
+ notes: [Note]
25
+ items: [ProductOrderItem]
26
+ }
27
+
28
+ type ProductOrderItem @key(fields: "id") {
29
+ id: ID
30
+ quantity: Int
31
+ action: String
32
+ state: String
33
+ billingAccount: BillingAccount
34
+ product: Product
35
+ offer: ProductOffering
36
+ price: ProductPrice
37
+ term: ProductTerm
38
+ }
39
+
40
+ type ProductTerm {
41
+ name: String
42
+ description: String
43
+ duration: TermDuration
44
+ }
45
+
46
+ type TermDuration {
47
+ amount: Int
48
+ units: String
49
+ }
50
+
51
+ type BillingAccount @key(fields: "id"){
52
+ id: ID!
53
+ href: String
54
+ }
55
+
56
+ type ProductPrice {
57
+ name: String
58
+ description: String
59
+ taxRate: Float
60
+ subtotal: Money
61
+ total: Money
62
+ type: PriceType
63
+ paymentInterval: PriceInterval
64
+ }
65
+
66
+ enum PriceInterval {
67
+ ONE_TIME
68
+ MONTHLY
69
+ ANNUALY
70
+ }
71
+
72
+ enum PriceType {
73
+ RECURRING
74
+ NON_RECURRING
75
+ }
76
+
77
+ type Money @shareable {
78
+ currency: String
79
+ amount: Float
80
+ }
81
+
82
+ type ProductOffering @key(fields: "id"){
83
+ id: ID
84
+ name: String
85
+ href: String
86
+ }
87
+
88
+ type Product @key(fields: "id"){
89
+ id: ID
90
+ name: String
91
+ version: String
92
+ href: String
93
+ characteristics: [ProductCharacteristic]
94
+ }
95
+
96
+ type ProductCharacteristic {
97
+ id: ID
98
+ name: String
99
+ value: String
100
+ }
101
+
102
+ type Note @key(fields: "id"){
103
+ id: ID
104
+ author: String
105
+ date: String
106
+ text: String
107
+ }
108
+
109
+ type Channel @key(fields: "id"){
110
+ id: ID
111
+ name: String
112
+ }
113
+
114
+ type Query {
115
+ """
116
+ List or find ProductOrder objects
117
+ """
118
+ productOrders(limit: Int = 25, offset: Int = 0): [ProductOrder]
119
+ @connect(
120
+ source: "tmf"
121
+ http: { GET: "/productOrder"
122
+ queryParams: """
123
+ limit: $args.limit
124
+ offset: $args.offset
125
+ """
126
+ }
127
+ selection: """
128
+ id
129
+ category
130
+ description
131
+ priority
132
+ channels: $.channel {
133
+ id: channel.id
134
+ name: channel.name
135
+ }
136
+ notes: $.note {
137
+ id
138
+ author
139
+ date
140
+ text
141
+ }
142
+ items: $.productOrderItem {
143
+ id
144
+ quantity
145
+ action
146
+ state
147
+ billingAccount: $.billingAccount {
148
+ id
149
+ href
150
+ }
151
+ product: $.product {
152
+ id: productSpecification.id
153
+ name: productSpecification.name
154
+ version: productSpecification.version
155
+ href: productSpecification.href
156
+ characteristics: $.productCharacteristic {
157
+ id
158
+ name
159
+ value
160
+ }
161
+ }
162
+ offer: $.productOffering {
163
+ id
164
+ name
165
+ href
166
+ }
167
+ price: $.itemPrice->first {
168
+ name
169
+ description
170
+ taxRate: price.taxRate
171
+ subtotal: $.price.dutyFreeAmount {
172
+ currency: unit
173
+ amount: value
174
+ }
175
+ total: $.price.taxIncludedAmount {
176
+ currency: unit
177
+ amount: value
178
+ }
179
+ type: priceType->match(["nonRecurring", "NON_RECURRING"], ["recurring", "RECURRING"])
180
+ paymentInterval: recurringChargePeriod->match(
181
+ ["month","MONTHLY"],
182
+ ["year","ANNUALY"],
183
+ [null,"ONE_TIME"],
184
+ )
185
+ }
186
+ term: $.itemTerm->first {
187
+ name
188
+ description
189
+ duration: $.duration {
190
+ amount
191
+ units
192
+ }
193
+ }
194
+ }
195
+ """
196
+ )
197
+ """
198
+ List or find ProductOrder objects
199
+ """
200
+ productOrder(id: ID!): ProductOrder
201
+ @connect(
202
+ source: "tmf"
203
+ http: { GET: "/productOrder/{$args.id}" }
204
+ entity: true
205
+ selection: """
206
+ id
207
+ category
208
+ description
209
+ priority
210
+ channels: $.channel {
211
+ id: channel.id
212
+ name: channel.name
213
+ }
214
+ notes: $.note {
215
+ id
216
+ author
217
+ date
218
+ text
219
+ }
220
+ items: $.productOrderItem {
221
+ id
222
+ quantity
223
+ action
224
+ state
225
+ billingAccount: $.billingAccount {
226
+ id
227
+ href
228
+ }
229
+ product: $.product {
230
+ id: productSpecification.id
231
+ name: productSpecification.name
232
+ version: productSpecification.version
233
+ href: productSpecification.href
234
+ characteristics: $.productCharacteristic {
235
+ id
236
+ name
237
+ value
238
+ }
239
+ }
240
+ offer: $.productOffering {
241
+ id
242
+ name
243
+ href
244
+ }
245
+ price: $.itemPrice->first {
246
+ name
247
+ description
248
+ taxRate: price.taxRate
249
+ subtotal: $.price.dutyFreeAmount {
250
+ currency: unit
251
+ amount: value
252
+ }
253
+ total: $.price.taxIncludedAmount {
254
+ currency: unit
255
+ amount: value
256
+ }
257
+ type: priceType->match(["nonRecurring", "NON_RECURRING"], ["recurring", "RECURRING"])
258
+ paymentInterval: recurringChargePeriod->match(
259
+ ["month","MONTHLY"],
260
+ ["year","ANNUALY"],
261
+ )
262
+ }
263
+ term: $.itemTerm->first {
264
+ name
265
+ description
266
+ duration: $.duration {
267
+ amount
268
+ units
269
+ }
270
+ }
271
+ }
272
+ """
273
+ )
274
+ }
275
+
276
+ type Mutation {
277
+ productOrder(order: ProductOrderInput): ProductOrder
278
+ @connect(
279
+ source: "tmf"
280
+ http: {
281
+ POST: "/productOrder"
282
+ body: """
283
+ $args {
284
+ id
285
+ }
286
+ """
287
+ }
288
+ selection: """
289
+ id
290
+ """
291
+ )
292
+ }
293
+
294
+ input ProductOrderInput {
295
+ id: ID!
296
+ }
@@ -0,0 +1,7 @@
1
+ # Adobe Commerce Cloud REST Connector
2
+
3
+ This connector is an example of how you could connecto to Magento Adobe Commerce Cloud instance. We were unable to validate all aspects of this connector due to an error warming up the local instance. We are working on getting a running instance to validate against.
4
+
5
+ Error: https://experienceleague.adobe.com/en/docs/commerce-knowledge-base/kb/troubleshooting/miscellaneous/error-warming-up-failed-on-magento-commerce-cloud
6
+
7
+ In the short term, we used `prism mock ./swagger.json` to mock out the local API contents.
@@ -0,0 +1,30 @@
1
+ extend schema
2
+ @link(url: "https://specs.apollo.dev/federation/v2.10")
3
+ @link(url: "https://specs.apollo.dev/connect/v0.2", import: ["@connect", "@source"])
4
+ @source(
5
+ name: "magento"
6
+ http: {
7
+ # https://developer.adobe.com/commerce/webapi/rest/quick-reference/
8
+ baseURL: "http://127.0.0.1:4010/V1"
9
+ headers: [
10
+ { name: "Content-Type", value: "application/json" }
11
+ { name: "Authorization", from: "Authorization" }
12
+ ]
13
+ }
14
+ )
15
+
16
+ type Mutation {
17
+ """
18
+ Delete customer address by ID.
19
+ Returns true on success.
20
+ """
21
+ deleteAddress(addressId: ID!): Boolean!
22
+ @connect(
23
+ source: "magento"
24
+ http: {
25
+ DELETE: "/addresses/{$args.addressId}"
26
+ }
27
+ # https://adobe-commerce.redoc.ly/2.4.7-admin/tag/addressesaddressId#operation/DeleteV1AddressesAddressId
28
+ selection: "data.deleteAddress"
29
+ )
30
+ }