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 @@
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/utils/dependencies.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAsB,GAAG,cAAc,CAahF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAc5F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAmBvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAYzF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAYnG"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Dependency management utilities
3
+ */
4
+ import { existsSync } from 'node:fs';
5
+ import { execSync } from 'node:child_process';
6
+ import path from 'node:path';
7
+ /**
8
+ * Detect the package manager being used in the project
9
+ */
10
+ export function detectPackageManager(cwd = process.cwd()) {
11
+ // Check for lock files
12
+ if (existsSync(path.join(cwd, 'bun.lockb'))) {
13
+ return 'bun';
14
+ }
15
+ if (existsSync(path.join(cwd, 'pnpm-lock.yaml'))) {
16
+ return 'pnpm';
17
+ }
18
+ if (existsSync(path.join(cwd, 'yarn.lock'))) {
19
+ return 'yarn';
20
+ }
21
+ // Default to npm
22
+ return 'npm';
23
+ }
24
+ /**
25
+ * Get the install command for a package manager
26
+ */
27
+ export function getInstallCommand(packageManager, packages) {
28
+ const pkgList = packages.join(' ');
29
+ switch (packageManager) {
30
+ case 'bun':
31
+ return `bun add ${pkgList}`;
32
+ case 'pnpm':
33
+ return `pnpm add ${pkgList}`;
34
+ case 'yarn':
35
+ return `yarn add ${pkgList}`;
36
+ case 'npm':
37
+ default:
38
+ return `npm install ${pkgList}`;
39
+ }
40
+ }
41
+ /**
42
+ * Get required dependencies for a framework
43
+ */
44
+ export function getFrameworkDependencies(framework) {
45
+ // Base dependencies required by all frameworks
46
+ // - lit: Core web components library
47
+ // - focus-trap: Used by Dialog component for accessibility
48
+ // - @floating-ui/dom: Used by Popover and Tooltip components for positioning
49
+ const baseDeps = ['lit', 'focus-trap', '@floating-ui/dom'];
50
+ switch (framework) {
51
+ case 'react':
52
+ return [...baseDeps, '@lit/react'];
53
+ case 'vue':
54
+ return baseDeps;
55
+ case 'lit':
56
+ return baseDeps;
57
+ case 'svelte':
58
+ return baseDeps;
59
+ default:
60
+ return baseDeps;
61
+ }
62
+ }
63
+ /**
64
+ * Install dependencies using the detected package manager
65
+ */
66
+ export function installDependencies(packages, cwd = process.cwd()) {
67
+ const packageManager = detectPackageManager(cwd);
68
+ const command = getInstallCommand(packageManager, packages);
69
+ try {
70
+ execSync(command, {
71
+ cwd,
72
+ stdio: 'inherit', // Show output to user
73
+ });
74
+ }
75
+ catch (error) {
76
+ throw new Error(`Failed to install dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`);
77
+ }
78
+ }
79
+ /**
80
+ * Check if dependencies are already installed
81
+ */
82
+ export function checkDependenciesInstalled(packages, cwd = process.cwd()) {
83
+ const nodeModulesPath = path.join(cwd, 'node_modules');
84
+ if (!existsSync(nodeModulesPath)) {
85
+ return false;
86
+ }
87
+ // Check if all packages exist in node_modules
88
+ return packages.every(pkg => {
89
+ const pkgPath = path.join(nodeModulesPath, pkg);
90
+ return existsSync(pkgPath);
91
+ });
92
+ }
93
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/utils/dependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Ensure a directory exists, creating it if necessary
3
+ */
4
+ export declare function ensureDir(dirPath: string): Promise<void>;
5
+ /**
6
+ * Copy a file from source to destination
7
+ */
8
+ export declare function copyFileToDestination(src: string, dest: string): Promise<void>;
9
+ /**
10
+ * Recursively copy a directory
11
+ */
12
+ export declare function copyDirectory(src: string, dest: string): Promise<void>;
13
+ /**
14
+ * Recursively copy a directory with file filtering
15
+ */
16
+ export declare function copyDirectoryFiltered(src: string, dest: string, options?: {
17
+ exclude?: string[];
18
+ }): Promise<void>;
19
+ /**
20
+ * Extract a tarball to a destination directory
21
+ */
22
+ export declare function extractTarball(tarballPath: string, destPath: string): Promise<void>;
23
+ /**
24
+ * Check if a path exists
25
+ */
26
+ export declare function pathExists(filePath: string): boolean;
27
+ /**
28
+ * Read JSON file
29
+ */
30
+ export declare function readJSON<T>(filePath: string): Promise<T>;
31
+ /**
32
+ * Get all subdirectories in a directory
33
+ */
34
+ export declare function getDirectories(dirPath: string): Promise<string[]>;
35
+ /**
36
+ * Check if path is a directory
37
+ */
38
+ export declare function isDirectory(dirPath: string): Promise<boolean>;
39
+ /**
40
+ * Add a pattern to an ignore file (e.g. .gitignore or .eslintignore)
41
+ * Creates the file if it doesn't exist
42
+ */
43
+ export declare function updateIgnoreFile(filePath: string, pattern: string): Promise<void>;
44
+ /**
45
+ * Update eslint.config.js to include ignore patterns
46
+ */
47
+ export declare function updateEslintConfig(filePath: string, ignorePattern: string): Promise<boolean>;
48
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5E;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACnC,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAG9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKvE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBvF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BlG"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * File system utilities
3
+ */
4
+ import { mkdir, readdir, copyFile, readFile, writeFile, stat, appendFile } from 'node:fs/promises';
5
+ import { existsSync } from 'node:fs';
6
+ import path from 'node:path';
7
+ import { extract } from 'tar';
8
+ /**
9
+ * Ensure a directory exists, creating it if necessary
10
+ */
11
+ export async function ensureDir(dirPath) {
12
+ if (!existsSync(dirPath)) {
13
+ await mkdir(dirPath, { recursive: true });
14
+ }
15
+ }
16
+ /**
17
+ * Copy a file from source to destination
18
+ */
19
+ export async function copyFileToDestination(src, dest) {
20
+ await ensureDir(path.dirname(dest));
21
+ await copyFile(src, dest);
22
+ }
23
+ /**
24
+ * Recursively copy a directory
25
+ */
26
+ export async function copyDirectory(src, dest) {
27
+ await ensureDir(dest);
28
+ const entries = await readdir(src, { withFileTypes: true });
29
+ for (const entry of entries) {
30
+ const srcPath = path.join(src, entry.name);
31
+ const destPath = path.join(dest, entry.name);
32
+ if (entry.name.startsWith('._')) {
33
+ continue;
34
+ }
35
+ if (entry.isDirectory()) {
36
+ await copyDirectory(srcPath, destPath);
37
+ }
38
+ else {
39
+ await copyFile(srcPath, destPath);
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Recursively copy a directory with file filtering
45
+ */
46
+ export async function copyDirectoryFiltered(src, dest, options = {}) {
47
+ await ensureDir(dest);
48
+ const entries = await readdir(src, { withFileTypes: true });
49
+ const excludePatterns = options.exclude || [];
50
+ for (const entry of entries) {
51
+ if (entry.name.startsWith('._')) {
52
+ continue;
53
+ }
54
+ // Check if file should be excluded
55
+ const shouldExclude = excludePatterns.some(pattern => {
56
+ if (pattern.startsWith('*.')) {
57
+ // Extension pattern like '*.spec.ts'
58
+ const ext = pattern.slice(1); // Remove the *
59
+ return entry.name.endsWith(ext);
60
+ }
61
+ // Exact match
62
+ return entry.name === pattern;
63
+ });
64
+ if (shouldExclude) {
65
+ continue;
66
+ }
67
+ const srcPath = path.join(src, entry.name);
68
+ const destPath = path.join(dest, entry.name);
69
+ if (entry.isDirectory()) {
70
+ await copyDirectoryFiltered(srcPath, destPath, options);
71
+ }
72
+ else {
73
+ await copyFile(srcPath, destPath);
74
+ }
75
+ }
76
+ }
77
+ /**
78
+ * Extract a tarball to a destination directory
79
+ */
80
+ export async function extractTarball(tarballPath, destPath) {
81
+ await ensureDir(destPath);
82
+ await extract({
83
+ file: tarballPath,
84
+ cwd: destPath,
85
+ strip: 1, // Remove the top-level directory from the tarball
86
+ });
87
+ }
88
+ /**
89
+ * Check if a path exists
90
+ */
91
+ export function pathExists(filePath) {
92
+ return existsSync(filePath);
93
+ }
94
+ /**
95
+ * Read JSON file
96
+ */
97
+ export async function readJSON(filePath) {
98
+ const content = await readFile(filePath, 'utf-8');
99
+ return JSON.parse(content);
100
+ }
101
+ /**
102
+ * Get all subdirectories in a directory
103
+ */
104
+ export async function getDirectories(dirPath) {
105
+ const entries = await readdir(dirPath, { withFileTypes: true });
106
+ return entries
107
+ .filter(entry => entry.isDirectory())
108
+ .map(entry => entry.name);
109
+ }
110
+ /**
111
+ * Check if path is a directory
112
+ */
113
+ export async function isDirectory(dirPath) {
114
+ try {
115
+ const stats = await stat(dirPath);
116
+ return stats.isDirectory();
117
+ }
118
+ catch {
119
+ return false;
120
+ }
121
+ }
122
+ /**
123
+ * Add a pattern to an ignore file (e.g. .gitignore or .eslintignore)
124
+ * Creates the file if it doesn't exist
125
+ */
126
+ export async function updateIgnoreFile(filePath, pattern) {
127
+ if (pathExists(filePath)) {
128
+ const content = await readFile(filePath, 'utf-8');
129
+ if (!content.includes(pattern)) {
130
+ const separator = content.endsWith('\n') ? '' : '\n';
131
+ await appendFile(filePath, `${separator}${pattern}\n`);
132
+ }
133
+ }
134
+ else {
135
+ // Determine default content based on file type
136
+ let defaultContent = '';
137
+ const basename = path.basename(filePath);
138
+ if (basename === '.gitignore') {
139
+ defaultContent = '# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Node\nnode_modules/\n\n# OS\n.DS_Store\n\n';
140
+ }
141
+ await writeFile(filePath, `${defaultContent}${pattern}\n`);
142
+ }
143
+ }
144
+ /**
145
+ * Update eslint.config.js to include ignore patterns
146
+ */
147
+ export async function updateEslintConfig(filePath, ignorePattern) {
148
+ if (!pathExists(filePath)) {
149
+ return false;
150
+ }
151
+ try {
152
+ let content = await readFile(filePath, 'utf-8');
153
+ // Check if already ignored
154
+ if (content.includes(`ignores: ["${ignorePattern}"]`) || content.includes(`ignores: ['${ignorePattern}']`)) {
155
+ return true;
156
+ }
157
+ // Look for the start of the configuration array
158
+ // Matches: export default [ OR export default defineConfig([
159
+ const regex = /(export\s+default\s+(?:defineConfig\s*\(\s*)?\[)/;
160
+ if (regex.test(content)) {
161
+ content = content.replace(regex, `$1\n { ignores: ["${ignorePattern}"] },`);
162
+ await writeFile(filePath, content, 'utf-8');
163
+ return true;
164
+ }
165
+ return false;
166
+ }
167
+ catch (error) {
168
+ return false;
169
+ }
170
+ }
171
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const logger: {
2
+ info: (message: string) => void;
3
+ success: (message: string) => void;
4
+ error: (message: string) => void;
5
+ warn: (message: string) => void;
6
+ step: (message: string) => void;
7
+ box: (title: string, content: string[]) => void;
8
+ command: (cmd: string) => string;
9
+ newline: () => void;
10
+ };
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM;oBACD,MAAM;uBAIH,MAAM;qBAIR,MAAM;oBAIP,MAAM;oBAIN,MAAM;iBAIT,MAAM,WAAW,MAAM,EAAE;mBAOvB,MAAM;;CAOtB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Logger utility with colored output
3
+ */
4
+ import pc from 'picocolors';
5
+ export const logger = {
6
+ info: (message) => {
7
+ console.log(pc.blue('ℹ'), message);
8
+ },
9
+ success: (message) => {
10
+ console.log(pc.green('✓'), message);
11
+ },
12
+ error: (message) => {
13
+ console.log(pc.red('✖'), message);
14
+ },
15
+ warn: (message) => {
16
+ console.log(pc.yellow('⚠'), message);
17
+ },
18
+ step: (message) => {
19
+ console.log(pc.cyan('→'), message);
20
+ },
21
+ box: (title, content) => {
22
+ console.log('');
23
+ console.log(pc.bold(pc.cyan(title)));
24
+ content.forEach(line => console.log(' ' + line));
25
+ console.log('');
26
+ },
27
+ command: (cmd) => {
28
+ return pc.dim(' $ ' + cmd);
29
+ },
30
+ newline: () => {
31
+ console.log('');
32
+ }
33
+ };
34
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,CAAC,OAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,EAAE,CAAC,KAAa,EAAE,OAAiB,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;QACvB,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "agnosticui-cli",
3
+ "version": "2.0.0-alpha.2",
4
+ "description": "CLI for AgnosticUI Local - The UI kit that lives in your codebase",
5
+ "type": "module",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "bin": {
10
+ "ag": "./dist/cli.js"
11
+ },
12
+ "main": "./dist/cli.js",
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "dev": "tsc --watch",
19
+ "test": "echo \"Tests coming soon\"",
20
+ "lint": "eslint .",
21
+ "typecheck": "tsc --noEmit"
22
+ },
23
+ "keywords": [
24
+ "agnosticui",
25
+ "cli",
26
+ "components",
27
+ "ui-kit",
28
+ "local-first",
29
+ "ai-friendly"
30
+ ],
31
+ "author": "AgnosticUI",
32
+ "license": "Apache-2.0",
33
+ "dependencies": {
34
+ "@clack/prompts": "^0.8.2",
35
+ "commander": "^12.1.0",
36
+ "picocolors": "^1.1.1",
37
+ "tar": "^7.4.3"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.10.1",
41
+ "@types/tar": "^6.1.13",
42
+ "typescript": "^5.7.2"
43
+ },
44
+ "peerDependencies": {
45
+ "lit": "^3.0.0",
46
+ "focus-trap": "^7.0.0",
47
+ "@floating-ui/dom": "^1.0.0"
48
+ },
49
+ "peerDependenciesMeta": {
50
+ "focus-trap": {
51
+ "optional": true
52
+ },
53
+ "@floating-ui/dom": {
54
+ "optional": true
55
+ }
56
+ },
57
+ "engines": {
58
+ "node": ">=18.0.0"
59
+ }
60
+ }