wgc 0.85.6 → 0.87.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.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wgc",
3
- "version": "0.85.6",
3
+ "version": "0.87.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",
@@ -42,6 +42,7 @@
42
42
  "@connectrpc/connect-node": "^1.4.0",
43
43
  "@graphql-tools/utils": "^10.2.2",
44
44
  "@modelcontextprotocol/sdk": "^1.9.0",
45
+ "@octokit/rest": "^22.0.0",
45
46
  "@wundergraph/composition": "workspace:*",
46
47
  "@wundergraph/cosmo-connect": "workspace:*",
47
48
  "@wundergraph/cosmo-shared": "workspace:*",
@@ -58,6 +59,7 @@
58
59
  "env-ci": "^11.1.0",
59
60
  "env-paths": "^3.0.0",
60
61
  "execa": "^9.5.2",
62
+ "fs-extra": "^11.3.0",
61
63
  "graphql": "^16.9.0",
62
64
  "https-proxy-agent": "^7.0.5",
63
65
  "inquirer": "^9.2.7",
@@ -74,6 +76,7 @@
74
76
  "prompts": "^2.4.2",
75
77
  "pupa": "^3.1.0",
76
78
  "semver": "^7.7.1",
79
+ "tar": "^7.4.3",
77
80
  "trieve-ts-sdk": "^0.0.80",
78
81
  "undici": "^6.21.1",
79
82
  "zod": "^3.22.4"
@@ -84,12 +87,14 @@
84
87
  "@types/cli-table": "^0.3.1",
85
88
  "@types/decompress": "^4.2.7",
86
89
  "@types/env-ci": "^3.1.4",
90
+ "@types/fs-extra": "^11.0.4",
87
91
  "@types/inquirer": "^9.0.3",
88
92
  "@types/js-yaml": "^4.0.5",
89
93
  "@types/lodash-es": "4.17.12",
90
94
  "@types/node": "^20.3.1",
91
95
  "@types/prompts": "^2.4.9",
92
96
  "@types/semver": "^7.7.0",
97
+ "@types/tar": "^6.1.13",
93
98
  "del-cli": "^5.0.0",
94
99
  "eslint": "^8.57.1",
95
100
  "eslint-config-unjs": "^0.2.1",
@@ -1,4 +1,4 @@
1
- import { readFile, writeFile } from 'node:fs/promises';
1
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
2
  import { existsSync, lstatSync } from 'node:fs';
3
3
  import { resolve } from 'pathe';
4
4
  import Spinner from 'ora';
@@ -25,8 +25,9 @@ async function generateCommandAction(name, options) {
25
25
  spinner.start('Generating protobuf schema...');
26
26
  try {
27
27
  const inputFile = resolve(options.input);
28
+ // Ensure output directory exists
28
29
  if (!existsSync(options.output)) {
29
- program.error(`Output directory ${options.output} does not exist`);
30
+ await mkdir(options.output, { recursive: true });
30
31
  }
31
32
  if (!lstatSync(options.output).isDirectory()) {
32
33
  program.error(`Output directory ${options.output} is not a directory`);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -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,169 @@
1
+ import { existsSync, readdirSync, mkdirSync } from 'node:fs';
2
+ import os from 'node:os';
3
+ import { Command, program } from 'commander';
4
+ import { resolve, join } from 'pathe';
5
+ import Spinner from 'ora';
6
+ import { Octokit } from '@octokit/rest';
7
+ import { extract, t } from 'tar';
8
+ import fs from 'fs-extra';
9
+ import pc from 'picocolors';
10
+ import { fetchAvailableTemplates } from './list-templates.js';
11
+ async function checkTemplateExists(template) {
12
+ const octokit = new Octokit({
13
+ log: {
14
+ debug: () => { },
15
+ info: () => { },
16
+ warn: () => { },
17
+ error: () => { },
18
+ },
19
+ });
20
+ const owner = 'wundergraph';
21
+ const repo = 'cosmo-templates';
22
+ const path = `grpc-service/${template}`;
23
+ try {
24
+ const res = await octokit.repos.getContent({ owner, repo, path });
25
+ // If it's a directory, res.data will be an array
26
+ return Array.isArray(res.data);
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ }
32
+ async function downloadAndExtractTemplate(template, outputDir, spinner) {
33
+ const octokit = new Octokit();
34
+ const owner = 'wundergraph';
35
+ const repo = 'cosmo-templates';
36
+ const ref = 'main'; // You may want to make this configurable
37
+ const tempTarPath = join(os.tmpdir(), `cosmo-templates-${Date.now()}.tar.gz`);
38
+ const tempExtractDir = join(os.tmpdir(), `cosmo-templates-extract-${Date.now()}`);
39
+ let topLevelDir = '';
40
+ try {
41
+ await fs.ensureDir(tempExtractDir);
42
+ spinner.text = 'Downloading template from GitHub...';
43
+ let response;
44
+ try {
45
+ response = await octokit.repos.downloadTarballArchive({ owner, repo, ref });
46
+ }
47
+ catch (err) {
48
+ throw new Error(`Failed to download template tarball from GitHub: ${err.message || err}`);
49
+ }
50
+ if (response.data instanceof ArrayBuffer) {
51
+ try {
52
+ await fs.writeFile(tempTarPath, new Uint8Array(Buffer.from(response.data)));
53
+ }
54
+ catch (err) {
55
+ throw new Error(`Failed to write tarball to disk: ${err.message || err}`);
56
+ }
57
+ }
58
+ else {
59
+ throw new TypeError('Unexpected tarball response type');
60
+ }
61
+ spinner.text = 'Extracting template files...';
62
+ try {
63
+ await t({
64
+ file: tempTarPath,
65
+ onentry: (entry) => {
66
+ if (!topLevelDir && entry.path.includes('/')) {
67
+ topLevelDir = entry.path.split('/')[0];
68
+ }
69
+ },
70
+ });
71
+ }
72
+ catch (err) {
73
+ throw new Error(`Failed to inspect tarball for top-level directory: ${err.message || err}`);
74
+ }
75
+ const templatePathInTar = `${topLevelDir}/grpc-service/${template}`;
76
+ let extracted = false;
77
+ try {
78
+ await extract({
79
+ file: tempTarPath,
80
+ cwd: tempExtractDir,
81
+ filter: (p) => p.startsWith(templatePathInTar + '/'),
82
+ strip: templatePathInTar.split('/').length,
83
+ });
84
+ // Validate extraction
85
+ const extractedTemplateDir = join(tempExtractDir);
86
+ const files = await fs.readdir(extractedTemplateDir);
87
+ if (!files || files.length === 0) {
88
+ throw new Error('Extracted template directory is empty. The template may not exist or is misconfigured.');
89
+ }
90
+ extracted = true;
91
+ }
92
+ catch (err) {
93
+ throw new Error(`Failed to extract template files: ${err.message || err}`);
94
+ }
95
+ // Copy extracted files to outputDir
96
+ await fs.copy(tempExtractDir, outputDir, { overwrite: true }).catch((err) => {
97
+ throw new Error(`Failed to copy extracted files to output directory: ${err.message || err}`);
98
+ });
99
+ }
100
+ catch (error) {
101
+ spinner.fail(pc.red('Error during template extraction.'));
102
+ throw error;
103
+ }
104
+ finally {
105
+ // Cleanup
106
+ await fs.remove(tempTarPath).catch();
107
+ await fs.remove(tempExtractDir).catch();
108
+ }
109
+ }
110
+ export default (opts) => {
111
+ const command = new Command();
112
+ command
113
+ .name('init')
114
+ .description('Scaffold a new gRPC service project from a template')
115
+ .option('-t, --template <template>', 'Template to use', 'typescript-connect-rpc-fastify')
116
+ .option('-d, --directory <directory>', 'Output directory', '.')
117
+ .action(async (options) => {
118
+ const spinner = Spinner();
119
+ const template = options.template || 'typescript-connect-rpc-fastify';
120
+ // Validate template name to prevent path traversal
121
+ if (!/^[\w-]+$/.test(template)) {
122
+ program.error(`Invalid template name '${template}'. Template names can only contain letters, numbers, hyphens, and underscores.`);
123
+ }
124
+ const outputDir = resolve(process.cwd(), options.directory || '.');
125
+ spinner.start(`Checking if template '${template}' exists...`);
126
+ const templateExists = await checkTemplateExists(template);
127
+ if (!templateExists) {
128
+ spinner.start('Fetching available templates...');
129
+ const templates = await fetchAvailableTemplates();
130
+ spinner.stop();
131
+ if (templates.length > 0) {
132
+ console.log(pc.yellow('Available templates:'));
133
+ for (const t of templates) {
134
+ console.log(` - ${t}`);
135
+ }
136
+ console.log('');
137
+ console.log(`\n${pc.yellow('To use a template, run:')}\n wgc grpc-service init --template ${templates[0]} --directory ./output\n`);
138
+ }
139
+ else {
140
+ console.log(pc.red('No templates found in wundergraph/cosmo-templates under grpc-service.'));
141
+ }
142
+ program.error(`Template '${template}' does not exist in wundergraph/cosmo-templates under grpc-service. Please check the template name and try again.`);
143
+ }
144
+ spinner.text = `Scaffolding gRPC service using template '${template}'...`;
145
+ try {
146
+ if (existsSync(outputDir)) {
147
+ const files = readdirSync(outputDir);
148
+ if (files.length > 0) {
149
+ spinner.fail(pc.red('Output directory is not empty.'));
150
+ program.error(`The directory '${outputDir}' is not empty. Please use the --directory argument to specify an empty or new directory.`);
151
+ }
152
+ }
153
+ else {
154
+ mkdirSync(outputDir, { recursive: true });
155
+ }
156
+ await downloadAndExtractTemplate(template, outputDir, spinner);
157
+ spinner.succeed(pc.green(`gRPC service scaffolded in ${outputDir}`));
158
+ console.log('');
159
+ console.log(` Checkout the ${pc.bold(pc.italic('README.md'))} file for instructions on how to use your service.`);
160
+ console.log('');
161
+ }
162
+ catch (error) {
163
+ spinner.fail(pc.red('Failed to scaffold gRPC service'));
164
+ program.error(error.message || String(error));
165
+ }
166
+ });
167
+ return command;
168
+ };
169
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,OAAO,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,GAAG,EAAE;YACH,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;SAChB;KACF,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC;IAC/B,MAAM,IAAI,GAAG,gBAAgB,QAAQ,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,iDAAiD;QACjD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,QAAgB,EAAE,SAAiB,EAAE,OAAY;IACzF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,yCAAyC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAElF,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEnC,OAAO,CAAC,IAAI,GAAG,qCAAqC,CAAC;QACrD,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,YAAY,WAAW,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,CAAC,CAAC;gBACN,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,CAAC,KAAuB,EAAE,EAAE;oBACnC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7C,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,iBAAiB,GAAG,GAAG,WAAW,iBAAiB,QAAQ,EAAE,CAAC;QACpE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC;gBACZ,IAAI,EAAE,WAAW;gBACjB,GAAG,EAAE,cAAc;gBACnB,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC;gBAC5D,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM;aAC3C,CAAC,CAAC;YACH,sBAAsB;YACtB,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC5G,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,oCAAoC;QACpC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC/E,MAAM,IAAI,KAAK,CAAC,uDAAuD,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,UAAU;QACV,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,gCAAgC,CAAC;SACxF,MAAM,CAAC,6BAA6B,EAAE,kBAAkB,EAAE,GAAG,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,OAAgD,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,gCAAgC,CAAC;QACtE,mDAAmD;QACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CACX,0BAA0B,QAAQ,gFAAgF,CACnH,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;QAEnE,OAAO,CAAC,KAAK,CAAC,yBAAyB,QAAQ,aAAa,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC/C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1B,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CACT,KAAK,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,wCAAwC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CACvH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC/F,CAAC;YACD,OAAO,CAAC,KAAK,CACX,aAAa,QAAQ,mHAAmH,CACzI,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,4CAA4C,QAAQ,MAAM,CAAC;QAE1E,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBACvD,OAAO,CAAC,KAAK,CACX,kBAAkB,SAAS,2FAA2F,CACvH,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,0BAA0B,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/D,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,kBAAkB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,oDAAoD,CACtG,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { BaseCommandOptions } from '../../../core/types/types.js';
3
+ export declare function fetchAvailableTemplates(): Promise<string[]>;
4
+ declare const _default: (_opts: BaseCommandOptions) => Command;
5
+ export default _default;
@@ -0,0 +1,52 @@
1
+ import { Command } from 'commander';
2
+ import pc from 'picocolors';
3
+ import Spinner from 'ora';
4
+ import { Octokit } from '@octokit/rest';
5
+ export async function fetchAvailableTemplates() {
6
+ const octokit = new Octokit();
7
+ const owner = 'wundergraph';
8
+ const repo = 'cosmo-templates';
9
+ const path = 'grpc-service';
10
+ try {
11
+ const res = await octokit.repos.getContent({ owner, repo, path });
12
+ if (Array.isArray(res.data)) {
13
+ return res.data.filter((item) => item.type === 'dir').map((item) => item.name);
14
+ }
15
+ }
16
+ catch {
17
+ console.error('Error listing templates from https://github.com/wundergraph/cosmo-templates/');
18
+ }
19
+ return [];
20
+ }
21
+ export default (_opts) => {
22
+ const command = new Command();
23
+ command
24
+ .name('list-templates')
25
+ .description('List all available gRPC service templates')
26
+ .action(async () => {
27
+ const spinner = Spinner('Fetching available templates...').start();
28
+ try {
29
+ const templates = await fetchAvailableTemplates();
30
+ spinner.stop();
31
+ if (templates.length > 0) {
32
+ console.log(pc.yellow('Available templates:'));
33
+ for (const t of templates) {
34
+ console.log(` - ${t}`);
35
+ }
36
+ console.log('');
37
+ console.log(pc.yellow('To use a template, run:'));
38
+ console.log(` wgc grpc-service init --template ${templates[0]} --directory ./output`);
39
+ console.log('');
40
+ }
41
+ else {
42
+ console.log(pc.red('No templates found in wundergraph/cosmo-templates under grpc-service.'));
43
+ }
44
+ }
45
+ catch (error) {
46
+ spinner.fail('Failed to fetch templates');
47
+ console.error(error);
48
+ }
49
+ });
50
+ return command;
51
+ };
52
+ //# sourceMappingURL=list-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-templates.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/list-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,OAAO,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,eAAe,CAAC,KAAyB,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,gBAAgB,CAAC;SACtB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC/C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1B,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,sCAAsC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;gBACvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,9 +1,13 @@
1
1
  import { Command } from 'commander';
2
2
  import generateCommand from './commands/generate.js';
3
+ import initCommand from './commands/init.js';
4
+ import listTemplatesCommand from './commands/list-templates.js';
3
5
  export default (opts) => {
4
6
  const command = new Command('grpc-service');
5
7
  command.description('Manage protobuf schemas for remote gRPC services');
6
8
  command.addCommand(generateCommand(opts));
9
+ command.addCommand(initCommand(opts));
10
+ command.addCommand(listTemplatesCommand(opts));
7
11
  return command;
8
12
  };
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/grpc-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,eAAe,MAAM,wBAAwB,CAAC;AAErD,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5C,OAAO,CAAC,WAAW,CAAC,kDAAkD,CAAC,CAAC;IACxE,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/grpc-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAEhE,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5C,OAAO,CAAC,WAAW,CAAC,kDAAkD,CAAC,CAAC;IACxE,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Command, program } from 'commander';
2
2
  import ora from 'ora';
3
3
  import pc from 'picocolors';
4
+ import { ProposalNamingConvention } from '@wundergraph/cosmo-connect/dist/platform/v1/platform_pb';
4
5
  import { getBaseHeaders } from '../../../core/config.js';
5
6
  import { handleProposalResult } from '../../../handle-proposal-result.js';
6
7
  import { processProposalSubgraphs } from '../utils.js';
@@ -42,6 +43,7 @@ export default (opts) => {
42
43
  namespace: options.namespace,
43
44
  name,
44
45
  subgraphs,
46
+ namingConvention: ProposalNamingConvention.NORMAL,
45
47
  }, {
46
48
  headers: getBaseHeaders(),
47
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/commands/proposal/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/commands/proposal/commands/create.ts"],"names":[],"mappings":"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"}