hub-launch 1.21.0 → 1.22.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 (44) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +54 -0
  3. package/dist/commands/launch.d.ts +91 -0
  4. package/dist/commands/launch.d.ts.map +1 -1
  5. package/dist/commands/launch.js +831 -143
  6. package/dist/commands/launch.js.map +1 -1
  7. package/dist/commands/upload.d.ts +9 -2
  8. package/dist/commands/upload.d.ts.map +1 -1
  9. package/dist/commands/upload.js +16 -6
  10. package/dist/commands/upload.js.map +1 -1
  11. package/dist/scripts/launch-run.d.ts +6 -0
  12. package/dist/scripts/launch-run.d.ts.map +1 -1
  13. package/dist/scripts/launch-run.js +70 -9
  14. package/dist/scripts/launch-run.js.map +1 -1
  15. package/dist/services/api/HulaApiClient.d.ts +53 -0
  16. package/dist/services/api/HulaApiClient.d.ts.map +1 -1
  17. package/dist/services/api/HulaApiClient.js +18 -0
  18. package/dist/services/api/HulaApiClient.js.map +1 -1
  19. package/dist/services/git/FilePublishService.d.ts +9 -1
  20. package/dist/services/git/FilePublishService.d.ts.map +1 -1
  21. package/dist/services/git/FilePublishService.js +13 -3
  22. package/dist/services/git/FilePublishService.js.map +1 -1
  23. package/dist/services/git/GitService.d.ts +19 -0
  24. package/dist/services/git/GitService.d.ts.map +1 -1
  25. package/dist/services/git/GitService.js +56 -31
  26. package/dist/services/git/GitService.js.map +1 -1
  27. package/dist/services/git/WorktreeService.d.ts +9 -0
  28. package/dist/services/git/WorktreeService.d.ts.map +1 -1
  29. package/dist/services/git/WorktreeService.js +6 -3
  30. package/dist/services/git/WorktreeService.js.map +1 -1
  31. package/dist/services/group/GroupLaunchService.d.ts +230 -0
  32. package/dist/services/group/GroupLaunchService.d.ts.map +1 -0
  33. package/dist/services/group/GroupLaunchService.js +282 -0
  34. package/dist/services/group/GroupLaunchService.js.map +1 -0
  35. package/dist/templates/skills/hula-launch/SKILL.md +38 -1
  36. package/dist/utils/github-cli.d.ts +1 -1
  37. package/dist/utils/github-cli.d.ts.map +1 -1
  38. package/dist/utils/github-cli.js +15 -7
  39. package/dist/utils/github-cli.js.map +1 -1
  40. package/dist/utils/project-resolver.d.ts +1 -1
  41. package/dist/utils/project-resolver.d.ts.map +1 -1
  42. package/dist/utils/project-resolver.js +2 -2
  43. package/dist/utils/project-resolver.js.map +1 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeService.js","sourceRoot":"","sources":["../../../src/services/git/WorktreeService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeService.js","sourceRoot":"","sources":["../../../src/services/git/WorktreeService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ import { z } from 'zod';
2
+ import type { Config } from '../../types/index.js';
3
+ /** The server's `groupId` validation regex (hula-server PR #505). */
4
+ export declare const GROUP_ID_REGEX: RegExp;
5
+ /**
6
+ * A repository discovered under a `--folder` parent that qualifies for a group
7
+ * launch (has both a `.git` entry and a `.hublaunch` config file).
8
+ */
9
+ export interface DiscoveredRepo {
10
+ /** The directory name (used as the `<repoName>` key for `--plan` overrides). */
11
+ name: string;
12
+ /** Absolute path to the repository root. */
13
+ path: string;
14
+ }
15
+ /**
16
+ * A subdirectory that was inspected during discovery but did not qualify, with
17
+ * the human-readable reason (for display in the skipped list).
18
+ */
19
+ export interface SkippedRepo {
20
+ name: string;
21
+ reason: string;
22
+ }
23
+ /**
24
+ * Result of scanning a parent folder for group-launchable repositories.
25
+ */
26
+ export interface DiscoverResult {
27
+ repos: DiscoveredRepo[];
28
+ skipped: SkippedRepo[];
29
+ /**
30
+ * True when the folder itself is a git repository (a `.git` entry directly
31
+ * under it) — the user probably pointed at a repo instead of its parent.
32
+ */
33
+ folderIsRepo: boolean;
34
+ }
35
+ /** One repository entry inside a persisted group record. */
36
+ export interface GroupRecordRepo {
37
+ name: string;
38
+ path: string;
39
+ project: string;
40
+ }
41
+ /** A single persisted group-launch record in `.hublaunch/group-launches.json`. */
42
+ export interface GroupRecord {
43
+ groupId: string;
44
+ issueName: string;
45
+ createdAt: string;
46
+ folder: string;
47
+ repos: GroupRecordRepo[];
48
+ }
49
+ /** Zod schema for the on-disk `.hublaunch/group-launches.json` file. */
50
+ export declare const GroupRecordSchema: z.ZodObject<{
51
+ groupId: z.ZodString;
52
+ issueName: z.ZodString;
53
+ createdAt: z.ZodString;
54
+ folder: z.ZodString;
55
+ repos: z.ZodArray<z.ZodObject<{
56
+ name: z.ZodString;
57
+ path: z.ZodString;
58
+ project: z.ZodString;
59
+ }, "strip", z.ZodTypeAny, {
60
+ path: string;
61
+ name: string;
62
+ project: string;
63
+ }, {
64
+ path: string;
65
+ name: string;
66
+ project: string;
67
+ }>, "many">;
68
+ }, "strip", z.ZodTypeAny, {
69
+ createdAt: string;
70
+ groupId: string;
71
+ issueName: string;
72
+ folder: string;
73
+ repos: {
74
+ path: string;
75
+ name: string;
76
+ project: string;
77
+ }[];
78
+ }, {
79
+ createdAt: string;
80
+ groupId: string;
81
+ issueName: string;
82
+ folder: string;
83
+ repos: {
84
+ path: string;
85
+ name: string;
86
+ project: string;
87
+ }[];
88
+ }>;
89
+ export declare const GroupLaunchesFileSchema: z.ZodObject<{
90
+ groups: z.ZodArray<z.ZodObject<{
91
+ groupId: z.ZodString;
92
+ issueName: z.ZodString;
93
+ createdAt: z.ZodString;
94
+ folder: z.ZodString;
95
+ repos: z.ZodArray<z.ZodObject<{
96
+ name: z.ZodString;
97
+ path: z.ZodString;
98
+ project: z.ZodString;
99
+ }, "strip", z.ZodTypeAny, {
100
+ path: string;
101
+ name: string;
102
+ project: string;
103
+ }, {
104
+ path: string;
105
+ name: string;
106
+ project: string;
107
+ }>, "many">;
108
+ }, "strip", z.ZodTypeAny, {
109
+ createdAt: string;
110
+ groupId: string;
111
+ issueName: string;
112
+ folder: string;
113
+ repos: {
114
+ path: string;
115
+ name: string;
116
+ project: string;
117
+ }[];
118
+ }, {
119
+ createdAt: string;
120
+ groupId: string;
121
+ issueName: string;
122
+ folder: string;
123
+ repos: {
124
+ path: string;
125
+ name: string;
126
+ project: string;
127
+ }[];
128
+ }>, "many">;
129
+ }, "strip", z.ZodTypeAny, {
130
+ groups: {
131
+ createdAt: string;
132
+ groupId: string;
133
+ issueName: string;
134
+ folder: string;
135
+ repos: {
136
+ path: string;
137
+ name: string;
138
+ project: string;
139
+ }[];
140
+ }[];
141
+ }, {
142
+ groups: {
143
+ createdAt: string;
144
+ groupId: string;
145
+ issueName: string;
146
+ folder: string;
147
+ repos: {
148
+ path: string;
149
+ name: string;
150
+ project: string;
151
+ }[];
152
+ }[];
153
+ }>;
154
+ export type GroupLaunchesFile = z.infer<typeof GroupLaunchesFileSchema>;
155
+ /** Relative path (from a repo root) of the local group-record file. */
156
+ export declare const GROUP_LAUNCHES_RELATIVE_PATH = ".hublaunch/group-launches.json";
157
+ /**
158
+ * Lowercase an issue name and replace every character outside `[A-Za-z0-9_-]`
159
+ * with a hyphen. Used both for group-id generation and plan-filename matching.
160
+ */
161
+ export declare function slugifyIssueName(issueName: string): string;
162
+ /**
163
+ * Service for the client-side multi-repo `--folder` fan-out: repository
164
+ * discovery, group-id generation, per-repo plan resolution, and local group
165
+ * record persistence. Deliberately free of network calls so it is trivially
166
+ * unit-testable.
167
+ */
168
+ export declare class GroupLaunchService {
169
+ /**
170
+ * Discover every immediate subdirectory of `folder` that qualifies as a
171
+ * group-launchable repository — one that contains BOTH a `.git` entry and a
172
+ * `.hublaunch/hublaunch.config.{ts,mjs,js}` file. Discovery does not recurse
173
+ * deeper than one level. Non-qualifying subdirectories are returned in the
174
+ * `skipped` list with a reason ("no .git" / "no .hublaunch config").
175
+ *
176
+ * @param folder - Absolute or relative parent-folder path.
177
+ * @returns The qualifying repos, the skipped entries with reasons, and a
178
+ * `folderIsRepo` flag set when `folder` is itself a git repo.
179
+ */
180
+ discoverRepos(folder: string): DiscoverResult;
181
+ /**
182
+ * Generate a group id of the form `<slug>-<6 hex chars>` where `<slug>` is the
183
+ * slugified issue name, truncated so the full id is ≤ 64 characters. The hex
184
+ * suffix comes from `crypto.randomBytes(3)`.
185
+ *
186
+ * @param issueName - The feature/issue name.
187
+ * @returns A group id matching `^[A-Za-z0-9_-]{1,64}$`.
188
+ */
189
+ generateGroupId(issueName: string): string;
190
+ /**
191
+ * Resolve the plan file to launch for a repository.
192
+ *
193
+ * Candidates are `*.md` files under the repo's configured plans directory
194
+ * (`repoConfig.planPath`), searched recursively. Preference order: the newest
195
+ * file (by `YYYY-MM-DD-HH:MM` filename prefix, falling back to mtime) whose
196
+ * filename contains the issue-name slug; if none match, the newest plan file
197
+ * overall.
198
+ *
199
+ * @param repo - The discovered repository.
200
+ * @param repoConfig - That repo's loaded config (absolute `planPath`).
201
+ * @param issueName - The feature/issue name whose slug is matched.
202
+ * @returns The repo-relative plan path (e.g. `.hublaunch/plans/…md`), or null
203
+ * when the repo has no plan files at all.
204
+ */
205
+ resolvePlan(repo: DiscoveredRepo, repoConfig: Config, issueName: string): string | null;
206
+ /**
207
+ * Append a group record to `.hublaunch/group-launches.json` in each member
208
+ * repo. Best-effort: a corrupt existing file is treated as empty and
209
+ * rewritten fresh; any write failure warns and is otherwise ignored (it must
210
+ * never fail the launch).
211
+ *
212
+ * @param repos - Repos whose local record file should receive the record.
213
+ * @param record - The group record to append.
214
+ */
215
+ recordGroup(repos: DiscoveredRepo[], record: GroupRecord): void;
216
+ /**
217
+ * Read the most recently recorded group id from the current repo's
218
+ * `.hublaunch/group-launches.json`. Used by a bare `--show-group` (no id).
219
+ *
220
+ * @param repoRoot - The repository root to read the record file from.
221
+ * @returns The latest group's id, or null when the file is absent/empty/corrupt.
222
+ */
223
+ latestRecordedGroupId(repoRoot: string): string | null;
224
+ }
225
+ /**
226
+ * Validate a user-supplied group id against the server's format rule. Returns
227
+ * the server's exact error wording on failure, or null when valid.
228
+ */
229
+ export declare function validateGroupId(groupId: string): string | null;
230
+ //# sourceMappingURL=GroupLaunchService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupLaunchService.d.ts","sourceRoot":"","sources":["../../../src/services/group/GroupLaunchService.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAgBnD,qEAAqE;AACrE,eAAO,MAAM,cAAc,QAA0B,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,wEAAwE;AACxE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAc7E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAmED;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAmC7C;;;;;;;OAOG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAU1C;;;;;;;;;;;;;;OAcG;IACH,WAAW,CACT,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI;IAiBhB;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAgC/D;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAcvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D"}
@@ -0,0 +1,282 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { existsSync, readdirSync, readFileSync, statSync, writeFileSync, } from 'fs';
3
+ import { join, relative } from 'path';
4
+ import { z } from 'zod';
5
+ import { logger } from '../../utils/logger.js';
6
+ /**
7
+ * The three config-file names a repository may use, in preference order. Mirrors
8
+ * the triple-extension check in `src/index.ts` and `ConfigLoader`.
9
+ */
10
+ const CONFIG_FILE_NAMES = [
11
+ 'hublaunch.config.ts',
12
+ 'hublaunch.config.mjs',
13
+ 'hublaunch.config.js',
14
+ ];
15
+ /** Maximum length of a generated/accepted group id (server-enforced). */
16
+ const MAX_GROUP_ID_LENGTH = 64;
17
+ /** The server's `groupId` validation regex (hula-server PR #505). */
18
+ export const GROUP_ID_REGEX = /^[A-Za-z0-9_-]{1,64}$/;
19
+ /** Zod schema for the on-disk `.hublaunch/group-launches.json` file. */
20
+ export const GroupRecordSchema = z.object({
21
+ groupId: z.string(),
22
+ issueName: z.string(),
23
+ createdAt: z.string(),
24
+ folder: z.string(),
25
+ repos: z.array(z.object({
26
+ name: z.string(),
27
+ path: z.string(),
28
+ project: z.string(),
29
+ })),
30
+ });
31
+ export const GroupLaunchesFileSchema = z.object({
32
+ groups: z.array(GroupRecordSchema),
33
+ });
34
+ /** Relative path (from a repo root) of the local group-record file. */
35
+ export const GROUP_LAUNCHES_RELATIVE_PATH = '.hublaunch/group-launches.json';
36
+ /**
37
+ * Return the first existing `.hublaunch/hublaunch.config.{ts,mjs,js}` path in a
38
+ * directory, or null when none exists.
39
+ */
40
+ function findConfigFile(dir) {
41
+ for (const name of CONFIG_FILE_NAMES) {
42
+ const p = join(dir, '.hublaunch', name);
43
+ if (existsSync(p))
44
+ return p;
45
+ }
46
+ return null;
47
+ }
48
+ /**
49
+ * Lowercase an issue name and replace every character outside `[A-Za-z0-9_-]`
50
+ * with a hyphen. Used both for group-id generation and plan-filename matching.
51
+ */
52
+ export function slugifyIssueName(issueName) {
53
+ return issueName.toLowerCase().replace(/[^a-z0-9_-]/g, '-');
54
+ }
55
+ /**
56
+ * Extract the sortable `YYYY-MM-DD-HH:MM` timestamp prefix from a plan filename.
57
+ * Returns the prefix string (lexicographically sortable) or null when absent.
58
+ */
59
+ function timestampPrefix(filename) {
60
+ const m = filename.match(/^(\d{4}-\d{2}-\d{2}-\d{2}:\d{2})/);
61
+ return m ? m[1] : null;
62
+ }
63
+ /**
64
+ * Recursively collect every `*.md` file under `dir`.
65
+ */
66
+ function collectPlanFiles(dir) {
67
+ const out = [];
68
+ let entries;
69
+ try {
70
+ entries = readdirSync(dir, { withFileTypes: true });
71
+ }
72
+ catch {
73
+ return out;
74
+ }
75
+ for (const entry of entries) {
76
+ const full = join(dir, entry.name);
77
+ if (entry.isDirectory()) {
78
+ out.push(...collectPlanFiles(full));
79
+ }
80
+ else if (entry.isFile() && entry.name.endsWith('.md')) {
81
+ let mtimeMs = 0;
82
+ try {
83
+ mtimeMs = statSync(full).mtimeMs;
84
+ }
85
+ catch {
86
+ mtimeMs = 0;
87
+ }
88
+ out.push({
89
+ absPath: full,
90
+ filename: entry.name,
91
+ prefix: timestampPrefix(entry.name),
92
+ mtimeMs,
93
+ });
94
+ }
95
+ }
96
+ return out;
97
+ }
98
+ /**
99
+ * Order two plan candidates newest-first: prefer the larger `YYYY-MM-DD-HH:MM`
100
+ * filename prefix; candidates without a prefix sort after those with one; ties
101
+ * fall back to mtime (newest first).
102
+ */
103
+ function comparePlansNewestFirst(a, b) {
104
+ if (a.prefix && b.prefix) {
105
+ if (a.prefix !== b.prefix)
106
+ return a.prefix > b.prefix ? -1 : 1;
107
+ return b.mtimeMs - a.mtimeMs;
108
+ }
109
+ if (a.prefix && !b.prefix)
110
+ return -1;
111
+ if (!a.prefix && b.prefix)
112
+ return 1;
113
+ return b.mtimeMs - a.mtimeMs;
114
+ }
115
+ /**
116
+ * Service for the client-side multi-repo `--folder` fan-out: repository
117
+ * discovery, group-id generation, per-repo plan resolution, and local group
118
+ * record persistence. Deliberately free of network calls so it is trivially
119
+ * unit-testable.
120
+ */
121
+ export class GroupLaunchService {
122
+ /**
123
+ * Discover every immediate subdirectory of `folder` that qualifies as a
124
+ * group-launchable repository — one that contains BOTH a `.git` entry and a
125
+ * `.hublaunch/hublaunch.config.{ts,mjs,js}` file. Discovery does not recurse
126
+ * deeper than one level. Non-qualifying subdirectories are returned in the
127
+ * `skipped` list with a reason ("no .git" / "no .hublaunch config").
128
+ *
129
+ * @param folder - Absolute or relative parent-folder path.
130
+ * @returns The qualifying repos, the skipped entries with reasons, and a
131
+ * `folderIsRepo` flag set when `folder` is itself a git repo.
132
+ */
133
+ discoverRepos(folder) {
134
+ const repos = [];
135
+ const skipped = [];
136
+ const folderIsRepo = existsSync(join(folder, '.git'));
137
+ let entries;
138
+ try {
139
+ entries = readdirSync(folder, { withFileTypes: true });
140
+ }
141
+ catch (err) {
142
+ throw new Error(`Cannot read folder "${folder}": ${err instanceof Error ? err.message : String(err)}`);
143
+ }
144
+ for (const entry of entries) {
145
+ if (!entry.isDirectory())
146
+ continue;
147
+ const dir = join(folder, entry.name);
148
+ const hasGit = existsSync(join(dir, '.git'));
149
+ const hasConfig = findConfigFile(dir) !== null;
150
+ if (hasGit && hasConfig) {
151
+ repos.push({ name: entry.name, path: dir });
152
+ }
153
+ else if (!hasGit) {
154
+ skipped.push({ name: entry.name, reason: 'no .git' });
155
+ }
156
+ else {
157
+ skipped.push({ name: entry.name, reason: 'no .hublaunch config' });
158
+ }
159
+ }
160
+ // Stable, deterministic discovery order (directory name).
161
+ repos.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
162
+ return { repos, skipped, folderIsRepo };
163
+ }
164
+ /**
165
+ * Generate a group id of the form `<slug>-<6 hex chars>` where `<slug>` is the
166
+ * slugified issue name, truncated so the full id is ≤ 64 characters. The hex
167
+ * suffix comes from `crypto.randomBytes(3)`.
168
+ *
169
+ * @param issueName - The feature/issue name.
170
+ * @returns A group id matching `^[A-Za-z0-9_-]{1,64}$`.
171
+ */
172
+ generateGroupId(issueName) {
173
+ const hex = randomBytes(3).toString('hex'); // 6 hex chars
174
+ const suffix = `-${hex}`;
175
+ const maxSlug = MAX_GROUP_ID_LENGTH - suffix.length;
176
+ let slug = slugifyIssueName(issueName).slice(0, Math.max(0, maxSlug));
177
+ // Avoid a leading/trailing bare hyphen pile-up while staying within regex.
178
+ if (slug === '')
179
+ slug = 'group';
180
+ return `${slug}${suffix}`;
181
+ }
182
+ /**
183
+ * Resolve the plan file to launch for a repository.
184
+ *
185
+ * Candidates are `*.md` files under the repo's configured plans directory
186
+ * (`repoConfig.planPath`), searched recursively. Preference order: the newest
187
+ * file (by `YYYY-MM-DD-HH:MM` filename prefix, falling back to mtime) whose
188
+ * filename contains the issue-name slug; if none match, the newest plan file
189
+ * overall.
190
+ *
191
+ * @param repo - The discovered repository.
192
+ * @param repoConfig - That repo's loaded config (absolute `planPath`).
193
+ * @param issueName - The feature/issue name whose slug is matched.
194
+ * @returns The repo-relative plan path (e.g. `.hublaunch/plans/…md`), or null
195
+ * when the repo has no plan files at all.
196
+ */
197
+ resolvePlan(repo, repoConfig, issueName) {
198
+ const planDir = repoConfig.planPath;
199
+ const candidates = collectPlanFiles(planDir);
200
+ if (candidates.length === 0)
201
+ return null;
202
+ const slug = slugifyIssueName(issueName);
203
+ const matching = candidates.filter((c) => c.filename.toLowerCase().includes(slug));
204
+ const pool = matching.length > 0 ? matching : candidates;
205
+ pool.sort(comparePlansNewestFirst);
206
+ const chosen = pool[0];
207
+ // Return a repo-relative path for display and per-repo launching.
208
+ return relative(repo.path, chosen.absPath);
209
+ }
210
+ /**
211
+ * Append a group record to `.hublaunch/group-launches.json` in each member
212
+ * repo. Best-effort: a corrupt existing file is treated as empty and
213
+ * rewritten fresh; any write failure warns and is otherwise ignored (it must
214
+ * never fail the launch).
215
+ *
216
+ * @param repos - Repos whose local record file should receive the record.
217
+ * @param record - The group record to append.
218
+ */
219
+ recordGroup(repos, record) {
220
+ for (const repo of repos) {
221
+ const filePath = join(repo.path, GROUP_LAUNCHES_RELATIVE_PATH);
222
+ try {
223
+ let file = { groups: [] };
224
+ if (existsSync(filePath)) {
225
+ try {
226
+ const parsed = JSON.parse(readFileSync(filePath, 'utf-8'));
227
+ const validated = GroupLaunchesFileSchema.safeParse(parsed);
228
+ file = validated.success ? validated.data : { groups: [] };
229
+ if (!validated.success) {
230
+ logger.warning(`Group record at ${filePath} was unreadable — rewriting fresh.`);
231
+ }
232
+ }
233
+ catch {
234
+ logger.warning(`Group record at ${filePath} was corrupt — rewriting fresh.`);
235
+ file = { groups: [] };
236
+ }
237
+ }
238
+ file.groups.push(record);
239
+ writeFileSync(filePath, JSON.stringify(file, null, 2) + '\n', 'utf-8');
240
+ }
241
+ catch (err) {
242
+ logger.warning(`Could not write group record to ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
243
+ }
244
+ }
245
+ }
246
+ /**
247
+ * Read the most recently recorded group id from the current repo's
248
+ * `.hublaunch/group-launches.json`. Used by a bare `--show-group` (no id).
249
+ *
250
+ * @param repoRoot - The repository root to read the record file from.
251
+ * @returns The latest group's id, or null when the file is absent/empty/corrupt.
252
+ */
253
+ latestRecordedGroupId(repoRoot) {
254
+ const filePath = join(repoRoot, GROUP_LAUNCHES_RELATIVE_PATH);
255
+ if (!existsSync(filePath))
256
+ return null;
257
+ try {
258
+ const parsed = JSON.parse(readFileSync(filePath, 'utf-8'));
259
+ const validated = GroupLaunchesFileSchema.safeParse(parsed);
260
+ if (!validated.success)
261
+ return null;
262
+ const groups = validated.data.groups;
263
+ if (groups.length === 0)
264
+ return null;
265
+ return groups[groups.length - 1].groupId;
266
+ }
267
+ catch {
268
+ return null;
269
+ }
270
+ }
271
+ }
272
+ /**
273
+ * Validate a user-supplied group id against the server's format rule. Returns
274
+ * the server's exact error wording on failure, or null when valid.
275
+ */
276
+ export function validateGroupId(groupId) {
277
+ if (!GROUP_ID_REGEX.test(groupId)) {
278
+ return 'Invalid groupId format. Expected 1-64 characters of letters, digits, hyphen, underscore.';
279
+ }
280
+ return null;
281
+ }
282
+ //# sourceMappingURL=GroupLaunchService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupLaunchService.js","sourceRoot":"","sources":["../../../src/services/group/GroupLaunchService.ts"],"names":[],"mappings":"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"}