@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.
Files changed (186) hide show
  1. package/AGENTS.md +880 -0
  2. package/LICENSE +21 -0
  3. package/README.md +335 -0
  4. package/dist/__tests__/e2e.spec.d.ts +8 -0
  5. package/dist/__tests__/e2e.spec.d.ts.map +1 -0
  6. package/dist/__tests__/e2e.spec.js +253 -0
  7. package/dist/__tests__/e2e.spec.js.map +1 -0
  8. package/dist/__tests__/integration.spec.d.ts +8 -0
  9. package/dist/__tests__/integration.spec.d.ts.map +1 -0
  10. package/dist/__tests__/integration.spec.js +274 -0
  11. package/dist/__tests__/integration.spec.js.map +1 -0
  12. package/dist/cli.d.ts +6 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +610 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/commands/consumers.d.ts +37 -0
  17. package/dist/commands/consumers.d.ts.map +1 -0
  18. package/dist/commands/consumers.js +107 -0
  19. package/dist/commands/consumers.js.map +1 -0
  20. package/dist/commands/docs.d.ts +59 -0
  21. package/dist/commands/docs.d.ts.map +1 -0
  22. package/dist/commands/docs.js +262 -0
  23. package/dist/commands/docs.js.map +1 -0
  24. package/dist/commands/docs.spec.d.ts +5 -0
  25. package/dist/commands/docs.spec.d.ts.map +1 -0
  26. package/dist/commands/docs.spec.js +213 -0
  27. package/dist/commands/docs.spec.js.map +1 -0
  28. package/dist/commands/index.d.ts +13 -0
  29. package/dist/commands/index.d.ts.map +1 -0
  30. package/dist/commands/index.js +13 -0
  31. package/dist/commands/index.js.map +1 -0
  32. package/dist/commands/install.d.ts +31 -0
  33. package/dist/commands/install.d.ts.map +1 -0
  34. package/dist/commands/install.js +234 -0
  35. package/dist/commands/install.js.map +1 -0
  36. package/dist/commands/list.d.ts +22 -0
  37. package/dist/commands/list.d.ts.map +1 -0
  38. package/dist/commands/list.js +45 -0
  39. package/dist/commands/list.js.map +1 -0
  40. package/dist/commands/list.spec.d.ts +5 -0
  41. package/dist/commands/list.spec.d.ts.map +1 -0
  42. package/dist/commands/list.spec.js +95 -0
  43. package/dist/commands/list.spec.js.map +1 -0
  44. package/dist/commands/prune.d.ts +27 -0
  45. package/dist/commands/prune.d.ts.map +1 -0
  46. package/dist/commands/prune.js +74 -0
  47. package/dist/commands/prune.js.map +1 -0
  48. package/dist/commands/publish.d.ts +16 -0
  49. package/dist/commands/publish.d.ts.map +1 -0
  50. package/dist/commands/publish.js +225 -0
  51. package/dist/commands/publish.js.map +1 -0
  52. package/dist/commands/publish.spec.d.ts +5 -0
  53. package/dist/commands/publish.spec.d.ts.map +1 -0
  54. package/dist/commands/publish.spec.js +98 -0
  55. package/dist/commands/publish.spec.js.map +1 -0
  56. package/dist/commands/push.d.ts +16 -0
  57. package/dist/commands/push.d.ts.map +1 -0
  58. package/dist/commands/push.js +164 -0
  59. package/dist/commands/push.js.map +1 -0
  60. package/dist/commands/remove.d.ts +24 -0
  61. package/dist/commands/remove.d.ts.map +1 -0
  62. package/dist/commands/remove.js +80 -0
  63. package/dist/commands/remove.js.map +1 -0
  64. package/dist/commands/remove.spec.d.ts +5 -0
  65. package/dist/commands/remove.spec.d.ts.map +1 -0
  66. package/dist/commands/remove.spec.js +87 -0
  67. package/dist/commands/remove.spec.js.map +1 -0
  68. package/dist/commands/resolve.d.ts +20 -0
  69. package/dist/commands/resolve.d.ts.map +1 -0
  70. package/dist/commands/resolve.js +52 -0
  71. package/dist/commands/resolve.js.map +1 -0
  72. package/dist/commands/resolve.spec.d.ts +5 -0
  73. package/dist/commands/resolve.spec.d.ts.map +1 -0
  74. package/dist/commands/resolve.spec.js +87 -0
  75. package/dist/commands/resolve.spec.js.map +1 -0
  76. package/dist/commands/verify.d.ts +32 -0
  77. package/dist/commands/verify.d.ts.map +1 -0
  78. package/dist/commands/verify.js +127 -0
  79. package/dist/commands/verify.js.map +1 -0
  80. package/dist/config.d.ts +22 -0
  81. package/dist/config.d.ts.map +1 -0
  82. package/dist/config.js +70 -0
  83. package/dist/config.js.map +1 -0
  84. package/dist/constants.d.ts +65 -0
  85. package/dist/constants.d.ts.map +1 -0
  86. package/dist/constants.js +116 -0
  87. package/dist/constants.js.map +1 -0
  88. package/dist/constants.spec.d.ts +5 -0
  89. package/dist/constants.spec.d.ts.map +1 -0
  90. package/dist/constants.spec.js +72 -0
  91. package/dist/constants.spec.js.map +1 -0
  92. package/dist/core/index.d.ts +9 -0
  93. package/dist/core/index.d.ts.map +1 -0
  94. package/dist/core/index.js +9 -0
  95. package/dist/core/index.js.map +1 -0
  96. package/dist/core/installations.d.ts +79 -0
  97. package/dist/core/installations.d.ts.map +1 -0
  98. package/dist/core/installations.js +207 -0
  99. package/dist/core/installations.js.map +1 -0
  100. package/dist/core/installations.spec.d.ts +5 -0
  101. package/dist/core/installations.spec.d.ts.map +1 -0
  102. package/dist/core/installations.spec.js +261 -0
  103. package/dist/core/installations.spec.js.map +1 -0
  104. package/dist/core/lock.d.ts +37 -0
  105. package/dist/core/lock.d.ts.map +1 -0
  106. package/dist/core/lock.js +198 -0
  107. package/dist/core/lock.js.map +1 -0
  108. package/dist/core/lock.spec.d.ts +5 -0
  109. package/dist/core/lock.spec.d.ts.map +1 -0
  110. package/dist/core/lock.spec.js +161 -0
  111. package/dist/core/lock.spec.js.map +1 -0
  112. package/dist/core/registry.d.ts +80 -0
  113. package/dist/core/registry.d.ts.map +1 -0
  114. package/dist/core/registry.js +231 -0
  115. package/dist/core/registry.js.map +1 -0
  116. package/dist/core/registry.spec.d.ts +5 -0
  117. package/dist/core/registry.spec.d.ts.map +1 -0
  118. package/dist/core/registry.spec.js +281 -0
  119. package/dist/core/registry.spec.js.map +1 -0
  120. package/dist/core/resolver.d.ts +55 -0
  121. package/dist/core/resolver.d.ts.map +1 -0
  122. package/dist/core/resolver.js +127 -0
  123. package/dist/core/resolver.js.map +1 -0
  124. package/dist/core/resolver.spec.d.ts +5 -0
  125. package/dist/core/resolver.spec.d.ts.map +1 -0
  126. package/dist/core/resolver.spec.js +202 -0
  127. package/dist/core/resolver.spec.js.map +1 -0
  128. package/dist/core/store.d.ts +65 -0
  129. package/dist/core/store.d.ts.map +1 -0
  130. package/dist/core/store.js +245 -0
  131. package/dist/core/store.js.map +1 -0
  132. package/dist/core/store.spec.d.ts +5 -0
  133. package/dist/core/store.spec.d.ts.map +1 -0
  134. package/dist/core/store.spec.js +195 -0
  135. package/dist/core/store.spec.js.map +1 -0
  136. package/dist/formatters/flat.d.ts +41 -0
  137. package/dist/formatters/flat.d.ts.map +1 -0
  138. package/dist/formatters/flat.js +131 -0
  139. package/dist/formatters/flat.js.map +1 -0
  140. package/dist/formatters/flat.spec.d.ts +5 -0
  141. package/dist/formatters/flat.spec.d.ts.map +1 -0
  142. package/dist/formatters/flat.spec.js +130 -0
  143. package/dist/formatters/flat.spec.js.map +1 -0
  144. package/dist/formatters/index.d.ts +6 -0
  145. package/dist/formatters/index.d.ts.map +1 -0
  146. package/dist/formatters/index.js +6 -0
  147. package/dist/formatters/index.js.map +1 -0
  148. package/dist/formatters/tree.d.ts +29 -0
  149. package/dist/formatters/tree.d.ts.map +1 -0
  150. package/dist/formatters/tree.js +256 -0
  151. package/dist/formatters/tree.js.map +1 -0
  152. package/dist/formatters/tree.spec.d.ts +5 -0
  153. package/dist/formatters/tree.spec.d.ts.map +1 -0
  154. package/dist/formatters/tree.spec.js +127 -0
  155. package/dist/formatters/tree.spec.js.map +1 -0
  156. package/dist/index.d.ts +11 -0
  157. package/dist/index.d.ts.map +1 -0
  158. package/dist/index.js +13 -0
  159. package/dist/index.js.map +1 -0
  160. package/dist/installer.d.ts +13 -0
  161. package/dist/installer.d.ts.map +1 -0
  162. package/dist/installer.js +171 -0
  163. package/dist/installer.js.map +1 -0
  164. package/dist/store.d.ts +78 -0
  165. package/dist/store.d.ts.map +1 -0
  166. package/dist/store.js +344 -0
  167. package/dist/store.js.map +1 -0
  168. package/dist/types.d.ts +235 -0
  169. package/dist/types.d.ts.map +1 -0
  170. package/dist/types.js +5 -0
  171. package/dist/types.js.map +1 -0
  172. package/docs/README.md +68 -0
  173. package/docs/inspection/consumers.md +178 -0
  174. package/docs/inspection/list.md +182 -0
  175. package/docs/inspection/resolve.md +172 -0
  176. package/docs/installation/configuration.md +238 -0
  177. package/docs/installation/install.md +184 -0
  178. package/docs/maintenance/prune.md +159 -0
  179. package/docs/maintenance/remove.md +174 -0
  180. package/docs/maintenance/verify.md +174 -0
  181. package/docs/publishing/publish.md +146 -0
  182. package/docs/publishing/push.md +146 -0
  183. package/docs/store/locking.md +118 -0
  184. package/docs/store/namespaces.md +141 -0
  185. package/docs/store/structure.md +163 -0
  186. package/package.json +58 -0
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Registry - Gestión del registry.json
3
+ */
4
+ import fs from "fs/promises";
5
+ import { getStorePath, getRegistryPath, REGISTRY_VERSION, DEFAULT_NAMESPACE, } from "../constants.js";
6
+ /**
7
+ * Create an empty registry
8
+ */
9
+ export function createEmptyRegistry() {
10
+ return {
11
+ version: REGISTRY_VERSION,
12
+ namespaces: {
13
+ [DEFAULT_NAMESPACE]: {
14
+ created: new Date().toISOString(),
15
+ packages: {},
16
+ },
17
+ },
18
+ };
19
+ }
20
+ /**
21
+ * Read registry from disk
22
+ * Returns empty registry if file doesn't exist
23
+ */
24
+ export async function readRegistry() {
25
+ const registryPath = getRegistryPath();
26
+ try {
27
+ const content = await fs.readFile(registryPath, "utf-8");
28
+ const registry = JSON.parse(content);
29
+ // Ensure global namespace exists
30
+ if (!registry.namespaces[DEFAULT_NAMESPACE]) {
31
+ registry.namespaces[DEFAULT_NAMESPACE] = {
32
+ created: new Date().toISOString(),
33
+ packages: {},
34
+ };
35
+ }
36
+ return registry;
37
+ }
38
+ catch (error) {
39
+ if (error.code === "ENOENT") {
40
+ return createEmptyRegistry();
41
+ }
42
+ throw error;
43
+ }
44
+ }
45
+ /**
46
+ * Write registry to disk (atomic write)
47
+ */
48
+ export async function writeRegistry(registry) {
49
+ const registryPath = getRegistryPath();
50
+ const storePath = getStorePath();
51
+ // Ensure store directory exists
52
+ await fs.mkdir(storePath, { recursive: true });
53
+ // Write to temp file first, then rename (atomic)
54
+ const tempPath = `${registryPath}.tmp`;
55
+ await fs.writeFile(tempPath, JSON.stringify(registry, null, 2));
56
+ await fs.rename(tempPath, registryPath);
57
+ }
58
+ /**
59
+ * Ensure a namespace exists in the registry
60
+ */
61
+ export function ensureNamespaceInRegistry(registry, namespace) {
62
+ if (!registry.namespaces[namespace]) {
63
+ registry.namespaces[namespace] = {
64
+ created: new Date().toISOString(),
65
+ packages: {},
66
+ };
67
+ }
68
+ }
69
+ /**
70
+ * Add or update a package version in the registry
71
+ */
72
+ export function addPackageToRegistry(registry, namespace, packageName, version, entry) {
73
+ ensureNamespaceInRegistry(registry, namespace);
74
+ const nsEntry = registry.namespaces[namespace];
75
+ if (!nsEntry.packages[packageName]) {
76
+ nsEntry.packages[packageName] = { versions: {} };
77
+ }
78
+ nsEntry.packages[packageName].versions[version] = entry;
79
+ }
80
+ /**
81
+ * Remove a package version from the registry
82
+ * Returns true if something was removed
83
+ */
84
+ export function removePackageFromRegistry(registry, namespace, packageName, version) {
85
+ const nsEntry = registry.namespaces[namespace];
86
+ if (!nsEntry)
87
+ return false;
88
+ const pkgEntry = nsEntry.packages[packageName];
89
+ if (!pkgEntry)
90
+ return false;
91
+ if (version) {
92
+ // Remove specific version
93
+ if (!pkgEntry.versions[version])
94
+ return false;
95
+ delete pkgEntry.versions[version];
96
+ // Clean up empty package entry
97
+ if (Object.keys(pkgEntry.versions).length === 0) {
98
+ delete nsEntry.packages[packageName];
99
+ }
100
+ }
101
+ else {
102
+ // Remove entire package
103
+ delete nsEntry.packages[packageName];
104
+ }
105
+ return true;
106
+ }
107
+ /**
108
+ * Get a package entry from the registry
109
+ */
110
+ export function getPackageFromRegistry(registry, namespace, packageName) {
111
+ const nsEntry = registry.namespaces[namespace];
112
+ if (!nsEntry)
113
+ return null;
114
+ return nsEntry.packages[packageName] || null;
115
+ }
116
+ /**
117
+ * Get a specific version entry from the registry
118
+ */
119
+ export function getVersionFromRegistry(registry, namespace, packageName, version) {
120
+ const pkgEntry = getPackageFromRegistry(registry, namespace, packageName);
121
+ if (!pkgEntry)
122
+ return null;
123
+ return pkgEntry.versions[version] || null;
124
+ }
125
+ /**
126
+ * Check if a namespace exists in the registry
127
+ */
128
+ export function namespaceExistsInRegistry(registry, namespace) {
129
+ return namespace in registry.namespaces;
130
+ }
131
+ /**
132
+ * Get all namespaces from the registry
133
+ * Returns global first, then alphabetically sorted
134
+ */
135
+ export function getNamespacesFromRegistry(registry) {
136
+ const namespaces = Object.keys(registry.namespaces);
137
+ return namespaces.sort((a, b) => {
138
+ if (a === DEFAULT_NAMESPACE)
139
+ return -1;
140
+ if (b === DEFAULT_NAMESPACE)
141
+ return 1;
142
+ return a.localeCompare(b);
143
+ });
144
+ }
145
+ /**
146
+ * Get all packages in a namespace
147
+ */
148
+ export function getPackagesInNamespace(registry, namespace) {
149
+ const nsEntry = registry.namespaces[namespace];
150
+ if (!nsEntry)
151
+ return [];
152
+ return Object.keys(nsEntry.packages).sort();
153
+ }
154
+ /**
155
+ * Get all versions of a package in a namespace
156
+ */
157
+ export function getVersionsInNamespace(registry, namespace, packageName) {
158
+ const pkgEntry = getPackageFromRegistry(registry, namespace, packageName);
159
+ if (!pkgEntry)
160
+ return [];
161
+ return Object.keys(pkgEntry.versions).sort();
162
+ }
163
+ /**
164
+ * Remove a namespace from the registry
165
+ * Cannot remove the global namespace
166
+ */
167
+ export function removeNamespaceFromRegistry(registry, namespace) {
168
+ if (namespace === DEFAULT_NAMESPACE) {
169
+ throw new Error(`Cannot delete reserved namespace '${DEFAULT_NAMESPACE}'`);
170
+ }
171
+ if (!registry.namespaces[namespace]) {
172
+ return false;
173
+ }
174
+ delete registry.namespaces[namespace];
175
+ return true;
176
+ }
177
+ /**
178
+ * Get total package count across all namespaces
179
+ */
180
+ export function getTotalPackageCount(registry) {
181
+ let count = 0;
182
+ for (const ns of Object.values(registry.namespaces)) {
183
+ for (const pkg of Object.values(ns.packages)) {
184
+ count += Object.keys(pkg.versions).length;
185
+ }
186
+ }
187
+ return count;
188
+ }
189
+ /**
190
+ * Find all namespaces containing a specific package
191
+ */
192
+ export function findPackageInAllNamespaces(registry, packageName) {
193
+ const results = [];
194
+ for (const [ns, nsEntry] of Object.entries(registry.namespaces)) {
195
+ const pkgEntry = nsEntry.packages[packageName];
196
+ if (pkgEntry) {
197
+ results.push({
198
+ namespace: ns,
199
+ versions: Object.keys(pkgEntry.versions).sort(),
200
+ });
201
+ }
202
+ }
203
+ // Sort: global first, then alphabetically
204
+ return results.sort((a, b) => {
205
+ if (a.namespace === DEFAULT_NAMESPACE)
206
+ return -1;
207
+ if (b.namespace === DEFAULT_NAMESPACE)
208
+ return 1;
209
+ return a.namespace.localeCompare(b.namespace);
210
+ });
211
+ }
212
+ /**
213
+ * Find all packages matching a scope (e.g., @webforgeai)
214
+ */
215
+ export function findPackagesByScope(registry, scope) {
216
+ const results = [];
217
+ const scopePrefix = scope.endsWith("/") ? scope : `${scope}/`;
218
+ for (const [ns, nsEntry] of Object.entries(registry.namespaces)) {
219
+ for (const [pkgName, pkgEntry] of Object.entries(nsEntry.packages)) {
220
+ if (pkgName.startsWith(scopePrefix) || pkgName === scope.replace(/\/$/, "")) {
221
+ results.push({
222
+ namespace: ns,
223
+ package: pkgName,
224
+ versions: Object.keys(pkgEntry.versions).sort(),
225
+ });
226
+ }
227
+ }
228
+ }
229
+ return results;
230
+ }
231
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Registry - Unit tests
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=registry.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.spec.d.ts","sourceRoot":"","sources":["../../src/core/registry.spec.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Registry - Unit tests
3
+ */
4
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
5
+ import fs from "fs/promises";
6
+ import path from "path";
7
+ import os from "os";
8
+ import { createEmptyRegistry, readRegistry, writeRegistry, ensureNamespaceInRegistry, addPackageToRegistry, removePackageFromRegistry, getPackageFromRegistry, getVersionFromRegistry, getNamespacesFromRegistry, removeNamespaceFromRegistry, getTotalPackageCount, findPackageInAllNamespaces, findPackagesByScope, } from "./registry.js";
9
+ const TEST_STORE_PATH = path.join(os.tmpdir(), "devlink-registry-test-" + Date.now());
10
+ vi.mock("../constants.js", () => ({
11
+ getStorePath: () => TEST_STORE_PATH,
12
+ getRegistryPath: () => path.join(TEST_STORE_PATH, "registry.json"),
13
+ REGISTRY_VERSION: "1.0.0",
14
+ DEFAULT_NAMESPACE: "global",
15
+ }));
16
+ describe("Registry", () => {
17
+ beforeEach(async () => {
18
+ await fs.mkdir(TEST_STORE_PATH, { recursive: true });
19
+ });
20
+ afterEach(async () => {
21
+ await fs.rm(TEST_STORE_PATH, { recursive: true, force: true });
22
+ });
23
+ describe("createEmptyRegistry", () => {
24
+ it("should create registry with global namespace", () => {
25
+ const registry = createEmptyRegistry();
26
+ expect(registry.version).toBe("1.0.0");
27
+ expect(registry.namespaces.global).toBeDefined();
28
+ expect(registry.namespaces.global.packages).toEqual({});
29
+ });
30
+ });
31
+ describe("readRegistry / writeRegistry", () => {
32
+ it("should return empty registry when file doesn't exist", async () => {
33
+ const registry = await readRegistry();
34
+ expect(registry.version).toBe("1.0.0");
35
+ expect(registry.namespaces.global).toBeDefined();
36
+ });
37
+ it("should write and read registry", async () => {
38
+ const registry = createEmptyRegistry();
39
+ registry.namespaces["test-ns"] = {
40
+ created: "2026-02-12T10:00:00Z",
41
+ packages: {},
42
+ };
43
+ await writeRegistry(registry);
44
+ const read = await readRegistry();
45
+ expect(read.namespaces["test-ns"]).toBeDefined();
46
+ });
47
+ it("should ensure global namespace exists on read", async () => {
48
+ // Write registry without global
49
+ const registryPath = path.join(TEST_STORE_PATH, "registry.json");
50
+ await fs.writeFile(registryPath, JSON.stringify({
51
+ version: "1.0.0",
52
+ namespaces: {
53
+ "other-ns": { created: "2026-02-12T10:00:00Z", packages: {} }
54
+ }
55
+ }));
56
+ const read = await readRegistry();
57
+ expect(read.namespaces.global).toBeDefined();
58
+ });
59
+ });
60
+ describe("ensureNamespaceInRegistry", () => {
61
+ it("should create namespace if not exists", () => {
62
+ const registry = createEmptyRegistry();
63
+ ensureNamespaceInRegistry(registry, "new-ns");
64
+ expect(registry.namespaces["new-ns"]).toBeDefined();
65
+ expect(registry.namespaces["new-ns"].packages).toEqual({});
66
+ });
67
+ it("should not overwrite existing namespace", () => {
68
+ const registry = createEmptyRegistry();
69
+ registry.namespaces["existing"] = {
70
+ created: "2026-01-01T00:00:00Z",
71
+ packages: { "pkg": { versions: {} } },
72
+ };
73
+ ensureNamespaceInRegistry(registry, "existing");
74
+ expect(registry.namespaces["existing"].created).toBe("2026-01-01T00:00:00Z");
75
+ expect(registry.namespaces["existing"].packages.pkg).toBeDefined();
76
+ });
77
+ });
78
+ describe("addPackageToRegistry", () => {
79
+ it("should add package to existing namespace", () => {
80
+ const registry = createEmptyRegistry();
81
+ const entry = {
82
+ signature: "abc123",
83
+ published: "2026-02-12T10:00:00Z",
84
+ files: 10,
85
+ };
86
+ addPackageToRegistry(registry, "global", "@scope/pkg", "1.0.0", entry);
87
+ expect(registry.namespaces.global.packages["@scope/pkg"]).toBeDefined();
88
+ expect(registry.namespaces.global.packages["@scope/pkg"].versions["1.0.0"]).toEqual(entry);
89
+ });
90
+ it("should create namespace if not exists", () => {
91
+ const registry = createEmptyRegistry();
92
+ const entry = {
93
+ signature: "abc123",
94
+ published: "2026-02-12T10:00:00Z",
95
+ files: 10,
96
+ };
97
+ addPackageToRegistry(registry, "new-ns", "pkg", "1.0.0", entry);
98
+ expect(registry.namespaces["new-ns"]).toBeDefined();
99
+ expect(registry.namespaces["new-ns"].packages.pkg.versions["1.0.0"]).toEqual(entry);
100
+ });
101
+ it("should add multiple versions", () => {
102
+ const registry = createEmptyRegistry();
103
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
104
+ signature: "v1",
105
+ published: "2026-02-12T10:00:00Z",
106
+ files: 10,
107
+ });
108
+ addPackageToRegistry(registry, "global", "pkg", "2.0.0", {
109
+ signature: "v2",
110
+ published: "2026-02-12T11:00:00Z",
111
+ files: 12,
112
+ });
113
+ expect(Object.keys(registry.namespaces.global.packages.pkg.versions)).toHaveLength(2);
114
+ });
115
+ });
116
+ describe("removePackageFromRegistry", () => {
117
+ it("should remove specific version", () => {
118
+ const registry = createEmptyRegistry();
119
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
120
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
121
+ });
122
+ addPackageToRegistry(registry, "global", "pkg", "2.0.0", {
123
+ signature: "v2", published: "2026-02-12T11:00:00Z", files: 12,
124
+ });
125
+ const removed = removePackageFromRegistry(registry, "global", "pkg", "1.0.0");
126
+ expect(removed).toBe(true);
127
+ expect(registry.namespaces.global.packages.pkg.versions["1.0.0"]).toBeUndefined();
128
+ expect(registry.namespaces.global.packages.pkg.versions["2.0.0"]).toBeDefined();
129
+ });
130
+ it("should remove entire package when no version specified", () => {
131
+ const registry = createEmptyRegistry();
132
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
133
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
134
+ });
135
+ const removed = removePackageFromRegistry(registry, "global", "pkg");
136
+ expect(removed).toBe(true);
137
+ expect(registry.namespaces.global.packages.pkg).toBeUndefined();
138
+ });
139
+ it("should clean up empty package entry", () => {
140
+ const registry = createEmptyRegistry();
141
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
142
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
143
+ });
144
+ removePackageFromRegistry(registry, "global", "pkg", "1.0.0");
145
+ expect(registry.namespaces.global.packages.pkg).toBeUndefined();
146
+ });
147
+ it("should return false for non-existent namespace", () => {
148
+ const registry = createEmptyRegistry();
149
+ const removed = removePackageFromRegistry(registry, "nonexistent", "pkg");
150
+ expect(removed).toBe(false);
151
+ });
152
+ it("should return false for non-existent package", () => {
153
+ const registry = createEmptyRegistry();
154
+ const removed = removePackageFromRegistry(registry, "global", "nonexistent");
155
+ expect(removed).toBe(false);
156
+ });
157
+ });
158
+ describe("getPackageFromRegistry / getVersionFromRegistry", () => {
159
+ it("should get package entry", () => {
160
+ const registry = createEmptyRegistry();
161
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
162
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
163
+ });
164
+ const pkg = getPackageFromRegistry(registry, "global", "pkg");
165
+ expect(pkg).toBeDefined();
166
+ expect(pkg?.versions["1.0.0"]).toBeDefined();
167
+ });
168
+ it("should return null for non-existent package", () => {
169
+ const registry = createEmptyRegistry();
170
+ const pkg = getPackageFromRegistry(registry, "global", "nonexistent");
171
+ expect(pkg).toBeNull();
172
+ });
173
+ it("should get version entry", () => {
174
+ const registry = createEmptyRegistry();
175
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
176
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
177
+ });
178
+ const version = getVersionFromRegistry(registry, "global", "pkg", "1.0.0");
179
+ expect(version?.signature).toBe("v1");
180
+ });
181
+ it("should return null for non-existent version", () => {
182
+ const registry = createEmptyRegistry();
183
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
184
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
185
+ });
186
+ const version = getVersionFromRegistry(registry, "global", "pkg", "2.0.0");
187
+ expect(version).toBeNull();
188
+ });
189
+ });
190
+ describe("getNamespacesFromRegistry", () => {
191
+ it("should return global first", () => {
192
+ const registry = createEmptyRegistry();
193
+ registry.namespaces["aaa"] = { created: "2026-02-12T10:00:00Z", packages: {} };
194
+ registry.namespaces["zzz"] = { created: "2026-02-12T10:00:00Z", packages: {} };
195
+ const namespaces = getNamespacesFromRegistry(registry);
196
+ expect(namespaces[0]).toBe("global");
197
+ expect(namespaces).toContain("aaa");
198
+ expect(namespaces).toContain("zzz");
199
+ });
200
+ it("should sort alphabetically after global", () => {
201
+ const registry = createEmptyRegistry();
202
+ registry.namespaces["beta"] = { created: "2026-02-12T10:00:00Z", packages: {} };
203
+ registry.namespaces["alpha"] = { created: "2026-02-12T10:00:00Z", packages: {} };
204
+ const namespaces = getNamespacesFromRegistry(registry);
205
+ expect(namespaces).toEqual(["global", "alpha", "beta"]);
206
+ });
207
+ });
208
+ describe("removeNamespaceFromRegistry", () => {
209
+ it("should remove namespace", () => {
210
+ const registry = createEmptyRegistry();
211
+ registry.namespaces["test-ns"] = { created: "2026-02-12T10:00:00Z", packages: {} };
212
+ const removed = removeNamespaceFromRegistry(registry, "test-ns");
213
+ expect(removed).toBe(true);
214
+ expect(registry.namespaces["test-ns"]).toBeUndefined();
215
+ });
216
+ it("should throw when trying to remove global", () => {
217
+ const registry = createEmptyRegistry();
218
+ expect(() => removeNamespaceFromRegistry(registry, "global"))
219
+ .toThrow("Cannot delete reserved namespace 'global'");
220
+ });
221
+ it("should return false for non-existent namespace", () => {
222
+ const registry = createEmptyRegistry();
223
+ const removed = removeNamespaceFromRegistry(registry, "nonexistent");
224
+ expect(removed).toBe(false);
225
+ });
226
+ });
227
+ describe("getTotalPackageCount", () => {
228
+ it("should count all versions across namespaces", () => {
229
+ const registry = createEmptyRegistry();
230
+ addPackageToRegistry(registry, "global", "pkg1", "1.0.0", {
231
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
232
+ });
233
+ addPackageToRegistry(registry, "global", "pkg1", "2.0.0", {
234
+ signature: "v2", published: "2026-02-12T11:00:00Z", files: 12,
235
+ });
236
+ registry.namespaces["other"] = { created: "2026-02-12T10:00:00Z", packages: {} };
237
+ addPackageToRegistry(registry, "other", "pkg2", "1.0.0", {
238
+ signature: "v3", published: "2026-02-12T12:00:00Z", files: 8,
239
+ });
240
+ const count = getTotalPackageCount(registry);
241
+ expect(count).toBe(3);
242
+ });
243
+ });
244
+ describe("findPackageInAllNamespaces", () => {
245
+ it("should find package across namespaces", () => {
246
+ const registry = createEmptyRegistry();
247
+ addPackageToRegistry(registry, "global", "pkg", "1.0.0", {
248
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
249
+ });
250
+ registry.namespaces["other"] = { created: "2026-02-12T10:00:00Z", packages: {} };
251
+ addPackageToRegistry(registry, "other", "pkg", "2.0.0", {
252
+ signature: "v2", published: "2026-02-12T11:00:00Z", files: 12,
253
+ });
254
+ const results = findPackageInAllNamespaces(registry, "pkg");
255
+ expect(results).toHaveLength(2);
256
+ expect(results[0].namespace).toBe("global"); // global first
257
+ expect(results[0].versions).toContain("1.0.0");
258
+ expect(results[1].namespace).toBe("other");
259
+ expect(results[1].versions).toContain("2.0.0");
260
+ });
261
+ });
262
+ describe("findPackagesByScope", () => {
263
+ it("should find packages by scope", () => {
264
+ const registry = createEmptyRegistry();
265
+ addPackageToRegistry(registry, "global", "@webforgeai/core", "1.0.0", {
266
+ signature: "v1", published: "2026-02-12T10:00:00Z", files: 10,
267
+ });
268
+ addPackageToRegistry(registry, "global", "@webforgeai/utils", "1.0.0", {
269
+ signature: "v2", published: "2026-02-12T11:00:00Z", files: 8,
270
+ });
271
+ addPackageToRegistry(registry, "global", "@other/pkg", "1.0.0", {
272
+ signature: "v3", published: "2026-02-12T12:00:00Z", files: 5,
273
+ });
274
+ const results = findPackagesByScope(registry, "@webforgeai");
275
+ expect(results).toHaveLength(2);
276
+ expect(results.map(r => r.package)).toContain("@webforgeai/core");
277
+ expect(results.map(r => r.package)).toContain("@webforgeai/utils");
278
+ });
279
+ });
280
+ });
281
+ //# sourceMappingURL=registry.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.spec.js","sourceRoot":"","sources":["../../src/core/registry.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Resolver - Algoritmo de resolución de paquetes
3
+ */
4
+ import type { Registry, ResolutionResult } from "../types.js";
5
+ /**
6
+ * Resolve a single package across namespaces
7
+ * Searches namespaces in order and returns the first match
8
+ */
9
+ export declare function resolvePackage(packageName: string, version: string, namespaces: string[], registry: Registry): ResolutionResult;
10
+ /**
11
+ * Resolve multiple packages
12
+ */
13
+ export declare function resolvePackages(packages: {
14
+ name: string;
15
+ version: string;
16
+ }[], namespaces: string[], registry: Registry): ResolutionResult[];
17
+ /**
18
+ * Find a package in a specific namespace only
19
+ */
20
+ export declare function findInNamespace(packageName: string, version: string, namespace: string, registry: Registry): ResolutionResult;
21
+ /**
22
+ * Check if a package exists in any of the given namespaces
23
+ */
24
+ export declare function packageExistsInNamespaces(packageName: string, version: string, namespaces: string[], registry: Registry): boolean;
25
+ /**
26
+ * Get all available versions of a package across namespaces
27
+ */
28
+ export declare function getAllVersions(packageName: string, namespaces: string[], registry: Registry): {
29
+ namespace: string;
30
+ version: string;
31
+ signature: string;
32
+ }[];
33
+ /**
34
+ * Parse package specifier (e.g., "@scope/pkg@1.0.0")
35
+ */
36
+ export declare function parsePackageSpec(spec: string): {
37
+ name: string;
38
+ version: string;
39
+ } | null;
40
+ /**
41
+ * Parse multiple package specifiers
42
+ */
43
+ export declare function parsePackageSpecs(specs: string[]): {
44
+ name: string;
45
+ version: string;
46
+ }[];
47
+ /**
48
+ * Format resolution result for display
49
+ */
50
+ export declare function formatResolutionResult(result: ResolutionResult): string;
51
+ /**
52
+ * Batch format resolution results
53
+ */
54
+ export declare function formatResolutionResults(results: ResolutionResult[]): string;
55
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG9D;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,QAAQ,GACjB,gBAAgB,CAmClB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC7C,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,QAAQ,GACjB,gBAAgB,EAAE,CAIpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,GACjB,gBAAgB,CAElB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,QAAQ,GACjB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAsB7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAWtF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAMvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAE3E"}