@modularcore/registry-client 0.3.0 → 0.4.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.
@@ -1,6 +1,11 @@
1
- import type { RegistryEntry, RegistryIndexEntry } from '@modularcore/registry';
1
+ import type { FrameworkDefinition, RegistryEntry, RegistryIndexEntry } from '@modularcore/registry';
2
2
  export interface RegistryClient {
3
3
  getIndex(): Promise<RegistryIndexEntry[]>;
4
+ /**
5
+ * Catálogo de frameworks del registry: los de casa más los que aporte cualquier componente.
6
+ * Es lo que permite a `init` ofrecer y detectar un framework que ningún código nuestro conoce.
7
+ */
8
+ getFrameworkCatalog(): Promise<Record<string, FrameworkDefinition>>;
4
9
  getDescriptor(name: string): Promise<RegistryEntry>;
5
10
  getTarball(name: string): Promise<Buffer>;
6
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../src/registry-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAuC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CA0CxE"}
1
+ {"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../src/registry-client.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA8CpG,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1C;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACpE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAqDxE"}
@@ -1,4 +1,4 @@
1
- import { registryEntrySchema, registryIndexEntrySchema } from '@modularcore/registry';
1
+ import { frameworkCatalogSchema, registryEntrySchema, registryIndexEntrySchema, } from '@modularcore/registry';
2
2
  import { z } from 'zod';
3
3
  import { RegistryClientError } from './errors.js';
4
4
  const registryIndexSchema = z.array(registryIndexEntrySchema);
@@ -7,10 +7,16 @@ function joinUrl(base, path) {
7
7
  const trimmedBase = base.endsWith('/') ? base.slice(0, -1) : base;
8
8
  return `${trimmedBase}/${path}`;
9
9
  }
10
+ /**
11
+ * Un host que descarta paquetes en vez de rechazar la conexión —una VPN, un cortafuegos— deja el
12
+ * `fetch` colgado para siempre. Con esto, `init` cae a los frameworks de casa en vez de quedarse
13
+ * esperando sin forma de saltárselo.
14
+ */
15
+ const REQUEST_TIMEOUT_MS = 10_000;
10
16
  async function fetchJson(url, notFoundLabel) {
11
17
  let response;
12
18
  try {
13
- response = await fetch(url);
19
+ response = await fetch(url, { signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS) });
14
20
  }
15
21
  catch (error) {
16
22
  throw new RegistryClientError(`No se pudo conectar con el registry en "${url}": ${error.message}`);
@@ -40,6 +46,15 @@ export function createRegistryClient(registryUrl) {
40
46
  }
41
47
  return parsed.data;
42
48
  },
49
+ async getFrameworkCatalog() {
50
+ const url = joinUrl(registryUrl, 'frameworks.json');
51
+ const json = await fetchJson(url, 'Catálogo de frameworks no encontrado');
52
+ const parsed = frameworkCatalogSchema.safeParse(json);
53
+ if (!parsed.success) {
54
+ throw new RegistryClientError(`El catálogo de frameworks en "${url}" no tiene el formato esperado: ${parsed.error.message}`);
55
+ }
56
+ return parsed.data;
57
+ },
43
58
  async getDescriptor(name) {
44
59
  const url = joinUrl(registryUrl, `${name}.json`);
45
60
  const json = await fetchJson(url, `Componente "${name}" no encontrado en el registry`);
@@ -1 +1 @@
1
- {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../src/registry-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../src/registry-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modularcore/registry-client",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,16 +17,16 @@
17
17
  "files": [
18
18
  "dist"
19
19
  ],
20
- "dependencies": {
21
- "zod": "^4.4.3",
22
- "@modularcore/registry": "0.2.0"
23
- },
24
- "devDependencies": {
25
- "@types/node": "^22.13.0"
26
- },
27
20
  "scripts": {
28
21
  "build": "tsc -p tsconfig.json",
29
22
  "typecheck": "tsc -p tsconfig.json --noEmit",
30
23
  "test": "vitest run"
24
+ },
25
+ "dependencies": {
26
+ "@modularcore/registry": "workspace:*",
27
+ "zod": "^4.4.3"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^22.13.0"
31
31
  }
32
- }
32
+ }