@maka/maka-cli 5.158.0 → 5.159.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.
- package/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +2 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +17 -0
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +24 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.159.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 3.x applications using React.",
|
|
@@ -133,14 +133,11 @@ export class BacklogCommand extends Command {
|
|
|
133
133
|
* empty, before any subcommand (this one included) could be reached.
|
|
134
134
|
*/
|
|
135
135
|
async webBoard() {
|
|
136
|
-
const { buildBacklogBoardUrl } = await import('../utilities/web-character-generator.js');
|
|
136
|
+
const { buildBacklogBoardUrl, backlogBoardHandoff } = await import('../utilities/web-character-generator.js');
|
|
137
137
|
const url = buildBacklogBoardUrl(authToken());
|
|
138
138
|
const { openBrowser } = await import('../../../../tools/browser/open-browser.js');
|
|
139
139
|
openBrowser(url);
|
|
140
|
-
return
|
|
141
|
-
`Your backlog board is opening in the browser -- the game keeps running right here.`,
|
|
142
|
-
` ${url}`,
|
|
143
|
-
].join('\n');
|
|
140
|
+
return backlogBoardHandoff(url, { gameRunning: true }).join('\n');
|
|
144
141
|
}
|
|
145
142
|
async file(text) {
|
|
146
143
|
const game = this.game;
|
|
@@ -94,6 +94,23 @@ const BACKLOG_PAGE = '/backlog';
|
|
|
94
94
|
export function buildBacklogBoardUrl(resumeToken) {
|
|
95
95
|
return `${cliLoginUrl()}?t=${Date.now()}#token=${encodeURIComponent(resumeToken)}&next=${BACKLOG_PAGE}`;
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* WHAT IS SAID WHEN THE BOARD OPENS -- one wording for both doors into
|
|
99
|
+
* it: the in-game "backlog web" (the game keeps running) and the
|
|
100
|
+
* launcher's `maka play:backlog --web` (user request, 2026-09-10: "can
|
|
101
|
+
* I get a maka play:backlog --web to view the backlog in the browser?").
|
|
102
|
+
* The URL is ALWAYS in the lines, for the same reason
|
|
103
|
+
* characterForgeHandoff spells out: openBrowser is fire-and-forget, so
|
|
104
|
+
* the printed URL is the only thing that works headless or over SSH.
|
|
105
|
+
*/
|
|
106
|
+
export function backlogBoardHandoff(url, opts) {
|
|
107
|
+
return [
|
|
108
|
+
opts.gameRunning
|
|
109
|
+
? `Your backlog board is opening in the browser -- the game keeps running right here.`
|
|
110
|
+
: `Your backlog board is opening in the browser.`,
|
|
111
|
+
` ${url}`,
|
|
112
|
+
];
|
|
113
|
+
}
|
|
97
114
|
/**
|
|
98
115
|
* WHAT THE CLI SAYS ON ITS WAY OUT of the chargen handoff. Extracted
|
|
99
116
|
* from the command handler so the two things that matter about it are
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import ShadowrunCommand, { ShadowrunCompat } from './sideQuest.sub.cmd.js';
|
|
2
2
|
import { Command } from '../../command.js';
|
|
3
|
+
import { Log } from '../../tools/log/log.class.js';
|
|
3
4
|
import { registerBacklogMcp } from './sideQuest-backlog-mcp.sub.cmd.js';
|
|
4
5
|
// Registered under BOTH the new spelling (play:backlog) and the compat
|
|
5
6
|
// sub (play:shadowrun:backlog) from ONE definition -- two commands, one
|
|
6
7
|
// options object, one handler, so the pair cannot drift.
|
|
7
8
|
const registerBacklog = (parent) => Command.create({
|
|
8
9
|
name: 'backlog',
|
|
9
|
-
usage: 'maka play:backlog [<item id>]',
|
|
10
|
+
usage: 'maka play:backlog [<item id>] [--web]',
|
|
10
11
|
shortDesc: 'Read the play-tester board without starting a game.',
|
|
11
12
|
description: `The play-tester backlog on maka-cli.com: what has been reported, what
|
|
12
13
|
the rulebooks made of it, what closed it, and which items ship a repro
|
|
@@ -21,9 +22,11 @@ const registerBacklog = (parent) => Command.create({
|
|
|
21
22
|
{ name: 'all', boolFlag: true, description: 'Include closed items, which are hidden by default.' },
|
|
22
23
|
{ name: 'close', boolFlag: true, description: 'With an item id: close it outright -- filed in error, duplicate, no longer real. Remaining words are the reason.' },
|
|
23
24
|
{ name: 'detach', description: 'With an item id: take a wrongly attached commit back off it (a full sha, or several separated by commas). Admin only. Remaining words say why.' },
|
|
25
|
+
{ name: 'web', boolFlag: true, description: 'Open the live board in your browser (the same handoff as "backlog web" in-game) instead of printing it here.' },
|
|
24
26
|
],
|
|
25
27
|
examples: [
|
|
26
28
|
'maka play:backlog',
|
|
29
|
+
'maka play:backlog --web',
|
|
27
30
|
'maka play:backlog --filter in-review',
|
|
28
31
|
'maka play:backlog --commit 359ad1fe',
|
|
29
32
|
'maka play:backlog b9YeNqTNBJuk9dbrk',
|
|
@@ -31,6 +34,26 @@ const registerBacklog = (parent) => Command.create({
|
|
|
31
34
|
'maka play:backlog b9YeNqTNBJuk9dbrk --detach 7ed04359 attached to the wrong row',
|
|
32
35
|
],
|
|
33
36
|
}, async function (args, opts) {
|
|
37
|
+
// `--web` (user request, 2026-09-10): the browser board, from the
|
|
38
|
+
// launcher. Same /cli-login handoff the in-game "backlog web" uses --
|
|
39
|
+
// one URL builder, one wording -- and nothing else below runs: opening
|
|
40
|
+
// a page is not a dump with extra steps. Checked FIRST so it never
|
|
41
|
+
// needs the board fetched to say where the board is.
|
|
42
|
+
if (opts.web === true) {
|
|
43
|
+
const { authToken } = await import('./sideQuest/utilities/cloud-saves.js');
|
|
44
|
+
const token = authToken();
|
|
45
|
+
if (!token) {
|
|
46
|
+
Log.error('The backlog runs on your maka-cli.com login -- run `maka login` first.');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const { buildBacklogBoardUrl, backlogBoardHandoff } = await import('./sideQuest/utilities/web-character-generator.js');
|
|
50
|
+
const url = buildBacklogBoardUrl(token);
|
|
51
|
+
const { openBrowser } = await import('../../tools/browser/open-browser.js');
|
|
52
|
+
openBrowser(url);
|
|
53
|
+
for (const line of backlogBoardHandoff(url, { gameRunning: false }))
|
|
54
|
+
Log.info(line);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
34
57
|
const { dumpBacklog } = await import('./sideQuest/utilities/backlog-dump.js');
|
|
35
58
|
// `--close` STILL ARRIVES AS A STRING when a reason follows it, even
|
|
36
59
|
// here: minimist's boolean set is global to the CLI and teaching it
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.159.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 3.x applications using React.",
|