@bretwardjames/ghp-cli 0.1.1 → 0.1.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/dist/branch-linker.d.ts +31 -9
- package/dist/branch-linker.d.ts.map +1 -1
- package/dist/branch-linker.js +61 -35
- package/dist/branch-linker.js.map +1 -1
- package/dist/commands/link-branch.d.ts.map +1 -1
- package/dist/commands/link-branch.js +20 -0
- package/dist/commands/link-branch.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +235 -95
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/set-field.d.ts.map +1 -1
- package/dist/commands/set-field.js +25 -1
- package/dist/commands/set-field.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +21 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/switch.d.ts.map +1 -1
- package/dist/commands/switch.js +20 -0
- package/dist/commands/switch.js.map +1 -1
- package/dist/commands/sync.d.ts +2 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +77 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/work.d.ts +5 -0
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +226 -36
- package/dist/commands/work.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/git-utils.d.ts +6 -52
- package/dist/git-utils.d.ts.map +1 -1
- package/dist/git-utils.js +7 -137
- package/dist/git-utils.js.map +1 -1
- package/dist/github-api.d.ts +17 -108
- package/dist/github-api.d.ts.map +1 -1
- package/dist/github-api.js +48 -579
- package/dist/github-api.js.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/table.d.ts +16 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +230 -0
- package/dist/table.js.map +1 -0
- package/dist/types.d.ts +6 -36
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -17,11 +17,12 @@ import { setFieldCommand } from './commands/set-field.js';
|
|
|
17
17
|
import { sliceCommand } from './commands/slice.js';
|
|
18
18
|
import { openCommand } from './commands/open.js';
|
|
19
19
|
import { commentCommand } from './commands/comment.js';
|
|
20
|
+
import { syncCommand } from './commands/sync.js';
|
|
20
21
|
const program = new Command();
|
|
21
22
|
program
|
|
22
23
|
.name('ghp')
|
|
23
24
|
.description('GitHub Projects CLI - manage project boards from your terminal')
|
|
24
|
-
.version('0.1.
|
|
25
|
+
.version('0.1.3');
|
|
25
26
|
// Authentication
|
|
26
27
|
program
|
|
27
28
|
.command('auth')
|
|
@@ -46,6 +47,11 @@ program
|
|
|
46
47
|
.option('-s, --status <status>', 'Filter by status')
|
|
47
48
|
.option('--hide-done', 'Hide completed items')
|
|
48
49
|
.option('-l, --list', 'Output as simple list (one item per line, for pickers)')
|
|
50
|
+
.option('-f, --flat', 'Output as flat table instead of grouped by status')
|
|
51
|
+
.option('-g, --group <field>', 'Group items by field (status, type, assignee, priority, size, labels)')
|
|
52
|
+
.option('--sort <fields>', 'Sort by fields (comma-separated, prefix with - for ascending)')
|
|
53
|
+
.option('--slice <field=value>', 'Filter by field (repeatable)', (val, acc) => { acc.push(val); return acc; }, [])
|
|
54
|
+
.option('-F, --filter <field=value>', 'Filter by field (repeatable, e.g., --filter state=open)', (val, acc) => { acc.push(val); return acc; }, [])
|
|
49
55
|
.action(workCommand);
|
|
50
56
|
program
|
|
51
57
|
.command('plan [shortcut]')
|
|
@@ -53,11 +59,14 @@ program
|
|
|
53
59
|
.description('Show project board or filtered list view (use shortcut name from config)')
|
|
54
60
|
.option('-p, --project <project>', 'Filter by project name')
|
|
55
61
|
.option('-s, --status <status>', 'Show only items in this status (list view)')
|
|
62
|
+
.option('-a, --all', 'Show all items in table view (overrides board view)')
|
|
56
63
|
.option('-m, --mine', 'Show only items assigned to me')
|
|
57
64
|
.option('-u, --unassigned', 'Show only unassigned items')
|
|
58
|
-
.option('-l, --list', 'Output as
|
|
65
|
+
.option('-l, --list', 'Output as table view')
|
|
66
|
+
.option('-g, --group <field>', 'Group items by field (status, type, assignee, priority, size, labels)')
|
|
59
67
|
.option('--sort <fields>', 'Sort by fields (comma-separated, prefix with - for ascending, e.g., "status,-title")')
|
|
60
68
|
.option('--slice <field=value>', 'Filter by field (repeatable: --slice label=bug --slice Priority=High)', (val, acc) => { acc.push(val); return acc; }, [])
|
|
69
|
+
.option('--view <name>', 'Filter to items in a specific project view')
|
|
61
70
|
.action(planCommand);
|
|
62
71
|
// Workflow commands
|
|
63
72
|
program
|
|
@@ -145,5 +154,10 @@ program
|
|
|
145
154
|
.description('Add a comment to an issue')
|
|
146
155
|
.option('-m, --message <text>', 'Comment text (opens editor if not provided)')
|
|
147
156
|
.action(commentCommand);
|
|
157
|
+
// Active label sync
|
|
158
|
+
program
|
|
159
|
+
.command('sync')
|
|
160
|
+
.description('Sync active label to match current branch')
|
|
161
|
+
.action(syncCommand);
|
|
148
162
|
program.parse();
|
|
149
163
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/table.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ProjectItem } from './types.js';
|
|
2
|
+
export type ColumnName = 'number' | 'type' | 'title' | 'assignees' | 'status' | 'priority' | 'size' | 'labels' | 'project' | 'repository';
|
|
3
|
+
export declare const DEFAULT_COLUMNS: ColumnName[];
|
|
4
|
+
export declare function displayTable(items: ProjectItem[], columns: ColumnName[], options?: {
|
|
5
|
+
filterEmptyColumns?: boolean;
|
|
6
|
+
}): void;
|
|
7
|
+
export declare function parseColumns(columnsStr: string): ColumnName[];
|
|
8
|
+
/**
|
|
9
|
+
* Calculate column widths based on all items (for consistent widths across grouped tables)
|
|
10
|
+
*/
|
|
11
|
+
export declare function calculateColumnWidths(items: ProjectItem[], columns: ColumnName[]): Record<string, number>;
|
|
12
|
+
/**
|
|
13
|
+
* Display table with pre-calculated column widths (for consistent alignment across groups)
|
|
14
|
+
*/
|
|
15
|
+
export declare function displayTableWithWidths(items: ProjectItem[], columns: ColumnName[], widths: Record<string, number>): void;
|
|
16
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,UAAU,GAChB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,WAAW,GACX,QAAQ,GACR,UAAU,GACV,MAAM,GACN,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;AAyEnB,eAAO,MAAM,eAAe,EAAE,UAAU,EAA2E,CAAC;AAWpH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6F1H;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAM7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BzG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAmDxH"}
|
package/dist/table.js
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
const COLUMN_DEFS = {
|
|
3
|
+
number: {
|
|
4
|
+
header: '#',
|
|
5
|
+
getValue: (item) => item.number ? `#${item.number}` : 'draft',
|
|
6
|
+
color: (v) => v === 'draft' ? chalk.dim(v) : chalk.cyan(v),
|
|
7
|
+
minWidth: 5,
|
|
8
|
+
},
|
|
9
|
+
type: {
|
|
10
|
+
header: 'Type',
|
|
11
|
+
getValue: (item) => item.issueType || '',
|
|
12
|
+
color: (v) => chalk.yellow(v),
|
|
13
|
+
},
|
|
14
|
+
title: {
|
|
15
|
+
header: 'Title',
|
|
16
|
+
getValue: (item) => item.title,
|
|
17
|
+
minWidth: 20,
|
|
18
|
+
maxWidth: 60,
|
|
19
|
+
},
|
|
20
|
+
assignees: {
|
|
21
|
+
header: 'Assignee',
|
|
22
|
+
getValue: (item) => item.assignees.map(a => '@' + a).join(' '),
|
|
23
|
+
color: (v) => chalk.cyan(v),
|
|
24
|
+
},
|
|
25
|
+
status: {
|
|
26
|
+
header: 'Status',
|
|
27
|
+
getValue: (item) => item.status || '',
|
|
28
|
+
color: (v) => {
|
|
29
|
+
const lower = v.toLowerCase();
|
|
30
|
+
if (lower === 'in progress')
|
|
31
|
+
return chalk.yellow(v);
|
|
32
|
+
if (lower === 'done' || lower === 'closed' || lower === 'completed')
|
|
33
|
+
return chalk.green(v);
|
|
34
|
+
if (lower === 'todo' || lower === 'backlog')
|
|
35
|
+
return chalk.blue(v);
|
|
36
|
+
if (lower === 'in review')
|
|
37
|
+
return chalk.magenta(v);
|
|
38
|
+
return v;
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
priority: {
|
|
42
|
+
header: 'Priority',
|
|
43
|
+
getValue: (item) => item.fields['Priority'] || item.fields['priority'] || '',
|
|
44
|
+
color: (v) => chalk.magenta(v),
|
|
45
|
+
},
|
|
46
|
+
size: {
|
|
47
|
+
header: 'Size',
|
|
48
|
+
getValue: (item) => item.fields['Size'] || item.fields['size'] || item.fields['Estimate'] || item.fields['estimate'] || '',
|
|
49
|
+
color: (v) => chalk.blue(v),
|
|
50
|
+
},
|
|
51
|
+
labels: {
|
|
52
|
+
header: 'Labels',
|
|
53
|
+
getValue: (item) => item.labels.map(l => l.name).join(', '),
|
|
54
|
+
// Labels get special rendering, handled separately
|
|
55
|
+
},
|
|
56
|
+
project: {
|
|
57
|
+
header: 'Project',
|
|
58
|
+
getValue: (item) => item.projectTitle,
|
|
59
|
+
color: (v) => chalk.dim(v),
|
|
60
|
+
},
|
|
61
|
+
repository: {
|
|
62
|
+
header: 'Repo',
|
|
63
|
+
getValue: (item) => item.repository || '',
|
|
64
|
+
color: (v) => chalk.dim(v),
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
// Default column order
|
|
68
|
+
export const DEFAULT_COLUMNS = ['number', 'type', 'title', 'assignees', 'priority', 'size', 'labels'];
|
|
69
|
+
function hexToChalk(hex) {
|
|
70
|
+
const r = parseInt(hex.slice(0, 2), 16);
|
|
71
|
+
const g = parseInt(hex.slice(2, 4), 16);
|
|
72
|
+
const b = parseInt(hex.slice(4, 6), 16);
|
|
73
|
+
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
|
74
|
+
const textColor = luminance > 0.5 ? chalk.black : chalk.white;
|
|
75
|
+
return (text) => textColor.bgRgb(r, g, b)(text);
|
|
76
|
+
}
|
|
77
|
+
export function displayTable(items, columns, options) {
|
|
78
|
+
if (items.length === 0) {
|
|
79
|
+
console.log(chalk.dim('No items found.'));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Optionally filter to only columns that have data (default: show all columns)
|
|
83
|
+
const activeColumns = options?.filterEmptyColumns
|
|
84
|
+
? columns.filter(col => {
|
|
85
|
+
if (col === 'title' || col === 'number')
|
|
86
|
+
return true; // Always show these
|
|
87
|
+
const def = COLUMN_DEFS[col];
|
|
88
|
+
return items.some(item => def.getValue(item) !== '');
|
|
89
|
+
})
|
|
90
|
+
: columns;
|
|
91
|
+
// Build rows with raw data
|
|
92
|
+
const rows = items.map(item => {
|
|
93
|
+
const row = {};
|
|
94
|
+
for (const col of activeColumns) {
|
|
95
|
+
row[col] = COLUMN_DEFS[col].getValue(item);
|
|
96
|
+
}
|
|
97
|
+
// Keep labels separate for special rendering
|
|
98
|
+
row._labels = JSON.stringify(item.labels);
|
|
99
|
+
return row;
|
|
100
|
+
});
|
|
101
|
+
// Calculate column widths
|
|
102
|
+
const widths = {};
|
|
103
|
+
const termWidth = process.stdout.columns || 120;
|
|
104
|
+
let fixedWidth = 0;
|
|
105
|
+
for (const col of activeColumns) {
|
|
106
|
+
const def = COLUMN_DEFS[col];
|
|
107
|
+
if (col === 'title')
|
|
108
|
+
continue; // Calculate title last
|
|
109
|
+
const maxContent = Math.max(def.header.length, ...rows.map(r => r[col].length));
|
|
110
|
+
const width = Math.max(def.minWidth || 0, Math.min(def.maxWidth || 999, maxContent));
|
|
111
|
+
widths[col] = width;
|
|
112
|
+
fixedWidth += width + 2; // +2 for spacing
|
|
113
|
+
}
|
|
114
|
+
// Title gets remaining space
|
|
115
|
+
const titleDef = COLUMN_DEFS.title;
|
|
116
|
+
widths.title = Math.max(titleDef.minWidth || 20, Math.min(titleDef.maxWidth || 60, termWidth - fixedWidth - 4));
|
|
117
|
+
// Print header
|
|
118
|
+
const headerParts = [];
|
|
119
|
+
for (const col of activeColumns) {
|
|
120
|
+
const def = COLUMN_DEFS[col];
|
|
121
|
+
headerParts.push(chalk.dim(def.header.padEnd(widths[col])));
|
|
122
|
+
}
|
|
123
|
+
console.log(` ${headerParts.join(' ')}`);
|
|
124
|
+
console.log(chalk.dim(' ' + '─'.repeat(Math.min(termWidth - 4, Object.values(widths).reduce((a, b) => a + b, 0) + (activeColumns.length - 1) * 2))));
|
|
125
|
+
// Print rows
|
|
126
|
+
for (let i = 0; i < rows.length; i++) {
|
|
127
|
+
const row = rows[i];
|
|
128
|
+
const item = items[i];
|
|
129
|
+
const parts = [];
|
|
130
|
+
for (const col of activeColumns) {
|
|
131
|
+
const def = COLUMN_DEFS[col];
|
|
132
|
+
let value = row[col];
|
|
133
|
+
// Handle title truncation
|
|
134
|
+
if (col === 'title' && value.length > widths[col]) {
|
|
135
|
+
value = value.substring(0, widths[col] - 1) + '…';
|
|
136
|
+
}
|
|
137
|
+
// Apply color if defined (except labels which are special)
|
|
138
|
+
if (col !== 'labels') {
|
|
139
|
+
const padded = value.padEnd(widths[col]);
|
|
140
|
+
parts.push(def.color ? def.color(padded) : padded);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Handle labels separately with colored backgrounds
|
|
144
|
+
if (activeColumns.includes('labels') && item.labels.length > 0) {
|
|
145
|
+
const labelStr = item.labels.map(l => {
|
|
146
|
+
const bg = hexToChalk(l.color);
|
|
147
|
+
return bg(` ${l.name} `);
|
|
148
|
+
}).join(' ');
|
|
149
|
+
parts.push(labelStr);
|
|
150
|
+
}
|
|
151
|
+
console.log(` ${parts.join(' ')}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
export function parseColumns(columnsStr) {
|
|
155
|
+
const validColumns = Object.keys(COLUMN_DEFS);
|
|
156
|
+
return columnsStr
|
|
157
|
+
.split(',')
|
|
158
|
+
.map(c => c.trim().toLowerCase())
|
|
159
|
+
.filter(c => validColumns.includes(c));
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Calculate column widths based on all items (for consistent widths across grouped tables)
|
|
163
|
+
*/
|
|
164
|
+
export function calculateColumnWidths(items, columns) {
|
|
165
|
+
const widths = {};
|
|
166
|
+
const termWidth = process.stdout.columns || 120;
|
|
167
|
+
let fixedWidth = 0;
|
|
168
|
+
for (const col of columns) {
|
|
169
|
+
const def = COLUMN_DEFS[col];
|
|
170
|
+
if (col === 'title')
|
|
171
|
+
continue; // Calculate title last
|
|
172
|
+
const maxContent = Math.max(def.header.length, ...items.map(item => def.getValue(item).length));
|
|
173
|
+
const width = Math.max(def.minWidth || 0, Math.min(def.maxWidth || 999, maxContent));
|
|
174
|
+
widths[col] = width;
|
|
175
|
+
fixedWidth += width + 2; // +2 for spacing
|
|
176
|
+
}
|
|
177
|
+
// Title gets remaining space
|
|
178
|
+
const titleDef = COLUMN_DEFS.title;
|
|
179
|
+
widths.title = Math.max(titleDef.minWidth || 20, Math.min(titleDef.maxWidth || 60, termWidth - fixedWidth - 4));
|
|
180
|
+
return widths;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Display table with pre-calculated column widths (for consistent alignment across groups)
|
|
184
|
+
*/
|
|
185
|
+
export function displayTableWithWidths(items, columns, widths) {
|
|
186
|
+
if (items.length === 0) {
|
|
187
|
+
console.log(chalk.dim('No items found.'));
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const termWidth = process.stdout.columns || 120;
|
|
191
|
+
// Print header
|
|
192
|
+
const headerParts = [];
|
|
193
|
+
for (const col of columns) {
|
|
194
|
+
const def = COLUMN_DEFS[col];
|
|
195
|
+
headerParts.push(chalk.dim(def.header.padEnd(widths[col])));
|
|
196
|
+
}
|
|
197
|
+
console.log(` ${headerParts.join(' ')}`);
|
|
198
|
+
console.log(chalk.dim(' ' + '─'.repeat(Math.min(termWidth - 4, Object.values(widths).reduce((a, b) => a + b, 0) + (columns.length - 1) * 2))));
|
|
199
|
+
// Print rows
|
|
200
|
+
for (const item of items) {
|
|
201
|
+
const parts = [];
|
|
202
|
+
for (const col of columns) {
|
|
203
|
+
const def = COLUMN_DEFS[col];
|
|
204
|
+
let value = def.getValue(item);
|
|
205
|
+
// Handle title truncation
|
|
206
|
+
if (col === 'title' && value.length > widths[col]) {
|
|
207
|
+
value = value.substring(0, widths[col] - 1) + '…';
|
|
208
|
+
}
|
|
209
|
+
// Apply color if defined (except labels which are special)
|
|
210
|
+
if (col !== 'labels') {
|
|
211
|
+
const padded = value.padEnd(widths[col]);
|
|
212
|
+
parts.push(def.color ? def.color(padded) : padded);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Handle labels separately with colored backgrounds
|
|
216
|
+
if (columns.includes('labels') && item.labels.length > 0) {
|
|
217
|
+
const labelStr = item.labels.map(l => {
|
|
218
|
+
const bg = hexToChalk(l.color);
|
|
219
|
+
return bg(` ${l.name} `);
|
|
220
|
+
}).join(' ');
|
|
221
|
+
parts.push(labelStr);
|
|
222
|
+
}
|
|
223
|
+
else if (columns.includes('labels')) {
|
|
224
|
+
// Empty labels column - add padding
|
|
225
|
+
parts.push(''.padEnd(widths['labels'] || 0));
|
|
226
|
+
}
|
|
227
|
+
console.log(` ${parts.join(' ')}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,37 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
id: string;
|
|
8
|
-
title: string;
|
|
9
|
-
number: number | null;
|
|
10
|
-
type: 'issue' | 'pull_request' | 'draft';
|
|
11
|
-
issueType: string | null;
|
|
12
|
-
status: string | null;
|
|
13
|
-
assignees: string[];
|
|
14
|
-
labels: Array<{
|
|
15
|
-
name: string;
|
|
16
|
-
color: string;
|
|
17
|
-
}>;
|
|
18
|
-
repository: string | null;
|
|
19
|
-
url: string | null;
|
|
20
|
-
projectId: string;
|
|
21
|
-
projectTitle: string;
|
|
22
|
-
fields: Record<string, string>;
|
|
23
|
-
}
|
|
24
|
-
export interface Project {
|
|
25
|
-
id: string;
|
|
26
|
-
title: string;
|
|
27
|
-
number: number;
|
|
28
|
-
url: string;
|
|
29
|
-
}
|
|
30
|
-
export interface StatusField {
|
|
31
|
-
fieldId: string;
|
|
32
|
-
options: Array<{
|
|
33
|
-
id: string;
|
|
34
|
-
name: string;
|
|
35
|
-
}>;
|
|
36
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Types re-exported from core library.
|
|
3
|
+
*
|
|
4
|
+
* This file maintains backwards compatibility for imports.
|
|
5
|
+
*/
|
|
6
|
+
export type { RepoInfo, ProjectItem, Project, StatusField, IssueDetails, Collaborator, IssueReference, BranchLink, } from '@bretwardjames/ghp-core';
|
|
37
7
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACR,QAAQ,EACR,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,GACb,MAAM,yBAAyB,CAAC"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bretwardjames/ghp-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "GitHub Projects CLI - manage project boards from your terminal",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"node": ">=18.0.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@
|
|
40
|
+
"@bretwardjames/ghp-core": "^0.1.0",
|
|
41
41
|
"commander": "^12.0.0",
|
|
42
42
|
"chalk": "^5.3.0"
|
|
43
43
|
},
|