@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,274 @@
1
+ /**
2
+ * Integration Tests - Tests con módulos reales y fixtures
3
+ *
4
+ * Estos tests importan los módulos reales y verifican el comportamiento
5
+ * completo del sistema usando los fixtures.
6
+ */
7
+ import { describe, it, expect, afterAll, beforeEach, vi } from "vitest";
8
+ import fs from "fs/promises";
9
+ import path from "path";
10
+ import os from "os";
11
+ import { fileURLToPath } from "url";
12
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
+ const FIXTURES_PATH = path.resolve(__dirname, "../../fixtures/packages");
14
+ const TEST_STORE_PATH = path.join(os.tmpdir(), "devlink-integration-" + Date.now());
15
+ // Mock constants before importing modules
16
+ vi.mock("../constants.js", async () => {
17
+ const actual = await vi.importActual("../constants.js");
18
+ return {
19
+ ...actual,
20
+ getStorePath: () => TEST_STORE_PATH,
21
+ getNamespacesPath: () => path.join(TEST_STORE_PATH, "namespaces"),
22
+ getNamespacePath: (ns) => path.join(TEST_STORE_PATH, "namespaces", ns),
23
+ getPackagePath: (ns, pkg, ver) => path.join(TEST_STORE_PATH, "namespaces", ns, pkg, ver),
24
+ getRegistryPath: () => path.join(TEST_STORE_PATH, "registry.json"),
25
+ getInstallationsPath: () => path.join(TEST_STORE_PATH, "installations.json"),
26
+ getLockPath: () => path.join(TEST_STORE_PATH, ".lock"),
27
+ };
28
+ });
29
+ // Import modules after mocking
30
+ import { publishPackage } from "../commands/publish.js";
31
+ import { listPackages } from "../commands/list.js";
32
+ import { resolvePackagesCommand } from "../commands/resolve.js";
33
+ import { removeFromStore } from "../commands/remove.js";
34
+ import { verifyStore } from "../commands/verify.js";
35
+ import { pruneStore } from "../commands/prune.js";
36
+ import { readRegistry } from "../core/registry.js";
37
+ describe("Integration: Full Workflow", () => {
38
+ beforeEach(async () => {
39
+ await fs.rm(TEST_STORE_PATH, { recursive: true, force: true });
40
+ await fs.mkdir(TEST_STORE_PATH, { recursive: true });
41
+ });
42
+ afterAll(async () => {
43
+ await fs.rm(TEST_STORE_PATH, { recursive: true, force: true });
44
+ });
45
+ describe("Publish Workflow", () => {
46
+ it("should publish @test/sample-lib v1.0.0 to global namespace", async () => {
47
+ const fixturePath = path.join(FIXTURES_PATH, "@test/sample-lib-v1");
48
+ const result = await publishPackage(fixturePath, "global");
49
+ expect(result.name).toBe("@test/sample-lib");
50
+ expect(result.version).toBe("1.0.0");
51
+ expect(result.namespace).toBe("global");
52
+ expect(result.signature).toHaveLength(32); // MD5 hash
53
+ expect(result.files).toBeGreaterThan(0);
54
+ // Verify physical structure
55
+ const pkgPath = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib/1.0.0");
56
+ await expect(fs.access(pkgPath)).resolves.not.toThrow();
57
+ await expect(fs.access(path.join(pkgPath, "package.json"))).resolves.not.toThrow();
58
+ await expect(fs.access(path.join(pkgPath, "dist/index.js"))).resolves.not.toThrow();
59
+ // Verify registry
60
+ const registry = await readRegistry();
61
+ expect(registry.namespaces.global.packages["@test/sample-lib"]).toBeDefined();
62
+ expect(registry.namespaces.global.packages["@test/sample-lib"].versions["1.0.0"]).toBeDefined();
63
+ expect(registry.namespaces.global.packages["@test/sample-lib"].versions["1.0.0"].signature).toBe(result.signature);
64
+ });
65
+ it("should publish multiple versions of same package", async () => {
66
+ const v1Path = path.join(FIXTURES_PATH, "@test/sample-lib-v1");
67
+ const v2Path = path.join(FIXTURES_PATH, "@test/sample-lib-v2");
68
+ await publishPackage(v1Path, "global");
69
+ await publishPackage(v2Path, "global");
70
+ // Verify both versions exist
71
+ const registry = await readRegistry();
72
+ const versions = Object.keys(registry.namespaces.global.packages["@test/sample-lib"].versions);
73
+ expect(versions).toContain("1.0.0");
74
+ expect(versions).toContain("2.0.0");
75
+ // Verify physical files
76
+ const v1PkgPath = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib/1.0.0/package.json");
77
+ const v2PkgPath = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib/2.0.0/package.json");
78
+ const v1Pkg = JSON.parse(await fs.readFile(v1PkgPath, "utf-8"));
79
+ const v2Pkg = JSON.parse(await fs.readFile(v2PkgPath, "utf-8"));
80
+ expect(v1Pkg.version).toBe("1.0.0");
81
+ expect(v2Pkg.version).toBe("2.0.0");
82
+ });
83
+ it("should publish same package to different namespaces", async () => {
84
+ const fixturePath = path.join(FIXTURES_PATH, "@test/sample-lib-v1");
85
+ await publishPackage(fixturePath, "global");
86
+ await publishPackage(fixturePath, "feature-branch");
87
+ // Verify registry
88
+ const registry = await readRegistry();
89
+ expect(registry.namespaces.global.packages["@test/sample-lib"]).toBeDefined();
90
+ expect(registry.namespaces["feature-branch"].packages["@test/sample-lib"]).toBeDefined();
91
+ // Verify physical structure
92
+ const globalPath = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib/1.0.0");
93
+ const featurePath = path.join(TEST_STORE_PATH, "namespaces/feature-branch/@test/sample-lib/1.0.0");
94
+ await expect(fs.access(globalPath)).resolves.not.toThrow();
95
+ await expect(fs.access(featurePath)).resolves.not.toThrow();
96
+ });
97
+ it("should publish non-scoped package", async () => {
98
+ const fixturePath = path.join(FIXTURES_PATH, "utils-helper");
99
+ const result = await publishPackage(fixturePath, "global");
100
+ expect(result.name).toBe("utils-helper");
101
+ expect(result.version).toBe("1.0.0");
102
+ // Verify physical structure (no @ scope directory)
103
+ const pkgPath = path.join(TEST_STORE_PATH, "namespaces/global/utils-helper/1.0.0");
104
+ await expect(fs.access(pkgPath)).resolves.not.toThrow();
105
+ });
106
+ });
107
+ describe("List Workflow", () => {
108
+ beforeEach(async () => {
109
+ // Publish test packages
110
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "global");
111
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v2"), "global");
112
+ await publishPackage(path.join(FIXTURES_PATH, "utils-helper"), "global");
113
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "feature");
114
+ });
115
+ it("should list all packages by namespace", async () => {
116
+ const output = await listPackages();
117
+ expect(output).toContain("global/");
118
+ expect(output).toContain("feature/");
119
+ expect(output).toContain("@test/");
120
+ expect(output).toContain("sample-lib/");
121
+ expect(output).toContain("utils-helper/");
122
+ expect(output).toContain("1.0.0");
123
+ expect(output).toContain("2.0.0");
124
+ });
125
+ it("should filter by namespace", async () => {
126
+ const output = await listPackages({ namespaces: ["feature"] });
127
+ expect(output).toContain("feature/");
128
+ expect(output).not.toContain("global/");
129
+ });
130
+ it("should list by package", async () => {
131
+ const output = await listPackages({
132
+ packages: ["@test/sample-lib"],
133
+ byPackage: true,
134
+ });
135
+ expect(output).toContain("@test/");
136
+ expect(output).toContain("sample-lib/");
137
+ expect(output).toContain("global/");
138
+ expect(output).toContain("feature/");
139
+ expect(output).not.toContain("utils-helper");
140
+ });
141
+ it("should filter by scope", async () => {
142
+ const output = await listPackages({
143
+ packages: ["@test"],
144
+ byPackage: true,
145
+ });
146
+ expect(output).toContain("@test/");
147
+ expect(output).not.toContain("utils-helper");
148
+ });
149
+ });
150
+ describe("Resolve Workflow", () => {
151
+ beforeEach(async () => {
152
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "global");
153
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v2"), "global");
154
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "feature");
155
+ });
156
+ it("should resolve from global namespace", async () => {
157
+ const output = await resolvePackagesCommand(["@test/sample-lib@1.0.0"]);
158
+ expect(output).toContain("✓");
159
+ expect(output).toContain("global");
160
+ });
161
+ it("should resolve from feature namespace first", async () => {
162
+ const output = await resolvePackagesCommand(["@test/sample-lib@1.0.0"], { namespaces: ["feature", "global"] });
163
+ expect(output).toContain("feature");
164
+ });
165
+ it("should fall back to global for v2", async () => {
166
+ const output = await resolvePackagesCommand(["@test/sample-lib@2.0.0"], { namespaces: ["feature", "global"] });
167
+ expect(output).toContain("global");
168
+ });
169
+ it("should show not found for missing version", async () => {
170
+ const output = await resolvePackagesCommand(["@test/sample-lib@3.0.0"]);
171
+ expect(output).toContain("✗");
172
+ expect(output).toContain("not found");
173
+ });
174
+ });
175
+ describe("Remove Workflow", () => {
176
+ beforeEach(async () => {
177
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "global");
178
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v2"), "global");
179
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "feature");
180
+ });
181
+ it("should remove specific version", async () => {
182
+ const result = await removeFromStore("@test/sample-lib@1.0.0", { namespace: "global" });
183
+ expect(result.type).toBe("version");
184
+ expect(result.version).toBe("1.0.0");
185
+ // Verify physical removal
186
+ const removedPath = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib/1.0.0");
187
+ await expect(fs.access(removedPath)).rejects.toThrow();
188
+ // v2 should still exist
189
+ const v2Path = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib/2.0.0");
190
+ await expect(fs.access(v2Path)).resolves.not.toThrow();
191
+ // Registry should be updated
192
+ const registry = await readRegistry();
193
+ expect(registry.namespaces.global.packages["@test/sample-lib"].versions["1.0.0"]).toBeUndefined();
194
+ expect(registry.namespaces.global.packages["@test/sample-lib"].versions["2.0.0"]).toBeDefined();
195
+ });
196
+ it("should remove entire package", async () => {
197
+ const result = await removeFromStore("@test/sample-lib", { namespace: "global" });
198
+ expect(result.type).toBe("package");
199
+ // Verify physical removal
200
+ const pkgPath = path.join(TEST_STORE_PATH, "namespaces/global/@test/sample-lib");
201
+ await expect(fs.access(pkgPath)).rejects.toThrow();
202
+ // Registry should be updated
203
+ const registry = await readRegistry();
204
+ expect(registry.namespaces.global.packages["@test/sample-lib"]).toBeUndefined();
205
+ });
206
+ it("should remove namespace", async () => {
207
+ const result = await removeFromStore("feature");
208
+ expect(result.type).toBe("namespace");
209
+ // Verify physical removal
210
+ const nsPath = path.join(TEST_STORE_PATH, "namespaces/feature");
211
+ await expect(fs.access(nsPath)).rejects.toThrow();
212
+ // Registry should be updated
213
+ const registry = await readRegistry();
214
+ expect(registry.namespaces.feature).toBeUndefined();
215
+ });
216
+ it("should not remove global namespace", async () => {
217
+ await expect(removeFromStore("global")).rejects.toThrow("Cannot delete reserved namespace 'global'");
218
+ });
219
+ });
220
+ describe("Verify Workflow", () => {
221
+ it("should detect orphaned files on disk", async () => {
222
+ // Publish package
223
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "global");
224
+ // Create orphan manually
225
+ const orphanPath = path.join(TEST_STORE_PATH, "namespaces/global/orphan-pkg/1.0.0");
226
+ await fs.mkdir(orphanPath, { recursive: true });
227
+ await fs.writeFile(path.join(orphanPath, "package.json"), JSON.stringify({ name: "orphan-pkg", version: "1.0.0" }));
228
+ const result = await verifyStore(false);
229
+ expect(result.orphansOnDisk.length).toBeGreaterThan(0);
230
+ expect(result.orphansOnDisk.some(o => o.package === "orphan-pkg")).toBe(true);
231
+ });
232
+ it("should fix orphaned files with --fix", async () => {
233
+ // Create orphan
234
+ const orphanPath = path.join(TEST_STORE_PATH, "namespaces/global/orphan-pkg/1.0.0");
235
+ await fs.mkdir(orphanPath, { recursive: true });
236
+ await fs.writeFile(path.join(orphanPath, "package.json"), JSON.stringify({ name: "orphan-pkg", version: "1.0.0" }));
237
+ // Initialize registry
238
+ await publishPackage(path.join(FIXTURES_PATH, "utils-helper"), "global");
239
+ const result = await verifyStore(true);
240
+ expect(result.fixed).toBe(true);
241
+ // Orphan should be removed
242
+ await expect(fs.access(orphanPath)).rejects.toThrow();
243
+ });
244
+ });
245
+ describe("Prune Workflow", () => {
246
+ it("should remove orphaned packages", async () => {
247
+ // Publish package
248
+ await publishPackage(path.join(FIXTURES_PATH, "@test/sample-lib-v1"), "global");
249
+ // Create orphan
250
+ const orphanPath = path.join(TEST_STORE_PATH, "namespaces/global/orphan-pkg/1.0.0");
251
+ await fs.mkdir(orphanPath, { recursive: true });
252
+ await fs.writeFile(path.join(orphanPath, "package.json"), JSON.stringify({ name: "orphan-pkg", version: "1.0.0" }));
253
+ const result = await pruneStore();
254
+ expect(result.removed.length).toBeGreaterThan(0);
255
+ expect(result.removed.some(r => r.package === "orphan-pkg")).toBe(true);
256
+ // Orphan should be removed
257
+ await expect(fs.access(orphanPath)).rejects.toThrow();
258
+ });
259
+ it("should support dry-run", async () => {
260
+ // Create orphan
261
+ const orphanPath = path.join(TEST_STORE_PATH, "namespaces/global/orphan-pkg/1.0.0");
262
+ await fs.mkdir(orphanPath, { recursive: true });
263
+ await fs.writeFile(path.join(orphanPath, "package.json"), JSON.stringify({ name: "orphan-pkg", version: "1.0.0" }));
264
+ // Initialize registry
265
+ await publishPackage(path.join(FIXTURES_PATH, "utils-helper"), "global");
266
+ const result = await pruneStore({ dryRun: true });
267
+ expect(result.dryRun).toBe(true);
268
+ expect(result.removed.length).toBeGreaterThan(0);
269
+ // Orphan should still exist
270
+ await expect(fs.access(orphanPath)).resolves.not.toThrow();
271
+ });
272
+ });
273
+ });
274
+ //# sourceMappingURL=integration.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.spec.js","sourceRoot":"","sources":["../../src/__tests__/integration.spec.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * DevLink CLI v2 - Local package development tool with namespaces
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG"}