@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.
Files changed (53) hide show
  1. package/dist/bin/codata.d.ts +3 -0
  2. package/dist/bin/codata.d.ts.map +1 -0
  3. package/dist/bin/codata.js +3 -0
  4. package/dist/bin/codata.js.map +1 -0
  5. package/dist/src/cli.d.ts +2 -0
  6. package/dist/src/cli.d.ts.map +1 -0
  7. package/dist/src/cli.js +192 -0
  8. package/dist/src/cli.js.map +1 -0
  9. package/dist/src/commands/api.d.ts +6 -0
  10. package/dist/src/commands/api.d.ts.map +1 -0
  11. package/dist/src/commands/api.js +79 -0
  12. package/dist/src/commands/api.js.map +1 -0
  13. package/dist/src/commands/branches.d.ts +14 -0
  14. package/dist/src/commands/branches.d.ts.map +1 -0
  15. package/dist/src/commands/branches.js +86 -0
  16. package/dist/src/commands/branches.js.map +1 -0
  17. package/dist/src/commands/export.d.ts +4 -0
  18. package/dist/src/commands/export.d.ts.map +1 -0
  19. package/dist/src/commands/export.js +20 -0
  20. package/dist/src/commands/export.js.map +1 -0
  21. package/dist/src/commands/init.d.ts +5 -0
  22. package/dist/src/commands/init.d.ts.map +1 -0
  23. package/dist/src/commands/init.js +175 -0
  24. package/dist/src/commands/init.js.map +1 -0
  25. package/dist/src/commands/keys.d.ts +37 -0
  26. package/dist/src/commands/keys.d.ts.map +1 -0
  27. package/dist/src/commands/keys.js +142 -0
  28. package/dist/src/commands/keys.js.map +1 -0
  29. package/dist/src/commands/login.d.ts +6 -0
  30. package/dist/src/commands/login.d.ts.map +1 -0
  31. package/dist/src/commands/login.js +14 -0
  32. package/dist/src/commands/login.js.map +1 -0
  33. package/dist/src/commands/scaffold.d.ts +5 -0
  34. package/dist/src/commands/scaffold.d.ts.map +1 -0
  35. package/dist/src/commands/scaffold.js +202 -0
  36. package/dist/src/commands/scaffold.js.map +1 -0
  37. package/dist/src/commands/workspaces.d.ts +10 -0
  38. package/dist/src/commands/workspaces.d.ts.map +1 -0
  39. package/dist/src/commands/workspaces.js +80 -0
  40. package/dist/src/commands/workspaces.js.map +1 -0
  41. package/dist/src/config.d.ts +38 -0
  42. package/dist/src/config.d.ts.map +1 -0
  43. package/dist/src/config.js +159 -0
  44. package/dist/src/config.js.map +1 -0
  45. package/dist/src/oauth.d.ts +15 -0
  46. package/dist/src/oauth.d.ts.map +1 -0
  47. package/dist/src/oauth.js +272 -0
  48. package/dist/src/oauth.js.map +1 -0
  49. package/dist/src/output.d.ts +10 -0
  50. package/dist/src/output.d.ts.map +1 -0
  51. package/dist/src/output.js +69 -0
  52. package/dist/src/output.js.map +1 -0
  53. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare function listCommand(options: {
2
+ json?: boolean;
3
+ }): Promise<void>;
4
+ export declare function showCommand(nameOrId: string, options: {
5
+ json?: boolean;
6
+ }): Promise<void>;
7
+ export declare function createCommand(name: string, options: {
8
+ description?: string;
9
+ }): Promise<void>;
10
+ //# sourceMappingURL=workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../src/commands/workspaces.ts"],"names":[],"mappings":"AAgBA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB5E;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE9F;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -0,0 +1,80 @@
1
+ // ────────────────────────────────────────────────────────────────────────────
2
+ // Codata CLI — Workspace Commands (list, show, create)
3
+ // ────────────────────────────────────────────────────────────────────────────
4
+ import { createCliClient } from '../config.js';
5
+ import { printTable, statusColor, methodColor, heading, success, info, printJson, } from '../output.js';
6
+ export async function listCommand(options) {
7
+ const client = createCliClient();
8
+ const workspaces = await client.listWorkspaces();
9
+ if (workspaces.length === 0) {
10
+ info('No workspaces found. Create one: codata create <name>');
11
+ return;
12
+ }
13
+ if (options.json) {
14
+ printJson(workspaces);
15
+ return;
16
+ }
17
+ printTable(['Name', 'Status', 'ID', 'Created'], workspaces.map(ws => [
18
+ ws.name,
19
+ statusColor(ws.status),
20
+ ws.id,
21
+ new Date(ws.createdAt).toLocaleDateString(),
22
+ ]));
23
+ }
24
+ export async function showCommand(nameOrId, options) {
25
+ const client = createCliClient();
26
+ const ws = await client.findWorkspace(nameOrId);
27
+ if (options.json) {
28
+ printJson(ws);
29
+ return;
30
+ }
31
+ heading(ws.name);
32
+ console.log(` Status: ${statusColor(ws.status)}`);
33
+ if (ws.environment) {
34
+ console.log(` Environment: ${ws.environment}`);
35
+ }
36
+ if (ws.description) {
37
+ console.log(` Description: ${ws.description}`);
38
+ }
39
+ const spec = (ws.spec?.assets?.length ? ws.spec : ws.desiredSpec) ?? ws.spec;
40
+ if (!spec) {
41
+ info('\n No spec defined yet — workspace is still in draft.');
42
+ return;
43
+ }
44
+ if (spec.purpose) {
45
+ heading('Purpose');
46
+ console.log(` ${spec.purpose}`);
47
+ }
48
+ if (spec.assets?.length) {
49
+ heading(`Assets (${spec.assets.length})`);
50
+ printTable(['Name', 'Category', 'Fields', 'Description'], spec.assets.map(a => [
51
+ a.name,
52
+ a.category,
53
+ String(a.fields?.length ?? 0),
54
+ (a.description || '').slice(0, 50),
55
+ ]));
56
+ }
57
+ if (spec.endpoints?.length) {
58
+ heading(`Endpoints (${spec.endpoints.length})`);
59
+ printTable(['Method', 'Path', 'Description'], spec.endpoints.map(ep => [
60
+ methodColor(ep.method),
61
+ ep.path,
62
+ (ep.summary || ep.description || '').slice(0, 50),
63
+ ]));
64
+ }
65
+ if (spec.relationships?.length) {
66
+ heading(`Relationships (${spec.relationships.length})`);
67
+ printTable(['Name', 'Type', 'From', 'To'], spec.relationships.map(r => [
68
+ r.name,
69
+ r.type,
70
+ `${r.from.asset}.${r.from.field}`,
71
+ `${r.to.asset}.${r.to.field}`,
72
+ ]));
73
+ }
74
+ }
75
+ export async function createCommand(name, options) {
76
+ const client = createCliClient();
77
+ const ws = await client.createWorkspace(name, options.description);
78
+ success(`Workspace "${ws.name}" created (id: ${ws.id})`);
79
+ }
80
+ //# sourceMappingURL=workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/commands/workspaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { AuthTokens, CodataConfig } from 'codata-io';
2
+ export declare const CODATA_DIR: string;
3
+ export declare function getConfig(): CodataConfig;
4
+ export declare function setConfig(updates: Partial<CodataConfig>): void;
5
+ export declare function getServerUrl(): string;
6
+ export declare function getMcpUrl(): string;
7
+ export declare function getGateUrl(): string | undefined;
8
+ export declare function getAuthTokens(): AuthTokens | null;
9
+ export declare function saveAuthTokens(tokens: AuthTokens): void;
10
+ export declare function clearAuth(): void;
11
+ export declare function isAuthenticated(): boolean;
12
+ /**
13
+ * Get an access token for API calls.
14
+ * Priority: stored workspace API key → SDK token → CLI auth token.
15
+ */
16
+ export declare function getAccessToken(): string | null;
17
+ interface StoredKeys {
18
+ [workspaceId: string]: {
19
+ key: string;
20
+ name: string;
21
+ storedAt: string;
22
+ };
23
+ }
24
+ export declare function getStoredKeys(): StoredKeys;
25
+ export declare function storeKey(workspaceId: string, key: string, name: string): void;
26
+ export declare function getStoredKey(workspaceId: string): string | null;
27
+ export declare function removeStoredKey(workspaceId: string): void;
28
+ import { CodataClient } from 'codata-io';
29
+ /**
30
+ * Create a CodataClient using CLI-stored credentials.
31
+ * Resolves auth: explicit key → stored key → CLI OAuth token.
32
+ */
33
+ export declare function createCliClient(options?: {
34
+ apiKey?: string;
35
+ workspaceId?: string;
36
+ }): CodataClient;
37
+ export {};
38
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE1D,eAAO,MAAM,UAAU,QAAqC,CAAC;AAa7D,wBAAgB,SAAS,IAAI,YAAY,CAQxC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAK9D;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAG/C;AAID,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAUjD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGvD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAG9C;AAID,UAAU,UAAU;IAClB,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,aAAa,IAAI,UAAU,CAO1C;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAK7E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAKzD;AAID,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,CAqCf"}
@@ -0,0 +1,159 @@
1
+ // ────────────────────────────────────────────────────────────────────────────
2
+ // Codata CLI — File-based Configuration & Credential Storage
3
+ // ────────────────────────────────────────────────────────────────────────────
4
+ //
5
+ // Stores config and auth tokens in ~/.codata/
6
+ // Also manages locally stored workspace API keys.
7
+ //
8
+ import fs from 'fs';
9
+ import path from 'path';
10
+ import os from 'os';
11
+ export const CODATA_DIR = path.join(os.homedir(), '.codata');
12
+ const CONFIG_FILE = path.join(CODATA_DIR, 'config.json');
13
+ const AUTH_FILE = path.join(CODATA_DIR, 'auth.json');
14
+ const KEYS_FILE = path.join(CODATA_DIR, 'keys.json');
15
+ const DEFAULT_CONFIG = {
16
+ serverUrl: 'https://codata.io',
17
+ defaultLanguage: 'typescript',
18
+ outputFormat: 'table',
19
+ };
20
+ // ── Config ────────────────────────────────────────────────────────────────
21
+ export function getConfig() {
22
+ ensureDir();
23
+ try {
24
+ const raw = fs.readFileSync(CONFIG_FILE, 'utf8');
25
+ return { ...DEFAULT_CONFIG, ...JSON.parse(raw) };
26
+ }
27
+ catch {
28
+ return { ...DEFAULT_CONFIG };
29
+ }
30
+ }
31
+ export function setConfig(updates) {
32
+ ensureDir();
33
+ const current = getConfig();
34
+ const merged = { ...current, ...updates };
35
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify(merged, null, 2) + '\n');
36
+ }
37
+ export function getServerUrl() {
38
+ return getConfig().serverUrl;
39
+ }
40
+ export function getMcpUrl() {
41
+ return `${getServerUrl()}/api/mcp`;
42
+ }
43
+ export function getGateUrl() {
44
+ const config = getConfig();
45
+ return config.gateUrl;
46
+ }
47
+ // ── Auth Tokens ───────────────────────────────────────────────────────────
48
+ export function getAuthTokens() {
49
+ ensureDir();
50
+ try {
51
+ const raw = fs.readFileSync(AUTH_FILE, 'utf8');
52
+ const tokens = JSON.parse(raw);
53
+ if (!tokens.accessToken)
54
+ return null;
55
+ return tokens;
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ export function saveAuthTokens(tokens) {
62
+ ensureDir();
63
+ fs.writeFileSync(AUTH_FILE, JSON.stringify(tokens, null, 2) + '\n');
64
+ }
65
+ export function clearAuth() {
66
+ try {
67
+ fs.unlinkSync(AUTH_FILE);
68
+ }
69
+ catch { /* ignore */ }
70
+ }
71
+ export function isAuthenticated() {
72
+ const tokens = getAuthTokens();
73
+ if (!tokens)
74
+ return false;
75
+ // Check expiry if available
76
+ if (tokens.expiresAt && Date.now() > tokens.expiresAt)
77
+ return false;
78
+ return true;
79
+ }
80
+ /**
81
+ * Get an access token for API calls.
82
+ * Priority: stored workspace API key → SDK token → CLI auth token.
83
+ */
84
+ export function getAccessToken() {
85
+ const tokens = getAuthTokens();
86
+ return tokens?.accessToken ?? null;
87
+ }
88
+ export function getStoredKeys() {
89
+ ensureDir();
90
+ try {
91
+ return JSON.parse(fs.readFileSync(KEYS_FILE, 'utf8'));
92
+ }
93
+ catch {
94
+ return {};
95
+ }
96
+ }
97
+ export function storeKey(workspaceId, key, name) {
98
+ const keys = getStoredKeys();
99
+ keys[workspaceId] = { key, name, storedAt: new Date().toISOString() };
100
+ ensureDir();
101
+ fs.writeFileSync(KEYS_FILE, JSON.stringify(keys, null, 2) + '\n');
102
+ }
103
+ export function getStoredKey(workspaceId) {
104
+ const keys = getStoredKeys();
105
+ return keys[workspaceId]?.key ?? null;
106
+ }
107
+ export function removeStoredKey(workspaceId) {
108
+ const keys = getStoredKeys();
109
+ delete keys[workspaceId];
110
+ ensureDir();
111
+ fs.writeFileSync(KEYS_FILE, JSON.stringify(keys, null, 2) + '\n');
112
+ }
113
+ // ── Client Factory ────────────────────────────────────────────────────────
114
+ import { CodataClient } from 'codata-io';
115
+ /**
116
+ * Create a CodataClient using CLI-stored credentials.
117
+ * Resolves auth: explicit key → stored key → CLI OAuth token.
118
+ */
119
+ export function createCliClient(options) {
120
+ const serverUrl = getServerUrl();
121
+ const gateUrl = getGateUrl();
122
+ // 1. Explicit API key
123
+ if (options?.apiKey) {
124
+ return new CodataClient({
125
+ baseUrl: serverUrl,
126
+ gateUrl,
127
+ apiKey: options.apiKey,
128
+ });
129
+ }
130
+ // 2. Stored workspace key
131
+ if (options?.workspaceId) {
132
+ const storedKey = getStoredKey(options.workspaceId);
133
+ if (storedKey) {
134
+ return new CodataClient({
135
+ baseUrl: serverUrl,
136
+ gateUrl,
137
+ apiKey: storedKey,
138
+ });
139
+ }
140
+ }
141
+ // 3. CLI OAuth token
142
+ const token = getAccessToken();
143
+ if (token) {
144
+ return new CodataClient({
145
+ baseUrl: serverUrl,
146
+ gateUrl,
147
+ token,
148
+ });
149
+ }
150
+ // 4. No auth — return unauthenticated client
151
+ return new CodataClient({ baseUrl: serverUrl, gateUrl });
152
+ }
153
+ // ── Helpers ───────────────────────────────────────────────────────────────
154
+ function ensureDir() {
155
+ if (!fs.existsSync(CODATA_DIR)) {
156
+ fs.mkdirSync(CODATA_DIR, { recursive: true });
157
+ }
158
+ }
159
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Authenticate the user via OAuth PKCE browser flow or developer token.
3
+ */
4
+ export declare function login(options?: {
5
+ token?: string;
6
+ }): Promise<void>;
7
+ /**
8
+ * Clear stored authentication tokens.
9
+ */
10
+ export declare function logout(): Promise<void>;
11
+ /**
12
+ * Display information about the currently authenticated user.
13
+ */
14
+ export declare function whoami(): Promise<void>;
15
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE3E;AAED;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5C;AAED;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B5C"}
@@ -0,0 +1,272 @@
1
+ // ────────────────────────────────────────────────────────────────────────────
2
+ // Codata CLI — OAuth 2.1 PKCE Browser Authentication
3
+ // ────────────────────────────────────────────────────────────────────────────
4
+ //
5
+ // Full OAuth 2.1 flow with PKCE (S256), local callback server,
6
+ // browser-based consent, and developer token support.
7
+ //
8
+ import http from 'http';
9
+ import crypto from 'crypto';
10
+ import { URL, URLSearchParams } from 'url';
11
+ import open from 'open';
12
+ import { getServerUrl, saveAuthTokens, clearAuth, getAuthTokens, } from './config.js';
13
+ import { success, error as printError, info } from './output.js';
14
+ const CALLBACK_PORTS = [39180, 39181, 39182, 39183, 39184];
15
+ const CLIENT_CACHE_KEY = 'oauth-client';
16
+ // ── Public API ────────────────────────────────────────────────────────────
17
+ /**
18
+ * Authenticate the user via OAuth PKCE browser flow or developer token.
19
+ */
20
+ export async function login(options = {}) {
21
+ // Developer token shortcut
22
+ if (options.token) {
23
+ saveAuthTokens({
24
+ accessToken: options.token,
25
+ expiresAt: Date.now() + 365 * 24 * 60 * 60 * 1000, // 1 year
26
+ });
27
+ success('Authenticated with developer token.');
28
+ return;
29
+ }
30
+ const serverUrl = getServerUrl();
31
+ try {
32
+ info('Starting browser authentication...');
33
+ // 1. Discover OIDC endpoints
34
+ const discovery = await discoverOIDC(serverUrl);
35
+ // 2. Get or register OAuth client
36
+ const client = await getOrRegisterClient(serverUrl, discovery);
37
+ // 3. Generate PKCE pair
38
+ const codeVerifier = generateCodeVerifier();
39
+ const codeChallenge = await generateCodeChallenge(codeVerifier);
40
+ // 4. Start local callback server
41
+ const { port, codePromise, server } = await startCallbackServer();
42
+ const redirectUri = `http://localhost:${port}/callback`;
43
+ // 5. Build authorization URL
44
+ const authUrl = new URL(discovery.authorization_endpoint);
45
+ authUrl.searchParams.set('client_id', client.clientId);
46
+ authUrl.searchParams.set('redirect_uri', redirectUri);
47
+ authUrl.searchParams.set('response_type', 'code');
48
+ authUrl.searchParams.set('scope', 'openid profile email');
49
+ authUrl.searchParams.set('code_challenge', codeChallenge);
50
+ authUrl.searchParams.set('code_challenge_method', 'S256');
51
+ authUrl.searchParams.set('state', crypto.randomBytes(16).toString('hex'));
52
+ // 6. Open browser
53
+ info(`Opening browser: ${authUrl.toString().slice(0, 80)}...`);
54
+ await open(authUrl.toString());
55
+ // 7. Wait for callback
56
+ info('Waiting for authentication...');
57
+ const authCode = await codePromise;
58
+ server.close();
59
+ // 8. Exchange code for tokens
60
+ const tokens = await exchangeCode(discovery.token_endpoint, client, authCode, redirectUri, codeVerifier);
61
+ saveAuthTokens(tokens);
62
+ success('Successfully authenticated!');
63
+ }
64
+ catch (err) {
65
+ printError(`Authentication failed: ${err.message}`);
66
+ process.exit(1);
67
+ }
68
+ }
69
+ /**
70
+ * Clear stored authentication tokens.
71
+ */
72
+ export async function logout() {
73
+ clearAuth();
74
+ success('Logged out.');
75
+ }
76
+ /**
77
+ * Display information about the currently authenticated user.
78
+ */
79
+ export async function whoami() {
80
+ const tokens = getAuthTokens();
81
+ if (!tokens) {
82
+ printError('Not authenticated. Run: codata login');
83
+ return;
84
+ }
85
+ try {
86
+ const { CodataClient } = await import('codata-io');
87
+ const client = new CodataClient({
88
+ baseUrl: getServerUrl(),
89
+ token: tokens.accessToken,
90
+ });
91
+ const me = await client.getMe();
92
+ console.log('');
93
+ console.log(` Email: ${me.email}`);
94
+ if (me.name)
95
+ console.log(` Name: ${me.name}`);
96
+ console.log(` ID: ${me.id}`);
97
+ if (me.earlyAccessApproved !== undefined) {
98
+ console.log(` Early Access: ${me.earlyAccessApproved ? '✅ Approved' : '⏳ Pending'}`);
99
+ }
100
+ console.log('');
101
+ }
102
+ catch (err) {
103
+ printError(`Failed to fetch profile: ${err.message}`);
104
+ }
105
+ }
106
+ // ── OIDC Discovery ────────────────────────────────────────────────────────
107
+ async function discoverOIDC(serverUrl) {
108
+ // Try standard well-known endpoint first
109
+ const wellKnown = `${serverUrl}/.well-known/openid-configuration`;
110
+ try {
111
+ const res = await fetch(wellKnown);
112
+ if (res.ok)
113
+ return await res.json();
114
+ }
115
+ catch { /* fall through */ }
116
+ // Fallback to Codata-specific discovery
117
+ const res = await fetch(`${serverUrl}/api/auth/oauth/discovery`);
118
+ if (!res.ok) {
119
+ throw new Error('Could not discover OIDC configuration');
120
+ }
121
+ return await res.json();
122
+ }
123
+ // ── Client Registration ───────────────────────────────────────────────────
124
+ async function getOrRegisterClient(_serverUrl, discovery) {
125
+ // Try cached client
126
+ const cached = readCachedClient();
127
+ if (cached)
128
+ return cached;
129
+ if (!discovery.registration_endpoint) {
130
+ throw new Error('Server does not support dynamic client registration');
131
+ }
132
+ const res = await fetch(discovery.registration_endpoint, {
133
+ method: 'POST',
134
+ headers: { 'Content-Type': 'application/json' },
135
+ body: JSON.stringify({
136
+ application_type: 'native',
137
+ client_name: 'Codata CLI',
138
+ redirect_uris: CALLBACK_PORTS.map(p => `http://localhost:${p}/callback`),
139
+ grant_types: ['authorization_code'],
140
+ response_types: ['code'],
141
+ token_endpoint_auth_method: 'none',
142
+ }),
143
+ });
144
+ if (!res.ok) {
145
+ throw new Error(`Client registration failed: ${res.status}`);
146
+ }
147
+ const data = await res.json();
148
+ const client = {
149
+ clientId: data.client_id,
150
+ clientSecret: data.client_secret,
151
+ };
152
+ cacheClient(client);
153
+ return client;
154
+ }
155
+ // ── PKCE ──────────────────────────────────────────────────────────────────
156
+ function generateCodeVerifier() {
157
+ return crypto.randomBytes(32).toString('base64url');
158
+ }
159
+ async function generateCodeChallenge(verifier) {
160
+ const hash = crypto.createHash('sha256').update(verifier).digest();
161
+ return Buffer.from(hash).toString('base64url');
162
+ }
163
+ // ── Local Callback Server ─────────────────────────────────────────────────
164
+ async function startCallbackServer() {
165
+ for (const port of CALLBACK_PORTS) {
166
+ try {
167
+ return await tryPort(port);
168
+ }
169
+ catch {
170
+ continue;
171
+ }
172
+ }
173
+ throw new Error('Could not start callback server on any port');
174
+ }
175
+ function tryPort(port) {
176
+ return new Promise((resolve, reject) => {
177
+ let resolveCode;
178
+ let rejectCode;
179
+ const codePromise = new Promise((res, rej) => {
180
+ resolveCode = res;
181
+ rejectCode = rej;
182
+ });
183
+ const server = http.createServer((req, res) => {
184
+ if (!req.url?.startsWith('/callback')) {
185
+ res.writeHead(404);
186
+ res.end('Not found');
187
+ return;
188
+ }
189
+ const url = new URL(req.url, `http://localhost:${port}`);
190
+ const code = url.searchParams.get('code');
191
+ const error = url.searchParams.get('error');
192
+ if (error) {
193
+ res.writeHead(200, { 'Content-Type': 'text/html' });
194
+ res.end(errorPage(error));
195
+ rejectCode(new Error(`OAuth error: ${error}`));
196
+ return;
197
+ }
198
+ if (code) {
199
+ res.writeHead(200, { 'Content-Type': 'text/html' });
200
+ res.end(successPage());
201
+ resolveCode(code);
202
+ }
203
+ });
204
+ server.on('error', reject);
205
+ server.listen(port, '127.0.0.1', () => {
206
+ resolve({ port, codePromise, server });
207
+ });
208
+ });
209
+ }
210
+ // ── Token Exchange ────────────────────────────────────────────────────────
211
+ async function exchangeCode(tokenEndpoint, client, code, redirectUri, codeVerifier) {
212
+ const body = new URLSearchParams({
213
+ grant_type: 'authorization_code',
214
+ code,
215
+ redirect_uri: redirectUri,
216
+ client_id: client.clientId,
217
+ code_verifier: codeVerifier,
218
+ });
219
+ if (client.clientSecret) {
220
+ body.set('client_secret', client.clientSecret);
221
+ }
222
+ const res = await fetch(tokenEndpoint, {
223
+ method: 'POST',
224
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
225
+ body: body.toString(),
226
+ });
227
+ if (!res.ok) {
228
+ const err = await res.text();
229
+ throw new Error(`Token exchange failed: ${res.status} — ${err}`);
230
+ }
231
+ const data = await res.json();
232
+ return {
233
+ accessToken: data.access_token,
234
+ refreshToken: data.refresh_token,
235
+ idToken: data.id_token,
236
+ expiresAt: data.expires_in
237
+ ? Date.now() + data.expires_in * 1000
238
+ : undefined,
239
+ };
240
+ }
241
+ // ── Client Cache ──────────────────────────────────────────────────────────
242
+ import fs from 'fs';
243
+ import path from 'path';
244
+ import { CODATA_DIR } from './config.js';
245
+ const CLIENT_FILE = path.join(CODATA_DIR, 'oauth-client.json');
246
+ function readCachedClient() {
247
+ try {
248
+ return JSON.parse(fs.readFileSync(CLIENT_FILE, 'utf8'));
249
+ }
250
+ catch {
251
+ return null;
252
+ }
253
+ }
254
+ function cacheClient(client) {
255
+ fs.writeFileSync(CLIENT_FILE, JSON.stringify(client, null, 2) + '\n');
256
+ }
257
+ // ── HTML Pages ────────────────────────────────────────────────────────────
258
+ function successPage() {
259
+ return `<!DOCTYPE html><html><head><title>Codata CLI</title>
260
+ <style>body{font-family:system-ui;display:flex;align-items:center;justify-content:center;height:100vh;margin:0;background:#f0fdf4}
261
+ .card{text-align:center;padding:2rem;border-radius:12px;background:white;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
262
+ h1{color:#16a34a;font-size:1.5rem} p{color:#555}</style></head>
263
+ <body><div class="card"><h1>✅ Authenticated!</h1><p>You can close this tab and return to the terminal.</p></div></body></html>`;
264
+ }
265
+ function errorPage(error) {
266
+ return `<!DOCTYPE html><html><head><title>Codata CLI</title>
267
+ <style>body{font-family:system-ui;display:flex;align-items:center;justify-content:center;height:100vh;margin:0;background:#fef2f2}
268
+ .card{text-align:center;padding:2rem;border-radius:12px;background:white;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
269
+ h1{color:#dc2626;font-size:1.5rem} p{color:#555}</style></head>
270
+ <body><div class="card"><h1>❌ Authentication Failed</h1><p>${error}</p></div></body></html>`;
271
+ }
272
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"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"}