@uluops/cli 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +825 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +93 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/analytics.d.ts +6 -0
  8. package/dist/commands/analytics.d.ts.map +1 -0
  9. package/dist/commands/analytics.js +445 -0
  10. package/dist/commands/analytics.js.map +1 -0
  11. package/dist/commands/auth.d.ts +6 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +496 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/commands/completion.d.ts +7 -0
  16. package/dist/commands/completion.d.ts.map +1 -0
  17. package/dist/commands/completion.js +188 -0
  18. package/dist/commands/completion.js.map +1 -0
  19. package/dist/commands/config.d.ts +6 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js +279 -0
  22. package/dist/commands/config.js.map +1 -0
  23. package/dist/commands/definitions.d.ts +6 -0
  24. package/dist/commands/definitions.d.ts.map +1 -0
  25. package/dist/commands/definitions.js +229 -0
  26. package/dist/commands/definitions.js.map +1 -0
  27. package/dist/commands/deps.d.ts +6 -0
  28. package/dist/commands/deps.d.ts.map +1 -0
  29. package/dist/commands/deps.js +87 -0
  30. package/dist/commands/deps.js.map +1 -0
  31. package/dist/commands/exec.d.ts +6 -0
  32. package/dist/commands/exec.d.ts.map +1 -0
  33. package/dist/commands/exec.js +334 -0
  34. package/dist/commands/exec.js.map +1 -0
  35. package/dist/commands/executions.d.ts +6 -0
  36. package/dist/commands/executions.d.ts.map +1 -0
  37. package/dist/commands/executions.js +63 -0
  38. package/dist/commands/executions.js.map +1 -0
  39. package/dist/commands/forks.d.ts +6 -0
  40. package/dist/commands/forks.d.ts.map +1 -0
  41. package/dist/commands/forks.js +145 -0
  42. package/dist/commands/forks.js.map +1 -0
  43. package/dist/commands/issues.d.ts +6 -0
  44. package/dist/commands/issues.d.ts.map +1 -0
  45. package/dist/commands/issues.js +458 -0
  46. package/dist/commands/issues.js.map +1 -0
  47. package/dist/commands/models.d.ts +6 -0
  48. package/dist/commands/models.d.ts.map +1 -0
  49. package/dist/commands/models.js +156 -0
  50. package/dist/commands/models.js.map +1 -0
  51. package/dist/commands/projects.d.ts +6 -0
  52. package/dist/commands/projects.d.ts.map +1 -0
  53. package/dist/commands/projects.js +262 -0
  54. package/dist/commands/projects.js.map +1 -0
  55. package/dist/commands/render.d.ts +6 -0
  56. package/dist/commands/render.d.ts.map +1 -0
  57. package/dist/commands/render.js +59 -0
  58. package/dist/commands/render.js.map +1 -0
  59. package/dist/commands/runs.d.ts +6 -0
  60. package/dist/commands/runs.d.ts.map +1 -0
  61. package/dist/commands/runs.js +442 -0
  62. package/dist/commands/runs.js.map +1 -0
  63. package/dist/commands/taxonomy.d.ts +6 -0
  64. package/dist/commands/taxonomy.d.ts.map +1 -0
  65. package/dist/commands/taxonomy.js +45 -0
  66. package/dist/commands/taxonomy.js.map +1 -0
  67. package/dist/commands/translation.d.ts +6 -0
  68. package/dist/commands/translation.d.ts.map +1 -0
  69. package/dist/commands/translation.js +85 -0
  70. package/dist/commands/translation.js.map +1 -0
  71. package/dist/commands/versions.d.ts +6 -0
  72. package/dist/commands/versions.d.ts.map +1 -0
  73. package/dist/commands/versions.js +61 -0
  74. package/dist/commands/versions.js.map +1 -0
  75. package/dist/context.d.ts +85 -0
  76. package/dist/context.d.ts.map +1 -0
  77. package/dist/context.js +386 -0
  78. package/dist/context.js.map +1 -0
  79. package/dist/formatters/core.d.ts +31 -0
  80. package/dist/formatters/core.d.ts.map +1 -0
  81. package/dist/formatters/core.js +176 -0
  82. package/dist/formatters/core.js.map +1 -0
  83. package/dist/formatters/ops.d.ts +43 -0
  84. package/dist/formatters/ops.d.ts.map +1 -0
  85. package/dist/formatters/ops.js +112 -0
  86. package/dist/formatters/ops.js.map +1 -0
  87. package/dist/formatters/registry.d.ts +41 -0
  88. package/dist/formatters/registry.d.ts.map +1 -0
  89. package/dist/formatters/registry.js +167 -0
  90. package/dist/formatters/registry.js.map +1 -0
  91. package/dist/formatters/table.d.ts +18 -0
  92. package/dist/formatters/table.d.ts.map +1 -0
  93. package/dist/formatters/table.js +76 -0
  94. package/dist/formatters/table.js.map +1 -0
  95. package/dist/utils.d.ts +99 -0
  96. package/dist/utils.d.ts.map +1 -0
  97. package/dist/utils.js +201 -0
  98. package/dist/utils.js.map +1 -0
  99. package/package.json +57 -0
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Walk a Commander program tree and extract all command paths
3
+ */
4
+ function getCommandTree(cmd, prefix = '') {
5
+ const results = [];
6
+ for (const sub of cmd.commands) {
7
+ const fullPath = prefix ? `${prefix} ${sub.name()}` : sub.name();
8
+ const childNames = sub.commands.map((c) => c.name());
9
+ results.push({
10
+ path: fullPath,
11
+ description: sub.description() || '',
12
+ subcommands: childNames,
13
+ });
14
+ // Recurse into subcommands
15
+ results.push(...getCommandTree(sub, fullPath));
16
+ }
17
+ return results;
18
+ }
19
+ /**
20
+ * Generate bash completion script
21
+ */
22
+ function generateBashCompletion(program) {
23
+ const tree = getCommandTree(program);
24
+ const topLevel = program.commands.map((c) => c.name()).join(' ');
25
+ // Build a case statement for each command path
26
+ const cases = [];
27
+ for (const entry of tree) {
28
+ if (entry.subcommands.length > 0) {
29
+ cases.push(` ${entry.path}) COMPREPLY=($(compgen -W "${entry.subcommands.join(' ')}" -- "$cur")) ;;`);
30
+ }
31
+ }
32
+ return `# Bash completion for ulu CLI
33
+ # Add to ~/.bashrc: eval "$(ulu completion bash)"
34
+ _ulu_completions() {
35
+ local cur prev words cword
36
+ _init_completion || return
37
+
38
+ # Build the command path from words
39
+ local cmd_path=""
40
+ local i
41
+ for (( i=1; i < cword; i++ )); do
42
+ case "\${words[i]}" in
43
+ -*) continue ;;
44
+ *) cmd_path="\${cmd_path:+$cmd_path }\${words[i]}" ;;
45
+ esac
46
+ done
47
+
48
+ case "$cmd_path" in
49
+ ${cases.join('\n')}
50
+ "") COMPREPLY=($(compgen -W "${topLevel}" -- "$cur")) ;;
51
+ *) COMPREPLY=() ;;
52
+ esac
53
+
54
+ return 0
55
+ }
56
+
57
+ complete -o default -F _ulu_completions ulu
58
+ `;
59
+ }
60
+ /**
61
+ * Generate zsh completion script
62
+ */
63
+ function generateZshCompletion(program) {
64
+ const tree = getCommandTree(program);
65
+ const topLevel = program.commands.map((c) => `'${c.name()}:${(c.description() || '').replace(/'/g, "''")}'`).join('\n ');
66
+ // Build subcmd functions
67
+ const functions = [];
68
+ for (const entry of tree) {
69
+ if (entry.subcommands.length > 0) {
70
+ const fnName = `_ulu_${entry.path.replace(/ /g, '_')}`;
71
+ const subTree = tree.filter((t) => {
72
+ const parent = entry.path;
73
+ return t.path.startsWith(parent + ' ') && !t.path.slice(parent.length + 1).includes(' ');
74
+ });
75
+ const subArgs = subTree.map((s) => {
76
+ const name = s.path.split(' ').pop() ?? s.path;
77
+ return `'${name}:${s.description.replace(/'/g, "''")}'`;
78
+ }).join('\n ');
79
+ functions.push(`${fnName}() {
80
+ local -a subcmds
81
+ subcmds=(
82
+ ${subArgs}
83
+ )
84
+ _describe 'subcommand' subcmds
85
+ }`);
86
+ }
87
+ }
88
+ return `#compdef ulu
89
+ # Zsh completion for ulu CLI
90
+ # Add to ~/.zshrc: eval "$(ulu completion zsh)"
91
+
92
+ _ulu() {
93
+ local -a subcmds
94
+ subcmds=(
95
+ ${topLevel}
96
+ )
97
+
98
+ _arguments -C \\
99
+ '--api-key[API key]:key:' \\
100
+ '--profile[Config profile]:profile:' \\
101
+ '--base-url[API base URL]:url:' \\
102
+ '--json[Output in JSON format]' \\
103
+ '--debug[Enable debug output]' \\
104
+ '-q[Suppress spinners]' \\
105
+ '1:command:->cmd' \\
106
+ '*::arg:->args'
107
+
108
+ case "$state" in
109
+ cmd) _describe 'command' subcmds ;;
110
+ args)
111
+ case "\${words[1]}" in
112
+ ${program.commands.map((c) => {
113
+ const subs = c.commands.map((s) => s.name()).join(' ');
114
+ return subs ? ` ${c.name()}) compadd ${subs} ;;` : '';
115
+ }).filter(Boolean).join('\n')}
116
+ *) _default ;;
117
+ esac
118
+ ;;
119
+ esac
120
+ }
121
+
122
+ _ulu "$@"
123
+ `;
124
+ }
125
+ /**
126
+ * Generate fish completion script
127
+ */
128
+ function generateFishCompletion(program) {
129
+ const lines = [
130
+ '# Fish completion for ulu CLI',
131
+ '# Save to: ~/.config/fish/completions/ulu.fish',
132
+ '',
133
+ '# Disable file completions by default',
134
+ 'complete -c ulu -f',
135
+ '',
136
+ ];
137
+ // Top-level commands
138
+ for (const cmd of program.commands) {
139
+ const desc = (cmd.description() || '').replace(/'/g, "\\'");
140
+ lines.push(`complete -c ulu -n '__fish_use_subcommand' -a '${cmd.name()}' -d '${desc}'`);
141
+ }
142
+ lines.push('');
143
+ // Subcommands
144
+ for (const cmd of program.commands) {
145
+ for (const sub of cmd.commands) {
146
+ const desc = (sub.description() || '').replace(/'/g, "\\'");
147
+ lines.push(`complete -c ulu -n '__fish_seen_subcommand_from ${cmd.name()}' -a '${sub.name()}' -d '${desc}'`);
148
+ }
149
+ }
150
+ // Global options
151
+ lines.push('');
152
+ lines.push("# Global options");
153
+ lines.push("complete -c ulu -l api-key -d 'API key'");
154
+ lines.push("complete -c ulu -l profile -d 'Config profile'");
155
+ lines.push("complete -c ulu -l base-url -d 'API base URL'");
156
+ lines.push("complete -c ulu -l json -d 'Output in JSON format'");
157
+ lines.push("complete -c ulu -l debug -d 'Enable debug output'");
158
+ lines.push("complete -c ulu -s q -l quiet -d 'Suppress spinners'");
159
+ return lines.join('\n') + '\n';
160
+ }
161
+ /**
162
+ * Register completion command.
163
+ * Requires the fully-built program so it can introspect the command tree.
164
+ */
165
+ export function registerCompletionCommands(program) {
166
+ const completion = program
167
+ .command('completion')
168
+ .description('Generate shell completion scripts');
169
+ completion
170
+ .command('bash')
171
+ .description('Output bash completion script')
172
+ .action(() => {
173
+ process.stdout.write(generateBashCompletion(program));
174
+ });
175
+ completion
176
+ .command('zsh')
177
+ .description('Output zsh completion script')
178
+ .action(() => {
179
+ process.stdout.write(generateZshCompletion(program));
180
+ });
181
+ completion
182
+ .command('fish')
183
+ .description('Output fish completion script')
184
+ .action(() => {
185
+ process.stdout.write(generateFishCompletion(program));
186
+ });
187
+ }
188
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register config commands
4
+ */
5
+ export declare function registerConfigCommands(program: Command): void;
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyFpC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsN7D"}
@@ -0,0 +1,279 @@
1
+ import { readFileSync, mkdirSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ import { writeFileAtomic, exitWithError } from '../utils.js';
5
+ /**
6
+ * Config file paths
7
+ */
8
+ const CONFIG_DIR = join(homedir(), '.uluops');
9
+ const PROFILES_PATH = join(CONFIG_DIR, 'profiles.json');
10
+ const CREDENTIALS_PATH = join(CONFIG_DIR, 'credentials.json');
11
+ /**
12
+ * Valid config keys and their types
13
+ */
14
+ const CONFIG_KEYS = {
15
+ opsBaseUrl: 'string',
16
+ registryBaseUrl: 'string',
17
+ defaultProject: 'string',
18
+ json: 'boolean',
19
+ quiet: 'boolean',
20
+ debug: 'boolean',
21
+ };
22
+ /**
23
+ * Load the profiles file (or return defaults)
24
+ */
25
+ function loadProfiles() {
26
+ if (!existsSync(PROFILES_PATH)) {
27
+ return { _active: 'default' };
28
+ }
29
+ try {
30
+ return JSON.parse(readFileSync(PROFILES_PATH, 'utf-8'));
31
+ }
32
+ catch {
33
+ return { _active: 'default' };
34
+ }
35
+ }
36
+ /**
37
+ * Save profiles file
38
+ */
39
+ function saveProfiles(profiles) {
40
+ try {
41
+ if (!existsSync(CONFIG_DIR)) {
42
+ mkdirSync(CONFIG_DIR, { recursive: true });
43
+ }
44
+ writeFileAtomic(PROFILES_PATH, JSON.stringify(profiles, null, 2) + '\n');
45
+ }
46
+ catch (error) {
47
+ const code = error.code;
48
+ if (code === 'EACCES') {
49
+ exitWithError(`Permission denied writing to ${PROFILES_PATH}. Check file permissions.`);
50
+ }
51
+ if (code === 'ENOSPC') {
52
+ exitWithError(`No disk space available to write ${PROFILES_PATH}. Free up disk space and try again.`);
53
+ }
54
+ if (code === 'EROFS') {
55
+ exitWithError(`Cannot write to ${PROFILES_PATH}: filesystem is read-only.`);
56
+ }
57
+ exitWithError(`Failed to save config to ${PROFILES_PATH}: ${error.message}`);
58
+ }
59
+ }
60
+ /**
61
+ * Get the active profile name
62
+ */
63
+ function getActiveProfile(profiles, override) {
64
+ return override ?? profiles._active ?? 'default';
65
+ }
66
+ /**
67
+ * Coerce a string value to the correct type for a config key
68
+ */
69
+ function coerceValue(key, value) {
70
+ if (CONFIG_KEYS[key] === 'boolean') {
71
+ return value === 'true' || value === '1' || value === 'yes';
72
+ }
73
+ return value;
74
+ }
75
+ /**
76
+ * Register config commands
77
+ */
78
+ export function registerConfigCommands(program) {
79
+ const config = program
80
+ .command('config')
81
+ .description('Manage CLI configuration and profiles');
82
+ // ulu config list
83
+ config
84
+ .command('list')
85
+ .description('Show resolved configuration for the active profile')
86
+ .action(async (_, cmd) => {
87
+ const globalOpts = cmd.optsWithGlobals();
88
+ const profiles = loadProfiles();
89
+ const profileName = getActiveProfile(profiles, globalOpts.profile);
90
+ const profileConfig = profiles[profileName] ?? {};
91
+ if (globalOpts.json) {
92
+ console.log(JSON.stringify({
93
+ activeProfile: profileName,
94
+ config: profileConfig,
95
+ envOverrides: getEnvOverrides(),
96
+ }, null, 2));
97
+ return;
98
+ }
99
+ console.log(`Profile: ${profileName}\n`);
100
+ // Show config values with source indicators
101
+ const envOverrides = getEnvOverrides();
102
+ for (const key of Object.keys(CONFIG_KEYS)) {
103
+ const envVal = envOverrides[key];
104
+ const profileVal = profileConfig[key];
105
+ if (envVal !== undefined) {
106
+ console.log(` ${key}: ${envVal} (env)`);
107
+ }
108
+ else if (profileVal !== undefined) {
109
+ console.log(` ${key}: ${profileVal}`);
110
+ }
111
+ else {
112
+ console.log(` ${key}: (not set)`);
113
+ }
114
+ }
115
+ // Show auth status
116
+ const hasCredentials = existsSync(CREDENTIALS_PATH);
117
+ console.log(`\n Auth: ${hasCredentials ? 'credentials stored' : 'not configured'}`);
118
+ });
119
+ // ulu config get <key>
120
+ config
121
+ .command('get <key>')
122
+ .description('Get a config value')
123
+ .action(async (key, _, cmd) => {
124
+ const globalOpts = cmd.optsWithGlobals();
125
+ if (!(key in CONFIG_KEYS)) {
126
+ console.error(`Unknown config key: ${key}`);
127
+ console.error(`Valid keys: ${Object.keys(CONFIG_KEYS).join(', ')}`);
128
+ process.exit(1);
129
+ }
130
+ const profiles = loadProfiles();
131
+ const profileName = getActiveProfile(profiles, globalOpts.profile);
132
+ const profileConfig = profiles[profileName] ?? {};
133
+ // Check env override first
134
+ const envOverrides = getEnvOverrides();
135
+ const envVal = envOverrides[key];
136
+ const profileVal = profileConfig[key];
137
+ const value = envVal ?? profileVal;
138
+ if (globalOpts.json) {
139
+ console.log(JSON.stringify({ key, value: value ?? null, source: envVal !== undefined ? 'env' : profileVal !== undefined ? 'profile' : 'unset' }));
140
+ }
141
+ else if (value !== undefined) {
142
+ console.log(String(value));
143
+ }
144
+ });
145
+ // ulu config set <key> <value>
146
+ config
147
+ .command('set <key> <value>')
148
+ .description('Set a config value in the active profile')
149
+ .action(async (key, value, _, cmd) => {
150
+ const globalOpts = cmd.optsWithGlobals();
151
+ if (!(key in CONFIG_KEYS)) {
152
+ console.error(`Unknown config key: ${key}`);
153
+ console.error(`Valid keys: ${Object.keys(CONFIG_KEYS).join(', ')}`);
154
+ process.exit(1);
155
+ }
156
+ const profiles = loadProfiles();
157
+ const profileName = getActiveProfile(profiles, globalOpts.profile);
158
+ if (!profiles[profileName] || typeof profiles[profileName] === 'string') {
159
+ profiles[profileName] = {};
160
+ }
161
+ const coerced = coerceValue(key, value);
162
+ profiles[profileName][key] = coerced;
163
+ saveProfiles(profiles);
164
+ if (globalOpts.json) {
165
+ console.log(JSON.stringify({ key, value: coerced, profile: profileName }));
166
+ }
167
+ else {
168
+ console.log(`Set ${key} = ${coerced} (profile: ${profileName})`);
169
+ }
170
+ });
171
+ // ulu config unset <key>
172
+ config
173
+ .command('unset <key>')
174
+ .description('Remove a config value from the active profile')
175
+ .action(async (key, _, cmd) => {
176
+ const globalOpts = cmd.optsWithGlobals();
177
+ if (!(key in CONFIG_KEYS)) {
178
+ console.error(`Unknown config key: ${key}`);
179
+ console.error(`Valid keys: ${Object.keys(CONFIG_KEYS).join(', ')}`);
180
+ process.exit(1);
181
+ }
182
+ const profiles = loadProfiles();
183
+ const profileName = getActiveProfile(profiles, globalOpts.profile);
184
+ const profileConfig = profiles[profileName];
185
+ if (profileConfig && key in profileConfig) {
186
+ delete profileConfig[key];
187
+ saveProfiles(profiles);
188
+ }
189
+ if (globalOpts.json) {
190
+ console.log(JSON.stringify({ key, profile: profileName, removed: true }));
191
+ }
192
+ else {
193
+ console.log(`Unset ${key} (profile: ${profileName})`);
194
+ }
195
+ });
196
+ // ulu config profiles
197
+ config
198
+ .command('profiles')
199
+ .description('List available profiles')
200
+ .action(async (_, cmd) => {
201
+ const globalOpts = cmd.optsWithGlobals();
202
+ const profiles = loadProfiles();
203
+ const activeProfile = profiles._active;
204
+ const profileNames = Object.keys(profiles).filter((k) => k !== '_active');
205
+ if (globalOpts.json) {
206
+ console.log(JSON.stringify({ active: activeProfile, profiles: profileNames }));
207
+ return;
208
+ }
209
+ if (profileNames.length === 0) {
210
+ console.log('No profiles configured. Use "ulu config set <key> <value>" to create one.');
211
+ return;
212
+ }
213
+ console.log('Profiles:\n');
214
+ for (const name of profileNames) {
215
+ const marker = name === activeProfile ? ' *' : '';
216
+ const config = profiles[name];
217
+ const keys = Object.keys(config).filter((k) => config[k] !== undefined);
218
+ const summary = keys.length > 0 ? ` (${keys.join(', ')})` : '';
219
+ console.log(` ${name}${marker}${summary}`);
220
+ }
221
+ console.log(`\n * = active profile`);
222
+ });
223
+ // ulu config use <profile>
224
+ config
225
+ .command('use <profile>')
226
+ .description('Switch the active profile')
227
+ .action(async (profile, _, cmd) => {
228
+ const globalOpts = cmd.optsWithGlobals();
229
+ const profiles = loadProfiles();
230
+ profiles._active = profile;
231
+ // Ensure the profile entry exists
232
+ if (!profiles[profile]) {
233
+ profiles[profile] = {};
234
+ }
235
+ saveProfiles(profiles);
236
+ if (globalOpts.json) {
237
+ console.log(JSON.stringify({ active: profile }));
238
+ }
239
+ else {
240
+ console.log(`Switched to profile: ${profile}`);
241
+ }
242
+ });
243
+ // ulu config path
244
+ config
245
+ .command('path')
246
+ .description('Show config file locations')
247
+ .action(async (_, cmd) => {
248
+ const globalOpts = cmd.optsWithGlobals();
249
+ const paths = {
250
+ configDir: CONFIG_DIR,
251
+ profiles: PROFILES_PATH,
252
+ credentials: CREDENTIALS_PATH,
253
+ localEnv: join(process.cwd(), '.env'),
254
+ };
255
+ if (globalOpts.json) {
256
+ console.log(JSON.stringify(paths, null, 2));
257
+ return;
258
+ }
259
+ console.log('Config paths:\n');
260
+ console.log(` Config dir: ${paths.configDir} ${existsSync(paths.configDir) ? '' : '(not created)'}`);
261
+ console.log(` Profiles: ${paths.profiles} ${existsSync(paths.profiles) ? '' : '(not created)'}`);
262
+ console.log(` Credentials: ${paths.credentials} ${existsSync(paths.credentials) ? '' : '(not created)'}`);
263
+ console.log(` Local .env: ${paths.localEnv} ${existsSync(paths.localEnv) ? '' : '(not found)'}`);
264
+ });
265
+ }
266
+ /**
267
+ * Get config values that are overridden by environment variables
268
+ */
269
+ function getEnvOverrides() {
270
+ const overrides = {};
271
+ if (process.env.ULUOPS_BASE_URL)
272
+ overrides.opsBaseUrl = process.env.ULUOPS_BASE_URL;
273
+ if (process.env.ULUOPS_REGISTRY_URL)
274
+ overrides.registryBaseUrl = process.env.ULUOPS_REGISTRY_URL;
275
+ if (process.env.ULUOPS_DEBUG)
276
+ overrides.debug = process.env.ULUOPS_DEBUG;
277
+ return overrides;
278
+ }
279
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register definition commands
4
+ */
5
+ export declare function registerDefinitionCommands(program: Command): void;
6
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/commands/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8QjE"}