wgc 0.79.5 → 0.80.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 (31) hide show
  1. package/dist/package.json +13 -4
  2. package/dist/src/commands/router/commands/compose.js +179 -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.5",
3
+ "version": "0.80.1",
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,15 @@
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
+ import semver from 'semver';
5
6
  import { Command, program } from 'commander';
6
7
  import { parse, printSchema } from 'graphql';
7
8
  import * as yaml from 'js-yaml';
8
- import { dirname, resolve } from 'pathe';
9
+ import { basename, dirname, resolve } from 'pathe';
9
10
  import pc from 'picocolors';
10
11
  import { printSchemaWithDirectives } from '@graphql-tools/utils';
11
- import { FeatureFlagRouterExecutionConfig, FeatureFlagRouterExecutionConfigs, } from '@wundergraph/cosmo-connect/dist/node/v1/node_pb';
12
+ import { FeatureFlagRouterExecutionConfig, FeatureFlagRouterExecutionConfigs, GRPCMapping, } from '@wundergraph/cosmo-connect/dist/node/v1/node_pb';
12
13
  import Table from 'cli-table3';
13
14
  import { ROUTER_COMPATIBILITY_VERSION_ONE } from '@wundergraph/composition';
14
15
  import { composeSubgraphs, introspectSubgraph } from '../../../utils.js';
@@ -19,7 +20,7 @@ export default (opts) => {
19
20
  command.option('-o, --out [string]', 'Destination file for the router config.');
20
21
  command.option('--suppress-warnings', 'This flag suppresses any warnings produced by composition.');
21
22
  command.action(async (options) => {
22
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
23
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
23
24
  const inputFile = resolve(options.input);
24
25
  const inputFileLocation = dirname(inputFile);
25
26
  if (!existsSync(inputFile)) {
@@ -27,40 +28,105 @@ export default (opts) => {
27
28
  }
28
29
  const fileContent = (await readFile(inputFile)).toString();
29
30
  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'}`);
31
+ const subgraphs = [];
32
+ for (const [index, s] of config.subgraphs.entries()) {
33
+ // This is a subgraph plugin
34
+ if ('plugin' in s) {
35
+ if (!s.plugin.path) {
36
+ program.error(pc.red(pc.bold(`The plugin path is missing in the input file. Please check the path and try again.`)));
37
+ }
38
+ if (!existsSync(s.plugin.path)) {
39
+ program.error(pc.red(pc.bold(`The plugin path '${pc.bold(s.plugin.path)}' does not exist. Please check the path and try again.`)));
40
+ }
41
+ if (!s.plugin.version) {
42
+ program.error(pc.red(pc.bold(`The plugin version is missing in the input file. Please check the version and try again.`)));
50
43
  }
51
- subgraphSDLs.set(s.name, result.sdl);
44
+ // Check if valid semver
45
+ if (!semver.valid(s.plugin.version)) {
46
+ program.error(pc.red(pc.bold(`The plugin version '${pc.bold(s.plugin.version)}' is not a valid semver. Please check the version and try again.`)));
47
+ }
48
+ const pluginName = basename(s.plugin.path);
49
+ // Check if a plugin with the same name already exists
50
+ if (subgraphs.some((sg) => sg.kind === SubgraphKind.Plugin && sg.name === pluginName)) {
51
+ program.error(pc.red(pc.bold(`A plugin with the name '${pc.bold(pluginName)}' is already registered. Plugin names must be unique.`)));
52
+ }
53
+ const mappingFilePath = resolve(s.plugin.path, 'generated', 'mapping.json');
54
+ const mappingFile = await readFile(mappingFilePath, 'utf8');
55
+ const schemaFilePath = resolve(s.plugin.path, 'src', 'schema.graphql');
56
+ const sdl = await readFile(schemaFilePath, 'utf8');
57
+ const protoSchemaFilePath = resolve(s.plugin.path, 'generated', 'service.proto');
58
+ const protoSchema = await readFile(protoSchemaFilePath, 'utf8');
59
+ subgraphs.push({
60
+ kind: SubgraphKind.Plugin,
61
+ name: pluginName,
62
+ protoSchema,
63
+ version: s.plugin.version,
64
+ sdl,
65
+ mapping: GRPCMapping.fromJsonString(mappingFile),
66
+ });
52
67
  }
53
- catch (e) {
54
- program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${e.message}`);
68
+ else {
69
+ // The subgraph name is required
70
+ if (!s.name) {
71
+ program.error(pc.red(pc.bold(`The subgraph name is required for subgraph at index ${index}. Please provide a name and try again.`)));
72
+ }
73
+ const url = (_b = (_a = s.introspection) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : s.routing_url;
74
+ // Check if a subgraph with the same name already exists
75
+ if (subgraphs.some((sg) => sg.name === s.name)) {
76
+ program.error(pc.red(pc.bold(`A subgraph with the name '${pc.bold(s.name)}' is already registered. Subgraph names must be unique.`)));
77
+ }
78
+ let schemaSDL = '';
79
+ // The GraphQL schema is provided in the input file
80
+ if ((_c = s.schema) === null || _c === void 0 ? void 0 : _c.file) {
81
+ const schemaFile = resolve(inputFileLocation, s.schema.file);
82
+ const sdl = (await readFile(schemaFile)).toString();
83
+ schemaSDL = sdl;
84
+ }
85
+ else {
86
+ // The GraphQL schema is not provided in the input file, so we need to introspect it
87
+ try {
88
+ const result = await introspectSubgraph({
89
+ subgraphURL: url,
90
+ additionalHeaders: Object.entries((_e = (_d = s.introspection) === null || _d === void 0 ? void 0 : _d.headers) !== null && _e !== void 0 ? _e : {}).map(([key, value]) => ({
91
+ key,
92
+ value,
93
+ })),
94
+ rawIntrospection: (_f = s.introspection) === null || _f === void 0 ? void 0 : _f.raw,
95
+ });
96
+ if (!result.success) {
97
+ program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${(_g = result.errorMessage) !== null && _g !== void 0 ? _g : 'failed'}`);
98
+ }
99
+ schemaSDL = result.sdl;
100
+ }
101
+ catch (e) {
102
+ program.error(`Could not introspect subgraph ${s.name}, URL: ${url}: ${e.message}`);
103
+ }
104
+ }
105
+ subgraphs.push({
106
+ kind: SubgraphKind.Standard,
107
+ name: s.name,
108
+ sdl: schemaSDL,
109
+ subscriptionUrl: ((_h = s.subscription) === null || _h === void 0 ? void 0 : _h.url) || s.routing_url,
110
+ subscriptionProtocol: ((_j = s.subscription) === null || _j === void 0 ? void 0 : _j.protocol) || 'ws',
111
+ 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',
112
+ routingUrl: normalizeURL(s.routing_url),
113
+ });
55
114
  }
56
115
  }
57
- const result = composeSubgraphs(config.subgraphs.map((s, index) => {
116
+ const result = composeSubgraphs(subgraphs.map((s, index) => {
58
117
  var _a;
59
- return ({
118
+ if (s.kind === SubgraphKind.Plugin) {
119
+ return {
120
+ name: s.name,
121
+ url: `http://localhost:3000/plugin/${index}`,
122
+ definitions: parse((_a = s.sdl) !== null && _a !== void 0 ? _a : ''),
123
+ };
124
+ }
125
+ return {
60
126
  name: s.name,
61
- url: normalizeURL(s.routing_url),
62
- definitions: parse((_a = subgraphSDLs.get(s.name)) !== null && _a !== void 0 ? _a : ''),
63
- });
127
+ url: s.routingUrl,
128
+ definitions: parse(s.sdl),
129
+ };
64
130
  }));
65
131
  if (!result.success) {
66
132
  const compositionErrorsTable = new Table({
@@ -96,22 +162,38 @@ export default (opts) => {
96
162
  // @TODO get router compatibility version programmatically
97
163
  routerCompatibilityVersion: ROUTER_COMPATIBILITY_VERSION_ONE,
98
164
  schemaVersionId: 'static',
99
- subgraphs: config.subgraphs.map((s, index) => {
100
- var _a, _b, _c, _d, _e;
165
+ subgraphs: subgraphs.map((s, index) => {
101
166
  const subgraphConfig = result.subgraphConfigBySubgraphName.get(s.name);
102
167
  const schema = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.schema;
103
168
  const configurationDataByTypeName = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.configurationDataByTypeName;
104
- return {
169
+ if (s.kind === SubgraphKind.Standard) {
170
+ const composedSubgraph = {
171
+ kind: SubgraphKind.Standard,
172
+ id: `${index}`,
173
+ name: s.name,
174
+ url: s.routingUrl,
175
+ sdl: s.sdl,
176
+ subscriptionUrl: s.subscriptionUrl,
177
+ subscriptionProtocol: s.subscriptionProtocol,
178
+ websocketSubprotocol: s.websocketSubprotocol,
179
+ schema,
180
+ configurationDataByTypeName,
181
+ };
182
+ return composedSubgraph;
183
+ }
184
+ const composedSubgraphPlugin = {
185
+ kind: SubgraphKind.Plugin,
105
186
  id: `${index}`,
106
187
  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,
188
+ url: `http://localhost:3000/plugin/${index}`,
189
+ sdl: s.sdl,
190
+ mapping: s.mapping,
191
+ protoSchema: s.protoSchema,
192
+ version: s.version,
112
193
  schema,
113
194
  configurationDataByTypeName,
114
195
  };
196
+ return composedSubgraphPlugin;
115
197
  }),
116
198
  });
117
199
  routerConfig.version = randomUUID();
@@ -120,115 +202,123 @@ export default (opts) => {
120
202
  // @TODO This logic should exist only once in the shared package and reused across
121
203
  // control-plane and cli
122
204
  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) {
205
+ const featureSubgraphs = [];
206
+ const standardSubgraphs = config.subgraphs.filter((ss) => !('plugin' in ss));
207
+ // Process each subgraph for this feature flag
208
+ for (const s of standardSubgraphs) {
209
+ // Check if this subgraph is overridden by a feature graph
126
210
  const featureSubgraph = ff.feature_graphs.find((ffs) => ffs.subgraph_name === s.name);
127
211
  if (featureSubgraph) {
128
- if ((_h = featureSubgraph === null || featureSubgraph === void 0 ? void 0 : featureSubgraph.schema) === null || _h === void 0 ? void 0 : _h.file) {
212
+ // This subgraph is overridden by a feature graph
213
+ const url = (_o = (_m = featureSubgraph.introspection) === null || _m === void 0 ? void 0 : _m.url) !== null && _o !== void 0 ? _o : featureSubgraph.routing_url;
214
+ let schemaSDL = '';
215
+ if ((_p = featureSubgraph.schema) === null || _p === void 0 ? void 0 : _p.file) {
129
216
  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);
217
+ schemaSDL = await readFile(schemaFile, 'utf8');
133
218
  }
134
219
  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
220
  try {
137
221
  const result = await introspectSubgraph({
138
222
  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]) => ({
223
+ additionalHeaders: Object.entries((_r = (_q = featureSubgraph.introspection) === null || _q === void 0 ? void 0 : _q.headers) !== null && _r !== void 0 ? _r : {}).map(([key, value]) => ({
140
224
  key,
141
225
  value,
142
226
  })),
143
- rawIntrospection: (_o = featureSubgraph.introspection) === null || _o === void 0 ? void 0 : _o.raw,
227
+ rawIntrospection: (_s = featureSubgraph.introspection) === null || _s === void 0 ? void 0 : _s.raw,
144
228
  });
145
229
  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'}`);
230
+ program.error(`Could not introspect feature-graph subgraph ${featureSubgraph.name}, URL: ${url}: ${(_t = result.errorMessage) !== null && _t !== void 0 ? _t : 'failed'}`);
147
231
  }
148
- // Replace feature subgraph sdl with the base subgraph sdl
149
- subgraphSDLs.set(s.name, result.sdl);
232
+ schemaSDL = result.sdl;
150
233
  }
151
234
  catch (e) {
152
235
  program.error(`Could not introspect feature-graph subgraph ${featureSubgraph.name}, URL: ${url}: ${e.message}`);
153
236
  }
154
237
  }
155
- subgraphs.push({
238
+ featureSubgraphs.push({
239
+ kind: SubgraphKind.Standard,
156
240
  name: featureSubgraph.name,
157
- routing_url: featureSubgraph.routing_url,
158
- schema: featureSubgraph.schema,
159
- subscription: featureSubgraph.subscription,
160
- introspection: featureSubgraph.introspection,
241
+ sdl: schemaSDL,
242
+ routingUrl: featureSubgraph.routing_url,
243
+ subscriptionUrl: ((_u = featureSubgraph.subscription) === null || _u === void 0 ? void 0 : _u.url) || featureSubgraph.routing_url,
244
+ subscriptionProtocol: ((_v = featureSubgraph.subscription) === null || _v === void 0 ? void 0 : _v.protocol) || 'ws',
245
+ websocketSubprotocol: ((_w = featureSubgraph.subscription) === null || _w === void 0 ? void 0 : _w.protocol) === 'ws'
246
+ ? ((_x = featureSubgraph.subscription) === null || _x === void 0 ? void 0 : _x.websocketSubprotocol) || 'auto'
247
+ : 'auto',
161
248
  });
162
249
  }
163
250
  else {
164
- subgraphs.push(s);
251
+ // Use the base subgraph as is
252
+ // Find the corresponding metadata in the original subgraphs array
253
+ const originalSubgraph = subgraphs.find((sub) => sub.kind === SubgraphKind.Standard && sub.name === s.name);
254
+ if (originalSubgraph) {
255
+ featureSubgraphs.push(originalSubgraph);
256
+ }
165
257
  }
166
258
  }
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) {
259
+ const featureResult = composeSubgraphs(featureSubgraphs.map((s) => ({
260
+ name: s.name,
261
+ url: normalizeURL(s.routingUrl),
262
+ definitions: parse(s.sdl),
263
+ })));
264
+ if (!featureResult.success) {
176
265
  const compositionErrorsTable = new Table({
177
266
  head: [pc.bold(pc.white('ERROR_MESSAGE'))],
178
267
  colWidths: [120],
179
268
  wordWrap: true,
180
269
  });
181
270
  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) {
271
+ for (const compositionError of featureResult.errors) {
183
272
  compositionErrorsTable.push([compositionError.message]);
184
273
  }
185
274
  console.log(compositionErrorsTable.toString());
186
275
  continue;
187
276
  }
188
- if (!options.suppressWarnings && result.warnings.length > 0) {
277
+ if (!options.suppressWarnings && featureResult.warnings.length > 0) {
189
278
  const compositionWarningsTable = new Table({
190
279
  head: [pc.bold(pc.white('WARNING_MESSAGE'))],
191
280
  colWidths: [120],
192
281
  wordWrap: true,
193
282
  });
194
283
  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) {
284
+ for (const warning of featureResult.warnings) {
196
285
  compositionWarningsTable.push([warning.message]);
197
286
  }
198
287
  console.log(compositionWarningsTable.toString());
199
288
  }
200
- const federatedClientSDL = result.shouldIncludeClientSchema
201
- ? printSchema(result.federatedGraphClientSchema)
289
+ const featureFederatedClientSDL = featureResult.shouldIncludeClientSchema
290
+ ? printSchema(featureResult.federatedGraphClientSchema)
202
291
  : '';
203
- const routerConfig = buildRouterConfig({
204
- federatedClientSDL,
205
- federatedSDL: printSchemaWithDirectives(result.federatedGraphSchema),
206
- fieldConfigurations: result.fieldConfigurations,
292
+ const featureRouterConfig = buildRouterConfig({
293
+ federatedClientSDL: featureFederatedClientSDL,
294
+ federatedSDL: printSchemaWithDirectives(featureResult.federatedGraphSchema),
295
+ fieldConfigurations: featureResult.fieldConfigurations,
207
296
  // @TODO get router compatibility version programmatically
208
297
  routerCompatibilityVersion: ROUTER_COMPATIBILITY_VERSION_ONE,
209
298
  schemaVersionId: `static`,
210
- subgraphs: subgraphs.map((s, index) => {
211
- var _a, _b, _c, _d, _e;
212
- const subgraphConfig = result.subgraphConfigBySubgraphName.get(s.name);
299
+ subgraphs: featureSubgraphs.map((s, index) => {
300
+ const subgraphConfig = featureResult.subgraphConfigBySubgraphName.get(s.name);
213
301
  const schema = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.schema;
214
302
  const configurationDataByTypeName = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.configurationDataByTypeName;
215
- return {
303
+ const composedSubgraph = {
304
+ kind: SubgraphKind.Standard,
216
305
  id: `${index}`,
217
306
  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,
307
+ url: s.routingUrl,
308
+ sdl: s.sdl,
309
+ subscriptionUrl: s.subscriptionUrl,
310
+ subscriptionProtocol: s.subscriptionProtocol,
311
+ websocketSubprotocol: s.websocketSubprotocol,
223
312
  schema,
224
313
  configurationDataByTypeName,
225
314
  };
315
+ return composedSubgraph;
226
316
  }),
227
317
  });
228
318
  ffConfigs.configByFeatureFlagName[ff.name] = new FeatureFlagRouterExecutionConfig({
229
- version: routerConfig.version,
230
- subgraphs: routerConfig.subgraphs,
231
- engineConfig: routerConfig.engineConfig,
319
+ version: featureRouterConfig.version,
320
+ subgraphs: featureRouterConfig.subgraphs,
321
+ engineConfig: featureRouterConfig.engineConfig,
232
322
  });
233
323
  ffConfigs.configByFeatureFlagName[ff.name].version = randomUUID();
234
324
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../../../src/commands/router/commands/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAgCzE,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,CAAC,WAAW,CACjB,2LAA2L,CAC5L,CAAC;IACF,OAAO,CAAC,cAAc,CAAC,6BAA6B,EAAE,oDAAoD,CAAC,CAAC;IAC5G,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,yCAAyC,CAAC,CAAC;IAChF,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,4DAA4D,CAAC,CAAC;IACpG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAC/G,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAW,CAAC;QAEhD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,MAAA,CAAC,CAAC,MAAM,0CAAE,IAAI,EAAE,CAAC;gBACnB,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACpD,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,MAAA,MAAA,CAAC,CAAC,aAAa,0CAAE,GAAG,mCAAI,CAAC,CAAC,WAAW,CAAC;YAElD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;oBACtC,WAAW,EAAE,GAAG;oBAChB,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,MAAA,MAAA,CAAC,CAAC,aAAa,0CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBACvF,GAAG;wBACH,KAAK;qBACN,CAAC,CAAC;oBACH,gBAAgB,EAAE,MAAA,CAAC,CAAC,aAAa,0CAAE,GAAG;iBACvC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,IAAI,UAAU,GAAG,KAAK,MAAA,MAAM,CAAC,YAAY,mCAAI,QAAQ,EAAE,CAAC,CAAC;gBAC5G,CAAC;gBAED,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;gBAChC,WAAW,EAAE,KAAK,CAAC,MAAA,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;aACnD,CAAC,CAAA;SAAA,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC;gBACvC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC1C,SAAS,EAAE,CAAC,GAAG,CAAC;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CACtG,CAAC;YACF,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC7C,sBAAsB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAC;gBACzC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC5C,SAAS,EAAE,CAAC,GAAG,CAAC;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,MAAM,YAAY,GAAG,iBAAiB,CAAC;YACrC,kBAAkB;YAClB,YAAY,EAAE,yBAAyB,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACpE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,0DAA0D;YAC1D,0BAA0B,EAAE,gCAAgC;YAC5D,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;;gBAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,MAAM,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAC;gBACtC,MAAM,2BAA2B,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,2BAA2B,CAAC;gBAChF,OAAO;oBACL,EAAE,EAAE,GAAG,KAAK,EAAE;oBACd,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;oBAChC,GAAG,EAAE,MAAA,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAI,EAAE;oBACnC,eAAe,EAAE,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,GAAG,KAAI,CAAC,CAAC,WAAW;oBACrD,oBAAoB,EAAE,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,QAAQ,KAAI,IAAI;oBACtD,oBAAoB,EAClB,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,QAAQ,MAAK,IAAI,CAAC,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,oBAAoB,KAAI,MAAM,CAAC,CAAC,CAAC,SAAS;oBAChG,MAAM;oBACN,2BAA2B;iBAC5B,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAsC,IAAI,iCAAiC,EAAE,CAAC;YAE7F,kFAAkF;YAClF,wBAAwB;YAExB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACtC,MAAM,SAAS,GAAe,EAAE,CAAC;gBAEjC,qDAAqD;gBACrD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACjC,MAAM,eAAe,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtF,IAAI,eAAe,EAAE,CAAC;wBACpB,IAAI,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,0CAAE,IAAI,EAAE,CAAC;4BAClC,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAC3E,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;4BACpD,0DAA0D;4BAC1D,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,GAAG,MAAA,MAAA,eAAe,CAAC,aAAa,0CAAE,GAAG,mCAAI,eAAe,CAAC,WAAW,CAAC;4BAC9E,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;oCACtC,WAAW,EAAE,GAAG;oCAChB,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,MAAA,MAAA,eAAe,CAAC,aAAa,0CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CACjF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wCACjB,GAAG;wCACH,KAAK;qCACN,CAAC,CACH;oCACD,gBAAgB,EAAE,MAAA,eAAe,CAAC,aAAa,0CAAE,GAAG;iCACrD,CAAC,CAAC;gCAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oCACpB,OAAO,CAAC,KAAK,CACX,+CAA+C,eAAe,CAAC,IAAI,UAAU,GAAG,KAC9E,MAAA,MAAM,CAAC,YAAY,mCAAI,QACzB,EAAE,CACH,CAAC;gCACJ,CAAC;gCAED,0DAA0D;gCAC1D,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;4BACvC,CAAC;4BAAC,OAAO,CAAM,EAAE,CAAC;gCAChB,OAAO,CAAC,KAAK,CACX,+CAA+C,eAAe,CAAC,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CACjG,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,SAAS,CAAC,IAAI,CAAC;4BACb,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,WAAW,EAAE,eAAe,CAAC,WAAW;4BACxC,MAAM,EAAE,eAAe,CAAC,MAAM;4BAC9B,YAAY,EAAE,eAAe,CAAC,YAAY;4BAC1C,aAAa,EAAE,eAAe,CAAC,aAAa;yBAC7C,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,gBAAgB,CAC7B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;;oBAAC,OAAA,CAAC;wBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;wBAChC,WAAW,EAAE,KAAK,CAAC,MAAA,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;qBACnD,CAAC,CAAA;iBAAA,CAAC,CACJ,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC;wBACvC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;wBAC1C,SAAS,EAAE,CAAC,GAAG,CAAC;wBAChB,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBAEH,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,GAAG,CACJ,iEAAiE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAC9F,gCAAgC,CACjC,EAAE,CACJ,CACF,CAAC;oBACF,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC7C,sBAAsB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1D,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC/C,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5D,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAAC;wBACzC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;wBAC5C,SAAS,EAAE,CAAC,GAAG,CAAC;wBAChB,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBAEH,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,MAAM,CAAC,yEAAyE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAC1G,CAAC;oBACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACtC,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,yBAAyB;oBACzD,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0BAA0B,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,YAAY,GAAG,iBAAiB,CAAC;oBACrC,kBAAkB;oBAClB,YAAY,EAAE,yBAAyB,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBACpE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;oBAC/C,0DAA0D;oBAC1D,0BAA0B,EAAE,gCAAgC;oBAC5D,eAAe,EAAE,QAAQ;oBACzB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;;wBACpC,MAAM,cAAc,GAAG,MAAM,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACvE,MAAM,MAAM,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAC;wBACtC,MAAM,2BAA2B,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,2BAA2B,CAAC;wBAChF,OAAO;4BACL,EAAE,EAAE,GAAG,KAAK,EAAE;4BACd,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;4BAChC,GAAG,EAAE,MAAA,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAI,EAAE;4BACnC,eAAe,EAAE,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,GAAG,KAAI,CAAC,CAAC,WAAW;4BACrD,oBAAoB,EAAE,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,QAAQ,KAAI,IAAI;4BACtD,oBAAoB,EAClB,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,QAAQ,MAAK,IAAI,CAAC,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,oBAAoB,KAAI,MAAM,CAAC,CAAC,CAAC,SAAS;4BAChG,MAAM;4BACN,2BAA2B;yBAC5B,CAAC;oBACJ,CAAC,CAAC;iBACH,CAAC,CAAC;gBAEH,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,gCAAgC,CAAC;oBAChF,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,YAAY,EAAE,YAAY,CAAC,YAAY;iBACxC,CAAC,CAAC;gBAEH,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;YACpE,CAAC;YAED,YAAY,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
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