zard-cli 1.0.0-beta.1
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 +188 -0
- package/dist/commands/add/component-installer.d.ts +5 -0
- package/dist/commands/add/component-installer.d.ts.map +1 -0
- package/dist/commands/add/component-installer.js +17 -0
- package/dist/commands/add/component-installer.js.map +1 -0
- package/dist/commands/add/component-selector.d.ts +2 -0
- package/dist/commands/add/component-selector.d.ts.map +1 -0
- package/dist/commands/add/component-selector.js +31 -0
- package/dist/commands/add/component-selector.js.map +1 -0
- package/dist/commands/add/dark-mode-setup.d.ts +7 -0
- package/dist/commands/add/dark-mode-setup.d.ts.map +1 -0
- package/dist/commands/add/dark-mode-setup.js +43 -0
- package/dist/commands/add/dark-mode-setup.js.map +1 -0
- package/dist/commands/add/dependency-resolver.d.ts +27 -0
- package/dist/commands/add/dependency-resolver.d.ts.map +1 -0
- package/dist/commands/add/dependency-resolver.js +108 -0
- package/dist/commands/add/dependency-resolver.js.map +1 -0
- package/dist/commands/add/index.d.ts +3 -0
- package/dist/commands/add/index.d.ts.map +1 -0
- package/dist/commands/add/index.js +137 -0
- package/dist/commands/add/index.js.map +1 -0
- package/dist/commands/init/config-prompter.d.ts +71 -0
- package/dist/commands/init/config-prompter.d.ts.map +1 -0
- package/dist/commands/init/config-prompter.js +109 -0
- package/dist/commands/init/config-prompter.js.map +1 -0
- package/dist/commands/init/dependencies.d.ts +11 -0
- package/dist/commands/init/dependencies.d.ts.map +1 -0
- package/dist/commands/init/dependencies.js +33 -0
- package/dist/commands/init/dependencies.js.map +1 -0
- package/dist/commands/init/index.d.ts +3 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +121 -0
- package/dist/commands/init/index.js.map +1 -0
- package/dist/commands/init/tailwind-setup.d.ts +5 -0
- package/dist/commands/init/tailwind-setup.d.ts.map +1 -0
- package/dist/commands/init/tailwind-setup.js +24 -0
- package/dist/commands/init/tailwind-setup.js.map +1 -0
- package/dist/commands/init/theme-loader.d.ts +2 -0
- package/dist/commands/init/theme-loader.d.ts.map +1 -0
- package/dist/commands/init/theme-loader.js +62 -0
- package/dist/commands/init/theme-loader.js.map +1 -0
- package/dist/commands/init/tsconfig-updater.d.ts +3 -0
- package/dist/commands/init/tsconfig-updater.d.ts.map +1 -0
- package/dist/commands/init/tsconfig-updater.js +49 -0
- package/dist/commands/init/tsconfig-updater.js.map +1 -0
- package/dist/commands/init/update-angular-config.d.ts +7 -0
- package/dist/commands/init/update-angular-config.d.ts.map +1 -0
- package/dist/commands/init/update-angular-config.js +81 -0
- package/dist/commands/init/update-angular-config.js.map +1 -0
- package/dist/config/registry-config.d.ts +2 -0
- package/dist/config/registry-config.d.ts.map +1 -0
- package/dist/config/registry-config.js +2 -0
- package/dist/config/registry-config.js.map +1 -0
- package/dist/constants/app.constants.d.ts +2 -0
- package/dist/constants/app.constants.d.ts.map +1 -0
- package/dist/constants/app.constants.js +24 -0
- package/dist/constants/app.constants.js.map +1 -0
- package/dist/core/registry/index.d.ts +6 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +9 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/registry-data.d.ts +13 -0
- package/dist/core/registry/registry-data.d.ts.map +1 -0
- package/dist/core/registry/registry-data.js +854 -0
- package/dist/core/registry/registry-data.js.map +1 -0
- package/dist/core/themes/index.d.ts +3 -0
- package/dist/core/themes/index.d.ts.map +1 -0
- package/dist/core/themes/index.js +3 -0
- package/dist/core/themes/index.js.map +1 -0
- package/dist/core/themes/theme-definitions.d.ts +7 -0
- package/dist/core/themes/theme-definitions.d.ts.map +1 -0
- package/dist/core/themes/theme-definitions.js +465 -0
- package/dist/core/themes/theme-definitions.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config.d.ts +101 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +87 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/fetch-component.d.ts +3 -0
- package/dist/utils/fetch-component.d.ts.map +1 -0
- package/dist/utils/fetch-component.js +75 -0
- package/dist/utils/fetch-component.js.map +1 -0
- package/dist/utils/get-package-info.d.ts +9 -0
- package/dist/utils/get-package-info.d.ts.map +1 -0
- package/dist/utils/get-package-info.js +52 -0
- package/dist/utils/get-package-info.js.map +1 -0
- package/dist/utils/get-project-info.d.ts +9 -0
- package/dist/utils/get-project-info.d.ts.map +1 -0
- package/dist/utils/get-project-info.js +43 -0
- package/dist/utils/get-project-info.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +27 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/package-manager.d.ts +5 -0
- package/dist/utils/package-manager.d.ts.map +1 -0
- package/dist/utils/package-manager.js +47 -0
- package/dist/utils/package-manager.js.map +1 -0
- package/dist/utils/registry.d.ts +36 -0
- package/dist/utils/registry.d.ts.map +1 -0
- package/dist/utils/registry.js +71 -0
- package/dist/utils/registry.js.map +1 -0
- package/dist/utils/theme-selector.d.ts +4 -0
- package/dist/utils/theme-selector.d.ts.map +1 -0
- package/dist/utils/theme-selector.js +33 -0
- package/dist/utils/theme-selector.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { DEFAULT_REGISTRY_URL as BUILD_REGISTRY_URL } from '../config/registry-config.js';
|
|
2
|
+
import { execa } from 'execa';
|
|
3
|
+
export const DEFAULT_REGISTRY_URL = process.env['ZARD_REGISTRY_URL'] ||
|
|
4
|
+
(BUILD_REGISTRY_URL !== '__REGISTRY_URL__' ? BUILD_REGISTRY_URL : 'https://zardui.com/r');
|
|
5
|
+
export function getRegistryUrl(config) {
|
|
6
|
+
return config?.registryUrl || DEFAULT_REGISTRY_URL;
|
|
7
|
+
}
|
|
8
|
+
async function fetchJson(url) {
|
|
9
|
+
try {
|
|
10
|
+
const { stdout } = await execa('curl', [
|
|
11
|
+
'-s',
|
|
12
|
+
'-H',
|
|
13
|
+
'Accept: application/json',
|
|
14
|
+
'-H',
|
|
15
|
+
'User-Agent: ngzard-cli',
|
|
16
|
+
'--max-time',
|
|
17
|
+
'30',
|
|
18
|
+
url,
|
|
19
|
+
]);
|
|
20
|
+
if (!stdout || stdout.includes('<!DOCTYPE') || stdout.includes('<html')) {
|
|
21
|
+
throw new Error(`Invalid response from registry: ${url}`);
|
|
22
|
+
}
|
|
23
|
+
return JSON.parse(stdout);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof SyntaxError) {
|
|
27
|
+
throw new Error(`Invalid JSON response from registry: ${url}`);
|
|
28
|
+
}
|
|
29
|
+
throw new Error(`Failed to fetch from registry: ${url} - ${error}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function fetchRegistryIndex(registryUrl) {
|
|
33
|
+
const baseUrl = registryUrl || DEFAULT_REGISTRY_URL;
|
|
34
|
+
const url = `${baseUrl}/registry.json`;
|
|
35
|
+
return fetchJson(url);
|
|
36
|
+
}
|
|
37
|
+
export async function fetchComponentFromRegistry(componentName, registryUrl) {
|
|
38
|
+
const baseUrl = registryUrl || DEFAULT_REGISTRY_URL;
|
|
39
|
+
const url = `${baseUrl}/${componentName}.json`;
|
|
40
|
+
return fetchJson(url);
|
|
41
|
+
}
|
|
42
|
+
export async function getAvailableComponents(registryUrl) {
|
|
43
|
+
const index = await fetchRegistryIndex(registryUrl);
|
|
44
|
+
return index.items.map(item => item.name);
|
|
45
|
+
}
|
|
46
|
+
export function transformContent(content, config) {
|
|
47
|
+
let transformed = content;
|
|
48
|
+
const { aliases } = config;
|
|
49
|
+
// Replace utils imports
|
|
50
|
+
transformed = transformed.replace(/from ['"]\.\.\/\.\.\/shared\/utils\/utils['"]/g, `from '${aliases.utils}/merge-classes'`);
|
|
51
|
+
transformed = transformed.replace(/from ['"]\.\.\/\.\.\/shared\/utils\/number['"]/g, `from '${aliases.utils}/number'`);
|
|
52
|
+
// Replace relative component imports with aliased imports
|
|
53
|
+
const componentImportRegex = /from ['"]\.\.\/([\w-/.]+)['"]/g;
|
|
54
|
+
transformed = transformed.replace(componentImportRegex, `from '${aliases.components}/$1'`);
|
|
55
|
+
// Replace ClassValue imports
|
|
56
|
+
transformed = transformed.replace(/import \{ ClassValue \} from ['"]class-variance-authority\/dist\/types['"]/g, `import { ClassValue } from 'clsx'`);
|
|
57
|
+
transformed = transformed.replace(/import \{ ClassValue \} from ['"]class-variance-authority['"]/g, `import { ClassValue } from 'clsx'`);
|
|
58
|
+
return transformed;
|
|
59
|
+
}
|
|
60
|
+
export async function fetchComponent(componentName, config, registryUrl) {
|
|
61
|
+
const item = await fetchComponentFromRegistry(componentName, registryUrl);
|
|
62
|
+
const transformedFiles = item.files.map(file => ({
|
|
63
|
+
name: file.name,
|
|
64
|
+
content: transformContent(file.content, config),
|
|
65
|
+
}));
|
|
66
|
+
return {
|
|
67
|
+
...item,
|
|
68
|
+
files: transformedFiles,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-selector.d.ts","sourceRoot":"","sources":["../../src/utils/theme-selector.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAkBzD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS7D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as themes from '../core/themes/theme-definitions.js';
|
|
2
|
+
export function getAvailableThemes() {
|
|
3
|
+
return themes.availableThemes;
|
|
4
|
+
}
|
|
5
|
+
export function getThemeContent(themeName) {
|
|
6
|
+
const content = (() => {
|
|
7
|
+
switch (themeName) {
|
|
8
|
+
case 'stone':
|
|
9
|
+
return themes.stone;
|
|
10
|
+
case 'zinc':
|
|
11
|
+
return themes.zinc;
|
|
12
|
+
case 'gray':
|
|
13
|
+
return themes.gray;
|
|
14
|
+
case 'slate':
|
|
15
|
+
return themes.slate;
|
|
16
|
+
case 'neutral':
|
|
17
|
+
default:
|
|
18
|
+
return themes.neutral;
|
|
19
|
+
}
|
|
20
|
+
})();
|
|
21
|
+
return content.trim();
|
|
22
|
+
}
|
|
23
|
+
export function getThemeDisplayName(themeName) {
|
|
24
|
+
const names = {
|
|
25
|
+
neutral: 'Neutral (Default)',
|
|
26
|
+
stone: 'Stone',
|
|
27
|
+
zinc: 'Zinc',
|
|
28
|
+
gray: 'Gray',
|
|
29
|
+
slate: 'Slate',
|
|
30
|
+
};
|
|
31
|
+
return names[themeName] ?? themeName;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=theme-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-selector.js","sourceRoot":"","sources":["../../src/utils/theme-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAEhE,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,KAAK,SAAS,CAAC;YACf;gBACE,OAAO,MAAM,CAAC,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAA2B;QACpC,OAAO,EAAE,mBAAmB;QAC5B,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;KACf,CAAC;IACF,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;AACvC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "zard-cli",
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
|
+
"description": "An alternative to shadcn/ui for angular",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"ngzard": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"ngzard",
|
|
12
|
+
"zard",
|
|
13
|
+
"zard-ui",
|
|
14
|
+
"shadcn/ui-angular",
|
|
15
|
+
"angular",
|
|
16
|
+
"components",
|
|
17
|
+
"ui",
|
|
18
|
+
"tailwindcss",
|
|
19
|
+
"tailwind",
|
|
20
|
+
"cli",
|
|
21
|
+
"design-system",
|
|
22
|
+
"typescript"
|
|
23
|
+
],
|
|
24
|
+
"author": "ZardUI Team",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"homepage": "https://zardui.com/",
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/zard-ui/zardui.git",
|
|
30
|
+
"directory": "packages/cli"
|
|
31
|
+
},
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/zard-ui/zardui/issues"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=20"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"**/*.js",
|
|
40
|
+
"**/*.d.ts",
|
|
41
|
+
"**/*.js.map",
|
|
42
|
+
"**/*.d.ts.map",
|
|
43
|
+
"!**/*.spec.js",
|
|
44
|
+
"!**/*.test.js"
|
|
45
|
+
],
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@antfu/ni": "^0.23.2",
|
|
48
|
+
"chalk": "^5.3.0",
|
|
49
|
+
"class-variance-authority": "^0.7.1",
|
|
50
|
+
"clsx": "^2.1.1",
|
|
51
|
+
"commander": "^12.1.0",
|
|
52
|
+
"comment-json": "^4.2.5",
|
|
53
|
+
"execa": "^9.5.2",
|
|
54
|
+
"ora": "^8.1.1",
|
|
55
|
+
"prompts": "^2.4.2",
|
|
56
|
+
"zod": "^3.24.1"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"tsc-alias": "^1.8.16"
|
|
60
|
+
}
|
|
61
|
+
}
|