@unlimitechcloud/devlink 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +880 -0
- package/LICENSE +21 -0
- package/README.md +335 -0
- package/dist/__tests__/e2e.spec.d.ts +8 -0
- package/dist/__tests__/e2e.spec.d.ts.map +1 -0
- package/dist/__tests__/e2e.spec.js +253 -0
- package/dist/__tests__/e2e.spec.js.map +1 -0
- package/dist/__tests__/integration.spec.d.ts +8 -0
- package/dist/__tests__/integration.spec.d.ts.map +1 -0
- package/dist/__tests__/integration.spec.js +274 -0
- package/dist/__tests__/integration.spec.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +610 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/consumers.d.ts +37 -0
- package/dist/commands/consumers.d.ts.map +1 -0
- package/dist/commands/consumers.js +107 -0
- package/dist/commands/consumers.js.map +1 -0
- package/dist/commands/docs.d.ts +59 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +262 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/docs.spec.d.ts +5 -0
- package/dist/commands/docs.spec.d.ts.map +1 -0
- package/dist/commands/docs.spec.js +213 -0
- package/dist/commands/docs.spec.js.map +1 -0
- package/dist/commands/index.d.ts +13 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +13 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/install.d.ts +31 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +234 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list.d.ts +22 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +45 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/list.spec.d.ts +5 -0
- package/dist/commands/list.spec.d.ts.map +1 -0
- package/dist/commands/list.spec.js +95 -0
- package/dist/commands/list.spec.js.map +1 -0
- package/dist/commands/prune.d.ts +27 -0
- package/dist/commands/prune.d.ts.map +1 -0
- package/dist/commands/prune.js +74 -0
- package/dist/commands/prune.js.map +1 -0
- package/dist/commands/publish.d.ts +16 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +225 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/publish.spec.d.ts +5 -0
- package/dist/commands/publish.spec.d.ts.map +1 -0
- package/dist/commands/publish.spec.js +98 -0
- package/dist/commands/publish.spec.js.map +1 -0
- package/dist/commands/push.d.ts +16 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +164 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/remove.d.ts +24 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +80 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/remove.spec.d.ts +5 -0
- package/dist/commands/remove.spec.d.ts.map +1 -0
- package/dist/commands/remove.spec.js +87 -0
- package/dist/commands/remove.spec.js.map +1 -0
- package/dist/commands/resolve.d.ts +20 -0
- package/dist/commands/resolve.d.ts.map +1 -0
- package/dist/commands/resolve.js +52 -0
- package/dist/commands/resolve.js.map +1 -0
- package/dist/commands/resolve.spec.d.ts +5 -0
- package/dist/commands/resolve.spec.d.ts.map +1 -0
- package/dist/commands/resolve.spec.js +87 -0
- package/dist/commands/resolve.spec.js.map +1 -0
- package/dist/commands/verify.d.ts +32 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +127 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +70 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +65 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +116 -0
- package/dist/constants.js.map +1 -0
- package/dist/constants.spec.d.ts +5 -0
- package/dist/constants.spec.d.ts.map +1 -0
- package/dist/constants.spec.js +72 -0
- package/dist/constants.spec.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/installations.d.ts +79 -0
- package/dist/core/installations.d.ts.map +1 -0
- package/dist/core/installations.js +207 -0
- package/dist/core/installations.js.map +1 -0
- package/dist/core/installations.spec.d.ts +5 -0
- package/dist/core/installations.spec.d.ts.map +1 -0
- package/dist/core/installations.spec.js +261 -0
- package/dist/core/installations.spec.js.map +1 -0
- package/dist/core/lock.d.ts +37 -0
- package/dist/core/lock.d.ts.map +1 -0
- package/dist/core/lock.js +198 -0
- package/dist/core/lock.js.map +1 -0
- package/dist/core/lock.spec.d.ts +5 -0
- package/dist/core/lock.spec.d.ts.map +1 -0
- package/dist/core/lock.spec.js +161 -0
- package/dist/core/lock.spec.js.map +1 -0
- package/dist/core/registry.d.ts +80 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +231 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/registry.spec.d.ts +5 -0
- package/dist/core/registry.spec.d.ts.map +1 -0
- package/dist/core/registry.spec.js +281 -0
- package/dist/core/registry.spec.js.map +1 -0
- package/dist/core/resolver.d.ts +55 -0
- package/dist/core/resolver.d.ts.map +1 -0
- package/dist/core/resolver.js +127 -0
- package/dist/core/resolver.js.map +1 -0
- package/dist/core/resolver.spec.d.ts +5 -0
- package/dist/core/resolver.spec.d.ts.map +1 -0
- package/dist/core/resolver.spec.js +202 -0
- package/dist/core/resolver.spec.js.map +1 -0
- package/dist/core/store.d.ts +65 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +245 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/store.spec.d.ts +5 -0
- package/dist/core/store.spec.d.ts.map +1 -0
- package/dist/core/store.spec.js +195 -0
- package/dist/core/store.spec.js.map +1 -0
- package/dist/formatters/flat.d.ts +41 -0
- package/dist/formatters/flat.d.ts.map +1 -0
- package/dist/formatters/flat.js +131 -0
- package/dist/formatters/flat.js.map +1 -0
- package/dist/formatters/flat.spec.d.ts +5 -0
- package/dist/formatters/flat.spec.d.ts.map +1 -0
- package/dist/formatters/flat.spec.js +130 -0
- package/dist/formatters/flat.spec.js.map +1 -0
- package/dist/formatters/index.d.ts +6 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +6 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/tree.d.ts +29 -0
- package/dist/formatters/tree.d.ts.map +1 -0
- package/dist/formatters/tree.js +256 -0
- package/dist/formatters/tree.js.map +1 -0
- package/dist/formatters/tree.spec.d.ts +5 -0
- package/dist/formatters/tree.spec.d.ts.map +1 -0
- package/dist/formatters/tree.spec.js +127 -0
- package/dist/formatters/tree.spec.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/installer.d.ts +13 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +171 -0
- package/dist/installer.js.map +1 -0
- package/dist/store.d.ts +78 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +344 -0
- package/dist/store.js.map +1 -0
- package/dist/types.d.ts +235 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/docs/README.md +68 -0
- package/docs/inspection/consumers.md +178 -0
- package/docs/inspection/list.md +182 -0
- package/docs/inspection/resolve.md +172 -0
- package/docs/installation/configuration.md +238 -0
- package/docs/installation/install.md +184 -0
- package/docs/maintenance/prune.md +159 -0
- package/docs/maintenance/remove.md +174 -0
- package/docs/maintenance/verify.md +174 -0
- package/docs/publishing/publish.md +146 -0
- package/docs/publishing/push.md +146 -0
- package/docs/store/locking.md +118 -0
- package/docs/store/namespaces.md +141 -0
- package/docs/store/structure.md +163 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store - Gestión del repositorio local de paquetes
|
|
3
|
+
*
|
|
4
|
+
* Maneja la publicación y linkeo de paquetes locales
|
|
5
|
+
*/
|
|
6
|
+
import type { PackageManifest, Lockfile } from "./types.js";
|
|
7
|
+
/** @deprecated Use StoredPackage from types.ts instead */
|
|
8
|
+
interface LegacyStoredPackage {
|
|
9
|
+
name: string;
|
|
10
|
+
version: string;
|
|
11
|
+
signature: string;
|
|
12
|
+
path: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Obtiene el directorio principal del store
|
|
16
|
+
*/
|
|
17
|
+
export declare function getStoreMainDir(customFolder?: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Obtiene el directorio de paquetes del store
|
|
20
|
+
*/
|
|
21
|
+
export declare function getStorePackagesDir(storeFolder?: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Obtiene el directorio de un paquete específico en el store
|
|
24
|
+
*/
|
|
25
|
+
export declare function getPackageStoreDir(packageName: string, version?: string, storeFolder?: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Lee el package.json de un directorio
|
|
28
|
+
*/
|
|
29
|
+
export declare function readPackageManifest(dir: string): Promise<PackageManifest | null>;
|
|
30
|
+
/**
|
|
31
|
+
* Escribe el package.json en un directorio
|
|
32
|
+
*/
|
|
33
|
+
export declare function writePackageManifest(dir: string, manifest: PackageManifest): Promise<void>;
|
|
34
|
+
export interface PublishOptions {
|
|
35
|
+
workingDir: string;
|
|
36
|
+
storeFolder?: string;
|
|
37
|
+
signature?: boolean;
|
|
38
|
+
push?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Publica un paquete al store local
|
|
42
|
+
* @deprecated Use publishPackage from commands/publish.ts instead
|
|
43
|
+
*/
|
|
44
|
+
export declare function publishPackage(options: PublishOptions): Promise<LegacyStoredPackage | null>;
|
|
45
|
+
export interface LinkOptions {
|
|
46
|
+
packageName: string;
|
|
47
|
+
version?: string;
|
|
48
|
+
workingDir: string;
|
|
49
|
+
storeFolder?: string;
|
|
50
|
+
replace?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Lee la signature de un paquete en el store
|
|
54
|
+
*/
|
|
55
|
+
export declare function getPackageSignature(packageName: string, version: string, storeFolder?: string): Promise<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Linkea un paquete del store a un proyecto
|
|
58
|
+
*/
|
|
59
|
+
export declare function linkPackage(options: LinkOptions): Promise<boolean>;
|
|
60
|
+
export interface RemoveOptions {
|
|
61
|
+
packageName?: string;
|
|
62
|
+
all?: boolean;
|
|
63
|
+
workingDir: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Remueve paquetes linkeados de un proyecto
|
|
67
|
+
*/
|
|
68
|
+
export declare function removePackages(options: RemoveOptions): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Lee el lockfile de un proyecto
|
|
71
|
+
*/
|
|
72
|
+
export declare function readLockfile(workingDir: string): Promise<Lockfile>;
|
|
73
|
+
/**
|
|
74
|
+
* Escribe el lockfile de un proyecto
|
|
75
|
+
*/
|
|
76
|
+
export declare function writeLockfile(workingDir: string, lockfile: Lockfile): Promise<void>;
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE5D,0DAA0D;AAC1D,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAWD;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAW,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAOjC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAKf;AAqHD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAgEjG;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA+CxE;AA8BD,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC1E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUxE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
package/dist/store.js
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store - Gestión del repositorio local de paquetes
|
|
3
|
+
*
|
|
4
|
+
* Maneja la publicación y linkeo de paquetes locales
|
|
5
|
+
*/
|
|
6
|
+
import { createHash } from "crypto";
|
|
7
|
+
import { createReadStream } from "fs";
|
|
8
|
+
import fs from "fs/promises";
|
|
9
|
+
import path from "path";
|
|
10
|
+
import { homedir } from "os";
|
|
11
|
+
const VALUES = {
|
|
12
|
+
storeFolder: ".devlink",
|
|
13
|
+
lockfileName: "devlink.lock",
|
|
14
|
+
packagesFolder: ".devlink",
|
|
15
|
+
installationsFile: "installations.json",
|
|
16
|
+
signatureFile: "devlink.sig",
|
|
17
|
+
ignoreFile: ".devlinkignore",
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Obtiene el directorio principal del store
|
|
21
|
+
*/
|
|
22
|
+
export function getStoreMainDir(customFolder) {
|
|
23
|
+
if (customFolder) {
|
|
24
|
+
return path.resolve(customFolder);
|
|
25
|
+
}
|
|
26
|
+
if (process.platform === "win32" && process.env.LOCALAPPDATA) {
|
|
27
|
+
return path.join(process.env.LOCALAPPDATA, "DevLink");
|
|
28
|
+
}
|
|
29
|
+
return path.join(homedir(), "." + VALUES.storeFolder);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Obtiene el directorio de paquetes del store
|
|
33
|
+
*/
|
|
34
|
+
export function getStorePackagesDir(storeFolder) {
|
|
35
|
+
return path.join(getStoreMainDir(storeFolder), "packages");
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Obtiene el directorio de un paquete específico en el store
|
|
39
|
+
*/
|
|
40
|
+
export function getPackageStoreDir(packageName, version = "", storeFolder) {
|
|
41
|
+
return path.join(getStorePackagesDir(storeFolder), packageName, version);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Lee el package.json de un directorio
|
|
45
|
+
*/
|
|
46
|
+
export async function readPackageManifest(dir) {
|
|
47
|
+
try {
|
|
48
|
+
const content = await fs.readFile(path.join(dir, "package.json"), "utf-8");
|
|
49
|
+
return JSON.parse(content);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Escribe el package.json en un directorio
|
|
57
|
+
*/
|
|
58
|
+
export async function writePackageManifest(dir, manifest) {
|
|
59
|
+
await fs.writeFile(path.join(dir, "package.json"), JSON.stringify(manifest, null, 2) + "\n");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Calcula el hash MD5 de un archivo
|
|
63
|
+
*/
|
|
64
|
+
async function getFileHash(filePath, relativePath = "") {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
const hash = createHash("md5");
|
|
67
|
+
hash.update(relativePath.replace(/\\/g, "/"));
|
|
68
|
+
const stream = createReadStream(filePath);
|
|
69
|
+
stream.on("data", (data) => hash.update(data));
|
|
70
|
+
stream.on("error", reject);
|
|
71
|
+
stream.on("close", () => resolve(hash.digest("hex")));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Obtiene la lista de archivos a publicar (similar a npm pack)
|
|
76
|
+
*/
|
|
77
|
+
async function getFilesToPublish(dir) {
|
|
78
|
+
const manifest = await readPackageManifest(dir);
|
|
79
|
+
if (!manifest)
|
|
80
|
+
return [];
|
|
81
|
+
const files = [];
|
|
82
|
+
// Siempre incluir package.json
|
|
83
|
+
files.push("package.json");
|
|
84
|
+
// Si hay campo "files", usar eso
|
|
85
|
+
if (manifest.files && manifest.files.length > 0) {
|
|
86
|
+
for (const pattern of manifest.files) {
|
|
87
|
+
const matches = await globFiles(dir, pattern);
|
|
88
|
+
files.push(...matches);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// Si no hay "files", incluir todo excepto node_modules y archivos comunes a ignorar
|
|
93
|
+
const allFiles = await walkDir(dir);
|
|
94
|
+
const ignorePatterns = [
|
|
95
|
+
"node_modules",
|
|
96
|
+
".git",
|
|
97
|
+
".devlink",
|
|
98
|
+
"*.log",
|
|
99
|
+
".DS_Store",
|
|
100
|
+
];
|
|
101
|
+
files.push(...allFiles.filter((f) => !ignorePatterns.some((p) => f.includes(p.replace("*", "")))));
|
|
102
|
+
}
|
|
103
|
+
// Leer .devlinkignore si existe
|
|
104
|
+
try {
|
|
105
|
+
const ignoreContent = await fs.readFile(path.join(dir, VALUES.ignoreFile), "utf-8");
|
|
106
|
+
const ignoreLines = ignoreContent
|
|
107
|
+
.split("\n")
|
|
108
|
+
.map((l) => l.trim())
|
|
109
|
+
.filter((l) => l && !l.startsWith("#"));
|
|
110
|
+
return files.filter((f) => !ignoreLines.some((pattern) => f.includes(pattern)));
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return files;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Glob simple para patrones de archivos
|
|
118
|
+
*/
|
|
119
|
+
async function globFiles(dir, pattern) {
|
|
120
|
+
const files = await walkDir(dir);
|
|
121
|
+
// Convertir patrón glob simple a regex
|
|
122
|
+
const regexPattern = pattern
|
|
123
|
+
.replace(/\./g, "\\.")
|
|
124
|
+
.replace(/\*/g, ".*")
|
|
125
|
+
.replace(/\?/g, ".");
|
|
126
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
127
|
+
return files.filter((f) => regex.test(f) || f.startsWith(pattern.replace("*", "")));
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Recorre un directorio recursivamente
|
|
131
|
+
*/
|
|
132
|
+
async function walkDir(dir, base = "") {
|
|
133
|
+
const files = [];
|
|
134
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
135
|
+
for (const entry of entries) {
|
|
136
|
+
const relativePath = base ? path.join(base, entry.name) : entry.name;
|
|
137
|
+
if (entry.name === "node_modules" || entry.name === ".git") {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (entry.isDirectory()) {
|
|
141
|
+
files.push(...(await walkDir(path.join(dir, entry.name), relativePath)));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
files.push(relativePath);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return files;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Copia un archivo preservando la estructura de directorios
|
|
151
|
+
*/
|
|
152
|
+
async function copyFile(src, dest) {
|
|
153
|
+
await fs.mkdir(path.dirname(dest), { recursive: true });
|
|
154
|
+
await fs.copyFile(src, dest);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Publica un paquete al store local
|
|
158
|
+
* @deprecated Use publishPackage from commands/publish.ts instead
|
|
159
|
+
*/
|
|
160
|
+
export async function publishPackage(options) {
|
|
161
|
+
const { workingDir, storeFolder } = options;
|
|
162
|
+
const manifest = await readPackageManifest(workingDir);
|
|
163
|
+
if (!manifest) {
|
|
164
|
+
console.error("No package.json found in", workingDir);
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
if (manifest.private && !options.signature) {
|
|
168
|
+
// Permitir publicar paquetes privados al store local
|
|
169
|
+
}
|
|
170
|
+
const storeDir = getPackageStoreDir(manifest.name, manifest.version, storeFolder);
|
|
171
|
+
// Limpiar directorio destino
|
|
172
|
+
await fs.rm(storeDir, { recursive: true, force: true });
|
|
173
|
+
await fs.mkdir(storeDir, { recursive: true });
|
|
174
|
+
// Obtener archivos a copiar
|
|
175
|
+
const files = await getFilesToPublish(workingDir);
|
|
176
|
+
// Copiar archivos y calcular hashes
|
|
177
|
+
const hashes = [];
|
|
178
|
+
for (const file of files.sort()) {
|
|
179
|
+
const srcPath = path.join(workingDir, file);
|
|
180
|
+
const destPath = path.join(storeDir, file);
|
|
181
|
+
await copyFile(srcPath, destPath);
|
|
182
|
+
const hash = await getFileHash(srcPath, file);
|
|
183
|
+
hashes.push(hash);
|
|
184
|
+
}
|
|
185
|
+
// Calcular signature global
|
|
186
|
+
const signature = createHash("md5").update(hashes.join("")).digest("hex");
|
|
187
|
+
// Escribir signature
|
|
188
|
+
await fs.writeFile(path.join(storeDir, VALUES.signatureFile), signature);
|
|
189
|
+
// Modificar package.json en el store (quitar devDependencies, scripts de desarrollo)
|
|
190
|
+
const cleanScripts = manifest.scripts
|
|
191
|
+
? Object.fromEntries(Object.entries(manifest.scripts).filter(([key]) => !["prepare", "prepublish", "prepublishOnly"].includes(key)))
|
|
192
|
+
: undefined;
|
|
193
|
+
const storeManifest = {
|
|
194
|
+
...manifest,
|
|
195
|
+
devDependencies: undefined,
|
|
196
|
+
scripts: cleanScripts,
|
|
197
|
+
};
|
|
198
|
+
await writePackageManifest(storeDir, storeManifest);
|
|
199
|
+
console.log(`📦 ${manifest.name}@${manifest.version} published to store`);
|
|
200
|
+
console.log(` Signature: ${signature.substring(0, 8)}`);
|
|
201
|
+
console.log(` Files: ${files.length}`);
|
|
202
|
+
return {
|
|
203
|
+
name: manifest.name,
|
|
204
|
+
version: manifest.version,
|
|
205
|
+
signature,
|
|
206
|
+
path: storeDir,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Lee la signature de un paquete en el store
|
|
211
|
+
*/
|
|
212
|
+
export async function getPackageSignature(packageName, version, storeFolder) {
|
|
213
|
+
const storeDir = getPackageStoreDir(packageName, version, storeFolder);
|
|
214
|
+
try {
|
|
215
|
+
return await fs.readFile(path.join(storeDir, VALUES.signatureFile), "utf-8");
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return "";
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Linkea un paquete del store a un proyecto
|
|
223
|
+
*/
|
|
224
|
+
export async function linkPackage(options) {
|
|
225
|
+
const { packageName, workingDir, storeFolder, replace } = options;
|
|
226
|
+
// Encontrar la versión más reciente si no se especifica
|
|
227
|
+
let version = options.version;
|
|
228
|
+
if (!version) {
|
|
229
|
+
const latestVersion = await getLatestVersion(packageName, storeFolder);
|
|
230
|
+
if (!latestVersion) {
|
|
231
|
+
console.error(`Package ${packageName} not found in store`);
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
version = latestVersion;
|
|
235
|
+
}
|
|
236
|
+
const storeDir = getPackageStoreDir(packageName, version, storeFolder);
|
|
237
|
+
// Verificar que existe
|
|
238
|
+
try {
|
|
239
|
+
await fs.access(storeDir);
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
console.error(`Package ${packageName}@${version} not found in store`);
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
// Directorio destino en node_modules
|
|
246
|
+
const destDir = path.join(workingDir, "node_modules", packageName);
|
|
247
|
+
// Crear directorio padre si es scoped package
|
|
248
|
+
if (packageName.startsWith("@")) {
|
|
249
|
+
await fs.mkdir(path.dirname(destDir), { recursive: true });
|
|
250
|
+
}
|
|
251
|
+
// Eliminar existente si replace
|
|
252
|
+
if (replace) {
|
|
253
|
+
await fs.rm(destDir, { recursive: true, force: true });
|
|
254
|
+
}
|
|
255
|
+
// Crear symlink
|
|
256
|
+
try {
|
|
257
|
+
await fs.rm(destDir, { recursive: true, force: true });
|
|
258
|
+
await fs.symlink(storeDir, destDir, "junction");
|
|
259
|
+
console.log(`🔗 ${packageName}@${version} linked to ${destDir}`);
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
console.error(`Failed to link ${packageName}:`, error);
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Obtiene la versión más reciente de un paquete en el store
|
|
269
|
+
*/
|
|
270
|
+
async function getLatestVersion(packageName, storeFolder) {
|
|
271
|
+
const packageDir = path.join(getStorePackagesDir(storeFolder), packageName);
|
|
272
|
+
try {
|
|
273
|
+
const versions = await fs.readdir(packageDir);
|
|
274
|
+
if (versions.length === 0)
|
|
275
|
+
return null;
|
|
276
|
+
// Ordenar por fecha de modificación
|
|
277
|
+
const versionStats = await Promise.all(versions.map(async (v) => ({
|
|
278
|
+
version: v,
|
|
279
|
+
mtime: (await fs.stat(path.join(packageDir, v))).mtime.getTime(),
|
|
280
|
+
})));
|
|
281
|
+
versionStats.sort((a, b) => b.mtime - a.mtime);
|
|
282
|
+
return versionStats[0].version;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return null;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Remueve paquetes linkeados de un proyecto
|
|
290
|
+
*/
|
|
291
|
+
export async function removePackages(options) {
|
|
292
|
+
const { workingDir } = options;
|
|
293
|
+
const lockfilePath = path.join(workingDir, VALUES.lockfileName);
|
|
294
|
+
let lockfile = { packages: {} };
|
|
295
|
+
try {
|
|
296
|
+
const content = await fs.readFile(lockfilePath, "utf-8");
|
|
297
|
+
lockfile = JSON.parse(content);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
// No lockfile
|
|
301
|
+
}
|
|
302
|
+
const packagesToRemove = options.all
|
|
303
|
+
? Object.keys(lockfile.packages)
|
|
304
|
+
: options.packageName
|
|
305
|
+
? [options.packageName]
|
|
306
|
+
: [];
|
|
307
|
+
for (const name of packagesToRemove) {
|
|
308
|
+
const destDir = path.join(workingDir, "node_modules", name);
|
|
309
|
+
try {
|
|
310
|
+
await fs.rm(destDir, { recursive: true, force: true });
|
|
311
|
+
delete lockfile.packages[name];
|
|
312
|
+
console.log(`🗑️ Removed ${name}`);
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
// Ignore
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
// Actualizar lockfile
|
|
319
|
+
if (Object.keys(lockfile.packages).length === 0) {
|
|
320
|
+
await fs.rm(lockfilePath, { force: true });
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
await fs.writeFile(lockfilePath, JSON.stringify(lockfile, null, 2));
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Lee el lockfile de un proyecto
|
|
328
|
+
*/
|
|
329
|
+
export async function readLockfile(workingDir) {
|
|
330
|
+
try {
|
|
331
|
+
const content = await fs.readFile(path.join(workingDir, VALUES.lockfileName), "utf-8");
|
|
332
|
+
return JSON.parse(content);
|
|
333
|
+
}
|
|
334
|
+
catch {
|
|
335
|
+
return { packages: {} };
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Escribe el lockfile de un proyecto
|
|
340
|
+
*/
|
|
341
|
+
export async function writeLockfile(workingDir, lockfile) {
|
|
342
|
+
await fs.writeFile(path.join(workingDir, VALUES.lockfileName), JSON.stringify(lockfile, null, 2) + "\n");
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|