flowcollab 0.3.12 → 0.3.14
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/LICENSE +1 -1
- package/bin/_client.mjs +1 -1
- package/bin/edit.mjs +9 -3
- package/bin/login.mjs +2 -2
- package/package.json +1 -1
package/LICENSE
CHANGED
package/bin/_client.mjs
CHANGED
|
@@ -81,7 +81,7 @@ export function saveGlobalConfig(patch) {
|
|
|
81
81
|
// flow-login writes apiBase + token to ~/.flow/config.json — both take precedence over
|
|
82
82
|
// env vars so a stale FLOW_API_BASE / FLOW_API_TOKEN_* doesn't silently override the
|
|
83
83
|
// user's authenticated session. Env vars are still honoured when config.json has no value.
|
|
84
|
-
const DEFAULT_BASE = _gc.apiBase || process.env.FLOW_API_BASE || 'https://
|
|
84
|
+
const DEFAULT_BASE = _gc.apiBase || process.env.FLOW_API_BASE || 'https://flowcollab.dev';
|
|
85
85
|
|
|
86
86
|
function envToken() {
|
|
87
87
|
return _gc.token || process.env.FLOW_API_TOKEN_OWNER || process.env.FLOW_API_TOKEN_CONTRIBUTOR || '';
|
package/bin/edit.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* flow:edit — update task fields from the CLI.
|
|
3
3
|
Usage:
|
|
4
4
|
flow-edit <id> --title="new title"
|
|
5
|
-
flow-edit <id> --priority=
|
|
5
|
+
flow-edit <id> --priority=P1-soon --area=backend (p0/p1/p2 shorthand also accepted)
|
|
6
6
|
flow-edit <id> --due=2026-07-01
|
|
7
7
|
flow-edit <id> --milestone="v1.0"
|
|
8
8
|
flow-edit <id> --blocked-by=<uuid>
|
|
@@ -10,9 +10,15 @@
|
|
|
10
10
|
|
|
11
11
|
import { flowFetch, resolveTaskId, positional, arg, die } from './_client.mjs';
|
|
12
12
|
|
|
13
|
+
// B16: the server enum is P0-now / P1-soon / P2-later. Accept p0/p1/p2 (and any case of the
|
|
14
|
+
// canonical form) so the documented shorthand isn't rejected; pass anything else through for
|
|
15
|
+
// the server to validate.
|
|
16
|
+
const PRIORITY_CANON = { p0: 'P0-now', p1: 'P1-soon', p2: 'P2-later', 'p0-now': 'P0-now', 'p1-soon': 'P1-soon', 'p2-later': 'P2-later' };
|
|
17
|
+
const normalizePriority = v => PRIORITY_CANON[String(v).toLowerCase()] || v;
|
|
18
|
+
|
|
13
19
|
const FIELD_MAP = {
|
|
14
20
|
title: v => ({ title: v }),
|
|
15
|
-
priority: v => ({ priority: v }),
|
|
21
|
+
priority: v => ({ priority: normalizePriority(v) }),
|
|
16
22
|
area: v => ({ area: v }),
|
|
17
23
|
due: v => ({ due_at: /^\d{4}-\d{2}-\d{2}$/.test(v) ? v + 'T12:00:00Z' : v }),
|
|
18
24
|
milestone: v => ({ milestone: v }),
|
|
@@ -29,7 +35,7 @@ async function main() {
|
|
|
29
35
|
if (val !== undefined && val !== '') Object.assign(changes, toField(val));
|
|
30
36
|
}
|
|
31
37
|
|
|
32
|
-
if (Object.keys(changes).length === 0) die('No fields to update. Pass at least one flag like --title="..." or --priority=
|
|
38
|
+
if (Object.keys(changes).length === 0) die('No fields to update. Pass at least one flag like --title="..." or --priority=P1-soon');
|
|
33
39
|
|
|
34
40
|
const id = await resolveTaskId(raw);
|
|
35
41
|
const res = await flowFetch(`/api/flow/tasks/${id}`, { method: 'PATCH', body: changes });
|
package/bin/login.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/* flow-login — authorize the CLI via browser OAuth (device flow).
|
|
3
3
|
Usage:
|
|
4
|
-
flow-login [--server=https://
|
|
4
|
+
flow-login [--server=https://flowcollab.dev]
|
|
5
5
|
*/
|
|
6
6
|
import { homedir } from 'os';
|
|
7
7
|
import { mkdirSync, readFileSync, writeFileSync, chmodSync, renameSync } from 'fs';
|
|
@@ -9,7 +9,7 @@ import { join } from 'path';
|
|
|
9
9
|
import { exec } from 'child_process';
|
|
10
10
|
|
|
11
11
|
const serverArg = process.argv.find(a => a.startsWith('--server='))?.slice(9);
|
|
12
|
-
const base = (serverArg || process.env.FLOW_API_BASE || 'https://
|
|
12
|
+
const base = (serverArg || process.env.FLOW_API_BASE || 'https://flowcollab.dev').replace(/\/+$/, '');
|
|
13
13
|
|
|
14
14
|
function openBrowser(url) {
|
|
15
15
|
try {
|