wgc 0.79.4 → 0.80.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 (31) hide show
  1. package/dist/package.json +13 -4
  2. package/dist/src/commands/router/commands/compose.js +171 -89
  3. package/dist/src/commands/router/commands/compose.js.map +1 -1
  4. package/dist/src/commands/router/index.js +5 -1
  5. package/dist/src/commands/router/index.js.map +1 -1
  6. package/dist/src/commands/router/plugin/commands/build.d.ts +4 -0
  7. package/dist/src/commands/router/plugin/commands/build.js +76 -0
  8. package/dist/src/commands/router/plugin/commands/build.js.map +1 -0
  9. package/dist/src/commands/router/plugin/commands/init.d.ts +4 -0
  10. package/dist/src/commands/router/plugin/commands/init.js +98 -0
  11. package/dist/src/commands/router/plugin/commands/init.js.map +1 -0
  12. package/dist/src/commands/router/plugin/commands/test.d.ts +4 -0
  13. package/dist/src/commands/router/plugin/commands/test.js +62 -0
  14. package/dist/src/commands/router/plugin/commands/test.js.map +1 -0
  15. package/dist/src/commands/router/plugin/helper.d.ts +10 -0
  16. package/dist/src/commands/router/plugin/helper.js +47 -0
  17. package/dist/src/commands/router/plugin/helper.js.map +1 -0
  18. package/dist/src/commands/router/plugin/index.d.ts +4 -0
  19. package/dist/src/commands/router/plugin/index.js +13 -0
  20. package/dist/src/commands/router/plugin/index.js.map +1 -0
  21. package/dist/src/commands/router/plugin/templates/go-plugin.d.ts +5 -0
  22. package/dist/src/commands/router/plugin/templates/go-plugin.js +342 -0
  23. package/dist/src/commands/router/plugin/templates/go-plugin.js.map +1 -0
  24. package/dist/src/commands/router/plugin/toolchain.d.ts +36 -0
  25. package/dist/src/commands/router/plugin/toolchain.js +413 -0
  26. package/dist/src/commands/router/plugin/toolchain.js.map +1 -0
  27. package/dist/src/core/config.d.ts +1 -0
  28. package/dist/src/core/config.js +1 -0
  29. package/dist/src/core/config.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +16 -7
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wgc",
3
- "version": "0.79.4",
3
+ "version": "0.80.0",
4
4
  "description": "The official CLI tool to manage the GraphQL Federation Platform Cosmo",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "scripts": {
22
22
  "build": "del dist && tsc",
23
- "build:bun": "bun build --compile src/index.ts --outfile wgc",
23
+ "build:bun": "bun build --compile --production --outfile wgc src/index.ts",
24
24
  "wgc": "tsx --env-file .env src/index.ts",
25
25
  "test": "pnpm lint && vitest run test/",
26
26
  "coverage": "vitest run --coverage",
@@ -45,6 +45,7 @@
45
45
  "@wundergraph/composition": "workspace:*",
46
46
  "@wundergraph/cosmo-connect": "workspace:*",
47
47
  "@wundergraph/cosmo-shared": "workspace:*",
48
+ "@wundergraph/protographic": "workspace:*",
48
49
  "ajv": "^8.17.1",
49
50
  "axios": "^1.8.4",
50
51
  "boxen": "^7.1.1",
@@ -56,18 +57,23 @@
56
57
  "dotenv": "^16.3.1",
57
58
  "env-ci": "^11.1.0",
58
59
  "env-paths": "^3.0.0",
60
+ "execa": "^9.5.2",
59
61
  "graphql": "^16.9.0",
60
62
  "https-proxy-agent": "^7.0.5",
61
63
  "inquirer": "^9.2.7",
62
64
  "js-yaml": "^4.1.0",
63
65
  "jwt-decode": "^3.1.2",
66
+ "lodash-es": "4.17.21",
64
67
  "log-symbols": "^5.1.0",
65
68
  "octokit": "^4.1.3",
66
69
  "open": "^9.1.0",
67
- "ora": "^8.0.1",
70
+ "ora": "^8.2.0",
68
71
  "pathe": "^1.1.1",
69
72
  "picocolors": "^1.0.0",
70
73
  "posthog-node": "^4.17.1",
74
+ "prompts": "^2.4.2",
75
+ "pupa": "^3.1.0",
76
+ "semver": "^7.7.1",
71
77
  "trieve-ts-sdk": "^0.0.80",
72
78
  "undici": "^6.21.1",
73
79
  "zod": "^3.22.4"
@@ -80,13 +86,16 @@
80
86
  "@types/env-ci": "^3.1.4",
81
87
  "@types/inquirer": "^9.0.3",
82
88
  "@types/js-yaml": "^4.0.5",
89
+ "@types/lodash-es": "4.17.12",
83
90
  "@types/node": "^20.3.1",
91
+ "@types/prompts": "^2.4.9",
92
+ "@types/semver": "^7.7.0",
84
93
  "del-cli": "^5.0.0",
85
94
  "eslint": "^8.57.1",
86
95
  "eslint-config-unjs": "^0.2.1",
87
96
  "eslint-plugin-require-extensions": "^0.1.3",
88
97
  "prettier": "^3.5.2",
89
- "tsx": "^4.17.0",
98
+ "tsx": "^4.19.4",
90
99
  "typescript": "5.5.2",
91
100
  "vitest": "^3.1.2"
92
101
  },
@@ -1,14 +1,14 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { readFile, writeFile } from 'node:fs/promises';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { buildRouterConfig, normalizeURL } from '@wundergraph/cosmo-shared';
4
+ import { buildRouterConfig, normalizeURL, SubgraphKind, } from '@wundergraph/cosmo-shared';
5
5
  import { Command, program } from 'commander';
6
6
  import { parse, printSchema } from 'graphql';
7
7
  import * as yaml from 'js-yaml';
8
- import { dirname, resolve } from 'pathe';
8
+ import { basename, dirname, resolve } from 'pathe';
9
9
  import pc from 'picocolors';
10
10
  import { printSchemaWithDirectives } from '@graphql-tools/utils';
11
- import { FeatureFlagRouterExecutionConfig, FeatureFlagRouterExecutionConfigs, } from '@wundergraph/cosmo-connect/dist/node/v1/node_pb';
11
+ import { FeatureFlagRouterExecutionConfig, FeatureFlagRouterExecutionConfigs, GRPCMapping, } from '@wundergraph/cosmo-connect/dist/node/v1/node_pb';
12
12
  import Table from 'cli-table3';
13
13
  import { ROUTER_COMPATIBILITY_VERSION_ONE } from '@wundergraph/composition';
14
14
  import { composeSubgraphs, introspectSubgraph } from '../../../utils.js';
@@ -19,7 +19,7 @@ export default (opts) => {
19
19
  command.option('-o, --out [string]', 'Destination file for the router config.');
20
20
  command.option('--suppress-warnings', 'This flag suppresses any warnings produced by composition.');
21
21
  command.action(async (options) => {
22
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
22
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
23
23
  const inputFile = resolve(options.input);
24
24
  const inputFileLocation = dirname(inputFile);
25
25
  if (!existsSync(inputFile)) {
@@ -27,40 +27,98 @@ export default (opts) => {
27
27
  }
28
28
  const fileContent = (await readFile(inputFile)).toString();
29
29
  const config = yaml.load(fileContent);
30
- const subgraphSDLs = new Map();
31
- for (const s of config.subgraphs) {
32
- if ((_a = s.schema) === null || _a === void 0 ? void 0 : _a.file) {
33
- const schemaFile = resolve(inputFileLocation, s.schema.file);
34
- const sdl = (await readFile(schemaFile)).toString();
35
- subgraphSDLs.set(s.name, sdl);
36
- continue;
37
- }
38
- const url = (_c = (_b = s.introspection) === null || _b === void 0 ? void 0 : _b.url) !== null && _c !== void 0 ? _c : s.routing_url;
39
- try {
40
- const result = await introspectSubgraph({
41
- subgraphURL: url,
42
- additionalHeaders: Object.entries((_e = (_d = s.introspection) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : {}).map(([key, value]) => ({
43
- key,
44
- value,
45
- })),
46
- rawIntrospection: (_f = s.introspection) === null || _f === void 0 ? void 0 : _f.raw,
47
- });
48
- if (!result.success) {
49
- program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${(_g = result.errorMessage) !== null && _g !== void 0 ? _g : 'failed'}`);
30
+ const subgraphs = [];
31
+ for (const [index, s] of config.subgraphs.entries()) {
32
+ // This is a subgraph plugin
33
+ if ('plugin' in s) {
34
+ if (!s.plugin.path) {
35
+ program.error(pc.red(pc.bold(`The plugin path is missing in the input file. Please check the path and try again.`)));
36
+ }
37
+ if (!existsSync(s.plugin.path)) {
38
+ program.error(pc.red(pc.bold(`The plugin path '${pc.bold(s.plugin.path)}' does not exist. Please check the path and try again.`)));
39
+ }
40
+ const pluginName = basename(s.plugin.path);
41
+ // Check if a plugin with the same name already exists
42
+ if (subgraphs.some((sg) => sg.kind === SubgraphKind.Plugin && sg.name === pluginName)) {
43
+ program.error(pc.red(pc.bold(`A plugin with the name '${pc.bold(pluginName)}' is already registered. Plugin names must be unique.`)));
50
44
  }
51
- subgraphSDLs.set(s.name, result.sdl);
45
+ const mappingFilePath = resolve(s.plugin.path, 'generated', 'mapping.json');
46
+ const mappingFile = await readFile(mappingFilePath, 'utf8');
47
+ const schemaFilePath = resolve(s.plugin.path, 'src', 'schema.graphql');
48
+ const sdl = await readFile(schemaFilePath, 'utf8');
49
+ const protoSchemaFilePath = resolve(s.plugin.path, 'generated', 'service.proto');
50
+ const protoSchema = await readFile(protoSchemaFilePath, 'utf8');
51
+ subgraphs.push({
52
+ kind: SubgraphKind.Plugin,
53
+ name: pluginName,
54
+ protoSchema,
55
+ version: s.plugin.version,
56
+ sdl,
57
+ mapping: GRPCMapping.fromJsonString(mappingFile),
58
+ });
52
59
  }
53
- catch (e) {
54
- program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${e.message}`);
60
+ else {
61
+ // The subgraph name is required
62
+ if (!s.name) {
63
+ program.error(pc.red(pc.bold(`The subgraph name is required for subgraph at index ${index}. Please provide a name and try again.`)));
64
+ }
65
+ const url = (_b = (_a = s.introspection) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : s.routing_url;
66
+ // Check if a subgraph with the same name already exists
67
+ if (subgraphs.some((sg) => sg.name === s.name)) {
68
+ program.error(pc.red(pc.bold(`A subgraph with the name '${pc.bold(s.name)}' is already registered. Subgraph names must be unique.`)));
69
+ }
70
+ let schemaSDL = '';
71
+ // The GraphQL schema is provided in the input file
72
+ if ((_c = s.schema) === null || _c === void 0 ? void 0 : _c.file) {
73
+ const schemaFile = resolve(inputFileLocation, s.schema.file);
74
+ const sdl = (await readFile(schemaFile)).toString();
75
+ schemaSDL = sdl;
76
+ }
77
+ else {
78
+ // The GraphQL schema is not provided in the input file, so we need to introspect it
79
+ try {
80
+ const result = await introspectSubgraph({
81
+ subgraphURL: url,
82
+ additionalHeaders: Object.entries((_e = (_d = s.introspection) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : {}).map(([key, value]) => ({
83
+ key,
84
+ value,
85
+ })),
86
+ rawIntrospection: (_f = s.introspection) === null || _f === void 0 ? void 0 : _f.raw,
87
+ });
88
+ if (!result.success) {
89
+ program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${(_g = result.errorMessage) !== null && _g !== void 0 ? _g : 'failed'}`);
90
+ }
91
+ schemaSDL = result.sdl;
92
+ }
93
+ catch (e) {
94
+ program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${e.message}`);
95
+ }
96
+ }
97
+ subgraphs.push({
98
+ kind: SubgraphKind.Standard,
99
+ name: s.name,
100
+ sdl: schemaSDL,
101
+ subscriptionUrl: ((_h = s.subscription) === null || _h === void 0 ? void 0 : _h.url) || s.routing_url,
102
+ subscriptionProtocol: ((_j = s.subscription) === null || _j === void 0 ? void 0 : _j.protocol) || 'ws',
103
+ websocketSubprotocol: ((_k = s.subscription) === null || _k === void 0 ? void 0 : _k.protocol) === 'ws' ? (_l = s.subscription) === null || _l === void 0 ? void 0 : _l.websocketSubprotocol : 'auto',
104
+ routingUrl: normalizeURL(s.routing_url),
105
+ });
55
106
  }
56
107
  }
57
- const result = composeSubgraphs(config.subgraphs.map((s, index) => {
108
+ const result = composeSubgraphs(subgraphs.map((s, index) => {
58
109
  var _a;
59
- return ({
110
+ if (s.kind === SubgraphKind.Plugin) {
111
+ return {
112
+ name: s.name,
113
+ url: `http://localhost:3000/plugin/${index}`,
114
+ definitions: parse((_a = s.sdl) !== null && _a !== void 0 ? _a : ''),
115
+ };
116
+ }
117
+ return {
60
118
  name: s.name,
61
- url: normalizeURL(s.routing_url),
62
- definitions: parse((_a = subgraphSDLs.get(s.name)) !== null && _a !== void 0 ? _a : ''),
63
- });
119
+ url: s.routingUrl,
120
+ definitions: parse(s.sdl),
121
+ };
64
122
  }));
65
123
  if (!result.success) {
66
124
  const compositionErrorsTable = new Table({
@@ -96,22 +154,38 @@ export default (opts) => {
96
154
  // @TODO get router compatibility version programmatically
97
155
  routerCompatibilityVersion: ROUTER_COMPATIBILITY_VERSION_ONE,
98
156
  schemaVersionId: 'static',
99
- subgraphs: config.subgraphs.map((s, index) => {
100
- var _a, _b, _c, _d, _e;
157
+ subgraphs: subgraphs.map((s, index) => {
101
158
  const subgraphConfig = result.subgraphConfigBySubgraphName.get(s.name);
102
159
  const schema = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.schema;
103
160
  const configurationDataByTypeName = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.configurationDataByTypeName;
104
- return {
161
+ if (s.kind === SubgraphKind.Standard) {
162
+ const composedSubgraph = {
163
+ kind: SubgraphKind.Standard,
164
+ id: `${index}`,
165
+ name: s.name,
166
+ url: s.routingUrl,
167
+ sdl: s.sdl,
168
+ subscriptionUrl: s.subscriptionUrl,
169
+ subscriptionProtocol: s.subscriptionProtocol,
170
+ websocketSubprotocol: s.websocketSubprotocol,
171
+ schema,
172
+ configurationDataByTypeName,
173
+ };
174
+ return composedSubgraph;
175
+ }
176
+ const composedSubgraphPlugin = {
177
+ kind: SubgraphKind.Plugin,
105
178
  id: `${index}`,
106
179
  name: s.name,
107
- url: normalizeURL(s.routing_url),
108
- sdl: (_a = subgraphSDLs.get(s.name)) !== null && _a !== void 0 ? _a : '',
109
- subscriptionUrl: ((_b = s.subscription) === null || _b === void 0 ? void 0 : _b.url) || s.routing_url,
110
- subscriptionProtocol: ((_c = s.subscription) === null || _c === void 0 ? void 0 : _c.protocol) || 'ws',
111
- websocketSubprotocol: ((_d = s.subscription) === null || _d === void 0 ? void 0 : _d.protocol) === 'ws' ? ((_e = s.subscription) === null || _e === void 0 ? void 0 : _e.websocketSubprotocol) || 'auto' : undefined,
180
+ url: `http://localhost:3000/plugin/${index}`,
181
+ sdl: s.sdl,
182
+ mapping: s.mapping,
183
+ protoSchema: s.protoSchema,
184
+ version: s.version,
112
185
  schema,
113
186
  configurationDataByTypeName,
114
187
  };
188
+ return composedSubgraphPlugin;
115
189
  }),
116
190
  });
117
191
  routerConfig.version = randomUUID();
@@ -120,115 +194,123 @@ export default (opts) => {
120
194
  // @TODO This logic should exist only once in the shared package and reused across
121
195
  // control-plane and cli
122
196
  for (const ff of config.feature_flags) {
123
- const subgraphs = [];
124
- // Replace base subgraphs with feature flag subgraphs
125
- for (const s of config.subgraphs) {
197
+ const featureSubgraphs = [];
198
+ const standardSubgraphs = config.subgraphs.filter((ss) => !('plugin' in ss));
199
+ // Process each subgraph for this feature flag
200
+ for (const s of standardSubgraphs) {
201
+ // Check if this subgraph is overridden by a feature graph
126
202
  const featureSubgraph = ff.feature_graphs.find((ffs) => ffs.subgraph_name === s.name);
127
203
  if (featureSubgraph) {
128
- if ((_h = featureSubgraph === null || featureSubgraph === void 0 ? void 0 : featureSubgraph.schema) === null || _h === void 0 ? void 0 : _h.file) {
204
+ // This subgraph is overridden by a feature graph
205
+ const url = (_o = (_m = featureSubgraph.introspection) === null || _m === void 0 ? void 0 : _m.url) !== null && _o !== void 0 ? _o : featureSubgraph.routing_url;
206
+ let schemaSDL = '';
207
+ if ((_p = featureSubgraph.schema) === null || _p === void 0 ? void 0 : _p.file) {
129
208
  const schemaFile = resolve(inputFileLocation, featureSubgraph.schema.file);
130
- const sdl = (await readFile(schemaFile)).toString();
131
- // Replace feature subgraph sdl with the base subgraph sdl
132
- subgraphSDLs.set(featureSubgraph.name, sdl);
209
+ schemaSDL = await readFile(schemaFile, 'utf8');
133
210
  }
134
211
  else {
135
- const url = (_k = (_j = featureSubgraph.introspection) === null || _j === void 0 ? void 0 : _j.url) !== null && _k !== void 0 ? _k : featureSubgraph.routing_url;
136
212
  try {
137
213
  const result = await introspectSubgraph({
138
214
  subgraphURL: url,
139
- additionalHeaders: Object.entries((_m = (_l = featureSubgraph.introspection) === null || _l === void 0 ? void 0 : _l.headers) !== null && _m !== void 0 ? _m : {}).map(([key, value]) => ({
215
+ additionalHeaders: Object.entries((_r = (_q = featureSubgraph.introspection) === null || _q === void 0 ? void 0 : _q.headers) !== null && _r !== void 0 ? _r : {}).map(([key, value]) => ({
140
216
  key,
141
217
  value,
142
218
  })),
143
- rawIntrospection: (_o = featureSubgraph.introspection) === null || _o === void 0 ? void 0 : _o.raw,
219
+ rawIntrospection: (_s = featureSubgraph.introspection) === null || _s === void 0 ? void 0 : _s.raw,
144
220
  });
145
221
  if (!result.success) {
146
- program.error(`Could not introspect feature-graph subgraph ${featureSubgraph.name}, URL: ${url}: ${(_p = result.errorMessage) !== null && _p !== void 0 ? _p : 'failed'}`);
222
+ program.error(`Could not introspect feature-graph subgraph ${featureSubgraph.name}, URL: ${url}: ${(_t = result.errorMessage) !== null && _t !== void 0 ? _t : 'failed'}`);
147
223
  }
148
- // Replace feature subgraph sdl with the base subgraph sdl
149
- subgraphSDLs.set(s.name, result.sdl);
224
+ schemaSDL = result.sdl;
150
225
  }
151
226
  catch (e) {
152
227
  program.error(`Could not introspect feature-graph subgraph ${featureSubgraph.name}, URL: ${url}: ${e.message}`);
153
228
  }
154
229
  }
155
- subgraphs.push({
230
+ featureSubgraphs.push({
231
+ kind: SubgraphKind.Standard,
156
232
  name: featureSubgraph.name,
157
- routing_url: featureSubgraph.routing_url,
158
- schema: featureSubgraph.schema,
159
- subscription: featureSubgraph.subscription,
160
- introspection: featureSubgraph.introspection,
233
+ sdl: schemaSDL,
234
+ routingUrl: featureSubgraph.routing_url,
235
+ subscriptionUrl: ((_u = featureSubgraph.subscription) === null || _u === void 0 ? void 0 : _u.url) || featureSubgraph.routing_url,
236
+ subscriptionProtocol: ((_v = featureSubgraph.subscription) === null || _v === void 0 ? void 0 : _v.protocol) || 'ws',
237
+ websocketSubprotocol: ((_w = featureSubgraph.subscription) === null || _w === void 0 ? void 0 : _w.protocol) === 'ws'
238
+ ? ((_x = featureSubgraph.subscription) === null || _x === void 0 ? void 0 : _x.websocketSubprotocol) || 'auto'
239
+ : 'auto',
161
240
  });
162
241
  }
163
242
  else {
164
- subgraphs.push(s);
243
+ // Use the base subgraph as is
244
+ // Find the corresponding metadata in the original subgraphs array
245
+ const originalSubgraph = subgraphs.find((sub) => sub.kind === SubgraphKind.Standard && sub.name === s.name);
246
+ if (originalSubgraph) {
247
+ featureSubgraphs.push(originalSubgraph);
248
+ }
165
249
  }
166
250
  }
167
- const result = composeSubgraphs(subgraphs.map((s, index) => {
168
- var _a;
169
- return ({
170
- name: s.name,
171
- url: normalizeURL(s.routing_url),
172
- definitions: parse((_a = subgraphSDLs.get(s.name)) !== null && _a !== void 0 ? _a : ''),
173
- });
174
- }));
175
- if (!result.success) {
251
+ const featureResult = composeSubgraphs(featureSubgraphs.map((s) => ({
252
+ name: s.name,
253
+ url: normalizeURL(s.routingUrl),
254
+ definitions: parse(s.sdl),
255
+ })));
256
+ if (!featureResult.success) {
176
257
  const compositionErrorsTable = new Table({
177
258
  head: [pc.bold(pc.white('ERROR_MESSAGE'))],
178
259
  colWidths: [120],
179
260
  wordWrap: true,
180
261
  });
181
262
  console.log(pc.red(`We found composition errors, while composing the feature flag ${pc.italic(ff.name)}.\n${pc.bold('Please check the errors below:')}`));
182
- for (const compositionError of result.errors) {
263
+ for (const compositionError of featureResult.errors) {
183
264
  compositionErrorsTable.push([compositionError.message]);
184
265
  }
185
266
  console.log(compositionErrorsTable.toString());
186
267
  continue;
187
268
  }
188
- if (!options.suppressWarnings && result.warnings.length > 0) {
269
+ if (!options.suppressWarnings && featureResult.warnings.length > 0) {
189
270
  const compositionWarningsTable = new Table({
190
271
  head: [pc.bold(pc.white('WARNING_MESSAGE'))],
191
272
  colWidths: [120],
192
273
  wordWrap: true,
193
274
  });
194
275
  console.log(pc.yellow(`The following warnings were produced while composing the feature flag ${pc.italic(ff.name)}:`));
195
- for (const warning of result.warnings) {
276
+ for (const warning of featureResult.warnings) {
196
277
  compositionWarningsTable.push([warning.message]);
197
278
  }
198
279
  console.log(compositionWarningsTable.toString());
199
280
  }
200
- const federatedClientSDL = result.shouldIncludeClientSchema
201
- ? printSchema(result.federatedGraphClientSchema)
281
+ const featureFederatedClientSDL = featureResult.shouldIncludeClientSchema
282
+ ? printSchema(featureResult.federatedGraphClientSchema)
202
283
  : '';
203
- const routerConfig = buildRouterConfig({
204
- federatedClientSDL,
205
- federatedSDL: printSchemaWithDirectives(result.federatedGraphSchema),
206
- fieldConfigurations: result.fieldConfigurations,
284
+ const featureRouterConfig = buildRouterConfig({
285
+ federatedClientSDL: featureFederatedClientSDL,
286
+ federatedSDL: printSchemaWithDirectives(featureResult.federatedGraphSchema),
287
+ fieldConfigurations: featureResult.fieldConfigurations,
207
288
  // @TODO get router compatibility version programmatically
208
289
  routerCompatibilityVersion: ROUTER_COMPATIBILITY_VERSION_ONE,
209
290
  schemaVersionId: `static`,
210
- subgraphs: subgraphs.map((s, index) => {
211
- var _a, _b, _c, _d, _e;
212
- const subgraphConfig = result.subgraphConfigBySubgraphName.get(s.name);
291
+ subgraphs: featureSubgraphs.map((s, index) => {
292
+ const subgraphConfig = featureResult.subgraphConfigBySubgraphName.get(s.name);
213
293
  const schema = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.schema;
214
294
  const configurationDataByTypeName = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.configurationDataByTypeName;
215
- return {
295
+ const composedSubgraph = {
296
+ kind: SubgraphKind.Standard,
216
297
  id: `${index}`,
217
298
  name: s.name,
218
- url: normalizeURL(s.routing_url),
219
- sdl: (_a = subgraphSDLs.get(s.name)) !== null && _a !== void 0 ? _a : '',
220
- subscriptionUrl: ((_b = s.subscription) === null || _b === void 0 ? void 0 : _b.url) || s.routing_url,
221
- subscriptionProtocol: ((_c = s.subscription) === null || _c === void 0 ? void 0 : _c.protocol) || 'ws',
222
- websocketSubprotocol: ((_d = s.subscription) === null || _d === void 0 ? void 0 : _d.protocol) === 'ws' ? ((_e = s.subscription) === null || _e === void 0 ? void 0 : _e.websocketSubprotocol) || 'auto' : undefined,
299
+ url: s.routingUrl,
300
+ sdl: s.sdl,
301
+ subscriptionUrl: s.subscriptionUrl,
302
+ subscriptionProtocol: s.subscriptionProtocol,
303
+ websocketSubprotocol: s.websocketSubprotocol,
223
304
  schema,
224
305
  configurationDataByTypeName,
225
306
  };
307
+ return composedSubgraph;
226
308
  }),
227
309
  });
228
310
  ffConfigs.configByFeatureFlagName[ff.name] = new FeatureFlagRouterExecutionConfig({
229
- version: routerConfig.version,
230
- subgraphs: routerConfig.subgraphs,
231
- engineConfig: routerConfig.engineConfig,
311
+ version: featureRouterConfig.version,
312
+ subgraphs: featureRouterConfig.subgraphs,
313
+ engineConfig: featureRouterConfig.engineConfig,
232
314
  });
233
315
  ffConfigs.configByFeatureFlagName[ff.name].version = randomUUID();
234
316
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../../../src/commands/router/commands/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../../../src/commands/router/commands/compose.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,10 @@ import RouterTokenCommands from './commands/token/index.js';
6
6
  import DownloadRouterBinaryConfig from './commands/download-binary.js';
7
7
  import CompatibilityVersionCommands from './commands/compatibility-version/index.js';
8
8
  import RouterCacheCommands from './commands/cache/index.js';
9
+ import PluginCommands from './plugin/index.js';
9
10
  export default (opts) => {
10
11
  const cmd = new Command('router');
11
- cmd.description('Provides commands for fetching and composing router configs');
12
+ cmd.description('Manages router configurations and deployment - fetch configs, compose locally, manage tokens, download binary, configure plugins');
12
13
  cmd.addCommand(FetchRouterConfig(opts));
13
14
  cmd.addCommand(ComposeRouterConfig(opts));
14
15
  cmd.addCommand(RouterTokenCommands({
@@ -21,6 +22,9 @@ export default (opts) => {
21
22
  cmd.addCommand(CompatibilityVersionCommands({
22
23
  client: opts.client,
23
24
  }));
25
+ cmd.addCommand(PluginCommands({
26
+ client: opts.client,
27
+ }));
24
28
  cmd.hook('preAction', async (thisCmd) => {
25
29
  if (['compose', 'download-binary', 'compatibility-version'].includes(thisCmd.args[0])) {
26
30
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,0BAA0B,MAAM,+BAA+B,CAAC;AACvE,OAAO,4BAA4B,MAAM,2CAA2C,CAAC;AACrF,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAE5D,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG,CAAC,WAAW,CAAC,6DAA6D,CAAC,CAAC;IAC/E,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,UAAU,CACZ,mBAAmB,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,GAAG,CAAC,UAAU,CACZ,mBAAmB,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,UAAU,CACZ,4BAA4B,CAAC;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO;QACT,CAAC;QACD,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,0BAA0B,MAAM,+BAA+B,CAAC;AACvE,OAAO,4BAA4B,MAAM,2CAA2C,CAAC;AACrF,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG,CAAC,WAAW,CACb,kIAAkI,CACnI,CAAC;IACF,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,UAAU,CACZ,mBAAmB,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,GAAG,CAAC,UAAU,CACZ,mBAAmB,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,UAAU,CACZ,4BAA4B,CAAC;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,UAAU,CACZ,cAAc,CAAC;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CACH,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO;QACT,CAAC;QACD,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ import { BaseCommandOptions } from '../../../../core/types/types.js';
3
+ declare const _default: (opts: BaseCommandOptions) => Command;
4
+ export default _default;
@@ -0,0 +1,76 @@
1
+ import path from 'node:path';
2
+ import os from 'node:os';
3
+ import { Command, program } from 'commander';
4
+ import { resolve } from 'pathe';
5
+ import Spinner from 'ora';
6
+ import { renderResultTree } from '../helper.js';
7
+ import { buildBinaries, checkAndInstallTools, generateGRPCCode, generateProtoAndMapping, HOST_PLATFORM, installGoDependencies, normalizePlatforms, } from '../toolchain.js';
8
+ export default (opts) => {
9
+ const command = new Command('build');
10
+ command.description('Build a gRPC router plugin');
11
+ command.argument('[directory]', 'Directory of the plugin', '.');
12
+ command.option('--generate-only', 'Generate only the proto and mapping files, do not compile the plugin');
13
+ command.option('--debug', 'Build the binary with debug information', false);
14
+ command.option('--platform [platforms...]', 'Platform-architecture combinations (e.g., darwin-arm64 linux-amd64)', [
15
+ HOST_PLATFORM,
16
+ ]);
17
+ command.option('--all-platforms', 'Build for all supported platforms', false);
18
+ command.option('--skip-tools-installation', 'Skip tool installation', false);
19
+ command.option('--force-tools-installation', 'Force tools installation regardless of version check or confirmation', false);
20
+ command.option('--go-module-path <path>', 'Go module path to use for the plugin', 'github.com/wundergraph/cosmo/plugin');
21
+ command.action(async (directory, options) => {
22
+ const startTime = performance.now();
23
+ const pluginDir = resolve(directory);
24
+ const spinner = Spinner();
25
+ const pluginName = path.basename(pluginDir);
26
+ const goModulePath = options.goModulePath;
27
+ let platforms = [];
28
+ try {
29
+ // Check and install tools if needed
30
+ if (!options.skipToolsInstallation) {
31
+ await checkAndInstallTools(options.forceToolsInstallation);
32
+ }
33
+ // Normalize platform list
34
+ platforms = normalizePlatforms(options.platform, options.allPlatforms);
35
+ // Start the main build process
36
+ spinner.start('Building plugin...');
37
+ // Generate proto and mapping files
38
+ await generateProtoAndMapping(pluginDir, goModulePath, spinner);
39
+ // Generate gRPC code
40
+ await generateGRPCCode(pluginDir, spinner);
41
+ if (!options.generateOnly) {
42
+ // Install Go dependencies
43
+ await installGoDependencies(pluginDir, spinner);
44
+ // Build binaries for all platforms
45
+ await buildBinaries(pluginDir, platforms, options.debug, spinner);
46
+ }
47
+ // Calculate and format elapsed time
48
+ const endTime = performance.now();
49
+ const elapsedTimeMs = endTime - startTime;
50
+ const formattedTime = elapsedTimeMs > 1000 ? `${(elapsedTimeMs / 1000).toFixed(2)}s` : `${Math.round(elapsedTimeMs)}ms`;
51
+ renderResultTree(spinner, 'Plugin built successfully!', true, pluginName, {
52
+ output: pluginDir,
53
+ 'go module': goModulePath,
54
+ platforms: platforms.join(', '),
55
+ env: `${os.platform()} ${os.arch()}`,
56
+ build: options.debug ? 'debug' : 'release',
57
+ type: options.generateOnly ? 'generate-only' : 'full',
58
+ time: formattedTime,
59
+ });
60
+ }
61
+ catch (error) {
62
+ renderResultTree(spinner, 'Plugin build failed!', false, pluginName, {
63
+ output: pluginDir,
64
+ 'go module': goModulePath,
65
+ platforms: platforms.join(', '),
66
+ env: `${os.platform()} ${os.arch()}`,
67
+ build: options.debug ? 'debug' : 'release',
68
+ type: options.generateOnly ? 'generate-only' : 'full',
69
+ error: error.message,
70
+ });
71
+ program.error('');
72
+ }
73
+ });
74
+ return command;
75
+ };
76
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../src/commands/router/plugin/commands/build.ts"],"names":[],"mappings":"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"}