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.
- package/.circleci/config.yml +17 -0
- package/.github/workflows/E2E.yml +3 -2
- package/.github/workflows/build-prs.yml +2 -1
- package/.github/workflows/release.yml +2 -2
- package/.prettierignore +3 -0
- package/.semgrepignore +2 -0
- package/.vscode/settings.json +7 -2
- package/CHANGELOG.md +12 -0
- package/apollo.connectors.mapping.configuration.json +10 -0
- package/package.json +38 -4
- package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/connector-bug-report.md +36 -0
- package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/new-connector.md +10 -0
- package/sampleWorkspace/connectors-community/.github/renovate.json5 +3 -0
- package/sampleWorkspace/connectors-community/.vscode/extensions.json +3 -0
- package/sampleWorkspace/connectors-community/.vscode/settings.json +13 -0
- package/sampleWorkspace/connectors-community/.vscode/tasks.json +10 -0
- package/sampleWorkspace/connectors-community/README.md +108 -0
- package/sampleWorkspace/connectors-community/apollo.config.json +5 -0
- package/sampleWorkspace/connectors-community/connectors/.template/Dockerfile +5 -0
- package/sampleWorkspace/connectors-community/connectors/.template/README +46 -0
- package/sampleWorkspace/connectors-community/connectors/.template/connector.graphql +31 -0
- package/sampleWorkspace/connectors-community/connectors/.template/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/.template/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/README +12 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/albums.graphql +48 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/comments.graphql +54 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/photos.graphql +54 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/posts.graphql +51 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/supergraph.yaml +26 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/todos.graphql +51 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/users.graphql +80 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/README.md +9 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/tmf622-ProductOrdering.graphql +296 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/README.md +7 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/addresses.graphql +30 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/customer.graphql +77 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/products.graphql +70 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/router.yaml +24 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/supergraph.yaml +14 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/swagger.json +69226 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/Dockerfile +5 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/README +61 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/messages.graphql +258 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/README +3 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/connector.graphql +38 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/apple/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/apple/app-store-connect.graphql +100 -0
- package/sampleWorkspace/connectors-community/connectors/apple/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/apple/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/aws/README +125 -0
- package/sampleWorkspace/connectors-community/connectors/aws/dynamodb.graphql +130 -0
- package/sampleWorkspace/connectors-community/connectors/aws/json-responses/product-price.json +10 -0
- package/sampleWorkspace/connectors-community/connectors/aws/json-responses/products.json +53 -0
- package/sampleWorkspace/connectors-community/connectors/aws/lambda.graphql +179 -0
- package/sampleWorkspace/connectors-community/connectors/aws/router.yaml +54 -0
- package/sampleWorkspace/connectors-community/connectors/aws/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/bored/README.md +35 -0
- package/sampleWorkspace/connectors-community/connectors/bored/bored.graphql +87 -0
- package/sampleWorkspace/connectors-community/connectors/bored/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/README.md +23 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/contacts.graphql +141 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/json-responses/members_email_.json +61 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/README.md +58 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/distancematrix.graphql +155 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/places-legacy.graphql +117 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/places.graphql +399 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/supergraph.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/timezone.graphql +64 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/README +105 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/avatars.graphql +79 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/photo-avatars.graphql +454 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/router.yaml +21 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/jira/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/jira/connector.graphql +197 -0
- package/sampleWorkspace/connectors-community/connectors/jira/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/jira/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/museums/README.md +40 -0
- package/sampleWorkspace/connectors-community/connectors/museums/chicagoArt.graphql +150 -0
- package/sampleWorkspace/connectors-community/connectors/museums/met.graphql +119 -0
- package/sampleWorkspace/connectors-community/connectors/museums/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/nws/README.md +45 -0
- package/sampleWorkspace/connectors-community/connectors/nws/alerts.graphql +598 -0
- package/sampleWorkspace/connectors-community/connectors/nws/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/odata/README +18 -0
- package/sampleWorkspace/connectors-community/connectors/odata/connector.graphql +171 -0
- package/sampleWorkspace/connectors-community/connectors/odata/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/odata/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/openai/README.md +61 -0
- package/sampleWorkspace/connectors-community/connectors/openai/assistants.graphql +285 -0
- package/sampleWorkspace/connectors-community/connectors/openai/chat-completions.graphql +169 -0
- package/sampleWorkspace/connectors-community/connectors/openai/models.graphql +47 -0
- package/sampleWorkspace/connectors-community/connectors/openai/router.yaml +24 -0
- package/sampleWorkspace/connectors-community/connectors/openai/supergraph.yaml +14 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/README +45 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/games.graphql +70 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/locations.graphql +127 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/moves.graphql +107 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/pokemon.graphql +539 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/supergraph.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/README.md +75 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/router.yaml +19 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/users.graphql +227 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/README.md +83 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/checkout.graphql +112 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/core-resources.graphql +868 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/payment-methods.graphql +526 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/products.graphql +162 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/router.yaml +26 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/supergraph.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/README.md +80 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/router.yaml +5 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/supabase.graphql +143 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/README +46 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/agencies.graphql +193 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/api-throttle.graphql +33 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/astronauts.graphql +237 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/celestial-bodies.graphql +131 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/docking-events.graphql +3460 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/launches.graphql +1156 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/supergraph.yaml +77 -0
- package/sampleWorkspace/connectors-community/connectors/tint/README +35 -0
- package/sampleWorkspace/connectors-community/connectors/tint/accounts.graphql +69 -0
- package/sampleWorkspace/connectors-community/connectors/tint/router.yaml +21 -0
- package/sampleWorkspace/connectors-community/connectors/tint/social-feeds.graphql +62 -0
- package/sampleWorkspace/connectors-community/connectors/tint/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/todoist/README.md +48 -0
- package/sampleWorkspace/connectors-community/connectors/todoist/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/todoist/todoist.graphql +381 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/README +99 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/connector.graphql +66 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/README.md +44 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/messages.graphql +107 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/router.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/README.md +44 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/earthquakes.graphql +235 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/README.md +44 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/earthquake-simple.graphql +87 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/router.yaml +3 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usps/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/usps/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/usps/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usps/tracking.graphql +118 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/connector.graphql +98 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/file-new/index.js +520 -0
- package/sampleWorkspace/connectors-community/package-lock.json +119 -0
- package/sampleWorkspace/connectors-community/package.json +20 -0
- package/sampleWorkspace/connectors-community/supergraph.yaml +6 -0
- package/sampleWorkspace/sampleWorkspace.code-workspace +29 -8
- package/src/__tests__/fixtures/textmate/test.apollo.connectors.mapping +213 -0
- package/src/__tests__/fixtures/textmate/test.connect.graphql +104 -0
- package/src/language-server/__tests__/fixtures/documents/functionCall.ts.snap +3 -3
- package/syntaxes/build.ts +266 -0
- package/syntaxes/connectors.mapping.json +532 -0
- package/syntaxes/connectors.mapping.yaml +440 -0
- package/syntaxes/graphql.connectors.json +426 -0
- package/syntaxes/graphql.connectors.yaml +254 -0
- package/syntaxes/graphql.json +8 -1
- package/syntaxes/publish.sh +43 -0
- package/syntaxes/tsconfig.json +6 -0
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
import {config} from "dotenv";
|
|
2
|
+
config({ override: true });
|
|
3
|
+
|
|
4
|
+
import prompts from "prompts";
|
|
5
|
+
import { copyFile, cp, mkdir, readdir, readFile, writeFile } from "fs/promises";
|
|
6
|
+
import { resolve } from "path";
|
|
7
|
+
import { gql, request } from "graphql-request";
|
|
8
|
+
import { faker } from "@faker-js/faker";
|
|
9
|
+
import { existsSync, readFileSync } from "fs";
|
|
10
|
+
import { dump, load } from "js-yaml";
|
|
11
|
+
|
|
12
|
+
const userApiKey = process.env.APOLLO_KEY;
|
|
13
|
+
const graphosURL = "https://graphql.api.apollographql.com/api/graphql";
|
|
14
|
+
const graphosHeaders = {
|
|
15
|
+
"x-api-key": userApiKey,
|
|
16
|
+
"apollographql-client-name": "connectors-community",
|
|
17
|
+
"apollographql-client-version": "1",
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
async function main() {
|
|
21
|
+
if(!userApiKey) throw new Error("No User API key found in .env")
|
|
22
|
+
if (userApiKey && userApiKey.includes("service"))
|
|
23
|
+
throw new Error(
|
|
24
|
+
"You muse use a user API key from https://studio.apollographql.com/user-settings/api-keys"
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
let graphId = process.env.APOLLO_KEY?.split(":")[1];
|
|
29
|
+
let graphVariant = process.env.APOLLO_GRAPH_VARIANT;
|
|
30
|
+
let graphApiKey;
|
|
31
|
+
|
|
32
|
+
let clonePath = process.argv[2];
|
|
33
|
+
if (!clonePath) {
|
|
34
|
+
const pathPrompt = await prompts({
|
|
35
|
+
type: "text",
|
|
36
|
+
name: "path",
|
|
37
|
+
message: "Where would you like to setup your new connector environment?",
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
clonePath = pathPrompt.path.replace(/['"]+/g, "").replace(/[']+/g, "").trim();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const graphPrompt =
|
|
44
|
+
graphId && graphVariant
|
|
45
|
+
? { type: 1 }
|
|
46
|
+
: await prompts({
|
|
47
|
+
name: "type",
|
|
48
|
+
type: "select",
|
|
49
|
+
choices: ["new", "existing"],
|
|
50
|
+
message: "Is this for a new or existing graph?",
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
let connectorName;
|
|
54
|
+
let folderToClone = ".template";
|
|
55
|
+
const modules = [];
|
|
56
|
+
const prebuild = await prompts({
|
|
57
|
+
type: "confirm",
|
|
58
|
+
name: "use",
|
|
59
|
+
message: "Do you want to use a pre-built connector?",
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
if (prebuild.use) {
|
|
63
|
+
const directory = await readdir("connectors", {
|
|
64
|
+
encoding: "utf-8",
|
|
65
|
+
});
|
|
66
|
+
const connectors = directory.filter(
|
|
67
|
+
(item) => !/(^|\/)\.[^\/\.]/g.test(item)
|
|
68
|
+
);
|
|
69
|
+
const prebuiltPrompt = await prompts({
|
|
70
|
+
name: "connector",
|
|
71
|
+
type: "select",
|
|
72
|
+
choices: connectors,
|
|
73
|
+
message: "Which connector would you like to use?",
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
if (prebuiltPrompt.connector == undefined)
|
|
77
|
+
throw new Error("User cancelled");
|
|
78
|
+
|
|
79
|
+
folderToClone = connectors[prebuiltPrompt.connector];
|
|
80
|
+
connectorName = folderToClone;
|
|
81
|
+
//Prompt for modules
|
|
82
|
+
const connectorDirectory = await readdir(
|
|
83
|
+
resolve("connectors", folderToClone),
|
|
84
|
+
{
|
|
85
|
+
encoding: "utf-8",
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
const schemaFiles = connectorDirectory.filter((f) =>
|
|
89
|
+
f.includes(".graphql")
|
|
90
|
+
);
|
|
91
|
+
const choices = schemaFiles.map((s) => s.split(".graphql")[0]);
|
|
92
|
+
|
|
93
|
+
if (choices.length === 1) {
|
|
94
|
+
modules.push(schemaFiles[0]);
|
|
95
|
+
}else if (choices.length > 1) {
|
|
96
|
+
const schemaModulesPrompt = await prompts({
|
|
97
|
+
name: "modules",
|
|
98
|
+
type: "multiselect",
|
|
99
|
+
choices,
|
|
100
|
+
message: `What portions of the ${connectorName} connector would you like to use?`,
|
|
101
|
+
});
|
|
102
|
+
schemaModulesPrompt.modules.forEach((i) => modules.push(schemaFiles[i]));
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
const connectorNamePrompt = await prompts({
|
|
106
|
+
name: "name",
|
|
107
|
+
type: "text",
|
|
108
|
+
message: "What would you like to name your connector?",
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
if (!connectorNamePrompt.name) userCancelled();
|
|
112
|
+
|
|
113
|
+
connectorName = connectorNamePrompt.name;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//Get user orgs and have them select if there is more than one
|
|
117
|
+
//We want to filter orgs that don't have any graphs in them yet
|
|
118
|
+
const org = await getUserOrgId(graphPrompt.type == 1);
|
|
119
|
+
const orgId = org.id;
|
|
120
|
+
if(org.graphId) graphId = org.graphId;
|
|
121
|
+
if(org.graphVariant) graphVariant = org.graphVariant;
|
|
122
|
+
|
|
123
|
+
//Create graph in GraphOS
|
|
124
|
+
if (graphPrompt.type == 0) {
|
|
125
|
+
//3. Create graph id
|
|
126
|
+
let idIsValid = false;
|
|
127
|
+
let newGraphId;
|
|
128
|
+
while (!idIsValid) {
|
|
129
|
+
newGraphId =
|
|
130
|
+
connectorName +
|
|
131
|
+
"-" +
|
|
132
|
+
faker.string
|
|
133
|
+
.uuid()
|
|
134
|
+
.replace(/[^A-Za-z0-9_]+/g, "-")
|
|
135
|
+
.toLowerCase()
|
|
136
|
+
.substring(0, 6);
|
|
137
|
+
const idValidResults = await request(
|
|
138
|
+
graphosURL,
|
|
139
|
+
gql`
|
|
140
|
+
query CC_IsGraphIdValid($graphId: ID!, $accountId: ID!) {
|
|
141
|
+
account(id: $accountId) {
|
|
142
|
+
graphIDAvailable(id: $graphId)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
`,
|
|
146
|
+
{
|
|
147
|
+
graphId: newGraphId,
|
|
148
|
+
accountId: orgId,
|
|
149
|
+
},
|
|
150
|
+
graphosHeaders
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
idIsValid = idValidResults?.account?.graphIDAvailable ?? false;
|
|
154
|
+
}
|
|
155
|
+
//4. Create graph - return API key
|
|
156
|
+
const createGraphResults = await request(
|
|
157
|
+
graphosURL,
|
|
158
|
+
gql`
|
|
159
|
+
mutation CC_CreateGraph(
|
|
160
|
+
$graphType: GraphType!
|
|
161
|
+
$hiddenFromUninvitedNonAdmin: Boolean!
|
|
162
|
+
$createGraphId: ID!
|
|
163
|
+
$title: String!
|
|
164
|
+
$accountId: ID!
|
|
165
|
+
) {
|
|
166
|
+
account(id: $accountId) {
|
|
167
|
+
createGraph(
|
|
168
|
+
graphType: $graphType
|
|
169
|
+
hiddenFromUninvitedNonAdmin: $hiddenFromUninvitedNonAdmin
|
|
170
|
+
id: $createGraphId
|
|
171
|
+
title: $title
|
|
172
|
+
) {
|
|
173
|
+
... on Service {
|
|
174
|
+
id
|
|
175
|
+
apiKeys {
|
|
176
|
+
token
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
...on GraphCreationError {
|
|
180
|
+
message
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
`,
|
|
186
|
+
{
|
|
187
|
+
graphType: "SELF_HOSTED_SUPERGRAPH",
|
|
188
|
+
hiddenFromUninvitedNonAdmin: false,
|
|
189
|
+
createGraphId: newGraphId,
|
|
190
|
+
title: connectorName,
|
|
191
|
+
accountId: orgId,
|
|
192
|
+
},
|
|
193
|
+
graphosHeaders
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
if(createGraphResults.account.message){
|
|
197
|
+
throw new Error(`Unable to create graph in GraphOS: ${createGraphResults.account.message}`)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
graphId = createGraphResults.account.createGraph.id;
|
|
201
|
+
graphVariant = "dev";
|
|
202
|
+
graphApiKey = createGraphResults.account.createGraph.apiKeys[0].token;
|
|
203
|
+
|
|
204
|
+
let sdl= await readFile(
|
|
205
|
+
resolve("connectors", ".template", "connector.graphql"),
|
|
206
|
+
{ encoding: "utf-8" }
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
const publishSchemaDoc = gql`
|
|
210
|
+
mutation CC_PublishSubgraphSchema(
|
|
211
|
+
$graphId: ID!
|
|
212
|
+
$variantName: String!
|
|
213
|
+
$subgraphName: String!
|
|
214
|
+
$schemaDocument: PartialSchemaInput!
|
|
215
|
+
$url: String
|
|
216
|
+
$revision: String!
|
|
217
|
+
) {
|
|
218
|
+
graph(id: $graphId) {
|
|
219
|
+
publishSubgraph(
|
|
220
|
+
graphVariant: $variantName
|
|
221
|
+
activePartialSchema: $schemaDocument
|
|
222
|
+
name: $subgraphName
|
|
223
|
+
url: $url
|
|
224
|
+
revision: $revision
|
|
225
|
+
) {
|
|
226
|
+
launchUrl
|
|
227
|
+
updatedGateway
|
|
228
|
+
wasCreated
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
`;
|
|
233
|
+
const variables = {
|
|
234
|
+
graphId: graphId,
|
|
235
|
+
variantName: graphVariant,
|
|
236
|
+
subgraphName: connectorName,
|
|
237
|
+
schemaDocument: {
|
|
238
|
+
sdl
|
|
239
|
+
},
|
|
240
|
+
url: `http://${connectorName}`,
|
|
241
|
+
revision: "initial",
|
|
242
|
+
};
|
|
243
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
244
|
+
|
|
245
|
+
if(prebuild.use){
|
|
246
|
+
// need to publish modules
|
|
247
|
+
for(var i = 0; i<modules.length;i++){
|
|
248
|
+
const module = modules[i];
|
|
249
|
+
const moduleName = module.split(".")[0];
|
|
250
|
+
|
|
251
|
+
variables.url = `http://${connectorName}`;
|
|
252
|
+
variables.subgraphName = moduleName
|
|
253
|
+
variables.schemaDocument.sdl = await readFile(
|
|
254
|
+
resolve("connectors", folderToClone, module),
|
|
255
|
+
{ encoding: "utf-8" }
|
|
256
|
+
);
|
|
257
|
+
|
|
258
|
+
await request(
|
|
259
|
+
graphosURL,
|
|
260
|
+
publishSchemaDoc,
|
|
261
|
+
variables,
|
|
262
|
+
graphosHeaders
|
|
263
|
+
);
|
|
264
|
+
await sleep(1000);
|
|
265
|
+
}
|
|
266
|
+
} else {
|
|
267
|
+
await request(
|
|
268
|
+
graphosURL,
|
|
269
|
+
publishSchemaDoc,
|
|
270
|
+
variables,
|
|
271
|
+
graphosHeaders
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
await sleep(1000);
|
|
276
|
+
await request(
|
|
277
|
+
graphosURL,
|
|
278
|
+
gql`
|
|
279
|
+
mutation CC_ChangeBuildPipeline(
|
|
280
|
+
$graphId: ID!
|
|
281
|
+
$variantName: String!
|
|
282
|
+
$fedVersion: BuildPipelineTrack!
|
|
283
|
+
) {
|
|
284
|
+
graph(id: $graphId) {
|
|
285
|
+
variant(name: $variantName) {
|
|
286
|
+
buildConfig(version: $fedVersion) {
|
|
287
|
+
id
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
`,
|
|
293
|
+
{
|
|
294
|
+
graphId: graphId,
|
|
295
|
+
variantName: graphVariant,
|
|
296
|
+
fedVersion: "FED_NEXT",
|
|
297
|
+
},
|
|
298
|
+
graphosHeaders
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
//Use graph in GraphOS
|
|
302
|
+
else if (graphPrompt.type == 1) {
|
|
303
|
+
const newApiKeyResults = await request(
|
|
304
|
+
graphosURL,
|
|
305
|
+
gql`
|
|
306
|
+
mutation CC_CreateGraphKey($graphId: ID!, $keyName: String) {
|
|
307
|
+
graph(id: $graphId) {
|
|
308
|
+
newKey(keyName: $keyName) {
|
|
309
|
+
token
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
`,
|
|
314
|
+
{
|
|
315
|
+
graphId,
|
|
316
|
+
keyName: `connectors-community-${faker.string
|
|
317
|
+
.uuid()
|
|
318
|
+
.replace(/[^A-Za-z0-9_]+/g, "-")
|
|
319
|
+
.toLowerCase()
|
|
320
|
+
.substring(0, 6)}`,
|
|
321
|
+
},
|
|
322
|
+
graphosHeaders
|
|
323
|
+
);
|
|
324
|
+
graphApiKey = newApiKeyResults.graph.newKey.token;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
if (!graphId || !graphVariant)
|
|
328
|
+
throw new Error("You muse use a graph ref from GraphOS to use connectors");
|
|
329
|
+
|
|
330
|
+
if (!existsSync(clonePath)) await mkdir(clonePath);
|
|
331
|
+
|
|
332
|
+
if (modules.length > 0) {
|
|
333
|
+
await copyFile(
|
|
334
|
+
resolve("connectors", folderToClone, "router.yaml"),
|
|
335
|
+
resolve(clonePath, "router.yaml")
|
|
336
|
+
);
|
|
337
|
+
let supergraph = load(
|
|
338
|
+
readFileSync(resolve("connectors", folderToClone, "supergraph.yaml"))
|
|
339
|
+
);
|
|
340
|
+
supergraph.subgraphs = {};
|
|
341
|
+
modules.forEach(async (module) => {
|
|
342
|
+
const moduleName = module.split(".")[0];
|
|
343
|
+
supergraph.subgraphs[`${connectorName}-${moduleName}`] = {
|
|
344
|
+
routing_url: `http:${moduleName}`,
|
|
345
|
+
schema: {
|
|
346
|
+
file: module,
|
|
347
|
+
},
|
|
348
|
+
};
|
|
349
|
+
await copyFile(
|
|
350
|
+
resolve("connectors", folderToClone, module),
|
|
351
|
+
resolve(clonePath, module)
|
|
352
|
+
);
|
|
353
|
+
});
|
|
354
|
+
await writeFile(resolve(clonePath, "supergraph.yaml"), dump(supergraph), {
|
|
355
|
+
encoding: "utf-8",
|
|
356
|
+
});
|
|
357
|
+
} else {
|
|
358
|
+
//Only one module so we can clone the folder
|
|
359
|
+
await cp(resolve("connectors", folderToClone), clonePath, {
|
|
360
|
+
recursive: true,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
await mkdir(resolve(clonePath, ".vscode"));
|
|
365
|
+
await cp(".vscode", resolve(clonePath, ".vscode"), {
|
|
366
|
+
recursive: true,
|
|
367
|
+
});
|
|
368
|
+
await copyFile(
|
|
369
|
+
"apollo.config.json",
|
|
370
|
+
resolve(clonePath, "apollo.config.json")
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
await writeFile(
|
|
374
|
+
resolve(clonePath, ".env"),
|
|
375
|
+
`APOLLO_KEY=${graphApiKey}\nAPOLLO_GRAPH_REF=${graphId}@${graphVariant}`,
|
|
376
|
+
{ encoding: "utf-8" }
|
|
377
|
+
);
|
|
378
|
+
await writeFile(
|
|
379
|
+
resolve(clonePath, ".vscode", "settings.json"),
|
|
380
|
+
`{
|
|
381
|
+
"terminal.integrated.profiles.osx": {
|
|
382
|
+
"graphos": {
|
|
383
|
+
"path": "zsh",
|
|
384
|
+
"args": ["-l"],
|
|
385
|
+
"env": {
|
|
386
|
+
"APOLLO_KEY": "${graphApiKey}",
|
|
387
|
+
"APOLLO_GRAPH_REF": "${graphId}@${graphVariant}",
|
|
388
|
+
"APOLLO_ROVER_DEV_ROUTER_VERSION": "2.0.0",
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
"terminal.integrated.defaultProfile.osx": "graphos"
|
|
393
|
+
}`
|
|
394
|
+
);
|
|
395
|
+
|
|
396
|
+
console.log(
|
|
397
|
+
`Project ready 🚀\! To open in VS Code, run: \n\ncode ${clonePath}`
|
|
398
|
+
);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
main();
|
|
402
|
+
|
|
403
|
+
function userCancelled() {
|
|
404
|
+
throw new Error("User cancelled");
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
async function getUserOrgId(promptForGraph = false) {
|
|
408
|
+
//Get user orgs and have them select if there is more than one
|
|
409
|
+
const orgResults = await request(
|
|
410
|
+
graphosURL,
|
|
411
|
+
gql`
|
|
412
|
+
query CC_UserMemberships {
|
|
413
|
+
me {
|
|
414
|
+
id
|
|
415
|
+
... on User {
|
|
416
|
+
memberships {
|
|
417
|
+
account {
|
|
418
|
+
id
|
|
419
|
+
graphs {
|
|
420
|
+
id
|
|
421
|
+
name
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
`,
|
|
429
|
+
{},
|
|
430
|
+
graphosHeaders
|
|
431
|
+
);
|
|
432
|
+
let graphId;
|
|
433
|
+
let graphVariant;
|
|
434
|
+
let orgId = orgResults.me.memberships[0].account.id;
|
|
435
|
+
if (orgResults.me.memberships.length > 1 && orgId) {
|
|
436
|
+
let membershipChoices = orgResults.me.memberships;
|
|
437
|
+
if (promptForGraph)
|
|
438
|
+
membershipChoices = membershipChoices.filter(
|
|
439
|
+
(m) => m.account.graphs.length > 0
|
|
440
|
+
);
|
|
441
|
+
const orgPrompt = await prompts({
|
|
442
|
+
name: "org",
|
|
443
|
+
type: "select",
|
|
444
|
+
choices: membershipChoices.map((m) => m.account.id),
|
|
445
|
+
message: promptForGraph ? "Which org would you like to use? (filtered to orgs that havecd graphs in them)" : "Which org would you like to use?",
|
|
446
|
+
});
|
|
447
|
+
if (typeof orgPrompt.org === 'number')
|
|
448
|
+
orgId = membershipChoices[orgPrompt.org].account.id;
|
|
449
|
+
else userCancelled();
|
|
450
|
+
|
|
451
|
+
if(promptForGraph){
|
|
452
|
+
const graphs = membershipChoices[orgPrompt.org].account.graphs;
|
|
453
|
+
const graphPrompt = await prompts({
|
|
454
|
+
name: "graph",
|
|
455
|
+
type: "select",
|
|
456
|
+
choices: graphs.map((m) => m.name),
|
|
457
|
+
message: "Which graph would you like to use?",
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
graphId = graphs[graphPrompt.graph].id;
|
|
461
|
+
|
|
462
|
+
const variantResults = await request(
|
|
463
|
+
graphosURL,
|
|
464
|
+
gql`
|
|
465
|
+
query CC_GetGraphVariants($graphId: ID!) {
|
|
466
|
+
graph(id: $graphId) {
|
|
467
|
+
variants {
|
|
468
|
+
name
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
`,
|
|
473
|
+
{ graphId },
|
|
474
|
+
graphosHeaders
|
|
475
|
+
);
|
|
476
|
+
|
|
477
|
+
const variants = variantResults.graph.variants;
|
|
478
|
+
if (variants.length == 1) {
|
|
479
|
+
graphVariant = variants[0].name;
|
|
480
|
+
} else {
|
|
481
|
+
const variantPrompt = await prompts({
|
|
482
|
+
name: "variant",
|
|
483
|
+
type: "select",
|
|
484
|
+
choices: variants.map((m) => m.name),
|
|
485
|
+
message: "Which variant would you like to use?",
|
|
486
|
+
});
|
|
487
|
+
graphVariant = variants[variantPrompt.variant].name;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
return { id: orgId, graphId, graphVariant };
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
async function updateFedVersion(graphId, graphVariant) {
|
|
496
|
+
await request(
|
|
497
|
+
graphosURL,
|
|
498
|
+
gql`
|
|
499
|
+
mutation CC_PublishSubgraphSchema(
|
|
500
|
+
$graphId: ID!
|
|
501
|
+
$variantName: String!
|
|
502
|
+
$fedVersion: BuildPipelineTrack!
|
|
503
|
+
) {
|
|
504
|
+
graph(id: $graphId) {
|
|
505
|
+
variant(name: $variantName) {
|
|
506
|
+
buildConfig(version: $fedVersion) {
|
|
507
|
+
id
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
`,
|
|
513
|
+
{
|
|
514
|
+
graphId: graphId,
|
|
515
|
+
variantName: graphVariant,
|
|
516
|
+
fedVersion: "FED_NEXT",
|
|
517
|
+
},
|
|
518
|
+
graphosHeaders
|
|
519
|
+
);
|
|
520
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "connectors-community",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "connectors-community",
|
|
9
|
+
"version": "1.0.0",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@faker-js/faker": "^9.0.3",
|
|
13
|
+
"dotenv": "^16.4.5",
|
|
14
|
+
"graphql": "^16.9.0",
|
|
15
|
+
"graphql-request": "^7.1.0",
|
|
16
|
+
"js-yaml": "^4.1.0",
|
|
17
|
+
"prompts": "^2.4.2"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"node_modules/@faker-js/faker": {
|
|
21
|
+
"version": "9.7.0",
|
|
22
|
+
"resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.7.0.tgz",
|
|
23
|
+
"integrity": "sha512-aozo5vqjCmDoXLNUJarFZx2IN/GgGaogY4TMJ6so/WLZOWpSV7fvj2dmrV6sEAnUm1O7aCrhTibjpzeDFgNqbg==",
|
|
24
|
+
"funding": [
|
|
25
|
+
{
|
|
26
|
+
"type": "opencollective",
|
|
27
|
+
"url": "https://opencollective.com/fakerjs"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=18.0.0",
|
|
33
|
+
"npm": ">=9.0.0"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"node_modules/@graphql-typed-document-node/core": {
|
|
37
|
+
"version": "3.2.0",
|
|
38
|
+
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
|
|
39
|
+
"integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"node_modules/argparse": {
|
|
45
|
+
"version": "2.0.1",
|
|
46
|
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
|
47
|
+
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
|
48
|
+
},
|
|
49
|
+
"node_modules/dotenv": {
|
|
50
|
+
"version": "16.5.0",
|
|
51
|
+
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
|
|
52
|
+
"integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
|
|
53
|
+
"license": "BSD-2-Clause",
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=12"
|
|
56
|
+
},
|
|
57
|
+
"funding": {
|
|
58
|
+
"url": "https://dotenvx.com"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"node_modules/graphql": {
|
|
62
|
+
"version": "16.11.0",
|
|
63
|
+
"resolved": "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz",
|
|
64
|
+
"integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==",
|
|
65
|
+
"license": "MIT",
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"node_modules/graphql-request": {
|
|
71
|
+
"version": "7.1.2",
|
|
72
|
+
"resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-7.1.2.tgz",
|
|
73
|
+
"integrity": "sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w==",
|
|
74
|
+
"license": "MIT",
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"@graphql-typed-document-node/core": "^3.2.0"
|
|
77
|
+
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"graphql": "14 - 16"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"node_modules/js-yaml": {
|
|
83
|
+
"version": "4.1.0",
|
|
84
|
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
|
|
85
|
+
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"argparse": "^2.0.1"
|
|
88
|
+
},
|
|
89
|
+
"bin": {
|
|
90
|
+
"js-yaml": "bin/js-yaml.js"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"node_modules/kleur": {
|
|
94
|
+
"version": "3.0.3",
|
|
95
|
+
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
|
96
|
+
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
|
|
97
|
+
"engines": {
|
|
98
|
+
"node": ">=6"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"node_modules/prompts": {
|
|
102
|
+
"version": "2.4.2",
|
|
103
|
+
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
|
104
|
+
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
|
|
105
|
+
"dependencies": {
|
|
106
|
+
"kleur": "^3.0.3",
|
|
107
|
+
"sisteransi": "^1.0.5"
|
|
108
|
+
},
|
|
109
|
+
"engines": {
|
|
110
|
+
"node": ">= 6"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"node_modules/sisteransi": {
|
|
114
|
+
"version": "1.0.5",
|
|
115
|
+
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
|
|
116
|
+
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "connectors-community",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A simple repository designed share connectors in the community and ensure they follow a specific standard.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "file-new/index.js",
|
|
7
|
+
"author": "Apollo GraphQL",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node file-new/index.js"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@faker-js/faker": "^9.0.3",
|
|
14
|
+
"dotenv": "^16.4.5",
|
|
15
|
+
"graphql": "^16.9.0",
|
|
16
|
+
"graphql-request": "^7.1.0",
|
|
17
|
+
"js-yaml": "^4.1.0",
|
|
18
|
+
"prompts": "^2.4.2"
|
|
19
|
+
}
|
|
20
|
+
}
|