@modularcore/cli 0.2.0 → 0.5.0
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/dist/commands/add.d.ts +5 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +13 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/init.d.ts +12 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +34 -11
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +7 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/deps.d.ts +9 -2
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +42 -2
- package/dist/deps.js.map +1 -1
- package/dist/framework-detect.d.ts +13 -2
- package/dist/framework-detect.d.ts.map +1 -1
- package/dist/framework-detect.js +30 -12
- package/dist/framework-detect.js.map +1 -1
- package/dist/index.js +0 -0
- package/package.json +10 -10
package/dist/commands/add.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ export interface AddResult {
|
|
|
10
10
|
installedComponents: string[];
|
|
11
11
|
filesWritten: WriteResult[];
|
|
12
12
|
envKeysAdded: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Dependencias npm instaladas, con su rango. Sólo las que necesitan los ficheros que se han
|
|
15
|
+
* escrito de verdad: un proyecto React no se lleva las de las presentaciones de Svelte.
|
|
16
|
+
*/
|
|
17
|
+
npmDependenciesInstalled: string[];
|
|
13
18
|
}
|
|
14
19
|
export declare function runAdd(name: string, { cwd, client, prompts }: AddOptions): Promise<AddResult>;
|
|
15
20
|
//# sourceMappingURL=add.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,wBAAwB,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EACZ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,GACnC,OAAO,CAAC,SAAS,CAAC,CAwFpB"}
|
package/dist/commands/add.js
CHANGED
|
@@ -5,15 +5,21 @@ import { appendEnvExample, remapTarget } from '../files.js';
|
|
|
5
5
|
import { installNpmDependencies } from '../install.js';
|
|
6
6
|
import { CliError } from '../errors.js';
|
|
7
7
|
import { isTrackedWriteError, writeFilesTracked } from '@modularcore/registry-client';
|
|
8
|
+
import { frameworksKnownTo, selectFilesForFramework } from '@modularcore/registry';
|
|
8
9
|
export async function runAdd(name, { cwd, client, prompts }) {
|
|
9
10
|
const config = await readProjectConfig(cwd);
|
|
10
11
|
const packageManager = await detectPackageManager(cwd);
|
|
11
12
|
const projectPackageJson = await readPackageJson(cwd);
|
|
13
|
+
// El catálogo del registry entero, no el de cada componente: si el proyecto usa un framework
|
|
14
|
+
// que aportó OTRO componente, `frameworksKnownTo(entry)` no lo conocería y el recorte caería en
|
|
15
|
+
// su rama de «framework desconocido → escribe todo», colando los ficheros de React y Svelte en
|
|
16
|
+
// un proyecto Solid. Si el registry no lo sirve, se cae a lo que el propio componente declare.
|
|
17
|
+
const catalog = await client.getFrameworkCatalog().catch(() => undefined);
|
|
12
18
|
const entries = await resolveRegistryDependencies(client, name);
|
|
13
19
|
for (const entry of entries) {
|
|
14
20
|
assertCompatible(entry, config.framework, (peerName) => installedPeerVersion(projectPackageJson, peerName));
|
|
15
21
|
}
|
|
16
|
-
const npmDeps = collectNpmDependencies(entries);
|
|
22
|
+
const npmDeps = collectNpmDependencies(entries, config.framework, catalog);
|
|
17
23
|
if (npmDeps.length > 0) {
|
|
18
24
|
prompts.note(npmDeps.map((dep) => `${dep.name}@${dep.version}`).join('\n'), 'Se instalarán las siguientes dependencias npm (--ignore-scripts)');
|
|
19
25
|
const confirmed = await prompts.confirm(`¿Instalar ${npmDeps.length} dependencia(s) con ${packageManager} y escribir los archivos de "${name}"?`);
|
|
@@ -31,7 +37,11 @@ export async function runAdd(name, { cwd, client, prompts }) {
|
|
|
31
37
|
const filesWritten = [];
|
|
32
38
|
try {
|
|
33
39
|
for (const entry of entries) {
|
|
34
|
-
|
|
40
|
+
// Sólo los ficheros del framework de este proyecto: escribir los adaptadores de los demás
|
|
41
|
+
// dejaría módulos que importan runtimes que no están instalados.
|
|
42
|
+
// El catálogo sale del propio componente: si aporta su framework, sus ficheros tienen
|
|
43
|
+
// dueño y no se cuelan en la instalación de los demás.
|
|
44
|
+
const remappedFiles = selectFilesForFramework(entry.files, config.framework, catalog ? { ...catalog, ...frameworksKnownTo(entry) } : frameworksKnownTo(entry)).map((file) => ({
|
|
35
45
|
...file,
|
|
36
46
|
target: remapTarget(file.target, config.paths),
|
|
37
47
|
}));
|
|
@@ -61,6 +71,7 @@ export async function runAdd(name, { cwd, client, prompts }) {
|
|
|
61
71
|
installedComponents: entries.map((entry) => entry.name),
|
|
62
72
|
filesWritten,
|
|
63
73
|
envKeysAdded,
|
|
74
|
+
npmDependenciesInstalled: npmDeps.map((dep) => `${dep.name}@${dep.version}`),
|
|
64
75
|
};
|
|
65
76
|
}
|
|
66
77
|
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
+
import type { FrameworkDefinition } from '@modularcore/registry';
|
|
1
2
|
import type { ProjectConfig } from '../config.js';
|
|
2
3
|
import type { PromptAdapter } from '../prompts.js';
|
|
3
4
|
export interface InitOptions {
|
|
4
5
|
cwd: string;
|
|
5
6
|
prompts: PromptAdapter;
|
|
7
|
+
/**
|
|
8
|
+
* De dónde sale el catálogo de frameworks. Inyectable para las pruebas, que así no dependen de
|
|
9
|
+
* que haya un registry escuchando.
|
|
10
|
+
*/
|
|
11
|
+
fetchCatalog?: (registryUrl: string) => Promise<Record<string, FrameworkDefinition>>;
|
|
6
12
|
}
|
|
7
13
|
/**
|
|
8
14
|
* AD2: only auto-picks the framework when detection is unambiguous (exactly one match,
|
|
9
15
|
* cwd isn't a workspace root). Anything else — 0 matches, >1 matches, or a monorepo
|
|
10
16
|
* root — prompts explicitly instead of guessing.
|
|
17
|
+
*
|
|
18
|
+
* La URL del registry se pregunta la primera porque de ahí sale el catálogo de frameworks, y ese
|
|
19
|
+
* catálogo es el que decide qué se puede detectar y ofrecer: un componente puede aportar el suyo,
|
|
20
|
+
* así que la lista no vive en este código. Si el registry no responde se sigue con los frameworks
|
|
21
|
+
* de casa, para que `init` funcione sin red.
|
|
11
22
|
*/
|
|
12
|
-
export declare function runInit({ cwd, prompts }: InitOptions): Promise<ProjectConfig>;
|
|
23
|
+
export declare function runInit({ cwd, prompts, fetchCatalog }: InitOptions): Promise<ProjectConfig>;
|
|
13
24
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;CACtF;AAQD;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAiEjG"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,20 +1,40 @@
|
|
|
1
|
+
import { BUILTIN_FRAMEWORKS } from '@modularcore/registry';
|
|
2
|
+
import { createRegistryClient } from '@modularcore/registry-client';
|
|
1
3
|
import { detectFrameworks, detectPackageManager, isWorkspaceRoot } from '../framework-detect.js';
|
|
2
4
|
import { writeProjectConfig } from '../config.js';
|
|
3
|
-
const FRAMEWORK_OPTIONS = ['react', 'svelte', 'vue', 'angular'];
|
|
4
5
|
const DEFAULT_REGISTRY_URL = 'http://localhost:5173/registry';
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
6
|
+
const FALLBACK_PATHS = { components: 'src/components', lib: 'src/lib/modularcore' };
|
|
7
|
+
async function fetchCatalogFromRegistry(registryUrl) {
|
|
8
|
+
return createRegistryClient(registryUrl).getFrameworkCatalog();
|
|
9
|
+
}
|
|
9
10
|
/**
|
|
10
11
|
* AD2: only auto-picks the framework when detection is unambiguous (exactly one match,
|
|
11
12
|
* cwd isn't a workspace root). Anything else — 0 matches, >1 matches, or a monorepo
|
|
12
13
|
* root — prompts explicitly instead of guessing.
|
|
14
|
+
*
|
|
15
|
+
* La URL del registry se pregunta la primera porque de ahí sale el catálogo de frameworks, y ese
|
|
16
|
+
* catálogo es el que decide qué se puede detectar y ofrecer: un componente puede aportar el suyo,
|
|
17
|
+
* así que la lista no vive en este código. Si el registry no responde se sigue con los frameworks
|
|
18
|
+
* de casa, para que `init` funcione sin red.
|
|
13
19
|
*/
|
|
14
|
-
export async function runInit({ cwd, prompts }) {
|
|
20
|
+
export async function runInit({ cwd, prompts, fetchCatalog }) {
|
|
15
21
|
prompts.intro('modularcore init');
|
|
22
|
+
const registryUrl = await prompts.text('URL del registry', DEFAULT_REGISTRY_URL);
|
|
23
|
+
let catalog = BUILTIN_FRAMEWORKS;
|
|
24
|
+
try {
|
|
25
|
+
// Se fusiona sobre los de casa en lugar de reemplazarlos: un registry que sirva un catálogo
|
|
26
|
+
// vacío o incompleto dejaría el prompt sin una sola opción que elegir.
|
|
27
|
+
catalog = {
|
|
28
|
+
...BUILTIN_FRAMEWORKS,
|
|
29
|
+
...(await (fetchCatalog ?? fetchCatalogFromRegistry)(registryUrl)),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
prompts.note(`No se pudo leer el catálogo de frameworks de "${registryUrl}". Se usan los conocidos por la CLI; ` +
|
|
34
|
+
'un componente que aporte su propio framework no aparecerá en la lista.', 'Registry no disponible');
|
|
35
|
+
}
|
|
16
36
|
const [{ frameworks }, workspaceRoot, packageManager] = await Promise.all([
|
|
17
|
-
detectFrameworks(cwd),
|
|
37
|
+
detectFrameworks(cwd, catalog),
|
|
18
38
|
isWorkspaceRoot(cwd),
|
|
19
39
|
detectPackageManager(cwd),
|
|
20
40
|
]);
|
|
@@ -30,11 +50,14 @@ export async function runInit({ cwd, prompts }) {
|
|
|
30
50
|
? 'no se detectó ningún framework soportado'
|
|
31
51
|
: `se detectaron varios frameworks (${frameworks.join(', ')})`;
|
|
32
52
|
prompts.note(reason, 'Selección manual requerida');
|
|
33
|
-
framework = await prompts.select('¿Qué framework usa este proyecto?',
|
|
53
|
+
framework = await prompts.select('¿Qué framework usa este proyecto?', Object.entries(catalog).map(([value, definition]) => ({
|
|
54
|
+
value,
|
|
55
|
+
label: `${value} — ${definition.title}`,
|
|
56
|
+
})));
|
|
34
57
|
}
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const
|
|
58
|
+
const defaultPaths = catalog[framework]?.paths ?? FALLBACK_PATHS;
|
|
59
|
+
const componentsPath = await prompts.text('Ruta para componentes (paths.components)', defaultPaths.components);
|
|
60
|
+
const libPath = await prompts.text('Ruta para librería (paths.lib)', defaultPaths.lib);
|
|
38
61
|
const config = {
|
|
39
62
|
registryUrl,
|
|
40
63
|
framework,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAsDD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CAczB"}
|
package/dist/commands/update.js
CHANGED
|
@@ -4,15 +4,19 @@ import { backupExisting, decodeFileContent, diffLines, readLocalFileBuffer, rema
|
|
|
4
4
|
import { readProjectConfig, writeProjectConfig } from '../config.js';
|
|
5
5
|
import { formatDiffLines } from './diff.js';
|
|
6
6
|
import { resolveTargetPath } from '@modularcore/registry-client';
|
|
7
|
+
import { frameworksKnownTo, selectFilesForFramework } from '@modularcore/registry';
|
|
7
8
|
/**
|
|
8
9
|
* Re-injects a single component's files with per-file confirmation: shows a diff before
|
|
9
10
|
* each overwrite, backs up the pre-existing file to `.orig`, and only writes when the
|
|
10
11
|
* user confirms — never silently clobbers local edits.
|
|
11
12
|
*/
|
|
12
|
-
async function updateComponent(name, { cwd, client, prompts }, paths) {
|
|
13
|
+
async function updateComponent(name, { cwd, client, prompts }, paths, framework) {
|
|
14
|
+
const catalog = await client.getFrameworkCatalog().catch(() => undefined);
|
|
13
15
|
const entry = await client.getDescriptor(name);
|
|
14
16
|
const outcomes = [];
|
|
15
|
-
|
|
17
|
+
// Mismo recorte que en `add`: un update no debe reintroducir los adaptadores que `add` omitió.
|
|
18
|
+
const known = catalog ? { ...catalog, ...frameworksKnownTo(entry) } : frameworksKnownTo(entry);
|
|
19
|
+
for (const file of selectFilesForFramework(entry.files, framework, known)) {
|
|
16
20
|
const localPath = resolveTargetPath(cwd, remapTarget(file.target, paths));
|
|
17
21
|
const localBuffer = await readLocalFileBuffer(localPath);
|
|
18
22
|
const registryBuffer = decodeFileContent(file);
|
|
@@ -46,7 +50,7 @@ export async function runUpdate(name, options) {
|
|
|
46
50
|
}
|
|
47
51
|
const results = [];
|
|
48
52
|
for (const target of targets) {
|
|
49
|
-
const result = await updateComponent(target, options, config.paths);
|
|
53
|
+
const result = await updateComponent(target, options, config.paths, config.framework);
|
|
50
54
|
results.push(result);
|
|
51
55
|
config.installed[result.name] = result.version;
|
|
52
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAuBnF;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAiB,EACvC,KAA6B,EAC7B,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,+FAA+F;IAC/F,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/F,KAAK,MAAM,IAAI,IAAI,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,WAAW,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QAED,IAAI,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CACV,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EACzF,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,8BAA8B,EAC9E,SAAS,CACV,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,SAAS,IAAI,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAwB,EACxB,OAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACjD,CAAC;IACD,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/deps.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RegistryClient } from '@modularcore/registry-client';
|
|
2
|
-
import type { RegistryEntry } from '@modularcore/registry';
|
|
2
|
+
import type { FrameworkDefinition, RegistryEntry } from '@modularcore/registry';
|
|
3
3
|
/**
|
|
4
4
|
* AD2: rejects before any file is written if the project's framework isn't declared
|
|
5
5
|
* by the component, or if an installed peer (React/Svelte/...) doesn't satisfy the
|
|
@@ -32,5 +32,12 @@ export declare function parseNpmDependencySpec(raw: string): NpmDependencySpec;
|
|
|
32
32
|
* package manager (see commands/add.ts). This function also fails loudly on a same-name
|
|
33
33
|
* conflicting version range across entries instead of silently picking one.
|
|
34
34
|
*/
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Las dependencias que hacen falta para lo que se va a escribir de verdad.
|
|
37
|
+
*
|
|
38
|
+
* Con `framework`, se recorta igual que los ficheros: un proyecto React no debe llevarse
|
|
39
|
+
* `bits-ui`, que sólo usan las presentaciones de Svelte, y que además exige `svelte` como peer.
|
|
40
|
+
* Sin `framework` se toman todas, para quien llame a esto fuera del flujo de instalación.
|
|
41
|
+
*/
|
|
42
|
+
export declare function collectNpmDependencies(entries: RegistryEntry[], framework?: string, catalog?: Record<string, FrameworkDefinition>): NpmDependencySpec[];
|
|
36
43
|
//# sourceMappingURL=deps.d.ts.map
|
package/dist/deps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAOnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAiBhF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC7D,IAAI,CA8BN;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,EAAE,CAAC,CAuB1B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAerE;AAED;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EAAE,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,iBAAiB,EAAE,CAqCrB"}
|
package/dist/deps.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
import { CompatibilityError, DependencyCycleError } from './errors.js';
|
|
3
|
+
import { dependenciesForFiles, frameworksKnownTo, selectFilesForFramework, } from '@modularcore/registry';
|
|
4
|
+
/**
|
|
5
|
+
* Qué framework reclama cada peer, según el catálogo del propio componente.
|
|
6
|
+
*
|
|
7
|
+
* Estaba cableado a cuatro entradas, así que el peer de un framework aportado no casaba con
|
|
8
|
+
* ninguna: `add` lo exigía en todos los proyectos y el componente quedaba ininstalable fuera del
|
|
9
|
+
* suyo. La definición ya trae ese dato en `peer`.
|
|
10
|
+
*/
|
|
11
|
+
function frameworkPeers(entry) {
|
|
12
|
+
const peers = new Map();
|
|
13
|
+
for (const [name, definition] of Object.entries(frameworksKnownTo(entry))) {
|
|
14
|
+
if (definition.peer)
|
|
15
|
+
peers.set(definition.peer, name);
|
|
16
|
+
}
|
|
17
|
+
return peers;
|
|
18
|
+
}
|
|
3
19
|
/**
|
|
4
20
|
* AD2: rejects before any file is written if the project's framework isn't declared
|
|
5
21
|
* by the component, or if an installed peer (React/Svelte/...) doesn't satisfy the
|
|
@@ -10,7 +26,14 @@ export function assertCompatible(entry, projectFramework, installedPeerVersion)
|
|
|
10
26
|
throw new CompatibilityError(`"${entry.name}" no soporta el framework de este proyecto ("${projectFramework}"). ` +
|
|
11
27
|
`Frameworks soportados: ${entry.frameworks.join(', ')}.`);
|
|
12
28
|
}
|
|
29
|
+
const peerOwners = frameworkPeers(entry);
|
|
13
30
|
for (const [peerName, range] of Object.entries(entry.peerDependencies)) {
|
|
31
|
+
// A descriptor can ship thin adapters for multiple frameworks. Only the framework peer
|
|
32
|
+
// selected by this project is relevant; requiring every adapter runtime would make, for
|
|
33
|
+
// example, `modularcore add` demand Angular from a Vue app.
|
|
34
|
+
const frameworkForPeer = peerOwners.get(peerName);
|
|
35
|
+
if (frameworkForPeer && frameworkForPeer !== projectFramework)
|
|
36
|
+
continue;
|
|
14
37
|
const installedRange = installedPeerVersion(peerName);
|
|
15
38
|
if (!installedRange) {
|
|
16
39
|
throw new CompatibilityError(`"${entry.name}" requiere el peer dependency "${peerName}" (${range}), ` +
|
|
@@ -75,9 +98,21 @@ export function parseNpmDependencySpec(raw) {
|
|
|
75
98
|
* package manager (see commands/add.ts). This function also fails loudly on a same-name
|
|
76
99
|
* conflicting version range across entries instead of silently picking one.
|
|
77
100
|
*/
|
|
78
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Las dependencias que hacen falta para lo que se va a escribir de verdad.
|
|
103
|
+
*
|
|
104
|
+
* Con `framework`, se recorta igual que los ficheros: un proyecto React no debe llevarse
|
|
105
|
+
* `bits-ui`, que sólo usan las presentaciones de Svelte, y que además exige `svelte` como peer.
|
|
106
|
+
* Sin `framework` se toman todas, para quien llame a esto fuera del flujo de instalación.
|
|
107
|
+
*/
|
|
108
|
+
export function collectNpmDependencies(entries, framework, catalog) {
|
|
79
109
|
const byName = new Map();
|
|
110
|
+
const needed = new Set();
|
|
80
111
|
for (const entry of entries) {
|
|
112
|
+
// Todas se validan, incluso las que este proyecto no va a instalar: son el único punto donde
|
|
113
|
+
// se comprueba que la declaración tenga la forma `nombre@rango` y que dos componentes no
|
|
114
|
+
// pidan versiones distintas del mismo paquete. Filtrar antes dejaría pasar en silencio una
|
|
115
|
+
// declaración rota de otro framework, que sólo estallaría para quien sí la usa.
|
|
81
116
|
for (const raw of entry.dependencies) {
|
|
82
117
|
const spec = parseNpmDependencySpec(raw);
|
|
83
118
|
const existing = byName.get(spec.name);
|
|
@@ -87,7 +122,12 @@ export function collectNpmDependencies(entries) {
|
|
|
87
122
|
}
|
|
88
123
|
byName.set(spec.name, spec);
|
|
89
124
|
}
|
|
125
|
+
const forThisProject = framework === undefined
|
|
126
|
+
? entry.dependencies
|
|
127
|
+
: dependenciesForFiles(entry.dependencies, selectFilesForFramework(entry.files, framework, catalog ? { ...catalog, ...frameworksKnownTo(entry) } : frameworksKnownTo(entry)), entry.files);
|
|
128
|
+
for (const raw of forThisProject)
|
|
129
|
+
needed.add(parseNpmDependencySpec(raw).name);
|
|
90
130
|
}
|
|
91
|
-
return [...byName.values()];
|
|
131
|
+
return [...byName.values()].filter((spec) => needed.has(spec.name));
|
|
92
132
|
}
|
|
93
133
|
//# sourceMappingURL=deps.js.map
|
package/dist/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import type { FrameworkDefinition } from '@modularcore/registry';
|
|
2
|
+
/**
|
|
3
|
+
* El nombre de un framework. Ya no es una unión cerrada: un componente puede aportar el suyo en
|
|
4
|
+
* `frameworkDefs`, así que la CLI trabaja con lo que el catálogo del registry le diga.
|
|
5
|
+
*/
|
|
6
|
+
export type DetectedFramework = string;
|
|
2
7
|
export type PackageManager = 'pnpm' | 'yarn' | 'bun' | 'npm';
|
|
3
8
|
export interface PackageJsonShape {
|
|
4
9
|
dependencies?: Record<string, string>;
|
|
@@ -11,7 +16,13 @@ export interface FrameworkDetectionResult {
|
|
|
11
16
|
frameworks: DetectedFramework[];
|
|
12
17
|
packageJson: PackageJsonShape | undefined;
|
|
13
18
|
}
|
|
14
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Los frameworks que este proyecto declara usar, según el catálogo que se le pase.
|
|
21
|
+
*
|
|
22
|
+
* Cada definición dice cómo se reconoce un proyecto suyo (`detect`), así que un framework
|
|
23
|
+
* aportado por un componente se detecta igual que los de casa, sin nada cableado aquí.
|
|
24
|
+
*/
|
|
25
|
+
export declare function detectFrameworks(cwd: string, catalog?: Record<string, FrameworkDefinition>): Promise<FrameworkDetectionResult>;
|
|
15
26
|
/**
|
|
16
27
|
* AD2: a bare `package.json` with a `workspaces` field (npm/yarn workspaces) is a
|
|
17
28
|
* monorepo root, not a single-framework app — detection from its own deps is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-detect.d.ts","sourceRoot":"","sources":["../src/framework-detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"framework-detect.d.ts","sourceRoot":"","sources":["../src/framework-detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAOxF;AAgBD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAsB,GAChE,OAAO,CAAC,wBAAwB,CAAC,CAmBnC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnE;AASD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAU/E;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAGpB"}
|
package/dist/framework-detect.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
+
import { BUILTIN_FRAMEWORKS } from '@modularcore/registry';
|
|
1
2
|
import { readFile } from 'node:fs/promises';
|
|
2
3
|
import { join } from 'node:path';
|
|
3
|
-
const FRAMEWORK_MARKERS = {
|
|
4
|
-
react: 'react',
|
|
5
|
-
svelte: 'svelte',
|
|
6
|
-
vue: 'vue',
|
|
7
|
-
angular: '@angular/core',
|
|
8
|
-
};
|
|
9
4
|
export async function readPackageJson(cwd) {
|
|
10
5
|
try {
|
|
11
6
|
const raw = await readFile(join(cwd, 'package.json'), 'utf8');
|
|
@@ -15,16 +10,39 @@ export async function readPackageJson(cwd) {
|
|
|
15
10
|
return undefined;
|
|
16
11
|
}
|
|
17
12
|
}
|
|
13
|
+
async function readComposerJson(cwd) {
|
|
14
|
+
try {
|
|
15
|
+
const raw = await readFile(join(cwd, 'composer.json'), 'utf8');
|
|
16
|
+
return JSON.parse(raw);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
18
22
|
/** Merges dependencies + devDependencies: a framework used only in dev (e.g. via a meta-framework) still counts as detected. */
|
|
19
23
|
function allDeclaredDeps(pkg) {
|
|
20
24
|
return { ...pkg.dependencies, ...pkg.devDependencies };
|
|
21
25
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Los frameworks que este proyecto declara usar, según el catálogo que se le pase.
|
|
28
|
+
*
|
|
29
|
+
* Cada definición dice cómo se reconoce un proyecto suyo (`detect`), así que un framework
|
|
30
|
+
* aportado por un componente se detecta igual que los de casa, sin nada cableado aquí.
|
|
31
|
+
*/
|
|
32
|
+
export async function detectFrameworks(cwd, catalog = BUILTIN_FRAMEWORKS) {
|
|
33
|
+
const [pkg, composer] = await Promise.all([readPackageJson(cwd), readComposerJson(cwd)]);
|
|
34
|
+
const deps = pkg ? allDeclaredDeps(pkg) : {};
|
|
35
|
+
const composerDeps = composer?.require ?? {};
|
|
36
|
+
const frameworks = Object.entries(catalog)
|
|
37
|
+
.filter(([, definition]) => {
|
|
38
|
+
const npm = definition.detect?.npm;
|
|
39
|
+
const composerPackage = definition.detect?.composer;
|
|
40
|
+
// `Object.hasOwn` y no `in`: los marcadores los aporta quien contribuye, y un
|
|
41
|
+
// `detect: { npm: 'constructor' }` casaría con todos los proyectos por el prototipo.
|
|
42
|
+
return ((npm !== undefined && Object.hasOwn(deps, npm)) ||
|
|
43
|
+
(composerPackage !== undefined && Object.hasOwn(composerDeps, composerPackage)));
|
|
44
|
+
})
|
|
45
|
+
.map(([name]) => name);
|
|
28
46
|
return { frameworks, packageJson: pkg };
|
|
29
47
|
}
|
|
30
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-detect.js","sourceRoot":"","sources":["../src/framework-detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"framework-detect.js","sourceRoot":"","sources":["../src/framework-detect.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modularcore/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,21 +17,21 @@
|
|
|
17
17
|
"engines": {
|
|
18
18
|
"node": ">=18"
|
|
19
19
|
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc -p tsconfig.json",
|
|
22
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
23
|
+
"test": "vitest run"
|
|
24
|
+
},
|
|
20
25
|
"dependencies": {
|
|
21
26
|
"@clack/prompts": "^1.7.0",
|
|
27
|
+
"@modularcore/registry": "workspace:*",
|
|
28
|
+
"@modularcore/registry-client": "workspace:*",
|
|
22
29
|
"commander": "^15.0.0",
|
|
23
30
|
"semver": "^7.8.5",
|
|
24
|
-
"zod": "^4.4.3"
|
|
25
|
-
"@modularcore/registry": "0.2.0",
|
|
26
|
-
"@modularcore/registry-client": "0.3.0"
|
|
31
|
+
"zod": "^4.4.3"
|
|
27
32
|
},
|
|
28
33
|
"devDependencies": {
|
|
29
34
|
"@types/node": "^22.13.0",
|
|
30
35
|
"@types/semver": "^7.5.8"
|
|
31
|
-
},
|
|
32
|
-
"scripts": {
|
|
33
|
-
"build": "tsc -p tsconfig.json",
|
|
34
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
35
|
-
"test": "vitest run"
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
}
|