agnosticui-cli 2.0.0-alpha.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 (50) hide show
  1. package/README.md +1268 -0
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +98 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/add.d.ts +3 -0
  7. package/dist/commands/add.d.ts.map +1 -0
  8. package/dist/commands/add.js +464 -0
  9. package/dist/commands/add.js.map +1 -0
  10. package/dist/commands/init.d.ts +3 -0
  11. package/dist/commands/init.d.ts.map +1 -0
  12. package/dist/commands/init.js +381 -0
  13. package/dist/commands/init.js.map +1 -0
  14. package/dist/commands/list.d.ts +2 -0
  15. package/dist/commands/list.d.ts.map +1 -0
  16. package/dist/commands/list.js +72 -0
  17. package/dist/commands/list.js.map +1 -0
  18. package/dist/commands/remove.d.ts +3 -0
  19. package/dist/commands/remove.d.ts.map +1 -0
  20. package/dist/commands/remove.js +96 -0
  21. package/dist/commands/remove.js.map +1 -0
  22. package/dist/commands/sync.d.ts +6 -0
  23. package/dist/commands/sync.d.ts.map +1 -0
  24. package/dist/commands/sync.js +143 -0
  25. package/dist/commands/sync.js.map +1 -0
  26. package/dist/types/index.d.ts +61 -0
  27. package/dist/types/index.d.ts.map +1 -0
  28. package/dist/types/index.js +5 -0
  29. package/dist/types/index.js.map +1 -0
  30. package/dist/utils/components.d.ts +76 -0
  31. package/dist/utils/components.d.ts.map +1 -0
  32. package/dist/utils/components.js +208 -0
  33. package/dist/utils/components.js.map +1 -0
  34. package/dist/utils/config.d.ts +9 -0
  35. package/dist/utils/config.d.ts.map +1 -0
  36. package/dist/utils/config.js +78 -0
  37. package/dist/utils/config.js.map +1 -0
  38. package/dist/utils/dependencies.d.ts +23 -0
  39. package/dist/utils/dependencies.d.ts.map +1 -0
  40. package/dist/utils/dependencies.js +93 -0
  41. package/dist/utils/dependencies.js.map +1 -0
  42. package/dist/utils/files.d.ts +48 -0
  43. package/dist/utils/files.d.ts.map +1 -0
  44. package/dist/utils/files.js +171 -0
  45. package/dist/utils/files.js.map +1 -0
  46. package/dist/utils/logger.d.ts +11 -0
  47. package/dist/utils/logger.d.ts.map +1 -0
  48. package/dist/utils/logger.js +34 -0
  49. package/dist/utils/logger.js.map +1 -0
  50. package/package.json +60 -0
@@ -0,0 +1,381 @@
1
+ /**
2
+ * ag init command - Initialize AgnosticUI Local in a project
3
+ */
4
+ import * as p from '@clack/prompts';
5
+ import path from 'node:path';
6
+ import { existsSync } from 'node:fs';
7
+ import { readFile, writeFile, copyFile } from 'node:fs/promises';
8
+ import { logger } from '../utils/logger.js';
9
+ import { loadConfig, saveConfig, createDefaultConfig } from '../utils/config.js';
10
+ import { extractTarball, ensureDir, pathExists, updateIgnoreFile, updateEslintConfig } from '../utils/files.js';
11
+ import { getFrameworkDependencies, checkDependenciesInstalled, installDependencies, detectPackageManager, } from '../utils/dependencies.js';
12
+ import pc from 'picocolors';
13
+ const DEFAULT_COMPONENTS_PATH = './src/components/ag';
14
+ const DEFAULT_REFERENCE_PATH = './agnosticui';
15
+ export async function init(options = {}) {
16
+ console.log('');
17
+ p.intro(pc.bold(pc.cyan('AgnosticUI Local - Initialization')));
18
+ // Check if already initialized
19
+ const existingConfig = await loadConfig();
20
+ if (existingConfig) {
21
+ logger.error('AgnosticUI is already initialized in this project.');
22
+ logger.info('Run ' + pc.cyan('npx ag add <component>') + ' to add components.');
23
+ process.exit(1);
24
+ }
25
+ // Prompt for framework if not provided
26
+ let framework = options.framework;
27
+ if (!framework) {
28
+ const frameworkChoice = await p.select({
29
+ message: 'Which framework are you using?',
30
+ options: [
31
+ { value: 'react', label: 'React' },
32
+ { value: 'vue', label: 'Vue' },
33
+ { value: 'lit', label: 'Lit' },
34
+ { value: 'svelte', label: 'Svelte' },
35
+ ],
36
+ });
37
+ if (p.isCancel(frameworkChoice)) {
38
+ p.cancel('Operation cancelled.');
39
+ process.exit(0);
40
+ }
41
+ framework = frameworkChoice;
42
+ }
43
+ // Prompt for components path if not provided
44
+ let componentsPath = options.componentsPath;
45
+ if (!componentsPath) {
46
+ const pathChoice = await p.text({
47
+ message: 'Where should components be generated?',
48
+ placeholder: DEFAULT_COMPONENTS_PATH,
49
+ defaultValue: DEFAULT_COMPONENTS_PATH,
50
+ });
51
+ if (p.isCancel(pathChoice)) {
52
+ p.cancel('Operation cancelled.');
53
+ process.exit(0);
54
+ }
55
+ componentsPath = pathChoice;
56
+ }
57
+ // Determine tarball path
58
+ const version = options.version || 'alpha';
59
+ const tarballPath = options.tarball || await determineTarballPath(version);
60
+ if (!tarballPath) {
61
+ logger.error('Could not find AgnosticUI tarball.');
62
+ logger.info('Please specify a tarball path with --tarball option or ensure agnosticui-core is published to NPM.');
63
+ process.exit(1);
64
+ }
65
+ // Start spinner
66
+ const spinner = p.spinner();
67
+ spinner.start('Initializing AgnosticUI Local...');
68
+ try {
69
+ // Extract tarball to reference path
70
+ spinner.message('Extracting reference library...');
71
+ await ensureDir(DEFAULT_REFERENCE_PATH);
72
+ await extractTarball(tarballPath, DEFAULT_REFERENCE_PATH);
73
+ // Read version from extracted tarball
74
+ const versionJsonPath = path.join(DEFAULT_REFERENCE_PATH, 'version.json');
75
+ let tarballVersion = '2.0.0-alpha'; // fallback
76
+ if (pathExists(versionJsonPath)) {
77
+ try {
78
+ const versionData = JSON.parse(await readFile(versionJsonPath, 'utf-8'));
79
+ tarballVersion = versionData.version || tarballVersion;
80
+ }
81
+ catch {
82
+ // Use fallback version
83
+ }
84
+ }
85
+ // Create config file
86
+ spinner.message('Creating configuration...');
87
+ const config = createDefaultConfig(framework, componentsPath, tarballVersion);
88
+ // Add tarball info to config
89
+ config.tarball = {
90
+ source: path.resolve(tarballPath),
91
+ version: tarballVersion,
92
+ installed: new Date().toISOString(),
93
+ };
94
+ await saveConfig(config);
95
+ // Create components directory
96
+ spinner.message('Creating components directory...');
97
+ await ensureDir(componentsPath);
98
+ // Copy CSS tokens to components/styles directory
99
+ spinner.message('Copying CSS tokens...');
100
+ const stylesPath = path.join(componentsPath, 'styles');
101
+ await ensureDir(stylesPath);
102
+ const tokensSourcePath = path.join(DEFAULT_REFERENCE_PATH, 'src', 'styles');
103
+ const tokenFiles = ['ag-tokens.css', 'ag-tokens-dark.css'];
104
+ for (const tokenFile of tokenFiles) {
105
+ const srcFile = path.join(tokensSourcePath, tokenFile);
106
+ const destFile = path.join(stylesPath, tokenFile);
107
+ if (pathExists(srcFile)) {
108
+ await copyFile(srcFile, destFile);
109
+ }
110
+ }
111
+ // Copy shared infrastructure (shared, utils, styles, types)
112
+ spinner.message('Copying shared infrastructure...');
113
+ const { copyDirectoryFiltered } = await import('../utils/files.js');
114
+ const infraDirs = ['shared', 'utils', 'styles', 'types'];
115
+ for (const dir of infraDirs) {
116
+ const srcDir = path.join(DEFAULT_REFERENCE_PATH, 'src', dir);
117
+ const destDir = path.join(componentsPath, dir);
118
+ if (pathExists(srcDir)) {
119
+ await copyDirectoryFiltered(srcDir, destDir, {
120
+ exclude: ['*.spec.ts', '*.spec.js'] // Skip test files
121
+ });
122
+ }
123
+ }
124
+ spinner.stop(pc.green('✓') + ' Initialized successfully!');
125
+ // Check and install dependencies
126
+ await handleDependencies(framework);
127
+ // Update ignore files for the reference library
128
+ spinner.message('Updating .gitignore...');
129
+ const referenceDirName = path.basename(DEFAULT_REFERENCE_PATH);
130
+ const ignorePattern = `${referenceDirName}/`;
131
+ // Update .gitignore
132
+ await updateIgnoreFile(path.join(process.cwd(), '.gitignore'), ignorePattern);
133
+ // Check for eslint.config.js and update or warn
134
+ const eslintConfigPath = path.join(process.cwd(), 'eslint.config.js');
135
+ if (pathExists(eslintConfigPath)) {
136
+ spinner.message('Updating eslint.config.js...');
137
+ const updated = await updateEslintConfig(eslintConfigPath, `${referenceDirName}/`);
138
+ if (!updated) {
139
+ logger.newline();
140
+ logger.info(pc.yellow('ESLint Configuration:') + ' Please add the following to your ' + pc.cyan('eslint.config.js') + ':');
141
+ console.log(' ' + pc.dim('{'));
142
+ console.log(' ' + pc.cyan(`ignores: ["${referenceDirName}/"]`));
143
+ console.log(' ' + pc.dim('}'));
144
+ }
145
+ }
146
+ // Update TS Configs
147
+ spinner.message('Configuring TypeScript...');
148
+ await updateTsConfigs();
149
+ spinner.stop(pc.green('✓') + ' Initialized successfully!');
150
+ logger.newline();
151
+ // Generate example import statement based on framework
152
+ let exampleImport = '';
153
+ if (framework === 'react') {
154
+ exampleImport = `import { ReactButton } from '${componentsPath}/Button/react/ReactButton'`;
155
+ }
156
+ else if (framework === 'vue') {
157
+ exampleImport = `import { VueButton } from '${componentsPath}/Button/vue/VueButton'`;
158
+ }
159
+ else {
160
+ // Lit, Svelte, etc. use web components from core
161
+ exampleImport = `import '${componentsPath}/Button/core/Button'`;
162
+ }
163
+ logger.box('Next Steps:', [
164
+ pc.dim('1. Import CSS tokens in your app entry point (e.g., main.tsx):'),
165
+ ' ' + logger.command(`import '${componentsPath}/styles/ag-tokens.css'`),
166
+ ' ' + logger.command(`import '${componentsPath}/styles/ag-tokens-dark.css'`),
167
+ '',
168
+ pc.dim('2. Add a component:'),
169
+ ' ' + logger.command('npx ag add button'),
170
+ '',
171
+ pc.dim('3. List available components:'),
172
+ ' ' + logger.command('npx ag list'),
173
+ '',
174
+ pc.dim('4. Use in your app:'),
175
+ ' ' + logger.command(exampleImport),
176
+ ]);
177
+ // Clean up temporary download directory if it exists
178
+ await cleanupTempDownload();
179
+ }
180
+ catch (error) {
181
+ spinner.stop(pc.red('✖') + ' Failed to initialize');
182
+ logger.error(`Initialization failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
183
+ // Clean up on error too
184
+ await cleanupTempDownload();
185
+ process.exit(1);
186
+ }
187
+ }
188
+ /**
189
+ * Update tsconfig files with required options
190
+ */
191
+ async function updateTsConfigs() {
192
+ const tsconfigFiles = ['tsconfig.json', 'tsconfig.app.json', 'tsconfig.node.json'];
193
+ const cwd = process.cwd();
194
+ for (const file of tsconfigFiles) {
195
+ const filePath = path.join(cwd, file);
196
+ if (pathExists(filePath)) {
197
+ try {
198
+ const content = await readFile(filePath, 'utf-8');
199
+ // Try to parse JSON (support comments by stripping them)
200
+ let json;
201
+ try {
202
+ const jsonContent = stripJsonComments(content);
203
+ json = JSON.parse(jsonContent);
204
+ }
205
+ catch {
206
+ // If parsing still fails
207
+ continue;
208
+ }
209
+ let modified = false;
210
+ // Ensure compilerOptions exists
211
+ if (!json.compilerOptions) {
212
+ json.compilerOptions = {};
213
+ modified = true;
214
+ }
215
+ // Set experimentalDecorators
216
+ if (json.compilerOptions.experimentalDecorators !== true) {
217
+ json.compilerOptions.experimentalDecorators = true;
218
+ modified = true;
219
+ }
220
+ // Set useDefineForClassFields
221
+ if (json.compilerOptions.useDefineForClassFields !== false) {
222
+ json.compilerOptions.useDefineForClassFields = false;
223
+ modified = true;
224
+ }
225
+ // Disable erasableSyntaxOnly if present (as it conflicts with decorators)
226
+ if (json.compilerOptions.erasableSyntaxOnly === true) {
227
+ json.compilerOptions.erasableSyntaxOnly = false;
228
+ modified = true;
229
+ }
230
+ // Add exclude pattern if not present
231
+ if (!json.exclude) {
232
+ json.exclude = [];
233
+ }
234
+ const excludePatterns = ['agnosticui', '**/agnosticui/**'];
235
+ for (const pattern of excludePatterns) {
236
+ if (!json.exclude.includes(pattern)) {
237
+ json.exclude.push(pattern);
238
+ modified = true;
239
+ }
240
+ }
241
+ if (modified) {
242
+ await writeFile(filePath, JSON.stringify(json, null, 2));
243
+ logger.info(`Updated ${file} with required configuration.`);
244
+ }
245
+ }
246
+ catch (error) {
247
+ // Ignore errors, user will see the note
248
+ }
249
+ }
250
+ }
251
+ // Always show the note as a reminder or in case we missed something (like comments preventing parse)
252
+ showTypeScriptNote();
253
+ }
254
+ /**
255
+ * Determine the tarball path (local or download from NPM)
256
+ */
257
+ async function determineTarballPath(version = 'alpha') {
258
+ // For local development, look for the tarball in the dist folder
259
+ const localTarballPath = path.resolve(process.cwd(), '../../dist/agnosticui-local-v2.0.0-alpha.tar.gz');
260
+ if (existsSync(localTarballPath)) {
261
+ logger.info('Using local development tarball');
262
+ return localTarballPath;
263
+ }
264
+ // In production, download from NPM registry
265
+ try {
266
+ const { execSync } = await import('child_process');
267
+ const { readdir, rm } = await import('node:fs/promises');
268
+ const tmpDir = path.join(process.cwd(), '.tmp-ag-download');
269
+ await ensureDir(tmpDir);
270
+ logger.info(`Downloading agnosticui-core@${version} from NPM...`);
271
+ // Download package using npm pack
272
+ execSync(`npm pack agnosticui-core@${version}`, {
273
+ cwd: tmpDir,
274
+ stdio: 'pipe'
275
+ });
276
+ // Find the downloaded tarball
277
+ const files = await readdir(tmpDir);
278
+ const tarball = files.find(f => f.startsWith('agnosticui-core-') && f.endsWith('.tgz'));
279
+ if (tarball) {
280
+ return path.join(tmpDir, tarball);
281
+ }
282
+ // Clean up if no tarball found
283
+ await rm(tmpDir, { recursive: true, force: true });
284
+ }
285
+ catch (error) {
286
+ logger.error('Failed to download agnosticui-core from NPM');
287
+ logger.info(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
288
+ }
289
+ return null;
290
+ }
291
+ /**
292
+ * Clean up temporary download directory
293
+ */
294
+ async function cleanupTempDownload() {
295
+ try {
296
+ const { rm } = await import('node:fs/promises');
297
+ const tmpDir = path.join(process.cwd(), '.tmp-ag-download');
298
+ if (pathExists(tmpDir)) {
299
+ await rm(tmpDir, { recursive: true, force: true });
300
+ }
301
+ }
302
+ catch (error) {
303
+ // Ignore cleanup errors - not critical
304
+ }
305
+ }
306
+ /**
307
+ * Handle dependency installation for the selected framework
308
+ */
309
+ async function handleDependencies(framework) {
310
+ const requiredDeps = getFrameworkDependencies(framework);
311
+ // Check if dependencies are already installed
312
+ if (checkDependenciesInstalled(requiredDeps)) {
313
+ logger.newline();
314
+ logger.info('Required dependencies already installed: ' + pc.dim(requiredDeps.join(', ')));
315
+ showTypeScriptNote();
316
+ return;
317
+ }
318
+ // Detect package manager
319
+ const packageManager = detectPackageManager();
320
+ // Prompt user
321
+ logger.newline();
322
+ logger.info(`This framework requires the following dependencies:`);
323
+ requiredDeps.forEach(dep => {
324
+ console.log(' ' + pc.cyan(dep));
325
+ });
326
+ logger.newline();
327
+ const shouldInstall = await p.confirm({
328
+ message: `Install using ${pc.cyan(packageManager)}?`,
329
+ initialValue: true,
330
+ });
331
+ if (p.isCancel(shouldInstall)) {
332
+ logger.newline();
333
+ logger.warn('Skipped dependency installation.');
334
+ logger.info(`You can install manually later with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
335
+ return;
336
+ }
337
+ if (!shouldInstall) {
338
+ logger.newline();
339
+ logger.warn('Skipped dependency installation.');
340
+ logger.info(`You can install manually later with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
341
+ return;
342
+ }
343
+ // Install dependencies
344
+ const spinner = p.spinner();
345
+ spinner.start('Installing dependencies...');
346
+ try {
347
+ installDependencies(requiredDeps);
348
+ spinner.stop(pc.green('✓') + ' Dependencies installed successfully!');
349
+ showTypeScriptNote();
350
+ }
351
+ catch (error) {
352
+ spinner.stop(pc.red('✖') + ' Failed to install dependencies');
353
+ logger.error(`Installation failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
354
+ logger.info(`You can install manually with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
355
+ }
356
+ }
357
+ /**
358
+ * Show TypeScript decorator configuration note
359
+ */
360
+ function showTypeScriptNote() {
361
+ if (pathExists('tsconfig.json')) {
362
+ logger.newline();
363
+ logger.info(pc.yellow('TypeScript Note:') + ' Add to ' + pc.cyan('ALL') + ' tsconfig files:');
364
+ console.log(' ' + pc.dim('"compilerOptions": {'));
365
+ console.log(' ' + pc.cyan('"experimentalDecorators": true'));
366
+ console.log(' ' + pc.dim('},'));
367
+ console.log(' ' + pc.dim('"exclude": ['));
368
+ console.log(' ' + pc.cyan('"agnosticui",'));
369
+ console.log(' ' + pc.cyan('"**/agnosticui/**"'));
370
+ console.log(' ' + pc.dim(']'));
371
+ logger.newline();
372
+ logger.info(pc.dim('(For Vite: add to both tsconfig.json AND tsconfig.app.json)'));
373
+ }
374
+ }
375
+ /**
376
+ * Strip comments from JSON content
377
+ */
378
+ function stripJsonComments(json) {
379
+ return json.replace(/\"|"(?:\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g, (m, g) => g ? "" : m);
380
+ }
381
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function list(): Promise<void>;
2
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAUA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyE1C"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ag list command - List available components
3
+ */
4
+ import path from 'node:path';
5
+ import { logger } from '../utils/logger.js';
6
+ import { loadConfig } from '../utils/config.js';
7
+ import { getAvailableComponents } from '../utils/components.js';
8
+ import { pathExists } from '../utils/files.js';
9
+ import pc from 'picocolors';
10
+ export async function list() {
11
+ // Load config
12
+ const config = await loadConfig();
13
+ if (!config) {
14
+ logger.error('AgnosticUI is not initialized in this project.');
15
+ logger.info('Run ' + pc.cyan('npx ag init') + ' to get started.');
16
+ process.exit(1);
17
+ }
18
+ const referencePath = path.resolve(config.paths.reference);
19
+ // Validate reference library exists
20
+ if (!pathExists(referencePath)) {
21
+ logger.error(`Reference library not found at: ${referencePath}`);
22
+ logger.info('Please run ' + pc.cyan('npx ag init') + ' again.');
23
+ process.exit(1);
24
+ }
25
+ try {
26
+ const availableComponents = await getAvailableComponents(referencePath);
27
+ const addedComponents = Object.keys(config.components);
28
+ logger.newline();
29
+ logger.box('AgnosticUI Local Components', [
30
+ pc.dim(`Framework: ${config.framework}`),
31
+ pc.dim(`Total available: ${availableComponents.length}`),
32
+ pc.dim(`Added to project: ${addedComponents.length}`),
33
+ ]);
34
+ logger.newline();
35
+ console.log(pc.bold('Available Components:'));
36
+ console.log('');
37
+ // Display components in columns
38
+ const columns = 3;
39
+ const rows = Math.ceil(availableComponents.length / columns);
40
+ for (let row = 0; row < rows; row++) {
41
+ const rowComponents = [];
42
+ for (let col = 0; col < columns; col++) {
43
+ const index = row + col * rows;
44
+ if (index < availableComponents.length) {
45
+ const name = availableComponents[index];
46
+ const isAdded = addedComponents.includes(name);
47
+ const displayName = isAdded
48
+ ? pc.green('✓ ' + name)
49
+ : pc.dim(' ' + name);
50
+ rowComponents.push(displayName.padEnd(25));
51
+ }
52
+ }
53
+ console.log(' ' + rowComponents.join(''));
54
+ }
55
+ logger.newline();
56
+ logger.info(pc.green('✓') + ' = Already added to your project');
57
+ logger.newline();
58
+ // Show usage hint
59
+ logger.box('Add Components:', [
60
+ pc.dim('Add a single component:'),
61
+ ' ' + logger.command('npx ag add button'),
62
+ '',
63
+ pc.dim('Add multiple components:'),
64
+ ' ' + logger.command('npx ag add button input checkbox'),
65
+ ]);
66
+ }
67
+ catch (error) {
68
+ logger.error(`Failed to list components: ${error instanceof Error ? error.message : 'Unknown error'}`);
69
+ process.exit(1);
70
+ }
71
+ }
72
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RemoveOptions } from '../types/index.js';
2
+ export declare function remove(componentNames: string[], options?: RemoveOptions): Promise<void>;
3
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD,wBAAsB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGjG"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * ag remove command - Remove components from the project
3
+ */
4
+ import * as p from '@clack/prompts';
5
+ import path from 'node:path';
6
+ import { rm } from 'node:fs/promises';
7
+ import { logger } from '../utils/logger.js';
8
+ import { loadConfig, saveConfig, removeComponentFromConfig, hasComponent, getComponentEntry } from '../utils/config.js';
9
+ import { normalizeComponentName } from '../utils/components.js';
10
+ import { pathExists } from '../utils/files.js';
11
+ import pc from 'picocolors';
12
+ export async function remove(componentNames, options = {}) {
13
+ // Load config
14
+ const config = await loadConfig();
15
+ if (!config) {
16
+ logger.error('AgnosticUI is not initialized in this project.');
17
+ logger.info('Run ' + pc.cyan('npx ag init') + ' to get started.');
18
+ process.exit(1);
19
+ }
20
+ const componentsPath = path.resolve(config.paths.components);
21
+ // Normalize and validate component names
22
+ const normalizedNames = componentNames.map(normalizeComponentName);
23
+ const notAdded = normalizedNames.filter(name => !hasComponent(config, name));
24
+ if (notAdded.length > 0) {
25
+ logger.error(`Component(s) not found: ${notAdded.join(', ')}`);
26
+ logger.info('Run ' + pc.cyan('npx ag list') + ' to see installed components.');
27
+ // Filter out not added components
28
+ const toRemove = normalizedNames.filter(name => hasComponent(config, name));
29
+ if (toRemove.length === 0) {
30
+ process.exit(1);
31
+ }
32
+ componentNames = toRemove;
33
+ }
34
+ else {
35
+ componentNames = normalizedNames;
36
+ }
37
+ // Confirm removal unless --force
38
+ if (!options.force) {
39
+ const shouldContinue = await p.confirm({
40
+ message: `Remove ${componentNames.length} component(s): ${componentNames.join(', ')}?`,
41
+ initialValue: false,
42
+ });
43
+ if (p.isCancel(shouldContinue) || !shouldContinue) {
44
+ logger.info('Operation cancelled.');
45
+ process.exit(0);
46
+ }
47
+ }
48
+ // Process each component
49
+ const spinner = p.spinner();
50
+ const results = [];
51
+ for (const componentName of componentNames) {
52
+ spinner.start(`Removing ${componentName}...`);
53
+ try {
54
+ const entry = getComponentEntry(config, componentName);
55
+ if (!entry) {
56
+ throw new Error(`Component "${componentName}" not found in config`);
57
+ }
58
+ // Remove component directory
59
+ const componentDir = path.join(componentsPath, componentName);
60
+ if (pathExists(componentDir)) {
61
+ await rm(componentDir, { recursive: true, force: true });
62
+ }
63
+ results.push({ name: componentName, success: true });
64
+ spinner.message(`Removed ${componentName}`);
65
+ }
66
+ catch (error) {
67
+ results.push({ name: componentName, success: false });
68
+ spinner.stop(pc.red('✖') + ` Failed to remove ${componentName}`);
69
+ logger.error(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
70
+ }
71
+ }
72
+ spinner.stop();
73
+ // Update config with successfully removed components
74
+ let updatedConfig = config;
75
+ for (const result of results) {
76
+ if (result.success) {
77
+ updatedConfig = removeComponentFromConfig(updatedConfig, result.name);
78
+ }
79
+ }
80
+ await saveConfig(updatedConfig);
81
+ // Display results
82
+ const successCount = results.filter(r => r.success).length;
83
+ const failureCount = results.filter(r => !r.success).length;
84
+ logger.newline();
85
+ if (successCount > 0) {
86
+ logger.success(`Removed ${successCount} component(s) successfully!`);
87
+ if (results.length > 0) {
88
+ logger.box('Removed components:', results.filter(r => r.success).map(r => ' ' + pc.dim(r.name)));
89
+ }
90
+ }
91
+ if (failureCount > 0) {
92
+ logger.error(`Failed to remove ${failureCount} component(s).`);
93
+ process.exit(1);
94
+ }
95
+ }
96
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface SyncOptions {
2
+ tarball?: string;
3
+ force?: boolean;
4
+ }
5
+ export declare function sync(options?: SyncOptions): Promise<void>;
6
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJnE"}