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.
- package/README.md +1268 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +98 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +464 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +381 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +72 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/remove.d.ts +3 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +96 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +143 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/types/index.d.ts +61 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/components.d.ts +76 -0
- package/dist/utils/components.d.ts.map +1 -0
- package/dist/utils/components.js +208 -0
- package/dist/utils/components.js.map +1 -0
- package/dist/utils/config.d.ts +9 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +78 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/dependencies.d.ts +23 -0
- package/dist/utils/dependencies.d.ts.map +1 -0
- package/dist/utils/dependencies.js +93 -0
- package/dist/utils/dependencies.js.map +1 -0
- package/dist/utils/files.d.ts +48 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +171 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +34 -0
- package/dist/utils/logger.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|