@hypercli/kit 0.1.1

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 (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +23 -0
  3. package/dist/base-command.d.ts +58 -0
  4. package/dist/base-command.d.ts.map +1 -0
  5. package/dist/base-command.js +131 -0
  6. package/dist/base-command.js.map +1 -0
  7. package/dist/commands/cookbook/info.d.ts +24 -0
  8. package/dist/commands/cookbook/info.d.ts.map +1 -0
  9. package/dist/commands/cookbook/info.js +142 -0
  10. package/dist/commands/cookbook/info.js.map +1 -0
  11. package/dist/commands/cookbook/list.d.ts +18 -0
  12. package/dist/commands/cookbook/list.d.ts.map +1 -0
  13. package/dist/commands/cookbook/list.js +81 -0
  14. package/dist/commands/cookbook/list.js.map +1 -0
  15. package/dist/commands/kit/info.d.ts +23 -0
  16. package/dist/commands/kit/info.d.ts.map +1 -0
  17. package/dist/commands/kit/info.js +136 -0
  18. package/dist/commands/kit/info.js.map +1 -0
  19. package/dist/commands/kit/install.d.ts +49 -0
  20. package/dist/commands/kit/install.d.ts.map +1 -0
  21. package/dist/commands/kit/install.js +352 -0
  22. package/dist/commands/kit/install.js.map +1 -0
  23. package/dist/commands/kit/list.d.ts +15 -0
  24. package/dist/commands/kit/list.d.ts.map +1 -0
  25. package/dist/commands/kit/list.js +93 -0
  26. package/dist/commands/kit/list.js.map +1 -0
  27. package/dist/commands/kit/uninstall.d.ts +19 -0
  28. package/dist/commands/kit/uninstall.d.ts.map +1 -0
  29. package/dist/commands/kit/uninstall.js +79 -0
  30. package/dist/commands/kit/uninstall.js.map +1 -0
  31. package/dist/commands/kit/update.d.ts +21 -0
  32. package/dist/commands/kit/update.d.ts.map +1 -0
  33. package/dist/commands/kit/update.js +197 -0
  34. package/dist/commands/kit/update.js.map +1 -0
  35. package/dist/commands/recipe/info.d.ts +24 -0
  36. package/dist/commands/recipe/info.d.ts.map +1 -0
  37. package/dist/commands/recipe/info.js +149 -0
  38. package/dist/commands/recipe/info.js.map +1 -0
  39. package/dist/commands/recipe/list.d.ts +18 -0
  40. package/dist/commands/recipe/list.d.ts.map +1 -0
  41. package/dist/commands/recipe/list.js +104 -0
  42. package/dist/commands/recipe/list.js.map +1 -0
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +7 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/lib/flags.d.ts +14 -0
  48. package/dist/lib/flags.d.ts.map +1 -0
  49. package/dist/lib/flags.js +30 -0
  50. package/dist/lib/flags.js.map +1 -0
  51. package/dist/manifest.d.ts +105 -0
  52. package/dist/manifest.d.ts.map +1 -0
  53. package/dist/manifest.js +115 -0
  54. package/dist/manifest.js.map +1 -0
  55. package/dist/source-resolver.d.ts +62 -0
  56. package/dist/source-resolver.d.ts.map +1 -0
  57. package/dist/source-resolver.js +187 -0
  58. package/dist/source-resolver.js.map +1 -0
  59. package/dist/utils/find-project-root.d.ts +32 -0
  60. package/dist/utils/find-project-root.d.ts.map +1 -0
  61. package/dist/utils/find-project-root.js +135 -0
  62. package/dist/utils/find-project-root.js.map +1 -0
  63. package/help/kit/info.md +41 -0
  64. package/help/kit/install.md +52 -0
  65. package/help/kit/list.md +25 -0
  66. package/help/kit/uninstall.md +38 -0
  67. package/help/kit/update.md +35 -0
  68. package/help/kit.md +36 -0
  69. package/oclif.manifest.json +587 -0
  70. package/package.json +92 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Show detailed information about a kit
3
+ */
4
+ import { c, indent, markdown, msg, s, table } from "@hypercli/ui";
5
+ import { Args } from "@oclif/core";
6
+ import { BaseCommand } from "#base-command";
7
+ import { infoFlags } from "#lib/flags";
8
+ import { getKitFromManifest } from "#manifest";
9
+ export default class KitInfo extends BaseCommand {
10
+ static description = "Show detailed information about a kit";
11
+ static examples = [
12
+ "<%= config.bin %> kit info starlight",
13
+ "<%= config.bin %> kit info starlight --variables",
14
+ "<%= config.bin %> kit info starlight --json",
15
+ ];
16
+ static flags = {
17
+ ...BaseCommand.baseFlags,
18
+ ...infoFlags,
19
+ };
20
+ static args = {
21
+ kit: Args.string({
22
+ description: "Kit name",
23
+ required: true,
24
+ }),
25
+ };
26
+ async run() {
27
+ const { args, flags } = await this.parse(KitInfo);
28
+ await this.resolveEffectiveCwd(flags);
29
+ const projectRoot = flags.cwd;
30
+ const kitName = args.kit;
31
+ // Verify kit exists
32
+ const entry = getKitFromManifest(projectRoot, kitName);
33
+ if (!entry) {
34
+ this.log(msg.error(`Kit not found: ${kitName}`));
35
+ this.log(`\n Run ${c.command("hyper kit list")} to see installed kits.\n`);
36
+ this.exit(1);
37
+ }
38
+ // Discover full kit tree
39
+ const kits = await this.discoverKitTree(projectRoot);
40
+ const kit = kits.find((k) => k.manifest.name === kitName);
41
+ if (!kit) {
42
+ this.log(msg.error(`Kit not found: ${kitName}`));
43
+ this.exit(1);
44
+ return;
45
+ }
46
+ if (flags.json) {
47
+ this.log(JSON.stringify({
48
+ name: kit.manifest.name,
49
+ version: kit.config?.version ?? kit.manifest.version,
50
+ description: kit.config?.description,
51
+ source: kit.manifest.source,
52
+ type: kit.manifest.type,
53
+ installedAt: kit.manifest.installedAt,
54
+ cookbooks: kit.cookbooks.map((cb) => ({
55
+ name: cb.name,
56
+ description: cb.config?.description,
57
+ recipes: cb.recipes.map((r) => r.name),
58
+ })),
59
+ }, null, 2));
60
+ return;
61
+ }
62
+ this.displayKitInfo(kit, flags);
63
+ }
64
+ displayKitInfo(kit, flags) {
65
+ const config = kit.config;
66
+ const version = config?.version ?? kit.manifest.version;
67
+ this.log("");
68
+ this.log(markdown(`# Kit: ${kit.manifest.name}`));
69
+ // Key-value metadata
70
+ if (version)
71
+ this.log(s.keyValue("version", c.version(version), 2));
72
+ if (config?.author)
73
+ this.log(s.keyValue("author", config.author, 2));
74
+ if (config?.description) {
75
+ this.log("");
76
+ this.log(indent(c.muted(config.description), 2));
77
+ }
78
+ // Source info (additive flag)
79
+ if (flags.source) {
80
+ this.log("");
81
+ this.log(s.header("Source"));
82
+ this.log(s.keyValue(" Type", kit.manifest.type));
83
+ this.log(s.keyValue(" Source", kit.manifest.source));
84
+ this.log(s.keyValue(" Path", s.path(kit.path)));
85
+ this.log(s.keyValue(" Installed", kit.manifest.installedAt));
86
+ if (kit.manifest.commit)
87
+ this.log(s.keyValue(" Commit", kit.manifest.commit));
88
+ if (kit.manifest.branch)
89
+ this.log(s.keyValue(" Branch", kit.manifest.branch));
90
+ if (kit.manifest.tag)
91
+ this.log(s.keyValue(" Tag", kit.manifest.tag));
92
+ }
93
+ // Variables (additive flag)
94
+ if (flags.variables && config?.variables) {
95
+ this.log("");
96
+ this.log(s.header("Variables"));
97
+ for (const [key, variable] of Object.entries(config.variables)) {
98
+ const v = variable;
99
+ let line = ` ${c.property(key)}`;
100
+ if (v.type)
101
+ line += c.muted(` (${v.type})`);
102
+ if (v.required)
103
+ line += c.required(" *required*");
104
+ if (v.default !== undefined)
105
+ line += c.default(v.default);
106
+ this.log(line);
107
+ if (v.description)
108
+ this.log(s.description(v.description, 4));
109
+ }
110
+ }
111
+ // Cookbooks table (same format as kit list)
112
+ if (kit.cookbooks.length > 0) {
113
+ this.log("");
114
+ this.log(s.header("Cookbooks", kit.cookbooks.length));
115
+ this.log("");
116
+ const tbl = table({
117
+ columns: [
118
+ { key: "cookbook", header: "Cookbook" },
119
+ { key: "recipes", header: "Recipes" },
120
+ ],
121
+ data: kit.cookbooks.map((cb) => ({
122
+ cookbook: c.cookbook(cb.name),
123
+ recipes: cb.recipes.map((r) => c.recipe(r.name)).join(c.muted(", ")),
124
+ })),
125
+ variant: "borderless",
126
+ });
127
+ this.log(indent(tbl, 2));
128
+ }
129
+ else {
130
+ this.log("");
131
+ this.log(c.muted(" No cookbooks found."));
132
+ }
133
+ this.log("");
134
+ }
135
+ }
136
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/kit/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Install a kit from npm, JSR, GitHub, local paths, or other sources
3
+ */
4
+ import { BaseCommand } from "#base-command";
5
+ export default class KitInstall extends BaseCommand<typeof KitInstall> {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ dev: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ cwd: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ };
15
+ static args: {
16
+ kit: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
17
+ };
18
+ run(): Promise<void>;
19
+ /**
20
+ * Install npm/JSR package to node_modules using package manager
21
+ */
22
+ private installPackage;
23
+ /**
24
+ * Install kit to .hyper/kits/ directory (for GitHub, Git URLs, local paths, etc.)
25
+ */
26
+ private installToKitsDir;
27
+ /**
28
+ * Download from GitHub/GitLab/Bitbucket using giget
29
+ */
30
+ private cloneFromGitHost;
31
+ /**
32
+ * Download from Git URL using giget
33
+ */
34
+ private cloneFromGitUrl;
35
+ /**
36
+ * Copy from local path
37
+ */
38
+ private copyFromLocal;
39
+ /**
40
+ * Download and extract from tarball URL
41
+ */
42
+ private downloadFromUrl;
43
+ /**
44
+ * Extract kit name from resolved source
45
+ */
46
+ private extractKitName;
47
+ protected detectPackageManager(): "bun" | "pnpm" | "yarn" | "npm";
48
+ }
49
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/kit/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW,CAAC,OAAO,UAAU,CAAC;IACrE,OAAgB,WAAW,SAAwD;IAEnF,OAAgB,QAAQ,WAOtB;IAEF,OAAgB,KAAK;;;;;;MAenB;IAEF,OAAgB,IAAI;;MAKlB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C1B;;OAEG;YACW,cAAc;IAgB5B;;OAEG;YACW,gBAAgB;IA0F9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,aAAa;IAsB3B;;OAEG;YACW,eAAe;IA2B7B;;OAEG;IACH,OAAO,CAAC,cAAc;cAoCH,oBAAoB,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK;CAkD1E"}
@@ -0,0 +1,352 @@
1
+ /**
2
+ * Install a kit from npm, JSR, GitHub, local paths, or other sources
3
+ */
4
+ import { execSync } from "node:child_process";
5
+ import { cpSync, existsSync, mkdirSync, rmSync } from "node:fs";
6
+ import { basename, isAbsolute, join, resolve } from "node:path";
7
+ import { Args, Flags } from "@oclif/core";
8
+ import { downloadTemplate } from "giget";
9
+ import { BaseCommand } from "#base-command";
10
+ import { addKitToManifest, extractPackageVersion, isKitInstalled, } from "#manifest";
11
+ import { buildInstallCommand, resolveKitSource } from "#source-resolver";
12
+ export default class KitInstall extends BaseCommand {
13
+ static description = "Install a kit from npm, JSR, GitHub, or local path";
14
+ static examples = [
15
+ "<%= config.bin %> kit install @kit/nextjs",
16
+ "<%= config.bin %> kit install svallory/hypergen-kit-nextjs",
17
+ "<%= config.bin %> kit install jsr:@std/path",
18
+ "<%= config.bin %> kit install ./local-kit",
19
+ "<%= config.bin %> kit install C:\\\\Projects\\\\my-kit",
20
+ "<%= config.bin %> kit install https://github.com/user/repo.git",
21
+ ];
22
+ static flags = {
23
+ ...BaseCommand.baseFlags,
24
+ dev: Flags.boolean({
25
+ description: "Install as a dev dependency (only for npm/JSR)",
26
+ default: false,
27
+ }),
28
+ name: Flags.string({
29
+ char: "n",
30
+ description: "Name to use for the kit directory (default: auto-detect from source)",
31
+ }),
32
+ force: Flags.boolean({
33
+ char: "f",
34
+ description: "Replace existing kit even if already installed (allows changing source)",
35
+ default: false,
36
+ }),
37
+ };
38
+ static args = {
39
+ kit: Args.string({
40
+ description: "Kit to install (npm, JSR, GitHub shorthand, git URL, or local path)",
41
+ required: true,
42
+ }),
43
+ };
44
+ async run() {
45
+ const { args, flags } = await this.parse(KitInstall);
46
+ this.flags = flags;
47
+ this.args = args;
48
+ await this.resolveEffectiveCwd(flags);
49
+ try {
50
+ // Resolve kit source to determine type and normalized source
51
+ const resolved = resolveKitSource(args.kit);
52
+ this.log(`Installing kit: ${args.kit}`);
53
+ this.log(`Source type: ${resolved.type}`);
54
+ // Installation strategy based on source type
55
+ if (resolved.type === "npm" || resolved.type === "jsr") {
56
+ // NPM/JSR packages: Install to node_modules using package manager
57
+ await this.installPackage(resolved, flags);
58
+ }
59
+ else {
60
+ // Everything else: Clone/copy to ./kits/
61
+ await this.installToKitsDir(resolved, flags);
62
+ }
63
+ this.log(`\n✓ Kit installed successfully: ${args.kit}`);
64
+ this.log("\nList available recipes with: hypergen recipe list");
65
+ }
66
+ catch (error) {
67
+ // Distinguish our validation errors from execSync errors
68
+ if (error?.message?.startsWith("Invalid kit specifier")) {
69
+ this.error(error.message);
70
+ }
71
+ // Provide helpful error messages for common failures
72
+ const msg = error instanceof Error ? error.message : String(error);
73
+ if (msg.includes("not found") || msg.includes("404")) {
74
+ this.error(`Kit not found: ${args.kit}\n\nMake sure the source is correct. Examples:\n NPM: hypergen kit install @kit/nextjs\n GitHub: hypergen kit install user/repo\n JSR: hypergen kit install jsr:@std/path\n Local: hypergen kit install ./path/to/kit`);
75
+ }
76
+ if (msg.includes("ENOENT")) {
77
+ this.error("Command not found. Make sure git or the required package manager is installed.");
78
+ }
79
+ this.error(`Failed to install kit: ${msg}`);
80
+ }
81
+ }
82
+ /**
83
+ * Install npm/JSR package to node_modules using package manager
84
+ */
85
+ async installPackage(resolved, flags) {
86
+ const pm = this.detectPackageManager();
87
+ const cmd = buildInstallCommand(resolved, pm, {
88
+ dev: flags.dev,
89
+ global: false, // Global install doesn't make sense for kits
90
+ });
91
+ this.log(`Installing to node_modules using ${pm}...`);
92
+ this.log(`Running: ${cmd}`);
93
+ execSync(cmd, {
94
+ cwd: flags.cwd,
95
+ stdio: "inherit",
96
+ });
97
+ }
98
+ /**
99
+ * Install kit to .hyper/kits/ directory (for GitHub, Git URLs, local paths, etc.)
100
+ */
101
+ async installToKitsDir(resolved, flags) {
102
+ const projectRoot = flags.cwd;
103
+ const kitsDir = join(projectRoot, ".hyper", "kits");
104
+ // Ensure kits directory exists
105
+ if (!existsSync(kitsDir)) {
106
+ mkdirSync(kitsDir, { recursive: true });
107
+ this.log(`Created kits directory: ${kitsDir}`);
108
+ }
109
+ // Determine kit name
110
+ const kitName = flags.name || this.extractKitName(resolved);
111
+ const targetDir = join(kitsDir, kitName);
112
+ // Check if kit already exists (directory or manifest)
113
+ if (existsSync(targetDir) || isKitInstalled(projectRoot, kitName)) {
114
+ if (!flags.force) {
115
+ this.error(`Kit already exists: ${kitName}\nUse --force to replace it, or --name <name> for a different name`);
116
+ }
117
+ // --force: remove existing kit directory before reinstalling
118
+ this.log(`Replacing existing kit: ${kitName}`);
119
+ if (existsSync(targetDir)) {
120
+ rmSync(targetDir, { recursive: true, force: true });
121
+ }
122
+ }
123
+ this.log(`Installing to: .hyper/kits/${kitName}`);
124
+ // Install based on source type
125
+ let commit;
126
+ let branch;
127
+ let tag;
128
+ let resolvedSource = resolved.original;
129
+ switch (resolved.type) {
130
+ case "github":
131
+ case "gitlab":
132
+ case "bitbucket": {
133
+ const gitInfo = await this.cloneFromGitHost(resolved, targetDir);
134
+ commit = gitInfo.commit;
135
+ branch = gitInfo.branch;
136
+ tag = gitInfo.tag;
137
+ break;
138
+ }
139
+ case "git": {
140
+ const gitUrlInfo = await this.cloneFromGitUrl(resolved.source, targetDir);
141
+ commit = gitUrlInfo.commit;
142
+ break;
143
+ }
144
+ case "local": {
145
+ // Resolve to absolute path so the manifest always stores the full path
146
+ resolvedSource = isAbsolute(resolved.source)
147
+ ? resolved.source
148
+ : resolve(flags.cwd, resolved.source);
149
+ await this.copyFromLocal(resolved.source, targetDir);
150
+ break;
151
+ }
152
+ case "url":
153
+ await this.downloadFromUrl(resolved.source, targetDir);
154
+ break;
155
+ default:
156
+ this.error(`Unsupported source type for kit installation: ${resolved.type}`);
157
+ }
158
+ // Extract version from package.json if available
159
+ const version = extractPackageVersion(targetDir);
160
+ // Add to manifest
161
+ const manifestEntry = {
162
+ name: kitName,
163
+ source: resolvedSource,
164
+ type: resolved.type,
165
+ installedAt: new Date().toISOString(),
166
+ commit,
167
+ version,
168
+ branch,
169
+ tag,
170
+ };
171
+ addKitToManifest(projectRoot, manifestEntry);
172
+ this.log(`Added ${kitName} to manifest`);
173
+ }
174
+ /**
175
+ * Download from GitHub/GitLab/Bitbucket using giget
176
+ */
177
+ async cloneFromGitHost(resolved, targetDir) {
178
+ // Extract branch/tag information
179
+ let branch;
180
+ let tag;
181
+ // Check for branch (#) or tag (@) in source
182
+ const branchMatch = resolved.source.match(/#([^/]+)$/);
183
+ const tagMatch = resolved.source.match(/@([^/]+)$/);
184
+ if (branchMatch) {
185
+ branch = branchMatch[1];
186
+ }
187
+ else if (tagMatch) {
188
+ tag = tagMatch[1];
189
+ }
190
+ this.log(`Downloading from: ${resolved.source}`);
191
+ try {
192
+ await downloadTemplate(resolved.source, {
193
+ dir: targetDir,
194
+ force: false,
195
+ offline: false,
196
+ });
197
+ }
198
+ catch (error) {
199
+ throw new Error(`Failed to download from git host: ${error.message}`);
200
+ }
201
+ // Note: giget doesn't provide commit hash, we'd need to get it from the repo
202
+ // This is a limitation we accept for now
203
+ return { branch, tag };
204
+ }
205
+ /**
206
+ * Download from Git URL using giget
207
+ */
208
+ async cloneFromGitUrl(gitUrl, targetDir) {
209
+ this.log(`Downloading from: ${gitUrl}`);
210
+ try {
211
+ await downloadTemplate(gitUrl, {
212
+ dir: targetDir,
213
+ force: false,
214
+ offline: false,
215
+ });
216
+ }
217
+ catch (error) {
218
+ throw new Error(`Failed to download from git URL: ${error.message}`);
219
+ }
220
+ return {};
221
+ }
222
+ /**
223
+ * Copy from local path
224
+ */
225
+ async copyFromLocal(sourcePath, targetDir) {
226
+ // Resolve relative paths
227
+ const absoluteSource = isAbsolute(sourcePath)
228
+ ? sourcePath
229
+ : resolve(this.flags.cwd, sourcePath);
230
+ if (!existsSync(absoluteSource)) {
231
+ this.error(`Source path does not exist: ${absoluteSource}`);
232
+ }
233
+ this.log(`Copying from: ${absoluteSource}`);
234
+ cpSync(absoluteSource, targetDir, {
235
+ recursive: true,
236
+ filter: (source) => {
237
+ // Skip common directories that shouldn't be copied
238
+ const name = basename(source);
239
+ return !["node_modules", ".git", "dist", "build", ".DS_Store"].includes(name);
240
+ },
241
+ });
242
+ }
243
+ /**
244
+ * Download and extract from tarball URL
245
+ */
246
+ async downloadFromUrl(url, targetDir) {
247
+ this.log(`Downloading from: ${url}`);
248
+ // Create target directory
249
+ mkdirSync(targetDir, { recursive: true });
250
+ // Download and extract (assuming .tar.gz or .tgz)
251
+ if (url.endsWith(".tar.gz") || url.endsWith(".tgz")) {
252
+ execSync(`curl -L "${url}" | tar xz -C "${targetDir}" --strip-components=1`, {
253
+ cwd: this.flags.cwd,
254
+ stdio: "inherit",
255
+ });
256
+ }
257
+ else if (url.endsWith(".zip")) {
258
+ // Download zip file then extract
259
+ const tempZip = join(targetDir, "temp.zip");
260
+ execSync(`curl -L -o "${tempZip}" "${url}" && unzip -q "${tempZip}" -d "${targetDir}" && rm "${tempZip}"`, {
261
+ cwd: this.flags.cwd,
262
+ stdio: "inherit",
263
+ });
264
+ }
265
+ else {
266
+ this.error("Unsupported archive format. Only .tar.gz, .tgz, and .zip are supported.");
267
+ }
268
+ }
269
+ /**
270
+ * Extract kit name from resolved source
271
+ */
272
+ extractKitName(resolved) {
273
+ switch (resolved.type) {
274
+ case "github":
275
+ case "gitlab":
276
+ case "bitbucket": {
277
+ // Extract repo name from github:user/repo or github:user/repo#branch
278
+ const match = resolved.source.match(/[:/]([^:/]+\/[^:/]+?)(?:[#@]|$)/);
279
+ if (match) {
280
+ const [user, repo] = match[1].split("/");
281
+ return repo || user; // Use repo name
282
+ }
283
+ return "kit";
284
+ }
285
+ case "git": {
286
+ // Extract from git URL
287
+ const match = resolved.source.match(/\/([^/]+?)(?:\.git)?$/);
288
+ return match ? match[1] : "kit";
289
+ }
290
+ case "local": {
291
+ // Use directory name
292
+ return basename(resolved.source);
293
+ }
294
+ case "url": {
295
+ // Extract filename without extension
296
+ const match = resolved.source.match(/\/([^/]+?)(?:\.(tar\.gz|tgz|zip))?$/);
297
+ return match ? match[1] : "kit";
298
+ }
299
+ default:
300
+ return "kit";
301
+ }
302
+ }
303
+ detectPackageManager() {
304
+ let dir = this.flags.cwd;
305
+ // Walk up the directory tree to find a lock file
306
+ while (dir !== "/" && dir !== ".") {
307
+ // Check for lock files in order of preference
308
+ if (existsSync(join(dir, "bun.lockb")) || existsSync(join(dir, "bun.lock"))) {
309
+ return "bun";
310
+ }
311
+ if (existsSync(join(dir, "pnpm-lock.yaml"))) {
312
+ return "pnpm";
313
+ }
314
+ if (existsSync(join(dir, "yarn.lock"))) {
315
+ return "yarn";
316
+ }
317
+ if (existsSync(join(dir, "package-lock.json"))) {
318
+ return "npm";
319
+ }
320
+ // Move up one directory
321
+ const parent = join(dir, "..");
322
+ if (parent === dir)
323
+ break; // Reached root
324
+ dir = parent;
325
+ }
326
+ // No lock file found, check which package manager is available
327
+ try {
328
+ execSync("bun --version", { stdio: "ignore" });
329
+ return "bun";
330
+ }
331
+ catch {
332
+ // bun not available
333
+ }
334
+ try {
335
+ execSync("pnpm --version", { stdio: "ignore" });
336
+ return "pnpm";
337
+ }
338
+ catch {
339
+ // pnpm not available
340
+ }
341
+ try {
342
+ execSync("yarn --version", { stdio: "ignore" });
343
+ return "yarn";
344
+ }
345
+ catch {
346
+ // yarn not available
347
+ }
348
+ // Default to npm (should always be available with Node.js)
349
+ return "npm";
350
+ }
351
+ }
352
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/kit/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * List installed kits
3
+ */
4
+ import { BaseCommand } from "#base-command";
5
+ export default class KitList extends BaseCommand<typeof KitList> {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ cwd: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/kit/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW,CAAC,OAAO,OAAO,CAAC;IAC/D,OAAgB,WAAW,SAAyB;IAEpD,OAAgB,QAAQ,WAAuE;IAE/F,OAAgB,KAAK;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgG1B"}