zard-cli 1.0.0-beta.53 → 1.0.0-beta.55

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 (48) hide show
  1. package/commands/add/component-installer.d.ts +1 -0
  2. package/commands/add/component-installer.d.ts.map +1 -1
  3. package/commands/add/component-installer.js +25 -2
  4. package/commands/add/component-installer.js.map +1 -1
  5. package/commands/add/dependency-resolver.d.ts +1 -1
  6. package/commands/add/dependency-resolver.d.ts.map +1 -1
  7. package/commands/add/dependency-resolver.js +5 -6
  8. package/commands/add/dependency-resolver.js.map +1 -1
  9. package/commands/add/index.d.ts.map +1 -1
  10. package/commands/add/index.js +38 -16
  11. package/commands/add/index.js.map +1 -1
  12. package/commands/init/index.d.ts.map +1 -1
  13. package/commands/init/index.js +3 -5
  14. package/commands/init/index.js.map +1 -1
  15. package/index.js +26 -2
  16. package/index.js.map +1 -1
  17. package/package.json +2 -2
  18. package/utils/config.d.ts.map +1 -1
  19. package/utils/config.js +10 -4
  20. package/utils/config.js.map +1 -1
  21. package/utils/errors.d.ts +16 -0
  22. package/utils/errors.d.ts.map +1 -0
  23. package/utils/errors.js +31 -0
  24. package/utils/errors.js.map +1 -0
  25. package/utils/get-project-info.d.ts +1 -0
  26. package/utils/get-project-info.d.ts.map +1 -1
  27. package/utils/get-project-info.js +3 -1
  28. package/utils/get-project-info.js.map +1 -1
  29. package/utils/http-client.d.ts +8 -0
  30. package/utils/http-client.d.ts.map +1 -0
  31. package/utils/http-client.js +68 -0
  32. package/utils/http-client.js.map +1 -0
  33. package/utils/logger.d.ts +3 -0
  34. package/utils/logger.d.ts.map +1 -1
  35. package/utils/logger.js +12 -0
  36. package/utils/logger.js.map +1 -1
  37. package/utils/package-manager.d.ts +3 -1
  38. package/utils/package-manager.d.ts.map +1 -1
  39. package/utils/package-manager.js +10 -7
  40. package/utils/package-manager.js.map +1 -1
  41. package/utils/registry.d.ts +2 -0
  42. package/utils/registry.d.ts.map +1 -1
  43. package/utils/registry.js +25 -20
  44. package/utils/registry.js.map +1 -1
  45. package/utils/fetch-component.d.ts +0 -3
  46. package/utils/fetch-component.d.ts.map +0 -1
  47. package/utils/fetch-component.js +0 -75
  48. package/utils/fetch-component.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { Config } from '../../utils/config';
2
+ export declare function validateTargetPath(targetDir: string, projectRoot: string): void;
2
3
  export declare function installComponent(componentName: string, targetDir: string, config: Config & {
3
4
  resolvedPaths: any;
4
5
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"component-installer.d.ts","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAK3C,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,GACtC,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"component-installer.d.ts","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3C,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAK/E;AAED,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,GACtC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -1,11 +1,33 @@
1
+ import { CliError, InstallError } from '../../utils/errors.js';
2
+ import { logger } from '../../utils/logger.js';
1
3
  import { fetchComponent } from '../../utils/registry.js';
2
4
  import { promises as fs } from 'node:fs';
3
5
  import * as path from 'node:path';
6
+ export function validateTargetPath(targetDir, projectRoot) {
7
+ const resolved = path.resolve(targetDir);
8
+ if (!resolved.startsWith(projectRoot)) {
9
+ throw new CliError('Target path must be within the project directory', 'INVALID_PATH');
10
+ }
11
+ }
4
12
  export async function installComponent(componentName, targetDir, config) {
5
13
  const component = await fetchComponent(componentName, config);
6
14
  await fs.mkdir(targetDir, { recursive: true });
7
- for (const file of component.files) {
8
- await installComponentFile(file, targetDir);
15
+ const writtenFiles = [];
16
+ try {
17
+ for (const file of component.files) {
18
+ const filePath = await installComponentFile(file, targetDir);
19
+ writtenFiles.push(filePath);
20
+ }
21
+ }
22
+ catch (error) {
23
+ // Rollback: remove all written files
24
+ for (const filePath of writtenFiles) {
25
+ await fs.unlink(filePath).catch(() => {
26
+ /* ignore cleanup errors */
27
+ });
28
+ }
29
+ logger.debug(`Rolled back ${writtenFiles.length} file(s) for component "${componentName}"`);
30
+ throw new InstallError(`Failed to install component "${componentName}": ${error instanceof Error ? error.message : error}`, componentName);
9
31
  }
10
32
  }
11
33
  async function installComponentFile(file, targetDir) {
@@ -13,5 +35,6 @@ async function installComponentFile(file, targetDir) {
13
35
  const fileDir = path.dirname(filePath);
14
36
  await fs.mkdir(fileDir, { recursive: true });
15
37
  await fs.writeFile(filePath, file.content, 'utf8');
38
+ return filePath;
16
39
  }
17
40
  //# sourceMappingURL=component-installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-installer.js","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAgB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,SAAiB,EACjB,MAAuC;IAEvC,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAA8B,EAAE,SAAiB;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"component-installer.js","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAgB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,WAAmB;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,QAAQ,CAAC,kDAAkD,EAAE,cAAc,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,SAAiB,EACjB,MAAuC;IAEvC,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7D,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qCAAqC;QACrC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,2BAA2B;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,YAAY,CAAC,MAAM,2BAA2B,aAAa,GAAG,CAAC,CAAC;QAE5F,MAAM,IAAI,YAAY,CACpB,gCAAgC,aAAa,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EACnG,aAAa,CACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAA8B,EAAE,SAAiB;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEnD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -14,7 +14,7 @@ export interface ResolvedDependencies {
14
14
  componentsToInstall: ComponentMeta[];
15
15
  dependenciesToInstall: Set<string>;
16
16
  }
17
- export declare function getRegistryIndex(): Promise<RegistryIndex>;
17
+ export declare function getRegistryIndex(forceRefresh?: boolean): Promise<RegistryIndex>;
18
18
  export declare function getComponentMeta(name: string): Promise<ComponentMeta | undefined>;
19
19
  export declare function getAllComponentNames(): Promise<string[]>;
20
20
  export declare function resolveDependencies(selectedComponents: string[], resolvedConfig: Config & {
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../../src/commands/add/dependency-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAajF,wBAAgB,YAAY,CAC1B,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,EAC/C,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAoBR;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,aAAa,EAAE,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAID,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAK/D;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAYvF;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAG9D;AAED,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,cAAc,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,EAC/C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,oBAAoB,CAAC,CA4C/B"}
1
+ {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../../src/commands/add/dependency-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAA+C,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAa1G,wBAAgB,YAAY,CAC1B,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,EAC/C,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAoBR;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,aAAa,EAAE,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,wBAAsB,gBAAgB,CAAC,YAAY,UAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAKnF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAYvF;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAG9D;AAED,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,cAAc,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,EAC/C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,oBAAoB,CAAC,CA4C/B"}
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readdirSync } from 'fs';
2
2
  import * as path from 'path';
3
3
  import { logger } from '../../utils/logger.js';
4
- import { fetchRegistryIndex } from '../../utils/registry.js';
4
+ import { fetchRegistryIndex, invalidateRegistryCache } from '../../utils/registry.js';
5
5
  function isComponentInstalled(dir) {
6
6
  if (!existsSync(dir))
7
7
  return false;
@@ -29,12 +29,11 @@ export function getTargetDir(component, resolvedConfig, cwd, customPath) {
29
29
  }
30
30
  return path.resolve(resolvedConfig.resolvedPaths.components, basePath);
31
31
  }
32
- let registryIndexCache = null;
33
- export async function getRegistryIndex() {
34
- if (!registryIndexCache) {
35
- registryIndexCache = await fetchRegistryIndex();
32
+ export async function getRegistryIndex(forceRefresh = false) {
33
+ if (forceRefresh) {
34
+ invalidateRegistryCache();
36
35
  }
37
- return registryIndexCache;
36
+ return fetchRegistryIndex();
38
37
  }
39
38
  export async function getComponentMeta(name) {
40
39
  const index = await getRegistryIndex();
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../../src/commands/add/dependency-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../../src/commands/add/dependency-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,GAAG,SAmDZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,GAAG,SA+DZ,CAAC"}
@@ -1,9 +1,10 @@
1
- import { installComponent } from '../../commands/add/component-installer.js';
1
+ import { installComponent, validateTargetPath } from '../../commands/add/component-installer.js';
2
2
  import { selectComponents } from '../../commands/add/component-selector.js';
3
3
  import { updateProvideZardWithDarkMode } from '../../commands/add/dark-mode-setup.js';
4
4
  import { resolveDependencies, getTargetDir } from '../../commands/add/dependency-resolver.js';
5
5
  import { injectThemeScript } from '../../commands/init/theme-loader.js';
6
6
  import { getConfig, resolveConfigPaths } from '../../utils/config.js';
7
+ import { CliError } from '../../utils/errors.js';
7
8
  import { getProjectInfo } from '../../utils/get-project-info.js';
8
9
  import { logger, spinner } from '../../utils/logger.js';
9
10
  import { installPackages } from '../../utils/package-manager.js';
@@ -24,8 +25,11 @@ export const add = new Command()
24
25
  .action(async (components, options) => {
25
26
  const cwd = path.resolve(options.cwd);
26
27
  validateWorkingDirectory(cwd);
28
+ if (options.path) {
29
+ validateTargetPath(path.resolve(cwd, options.path), cwd);
30
+ }
27
31
  const config = await loadConfiguration(cwd);
28
- await validateProject(cwd);
32
+ const projectInfo = await validateProject(cwd);
29
33
  const resolvedConfig = await resolveConfigPaths(cwd, config);
30
34
  const selectedComponents = await selectComponents(components, options.all);
31
35
  const addSpinner = spinner('Resolving components...').start();
@@ -35,13 +39,17 @@ export const add = new Command()
35
39
  logger.info('All components already installed.');
36
40
  return;
37
41
  }
42
+ const resolvedDeps = resolveCompatibleVersions(dependenciesToInstall, projectInfo.angularVersion);
43
+ if (projectInfo.angularVersionRaw && /-(rc|next|canary)/.test(projectInfo.angularVersionRaw)) {
44
+ logger.warn(`You are using a pre-release version of Angular (${projectInfo.angularVersionRaw}). Some dependencies may have compatibility issues.`);
45
+ }
38
46
  if (!options.yes) {
39
- const shouldProceed = await confirmInstallation(componentsToInstall.length, dependenciesToInstall.size);
47
+ const shouldProceed = await confirmInstallation(componentsToInstall.length, resolvedDeps.length);
40
48
  if (!shouldProceed) {
41
49
  process.exit(0);
42
50
  }
43
51
  }
44
- await installDependencies(dependenciesToInstall, cwd, config.packageManager);
52
+ await installDependencies(resolvedDeps, cwd, config.packageManager);
45
53
  await installComponents(componentsToInstall, cwd, resolvedConfig, options);
46
54
  const isDarkModeBeingInstalled = componentsToInstall.some(c => c.name === 'dark-mode');
47
55
  if (isDarkModeBeingInstalled) {
@@ -52,40 +60,53 @@ export const add = new Command()
52
60
  });
53
61
  function validateWorkingDirectory(cwd) {
54
62
  if (!existsSync(cwd)) {
55
- logger.error(`The path ${cwd} does not exist. Please try again.`);
56
- process.exit(1);
63
+ throw new CliError(`The path ${cwd} does not exist. Please try again.`, 'INVALID_CWD');
57
64
  }
58
65
  }
59
66
  async function loadConfiguration(cwd) {
60
67
  const config = await getConfig(cwd);
61
68
  if (!config) {
62
- logger.error('Configuration not found. Please run `ngzard init` first.');
63
- process.exit(1);
69
+ throw new CliError('Configuration not found. Please run `ngzard init` first.', 'CONFIG_NOT_FOUND');
64
70
  }
65
71
  return config;
66
72
  }
67
73
  async function validateProject(cwd) {
68
74
  const projectInfo = await getProjectInfo(cwd);
69
75
  if (projectInfo.framework !== 'angular') {
70
- logger.error('This project does not appear to be an Angular project.');
71
- process.exit(1);
76
+ throw new CliError('This project does not appear to be an Angular project.', 'NOT_ANGULAR');
72
77
  }
73
78
  return projectInfo;
74
79
  }
75
- async function confirmInstallation(componentsCount, dependenciesCount) {
80
+ async function confirmInstallation(componentsCount, depsCount) {
76
81
  const { proceed } = await prompts({
77
82
  type: 'confirm',
78
83
  name: 'proceed',
79
- message: `Ready to install ${componentsCount} component(s) and ${dependenciesCount} dependencies. Proceed?`,
84
+ message: `Ready to install ${componentsCount} component(s) and ${depsCount} dependencies. Proceed?`,
80
85
  initial: true,
81
86
  });
82
87
  return proceed;
83
88
  }
84
- async function installDependencies(dependenciesToInstall, cwd, packageManager) {
85
- if (dependenciesToInstall.size === 0)
89
+ const ANGULAR_VERSION_PACKAGES = ['embla-carousel-angular'];
90
+ function resolveCompatibleVersions(dependencies, angularVersion) {
91
+ const angularMajor = angularVersion ? parseInt(angularVersion.split('.')[0], 10) : null;
92
+ return Array.from(dependencies).map(dep => {
93
+ if (angularMajor && ANGULAR_VERSION_PACKAGES.includes(dep)) {
94
+ return `${dep}@^${angularMajor}.0.0`;
95
+ }
96
+ return dep;
97
+ });
98
+ }
99
+ async function installDependencies(packages, cwd, packageManager) {
100
+ if (packages.length === 0)
86
101
  return;
87
102
  const depsSpinner = spinner('Installing dependencies...').start();
88
- await installPackages(Array.from(dependenciesToInstall), cwd, packageManager, false);
103
+ try {
104
+ await installPackages(packages, cwd, packageManager, false);
105
+ }
106
+ catch {
107
+ depsSpinner.text = 'Retrying with --legacy-peer-deps...';
108
+ await installPackages(packages, cwd, packageManager, false, true);
109
+ }
89
110
  depsSpinner.succeed('Dependencies installed');
90
111
  }
91
112
  async function installComponents(componentsToInstall, cwd, resolvedConfig, options) {
@@ -101,6 +122,7 @@ async function installComponents(componentsToInstall, cwd, resolvedConfig, optio
101
122
  }
102
123
  catch (error) {
103
124
  failed.push(component.name);
125
+ logger.debug(`Failed to install ${component.name}: ${error instanceof Error ? error.message : error}`);
104
126
  }
105
127
  }
106
128
  if (failed.length > 0) {
@@ -131,7 +153,7 @@ async function setupDarkMode(cwd, resolvedConfig) {
131
153
  }
132
154
  catch (error) {
133
155
  darkModeSpinner.fail('Failed to configure dark mode');
134
- logger.error(error);
156
+ logger.debug(`Dark mode error: ${error instanceof Error ? error.message : error}`);
135
157
  }
136
158
  }
137
159
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAsB,MAAM,0CAA0C,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE;KAC7B,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KAC7D,MAAM,CAAC,iBAAiB,EAAE,2DAA2D,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACrG,MAAM,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,mCAAmC,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE7D,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9D,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,MAAM,mBAAmB,CAC9E,kBAAkB,EAClB,cAAc,EACd,GAAG,EACH,OAAO,CACR,CAAC;IACF,UAAU,CAAC,IAAI,EAAE,CAAC;IAElB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,yBAAyB,CAAC,qBAAqB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAElG,IAAI,WAAW,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7F,MAAM,CAAC,IAAI,CACT,mDAAmD,WAAW,CAAC,iBAAiB,qDAAqD,CACtI,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACjG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAE3E,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACvF,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,SAAS,wBAAwB,CAAC,GAAW;IAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,YAAY,GAAG,oCAAoC,EAAE,aAAa,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,0DAA0D,EAAE,kBAAkB,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,QAAQ,CAAC,wDAAwD,EAAE,aAAa,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,eAAuB,EAAE,SAAiB;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;QAChC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,oBAAoB,eAAe,qBAAqB,SAAS,yBAAyB;QACnG,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,wBAAwB,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAE5D,SAAS,yBAAyB,CAAC,YAAyB,EAAE,cAA6B;IACzF,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExF,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxC,IAAI,YAAY,IAAI,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO,GAAG,GAAG,KAAK,YAAY,MAAM,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAkB,EAClB,GAAW,EACX,cAA+C;IAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,WAAW,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,CAAC,IAAI,GAAG,qCAAqC,CAAC;QACzD,MAAM,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,mBAAoC,EACpC,GAAW,EACX,cAAmB,EACnB,OAA0B;IAE1B,MAAM,cAAc,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IACnE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,GAAG,cAAc,SAAS,CAAC,IAAI,KAAK,CAAC;YAExD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAE7E,MAAM,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAClE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,qBAAqB,SAAS,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,MAAM,aAAa,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,cAAmB;IAC3D,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAE5D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,iBAAiB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ;QAC1D,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,6BAA6B,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACzD,eAAe,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,IAAI,SA2Cb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,IAAI,SA2Cb,CAAC"}
@@ -4,6 +4,7 @@ import { installDependencies } from '../../commands/init/dependencies.js';
4
4
  import { applyThemeToStyles, createPostCssConfig } from '../../commands/init/tailwind-setup.js';
5
5
  import { updateTsConfig } from '../../commands/init/tsconfig-updater.js';
6
6
  import { resolveConfigPaths } from '../../utils/config.js';
7
+ import { CliError } from '../../utils/errors.js';
7
8
  import { getProjectInfo } from '../../utils/get-project-info.js';
8
9
  import { logger, spinner } from '../../utils/logger.js';
9
10
  import { detectPackageManager } from '../../utils/package-manager.js';
@@ -49,15 +50,12 @@ export const init = new Command()
49
50
  });
50
51
  function validateWorkingDirectory(cwd) {
51
52
  if (!existsSync(cwd)) {
52
- logger.error(`The path ${cwd} does not exist. Please try again.`);
53
- process.exit(1);
53
+ throw new CliError(`The path ${cwd} does not exist. Please try again.`, 'INVALID_CWD');
54
54
  }
55
55
  }
56
56
  function validateAngularProject(projectInfo) {
57
57
  if (projectInfo.framework !== 'angular') {
58
- logger.error('This project does not appear to be an Angular project.');
59
- logger.error('Please run this command in an Angular project.');
60
- process.exit(1);
58
+ throw new CliError('This project does not appear to be an Angular project.', 'NOT_ANGULAR');
61
59
  }
62
60
  }
63
61
  async function confirmReinitialization() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
package/index.js CHANGED
@@ -2,14 +2,38 @@
2
2
  import { add } from './commands/add/index.js';
3
3
  import { init } from './commands/init/index.js';
4
4
  import { APP_VERSION } from './constants/app.constants.js';
5
+ import { CliError } from './utils/errors.js';
6
+ import { enableDebug, isDebugEnabled, logger } from './utils/logger.js';
5
7
  import { Command } from 'commander';
6
8
  async function main() {
7
9
  const program = new Command()
8
10
  .name('ngzard')
9
11
  .description('add beautiful Angular components to your apps')
10
- .version(APP_VERSION, '-v, --version', 'display the version number');
12
+ .version(APP_VERSION, '-v, --version', 'display the version number')
13
+ .option('--debug', 'enable debug logging')
14
+ .hook('preAction', (_thisCommand, actionCommand) => {
15
+ const opts = actionCommand.optsWithGlobals?.() ?? actionCommand.opts?.();
16
+ if (opts?.debug || process.env['NGZARD_DEBUG']) {
17
+ enableDebug();
18
+ }
19
+ });
11
20
  program.addCommand(init).addCommand(add);
12
21
  program.parse();
13
22
  }
14
- main();
23
+ main().catch(error => {
24
+ if (error instanceof CliError) {
25
+ logger.error(error.message);
26
+ if (isDebugEnabled()) {
27
+ console.error(error.stack);
28
+ }
29
+ }
30
+ else {
31
+ logger.error('An unexpected error occurred.');
32
+ logger.error(error instanceof Error ? error.message : String(error));
33
+ if (isDebugEnabled()) {
34
+ console.error(error);
35
+ }
36
+ }
37
+ process.exit(1);
38
+ });
15
39
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,+CAA+C,CAAC;SAC5D,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;IAEvE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzC,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,+CAA+C,CAAC;SAC5D,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,4BAA4B,CAAC;SACnE,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,aAAa,CAAC,eAAe,EAAE,EAAE,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QACzE,IAAI,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzC,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "zard-cli",
3
- "version": "1.0.0-beta.53",
3
+ "version": "1.0.0-beta.55",
4
4
  "description": "An alternative to shadcn/ui for angular",
5
5
  "type": "module",
6
6
  "main": "index.js",
7
7
  "bin": {
8
- "zard-cli": "./dist/index.js"
8
+ "zard-cli": "./index.js"
9
9
  },
10
10
  "keywords": [
11
11
  "ngzard",
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBA0BhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,MAe5B,CAAC;AAEF,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcnE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;GAcnE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBA0BhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,MAe5B,CAAC;AAEF,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBnE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;GAcnE"}
package/utils/config.js CHANGED
@@ -1,4 +1,4 @@
1
- import { logger } from '../utils/logger.js';
1
+ import { ConfigError } from '../utils/errors.js';
2
2
  import { access, readFile } from 'node:fs/promises';
3
3
  import * as path from 'node:path';
4
4
  import { z } from 'zod';
@@ -65,11 +65,17 @@ export async function getConfig(cwd) {
65
65
  }
66
66
  try {
67
67
  const configJson = await readJson(configPath);
68
- return configSchema.parse(configJson);
68
+ const config = configSchema.parse(configJson);
69
+ if (config.registryUrl) {
70
+ const { validateRegistryUrl } = await import('../utils/registry.js');
71
+ validateRegistryUrl(config.registryUrl);
72
+ }
73
+ return config;
69
74
  }
70
75
  catch (error) {
71
- logger.error('Invalid configuration file');
72
- throw error;
76
+ if (error instanceof ConfigError)
77
+ throw error;
78
+ throw new ConfigError('Invalid configuration file: components.json');
73
79
  }
74
80
  }
75
81
  export function resolveAliasToPath(alias, baseUrl) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class CliError extends Error {
2
+ readonly code: string;
3
+ constructor(message: string, code: string);
4
+ }
5
+ export declare class NetworkError extends CliError {
6
+ readonly url: string;
7
+ constructor(message: string, url: string);
8
+ }
9
+ export declare class ConfigError extends CliError {
10
+ constructor(message: string);
11
+ }
12
+ export declare class InstallError extends CliError {
13
+ readonly component: string;
14
+ constructor(message: string, component: string);
15
+ }
16
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;aAGf,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B;AAED,qBAAa,YAAa,SAAQ,QAAQ;aAGtB,GAAG,EAAE,MAAM;gBAD3B,OAAO,EAAE,MAAM,EACC,GAAG,EAAE,MAAM;CAK9B;AAED,qBAAa,WAAY,SAAQ,QAAQ;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,YAAa,SAAQ,QAAQ;aAGtB,SAAS,EAAE,MAAM;gBADjC,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM;CAKpC"}
@@ -0,0 +1,31 @@
1
+ export class CliError extends Error {
2
+ code;
3
+ constructor(message, code) {
4
+ super(message);
5
+ this.code = code;
6
+ this.name = 'CliError';
7
+ }
8
+ }
9
+ export class NetworkError extends CliError {
10
+ url;
11
+ constructor(message, url) {
12
+ super(message, 'NETWORK_ERROR');
13
+ this.url = url;
14
+ this.name = 'NetworkError';
15
+ }
16
+ }
17
+ export class ConfigError extends CliError {
18
+ constructor(message) {
19
+ super(message, 'CONFIG_ERROR');
20
+ this.name = 'ConfigError';
21
+ }
22
+ }
23
+ export class InstallError extends CliError {
24
+ component;
25
+ constructor(message, component) {
26
+ super(message, 'INSTALL_ERROR');
27
+ this.component = component;
28
+ this.name = 'InstallError';
29
+ }
30
+ }
31
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAGtB;IAFlB,YACE,OAAe,EACC,GAAW;QAE3B,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAFhB,QAAG,GAAH,GAAG,CAAQ;QAG3B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAGtB;IAFlB,YACE,OAAe,EACC,SAAiB;QAEjC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAFhB,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF"}
@@ -4,6 +4,7 @@ export type ProjectInfo = {
4
4
  hasTailwind: boolean;
5
5
  hasNx: boolean;
6
6
  angularVersion: string | null;
7
+ angularVersionRaw: string | null;
7
8
  };
8
9
  export declare function getProjectInfo(cwd: string): Promise<ProjectInfo>;
9
10
  //# sourceMappingURL=get-project-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-project-info.d.ts","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwBtE"}
1
+ {"version":3,"file":"get-project-info.d.ts","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA0BtE"}
@@ -31,13 +31,15 @@ export async function getProjectInfo(cwd) {
31
31
  const hasTypeScript = !!deps['typescript'];
32
32
  const hasTailwind = !!deps['tailwindcss'];
33
33
  const hasNx = !!deps['nx'] || !!deps['@nx/workspace'];
34
- const angularVersion = deps['@angular/core']?.replace(/[^0-9.]/g, '') || null;
34
+ const angularVersionRaw = deps['@angular/core'] || null;
35
+ const angularVersion = angularVersionRaw?.replace(/[^0-9.]/g, '') || null;
35
36
  return {
36
37
  framework: hasAngular ? 'angular' : 'unknown',
37
38
  hasTypeScript,
38
39
  hasTailwind,
39
40
  hasNx,
40
41
  angularVersion,
42
+ angularVersionRaw,
41
43
  };
42
44
  }
43
45
  //# sourceMappingURL=get-project-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-project-info.js","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAUH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IAE7E,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEtD,MAAM,cAAc,GAAI,IAAI,CAAC,eAAe,CAAY,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IAE1F,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC7C,aAAa;QACb,WAAW;QACX,KAAK;QACL,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-project-info.js","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAWH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IAE7E,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEtD,MAAM,iBAAiB,GAAI,IAAI,CAAC,eAAe,CAAY,IAAI,IAAI,CAAC;IACpE,MAAM,cAAc,GAAG,iBAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IAE1E,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC7C,aAAa;QACb,WAAW;QACX,KAAK;QACL,cAAc;QACd,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface FetchOptions {
2
+ timeout?: number;
3
+ retries?: number;
4
+ backoffBase?: number;
5
+ headers?: Record<string, string>;
6
+ }
7
+ export declare function fetchJson<T>(url: string, options?: FetchOptions): Promise<T>;
8
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAUD,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CA6DlF"}
@@ -0,0 +1,68 @@
1
+ import { NetworkError } from '../utils/errors.js';
2
+ import { logger } from '../utils/logger.js';
3
+ const DEFAULT_TIMEOUT = 30_000;
4
+ const DEFAULT_RETRIES = 3;
5
+ const DEFAULT_BACKOFF_BASE = 1_000;
6
+ function sleep(ms) {
7
+ return new Promise(resolve => setTimeout(resolve, ms));
8
+ }
9
+ export async function fetchJson(url, options) {
10
+ const { timeout = DEFAULT_TIMEOUT, retries = DEFAULT_RETRIES, backoffBase = DEFAULT_BACKOFF_BASE } = options ?? {};
11
+ const headers = {
12
+ 'User-Agent': 'ngzard-cli',
13
+ Accept: 'application/json',
14
+ ...options?.headers,
15
+ };
16
+ for (let attempt = 1; attempt <= retries; attempt++) {
17
+ try {
18
+ const response = await fetch(url, {
19
+ signal: AbortSignal.timeout(timeout),
20
+ headers,
21
+ });
22
+ if (response.status === 429) {
23
+ const retryAfter = parseInt(response.headers.get('Retry-After') ?? '5', 10);
24
+ logger.debug(`Rate limited by ${url}, retrying in ${retryAfter}s...`);
25
+ await sleep(retryAfter * 1000);
26
+ continue;
27
+ }
28
+ if (!response.ok) {
29
+ throw new NetworkError(`HTTP ${response.status}: ${response.statusText}`, url);
30
+ }
31
+ const text = await response.text();
32
+ if (!text || text.includes('<!DOCTYPE') || text.includes('<html')) {
33
+ throw new NetworkError('Received HTML instead of JSON from registry', url);
34
+ }
35
+ try {
36
+ return JSON.parse(text);
37
+ }
38
+ catch {
39
+ throw new NetworkError('Invalid JSON response from registry', url);
40
+ }
41
+ }
42
+ catch (error) {
43
+ if (error instanceof NetworkError) {
44
+ if (attempt === retries)
45
+ throw error;
46
+ }
47
+ else if (error instanceof DOMException && error.name === 'TimeoutError') {
48
+ if (attempt === retries) {
49
+ throw new NetworkError(`Request timed out after ${timeout}ms`, url);
50
+ }
51
+ }
52
+ else if (error instanceof TypeError) {
53
+ // fetch throws TypeError for DNS failures, connection refused, etc.
54
+ if (attempt === retries) {
55
+ throw new NetworkError(`Connection failed: ${error.message}`, url);
56
+ }
57
+ }
58
+ else {
59
+ throw error;
60
+ }
61
+ const delay = backoffBase * Math.pow(2, attempt - 1);
62
+ logger.debug(`Attempt ${attempt}/${retries} failed for ${url}, retrying in ${delay}ms...`);
63
+ await sleep(delay);
64
+ }
65
+ }
66
+ throw new NetworkError(`Failed after ${retries} attempts`, url);
67
+ }
68
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
package/utils/logger.d.ts CHANGED
@@ -1,8 +1,11 @@
1
+ export declare function enableDebug(): void;
2
+ export declare function isDebugEnabled(): boolean;
1
3
  export declare const logger: {
2
4
  error(...args: unknown[]): void;
3
5
  warn(...args: unknown[]): void;
4
6
  info(...args: unknown[]): void;
5
7
  success(...args: unknown[]): void;
8
+ debug(...args: unknown[]): void;
6
9
  break(): void;
7
10
  };
8
11
  export declare function spinner(text: string): import("ora").Ora;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;mBACF,OAAO,EAAE;kBAGV,OAAO,EAAE;kBAGT,OAAO,EAAE;qBAGN,OAAO,EAAE;;CAM3B,CAAC;AAEF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,qBAMnC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,eAAO,MAAM,MAAM;mBACF,OAAO,EAAE;kBAGV,OAAO,EAAE;kBAGT,OAAO,EAAE;qBAGN,OAAO,EAAE;mBAGX,OAAO,EAAE;;CAQzB,CAAC;AAEF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,qBAMnC"}
package/utils/logger.js CHANGED
@@ -1,5 +1,12 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
+ let debugEnabled = false;
4
+ export function enableDebug() {
5
+ debugEnabled = true;
6
+ }
7
+ export function isDebugEnabled() {
8
+ return debugEnabled;
9
+ }
3
10
  export const logger = {
4
11
  error(...args) {
5
12
  console.log(chalk.red(...args));
@@ -13,6 +20,11 @@ export const logger = {
13
20
  success(...args) {
14
21
  console.log(chalk.green(...args));
15
22
  },
23
+ debug(...args) {
24
+ if (debugEnabled) {
25
+ console.log(chalk.gray('[debug]', ...args));
26
+ }
27
+ },
16
28
  break() {
17
29
  console.log('');
18
30
  },
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAG,IAAe;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,KAAK;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,CAAC;QACT,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,MAAM,UAAU,WAAW;IACzB,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAG,IAAe;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,KAAK;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,CAAC;QACT,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,7 @@
1
- export declare function detectPackageManager(): Promise<'npm' | 'yarn' | 'pnpm' | 'bun'>;
1
+ type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';
2
+ export declare function detectPackageManager(): Promise<PackageManager>;
2
3
  export declare function getPackageManager(cwd?: string): Promise<'npm' | 'yarn' | 'pnpm' | 'bun'>;
3
4
  export declare function getInstallCommand(packageManager: string, isDev?: boolean): Promise<string[]>;
4
5
  export declare function installPackages(packages: string[], cwd: string, packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun', isDev?: boolean, legacyPeerDeps?: boolean): Promise<void>;
6
+ export {};
5
7
  //# sourceMappingURL=package-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAIA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAgBrF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAG7G;AAED,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhG;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,EAAE,KAAK,UAAQ,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5K"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAItD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAkBpE;AAED,wBAAsB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAG7G;AAED,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhG;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,EAC/C,KAAK,UAAQ,EACb,cAAc,UAAQ,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -1,22 +1,25 @@
1
1
  import { detect } from '@antfu/ni';
2
2
  import { getConfig } from '../utils/config.js';
3
+ let cachedPackageManager = null;
3
4
  export async function detectPackageManager() {
5
+ if (cachedPackageManager)
6
+ return cachedPackageManager;
4
7
  const userAgent = process.env.npm_config_user_agent || '';
5
8
  if (userAgent.includes('bun'))
6
- return 'bun';
9
+ return (cachedPackageManager = 'bun');
7
10
  if (userAgent.includes('pnpm'))
8
- return 'pnpm';
11
+ return (cachedPackageManager = 'pnpm');
9
12
  if (userAgent.includes('yarn'))
10
- return 'yarn';
13
+ return (cachedPackageManager = 'yarn');
11
14
  if (userAgent.includes('npm'))
12
- return 'npm';
15
+ return (cachedPackageManager = 'npm');
13
16
  const agent = await detect({ programmatic: true });
14
17
  if (agent === 'yarn@berry')
15
- return 'yarn';
18
+ return (cachedPackageManager = 'yarn');
16
19
  if (agent && ['npm', 'yarn', 'pnpm', 'bun'].includes(agent)) {
17
- return agent;
20
+ return (cachedPackageManager = agent);
18
21
  }
19
- return 'npm';
22
+ return (cachedPackageManager = 'npm');
20
23
  }
21
24
  export async function getPackageManager(cwd = process.cwd()) {
22
25
  const config = await getConfig(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAE1D,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnD,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAwC,CAAC;IAClD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,MAAM,EAAE,cAAc,IAAI,KAAK,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,cAAsB,EAAE,KAAK,GAAG,KAAK;IAC3E,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,KAAK,CAAC;QACX;YACE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,GAAW,EAAE,cAA+C,EAAE,KAAK,GAAG,KAAK,EAAE,cAAc,GAAG,KAAK;IAC3J,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAElE,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;IAE1C,IAAI,cAAc,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,9 @@ export interface RegistryIndex {
28
28
  }>;
29
29
  }
30
30
  export declare function getRegistryUrl(config?: Config): string;
31
+ export declare function validateRegistryUrl(url: string): void;
31
32
  export declare function fetchRegistryIndex(registryUrl?: string): Promise<RegistryIndex>;
33
+ export declare function invalidateRegistryCache(): void;
32
34
  export declare function fetchComponentFromRegistry(componentName: string, registryUrl?: string): Promise<RegistryItem>;
33
35
  export declare function getAvailableComponents(registryUrl?: string): Promise<string[]>;
34
36
  export declare function transformContent(content: string, config: Config): string;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,eAAO,MAAM,oBAAoB,QAE0D,CAAC;AAE5F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AA4BD,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAIrF;AAED,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAInH;AAED,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyCxE;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAYvB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,eAAO,MAAM,oBAAoB,QAE0D,CAAC;AAE5F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAarD;AAKD,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAYrF;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAInH;AAED,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyCxE;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAgBvB"}
package/utils/registry.js CHANGED
@@ -1,38 +1,40 @@
1
1
  import { DEFAULT_REGISTRY_URL as BUILD_REGISTRY_URL } from '../config/registry-config.js';
2
- import { execa } from 'execa';
2
+ import { ConfigError } from '../utils/errors.js';
3
+ import { fetchJson } from '../utils/http-client.js';
3
4
  export const DEFAULT_REGISTRY_URL = process.env['ZARD_REGISTRY_URL'] ||
4
5
  (BUILD_REGISTRY_URL !== '__REGISTRY_URL__' ? BUILD_REGISTRY_URL : 'https://zardui.com/r');
5
6
  export function getRegistryUrl(config) {
6
7
  return config?.registryUrl || DEFAULT_REGISTRY_URL;
7
8
  }
8
- async function fetchJson(url) {
9
+ export function validateRegistryUrl(url) {
9
10
  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}`);
11
+ const parsed = new URL(url);
12
+ const isHttps = parsed.protocol === 'https:';
13
+ const isLocalhost = parsed.hostname === 'localhost' || parsed.hostname === '127.0.0.1';
14
+ if (!isHttps && !isLocalhost) {
15
+ throw new ConfigError('Registry URL must use HTTPS (or localhost for development)');
22
16
  }
23
- return JSON.parse(stdout);
24
17
  }
25
18
  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}`);
19
+ if (error instanceof ConfigError)
20
+ throw error;
21
+ throw new ConfigError(`Invalid registry URL: ${url}`);
30
22
  }
31
23
  }
24
+ const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
25
+ let registryIndexCache = null;
32
26
  export async function fetchRegistryIndex(registryUrl) {
33
27
  const baseUrl = registryUrl || DEFAULT_REGISTRY_URL;
28
+ if (registryIndexCache && Date.now() - registryIndexCache.timestamp < CACHE_TTL) {
29
+ return registryIndexCache.data;
30
+ }
34
31
  const url = `${baseUrl}/registry.json`;
35
- return fetchJson(url);
32
+ const data = await fetchJson(url);
33
+ registryIndexCache = { data, timestamp: Date.now() };
34
+ return data;
35
+ }
36
+ export function invalidateRegistryCache() {
37
+ registryIndexCache = null;
36
38
  }
37
39
  export async function fetchComponentFromRegistry(componentName, registryUrl) {
38
40
  const baseUrl = registryUrl || DEFAULT_REGISTRY_URL;
@@ -67,6 +69,9 @@ export function transformContent(content, config) {
67
69
  }
68
70
  export async function fetchComponent(componentName, config, registryUrl) {
69
71
  const item = await fetchComponentFromRegistry(componentName, registryUrl);
72
+ if (!item.files || !Array.isArray(item.files)) {
73
+ throw new ConfigError(`Component "${componentName}" has no files in the registry`);
74
+ }
70
75
  const transformedFiles = item.files.map(file => ({
71
76
  name: file.name,
72
77
  content: transformContent(file.content, config),
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Config } from '../utils/config.js';
2
- export declare function fetchComponentFromGithub(componentName: string, fileName: string, config: Config): Promise<string>;
3
- //# sourceMappingURL=fetch-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-component.d.ts","sourceRoot":"","sources":["../../src/utils/fetch-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA6EnD,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -1,75 +0,0 @@
1
- import { transformContent } from '../utils/registry.js';
2
- import { execa } from 'execa';
3
- import { readFileSync } from 'node:fs';
4
- import { join, dirname } from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = dirname(__filename);
8
- const GITHUB_API = 'https://api.github.com/repos/zard-ui/zardui/contents';
9
- function getCliVersion() {
10
- try {
11
- const packageJsonPath = join(__dirname, '../package.json');
12
- const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
13
- return packageJson.version;
14
- }
15
- catch (error) {
16
- console.warn('Failed to read CLI version from package.json, falling back to master branch');
17
- return 'master';
18
- }
19
- }
20
- /**
21
- * Get the GitHub ref (tag or branch) to fetch components from
22
- * Uses the CLI version tag (e.g., v1.2.3) to ensure component compatibility
23
- */
24
- function getGithubRef() {
25
- const version = getCliVersion();
26
- if (version === 'master' || version.includes('dev') || version === '0.0.0') {
27
- return 'master';
28
- }
29
- return `v${version}`;
30
- }
31
- const GITHUB_REF = getGithubRef();
32
- const GITHUB_RAW = `https://raw.githubusercontent.com/zard-ui/zardui/${GITHUB_REF}`;
33
- async function fetchFromGitHubAPI(filePath) {
34
- try {
35
- const apiUrl = `${GITHUB_API}/${filePath}?ref=${GITHUB_REF}`;
36
- const { stdout } = await execa('curl', [
37
- '-s',
38
- '-H',
39
- 'Accept: application/vnd.github.v3+json',
40
- '-H',
41
- 'User-Agent: zard-cli',
42
- apiUrl,
43
- ]);
44
- const response = JSON.parse(stdout);
45
- if (response.message) {
46
- throw new Error(response.message);
47
- }
48
- if (response.content && response.encoding === 'base64') {
49
- return Buffer.from(response.content, 'base64').toString('utf8');
50
- }
51
- throw new Error('Invalid response from GitHub API');
52
- }
53
- catch (error) {
54
- await new Promise(resolve => setTimeout(resolve, 3000));
55
- const rawUrl = `${GITHUB_RAW}/${filePath}`;
56
- const { stdout } = await execa('curl', ['-s', '-H', 'User-Agent: zard-cli', rawUrl]);
57
- if (!stdout || stdout.includes('429: Too Many Requests') || stdout.includes('404: Not Found')) {
58
- throw new Error(`Failed to fetch from both API and raw URL: ${filePath}`);
59
- }
60
- return stdout;
61
- }
62
- }
63
- export async function fetchComponentFromGithub(componentName, fileName, config) {
64
- try {
65
- const filePath = `libs/zard/src/lib/components/${componentName}/${fileName}`;
66
- const randomDelay = Math.random() * 2000 + 1000; // 1-3 seconds
67
- await new Promise(resolve => setTimeout(resolve, randomDelay));
68
- const content = await fetchFromGitHubAPI(filePath);
69
- return transformContent(content, config);
70
- }
71
- catch (error) {
72
- throw new Error(`Failed to fetch component ${componentName}/${fileName}: ${error}`);
73
- }
74
- }
75
- //# sourceMappingURL=fetch-component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-component.js","sourceRoot":"","sources":["../../src/utils/fetch-component.ts"],"names":[],"mappings":"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"}