@jonit-dev/night-watch-cli 1.8.10-beta.8 → 1.8.12-beta.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 (136) hide show
  1. package/dist/cli.js +113 -29
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +3 -1
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/review.d.ts.map +1 -1
  6. package/dist/commands/review.js +48 -7
  7. package/dist/commands/review.js.map +1 -1
  8. package/dist/commands/run.d.ts.map +1 -1
  9. package/dist/commands/run.js +8 -6
  10. package/dist/commands/run.js.map +1 -1
  11. package/dist/scripts/night-watch-audit-cron.sh +6 -0
  12. package/dist/scripts/night-watch-cron.sh +30 -9
  13. package/dist/scripts/night-watch-helpers.sh +77 -5
  14. package/dist/scripts/night-watch-pr-reviewer-cron.sh +176 -43
  15. package/dist/scripts/night-watch-qa-cron.sh +6 -0
  16. package/dist/templates/night-watch.config.json +21 -1
  17. package/dist/web/assets/index-B6E6kOoR.js +406 -0
  18. package/dist/web/assets/index-C3BV1Hoa.js +406 -0
  19. package/dist/web/assets/index-DIMUXIP8.css +1 -0
  20. package/dist/web/assets/index-Ds8OqaCa.css +1 -0
  21. package/dist/web/assets/index-NR27JE3b.js +406 -0
  22. package/dist/web/index.html +2 -2
  23. package/package.json +1 -1
  24. package/dist/cli.d.ts +0 -3
  25. package/dist/cli.js.map +0 -1
  26. package/dist/commands/analytics.d.ts +0 -14
  27. package/dist/commands/analytics.js +0 -69
  28. package/dist/commands/analytics.js.map +0 -1
  29. package/dist/commands/audit.d.ts +0 -19
  30. package/dist/commands/audit.js +0 -144
  31. package/dist/commands/audit.js.map +0 -1
  32. package/dist/commands/board.d.ts +0 -9
  33. package/dist/commands/board.js +0 -702
  34. package/dist/commands/board.js.map +0 -1
  35. package/dist/commands/cancel.d.ts +0 -46
  36. package/dist/commands/cancel.js +0 -239
  37. package/dist/commands/cancel.js.map +0 -1
  38. package/dist/commands/cron.d.ts +0 -8
  39. package/dist/commands/cron.js +0 -134
  40. package/dist/commands/cron.js.map +0 -1
  41. package/dist/commands/dashboard/tab-actions.d.ts +0 -10
  42. package/dist/commands/dashboard/tab-actions.js +0 -247
  43. package/dist/commands/dashboard/tab-actions.js.map +0 -1
  44. package/dist/commands/dashboard/tab-config.d.ts +0 -21
  45. package/dist/commands/dashboard/tab-config.js +0 -874
  46. package/dist/commands/dashboard/tab-config.js.map +0 -1
  47. package/dist/commands/dashboard/tab-logs.d.ts +0 -10
  48. package/dist/commands/dashboard/tab-logs.js +0 -202
  49. package/dist/commands/dashboard/tab-logs.js.map +0 -1
  50. package/dist/commands/dashboard/tab-schedules.d.ts +0 -21
  51. package/dist/commands/dashboard/tab-schedules.js +0 -320
  52. package/dist/commands/dashboard/tab-schedules.js.map +0 -1
  53. package/dist/commands/dashboard/tab-status.d.ts +0 -32
  54. package/dist/commands/dashboard/tab-status.js +0 -424
  55. package/dist/commands/dashboard/tab-status.js.map +0 -1
  56. package/dist/commands/dashboard/types.d.ts +0 -42
  57. package/dist/commands/dashboard/types.js +0 -5
  58. package/dist/commands/dashboard/types.js.map +0 -1
  59. package/dist/commands/dashboard.d.ts +0 -11
  60. package/dist/commands/dashboard.js +0 -242
  61. package/dist/commands/dashboard.js.map +0 -1
  62. package/dist/commands/doctor.d.ts +0 -16
  63. package/dist/commands/doctor.js +0 -195
  64. package/dist/commands/doctor.js.map +0 -1
  65. package/dist/commands/history.d.ts +0 -7
  66. package/dist/commands/history.js +0 -49
  67. package/dist/commands/history.js.map +0 -1
  68. package/dist/commands/init.d.ts +0 -45
  69. package/dist/commands/install.d.ts +0 -65
  70. package/dist/commands/install.js +0 -405
  71. package/dist/commands/install.js.map +0 -1
  72. package/dist/commands/logs.d.ts +0 -15
  73. package/dist/commands/logs.js +0 -155
  74. package/dist/commands/logs.js.map +0 -1
  75. package/dist/commands/merge.d.ts +0 -26
  76. package/dist/commands/merge.js +0 -159
  77. package/dist/commands/merge.js.map +0 -1
  78. package/dist/commands/notify.d.ts +0 -7
  79. package/dist/commands/notify.js +0 -43
  80. package/dist/commands/notify.js.map +0 -1
  81. package/dist/commands/plan.d.ts +0 -19
  82. package/dist/commands/plan.js +0 -88
  83. package/dist/commands/plan.js.map +0 -1
  84. package/dist/commands/prd-state.d.ts +0 -12
  85. package/dist/commands/prd-state.js +0 -47
  86. package/dist/commands/prd-state.js.map +0 -1
  87. package/dist/commands/prd.d.ts +0 -18
  88. package/dist/commands/prd.js +0 -363
  89. package/dist/commands/prd.js.map +0 -1
  90. package/dist/commands/prds.d.ts +0 -13
  91. package/dist/commands/prds.js +0 -194
  92. package/dist/commands/prds.js.map +0 -1
  93. package/dist/commands/prs.d.ts +0 -14
  94. package/dist/commands/prs.js +0 -104
  95. package/dist/commands/prs.js.map +0 -1
  96. package/dist/commands/qa.d.ts +0 -34
  97. package/dist/commands/qa.js +0 -214
  98. package/dist/commands/qa.js.map +0 -1
  99. package/dist/commands/queue.d.ts +0 -8
  100. package/dist/commands/queue.js +0 -378
  101. package/dist/commands/queue.js.map +0 -1
  102. package/dist/commands/resolve.d.ts +0 -26
  103. package/dist/commands/resolve.js +0 -186
  104. package/dist/commands/resolve.js.map +0 -1
  105. package/dist/commands/retry.d.ts +0 -9
  106. package/dist/commands/retry.js +0 -71
  107. package/dist/commands/retry.js.map +0 -1
  108. package/dist/commands/review.d.ts +0 -82
  109. package/dist/commands/run.d.ts +0 -73
  110. package/dist/commands/serve.d.ts +0 -19
  111. package/dist/commands/serve.js +0 -142
  112. package/dist/commands/serve.js.map +0 -1
  113. package/dist/commands/shared/env-builder.d.ts +0 -49
  114. package/dist/commands/shared/env-builder.js +0 -151
  115. package/dist/commands/shared/env-builder.js.map +0 -1
  116. package/dist/commands/slice.d.ts +0 -35
  117. package/dist/commands/slice.js +0 -316
  118. package/dist/commands/slice.js.map +0 -1
  119. package/dist/commands/state.d.ts +0 -8
  120. package/dist/commands/state.js +0 -54
  121. package/dist/commands/state.js.map +0 -1
  122. package/dist/commands/status.d.ts +0 -14
  123. package/dist/commands/status.js +0 -297
  124. package/dist/commands/status.js.map +0 -1
  125. package/dist/commands/summary.d.ts +0 -14
  126. package/dist/commands/summary.js +0 -193
  127. package/dist/commands/summary.js.map +0 -1
  128. package/dist/commands/uninstall.d.ts +0 -25
  129. package/dist/commands/uninstall.js +0 -134
  130. package/dist/commands/uninstall.js.map +0 -1
  131. package/dist/commands/update.d.ts +0 -22
  132. package/dist/commands/update.js +0 -90
  133. package/dist/commands/update.js.map +0 -1
  134. package/dist/web/assets/index-BmRrWWHn.js +0 -406
  135. package/dist/web/assets/index-CgXj_KM1.css +0 -1
  136. package/dist/web/assets/index-Dr4zlyJf.js +0 -406
@@ -1,134 +0,0 @@
1
- /**
2
- * Uninstall command for Night Watch CLI
3
- * Removes crontab entries for the current project
4
- */
5
- import * as path from 'path';
6
- import * as fs from 'fs';
7
- import { dim, generateMarker, getEntries, getProjectEntries, getProjectName, removeEntriesForProject, success, error as uiError, unregisterProject, warn, } from '@night-watch/core';
8
- /**
9
- * Core uninstall logic, reusable from dashboard.
10
- * Returns result without printing to console.
11
- */
12
- export function performUninstall(projectDir, options) {
13
- try {
14
- const projectName = getProjectName(projectDir);
15
- const marker = generateMarker(projectName);
16
- const existingEntries = Array.from(new Set([...getEntries(marker), ...getProjectEntries(projectDir)]));
17
- if (existingEntries.length === 0) {
18
- unregisterProject(projectDir);
19
- return { success: true, removedCount: 0 };
20
- }
21
- const removedCount = removeEntriesForProject(projectDir, marker);
22
- unregisterProject(projectDir);
23
- if (!options?.keepLogs) {
24
- const logDir = path.join(projectDir, 'logs');
25
- if (fs.existsSync(logDir)) {
26
- const logFiles = [
27
- 'executor.log',
28
- 'reviewer.log',
29
- 'slicer.log',
30
- 'audit.log',
31
- 'pr-resolver.log',
32
- ];
33
- logFiles.forEach((logFile) => {
34
- const logPath = path.join(logDir, logFile);
35
- if (fs.existsSync(logPath)) {
36
- fs.unlinkSync(logPath);
37
- }
38
- });
39
- try {
40
- const remainingFiles = fs.readdirSync(logDir);
41
- if (remainingFiles.length === 0) {
42
- fs.rmdirSync(logDir);
43
- }
44
- }
45
- catch {
46
- // Ignore errors removing directory
47
- }
48
- }
49
- }
50
- return { success: true, removedCount };
51
- }
52
- catch (err) {
53
- return {
54
- success: false,
55
- removedCount: 0,
56
- error: err instanceof Error ? err.message : String(err),
57
- };
58
- }
59
- }
60
- /**
61
- * Uninstall crontab entries for night-watch
62
- */
63
- export function uninstallCommand(program) {
64
- program
65
- .command('uninstall')
66
- .description('Remove crontab entries')
67
- .option('--keep-logs', 'Preserve log files')
68
- .action(async (options) => {
69
- try {
70
- // Get project directory
71
- const projectDir = process.cwd();
72
- // Get project name
73
- const projectName = getProjectName(projectDir);
74
- const marker = generateMarker(projectName);
75
- // Check if there are entries to remove
76
- const existingEntries = Array.from(new Set([...getEntries(marker), ...getProjectEntries(projectDir)]));
77
- if (existingEntries.length === 0) {
78
- warn(`No Night Watch crontab entries found for ${projectName}.`);
79
- dim('Nothing to uninstall.');
80
- return;
81
- }
82
- // Show entries that will be removed
83
- dim(`Removing Night Watch crontab entries for ${projectName}:`);
84
- existingEntries.forEach((entry) => dim(` ${entry}`));
85
- // Remove entries
86
- const removedCount = removeEntriesForProject(projectDir, marker);
87
- // Handle log files
88
- if (!options.keepLogs) {
89
- const logDir = path.join(projectDir, 'logs');
90
- if (fs.existsSync(logDir)) {
91
- const logFiles = [
92
- 'executor.log',
93
- 'reviewer.log',
94
- 'slicer.log',
95
- 'audit.log',
96
- 'pr-resolver.log',
97
- ];
98
- let logsRemoved = 0;
99
- logFiles.forEach((logFile) => {
100
- const logPath = path.join(logDir, logFile);
101
- if (fs.existsSync(logPath)) {
102
- fs.unlinkSync(logPath);
103
- logsRemoved++;
104
- }
105
- });
106
- // Try to remove log directory if empty
107
- try {
108
- const remainingFiles = fs.readdirSync(logDir);
109
- if (remainingFiles.length === 0) {
110
- fs.rmdirSync(logDir);
111
- }
112
- }
113
- catch {
114
- // Ignore errors removing directory
115
- }
116
- if (logsRemoved > 0) {
117
- console.log();
118
- dim(`Removed ${logsRemoved} log file(s).`);
119
- }
120
- }
121
- }
122
- else {
123
- console.log();
124
- dim('Log files preserved.');
125
- }
126
- success(`Successfully removed ${removedCount} crontab entry/entries.`);
127
- }
128
- catch (err) {
129
- uiError(`Error uninstalling Night Watch: ${err instanceof Error ? err.message : String(err)}`);
130
- process.exit(1);
131
- }
132
- });
133
- }
134
- //# sourceMappingURL=uninstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Update command for Night Watch CLI
3
- * Reinstalls global CLI and refreshes cron entries for one or more projects.
4
- */
5
- import { Command } from 'commander';
6
- export declare const DEFAULT_GLOBAL_SPEC = "@jonit-dev/night-watch-cli@latest";
7
- export interface IUpdateOptions {
8
- projects?: string;
9
- globalSpec: string;
10
- global?: boolean;
11
- }
12
- /**
13
- * Parse project directories from a comma-separated CLI option.
14
- * Defaults to current working directory when option is omitted.
15
- */
16
- export declare function parseProjectDirs(projects: string | undefined, cwd: string): string[];
17
- export declare function shouldInstallGlobal(options: Pick<IUpdateOptions, 'global'>): boolean;
18
- /**
19
- * Register update command.
20
- */
21
- export declare function updateCommand(program: Command): void;
22
- //# sourceMappingURL=update.d.ts.map
@@ -1,90 +0,0 @@
1
- /**
2
- * Update command for Night Watch CLI
3
- * Reinstalls global CLI and refreshes cron entries for one or more projects.
4
- */
5
- import { spawnSync } from 'child_process';
6
- import * as fs from 'fs';
7
- import * as path from 'path';
8
- import { dim, success, error as uiError, warn } from '@night-watch/core';
9
- export const DEFAULT_GLOBAL_SPEC = '@jonit-dev/night-watch-cli@latest';
10
- /**
11
- * Parse project directories from a comma-separated CLI option.
12
- * Defaults to current working directory when option is omitted.
13
- */
14
- export function parseProjectDirs(projects, cwd) {
15
- if (!projects || projects.trim().length === 0) {
16
- return [cwd];
17
- }
18
- const dirs = projects
19
- .split(',')
20
- .map((entry) => entry.trim())
21
- .filter((entry) => entry.length > 0)
22
- .map((entry) => path.resolve(cwd, entry));
23
- return Array.from(new Set(dirs));
24
- }
25
- export function shouldInstallGlobal(options) {
26
- return options.global !== false;
27
- }
28
- function runCommand(command, args, cwd) {
29
- const result = spawnSync(command, args, {
30
- cwd,
31
- env: process.env,
32
- stdio: 'inherit',
33
- });
34
- if (result.error) {
35
- throw result.error;
36
- }
37
- if ((result.status ?? 1) !== 0) {
38
- const location = cwd ? ` in ${cwd}` : '';
39
- throw new Error(`Command failed${location}: ${command} ${args.join(' ')}`);
40
- }
41
- }
42
- function resolveNightWatchBin() {
43
- const result = spawnSync('which', ['night-watch'], {
44
- encoding: 'utf-8',
45
- env: process.env,
46
- });
47
- if (result.status === 0 && typeof result.stdout === 'string' && result.stdout.trim().length > 0) {
48
- return result.stdout.trim();
49
- }
50
- return 'night-watch';
51
- }
52
- /**
53
- * Register update command.
54
- */
55
- export function updateCommand(program) {
56
- program
57
- .command('update')
58
- .description('Update global CLI and refresh cron for project(s)')
59
- .option('--projects <dirs>', 'Comma-separated project directories (default: current directory)')
60
- .option('--global-spec <spec>', 'npm package spec used for global install', DEFAULT_GLOBAL_SPEC)
61
- .option('--no-global', 'Skip global npm install and only refresh project cron')
62
- .action(async (options) => {
63
- try {
64
- const cwd = process.cwd();
65
- const projectDirs = parseProjectDirs(options.projects, cwd);
66
- if (shouldInstallGlobal(options)) {
67
- dim(`Updating global install: npm install -g ${options.globalSpec}`);
68
- runCommand('npm', ['install', '-g', options.globalSpec]);
69
- success('Global CLI update completed.');
70
- }
71
- const nightWatchBin = resolveNightWatchBin();
72
- for (const projectDir of projectDirs) {
73
- if (!fs.existsSync(projectDir) || !fs.statSync(projectDir).isDirectory()) {
74
- warn(`Skipping invalid project directory: ${projectDir}`);
75
- continue;
76
- }
77
- dim(`Refreshing cron in ${projectDir}`);
78
- runCommand(nightWatchBin, ['uninstall'], projectDir);
79
- runCommand(nightWatchBin, ['install'], projectDir);
80
- success(`Refreshed project: ${projectDir}`);
81
- }
82
- success('Update completed.');
83
- }
84
- catch (err) {
85
- uiError(`Update failed: ${err instanceof Error ? err.message : String(err)}`);
86
- process.exit(1);
87
- }
88
- });
89
- }
90
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}