@codata-io/cli 0.2.2
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/bin/codata.d.ts +3 -0
- package/dist/bin/codata.d.ts.map +1 -0
- package/dist/bin/codata.js +3 -0
- package/dist/bin/codata.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +192 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/commands/api.d.ts +6 -0
- package/dist/src/commands/api.d.ts.map +1 -0
- package/dist/src/commands/api.js +79 -0
- package/dist/src/commands/api.js.map +1 -0
- package/dist/src/commands/branches.d.ts +14 -0
- package/dist/src/commands/branches.d.ts.map +1 -0
- package/dist/src/commands/branches.js +86 -0
- package/dist/src/commands/branches.js.map +1 -0
- package/dist/src/commands/export.d.ts +4 -0
- package/dist/src/commands/export.d.ts.map +1 -0
- package/dist/src/commands/export.js +20 -0
- package/dist/src/commands/export.js.map +1 -0
- package/dist/src/commands/init.d.ts +5 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +175 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/keys.d.ts +37 -0
- package/dist/src/commands/keys.d.ts.map +1 -0
- package/dist/src/commands/keys.js +142 -0
- package/dist/src/commands/keys.js.map +1 -0
- package/dist/src/commands/login.d.ts +6 -0
- package/dist/src/commands/login.d.ts.map +1 -0
- package/dist/src/commands/login.js +14 -0
- package/dist/src/commands/login.js.map +1 -0
- package/dist/src/commands/scaffold.d.ts +5 -0
- package/dist/src/commands/scaffold.d.ts.map +1 -0
- package/dist/src/commands/scaffold.js +202 -0
- package/dist/src/commands/scaffold.js.map +1 -0
- package/dist/src/commands/workspaces.d.ts +10 -0
- package/dist/src/commands/workspaces.d.ts.map +1 -0
- package/dist/src/commands/workspaces.js +80 -0
- package/dist/src/commands/workspaces.js.map +1 -0
- package/dist/src/config.d.ts +38 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +159 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/oauth.d.ts +15 -0
- package/dist/src/oauth.d.ts.map +1 -0
- package/dist/src/oauth.js +272 -0
- package/dist/src/oauth.js.map +1 -0
- package/dist/src/output.d.ts +10 -0
- package/dist/src/output.d.ts.map +1 -0
- package/dist/src/output.js +69 -0
- package/dist/src/output.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codata.d.ts","sourceRoot":"","sources":["../../bin/codata.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codata.js","sourceRoot":"","sources":["../../bin/codata.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/src/cli.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Codata CLI — Commander Registration
|
|
3
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { readFileSync } from 'fs';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
// Read version from package.json
|
|
9
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname = path.dirname(__filename);
|
|
11
|
+
// Resolve package.json from dist/src/cli.js → ../../package.json
|
|
12
|
+
const pkg = JSON.parse(readFileSync(path.resolve(__dirname, '..', '..', 'package.json'), 'utf8'));
|
|
13
|
+
const program = new Command();
|
|
14
|
+
program
|
|
15
|
+
.name('codata')
|
|
16
|
+
.description('Codata CLI — manage workspaces, API keys, and more')
|
|
17
|
+
.version(pkg.version);
|
|
18
|
+
// ── Auth Commands ─────────────────────────────────────────────────────────
|
|
19
|
+
program
|
|
20
|
+
.command('login')
|
|
21
|
+
.description('Authenticate with Codata (opens browser)')
|
|
22
|
+
.option('-t, --token <token>', 'Authenticate with a developer token')
|
|
23
|
+
.action(async (opts) => {
|
|
24
|
+
const { loginCommand } = await import('./commands/login.js');
|
|
25
|
+
await loginCommand(opts);
|
|
26
|
+
});
|
|
27
|
+
program
|
|
28
|
+
.command('logout')
|
|
29
|
+
.description('Clear stored authentication')
|
|
30
|
+
.action(async () => {
|
|
31
|
+
const { logoutCommand } = await import('./commands/login.js');
|
|
32
|
+
await logoutCommand();
|
|
33
|
+
});
|
|
34
|
+
program
|
|
35
|
+
.command('whoami')
|
|
36
|
+
.description('Show current user info')
|
|
37
|
+
.action(async () => {
|
|
38
|
+
const { whoamiCommand } = await import('./commands/login.js');
|
|
39
|
+
await whoamiCommand();
|
|
40
|
+
});
|
|
41
|
+
// ── Init ──────────────────────────────────────────────────────────────────
|
|
42
|
+
program
|
|
43
|
+
.command('init')
|
|
44
|
+
.description('Auto-configure MCP for your IDE')
|
|
45
|
+
.option('-g, --global', 'Write to global user settings')
|
|
46
|
+
.option('-e, --editor <name>', 'Target a specific editor')
|
|
47
|
+
.action(async (opts) => {
|
|
48
|
+
const { initCommand } = await import('./commands/init.js');
|
|
49
|
+
await initCommand(opts);
|
|
50
|
+
});
|
|
51
|
+
// ── Workspace Commands ────────────────────────────────────────────────────
|
|
52
|
+
program
|
|
53
|
+
.command('workspaces')
|
|
54
|
+
.alias('ws')
|
|
55
|
+
.description('List all workspaces')
|
|
56
|
+
.option('--json', 'Output as JSON')
|
|
57
|
+
.action(async (opts) => {
|
|
58
|
+
const { listCommand } = await import('./commands/workspaces.js');
|
|
59
|
+
await listCommand(opts);
|
|
60
|
+
});
|
|
61
|
+
program
|
|
62
|
+
.command('show <name>')
|
|
63
|
+
.description('Show workspace details')
|
|
64
|
+
.option('--json', 'Output as JSON')
|
|
65
|
+
.action(async (name, opts) => {
|
|
66
|
+
const { showCommand } = await import('./commands/workspaces.js');
|
|
67
|
+
await showCommand(name, opts);
|
|
68
|
+
});
|
|
69
|
+
program
|
|
70
|
+
.command('create <name>')
|
|
71
|
+
.description('Create a new workspace')
|
|
72
|
+
.option('-d, --description <desc>', 'Workspace description')
|
|
73
|
+
.action(async (name, opts) => {
|
|
74
|
+
const { createCommand } = await import('./commands/workspaces.js');
|
|
75
|
+
await createCommand(name, opts);
|
|
76
|
+
});
|
|
77
|
+
// ── API Keys ──────────────────────────────────────────────────────────────
|
|
78
|
+
const keys = program
|
|
79
|
+
.command('keys')
|
|
80
|
+
.description('Manage workspace API keys');
|
|
81
|
+
keys
|
|
82
|
+
.command('create <workspace>')
|
|
83
|
+
.description('Create a new API key')
|
|
84
|
+
.option('-n, --name <name>', 'Key name')
|
|
85
|
+
.option('-p, --permissions <perm>', 'Permissions: full or read-only', 'full')
|
|
86
|
+
.option('--no-store', 'Do not store key locally')
|
|
87
|
+
.option('--json', 'Output as JSON')
|
|
88
|
+
.action(async (workspace, opts) => {
|
|
89
|
+
const { keysCreateCommand } = await import('./commands/keys.js');
|
|
90
|
+
await keysCreateCommand(workspace, opts);
|
|
91
|
+
});
|
|
92
|
+
keys
|
|
93
|
+
.command('list <workspace>')
|
|
94
|
+
.alias('ls')
|
|
95
|
+
.description('List API keys for a workspace')
|
|
96
|
+
.option('--json', 'Output as JSON')
|
|
97
|
+
.action(async (workspace, opts) => {
|
|
98
|
+
const { keysListCommand } = await import('./commands/keys.js');
|
|
99
|
+
await keysListCommand(workspace, opts);
|
|
100
|
+
});
|
|
101
|
+
keys
|
|
102
|
+
.command('revoke <workspace> <keyId>')
|
|
103
|
+
.description('Revoke an API key')
|
|
104
|
+
.action(async (workspace, keyId) => {
|
|
105
|
+
const { keysRevokeCommand } = await import('./commands/keys.js');
|
|
106
|
+
await keysRevokeCommand(workspace, keyId);
|
|
107
|
+
});
|
|
108
|
+
keys
|
|
109
|
+
.command('rotate <workspace> <keyId>')
|
|
110
|
+
.description('Rotate an API key (revoke old, issue new)')
|
|
111
|
+
.option('--no-store', 'Do not store new key locally')
|
|
112
|
+
.option('--json', 'Output as JSON')
|
|
113
|
+
.action(async (workspace, keyId, opts) => {
|
|
114
|
+
const { keysRotateCommand } = await import('./commands/keys.js');
|
|
115
|
+
await keysRotateCommand(workspace, keyId, opts);
|
|
116
|
+
});
|
|
117
|
+
keys
|
|
118
|
+
.command('current <workspace>')
|
|
119
|
+
.description('Show the currently stored key for a workspace')
|
|
120
|
+
.action(async (workspace) => {
|
|
121
|
+
const { keysCurrentCommand } = await import('./commands/keys.js');
|
|
122
|
+
await keysCurrentCommand(workspace);
|
|
123
|
+
});
|
|
124
|
+
keys
|
|
125
|
+
.command('stored')
|
|
126
|
+
.description('List all locally stored API keys')
|
|
127
|
+
.option('--json', 'Output as JSON')
|
|
128
|
+
.action(async (opts) => {
|
|
129
|
+
const { keysStoredCommand } = await import('./commands/keys.js');
|
|
130
|
+
await keysStoredCommand(opts);
|
|
131
|
+
});
|
|
132
|
+
// ── API Proxy ─────────────────────────────────────────────────────────────
|
|
133
|
+
program
|
|
134
|
+
.command('api <workspace> <method> <path>')
|
|
135
|
+
.description('Make API requests to a workspace\'s generated endpoints')
|
|
136
|
+
.option('-d, --data <json>', 'JSON request body')
|
|
137
|
+
.option('-q, --query <pairs...>', 'Query parameters (key=value)')
|
|
138
|
+
.option('-k, --key <apiKey>', 'Use a specific API key')
|
|
139
|
+
.action(async (workspace, method, apiPath, opts) => {
|
|
140
|
+
const { apiCommand } = await import('./commands/api.js');
|
|
141
|
+
await apiCommand(workspace, method, apiPath, opts);
|
|
142
|
+
});
|
|
143
|
+
// ── Code Generation ───────────────────────────────────────────────────────
|
|
144
|
+
program
|
|
145
|
+
.command('scaffold <workspace>')
|
|
146
|
+
.description('Generate a typed API client from the workspace spec')
|
|
147
|
+
.option('-l, --lang <language>', 'Language: typescript, javascript, python')
|
|
148
|
+
.option('-o, --output <file>', 'Write to file')
|
|
149
|
+
.action(async (workspace, opts) => {
|
|
150
|
+
const { scaffoldCommand } = await import('./commands/scaffold.js');
|
|
151
|
+
await scaffoldCommand(workspace, opts);
|
|
152
|
+
});
|
|
153
|
+
program
|
|
154
|
+
.command('export <workspace>')
|
|
155
|
+
.description('Export the workspace OpenAPI spec')
|
|
156
|
+
.option('-o, --output <file>', 'Write to file')
|
|
157
|
+
.action(async (workspace, opts) => {
|
|
158
|
+
const { exportCommand } = await import('./commands/export.js');
|
|
159
|
+
await exportCommand(workspace, opts);
|
|
160
|
+
});
|
|
161
|
+
// ── Config ────────────────────────────────────────────────────────────────
|
|
162
|
+
const config = program
|
|
163
|
+
.command('config')
|
|
164
|
+
.description('View or update CLI configuration');
|
|
165
|
+
config
|
|
166
|
+
.command('set <key> <value>')
|
|
167
|
+
.description('Set a config value')
|
|
168
|
+
.action(async (key, value) => {
|
|
169
|
+
const { setConfig } = await import('./config.js');
|
|
170
|
+
setConfig({ [key]: value });
|
|
171
|
+
const { success } = await import('./output.js');
|
|
172
|
+
success(`${key} = ${value}`);
|
|
173
|
+
});
|
|
174
|
+
config
|
|
175
|
+
.command('get [key]')
|
|
176
|
+
.description('Get a config value (or all)')
|
|
177
|
+
.action(async (key) => {
|
|
178
|
+
const { getConfig } = await import('./config.js');
|
|
179
|
+
const cfg = getConfig();
|
|
180
|
+
if (key) {
|
|
181
|
+
console.log(cfg[key] ?? '(not set)');
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
console.log(JSON.stringify(cfg, null, 2));
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
// ── Parse & Run ───────────────────────────────────────────────────────────
|
|
188
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
189
|
+
console.error(err.message);
|
|
190
|
+
process.exit(1);
|
|
191
|
+
});
|
|
192
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/commands/api.ts"],"names":[],"mappings":"AAiBA,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Codata CLI — API Command (Fixed: routes through Gater)
|
|
3
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
//
|
|
5
|
+
// Usage:
|
|
6
|
+
// codata api <workspace> <METHOD> <path> [--data '{}'] [--query key=val] [--key wsk_...]
|
|
7
|
+
//
|
|
8
|
+
// Examples:
|
|
9
|
+
// codata api my-api GET /users
|
|
10
|
+
// codata api my-api POST /users --data '{"name":"Alice"}'
|
|
11
|
+
// codata api my-api GET /users --query limit=10
|
|
12
|
+
// codata api my-api GET /users --key wsk_live_abc123
|
|
13
|
+
//
|
|
14
|
+
import { createCliClient } from '../config.js';
|
|
15
|
+
import { methodColor, printJson, error as printError, info } from '../output.js';
|
|
16
|
+
export async function apiCommand(nameOrId, method, apiPath, options) {
|
|
17
|
+
method = method.toUpperCase();
|
|
18
|
+
// Parse --data (JSON body)
|
|
19
|
+
let body = undefined;
|
|
20
|
+
if (options.data) {
|
|
21
|
+
try {
|
|
22
|
+
body = JSON.parse(options.data);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
printError('Invalid JSON in --data. Use: --data \'{"key":"value"}\'');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Parse --query (key=value pairs)
|
|
30
|
+
const queryParams = {};
|
|
31
|
+
if (options.query) {
|
|
32
|
+
for (const q of options.query) {
|
|
33
|
+
const [key, ...rest] = q.split('=');
|
|
34
|
+
queryParams[key] = rest.join('=');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
info(`${methodColor(method)} ${apiPath}`);
|
|
38
|
+
try {
|
|
39
|
+
// Create client with optional explicit key
|
|
40
|
+
const client = createCliClient({
|
|
41
|
+
apiKey: options.key,
|
|
42
|
+
workspaceId: undefined, // Will be resolved after findWorkspace
|
|
43
|
+
});
|
|
44
|
+
// Find workspace
|
|
45
|
+
const ws = await client.findWorkspace(nameOrId);
|
|
46
|
+
// If no explicit key, try to get a client with stored key for this workspace
|
|
47
|
+
const wsClient = options.key
|
|
48
|
+
? client.workspace(ws.id)
|
|
49
|
+
: createCliClient({ workspaceId: ws.id }).workspace(ws.id);
|
|
50
|
+
// Route through the Gater
|
|
51
|
+
let result;
|
|
52
|
+
switch (method) {
|
|
53
|
+
case 'GET':
|
|
54
|
+
result = await wsClient.get(apiPath, Object.keys(queryParams).length ? queryParams : undefined);
|
|
55
|
+
break;
|
|
56
|
+
case 'POST':
|
|
57
|
+
result = await wsClient.post(apiPath, body);
|
|
58
|
+
break;
|
|
59
|
+
case 'PUT':
|
|
60
|
+
result = await wsClient.put(apiPath, body);
|
|
61
|
+
break;
|
|
62
|
+
case 'PATCH':
|
|
63
|
+
result = await wsClient.patch(apiPath, body);
|
|
64
|
+
break;
|
|
65
|
+
case 'DELETE':
|
|
66
|
+
result = await wsClient.delete(apiPath);
|
|
67
|
+
break;
|
|
68
|
+
default:
|
|
69
|
+
printError(`Unsupported method: ${method}`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
printJson(result);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
printError(err.message);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function branchesListCommand(nameOrId: string, options: {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}): Promise<void>;
|
|
4
|
+
export declare function branchesCreateCommand(nameOrId: string, branchName: string, options: {
|
|
5
|
+
source?: string;
|
|
6
|
+
json?: boolean;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
export declare function branchesShowCommand(nameOrId: string, branchName: string, options: {
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function branchesDeleteCommand(nameOrId: string, branchName: string, options: {
|
|
12
|
+
force?: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=branches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branches.d.ts","sourceRoot":"","sources":["../../../src/commands/branches.ts"],"names":[],"mappings":"AAiBA,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Codata CLI — Branch Commands (list, create, show, delete)
|
|
3
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
import { createCliClient } from '../config.js';
|
|
5
|
+
import { printTable, statusColor, heading, success, info, printJson, } from '../output.js';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
export async function branchesListCommand(nameOrId, options) {
|
|
8
|
+
const client = createCliClient();
|
|
9
|
+
const ws = await client.findWorkspace(nameOrId);
|
|
10
|
+
const branches = await client.listBranches(ws.id);
|
|
11
|
+
if (branches.length === 0) {
|
|
12
|
+
info(`No branches for workspace "${ws.name}".`);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (options.json) {
|
|
16
|
+
printJson(branches);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
heading(`Branches for "${ws.name}"`);
|
|
20
|
+
printTable(['Name', 'Status', 'Version', 'Default', 'Ahead', 'Behind', 'Created'], branches.map(b => [
|
|
21
|
+
b.isDefault ? chalk.bold(b.name) : b.name,
|
|
22
|
+
statusColor(b.status),
|
|
23
|
+
String(b.currentVersion),
|
|
24
|
+
b.isDefault ? chalk.green('✓') : '',
|
|
25
|
+
b.aheadOfMain ? chalk.green(`+${b.aheadOfMain}`) : '0',
|
|
26
|
+
b.behindMain ? chalk.red(`-${b.behindMain}`) : '0',
|
|
27
|
+
new Date(b.createdAt).toLocaleDateString(),
|
|
28
|
+
]));
|
|
29
|
+
}
|
|
30
|
+
export async function branchesCreateCommand(nameOrId, branchName, options) {
|
|
31
|
+
const client = createCliClient();
|
|
32
|
+
const ws = await client.findWorkspace(nameOrId);
|
|
33
|
+
const branch = await client.createBranch(ws.id, branchName, options.source);
|
|
34
|
+
if (options.json) {
|
|
35
|
+
printJson(branch);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
success(`Branch "${branch.branchName}" created in workspace "${ws.name}"`);
|
|
39
|
+
console.log(` Status: ${statusColor(branch.status)}`);
|
|
40
|
+
console.log(` Version: ${branch.currentVersion}`);
|
|
41
|
+
if (branch.parentBranch) {
|
|
42
|
+
console.log(` Source: ${branch.parentBranch}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export async function branchesShowCommand(nameOrId, branchName, options) {
|
|
46
|
+
const client = createCliClient();
|
|
47
|
+
const ws = await client.findWorkspace(nameOrId);
|
|
48
|
+
const branch = await client.getBranch(ws.id, branchName);
|
|
49
|
+
if (options.json) {
|
|
50
|
+
printJson(branch);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
heading(branch.branchName);
|
|
54
|
+
console.log(` Workspace: ${ws.name}`);
|
|
55
|
+
console.log(` Status: ${statusColor(branch.status)}`);
|
|
56
|
+
console.log(` Version: ${branch.currentVersion}`);
|
|
57
|
+
console.log(` Default: ${branch.isDefault ? chalk.green('yes') : 'no'}`);
|
|
58
|
+
console.log(` Pending changes: ${branch.hasPendingChanges ? chalk.yellow('yes') : 'no'}`);
|
|
59
|
+
if (branch.parentBranch) {
|
|
60
|
+
console.log(` Parent branch: ${branch.parentBranch}`);
|
|
61
|
+
}
|
|
62
|
+
if (branch.forkPoint !== null) {
|
|
63
|
+
console.log(` Fork point: v${branch.forkPoint}`);
|
|
64
|
+
}
|
|
65
|
+
console.log(` Created: ${new Date(branch.createdAt).toLocaleString()}`);
|
|
66
|
+
}
|
|
67
|
+
export async function branchesDeleteCommand(nameOrId, branchName, options) {
|
|
68
|
+
const client = createCliClient();
|
|
69
|
+
const ws = await client.findWorkspace(nameOrId);
|
|
70
|
+
// Confirm unless --force
|
|
71
|
+
if (!options.force) {
|
|
72
|
+
const readline = await import('readline');
|
|
73
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
74
|
+
const answer = await new Promise(resolve => {
|
|
75
|
+
rl.question(chalk.yellow(` Delete branch "${branchName}" from "${ws.name}"? [y/N] `), resolve);
|
|
76
|
+
});
|
|
77
|
+
rl.close();
|
|
78
|
+
if (answer.toLowerCase() !== 'y') {
|
|
79
|
+
info('Cancelled.');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
await client.deleteBranch(ws.id, branchName);
|
|
84
|
+
success(`Branch "${branchName}" deleted from workspace "${ws.name}".`);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=branches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../src/commands/branches.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Codata CLI — Export Command (OpenAPI Spec)
|
|
3
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
import { createCliClient } from '../config.js';
|
|
6
|
+
import { success } from '../output.js';
|
|
7
|
+
export async function exportCommand(nameOrId, options) {
|
|
8
|
+
const client = createCliClient();
|
|
9
|
+
const ws = await client.findWorkspace(nameOrId);
|
|
10
|
+
const spec = await client.getOpenApiSpec(ws.id);
|
|
11
|
+
const json = JSON.stringify(spec, null, 2);
|
|
12
|
+
if (options.output) {
|
|
13
|
+
fs.writeFileSync(options.output, json + '\n');
|
|
14
|
+
success(`OpenAPI spec written to ${options.output}`);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
console.log(json);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAQ,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAA4B;IAE5B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,2BAA2B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAgBA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C/F"}
|