trix-ui 0.2.14 → 0.3.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.
Files changed (241) hide show
  1. package/dist/commands/add/analysis.d.ts +4 -4
  2. package/dist/commands/add/analysis.js +56 -56
  3. package/dist/commands/add/command.d.ts +2 -2
  4. package/dist/commands/add/command.js +205 -202
  5. package/dist/commands/add/command.js.map +1 -1
  6. package/dist/commands/add/config.d.ts +2 -2
  7. package/dist/commands/add/config.js +11 -11
  8. package/dist/commands/add/install.d.ts +27 -27
  9. package/dist/commands/add/install.js +80 -80
  10. package/dist/commands/add/package-manager.d.ts +1 -1
  11. package/dist/commands/add/package-manager.js +4 -4
  12. package/dist/commands/add/project-files.d.ts +2 -2
  13. package/dist/commands/add/project-files.js +17 -17
  14. package/dist/commands/add/prompts.d.ts +3 -3
  15. package/dist/commands/add/prompts.js +28 -28
  16. package/dist/commands/add/registry.d.ts +4 -4
  17. package/dist/commands/add/registry.js +6 -6
  18. package/dist/commands/add/types.d.ts +33 -33
  19. package/dist/commands/add/types.js +1 -1
  20. package/dist/commands/add/ui.d.ts +4 -4
  21. package/dist/commands/add/ui.js +55 -55
  22. package/dist/commands/add/validation.d.ts +3 -3
  23. package/dist/commands/add/validation.js +30 -30
  24. package/dist/commands/add-collection.d.ts +1 -1
  25. package/dist/commands/add-collection.js +1 -1
  26. package/dist/commands/add-composite.d.ts +2 -2
  27. package/dist/commands/add-composite.js +205 -201
  28. package/dist/commands/add-composite.js.map +1 -1
  29. package/dist/commands/add-section.d.ts +2 -2
  30. package/dist/commands/add-section.js +205 -201
  31. package/dist/commands/add-section.js.map +1 -1
  32. package/dist/commands/add-wrapper.d.ts +2 -2
  33. package/dist/commands/add-wrapper.js +205 -201
  34. package/dist/commands/add-wrapper.js.map +1 -1
  35. package/dist/commands/add.d.ts +1 -1
  36. package/dist/commands/add.js +1 -1
  37. package/dist/commands/build.d.ts +2 -2
  38. package/dist/commands/build.js +104 -104
  39. package/dist/commands/build.js.map +1 -1
  40. package/dist/commands/doctor.d.ts +2 -2
  41. package/dist/commands/doctor.js +67 -67
  42. package/dist/commands/doctor.js.map +1 -1
  43. package/dist/commands/init/command.d.ts +8 -2
  44. package/dist/commands/init/command.js +186 -114
  45. package/dist/commands/init/command.js.map +1 -1
  46. package/dist/commands/init/config.d.ts +9 -2
  47. package/dist/commands/init/config.js +45 -25
  48. package/dist/commands/init/config.js.map +1 -1
  49. package/dist/commands/init/constants.d.ts +3 -3
  50. package/dist/commands/init/constants.js +105 -105
  51. package/dist/commands/init/dependencies.d.ts +22 -5
  52. package/dist/commands/init/dependencies.js +86 -52
  53. package/dist/commands/init/dependencies.js.map +1 -1
  54. package/dist/commands/init/filesystem.d.ts +7 -1
  55. package/dist/commands/init/filesystem.js +16 -10
  56. package/dist/commands/init/filesystem.js.map +1 -1
  57. package/dist/commands/init/lockfile.d.ts +1 -1
  58. package/dist/commands/init/lockfile.js +1 -1
  59. package/dist/commands/init/package-json.d.ts +17 -6
  60. package/dist/commands/init/package-json.js +28 -18
  61. package/dist/commands/init/package-json.js.map +1 -1
  62. package/dist/commands/init/project.d.ts +15 -3
  63. package/dist/commands/init/project.js +120 -97
  64. package/dist/commands/init/project.js.map +1 -1
  65. package/dist/commands/init/tailwind.d.ts +14 -3
  66. package/dist/commands/init/tailwind.js +141 -33
  67. package/dist/commands/init/tailwind.js.map +1 -1
  68. package/dist/commands/init/templates.d.ts +15 -3
  69. package/dist/commands/init/templates.js +27 -15
  70. package/dist/commands/init/templates.js.map +1 -1
  71. package/dist/commands/init/tsconfig.d.ts +14 -2
  72. package/dist/commands/init/tsconfig.js +561 -273
  73. package/dist/commands/init/tsconfig.js.map +1 -1
  74. package/dist/commands/init/types.d.ts +34 -33
  75. package/dist/commands/init/types.js +1 -1
  76. package/dist/commands/init/ui.d.ts +12 -3
  77. package/dist/commands/init/ui.js +45 -33
  78. package/dist/commands/init/ui.js.map +1 -1
  79. package/dist/commands/init/vite.d.ts +1 -1
  80. package/dist/commands/init/vite.js +17 -27
  81. package/dist/commands/init/vite.js.map +1 -1
  82. package/dist/commands/init.d.ts +1 -1
  83. package/dist/commands/init.js +1 -1
  84. package/dist/commands/list.d.ts +2 -2
  85. package/dist/commands/list.js +69 -62
  86. package/dist/commands/list.js.map +1 -1
  87. package/dist/commands/remove.d.ts +2 -2
  88. package/dist/commands/remove.js +95 -93
  89. package/dist/commands/remove.js.map +1 -1
  90. package/dist/commands/shared/add-collection.d.ts +50 -50
  91. package/dist/commands/shared/add-collection.js +206 -206
  92. package/dist/commands/shared/list-entries.d.ts +6 -6
  93. package/dist/commands/shared/list-entries.js +12 -12
  94. package/dist/commands/shared/name-utils.d.ts +1 -1
  95. package/dist/commands/shared/name-utils.js +13 -13
  96. package/dist/commands/shared/remove-entries.d.ts +16 -16
  97. package/dist/commands/shared/remove-entries.js +41 -41
  98. package/dist/icons/index.d.ts +1 -1
  99. package/dist/icons/index.js +1 -1
  100. package/dist/icons/libraries.d.ts +37 -37
  101. package/dist/icons/libraries.js +34 -34
  102. package/dist/index.d.ts +1 -2
  103. package/dist/index.js +29 -30
  104. package/dist/index.js.map +1 -1
  105. package/dist/lib/config.d.ts +45 -45
  106. package/dist/lib/config.js +97 -97
  107. package/dist/lib/fs.d.ts +82 -76
  108. package/dist/lib/fs.js +299 -302
  109. package/dist/lib/fs.js.map +1 -1
  110. package/dist/lib/highlighter.d.ts +6 -6
  111. package/dist/lib/highlighter.js +7 -7
  112. package/dist/lib/install.d.ts +19 -19
  113. package/dist/lib/install.js +101 -55
  114. package/dist/lib/install.js.map +1 -1
  115. package/dist/lib/lockfile.d.ts +63 -63
  116. package/dist/lib/lockfile.js +179 -173
  117. package/dist/lib/lockfile.js.map +1 -1
  118. package/dist/lib/logger.d.ts +8 -8
  119. package/dist/lib/logger.js +41 -41
  120. package/dist/lib/logger.js.map +1 -1
  121. package/dist/lib/paths.d.ts +14 -14
  122. package/dist/lib/paths.js +41 -31
  123. package/dist/lib/paths.js.map +1 -1
  124. package/dist/lib/registry.d.ts +35 -35
  125. package/dist/lib/registry.js +180 -180
  126. package/dist/schema/index.d.ts +1128 -1128
  127. package/dist/schema/index.js +237 -238
  128. package/dist/schema/index.js.map +1 -1
  129. package/dist/styles/create-style-map.d.ts +4 -4
  130. package/dist/styles/create-style-map.js +68 -68
  131. package/dist/styles/transform-style-map.d.ts +3 -3
  132. package/dist/styles/transform-style-map.js +428 -428
  133. package/dist/styles/transform.d.ts +10 -10
  134. package/dist/styles/transform.js +15 -15
  135. package/dist/utils/index.d.ts +6 -6
  136. package/dist/utils/index.js +5 -5
  137. package/dist/utils/transformers/transform-icons.d.ts +2 -2
  138. package/dist/utils/transformers/transform-icons.js +164 -164
  139. package/dist/utils/transformers/transform-menu.d.ts +2 -2
  140. package/dist/utils/transformers/transform-menu.js +39 -39
  141. package/dist/utils/transformers/transform-render.d.ts +2 -2
  142. package/dist/utils/transformers/transform-render.js +97 -97
  143. package/dist/utils/transformers/types.d.ts +14 -14
  144. package/dist/utils/transformers/types.js +1 -1
  145. package/package.json +69 -69
  146. package/dist/__tests__/contracts/registry.test.d.ts +0 -1
  147. package/dist/__tests__/contracts/registry.test.js +0 -42
  148. package/dist/__tests__/contracts/registry.test.js.map +0 -1
  149. package/dist/__tests__/e2e/cli.test.d.ts +0 -1
  150. package/dist/__tests__/e2e/cli.test.js +0 -67
  151. package/dist/__tests__/e2e/cli.test.js.map +0 -1
  152. package/dist/__tests__/helpers/fs.d.ts +0 -5
  153. package/dist/__tests__/helpers/fs.js +0 -26
  154. package/dist/__tests__/helpers/fs.js.map +0 -1
  155. package/dist/__tests__/integration/commands.integration.test.d.ts +0 -1
  156. package/dist/__tests__/integration/commands.integration.test.js +0 -184
  157. package/dist/__tests__/integration/commands.integration.test.js.map +0 -1
  158. package/dist/commands/__tests__/add-composite.test.d.ts +0 -2
  159. package/dist/commands/__tests__/add-composite.test.js +0 -171
  160. package/dist/commands/__tests__/add-composite.test.js.map +0 -1
  161. package/dist/commands/__tests__/add-entry.mocks.d.ts +0 -23
  162. package/dist/commands/__tests__/add-entry.mocks.js +0 -64
  163. package/dist/commands/__tests__/add-entry.mocks.js.map +0 -1
  164. package/dist/commands/__tests__/add-section.test.d.ts +0 -2
  165. package/dist/commands/__tests__/add-section.test.js +0 -191
  166. package/dist/commands/__tests__/add-section.test.js.map +0 -1
  167. package/dist/commands/__tests__/add-wrapper.test.d.ts +0 -2
  168. package/dist/commands/__tests__/add-wrapper.test.js +0 -171
  169. package/dist/commands/__tests__/add-wrapper.test.js.map +0 -1
  170. package/dist/commands/__tests__/cli-mocks.d.ts +0 -1
  171. package/dist/commands/__tests__/cli-mocks.js +0 -24
  172. package/dist/commands/__tests__/cli-mocks.js.map +0 -1
  173. package/dist/commands/__tests__/doctor.mocks.d.ts +0 -6
  174. package/dist/commands/__tests__/doctor.mocks.js +0 -20
  175. package/dist/commands/__tests__/doctor.mocks.js.map +0 -1
  176. package/dist/commands/__tests__/doctor.test.d.ts +0 -2
  177. package/dist/commands/__tests__/doctor.test.js +0 -80
  178. package/dist/commands/__tests__/doctor.test.js.map +0 -1
  179. package/dist/commands/__tests__/list.mocks.d.ts +0 -8
  180. package/dist/commands/__tests__/list.mocks.js +0 -20
  181. package/dist/commands/__tests__/list.mocks.js.map +0 -1
  182. package/dist/commands/__tests__/list.test.d.ts +0 -2
  183. package/dist/commands/__tests__/list.test.js +0 -60
  184. package/dist/commands/__tests__/list.test.js.map +0 -1
  185. package/dist/commands/__tests__/remove.mocks.d.ts +0 -9
  186. package/dist/commands/__tests__/remove.mocks.js +0 -26
  187. package/dist/commands/__tests__/remove.mocks.js.map +0 -1
  188. package/dist/commands/__tests__/remove.test.d.ts +0 -2
  189. package/dist/commands/__tests__/remove.test.js +0 -116
  190. package/dist/commands/__tests__/remove.test.js.map +0 -1
  191. package/dist/commands/add/__tests__/__mocks__/cli-mocks.d.ts +0 -1
  192. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js +0 -21
  193. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js.map +0 -1
  194. package/dist/commands/add/__tests__/add.mocks.d.ts +0 -19
  195. package/dist/commands/add/__tests__/add.mocks.js +0 -60
  196. package/dist/commands/add/__tests__/add.mocks.js.map +0 -1
  197. package/dist/commands/add/__tests__/add.test.d.ts +0 -2
  198. package/dist/commands/add/__tests__/add.test.js +0 -141
  199. package/dist/commands/add/__tests__/add.test.js.map +0 -1
  200. package/dist/commands/init/__tests__/init.mocks.d.ts +0 -24
  201. package/dist/commands/init/__tests__/init.mocks.js +0 -84
  202. package/dist/commands/init/__tests__/init.mocks.js.map +0 -1
  203. package/dist/commands/init/__tests__/init.test.d.ts +0 -2
  204. package/dist/commands/init/__tests__/init.test.js +0 -283
  205. package/dist/commands/init/__tests__/init.test.js.map +0 -1
  206. package/dist/commands/init/__tests__/tailwind.test.d.ts +0 -1
  207. package/dist/commands/init/__tests__/tailwind.test.js +0 -56
  208. package/dist/commands/init/__tests__/tailwind.test.js.map +0 -1
  209. package/dist/commands/init/__tests__/tsconfig.test.d.ts +0 -1
  210. package/dist/commands/init/__tests__/tsconfig.test.js +0 -108
  211. package/dist/commands/init/__tests__/tsconfig.test.js.map +0 -1
  212. package/dist/commands/init/__tests__/vite.test.d.ts +0 -1
  213. package/dist/commands/init/__tests__/vite.test.js +0 -66
  214. package/dist/commands/init/__tests__/vite.test.js.map +0 -1
  215. package/dist/commands/list-sections.d.ts +0 -2
  216. package/dist/commands/list-sections.js +0 -20
  217. package/dist/commands/list-sections.js.map +0 -1
  218. package/dist/commands/list-wrappers.d.ts +0 -2
  219. package/dist/commands/list-wrappers.js +0 -20
  220. package/dist/commands/list-wrappers.js.map +0 -1
  221. package/dist/commands/remove-section.d.ts +0 -2
  222. package/dist/commands/remove-section.js +0 -37
  223. package/dist/commands/remove-section.js.map +0 -1
  224. package/dist/commands/remove-wrapper.d.ts +0 -2
  225. package/dist/commands/remove-wrapper.js +0 -37
  226. package/dist/commands/remove-wrapper.js.map +0 -1
  227. package/dist/lib/__tests__/config.test.d.ts +0 -1
  228. package/dist/lib/__tests__/config.test.js +0 -49
  229. package/dist/lib/__tests__/config.test.js.map +0 -1
  230. package/dist/lib/__tests__/install.test.d.ts +0 -1
  231. package/dist/lib/__tests__/install.test.js +0 -149
  232. package/dist/lib/__tests__/install.test.js.map +0 -1
  233. package/dist/lib/__tests__/lockfile.test.d.ts +0 -1
  234. package/dist/lib/__tests__/lockfile.test.js +0 -89
  235. package/dist/lib/__tests__/lockfile.test.js.map +0 -1
  236. package/dist/lib/__tests__/paths.test.d.ts +0 -1
  237. package/dist/lib/__tests__/paths.test.js +0 -39
  238. package/dist/lib/__tests__/paths.test.js.map +0 -1
  239. package/dist/lib/__tests__/registry.test.d.ts +0 -1
  240. package/dist/lib/__tests__/registry.test.js +0 -76
  241. package/dist/lib/__tests__/registry.test.js.map +0 -1
@@ -1,184 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import path from "node:path";
3
- import { describe, expect, it, vi } from "vitest";
4
- import "../../commands/__tests__/cli-mocks.js";
5
- import { createTempDir, pathExists, removeDir, writeFile, writeJson } from "../helpers/fs.js";
6
- import { addCommand } from "../../commands/add.js";
7
- import { addCompositeCommand } from "../../commands/add-composite.js";
8
- import { addSectionCommand } from "../../commands/add-section.js";
9
- import { addWrapperCommand } from "../../commands/add-wrapper.js";
10
- import { doctorCommand } from "../../commands/doctor.js";
11
- import { initCommand } from "../../commands/init.js";
12
- import { listCommand } from "../../commands/list.js";
13
- import { removeCommand } from "../../commands/remove.js";
14
- async function setupLocalRegistry(cwd) {
15
- await writeJson(path.join(cwd, "registry", "index.json"), {
16
- version: 1,
17
- components: [
18
- {
19
- name: "button",
20
- description: "Button",
21
- files: [
22
- {
23
- source: "components/ui/button.tsx",
24
- target: "{{components}}/button.tsx"
25
- }
26
- ]
27
- }
28
- ],
29
- sections: [
30
- {
31
- name: "hero",
32
- description: "Hero",
33
- files: [
34
- {
35
- source: "sections/hero.tsx",
36
- target: "{{sections}}/hero.tsx"
37
- }
38
- ],
39
- dependencies: {
40
- local: ["button"]
41
- }
42
- }
43
- ],
44
- wrappers: [
45
- {
46
- name: "glow-wrapper",
47
- description: "Glow",
48
- files: [
49
- {
50
- source: "wrappers/glow-wrapper.tsx",
51
- target: "{{wrappers}}/glow-wrapper.tsx"
52
- }
53
- ]
54
- }
55
- ],
56
- composites: [
57
- {
58
- name: "marketing-stack",
59
- description: "Marketing stack",
60
- files: [
61
- {
62
- source: "composites/marketing-stack.tsx",
63
- target: "{{composites}}/marketing-stack.tsx"
64
- }
65
- ],
66
- dependencies: {
67
- local: ["button"]
68
- }
69
- }
70
- ]
71
- });
72
- await writeFile(path.join(cwd, "templates", "components", "ui", "button.tsx"), "export const Button = () => null;");
73
- await writeFile(path.join(cwd, "templates", "sections", "hero.tsx"), "export const Hero = () => null;");
74
- await writeFile(path.join(cwd, "templates", "wrappers", "glow-wrapper.tsx"), "export const GlowWrapper = ({ children }) => children;");
75
- await writeFile(path.join(cwd, "templates", "composites", "marketing-stack.tsx"), "export const MarketingStack = () => null;");
76
- await writeFile(path.join(cwd, "templates", "lib", "utils.ts"), "export const cn = (...args: string[]) => args.join(\" \");");
77
- await writeFile(path.join(cwd, "templates", "styles", "globals.css"), ":root { --background: #fff; }");
78
- }
79
- async function setupProjectConfig(cwd) {
80
- await writeJson(path.join(cwd, "trix-ui.json"), {
81
- registry: {
82
- type: "local",
83
- path: "registry/index.json"
84
- },
85
- paths: {
86
- components: "components/ui",
87
- sections: "components/sections",
88
- wrappers: "components/wrappers",
89
- composites: "components/composites",
90
- utils: "lib/utils.ts",
91
- styles: "styles/globals.css"
92
- },
93
- barrel: false
94
- });
95
- }
96
- describe("integration CLI flows", () => {
97
- it("initializes project and installs/removes entries", async () => {
98
- const cwd = await createTempDir("trix-ui-int-");
99
- try {
100
- await writeJson(path.join(cwd, "package.json"), {
101
- name: "demo",
102
- dependencies: {
103
- react: "18.2.0",
104
- "react-dom": "18.2.0",
105
- tailwindcss: "4.1.0",
106
- "@tailwindcss/postcss": "0.0.0"
107
- }
108
- });
109
- await writeFile(path.join(cwd, "tsconfig.json"), `{
110
- "compilerOptions": {
111
- "baseUrl": ".",
112
- "paths": {
113
- "@/*": ["./*"]
114
- }
115
- }
116
- }`);
117
- await initCommand.parseAsync(["node", "cli", "--cwd", cwd, "--yes"]);
118
- expect(await pathExists(path.join(cwd, "trix-ui.json"))).toBe(true);
119
- expect(await pathExists(path.join(cwd, ".ui", "lock.json"))).toBe(true);
120
- expect(await pathExists(path.join(cwd, "globals.css"))).toBe(true);
121
- await setupLocalRegistry(cwd);
122
- await setupProjectConfig(cwd);
123
- await addCommand.parseAsync([
124
- "node",
125
- "cli",
126
- "button",
127
- "--cwd",
128
- cwd,
129
- "--yes",
130
- "--skip-deps"
131
- ]);
132
- expect(await pathExists(path.join(cwd, "components", "ui", "button.tsx"))).toBe(true);
133
- await addSectionCommand.parseAsync([
134
- "node",
135
- "cli",
136
- "hero",
137
- "--cwd",
138
- cwd,
139
- "--yes",
140
- "--skip-deps"
141
- ]);
142
- expect(await pathExists(path.join(cwd, "components", "sections", "hero.tsx"))).toBe(true);
143
- await addWrapperCommand.parseAsync([
144
- "node",
145
- "cli",
146
- "glow-wrapper",
147
- "--cwd",
148
- cwd,
149
- "--yes",
150
- "--skip-deps"
151
- ]);
152
- expect(await pathExists(path.join(cwd, "components", "wrappers", "glow-wrapper.tsx"))).toBe(true);
153
- await addCompositeCommand.parseAsync([
154
- "node",
155
- "cli",
156
- "marketing-stack",
157
- "--cwd",
158
- cwd,
159
- "--yes",
160
- "--skip-deps"
161
- ]);
162
- expect(await pathExists(path.join(cwd, "components", "composites", "marketing-stack.tsx"))).toBe(true);
163
- const logSpy = vi.spyOn(console, "log").mockImplementation(() => undefined);
164
- await listCommand.parseAsync(["node", "cli", "--cwd", cwd, "--type", "sections"]);
165
- logSpy.mockRestore();
166
- await doctorCommand.parseAsync(["node", "cli", "--cwd", cwd]);
167
- await removeCommand.parseAsync([
168
- "node",
169
- "cli",
170
- "--section",
171
- "hero",
172
- "--cwd",
173
- cwd
174
- ]);
175
- expect(await pathExists(path.join(cwd, "components", "sections", "hero.tsx"))).toBe(false);
176
- const lockfile = JSON.parse(await fs.readFile(path.join(cwd, ".ui", "lock.json"), "utf-8"));
177
- expect(lockfile.components?.button).toBeDefined();
178
- }
179
- finally {
180
- await removeDir(cwd);
181
- }
182
- });
183
- });
184
- //# sourceMappingURL=commands.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/commands.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import "./cli-mocks.js";
2
- import "./add-entry.mocks.js";
@@ -1,171 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import "./cli-mocks.js";
3
- import "./add-entry.mocks.js";
4
- import { analyzeEntryDependencies, confirmDependencyInstallation, confirmOverwrite, directoryExists, ensureProjectFiles, getRegistryComposites, installEntries, installNpmDependencies, loadConfig, loadLockfile, loadRegistry, normalizeEntryNames, saveLockfile, validateEntries } from "./add-entry.mocks.js";
5
- let addCompositeCommand;
6
- const baseConfig = {
7
- paths: {
8
- components: "components/ui",
9
- sections: "components/sections",
10
- wrappers: "components/wrappers",
11
- composites: "components/composites",
12
- utils: "lib/utils.ts",
13
- styles: "globals.css"
14
- }
15
- };
16
- const baseLockfile = {
17
- components: {},
18
- sections: {},
19
- wrappers: {},
20
- composites: {}
21
- };
22
- describe("add-composite command", () => {
23
- beforeEach(async () => {
24
- vi.resetModules();
25
- vi.resetAllMocks();
26
- vi.spyOn(process, "exit").mockImplementation(() => undefined);
27
- const mod = await import("../add-composite.js");
28
- addCompositeCommand = mod.addCompositeCommand;
29
- });
30
- it("exits if directory does not exist", async () => {
31
- directoryExists.mockResolvedValue(false);
32
- await addCompositeCommand.parseAsync(["node", "cli", "marketing-stack"]);
33
- expect(process.exit).toHaveBeenCalledWith(1);
34
- });
35
- it("exits when no composites exist in registry", async () => {
36
- directoryExists.mockResolvedValue(true);
37
- loadConfig.mockResolvedValue(baseConfig);
38
- loadRegistry.mockResolvedValue({});
39
- loadLockfile.mockResolvedValue(baseLockfile);
40
- getRegistryComposites.mockReturnValue([]);
41
- await addCompositeCommand.parseAsync(["node", "cli", "marketing-stack"]);
42
- expect(process.exit).toHaveBeenCalledWith(1);
43
- });
44
- it("installs composites and dependencies", async () => {
45
- directoryExists.mockResolvedValue(true);
46
- loadConfig.mockResolvedValue(baseConfig);
47
- loadRegistry.mockResolvedValue({ components: [] });
48
- loadLockfile.mockResolvedValue(baseLockfile);
49
- getRegistryComposites.mockReturnValue([{ name: "marketing-stack" }]);
50
- normalizeEntryNames.mockReturnValue(["marketing-stack"]);
51
- validateEntries.mockReturnValue({
52
- valid: ["marketing-stack"],
53
- invalid: [],
54
- suggestions: []
55
- });
56
- analyzeEntryDependencies.mockReturnValue({
57
- entries: ["marketing-stack"],
58
- componentDependencies: ["button"],
59
- npmDependencies: new Set(["clsx"]),
60
- conflicts: [],
61
- totalTargets: 2,
62
- totalToInstall: 2,
63
- missingDependencies: []
64
- });
65
- ensureProjectFiles.mockResolvedValue(undefined);
66
- installEntries
67
- .mockResolvedValueOnce({
68
- installed: ["button"],
69
- skipped: [],
70
- failed: [],
71
- npmDependencies: new Set(["clsx"])
72
- })
73
- .mockResolvedValueOnce({
74
- installed: ["marketing-stack"],
75
- skipped: [],
76
- failed: [],
77
- npmDependencies: new Set()
78
- });
79
- saveLockfile.mockResolvedValue(undefined);
80
- confirmDependencyInstallation.mockResolvedValue(true);
81
- installNpmDependencies.mockResolvedValue(undefined);
82
- await addCompositeCommand.parseAsync(["node", "cli", "marketing-stack", "--yes"]);
83
- expect(installEntries).toHaveBeenCalled();
84
- expect(saveLockfile).toHaveBeenCalled();
85
- expect(installNpmDependencies).toHaveBeenCalled();
86
- });
87
- it("exits when composites are invalid", async () => {
88
- directoryExists.mockResolvedValue(true);
89
- loadConfig.mockResolvedValue(baseConfig);
90
- loadRegistry.mockResolvedValue({ components: [] });
91
- loadLockfile.mockResolvedValue(baseLockfile);
92
- getRegistryComposites.mockReturnValue([{ name: "marketing-stack" }]);
93
- normalizeEntryNames.mockReturnValue(["missing"]);
94
- validateEntries.mockReturnValue({
95
- valid: [],
96
- invalid: ["missing"],
97
- suggestions: ["marketing-stack"]
98
- });
99
- await addCompositeCommand.parseAsync(["node", "cli", "missing"]);
100
- expect(process.exit).toHaveBeenCalledWith(1);
101
- expect(installEntries).not.toHaveBeenCalled();
102
- });
103
- it("skips npm installation when --skip-deps is used", async () => {
104
- directoryExists.mockResolvedValue(true);
105
- loadConfig.mockResolvedValue(baseConfig);
106
- loadRegistry.mockResolvedValue({ components: [] });
107
- loadLockfile.mockResolvedValue(baseLockfile);
108
- getRegistryComposites.mockReturnValue([{ name: "marketing-stack" }]);
109
- normalizeEntryNames.mockReturnValue(["marketing-stack"]);
110
- validateEntries.mockReturnValue({
111
- valid: ["marketing-stack"],
112
- invalid: [],
113
- suggestions: []
114
- });
115
- analyzeEntryDependencies.mockReturnValue({
116
- entries: ["marketing-stack"],
117
- componentDependencies: [],
118
- npmDependencies: new Set(["clsx"]),
119
- conflicts: [],
120
- totalTargets: 1,
121
- totalToInstall: 1,
122
- missingDependencies: []
123
- });
124
- ensureProjectFiles.mockResolvedValue(undefined);
125
- installEntries.mockResolvedValue({
126
- installed: ["marketing-stack"],
127
- skipped: [],
128
- failed: [],
129
- npmDependencies: new Set(["clsx"])
130
- });
131
- saveLockfile.mockResolvedValue(undefined);
132
- await addCompositeCommand.parseAsync([
133
- "node",
134
- "cli",
135
- "marketing-stack",
136
- "--yes",
137
- "--skip-deps"
138
- ]);
139
- expect(installNpmDependencies).not.toHaveBeenCalled();
140
- });
141
- it("cancels when overwrite is declined", async () => {
142
- directoryExists.mockResolvedValue(true);
143
- loadConfig.mockResolvedValue(baseConfig);
144
- loadRegistry.mockResolvedValue({ components: [] });
145
- loadLockfile.mockResolvedValue({
146
- ...baseLockfile,
147
- composites: { "marketing-stack": { files: [], version: "1", installedAt: "" } }
148
- });
149
- getRegistryComposites.mockReturnValue([{ name: "marketing-stack" }]);
150
- normalizeEntryNames.mockReturnValue(["marketing-stack"]);
151
- validateEntries.mockReturnValue({
152
- valid: ["marketing-stack"],
153
- invalid: [],
154
- suggestions: []
155
- });
156
- analyzeEntryDependencies.mockReturnValue({
157
- entries: ["marketing-stack"],
158
- componentDependencies: [],
159
- npmDependencies: new Set(),
160
- conflicts: ["marketing-stack"],
161
- totalTargets: 1,
162
- totalToInstall: 0,
163
- missingDependencies: []
164
- });
165
- confirmOverwrite.mockResolvedValue(false);
166
- await addCompositeCommand.parseAsync(["node", "cli", "marketing-stack"]);
167
- expect(process.exit).toHaveBeenCalledWith(0);
168
- expect(installEntries).not.toHaveBeenCalled();
169
- });
170
- });
171
- //# sourceMappingURL=add-composite.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-composite.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/add-composite.test.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import type { Mock } from "vitest";
2
- export declare const directoryExists: Mock;
3
- export declare const loadConfig: Mock;
4
- export declare const loadRegistry: Mock;
5
- export declare const loadLockfile: Mock;
6
- export declare const saveLockfile: Mock;
7
- export declare const getRegistrySections: Mock;
8
- export declare const getRegistryWrappers: Mock;
9
- export declare const getRegistryComposites: Mock;
10
- export declare const analyzeEntryDependencies: Mock;
11
- export declare const confirmOverwrite: Mock;
12
- export declare const createEmptyResult: Mock;
13
- export declare const displayInstallationPlan: Mock;
14
- export declare const displayResults: Mock;
15
- export declare const getEntryNames: Mock;
16
- export declare const installEntries: Mock;
17
- export declare const normalizeEntryNames: Mock;
18
- export declare const validateEntries: Mock;
19
- export declare const ensureProjectFiles: Mock;
20
- export declare const confirmDependencyInstallation: Mock;
21
- export declare const confirmInstallation: Mock;
22
- export declare const displayManualInstallInstructions: Mock;
23
- export declare const installNpmDependencies: Mock;
@@ -1,64 +0,0 @@
1
- import { vi } from "vitest";
2
- export const directoryExists = vi.fn();
3
- export const loadConfig = vi.fn();
4
- export const loadRegistry = vi.fn();
5
- export const loadLockfile = vi.fn();
6
- export const saveLockfile = vi.fn();
7
- export const getRegistrySections = vi.fn();
8
- export const getRegistryWrappers = vi.fn();
9
- export const getRegistryComposites = vi.fn();
10
- export const analyzeEntryDependencies = vi.fn();
11
- export const confirmOverwrite = vi.fn();
12
- export const createEmptyResult = vi.fn();
13
- export const displayInstallationPlan = vi.fn();
14
- export const displayResults = vi.fn();
15
- export const getEntryNames = vi.fn();
16
- export const installEntries = vi.fn();
17
- export const normalizeEntryNames = vi.fn();
18
- export const validateEntries = vi.fn();
19
- export const ensureProjectFiles = vi.fn();
20
- export const confirmDependencyInstallation = vi.fn();
21
- export const confirmInstallation = vi.fn();
22
- export const displayManualInstallInstructions = vi.fn();
23
- export const installNpmDependencies = vi.fn();
24
- vi.mock("../../lib/fs.js", () => ({
25
- directoryExists
26
- }));
27
- vi.mock("../../lib/config.js", () => ({
28
- loadConfig
29
- }));
30
- vi.mock("../../lib/lockfile.js", () => ({
31
- loadLockfile,
32
- saveLockfile
33
- }));
34
- vi.mock("../../lib/registry.js", () => ({
35
- loadRegistry,
36
- getRegistrySections,
37
- getRegistryWrappers,
38
- getRegistryComposites
39
- }));
40
- vi.mock("../shared/add-collection.js", () => ({
41
- analyzeEntryDependencies,
42
- confirmOverwrite,
43
- createEmptyResult,
44
- displayInstallationPlan,
45
- displayResults,
46
- getEntryNames,
47
- installEntries,
48
- normalizeEntryNames,
49
- validateEntries
50
- }));
51
- vi.mock("../add/project-files.js", () => ({
52
- ensureProjectFiles
53
- }));
54
- vi.mock("../add/prompts.js", () => ({
55
- confirmDependencyInstallation,
56
- confirmInstallation
57
- }));
58
- vi.mock("../add/ui.js", () => ({
59
- displayManualInstallInstructions
60
- }));
61
- vi.mock("../add/install.js", () => ({
62
- installNpmDependencies
63
- }));
64
- //# sourceMappingURL=add-entry.mocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-entry.mocks.js","sourceRoot":"","sources":["../../../src/commands/__tests__/add-entry.mocks.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import "./cli-mocks.js";
2
- import "./add-entry.mocks.js";