agnosticui-cli 2.0.0-alpha.10
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 +135 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +100 -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 +443 -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 +449 -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 +62 -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 +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +37 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,449 @@
|
|
|
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 agnosticui-cli add <component>') + ' to add components.');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
// Validate we're inside a project directory
|
|
26
|
+
if (!existsSync(path.join(process.cwd(), 'package.json'))) {
|
|
27
|
+
logger.error("It looks like you haven't set up a project yet.");
|
|
28
|
+
logger.info('Please run ' + pc.cyan('npm create vite@latest') + ' before initializing AgnosticUI.');
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const hasMainTs = existsSync(path.join(process.cwd(), 'src', 'main.ts'));
|
|
32
|
+
const hasMainTsx = existsSync(path.join(process.cwd(), 'src', 'main.tsx'));
|
|
33
|
+
const entryPoint = hasMainTsx ? 'main.tsx' : hasMainTs ? 'main.ts' : 'main.{ts|tsx}';
|
|
34
|
+
// Prompt for framework if not provided
|
|
35
|
+
let framework = options.framework;
|
|
36
|
+
if (!framework) {
|
|
37
|
+
if (options.skipPrompts) {
|
|
38
|
+
logger.error('Framework not specified. Use --framework option in non-interactive mode.');
|
|
39
|
+
logger.info('Example: ' + pc.cyan('npx agnosticui-cli init --framework react --skip-prompts'));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const frameworkChoice = await p.select({
|
|
43
|
+
message: 'Which framework are you using?',
|
|
44
|
+
options: [
|
|
45
|
+
{ value: 'react', label: 'React' },
|
|
46
|
+
{ value: 'vue', label: 'Vue' },
|
|
47
|
+
{ value: 'lit', label: 'Lit' },
|
|
48
|
+
{ value: 'svelte', label: 'Svelte' },
|
|
49
|
+
{ value: 'other', label: 'Other (Angular, Solid, Preact, etc. - Uses web components)' },
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
if (p.isCancel(frameworkChoice)) {
|
|
53
|
+
p.cancel('Operation cancelled.');
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
framework = frameworkChoice;
|
|
57
|
+
}
|
|
58
|
+
// Prompt for components path if not provided
|
|
59
|
+
let componentsPath = options.componentsPath;
|
|
60
|
+
if (!componentsPath) {
|
|
61
|
+
if (options.skipPrompts) {
|
|
62
|
+
componentsPath = DEFAULT_COMPONENTS_PATH;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const pathChoice = await p.text({
|
|
66
|
+
message: 'Where should components be generated?',
|
|
67
|
+
placeholder: DEFAULT_COMPONENTS_PATH,
|
|
68
|
+
defaultValue: DEFAULT_COMPONENTS_PATH,
|
|
69
|
+
});
|
|
70
|
+
if (p.isCancel(pathChoice)) {
|
|
71
|
+
p.cancel('Operation cancelled.');
|
|
72
|
+
process.exit(0);
|
|
73
|
+
}
|
|
74
|
+
componentsPath = pathChoice;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Determine tarball path
|
|
78
|
+
const version = options.version || 'alpha';
|
|
79
|
+
const tarballPath = options.tarball || await determineTarballPath(version);
|
|
80
|
+
if (!tarballPath) {
|
|
81
|
+
logger.error('Could not find AgnosticUI tarball.');
|
|
82
|
+
logger.info('Please specify a tarball path with --tarball option or ensure agnosticui-core is published to NPM.');
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
// Start spinner
|
|
86
|
+
const spinner = p.spinner();
|
|
87
|
+
spinner.start('Initializing AgnosticUI Local...');
|
|
88
|
+
try {
|
|
89
|
+
// Extract tarball to reference path
|
|
90
|
+
spinner.message('Extracting reference library...');
|
|
91
|
+
await ensureDir(DEFAULT_REFERENCE_PATH);
|
|
92
|
+
await extractTarball(tarballPath, DEFAULT_REFERENCE_PATH);
|
|
93
|
+
// Read version from extracted tarball
|
|
94
|
+
const versionJsonPath = path.join(DEFAULT_REFERENCE_PATH, 'version.json');
|
|
95
|
+
let tarballVersion = '2.0.0-alpha'; // fallback
|
|
96
|
+
if (pathExists(versionJsonPath)) {
|
|
97
|
+
try {
|
|
98
|
+
const versionData = JSON.parse(await readFile(versionJsonPath, 'utf-8'));
|
|
99
|
+
tarballVersion = versionData.version || tarballVersion;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Use fallback version
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Create config file
|
|
106
|
+
spinner.message('Creating configuration...');
|
|
107
|
+
const config = createDefaultConfig(framework, componentsPath, tarballVersion);
|
|
108
|
+
// Add tarball info to config
|
|
109
|
+
config.tarball = {
|
|
110
|
+
source: path.resolve(tarballPath),
|
|
111
|
+
version: tarballVersion,
|
|
112
|
+
installed: new Date().toISOString(),
|
|
113
|
+
};
|
|
114
|
+
await saveConfig(config);
|
|
115
|
+
// Create components directory
|
|
116
|
+
spinner.message('Creating components directory...');
|
|
117
|
+
await ensureDir(componentsPath);
|
|
118
|
+
// Copy CSS tokens to components/styles directory
|
|
119
|
+
spinner.message('Copying CSS tokens...');
|
|
120
|
+
const stylesPath = path.join(componentsPath, 'styles');
|
|
121
|
+
await ensureDir(stylesPath);
|
|
122
|
+
const tokensSourcePath = path.join(DEFAULT_REFERENCE_PATH, 'src', 'styles');
|
|
123
|
+
const tokenFiles = ['ag-tokens.css', 'ag-tokens-dark.css'];
|
|
124
|
+
for (const tokenFile of tokenFiles) {
|
|
125
|
+
const srcFile = path.join(tokensSourcePath, tokenFile);
|
|
126
|
+
const destFile = path.join(stylesPath, tokenFile);
|
|
127
|
+
if (pathExists(srcFile)) {
|
|
128
|
+
await copyFile(srcFile, destFile);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Copy shared infrastructure (shared, utils, styles, types)
|
|
132
|
+
spinner.message('Copying shared infrastructure...');
|
|
133
|
+
const { copyDirectoryFiltered } = await import('../utils/files.js');
|
|
134
|
+
const infraDirs = ['shared', 'utils', 'styles', 'types'];
|
|
135
|
+
for (const dir of infraDirs) {
|
|
136
|
+
const srcDir = path.join(DEFAULT_REFERENCE_PATH, 'src', dir);
|
|
137
|
+
const destDir = path.join(componentsPath, dir);
|
|
138
|
+
if (pathExists(srcDir)) {
|
|
139
|
+
await copyDirectoryFiltered(srcDir, destDir, {
|
|
140
|
+
exclude: ['*.spec.ts', '*.spec.js'] // Skip test files
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
spinner.stop(pc.green('✓') + ' Initialized successfully!');
|
|
145
|
+
// Check and install dependencies
|
|
146
|
+
await handleDependencies(framework, options.skipPrompts);
|
|
147
|
+
// Update ignore files for the reference library
|
|
148
|
+
spinner.message('Updating .gitignore...');
|
|
149
|
+
const referenceDirName = path.basename(DEFAULT_REFERENCE_PATH);
|
|
150
|
+
const ignorePattern = `${referenceDirName}/`;
|
|
151
|
+
// Update .gitignore
|
|
152
|
+
await updateIgnoreFile(path.join(process.cwd(), '.gitignore'), ignorePattern);
|
|
153
|
+
// Check for eslint.config.js and update or warn
|
|
154
|
+
const eslintConfigPath = path.join(process.cwd(), 'eslint.config.js');
|
|
155
|
+
if (pathExists(eslintConfigPath)) {
|
|
156
|
+
spinner.message('Updating eslint.config.js...');
|
|
157
|
+
const updated = await updateEslintConfig(eslintConfigPath, `${referenceDirName}/`);
|
|
158
|
+
if (!updated) {
|
|
159
|
+
logger.newline();
|
|
160
|
+
logger.info(pc.yellow('ESLint Configuration:') + ' Please add the following to your ' + pc.cyan('eslint.config.js') + ':');
|
|
161
|
+
console.log(' ' + pc.dim('{'));
|
|
162
|
+
console.log(' ' + pc.cyan(`ignores: ["${referenceDirName}/"]`));
|
|
163
|
+
console.log(' ' + pc.dim('}'));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Update TS Configs
|
|
167
|
+
spinner.message('Configuring TypeScript...');
|
|
168
|
+
await updateTsConfigs();
|
|
169
|
+
spinner.stop(pc.green('✓') + ' Initialized successfully!');
|
|
170
|
+
logger.newline();
|
|
171
|
+
// Generate example import statement based on framework
|
|
172
|
+
let exampleImport = '';
|
|
173
|
+
if (framework === 'react') {
|
|
174
|
+
exampleImport = `import { ReactButton } from '${componentsPath}/Button/react/ReactButton'`;
|
|
175
|
+
}
|
|
176
|
+
else if (framework === 'vue') {
|
|
177
|
+
exampleImport = `import VueButton from '${componentsPath}/Button/vue/VueButton.vue'`;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Lit, Svelte, and Other (Angular, Solid, etc.) use web components from core
|
|
181
|
+
exampleImport = `import '${componentsPath}/Button/core/Button'`;
|
|
182
|
+
}
|
|
183
|
+
logger.box('Next Steps:', [
|
|
184
|
+
pc.dim(`1. Import CSS tokens in your app entry point (${entryPoint}):`),
|
|
185
|
+
' ' + logger.code(`import '${componentsPath}/styles/ag-tokens.css'`),
|
|
186
|
+
' ' + logger.code(`import '${componentsPath}/styles/ag-tokens-dark.css'`),
|
|
187
|
+
pc.dim(' (Or use <link> tags in your index.html)'),
|
|
188
|
+
'',
|
|
189
|
+
pc.dim('2. Set up theming (override Vite\'s default dark mode):'),
|
|
190
|
+
' ' + pc.dim('Add to your main CSS file or <style> tag:'),
|
|
191
|
+
' ' + logger.code('body { background: var(--ag-background-primary); color: var(--ag-text-primary); }'),
|
|
192
|
+
' ' + pc.dim('For dark mode, add to <html>: data-theme="dark"'),
|
|
193
|
+
' ' + pc.dim('See: https://www.agnosticui.com/theming.html'),
|
|
194
|
+
'',
|
|
195
|
+
pc.dim('3. Add a component:'),
|
|
196
|
+
' ' + logger.command('npx agnosticui-cli add button'),
|
|
197
|
+
'',
|
|
198
|
+
pc.dim('4. List available components:'),
|
|
199
|
+
' ' + logger.command('npx agnosticui-cli list'),
|
|
200
|
+
'',
|
|
201
|
+
pc.dim('5. Use in your app:'),
|
|
202
|
+
' ' + logger.code(exampleImport),
|
|
203
|
+
]);
|
|
204
|
+
// Clean up temporary download directory if it exists
|
|
205
|
+
await cleanupTempDownload();
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
spinner.stop(pc.red('✖') + ' Failed to initialize');
|
|
209
|
+
logger.error(`Initialization failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
210
|
+
// Clean up on error too
|
|
211
|
+
await cleanupTempDownload();
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Update tsconfig files with required options
|
|
217
|
+
*/
|
|
218
|
+
async function updateTsConfigs() {
|
|
219
|
+
const tsconfigFiles = ['tsconfig.json', 'tsconfig.app.json', 'tsconfig.node.json'];
|
|
220
|
+
const cwd = process.cwd();
|
|
221
|
+
let updatedAny = false;
|
|
222
|
+
for (const file of tsconfigFiles) {
|
|
223
|
+
const filePath = path.join(cwd, file);
|
|
224
|
+
if (pathExists(filePath)) {
|
|
225
|
+
try {
|
|
226
|
+
const content = await readFile(filePath, 'utf-8');
|
|
227
|
+
// Try to parse JSON (support comments by stripping them)
|
|
228
|
+
let json;
|
|
229
|
+
try {
|
|
230
|
+
const jsonContent = stripJsonComments(content);
|
|
231
|
+
json = JSON.parse(jsonContent);
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
// If parsing still fails
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
let modified = false;
|
|
238
|
+
// Ensure compilerOptions exists
|
|
239
|
+
if (!json.compilerOptions) {
|
|
240
|
+
json.compilerOptions = {};
|
|
241
|
+
modified = true;
|
|
242
|
+
}
|
|
243
|
+
// Set experimentalDecorators
|
|
244
|
+
if (json.compilerOptions.experimentalDecorators !== true) {
|
|
245
|
+
json.compilerOptions.experimentalDecorators = true;
|
|
246
|
+
modified = true;
|
|
247
|
+
}
|
|
248
|
+
// Set useDefineForClassFields
|
|
249
|
+
if (json.compilerOptions.useDefineForClassFields !== false) {
|
|
250
|
+
json.compilerOptions.useDefineForClassFields = false;
|
|
251
|
+
modified = true;
|
|
252
|
+
}
|
|
253
|
+
// Disable erasableSyntaxOnly if present (as it conflicts with decorators)
|
|
254
|
+
if (json.compilerOptions.erasableSyntaxOnly === true) {
|
|
255
|
+
json.compilerOptions.erasableSyntaxOnly = false;
|
|
256
|
+
modified = true;
|
|
257
|
+
}
|
|
258
|
+
// Add exclude pattern if not present
|
|
259
|
+
if (!json.exclude) {
|
|
260
|
+
json.exclude = [];
|
|
261
|
+
}
|
|
262
|
+
const excludePatterns = ['agnosticui', '**/agnosticui/**'];
|
|
263
|
+
for (const pattern of excludePatterns) {
|
|
264
|
+
if (!json.exclude.includes(pattern)) {
|
|
265
|
+
json.exclude.push(pattern);
|
|
266
|
+
modified = true;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (modified) {
|
|
270
|
+
await writeFile(filePath, JSON.stringify(json, null, 2));
|
|
271
|
+
logger.info(`Updated ${file} with required configuration.`);
|
|
272
|
+
updatedAny = true;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
// Ignore errors, user will see the note
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
// Show verify note instead of "Add to..." if we updated files
|
|
281
|
+
showTypeScriptNote(updatedAny);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Determine the tarball path (local or download from NPM)
|
|
285
|
+
*/
|
|
286
|
+
async function determineTarballPath(version = 'alpha') {
|
|
287
|
+
// For local development, look for the tarball in the dist folder
|
|
288
|
+
const localTarballPath = path.resolve(process.cwd(), '../../dist/agnosticui-local-v2.0.0-alpha.tar.gz');
|
|
289
|
+
if (existsSync(localTarballPath)) {
|
|
290
|
+
logger.info('Using local development tarball');
|
|
291
|
+
return localTarballPath;
|
|
292
|
+
}
|
|
293
|
+
// In production, download from NPM registry
|
|
294
|
+
try {
|
|
295
|
+
const { execSync } = await import('child_process');
|
|
296
|
+
const { readdir, rm } = await import('node:fs/promises');
|
|
297
|
+
const tmpDir = path.join(process.cwd(), '.tmp-ag-download');
|
|
298
|
+
await ensureDir(tmpDir);
|
|
299
|
+
logger.info(`Downloading agnosticui-core@${version} from NPM...`);
|
|
300
|
+
// Download package using npm pack
|
|
301
|
+
execSync(`npm pack agnosticui-core@${version}`, {
|
|
302
|
+
cwd: tmpDir,
|
|
303
|
+
stdio: 'pipe'
|
|
304
|
+
});
|
|
305
|
+
// Find the downloaded tarball
|
|
306
|
+
const files = await readdir(tmpDir);
|
|
307
|
+
const tarball = files.find(f => f.startsWith('agnosticui-core-') && f.endsWith('.tgz'));
|
|
308
|
+
if (tarball) {
|
|
309
|
+
return path.join(tmpDir, tarball);
|
|
310
|
+
}
|
|
311
|
+
// Clean up if no tarball found
|
|
312
|
+
await rm(tmpDir, { recursive: true, force: true });
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
logger.error('Failed to download agnosticui-core from NPM');
|
|
316
|
+
logger.info(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
317
|
+
}
|
|
318
|
+
return null;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Clean up temporary download directory
|
|
322
|
+
*/
|
|
323
|
+
async function cleanupTempDownload() {
|
|
324
|
+
try {
|
|
325
|
+
const { rm } = await import('node:fs/promises');
|
|
326
|
+
const tmpDir = path.join(process.cwd(), '.tmp-ag-download');
|
|
327
|
+
if (pathExists(tmpDir)) {
|
|
328
|
+
await rm(tmpDir, { recursive: true, force: true });
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
// Ignore cleanup errors - not critical
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Handle dependency installation for the selected framework
|
|
337
|
+
*/
|
|
338
|
+
async function handleDependencies(framework, skipPrompts = false) {
|
|
339
|
+
const requiredDeps = getFrameworkDependencies(framework);
|
|
340
|
+
// Check if dependencies are already installed
|
|
341
|
+
if (checkDependenciesInstalled(requiredDeps)) {
|
|
342
|
+
logger.newline();
|
|
343
|
+
logger.info('Required dependencies already installed: ' + pc.dim(requiredDeps.join(', ')));
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
// Skip installation in non-interactive mode
|
|
347
|
+
if (skipPrompts) {
|
|
348
|
+
logger.newline();
|
|
349
|
+
logger.info(`This framework requires the following dependencies:`);
|
|
350
|
+
requiredDeps.forEach(dep => {
|
|
351
|
+
console.log(' ' + pc.cyan(dep));
|
|
352
|
+
});
|
|
353
|
+
logger.newline();
|
|
354
|
+
const packageManager = detectPackageManager();
|
|
355
|
+
logger.info(`Install them with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
// Detect package manager
|
|
359
|
+
const packageManager = detectPackageManager();
|
|
360
|
+
// Prompt user
|
|
361
|
+
logger.newline();
|
|
362
|
+
logger.info(`This framework requires the following dependencies:`);
|
|
363
|
+
requiredDeps.forEach(dep => {
|
|
364
|
+
console.log(' ' + pc.cyan(dep));
|
|
365
|
+
});
|
|
366
|
+
logger.newline();
|
|
367
|
+
const shouldInstall = await p.confirm({
|
|
368
|
+
message: `Install using ${pc.cyan(packageManager)}?`,
|
|
369
|
+
initialValue: true,
|
|
370
|
+
});
|
|
371
|
+
if (p.isCancel(shouldInstall)) {
|
|
372
|
+
logger.newline();
|
|
373
|
+
logger.warn('Skipped dependency installation.');
|
|
374
|
+
logger.info(`You can install manually later with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
if (!shouldInstall) {
|
|
378
|
+
logger.newline();
|
|
379
|
+
logger.warn('Skipped dependency installation.');
|
|
380
|
+
logger.info(`You can install manually later with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
// Install dependencies
|
|
384
|
+
const spinner = p.spinner();
|
|
385
|
+
spinner.start('Installing dependencies...');
|
|
386
|
+
try {
|
|
387
|
+
installDependencies(requiredDeps);
|
|
388
|
+
spinner.stop(pc.green('✓') + ' Dependencies installed successfully!');
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
spinner.stop(pc.red('✖') + ' Failed to install dependencies');
|
|
392
|
+
logger.error(`Installation failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
393
|
+
logger.info(`You can install manually with: ${pc.cyan(`${packageManager} ${packageManager === 'npm' ? 'install' : 'add'} ${requiredDeps.join(' ')}`)}`);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Show TypeScript decorator configuration note
|
|
398
|
+
*/
|
|
399
|
+
function showTypeScriptNote(wasUpdated = false) {
|
|
400
|
+
if (pathExists('tsconfig.json')) {
|
|
401
|
+
logger.newline();
|
|
402
|
+
if (wasUpdated) {
|
|
403
|
+
logger.info(pc.green('TypeScript Configuration Updated:') + ' verified the following settings:');
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
logger.info(pc.yellow('TypeScript Note:') + ' Add to ' + pc.cyan('ALL') + ' tsconfig files:');
|
|
407
|
+
}
|
|
408
|
+
console.log(' ' + pc.dim('"compilerOptions": {'));
|
|
409
|
+
console.log(' ' + pc.cyan('"experimentalDecorators": true'));
|
|
410
|
+
console.log(' ' + pc.dim('},'));
|
|
411
|
+
console.log(' ' + pc.dim('"exclude": ['));
|
|
412
|
+
console.log(' ' + pc.cyan('"agnosticui",'));
|
|
413
|
+
console.log(' ' + pc.cyan('"**/agnosticui/**"'));
|
|
414
|
+
console.log(' ' + pc.dim(']'));
|
|
415
|
+
logger.newline();
|
|
416
|
+
if (!wasUpdated) {
|
|
417
|
+
logger.info(pc.dim('(For Vite: add to both tsconfig.json AND tsconfig.app.json)'));
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Strip comments from JSON content
|
|
423
|
+
*
|
|
424
|
+
* The regex matches either:
|
|
425
|
+
* 1. Complete quoted strings (to preserve them, including glob patterns)
|
|
426
|
+
* 2. Single-line comments (// ...)
|
|
427
|
+
* 3. Multi-line comments (slash-star ... star-slash)
|
|
428
|
+
*
|
|
429
|
+
* Only captured comments (group g) are removed; strings are preserved.
|
|
430
|
+
*
|
|
431
|
+
* Example - Vue's tsconfig.app.json contains:
|
|
432
|
+
* "include": ["src/STAR-STAR/STAR.ts", "src/STAR-STAR/STAR.tsx", "src/STAR-STAR/STAR.vue"]
|
|
433
|
+
* (where STAR = asterisk, written this way to avoid closing this JSDoc comment)
|
|
434
|
+
*
|
|
435
|
+
* The glob pattern "src/STAR-STAR/STAR.ts" contains "/STAR-STAR/" which looks like
|
|
436
|
+
* a multi-line comment. The regex must match the ENTIRE quoted string first, so the
|
|
437
|
+
* glob is preserved:
|
|
438
|
+
*
|
|
439
|
+
* Pattern: "(?:\\"|[^"])*"
|
|
440
|
+
* Input: "src/STAR-STAR/STAR.ts"
|
|
441
|
+
* Match: "src/STAR-STAR/STAR.ts" (entire string matched, preserved)
|
|
442
|
+
*
|
|
443
|
+
* Without the full string pattern matching first, the glob would incorrectly
|
|
444
|
+
* be treated as containing a comment and get stripped, corrupting it to "src*.ts".
|
|
445
|
+
*/
|
|
446
|
+
function stripJsonComments(json) {
|
|
447
|
+
return json.replace(/"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g, (m, g) => g ? "" : m);
|
|
448
|
+
}
|
|
449
|
+
//# 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 agnosticui-cli 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 agnosticui-cli 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 agnosticui-cli add button'),
|
|
62
|
+
'',
|
|
63
|
+
pc.dim('Add multiple components:'),
|
|
64
|
+
' ' + logger.command('npx agnosticui-cli 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"}
|