hub-launch 1.0.3
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.
- package/CHANGELOG.md +144 -0
- package/README.md +195 -0
- package/bin/hublaunch +20 -0
- package/dist/commands/checkout.d.ts +7 -0
- package/dist/commands/checkout.d.ts.map +1 -0
- package/dist/commands/checkout.js +164 -0
- package/dist/commands/checkout.js.map +1 -0
- package/dist/commands/clean.d.ts +7 -0
- package/dist/commands/clean.d.ts.map +1 -0
- package/dist/commands/clean.js +206 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/close.d.ts +7 -0
- package/dist/commands/close.d.ts.map +1 -0
- package/dist/commands/close.js +109 -0
- package/dist/commands/close.js.map +1 -0
- package/dist/commands/create.d.ts +7 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +367 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/diff.d.ts +7 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +98 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/execute.d.ts +7 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +376 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1243 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/interactive.d.ts +12 -0
- package/dist/commands/interactive.d.ts.map +1 -0
- package/dist/commands/interactive.js +1071 -0
- package/dist/commands/interactive.js.map +1 -0
- package/dist/commands/launch.d.ts +16 -0
- package/dist/commands/launch.d.ts.map +1 -0
- package/dist/commands/launch.js +684 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/login.d.ts +40 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +469 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logs.d.ts +22 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +105 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/merge.d.ts +7 -0
- package/dist/commands/merge.d.ts.map +1 -0
- package/dist/commands/merge.js +240 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/preview.d.ts +7 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +160 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/project.d.ts +18 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +352 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/respond.d.ts +7 -0
- package/dist/commands/respond.d.ts.map +1 -0
- package/dist/commands/respond.js +112 -0
- package/dist/commands/respond.js.map +1 -0
- package/dist/commands/setPriority.d.ts +7 -0
- package/dist/commands/setPriority.d.ts.map +1 -0
- package/dist/commands/setPriority.js +112 -0
- package/dist/commands/setPriority.js.map +1 -0
- package/dist/commands/track.d.ts +7 -0
- package/dist/commands/track.d.ts.map +1 -0
- package/dist/commands/track.js +140 -0
- package/dist/commands/track.js.map +1 -0
- package/dist/commands/upload.d.ts +21 -0
- package/dist/commands/upload.d.ts.map +1 -0
- package/dist/commands/upload.js +145 -0
- package/dist/commands/upload.js.map +1 -0
- package/dist/commands/view.d.ts +7 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +168 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/watch.d.ts +7 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +438 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/commands/worktree.d.ts +7 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +122 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/config/command-names.d.ts +16 -0
- package/dist/config/command-names.d.ts.map +1 -0
- package/dist/config/command-names.js +17 -0
- package/dist/config/command-names.js.map +1 -0
- package/dist/config/constants.d.ts +12 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +12 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/index.d.ts +47 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +175 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +148 -0
- package/dist/index.js.map +1 -0
- package/dist/services/api/HulaApiClient.d.ts +170 -0
- package/dist/services/api/HulaApiClient.d.ts.map +1 -0
- package/dist/services/api/HulaApiClient.js +233 -0
- package/dist/services/api/HulaApiClient.js.map +1 -0
- package/dist/services/diff/DiffService.d.ts +44 -0
- package/dist/services/diff/DiffService.d.ts.map +1 -0
- package/dist/services/diff/DiffService.js +126 -0
- package/dist/services/diff/DiffService.js.map +1 -0
- package/dist/services/editor/EditorService.d.ts +53 -0
- package/dist/services/editor/EditorService.d.ts.map +1 -0
- package/dist/services/editor/EditorService.js +161 -0
- package/dist/services/editor/EditorService.js.map +1 -0
- package/dist/services/git/GitService.d.ts +124 -0
- package/dist/services/git/GitService.d.ts.map +1 -0
- package/dist/services/git/GitService.js +423 -0
- package/dist/services/git/GitService.js.map +1 -0
- package/dist/services/git/WorktreeService.d.ts +144 -0
- package/dist/services/git/WorktreeService.d.ts.map +1 -0
- package/dist/services/git/WorktreeService.js +505 -0
- package/dist/services/git/WorktreeService.js.map +1 -0
- package/dist/services/github/ActionsService.d.ts +66 -0
- package/dist/services/github/ActionsService.d.ts.map +1 -0
- package/dist/services/github/ActionsService.js +114 -0
- package/dist/services/github/ActionsService.js.map +1 -0
- package/dist/services/github/AssetUploadService.d.ts +103 -0
- package/dist/services/github/AssetUploadService.d.ts.map +1 -0
- package/dist/services/github/AssetUploadService.js +299 -0
- package/dist/services/github/AssetUploadService.js.map +1 -0
- package/dist/services/github/BatchCopilotDetectionService.d.ts +58 -0
- package/dist/services/github/BatchCopilotDetectionService.d.ts.map +1 -0
- package/dist/services/github/BatchCopilotDetectionService.js +321 -0
- package/dist/services/github/BatchCopilotDetectionService.js.map +1 -0
- package/dist/services/github/CopilotDetectionService.d.ts +40 -0
- package/dist/services/github/CopilotDetectionService.d.ts.map +1 -0
- package/dist/services/github/CopilotDetectionService.js +280 -0
- package/dist/services/github/CopilotDetectionService.js.map +1 -0
- package/dist/services/github/CopilotService.d.ts +27 -0
- package/dist/services/github/CopilotService.d.ts.map +1 -0
- package/dist/services/github/CopilotService.js +249 -0
- package/dist/services/github/CopilotService.js.map +1 -0
- package/dist/services/github/DeploymentDetectionService.d.ts +38 -0
- package/dist/services/github/DeploymentDetectionService.d.ts.map +1 -0
- package/dist/services/github/DeploymentDetectionService.js +104 -0
- package/dist/services/github/DeploymentDetectionService.js.map +1 -0
- package/dist/services/github/GithubAppService.d.ts +40 -0
- package/dist/services/github/GithubAppService.d.ts.map +1 -0
- package/dist/services/github/GithubAppService.js +187 -0
- package/dist/services/github/GithubAppService.js.map +1 -0
- package/dist/services/github/IssueService.d.ts +65 -0
- package/dist/services/github/IssueService.d.ts.map +1 -0
- package/dist/services/github/IssueService.js +231 -0
- package/dist/services/github/IssueService.js.map +1 -0
- package/dist/services/github/LabelService.d.ts +36 -0
- package/dist/services/github/LabelService.d.ts.map +1 -0
- package/dist/services/github/LabelService.js +122 -0
- package/dist/services/github/LabelService.js.map +1 -0
- package/dist/services/github/PRService.d.ts +77 -0
- package/dist/services/github/PRService.d.ts.map +1 -0
- package/dist/services/github/PRService.js +287 -0
- package/dist/services/github/PRService.js.map +1 -0
- package/dist/services/github/ProjectService.d.ts +144 -0
- package/dist/services/github/ProjectService.d.ts.map +1 -0
- package/dist/services/github/ProjectService.js +804 -0
- package/dist/services/github/ProjectService.js.map +1 -0
- package/dist/services/hooks/HookExecutor.d.ts +66 -0
- package/dist/services/hooks/HookExecutor.d.ts.map +1 -0
- package/dist/services/hooks/HookExecutor.js +227 -0
- package/dist/services/hooks/HookExecutor.js.map +1 -0
- package/dist/services/hooks/index.d.ts +2 -0
- package/dist/services/hooks/index.d.ts.map +1 -0
- package/dist/services/hooks/index.js +2 -0
- package/dist/services/hooks/index.js.map +1 -0
- package/dist/services/logs/LogFormatterService.d.ts +17 -0
- package/dist/services/logs/LogFormatterService.d.ts.map +1 -0
- package/dist/services/logs/LogFormatterService.js +35 -0
- package/dist/services/logs/LogFormatterService.js.map +1 -0
- package/dist/services/logs/TempFileService.d.ts +27 -0
- package/dist/services/logs/TempFileService.d.ts.map +1 -0
- package/dist/services/logs/TempFileService.js +90 -0
- package/dist/services/logs/TempFileService.js.map +1 -0
- package/dist/services/logs/index.d.ts +3 -0
- package/dist/services/logs/index.d.ts.map +1 -0
- package/dist/services/logs/index.js +4 -0
- package/dist/services/logs/index.js.map +1 -0
- package/dist/services/plan/PlanService.d.ts +70 -0
- package/dist/services/plan/PlanService.d.ts.map +1 -0
- package/dist/services/plan/PlanService.js +211 -0
- package/dist/services/plan/PlanService.js.map +1 -0
- package/dist/services/polling/GitHubDirectPollingAdapter.d.ts +16 -0
- package/dist/services/polling/GitHubDirectPollingAdapter.d.ts.map +1 -0
- package/dist/services/polling/GitHubDirectPollingAdapter.js +87 -0
- package/dist/services/polling/GitHubDirectPollingAdapter.js.map +1 -0
- package/dist/services/polling/HulaServerPollingAdapter.d.ts +23 -0
- package/dist/services/polling/HulaServerPollingAdapter.d.ts.map +1 -0
- package/dist/services/polling/HulaServerPollingAdapter.js +78 -0
- package/dist/services/polling/HulaServerPollingAdapter.js.map +1 -0
- package/dist/services/polling/IStatusPollingAdapter.d.ts +29 -0
- package/dist/services/polling/IStatusPollingAdapter.d.ts.map +1 -0
- package/dist/services/polling/IStatusPollingAdapter.js +2 -0
- package/dist/services/polling/IStatusPollingAdapter.js.map +1 -0
- package/dist/services/polling/StatusPollingAdapterFactory.d.ts +14 -0
- package/dist/services/polling/StatusPollingAdapterFactory.d.ts.map +1 -0
- package/dist/services/polling/StatusPollingAdapterFactory.js +41 -0
- package/dist/services/polling/StatusPollingAdapterFactory.js.map +1 -0
- package/dist/services/polling/index.d.ts +5 -0
- package/dist/services/polling/index.d.ts.map +1 -0
- package/dist/services/polling/index.js +5 -0
- package/dist/services/polling/index.js.map +1 -0
- package/dist/services/preview/PreviewService.d.ts +86 -0
- package/dist/services/preview/PreviewService.d.ts.map +1 -0
- package/dist/services/preview/PreviewService.js +439 -0
- package/dist/services/preview/PreviewService.js.map +1 -0
- package/dist/services/tracking/ProjectTrackingAdapter.d.ts +41 -0
- package/dist/services/tracking/ProjectTrackingAdapter.d.ts.map +1 -0
- package/dist/services/tracking/ProjectTrackingAdapter.js +230 -0
- package/dist/services/tracking/ProjectTrackingAdapter.js.map +1 -0
- package/dist/services/tracking/RemoteTrackingAdapter.d.ts +62 -0
- package/dist/services/tracking/RemoteTrackingAdapter.d.ts.map +1 -0
- package/dist/services/tracking/RemoteTrackingAdapter.js +242 -0
- package/dist/services/tracking/RemoteTrackingAdapter.js.map +1 -0
- package/dist/services/tracking/TrackingAdapterFactory.d.ts +25 -0
- package/dist/services/tracking/TrackingAdapterFactory.d.ts.map +1 -0
- package/dist/services/tracking/TrackingAdapterFactory.js +55 -0
- package/dist/services/tracking/TrackingAdapterFactory.js.map +1 -0
- package/dist/services/tracking/TrackingService.d.ts +104 -0
- package/dist/services/tracking/TrackingService.d.ts.map +1 -0
- package/dist/services/tracking/TrackingService.js +256 -0
- package/dist/services/tracking/TrackingService.js.map +1 -0
- package/dist/services/tracking/UntrackedIssuesService.d.ts +20 -0
- package/dist/services/tracking/UntrackedIssuesService.d.ts.map +1 -0
- package/dist/services/tracking/UntrackedIssuesService.js +148 -0
- package/dist/services/tracking/UntrackedIssuesService.js.map +1 -0
- package/dist/services/tracking/local-file-migration.d.ts +16 -0
- package/dist/services/tracking/local-file-migration.d.ts.map +1 -0
- package/dist/services/tracking/local-file-migration.js +86 -0
- package/dist/services/tracking/local-file-migration.js.map +1 -0
- package/dist/templates/planning-instructions.md +752 -0
- package/dist/templates/proceed-instructions.md +453 -0
- package/dist/templates/scripts/hula-fix-commit.sh +110 -0
- package/dist/templates/scripts/hula-fix-setup.sh +145 -0
- package/dist/templates/scripts/hula-launch-run.sh +89 -0
- package/dist/templates/scripts/hula-merge-local.sh +138 -0
- package/dist/templates/scripts/hula-merge-remote.sh +74 -0
- package/dist/templates/scripts/hula-read-config.sh +38 -0
- package/dist/templates/scripts/hula-verify-gather.sh +135 -0
- package/dist/templates/scripts/hula-verify-post.sh +84 -0
- package/dist/templates/skills/hula-confirm/SKILL.md +361 -0
- package/dist/templates/skills/hula-create/SKILL.md +211 -0
- package/dist/templates/skills/hula-fix/SKILL.md +224 -0
- package/dist/templates/skills/hula-launch/SKILL.md +159 -0
- package/dist/templates/skills/hula-log/SKILL.md +105 -0
- package/dist/templates/skills/hula-merge/SKILL.md +387 -0
- package/dist/templates/skills/hula-plan/SKILL.md +148 -0
- package/dist/templates/skills/hula-upload/SKILL.md +115 -0
- package/dist/templates/skills/hula-verify/SKILL.md +754 -0
- package/dist/types/common.schema.d.ts +46 -0
- package/dist/types/common.schema.d.ts.map +1 -0
- package/dist/types/common.schema.js +60 -0
- package/dist/types/common.schema.js.map +1 -0
- package/dist/types/config.schema.d.ts +443 -0
- package/dist/types/config.schema.d.ts.map +1 -0
- package/dist/types/config.schema.js +126 -0
- package/dist/types/config.schema.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/issue.schema.d.ts +136 -0
- package/dist/types/issue.schema.d.ts.map +1 -0
- package/dist/types/issue.schema.js +49 -0
- package/dist/types/issue.schema.js.map +1 -0
- package/dist/types/pr.schema.d.ts +118 -0
- package/dist/types/pr.schema.d.ts.map +1 -0
- package/dist/types/pr.schema.js +40 -0
- package/dist/types/pr.schema.js.map +1 -0
- package/dist/types/tracking.schema.d.ts +340 -0
- package/dist/types/tracking.schema.d.ts.map +1 -0
- package/dist/types/tracking.schema.js +56 -0
- package/dist/types/tracking.schema.js.map +1 -0
- package/dist/utils/browser-launcher.d.ts +60 -0
- package/dist/utils/browser-launcher.d.ts.map +1 -0
- package/dist/utils/browser-launcher.js +263 -0
- package/dist/utils/browser-launcher.js.map +1 -0
- package/dist/utils/cache.d.ts +44 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +94 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/config-parser.d.ts +16 -0
- package/dist/utils/config-parser.d.ts.map +1 -0
- package/dist/utils/config-parser.js +210 -0
- package/dist/utils/config-parser.js.map +1 -0
- package/dist/utils/editor.d.ts +21 -0
- package/dist/utils/editor.d.ts.map +1 -0
- package/dist/utils/editor.js +213 -0
- package/dist/utils/editor.js.map +1 -0
- package/dist/utils/git-utils.d.ts +5 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +18 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/dist/utils/github-cli.d.ts +62 -0
- package/dist/utils/github-cli.d.ts.map +1 -0
- package/dist/utils/github-cli.js +492 -0
- package/dist/utils/github-cli.js.map +1 -0
- package/dist/utils/logger.d.ts +45 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +118 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/open-url.d.ts +19 -0
- package/dist/utils/open-url.d.ts.map +1 -0
- package/dist/utils/open-url.js +37 -0
- package/dist/utils/open-url.js.map +1 -0
- package/dist/utils/project-resolver.d.ts +13 -0
- package/dist/utils/project-resolver.d.ts.map +1 -0
- package/dist/utils/project-resolver.js +35 -0
- package/dist/utils/project-resolver.js.map +1 -0
- package/dist/utils/prompts.d.ts +80 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +326 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/shell.d.ts +54 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +152 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/validators.d.ts +32 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +64 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application constants
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Hula Project API URL
|
|
6
|
+
*/
|
|
7
|
+
export declare const HULA_PROJECT_URL: string;
|
|
8
|
+
/**
|
|
9
|
+
* GitHub App Client ID for OAuth Device Flow
|
|
10
|
+
*/
|
|
11
|
+
export declare const GITHUB_APP_CLIENT_ID: string;
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,QACiC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAC2B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application constants
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Hula Project API URL
|
|
6
|
+
*/
|
|
7
|
+
export const HULA_PROJECT_URL = process.env.HULA_PROJECT_URL ?? 'https://www.hublaunch.site';
|
|
8
|
+
/**
|
|
9
|
+
* GitHub App Client ID for OAuth Device Flow
|
|
10
|
+
*/
|
|
11
|
+
export const GITHUB_APP_CLIENT_ID = process.env.GITHUB_APP_CLIENT_ID ?? 'Iv23liHqNAAjK1pT0ly2';
|
|
12
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,4BAA4B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Config } from '../types/config.schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration loader with TypeScript config file support
|
|
4
|
+
* Loads and validates .hublaunch/hublaunch.config.ts or uses defaults
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConfigLoader {
|
|
7
|
+
private projectRoot;
|
|
8
|
+
private configPath;
|
|
9
|
+
private config;
|
|
10
|
+
constructor(projectRoot?: string);
|
|
11
|
+
/**
|
|
12
|
+
* Load configuration from file or use defaults
|
|
13
|
+
*/
|
|
14
|
+
load(): Promise<Config>;
|
|
15
|
+
/**
|
|
16
|
+
* One-shot per-process migration: rename legacy
|
|
17
|
+
* `.hublaunch/trackedIssues.json` → `.hublaunch/trackedPlans.json` and
|
|
18
|
+
* transform contents to the new schema. Errors are warned, not fatal.
|
|
19
|
+
*/
|
|
20
|
+
private migrationDone;
|
|
21
|
+
private runLocalFileMigration;
|
|
22
|
+
/**
|
|
23
|
+
* Apply defaults for optional fields
|
|
24
|
+
*/
|
|
25
|
+
private applyDefaults;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve relative paths to absolute paths based on project root
|
|
28
|
+
*/
|
|
29
|
+
private resolvePaths;
|
|
30
|
+
/**
|
|
31
|
+
* Get current config (loads if not already loaded)
|
|
32
|
+
*/
|
|
33
|
+
get(): Promise<Config>;
|
|
34
|
+
/**
|
|
35
|
+
* Reload configuration from file
|
|
36
|
+
*/
|
|
37
|
+
reload(): Promise<Config>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get or create ConfigLoader instance
|
|
41
|
+
*/
|
|
42
|
+
export declare function getConfigLoader(projectRoot?: string): ConfigLoader;
|
|
43
|
+
/**
|
|
44
|
+
* Load configuration
|
|
45
|
+
*/
|
|
46
|
+
export declare function loadConfig(projectRoot?: string): Promise<Config>;
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAInC;;;GAGG;AAEH,qBAAa,YAAY;IAIX,OAAO,CAAC,WAAW;IAH/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAuB;gBAEjB,WAAW,GAAE,MAAsB;IAiBvD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA8E7B;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAS;YAChB,qBAAqB;IAcnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAIhC;AAKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAKlE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { join, resolve, isAbsolute, normalize } from 'path';
|
|
3
|
+
import { pathToFileURL } from 'url';
|
|
4
|
+
import { config as dotenvConfig } from 'dotenv';
|
|
5
|
+
import { ConfigSchema, DEFAULT_CONFIG, } from '../types/config.schema.js';
|
|
6
|
+
import { DEFAULT_PRIORITY_LEVELS } from '../types/common.schema.js';
|
|
7
|
+
import { migrateLocalTrackingFile } from '../services/tracking/local-file-migration.js';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration loader with TypeScript config file support
|
|
10
|
+
* Loads and validates .hublaunch/hublaunch.config.ts or uses defaults
|
|
11
|
+
*/
|
|
12
|
+
export class ConfigLoader {
|
|
13
|
+
projectRoot;
|
|
14
|
+
configPath;
|
|
15
|
+
config = null;
|
|
16
|
+
constructor(projectRoot = process.cwd()) {
|
|
17
|
+
this.projectRoot = projectRoot;
|
|
18
|
+
// Check for .ts file first, then .js/.mjs file
|
|
19
|
+
const configPathTs = join(projectRoot, '.hublaunch', 'hublaunch.config.ts');
|
|
20
|
+
const configPathMjs = join(projectRoot, '.hublaunch', 'hublaunch.config.mjs');
|
|
21
|
+
const configPathJs = join(projectRoot, '.hublaunch', 'hublaunch.config.js');
|
|
22
|
+
// Prefer .ts, then .mjs, then .js
|
|
23
|
+
this.configPath = existsSync(configPathTs)
|
|
24
|
+
? configPathTs
|
|
25
|
+
: existsSync(configPathMjs)
|
|
26
|
+
? configPathMjs
|
|
27
|
+
: configPathJs;
|
|
28
|
+
// Load environment variables from project root .env (quietly)
|
|
29
|
+
dotenvConfig({ path: join(projectRoot, '.env'), quiet: true });
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Load configuration from file or use defaults
|
|
33
|
+
*/
|
|
34
|
+
async load() {
|
|
35
|
+
if (this.config) {
|
|
36
|
+
return this.config;
|
|
37
|
+
}
|
|
38
|
+
if (!existsSync(this.configPath)) {
|
|
39
|
+
// Use default config if file doesn't exist
|
|
40
|
+
this.config = this.applyDefaults(DEFAULT_CONFIG);
|
|
41
|
+
this.config = this.resolvePaths(this.config);
|
|
42
|
+
await this.runLocalFileMigration(this.config);
|
|
43
|
+
return this.config;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
// Suppress the MODULE_TYPELESS_PACKAGE_JSON warning during config import
|
|
47
|
+
const originalEmitWarning = process.emitWarning;
|
|
48
|
+
process.emitWarning = (warning, ...args) => {
|
|
49
|
+
// Filter out the MODULE_TYPELESS_PACKAGE_JSON warning
|
|
50
|
+
if (typeof warning === 'string' &&
|
|
51
|
+
warning.includes('MODULE_TYPELESS_PACKAGE_JSON')) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (typeof warning === 'object' &&
|
|
55
|
+
warning &&
|
|
56
|
+
'name' in warning &&
|
|
57
|
+
warning.name === 'MODULE_TYPELESS_PACKAGE_JSON') {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
return originalEmitWarning.call(process, warning, ...args);
|
|
61
|
+
};
|
|
62
|
+
try {
|
|
63
|
+
// Use dynamic import to load TypeScript/JavaScript config file
|
|
64
|
+
// Convert file path to file:// URL for proper ESM import
|
|
65
|
+
const configUrl = pathToFileURL(this.configPath).href;
|
|
66
|
+
// Add cache busting to ensure fresh load on reload
|
|
67
|
+
const moduleUrl = `${configUrl}?update=${Date.now()}`;
|
|
68
|
+
const configModule = (await import(moduleUrl));
|
|
69
|
+
// Get the config - try default export first, then named 'config' export, then the module itself
|
|
70
|
+
const parsedConfig = (configModule.default ||
|
|
71
|
+
configModule.config ||
|
|
72
|
+
configModule);
|
|
73
|
+
// Validate with Zod schema
|
|
74
|
+
const validated = ConfigSchema.parse(parsedConfig);
|
|
75
|
+
this.config = this.applyDefaults(validated);
|
|
76
|
+
// Resolve relative paths to absolute paths based on project root
|
|
77
|
+
this.config = this.resolvePaths(this.config);
|
|
78
|
+
await this.runLocalFileMigration(this.config);
|
|
79
|
+
return this.config;
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
// Restore original emitWarning
|
|
83
|
+
process.emitWarning = originalEmitWarning;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.warn(`Warning: Could not load config from ${this.configPath}, using defaults`);
|
|
88
|
+
console.warn(error instanceof Error ? error.message : String(error));
|
|
89
|
+
this.config = this.applyDefaults(DEFAULT_CONFIG);
|
|
90
|
+
this.config = this.resolvePaths(this.config);
|
|
91
|
+
await this.runLocalFileMigration(this.config);
|
|
92
|
+
return this.config;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* One-shot per-process migration: rename legacy
|
|
97
|
+
* `.hublaunch/trackedIssues.json` → `.hublaunch/trackedPlans.json` and
|
|
98
|
+
* transform contents to the new schema. Errors are warned, not fatal.
|
|
99
|
+
*/
|
|
100
|
+
migrationDone = false;
|
|
101
|
+
async runLocalFileMigration(config) {
|
|
102
|
+
if (this.migrationDone)
|
|
103
|
+
return;
|
|
104
|
+
this.migrationDone = true;
|
|
105
|
+
try {
|
|
106
|
+
await migrateLocalTrackingFile(config.trackingFile);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
console.warn(`Warning: tracking-file migration failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Apply defaults for optional fields
|
|
114
|
+
*/
|
|
115
|
+
applyDefaults(config) {
|
|
116
|
+
return {
|
|
117
|
+
...config,
|
|
118
|
+
priorityLevels: config.priorityLevels ?? DEFAULT_PRIORITY_LEVELS,
|
|
119
|
+
commandAliases: config.commandAliases ?? {
|
|
120
|
+
primary: ['hula', 'hub-launch', 'hl'],
|
|
121
|
+
},
|
|
122
|
+
issueSortOrder: config.issueSortOrder ?? {
|
|
123
|
+
groupBy: 'priority',
|
|
124
|
+
sortBy: 'created',
|
|
125
|
+
direction: 'desc',
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Resolve relative paths to absolute paths based on project root
|
|
131
|
+
*/
|
|
132
|
+
resolvePaths(config) {
|
|
133
|
+
return {
|
|
134
|
+
...config,
|
|
135
|
+
planPath: isAbsolute(config.planPath)
|
|
136
|
+
? normalize(config.planPath)
|
|
137
|
+
: resolve(this.projectRoot, normalize(config.planPath)),
|
|
138
|
+
trackingFile: isAbsolute(config.trackingFile)
|
|
139
|
+
? normalize(config.trackingFile)
|
|
140
|
+
: resolve(this.projectRoot, normalize(config.trackingFile)),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get current config (loads if not already loaded)
|
|
145
|
+
*/
|
|
146
|
+
async get() {
|
|
147
|
+
return this.load();
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Reload configuration from file
|
|
151
|
+
*/
|
|
152
|
+
async reload() {
|
|
153
|
+
this.config = null;
|
|
154
|
+
return this.load();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Singleton instance
|
|
158
|
+
let configLoader = null;
|
|
159
|
+
/**
|
|
160
|
+
* Get or create ConfigLoader instance
|
|
161
|
+
*/
|
|
162
|
+
export function getConfigLoader(projectRoot) {
|
|
163
|
+
if (!configLoader) {
|
|
164
|
+
configLoader = new ConfigLoader(projectRoot);
|
|
165
|
+
}
|
|
166
|
+
return configLoader;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Load configuration
|
|
170
|
+
*/
|
|
171
|
+
export async function loadConfig(projectRoot) {
|
|
172
|
+
const loader = getConfigLoader(projectRoot);
|
|
173
|
+
return loader.load();
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,cAAc,GAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAExF;;;GAGG;AAEH,MAAM,OAAO,YAAY;IAIH;IAHZ,UAAU,CAAS;IACnB,MAAM,GAAkB,IAAI,CAAC;IAErC,YAAoB,cAAsB,OAAO,CAAC,GAAG,EAAE;QAAnC,gBAAW,GAAX,WAAW,CAAwB;QACrD,+CAA+C;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;QAE5E,kCAAkC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;YACxC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;gBACzB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,YAAY,CAAC;QAEnB,8DAA8D;QAC9D,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,2CAA2C;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;YAChD,OAAO,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,GAAG,IAAW,EAAE,EAAE;gBAChD,sDAAsD;gBACtD,IACE,OAAO,OAAO,KAAK,QAAQ;oBAC3B,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAChD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IACE,OAAO,OAAO,KAAK,QAAQ;oBAC3B,OAAO;oBACP,MAAM,IAAI,OAAO;oBACjB,OAAO,CAAC,IAAI,KAAK,8BAA8B,EAC/C,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7D,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,+DAA+D;gBAC/D,yDAAyD;gBACzD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;gBAEtD,mDAAmD;gBACnD,MAAM,SAAS,GAAG,GAAG,SAAS,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACtD,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAG5C,CAAC;gBAEF,gGAAgG;gBAChG,MAAM,YAAY,GAAG,CAAC,YAAY,CAAC,OAAO;oBACxC,YAAY,CAAC,MAAM;oBACnB,YAAY,CAAoB,CAAC;gBAEnC,2BAA2B;gBAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAE5C,iEAAiE;gBACjE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE9C,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,+BAA+B;gBAC/B,OAAO,CAAC,WAAW,GAAG,mBAAmB,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,uCAAuC,IAAI,CAAC,UAAU,kBAAkB,CACzE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,GAAG,KAAK,CAAC;IACtB,KAAK,CAAC,qBAAqB,CAAC,MAAc;QAChD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,4CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAc;QAClC,OAAO;YACL,GAAG,MAAM;YACT,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,uBAAuB;YAChE,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI;gBACvC,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC;aACtC;YACD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI;gBACvC,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,MAAM;aAClB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAAc;QACjC,OAAO;YACL,GAAG,MAAM;YACT,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC5B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC3C,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;gBAChC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC9D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAED,qBAAqB;AACrB,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAoB;IAClD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAoB;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Suppress Node.js MODULE_TYPELESS_PACKAGE_JSON warnings early
|
|
3
|
+
// This must be done before any dynamic imports
|
|
4
|
+
const originalEmitWarning = process.emitWarning;
|
|
5
|
+
process.emitWarning = ((warning, ...args) => {
|
|
6
|
+
if (typeof warning === 'string' &&
|
|
7
|
+
warning.includes('MODULE_TYPELESS_PACKAGE_JSON')) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof warning === 'object' &&
|
|
11
|
+
warning &&
|
|
12
|
+
'code' in warning &&
|
|
13
|
+
warning.code === 'MODULE_TYPELESS_PACKAGE_JSON') {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
return originalEmitWarning.call(process, warning, ...args);
|
|
17
|
+
});
|
|
18
|
+
// Also catch warnings through the warning event
|
|
19
|
+
process.on('warning', (warning) => {
|
|
20
|
+
// Suppress MODULE_TYPELESS_PACKAGE_JSON warnings
|
|
21
|
+
if (warning.name === 'Warning' &&
|
|
22
|
+
warning.message.includes('MODULE_TYPELESS_PACKAGE_JSON')) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Re-emit other warnings to console (default behavior)
|
|
26
|
+
// Don't re-emit since we've already caught it
|
|
27
|
+
});
|
|
28
|
+
// Override console.error temporarily to catch the warning output
|
|
29
|
+
const originalConsoleError = console.error;
|
|
30
|
+
console.error = (...args) => {
|
|
31
|
+
const msg = args[0];
|
|
32
|
+
if (typeof msg === 'string' && msg.includes('MODULE_TYPELESS_PACKAGE_JSON')) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
return originalConsoleError.apply(console, args);
|
|
36
|
+
};
|
|
37
|
+
import { createRequire } from 'module';
|
|
38
|
+
import { Command } from 'commander';
|
|
39
|
+
import { logger } from './utils/logger.js';
|
|
40
|
+
import { validateGhCli } from './utils/github-cli.js';
|
|
41
|
+
import { loadConfig } from './config/index.js';
|
|
42
|
+
import { githubAppService } from './services/github/GithubAppService.js';
|
|
43
|
+
const require = createRequire(import.meta.url);
|
|
44
|
+
const { version } = require('../package.json');
|
|
45
|
+
// Import commands
|
|
46
|
+
import { initCommand } from './commands/init.js';
|
|
47
|
+
import { mergeCommand } from './commands/merge.js';
|
|
48
|
+
import { logsCommand } from './commands/logs.js';
|
|
49
|
+
import { launchCommand } from './commands/launch.js';
|
|
50
|
+
import { executeCommand } from './commands/execute.js';
|
|
51
|
+
import { executeLogin } from './commands/login.js';
|
|
52
|
+
import { uploadCommand } from './commands/upload.js';
|
|
53
|
+
import { findGitRoot } from './utils/git-utils.js';
|
|
54
|
+
const program = new Command();
|
|
55
|
+
/**
|
|
56
|
+
* Main CLI entry point
|
|
57
|
+
*/
|
|
58
|
+
async function main() {
|
|
59
|
+
// Setup program
|
|
60
|
+
program
|
|
61
|
+
.name('hublaunch')
|
|
62
|
+
.description('GitHub Issue and PR automation tool')
|
|
63
|
+
.version(version)
|
|
64
|
+
.addHelpText('after', '\nGetting Started:\n Run "hula login" to authenticate and start using HubLaunch\n Run "hula init" to generate or regenerate the project configuration\n');
|
|
65
|
+
// Check if user is asking for help or version (skip validation)
|
|
66
|
+
const args = process.argv.slice(2);
|
|
67
|
+
const isHelpOrVersion = args.length === 0 ||
|
|
68
|
+
args.some((arg) => arg === '--help' ||
|
|
69
|
+
arg === '-h' ||
|
|
70
|
+
arg === '--version' ||
|
|
71
|
+
arg === '-V' ||
|
|
72
|
+
arg === 'help');
|
|
73
|
+
// Check if login command (which handles authentication itself)
|
|
74
|
+
const isLoginCommand = args[0] === 'login';
|
|
75
|
+
// Show loading indicator during initialization (skip for help/version)
|
|
76
|
+
let spinner = null;
|
|
77
|
+
if (!isHelpOrVersion) {
|
|
78
|
+
spinner = logger.spinner('Loading...');
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
if (!isHelpOrVersion && !isLoginCommand) {
|
|
82
|
+
// Validate GitHub CLI is available and authenticated
|
|
83
|
+
const ghValid = await validateGhCli();
|
|
84
|
+
if (!ghValid) {
|
|
85
|
+
spinner?.stop();
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Find project root (Git repository root)
|
|
90
|
+
const projectRoot = await findGitRoot();
|
|
91
|
+
// Load configuration (which will load .env from project root)
|
|
92
|
+
const config = await loadConfig(projectRoot);
|
|
93
|
+
// Stop spinner once loaded
|
|
94
|
+
spinner?.stop();
|
|
95
|
+
// Check for GitHub App installation (non-intrusive, runs in background)
|
|
96
|
+
// Skip for help/version/login commands
|
|
97
|
+
if (!isLoginCommand && config.hulaApiKey) {
|
|
98
|
+
// Check GitHub App installation status (will prompt if needed)
|
|
99
|
+
// This runs async and doesn't block execution
|
|
100
|
+
githubAppService.checkAndPromptInstallation(config).catch(() => {
|
|
101
|
+
// Silently fail - don't block user from using the CLI
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// Register commands
|
|
105
|
+
program
|
|
106
|
+
.command('login')
|
|
107
|
+
.description('Authenticate with hula-project')
|
|
108
|
+
.option('--url <url>', 'hula-project server URL (defaults to config or env)')
|
|
109
|
+
.action(async (options) => {
|
|
110
|
+
const configWithUrl = options.url
|
|
111
|
+
? { ...config, hulaProjectUrl: options.url }
|
|
112
|
+
: config;
|
|
113
|
+
await executeLogin(configWithUrl);
|
|
114
|
+
});
|
|
115
|
+
// ── Core commands ──────────────────────────────────────────────────────────
|
|
116
|
+
initCommand(program, config);
|
|
117
|
+
// ── Pro Plan commands ───────────────────────────────────────────────────────
|
|
118
|
+
launchCommand(program, config);
|
|
119
|
+
mergeCommand(program, config);
|
|
120
|
+
executeCommand(program, config);
|
|
121
|
+
uploadCommand(program, config);
|
|
122
|
+
logsCommand(program, config);
|
|
123
|
+
// Help command
|
|
124
|
+
program
|
|
125
|
+
.command('help')
|
|
126
|
+
.description('Show help information')
|
|
127
|
+
.action(() => {
|
|
128
|
+
program.help();
|
|
129
|
+
});
|
|
130
|
+
if (args.length === 0) {
|
|
131
|
+
program.outputHelp();
|
|
132
|
+
process.exit(0);
|
|
133
|
+
}
|
|
134
|
+
// Parse arguments
|
|
135
|
+
await program.parseAsync(process.argv);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
spinner?.stop();
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Run main
|
|
143
|
+
main().catch((error) => {
|
|
144
|
+
logger.error('Fatal error:');
|
|
145
|
+
logger.error(error instanceof Error ? error.message : String(error));
|
|
146
|
+
process.exit(1);
|
|
147
|
+
});
|
|
148
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
export interface HulaApiConfig {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
apiKey: string;
|
|
4
|
+
timeout?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ApiTrackedPlan {
|
|
7
|
+
id: string;
|
|
8
|
+
trackingName: string;
|
|
9
|
+
issueNumber: number | null;
|
|
10
|
+
title: string;
|
|
11
|
+
trackingStatus: string;
|
|
12
|
+
githubState: string;
|
|
13
|
+
priority: string;
|
|
14
|
+
project: {
|
|
15
|
+
owner: string;
|
|
16
|
+
name: string;
|
|
17
|
+
fullName: string;
|
|
18
|
+
};
|
|
19
|
+
prNumber?: number | null;
|
|
20
|
+
prUrl?: string | null;
|
|
21
|
+
githubUrl: string;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string;
|
|
24
|
+
deploymentStatus?: 'pending' | 'success' | 'failed' | null;
|
|
25
|
+
/**
|
|
26
|
+
* Server-side owner id. Optional for backward compatibility with older
|
|
27
|
+
* servers that did not expose this field.
|
|
28
|
+
*/
|
|
29
|
+
createdById?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface PlanStatusResponse {
|
|
32
|
+
plan: ApiTrackedPlan;
|
|
33
|
+
copilotStatus: {
|
|
34
|
+
status: string;
|
|
35
|
+
isAssigned: boolean;
|
|
36
|
+
hasPR: boolean;
|
|
37
|
+
};
|
|
38
|
+
lastPolled: string;
|
|
39
|
+
}
|
|
40
|
+
export interface TrackPlanRequest {
|
|
41
|
+
owner: string;
|
|
42
|
+
repo: string;
|
|
43
|
+
issueNumber: number;
|
|
44
|
+
trackingName: string;
|
|
45
|
+
title: string;
|
|
46
|
+
priority?: string;
|
|
47
|
+
planPath?: string;
|
|
48
|
+
copilotAssigned?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface ListPlansResponse {
|
|
51
|
+
plans: ApiTrackedPlan[];
|
|
52
|
+
total: number;
|
|
53
|
+
page: number;
|
|
54
|
+
limit: number;
|
|
55
|
+
totalPages: number;
|
|
56
|
+
/**
|
|
57
|
+
* The id of the authenticated user. Optional for backward compatibility
|
|
58
|
+
* with older servers that did not expose this field.
|
|
59
|
+
*/
|
|
60
|
+
currentUserId?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* HTTP client for communicating with hula-project REST API.
|
|
64
|
+
* Handles authentication, retries, and error mapping.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const client = new HulaApiClient({
|
|
68
|
+
* baseUrl: 'https://hula.example.com',
|
|
69
|
+
* apiKey: 'hula_sk_...'
|
|
70
|
+
* });
|
|
71
|
+
* const plans = await client.listPlans();
|
|
72
|
+
*/
|
|
73
|
+
export declare class HulaApiClient {
|
|
74
|
+
private client;
|
|
75
|
+
constructor(config: HulaApiConfig);
|
|
76
|
+
/**
|
|
77
|
+
* List all tracked plans for authenticated user
|
|
78
|
+
*/
|
|
79
|
+
listPlans(filters?: {
|
|
80
|
+
status?: string;
|
|
81
|
+
priority?: string;
|
|
82
|
+
project?: string;
|
|
83
|
+
page?: number;
|
|
84
|
+
limit?: number;
|
|
85
|
+
}): Promise<ListPlansResponse>;
|
|
86
|
+
/**
|
|
87
|
+
* Track a new plan
|
|
88
|
+
*/
|
|
89
|
+
trackPlan(data: TrackPlanRequest): Promise<{
|
|
90
|
+
plan: ApiTrackedPlan;
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* Get detailed status for a specific plan
|
|
94
|
+
*/
|
|
95
|
+
getPlanStatus(owner: string, repo: string, issueNumber: number): Promise<PlanStatusResponse>;
|
|
96
|
+
/**
|
|
97
|
+
* Update plan priority
|
|
98
|
+
*/
|
|
99
|
+
updatePlanPriority(planId: string, priority: string): Promise<{
|
|
100
|
+
plan: ApiTrackedPlan;
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Untrack a plan
|
|
104
|
+
*/
|
|
105
|
+
untrackPlan(planId: string): Promise<{
|
|
106
|
+
success: boolean;
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Fetch the latest Task's logs for a tracked plan (plain text).
|
|
110
|
+
* Calls GET /api/v1/logs/:planName.
|
|
111
|
+
*
|
|
112
|
+
* The URL string `/api/v1/logs/<name>` is preserved across the server
|
|
113
|
+
* rename; only the underlying resolution semantics changed (the server
|
|
114
|
+
* now resolves the name to a Plan and reads its latest Task's log).
|
|
115
|
+
*/
|
|
116
|
+
fetchTaskLogs(planName: string, options: {
|
|
117
|
+
type?: 'log' | 'output';
|
|
118
|
+
lines?: number;
|
|
119
|
+
project: string;
|
|
120
|
+
}): Promise<string>;
|
|
121
|
+
/**
|
|
122
|
+
* Detects when a 404 came from the `/api/v1/plans` collection endpoint
|
|
123
|
+
* and rethrows as an `IncompatibleServerError`. A collection 404 can
|
|
124
|
+
* only mean the server predates the Plan/Project/Task rename. Per-
|
|
125
|
+
* resource 404s (e.g. `/api/v1/plans/<id>`) keep `NotFoundError`
|
|
126
|
+
* semantics and are handled by `handleError()`.
|
|
127
|
+
*/
|
|
128
|
+
private maybeRethrowAsIncompatibleServer;
|
|
129
|
+
/**
|
|
130
|
+
* Handle API errors with user-friendly messages
|
|
131
|
+
*/
|
|
132
|
+
private handleError;
|
|
133
|
+
}
|
|
134
|
+
export declare class ApiError extends Error {
|
|
135
|
+
statusCode?: number | undefined;
|
|
136
|
+
constructor(message: string, statusCode?: number | undefined);
|
|
137
|
+
}
|
|
138
|
+
export declare class AuthenticationError extends ApiError {
|
|
139
|
+
constructor(message: string);
|
|
140
|
+
}
|
|
141
|
+
export declare class AuthorizationError extends ApiError {
|
|
142
|
+
constructor(message: string);
|
|
143
|
+
}
|
|
144
|
+
export declare class NotFoundError extends ApiError {
|
|
145
|
+
constructor(message: string);
|
|
146
|
+
}
|
|
147
|
+
export declare class ConflictError extends ApiError {
|
|
148
|
+
constructor(message: string);
|
|
149
|
+
}
|
|
150
|
+
export declare class RateLimitError extends ApiError {
|
|
151
|
+
constructor(message: string);
|
|
152
|
+
}
|
|
153
|
+
export declare class ServerError extends ApiError {
|
|
154
|
+
constructor(message: string);
|
|
155
|
+
}
|
|
156
|
+
export declare class TimeoutError extends ApiError {
|
|
157
|
+
constructor(message: string);
|
|
158
|
+
}
|
|
159
|
+
export declare class NetworkError extends ApiError {
|
|
160
|
+
constructor(message: string);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Raised when hub-launch detects that the connected hula-server predates
|
|
164
|
+
* the Plan/Project/Task rename (NoStackApp/hula-server PR #159) — i.e. a
|
|
165
|
+
* 404 on the `/api/v1/plans` collection endpoint.
|
|
166
|
+
*/
|
|
167
|
+
export declare class IncompatibleServerError extends ApiError {
|
|
168
|
+
constructor();
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=HulaApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HulaApiClient.d.ts","sourceRoot":"","sources":["../../../src/services/api/HulaApiClient.ts"],"names":[],"mappings":"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"}
|