trix-ui 0.1.8 → 0.2.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 (45) hide show
  1. package/dist/commands/add/__tests__/__mocks__/cli-mocks.d.ts +1 -0
  2. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js +21 -0
  3. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js.map +1 -0
  4. package/dist/commands/add/__tests__/add.mocks.d.ts +19 -0
  5. package/dist/commands/add/__tests__/add.mocks.js +60 -0
  6. package/dist/commands/add/__tests__/add.mocks.js.map +1 -0
  7. package/dist/commands/add/__tests__/add.test.d.ts +2 -0
  8. package/dist/commands/add/__tests__/add.test.js +129 -0
  9. package/dist/commands/add/__tests__/add.test.js.map +1 -0
  10. package/dist/commands/add/command.js +12 -7
  11. package/dist/commands/add/command.js.map +1 -1
  12. package/dist/commands/add/project-files.js +5 -3
  13. package/dist/commands/add/project-files.js.map +1 -1
  14. package/dist/commands/add-collection.d.ts +1 -0
  15. package/dist/commands/add-collection.js +2 -0
  16. package/dist/commands/add-collection.js.map +1 -0
  17. package/dist/commands/add-section.js +162 -60
  18. package/dist/commands/add-section.js.map +1 -1
  19. package/dist/commands/add-wrapper.js +162 -60
  20. package/dist/commands/add-wrapper.js.map +1 -1
  21. package/dist/commands/init/command.js +6 -12
  22. package/dist/commands/init/command.js.map +1 -1
  23. package/dist/commands/init/tsconfig.d.ts +2 -0
  24. package/dist/commands/init/tsconfig.js +274 -0
  25. package/dist/commands/init/tsconfig.js.map +1 -0
  26. package/dist/commands/shared/add-collection.d.ts +49 -0
  27. package/dist/commands/shared/add-collection.js +210 -0
  28. package/dist/commands/shared/add-collection.js.map +1 -0
  29. package/dist/index.js +2 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/lib/config.d.ts +9 -1
  32. package/dist/lib/config.js +3 -0
  33. package/dist/lib/config.js.map +1 -1
  34. package/dist/lib/install.d.ts +1 -1
  35. package/dist/lib/install.js +4 -2
  36. package/dist/lib/install.js.map +1 -1
  37. package/dist/lib/logger.js +25 -5
  38. package/dist/lib/logger.js.map +1 -1
  39. package/dist/lib/paths.d.ts +2 -0
  40. package/dist/lib/paths.js +8 -2
  41. package/dist/lib/paths.js.map +1 -1
  42. package/dist/lib/registry.d.ts +7 -1
  43. package/dist/lib/registry.js +157 -11
  44. package/dist/lib/registry.js.map +1 -1
  45. package/package.json +1 -1
@@ -10,6 +10,7 @@ import { checkDependencies, confirmInstallation, installDependencies, } from "./
10
10
  import { directoryExists } from "./filesystem.js";
11
11
  import { detectProject, validateProject } from "./project.js";
12
12
  import { setupGlobalStyles, setupTailwind } from "./tailwind.js";
13
+ import { setupTypeScriptPaths } from "./tsconfig.js";
13
14
  import { displayProjectInfo, displaySuccessMessage } from "./ui.js";
14
15
  export const initCommand = new Command("init")
15
16
  .description("Initialize a project for trix-ui artifacts")
@@ -63,18 +64,6 @@ export const initCommand = new Command("init")
63
64
  }
64
65
  shouldOverwriteConfig = true;
65
66
  }
66
- if (!options.yes && !options.silent) {
67
- const { confirmed } = await prompts({
68
- type: "confirm",
69
- name: "confirmed",
70
- message: "Continue with initialization?",
71
- initial: true,
72
- });
73
- if (!confirmed) {
74
- logger.info("Initialization cancelled");
75
- process.exit(0);
76
- }
77
- }
78
67
  spinner?.start("Checking dependencies...");
79
68
  const dependencies = await checkDependencies(cwd, projectInfo);
80
69
  spinner?.stop();
@@ -105,6 +94,11 @@ export const initCommand = new Command("init")
105
94
  spinner?.start("Setting up CSS variables...");
106
95
  await setupGlobalStyles(cwd, config, options);
107
96
  spinner?.succeed("CSS variables configured");
97
+ if (projectInfo.typescript) {
98
+ spinner?.start("Configuring TypeScript path aliases...");
99
+ await setupTypeScriptPaths(cwd, projectInfo);
100
+ spinner?.succeed("TypeScript path aliases configured");
101
+ }
108
102
  if (!options.silent) {
109
103
  displaySuccessMessage(projectInfo, config);
110
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/init/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/init/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ProjectInfo } from "./types.js";
2
+ export declare function setupTypeScriptPaths(cwd: string, projectInfo: ProjectInfo): Promise<void>;
@@ -0,0 +1,274 @@
1
+ import path from "node:path";
2
+ import { directoryExists, fileExists, readFile, writeFile } from "../../lib/fs.js";
3
+ function isRecord(value) {
4
+ return typeof value === "object" && value !== null && !Array.isArray(value);
5
+ }
6
+ function normalizePathSegment(value) {
7
+ const normalized = path.posix
8
+ .normalize(value.replace(/\\/g, "/").trim())
9
+ .replace(/\/+$/, "");
10
+ return normalized.length > 0 ? normalized : ".";
11
+ }
12
+ function isEscaped(input, index) {
13
+ let slashCount = 0;
14
+ for (let i = index - 1; i >= 0 && input[i] === "\\"; i -= 1) {
15
+ slashCount += 1;
16
+ }
17
+ return slashCount % 2 === 1;
18
+ }
19
+ function findNextMeaningfulChar(input, startIndex) {
20
+ let index = startIndex;
21
+ while (index < input.length) {
22
+ const char = input[index];
23
+ const next = input[index + 1];
24
+ if (char === " " || char === "\t" || char === "\n" || char === "\r") {
25
+ index += 1;
26
+ continue;
27
+ }
28
+ if (char === "/" && next === "/") {
29
+ index += 2;
30
+ while (index < input.length &&
31
+ input[index] !== "\n" &&
32
+ input[index] !== "\r") {
33
+ index += 1;
34
+ }
35
+ continue;
36
+ }
37
+ if (char === "/" && next === "*") {
38
+ index += 2;
39
+ while (index < input.length) {
40
+ if (input[index] === "*" && input[index + 1] === "/") {
41
+ index += 2;
42
+ break;
43
+ }
44
+ index += 1;
45
+ }
46
+ continue;
47
+ }
48
+ return char;
49
+ }
50
+ return "";
51
+ }
52
+ function sanitizeJsonc(input) {
53
+ let output = "";
54
+ let index = 0;
55
+ let inString = false;
56
+ let inLineComment = false;
57
+ let inBlockComment = false;
58
+ while (index < input.length) {
59
+ const char = input[index];
60
+ const next = input[index + 1];
61
+ if (inLineComment) {
62
+ if (char === "\n" || char === "\r") {
63
+ inLineComment = false;
64
+ output += char;
65
+ }
66
+ index += 1;
67
+ continue;
68
+ }
69
+ if (inBlockComment) {
70
+ if (char === "*" && next === "/") {
71
+ inBlockComment = false;
72
+ index += 2;
73
+ continue;
74
+ }
75
+ index += 1;
76
+ continue;
77
+ }
78
+ if (inString) {
79
+ output += char;
80
+ if (char === "\"" && !isEscaped(input, index)) {
81
+ inString = false;
82
+ }
83
+ index += 1;
84
+ continue;
85
+ }
86
+ if (char === "\"") {
87
+ inString = true;
88
+ output += char;
89
+ index += 1;
90
+ continue;
91
+ }
92
+ if (char === "/" && next === "/") {
93
+ inLineComment = true;
94
+ index += 2;
95
+ continue;
96
+ }
97
+ if (char === "/" && next === "*") {
98
+ inBlockComment = true;
99
+ index += 2;
100
+ continue;
101
+ }
102
+ if (char === ",") {
103
+ const nextMeaningful = findNextMeaningfulChar(input, index + 1);
104
+ if (nextMeaningful === "}" || nextMeaningful === "]") {
105
+ index += 1;
106
+ continue;
107
+ }
108
+ }
109
+ output += char;
110
+ index += 1;
111
+ }
112
+ return output;
113
+ }
114
+ function parseJsonc(content, filePath) {
115
+ try {
116
+ const sanitized = sanitizeJsonc(content);
117
+ const parsed = JSON.parse(sanitized);
118
+ if (!isRecord(parsed)) {
119
+ throw new Error("Root value must be an object");
120
+ }
121
+ return parsed;
122
+ }
123
+ catch (error) {
124
+ const message = error instanceof Error ? error.message : "Unknown error";
125
+ throw new Error(`Invalid JSON in ${path.basename(filePath)}: ${message}`);
126
+ }
127
+ }
128
+ async function readTsConfig(filePath) {
129
+ const content = await readFile(filePath);
130
+ return parseJsonc(content, filePath);
131
+ }
132
+ function getCompilerOptions(tsconfig) {
133
+ if (!tsconfig.compilerOptions) {
134
+ tsconfig.compilerOptions = {};
135
+ }
136
+ if (!isRecord(tsconfig.compilerOptions)) {
137
+ throw new Error("Invalid tsconfig: compilerOptions must be an object.");
138
+ }
139
+ return tsconfig.compilerOptions;
140
+ }
141
+ function getPaths(compilerOptions) {
142
+ if (!compilerOptions.paths) {
143
+ compilerOptions.paths = {};
144
+ }
145
+ if (!isRecord(compilerOptions.paths)) {
146
+ throw new Error("Invalid tsconfig: compilerOptions.paths must be an object.");
147
+ }
148
+ return compilerOptions.paths;
149
+ }
150
+ function computeAliasTarget(baseUrl, projectInfo) {
151
+ const normalizedBaseUrl = normalizePathSegment(baseUrl);
152
+ const aliasRoot = projectInfo.srcDir ? "src" : ".";
153
+ if (normalizedBaseUrl === ".") {
154
+ return aliasRoot === "." ? "./*" : `${aliasRoot}/*`;
155
+ }
156
+ const targetRoot = aliasRoot === "." ? "." : aliasRoot;
157
+ const relative = path.posix.relative(normalizedBaseUrl, targetRoot);
158
+ if (relative === "" || relative === ".") {
159
+ return "*";
160
+ }
161
+ return `${relative}/*`;
162
+ }
163
+ function isLikelyAppConfig(tsconfig) {
164
+ if (Array.isArray(tsconfig.include)) {
165
+ const hasSrc = tsconfig.include.some((value) => typeof value === "string" && value.includes("src"));
166
+ if (hasSrc) {
167
+ return true;
168
+ }
169
+ }
170
+ if (Array.isArray(tsconfig.files)) {
171
+ const hasSrc = tsconfig.files.some((value) => typeof value === "string" && value.includes("src"));
172
+ if (hasSrc) {
173
+ return true;
174
+ }
175
+ }
176
+ return Boolean(tsconfig.compilerOptions &&
177
+ typeof tsconfig.compilerOptions.jsx === "string");
178
+ }
179
+ async function resolveReferencePaths(cwd, references) {
180
+ const resolved = [];
181
+ for (const reference of references) {
182
+ if (!reference.path) {
183
+ continue;
184
+ }
185
+ const referencePath = path.resolve(cwd, reference.path);
186
+ if (await fileExists(referencePath)) {
187
+ resolved.push(referencePath);
188
+ continue;
189
+ }
190
+ if (await directoryExists(referencePath)) {
191
+ const configPath = path.join(referencePath, "tsconfig.json");
192
+ if (await fileExists(configPath)) {
193
+ resolved.push(configPath);
194
+ }
195
+ continue;
196
+ }
197
+ if (!referencePath.endsWith(".json")) {
198
+ const jsonPath = `${referencePath}.json`;
199
+ if (await fileExists(jsonPath)) {
200
+ resolved.push(jsonPath);
201
+ }
202
+ }
203
+ }
204
+ return resolved;
205
+ }
206
+ async function resolveTsConfigTargets(cwd) {
207
+ const rootPath = path.join(cwd, "tsconfig.json");
208
+ if (!(await fileExists(rootPath))) {
209
+ return [];
210
+ }
211
+ const rootConfig = await readTsConfig(rootPath);
212
+ const references = Array.isArray(rootConfig.references)
213
+ ? rootConfig.references
214
+ : [];
215
+ if (references.length === 0) {
216
+ return [rootPath];
217
+ }
218
+ const referencePaths = await resolveReferencePaths(cwd, references);
219
+ if (referencePaths.length === 0) {
220
+ return [];
221
+ }
222
+ const appConfigPaths = [];
223
+ for (const referencePath of referencePaths) {
224
+ const referenceConfig = await readTsConfig(referencePath);
225
+ if (isLikelyAppConfig(referenceConfig)) {
226
+ appConfigPaths.push(referencePath);
227
+ }
228
+ }
229
+ return appConfigPaths.length > 0 ? appConfigPaths : referencePaths;
230
+ }
231
+ async function updateTsConfigFile(filePath, projectInfo) {
232
+ const content = await readFile(filePath);
233
+ const tsconfig = parseJsonc(content, filePath);
234
+ const compilerOptions = getCompilerOptions(tsconfig);
235
+ const baseUrlValue = typeof compilerOptions.baseUrl === "string"
236
+ ? compilerOptions.baseUrl.trim()
237
+ : "";
238
+ const effectiveBaseUrl = baseUrlValue.length > 0 ? baseUrlValue : ".";
239
+ let didChange = false;
240
+ if (!compilerOptions.baseUrl || baseUrlValue.length === 0) {
241
+ compilerOptions.baseUrl = effectiveBaseUrl;
242
+ didChange = true;
243
+ }
244
+ const paths = getPaths(compilerOptions);
245
+ const existingAlias = paths["@/*"];
246
+ if (existingAlias === undefined) {
247
+ const aliasTarget = computeAliasTarget(effectiveBaseUrl, projectInfo);
248
+ paths["@/*"] = [aliasTarget];
249
+ didChange = true;
250
+ }
251
+ else if (!Array.isArray(existingAlias) ||
252
+ existingAlias.some((value) => typeof value !== "string")) {
253
+ throw new Error(`Invalid tsconfig: compilerOptions.paths["@/*"] must be an array of strings in ${path.basename(filePath)}`);
254
+ }
255
+ if (didChange) {
256
+ const nextContent = JSON.stringify(tsconfig, null, 2) + "\n";
257
+ await writeFile(filePath, nextContent);
258
+ }
259
+ return didChange;
260
+ }
261
+ export async function setupTypeScriptPaths(cwd, projectInfo) {
262
+ if (!projectInfo.typescript) {
263
+ return;
264
+ }
265
+ const targets = await resolveTsConfigTargets(cwd);
266
+ if (targets.length === 0) {
267
+ throw new Error("No tsconfig files found for TypeScript path alias setup.");
268
+ }
269
+ const uniqueTargets = Array.from(new Set(targets));
270
+ for (const target of uniqueTargets) {
271
+ await updateTsConfigFile(target, projectInfo);
272
+ }
273
+ }
274
+ //# sourceMappingURL=tsconfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../../src/commands/init/tsconfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { Ora } from "ora";
2
+ import type { Lockfile, LockfileComponent } from "../../lib/lockfile.js";
3
+ import type { RegistryIndex, RegistryItem } from "../../lib/registry.js";
4
+ import type { AddConfig, AddOptions } from "../add/types.js";
5
+ export interface EntryValidation {
6
+ valid: string[];
7
+ invalid: string[];
8
+ suggestions: string[];
9
+ }
10
+ export interface EntryDependencyAnalysis {
11
+ entries: string[];
12
+ componentDependencies: string[];
13
+ npmDependencies: Set<string>;
14
+ conflicts: string[];
15
+ totalTargets: number;
16
+ totalToInstall: number;
17
+ }
18
+ export interface EntryInstallResult {
19
+ installed: string[];
20
+ skipped: string[];
21
+ failed: string[];
22
+ npmDependencies: Set<string>;
23
+ }
24
+ export interface CollectionInstallResult {
25
+ entries: EntryInstallResult;
26
+ dependencies: EntryInstallResult;
27
+ npmDependencies: Set<string>;
28
+ conflicts: string[];
29
+ }
30
+ export interface EntryLabels {
31
+ entrySingular: string;
32
+ entryPlural: string;
33
+ }
34
+ export declare function normalizeEntryNames(names: string[]): string[];
35
+ export declare function getEntryNames(entries: RegistryItem[]): string[];
36
+ export declare function createEntryMap(entries: RegistryItem[]): Map<string, RegistryItem>;
37
+ export declare function validateEntries(names: string[], entries: RegistryItem[]): EntryValidation;
38
+ export declare function analyzeEntryDependencies(names: string[], entries: RegistryItem[], registry: RegistryIndex, lockfile: Lockfile, lockKey: "sections" | "wrappers"): EntryDependencyAnalysis;
39
+ export declare function confirmOverwrite(entryPlural: string): Promise<boolean>;
40
+ export declare function displayInstallationPlan(analysis: EntryDependencyAnalysis, options: AddOptions, labels: EntryLabels): void;
41
+ export declare function displayResults(result: CollectionInstallResult, options: AddOptions, labels: EntryLabels): void;
42
+ export declare function installEntries(entries: RegistryItem[], names: string[], lockEntries: Record<string, LockfileComponent>, options: {
43
+ cwd: string;
44
+ config: AddConfig;
45
+ force: boolean;
46
+ spinner: Ora | null;
47
+ itemLabel: string;
48
+ }): Promise<EntryInstallResult>;
49
+ export declare function createEmptyResult(): EntryInstallResult;
@@ -0,0 +1,210 @@
1
+ import chalk from "chalk";
2
+ import prompts from "prompts";
3
+ import { installRegistryEntries } from "../../lib/install.js";
4
+ import { logger } from "../../lib/logger.js";
5
+ import { analyzeDependencies } from "../add/analysis.js";
6
+ function capitalize(value) {
7
+ if (value.length === 0) {
8
+ return value;
9
+ }
10
+ return value.charAt(0).toUpperCase() + value.slice(1);
11
+ }
12
+ export function normalizeEntryNames(names) {
13
+ const unique = new Set();
14
+ const normalized = [];
15
+ for (const name of names) {
16
+ const trimmed = name.trim();
17
+ if (!trimmed || unique.has(trimmed)) {
18
+ continue;
19
+ }
20
+ unique.add(trimmed);
21
+ normalized.push(trimmed);
22
+ }
23
+ return normalized;
24
+ }
25
+ export function getEntryNames(entries) {
26
+ return entries.map((entry) => entry.name);
27
+ }
28
+ export function createEntryMap(entries) {
29
+ return new Map(entries.map((entry) => [entry.name, entry]));
30
+ }
31
+ export function validateEntries(names, entries) {
32
+ const valid = [];
33
+ const invalid = [];
34
+ const suggestions = [];
35
+ const entryMap = createEntryMap(entries);
36
+ const available = getEntryNames(entries);
37
+ for (const name of names) {
38
+ const trimmed = name.trim();
39
+ if (!trimmed) {
40
+ continue;
41
+ }
42
+ if (entryMap.has(trimmed)) {
43
+ valid.push(trimmed);
44
+ continue;
45
+ }
46
+ invalid.push(trimmed);
47
+ const lower = trimmed.toLowerCase();
48
+ const similar = available.filter((entryName) => {
49
+ const candidate = entryName.toLowerCase();
50
+ return candidate.includes(lower) || lower.includes(candidate);
51
+ });
52
+ suggestions.push(...similar);
53
+ }
54
+ return {
55
+ valid,
56
+ invalid,
57
+ suggestions: [...new Set(suggestions)]
58
+ };
59
+ }
60
+ export function analyzeEntryDependencies(names, entries, registry, lockfile, lockKey) {
61
+ const entryMap = createEntryMap(entries);
62
+ const componentDependencies = new Set();
63
+ const npmDependencies = new Set();
64
+ for (const entryName of names) {
65
+ const entry = entryMap.get(entryName);
66
+ entry?.dependencies?.local?.forEach((dep) => componentDependencies.add(dep));
67
+ entry?.dependencies?.npm?.forEach((dep) => npmDependencies.add(dep));
68
+ }
69
+ const componentDependencyList = Array.from(componentDependencies);
70
+ const componentAnalysis = componentDependencyList.length > 0
71
+ ? analyzeDependencies(componentDependencyList, registry, lockfile)
72
+ : {
73
+ components: [],
74
+ dependencies: new Set(),
75
+ npmDependencies: new Set(),
76
+ conflicts: [],
77
+ totalToInstall: 0
78
+ };
79
+ componentAnalysis.npmDependencies.forEach((dep) => npmDependencies.add(dep));
80
+ const entryConflicts = names.filter((entryName) => lockfile[lockKey][entryName]);
81
+ const componentConflicts = componentAnalysis.conflicts;
82
+ const conflicts = new Set([
83
+ ...entryConflicts,
84
+ ...componentConflicts
85
+ ]);
86
+ const totalTargets = names.length + componentAnalysis.components.length;
87
+ const totalToInstall = Math.max(0, totalTargets - conflicts.size);
88
+ return {
89
+ entries: names,
90
+ componentDependencies: componentAnalysis.components,
91
+ npmDependencies,
92
+ conflicts: Array.from(conflicts),
93
+ totalTargets,
94
+ totalToInstall
95
+ };
96
+ }
97
+ export async function confirmOverwrite(entryPlural) {
98
+ const { overwrite } = await prompts({
99
+ type: "confirm",
100
+ name: "overwrite",
101
+ message: `Overwrite existing ${entryPlural}?`,
102
+ initial: false
103
+ });
104
+ return overwrite;
105
+ }
106
+ export function displayInstallationPlan(analysis, options, labels) {
107
+ const entryLabel = capitalize(labels.entryPlural);
108
+ console.log("\n" + chalk.bold("Installation Plan:"));
109
+ console.log(chalk.gray("\u00c4".repeat(50)));
110
+ console.log(`${chalk.cyan(`${entryLabel} to install:`)} ${chalk.white(analysis.entries.length)}`);
111
+ if (analysis.componentDependencies.length > 0) {
112
+ console.log(`${chalk.cyan("Component dependencies:")} ${chalk.white(analysis.componentDependencies.length)}`);
113
+ console.log(chalk.gray(` ${analysis.componentDependencies.join(", ")}`));
114
+ }
115
+ if (analysis.npmDependencies.size > 0) {
116
+ console.log(`${chalk.cyan("NPM packages required:")} ${chalk.white(analysis.npmDependencies.size)}`);
117
+ console.log(chalk.gray(` ${Array.from(analysis.npmDependencies).join(", ")}`));
118
+ }
119
+ if (analysis.conflicts.length > 0 && !options.force) {
120
+ console.log(`${chalk.yellow("Conflicts detected:")} ${chalk.white(analysis.conflicts.length)}`);
121
+ console.log(chalk.gray(` ${analysis.conflicts.join(", ")}`));
122
+ }
123
+ console.log(chalk.gray("\u00c4".repeat(50)) + "\n");
124
+ }
125
+ export function displayResults(result, options, labels) {
126
+ const { dependencies, entries } = result;
127
+ console.log("\n" + chalk.bold("Installation Results:"));
128
+ console.log(chalk.gray("\u00c4".repeat(50)));
129
+ if (dependencies.installed.length > 0) {
130
+ console.log(chalk.green(`\u00fb Installed component dependencies (${dependencies.installed.length}):`));
131
+ dependencies.installed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
132
+ }
133
+ if (dependencies.skipped.length > 0 && !options.force) {
134
+ console.log(chalk.yellow(`? Skipped component dependencies (${dependencies.skipped.length}):`));
135
+ dependencies.skipped.forEach((name) => console.log(chalk.gray(` \u0007 ${name} (already exists)`)));
136
+ }
137
+ if (dependencies.failed.length > 0) {
138
+ console.log(chalk.red(`? Failed component dependencies (${dependencies.failed.length}):`));
139
+ dependencies.failed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
140
+ }
141
+ if (entries.installed.length > 0) {
142
+ console.log(chalk.green(`\u00fb Installed ${labels.entryPlural} (${entries.installed.length}):`));
143
+ entries.installed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
144
+ }
145
+ if (entries.skipped.length > 0 && !options.force) {
146
+ console.log(chalk.yellow(`? Skipped ${labels.entryPlural} (${entries.skipped.length}):`));
147
+ entries.skipped.forEach((name) => console.log(chalk.gray(` \u0007 ${name} (already exists)`)));
148
+ }
149
+ if (entries.failed.length > 0) {
150
+ console.log(chalk.red(`? Failed ${labels.entryPlural} (${entries.failed.length}):`));
151
+ entries.failed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
152
+ }
153
+ console.log(chalk.gray("\u00c4".repeat(50)));
154
+ if (entries.installed.length > 0) {
155
+ const label = entries.installed.length === 1 ? labels.entrySingular : labels.entryPlural;
156
+ console.log(chalk.green.bold(`\n\u00fb Successfully installed ${entries.installed.length} ${label}!`));
157
+ }
158
+ console.log();
159
+ }
160
+ export async function installEntries(entries, names, lockEntries, options) {
161
+ const installed = [];
162
+ const skipped = [];
163
+ const failed = [];
164
+ const npmDependencies = new Set();
165
+ let currentIndex = 0;
166
+ const total = names.length;
167
+ for (const name of names) {
168
+ currentIndex += 1;
169
+ try {
170
+ if (options.spinner) {
171
+ options.spinner.text = `Installing ${name} (${currentIndex}/${total})...`;
172
+ }
173
+ const result = await installRegistryEntries({
174
+ cwd: options.cwd,
175
+ config: options.config,
176
+ entries,
177
+ names: [name],
178
+ lockEntries,
179
+ force: options.force,
180
+ itemLabel: options.itemLabel
181
+ });
182
+ if (result.installed.length > 0) {
183
+ installed.push(...result.installed);
184
+ }
185
+ if (result.skipped.length > 0) {
186
+ skipped.push(...result.skipped);
187
+ }
188
+ result.npmDependencies.forEach((dep) => npmDependencies.add(dep));
189
+ }
190
+ catch (error) {
191
+ failed.push(name);
192
+ logger.error(`Failed to install ${options.itemLabel} ${name}: ${error.message}`);
193
+ }
194
+ }
195
+ return {
196
+ installed,
197
+ skipped,
198
+ failed,
199
+ npmDependencies
200
+ };
201
+ }
202
+ export function createEmptyResult() {
203
+ return {
204
+ installed: [],
205
+ skipped: [],
206
+ failed: [],
207
+ npmDependencies: new Set()
208
+ };
209
+ }
210
+ //# sourceMappingURL=add-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-collection.js","sourceRoot":"","sources":["../../../src/commands/shared/add-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAqCxD,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,MAAM,UAAU,GAAa,EAAE,CAAA;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,SAAQ;QACV,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAuB;IAEvB,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAe,EACf,OAAuB;IAEvB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,WAAW,GAAa,EAAE,CAAA;IAEhC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAErB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;YACzC,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QACF,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO;QACL,KAAK;QACL,OAAO;QACP,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;KACvC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAe,EACf,OAAuB,EACvB,QAAuB,EACvB,QAAkB,EAClB,OAAgC;IAEhC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IAEzC,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACrC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1C,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAC/B,CAAA;QACD,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACjE,MAAM,iBAAiB,GACrB,uBAAuB,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAClE,CAAC,CAAC;YACE,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,IAAI,GAAG,EAAU;YAC/B,eAAe,EAAE,IAAI,GAAG,EAAU;YAClC,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,CAAC;SAClB,CAAA;IAEP,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAE5E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAChF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,SAAS,CAAA;IAEtD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS;QAChC,GAAG,cAAc;QACjB,GAAG,kBAAkB;KACtB,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAA;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAEjE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,qBAAqB,EAAE,iBAAiB,CAAC,UAAU;QACnD,eAAe;QACf,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,YAAY;QACZ,cAAc;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,sBAAsB,WAAW,GAAG;QAC7C,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAiC,EACjC,OAAmB,EACnB,MAAmB;IAEnB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAEjD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5C,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,cAAc,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACrF,CAAA;IAED,IAAI,QAAQ,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CACjG,CAAA;QACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7D,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CACxF,CAAA;QACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACnE,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACnF,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAA+B,EAC/B,OAAmB,EACnB,MAAmB;IAEnB,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAExC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,4CAA4C,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAC9E,CACF,CAAA;QACD,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAA;IACH,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,qCAAqC,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,CACrE,CACF,CAAA;QACD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC,CAC7D,CAAA;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,oCAAoC,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAC9E,CAAA;QACD,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,oBAAoB,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CACxE,CACF,CAAA;QACD,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAC7E,CAAA;QACD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC,CAC7D,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CACxE,CAAA;QACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GACT,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAA;QAC5E,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,IAAI,CACd,mCAAmC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,GAAG,CACxE,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,KAAe,EACf,WAA8C,EAC9C,OAMC;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IAEzC,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,YAAY,IAAI,CAAC,CAAA;QAEjB,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,cAAc,IAAI,KAAK,YAAY,IAAI,KAAK,MAAM,CAAA;YAC3E,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;gBAC1C,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO;gBACP,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,WAAW;gBACX,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAA;YAEF,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;YACrC,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YACjC,CAAC;YAED,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,MAAM,CAAC,KAAK,CACV,qBAAqB,OAAO,CAAC,SAAS,IAAI,IAAI,KAAM,KAAe,CAAC,OAAO,EAAE,CAC9E,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,MAAM;QACN,eAAe;KAChB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,IAAI,GAAG,EAAU;KACnC,CAAA;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import { Command } from "commander";
3
3
  import { createRequire } from "node:module";
4
4
  import { addCommand } from "./commands/add.js";
5
+ import { addSectionCommand } from "./commands/add-section.js";
5
6
  import { initCommand } from "./commands/init.js";
6
7
  const require = createRequire(import.meta.url);
7
8
  const packageJson = require("../package.json");
@@ -13,7 +14,7 @@ const program = new Command()
13
14
  .version(packageJson.version ?? "0.0.0", "-v, --version", "display version");
14
15
  program.addCommand(initCommand);
15
16
  program.addCommand(addCommand);
16
- // program.addCommand(addSectionCommand)
17
+ program.addCommand(addSectionCommand);
17
18
  // program.addCommand(addWrapperCommand)
18
19
  // program.addCommand(buildCommand)
19
20
  // program.addCommand(removeCommand)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAK9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAQhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAA;AAEtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,sBAAsB,CAAC;KACnC,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAA;AAE9E,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAC9B,wCAAwC;AACxC,wCAAwC;AACxC,mCAAmC;AACnC,oCAAoC;AACpC,2CAA2C;AAC3C,2CAA2C;AAC3C,kCAAkC;AAClC,0CAA0C;AAC1C,0CAA0C;AAC1C,oCAAoC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAI7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAQhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAA;AAEtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,sBAAsB,CAAC;KACnC,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAA;AAE9E,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAC9B,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;AACrC,wCAAwC;AACxC,mCAAmC;AACnC,oCAAoC;AACpC,2CAA2C;AAC3C,2CAA2C;AAC3C,kCAAkC;AAClC,0CAA0C;AAC1C,0CAA0C;AAC1C,oCAAoC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAA"}