@maka/maka-cli 5.84.0 → 5.86.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/call.d.ts +0 -28
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +1 -41
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +47 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js +16 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +31 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +11 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +28 -4
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +86 -16
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +86 -10
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +15 -6
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js +123 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js +43 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.d.ts +116 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +96 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +59 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.d.ts +37 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.js +51 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.d.ts +76 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +84 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +86 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +137 -21
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js +139 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js.map +1 -0
- package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js +46 -44
- package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/update.js +6 -20
- package/bundle/typescript/src/commands/update.js.map +1 -1
- package/bundle/typescript/src/tools/self-update/binary-install.d.ts +113 -0
- package/bundle/typescript/src/tools/self-update/binary-install.js +178 -0
- package/bundle/typescript/src/tools/self-update/binary-install.js.map +1 -0
- package/bundle/typescript/src/tools/self-update/update-maka.d.ts +3 -1
- package/bundle/typescript/src/tools/self-update/update-maka.js +219 -3
- package/bundle/typescript/src/tools/self-update/update-maka.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Logger } from './logger.js';
|
|
2
2
|
import { rollPool, formatRoll } from './dice.js';
|
|
3
3
|
import { isWatched } from './surveillance.js';
|
|
4
|
+
import { spawnEphemeral } from './ephemeral.js';
|
|
5
|
+
import { AI } from '../../../../tools/ai/ai.class.js';
|
|
4
6
|
/**
|
|
5
7
|
* IDENTITY AT THE COUNTER (SINs & commerce, player go 2026-08-24;
|
|
6
8
|
* canon p.363-368, values engine-adapted -- the RAG was down). The
|
|
@@ -128,6 +130,52 @@ export function paperPurchase(p, basePrice, availability, meta) {
|
|
|
128
130
|
const SWEEP_CHANCE_WATCHED = 0.10;
|
|
129
131
|
const SWEEP_CHANCE_STREET = 0.04;
|
|
130
132
|
const SWEEP_HOT_BONUS = 0.05;
|
|
133
|
+
/**
|
|
134
|
+
* THE OFFICER IS A MOUTH, NOT A JUDGE (7ALf6u7PvTg6TZSm7).
|
|
135
|
+
*
|
|
136
|
+
* Every ruling in this sweep is already made by the time this runs:
|
|
137
|
+
* wandRead returned the band, addHeat billed it, a burned fake is
|
|
138
|
+
* already out of the inventory. Spawning a body afterwards adds someone
|
|
139
|
+
* to talk to and changes NOTHING about the outcome, which is why it is
|
|
140
|
+
* safe -- the worst a bad brief can do here is write bad dialogue.
|
|
141
|
+
*
|
|
142
|
+
* NO AI, NO GOVERNOR (ruling). With AI off the sweep keeps exactly its
|
|
143
|
+
* existing prose and no body is spawned at all: a stranger standing
|
|
144
|
+
* mute in the room is a bug report waiting ("this cop won't talk"),
|
|
145
|
+
* while the prose alone is a working game. sweep-officer.test.ts asserts
|
|
146
|
+
* that path is byte-identical to the old output.
|
|
147
|
+
*/
|
|
148
|
+
function postSweepOfficer(game, room, band) {
|
|
149
|
+
if (!game.scene || !game.ephemerals || !AI.isConfigured())
|
|
150
|
+
return;
|
|
151
|
+
const stance = band === 'clean'
|
|
152
|
+
? `Their wand just went green on the person in front of them, so they are already half-turned toward the next face in the room -- bored, procedural, done with this one.`
|
|
153
|
+
: band === 'odd'
|
|
154
|
+
? `Their wand muttered something they did not like about the person in front of them and they waved them on anyway. They are not satisfied, and they are still watching.`
|
|
155
|
+
: band === 'busted'
|
|
156
|
+
? `Their wand just CHOKED on a forgery. They want this person off the floor, not processed -- paperwork is somebody else's afternoon.`
|
|
157
|
+
: `The person in front of them has no SIN at all, which in a place like this is the whole offense. They have already taken the photographs.`;
|
|
158
|
+
spawnEphemeral({ scene: game.scene, ephemerals: game.ephemerals }, {
|
|
159
|
+
name: SWEEP_OFFICER_NAME,
|
|
160
|
+
description: `a private-security patrol officer working this floor with a SIN wand. ${stance} They are a uniform doing a shift -- not a character in anyone's story, not connected to whatever brought these people here, and off this floor the moment the sweep moves on.`,
|
|
161
|
+
kind: 'authority',
|
|
162
|
+
// EXCHANGE-scoped: they exist for as long as the player stands
|
|
163
|
+
// there talking. Walking out ends it (ruling), and the officer does
|
|
164
|
+
// not follow.
|
|
165
|
+
until: 'exchange',
|
|
166
|
+
room,
|
|
167
|
+
// A working rent-a-cop, not a boss fight. Deliberately ordinary:
|
|
168
|
+
// the player who decides to swing at security should be picking a
|
|
169
|
+
// fight with a person, not a set piece.
|
|
170
|
+
combat: {
|
|
171
|
+
body: 3, agility: 3, reaction: 3, strength: 3, willpower: 3,
|
|
172
|
+
logic: 3, intuition: 3, charisma: 3, edge: 1, combatSkill: 3,
|
|
173
|
+
skills: { perception: 3, firearms: 3, intimidation: 2 },
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/** One name, so a second sweep in the same room can never double-spawn. */
|
|
178
|
+
export const SWEEP_OFFICER_NAME = 'Patrol Officer';
|
|
131
179
|
export function maybeSinSweep(game, actor, room, meta) {
|
|
132
180
|
if (!game.onRun || actor.plane !== 'meat')
|
|
133
181
|
return '';
|
|
@@ -156,6 +204,9 @@ export function maybeSinSweep(game, actor, room, meta) {
|
|
|
156
204
|
if (actor.qualities.has('sinner-criminal')) {
|
|
157
205
|
game.addHeat(3, 'sweep: criminal SIN logged on site');
|
|
158
206
|
lines.push(`Your CRIMINAL SIN answers before you can. They log it, photograph you, and wave you on -- but this site now KNOWS a felon walked its floor, and the district feed has your route.`);
|
|
207
|
+
// A logged felon waved on is the 'odd' stance exactly: not
|
|
208
|
+
// satisfied, still watching, no grounds to hold you.
|
|
209
|
+
postSweepOfficer(game, room, 'odd');
|
|
159
210
|
return lines.join('\n');
|
|
160
211
|
}
|
|
161
212
|
const fake = bestFakeSin(actor);
|
|
@@ -167,20 +218,24 @@ export function maybeSinSweep(game, actor, room, meta) {
|
|
|
167
218
|
if (band === 'clean') {
|
|
168
219
|
game.addHeat(1, 'sweep: fake SIN logged (datatrail)');
|
|
169
220
|
lines.push(`Your Rating ${fake.rating} fake answers -- green light. A name that isn't yours goes in their log, and the patrol moves on.`);
|
|
221
|
+
postSweepOfficer(game, room, 'clean');
|
|
170
222
|
return lines.join('\n');
|
|
171
223
|
}
|
|
172
224
|
if (band === 'odd') {
|
|
173
225
|
game.addHeat(2, 'sweep: fake SIN read as ODD');
|
|
174
226
|
lines.push(`The wand mutters over your Rating ${fake.rating} fake -- "something's odd," the officer says, and stares a beat too long before waving you on. The fake survives; the extra attention doesn't wash off.`);
|
|
227
|
+
postSweepOfficer(game, room, 'odd');
|
|
175
228
|
return lines.join('\n');
|
|
176
229
|
}
|
|
177
230
|
actor.inventory.removeItem(fake.item.name);
|
|
178
231
|
game.addHeat(3, 'sweep: fake SIN burned');
|
|
179
232
|
lines.push(`The wand CHOKES on your Rating ${fake.rating} fake -- BURNED, flagged everywhere at once. Security wants you gone, not processed: they shove you toward the door and put your face on the district feed.`);
|
|
233
|
+
postSweepOfficer(game, room, 'busted');
|
|
180
234
|
return lines.join('\n');
|
|
181
235
|
}
|
|
182
236
|
game.addHeat(4, 'sweep: SINless, face remembered');
|
|
183
237
|
lines.push(`No SIN at all -- in a place like this that IS the offense. They photograph you from three angles and escort you off the floor. The district feed has your face now; the ride home will be interesting.`);
|
|
238
|
+
postSweepOfficer(game, room, 'sinless');
|
|
184
239
|
return lines.join('\n');
|
|
185
240
|
}
|
|
186
241
|
export function venueSinCheck(p, host, opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sin.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/sin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sin.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/sin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Player } from '../models/player.js';
|
|
2
|
+
import { Room } from '../models/room.js';
|
|
3
|
+
import { IEphemeralHost } from './ephemeral.js';
|
|
4
|
+
export interface IGangHost extends IEphemeralHost {
|
|
5
|
+
/** Rooms that have already had their encounter -- once each, ever. */
|
|
6
|
+
gangedRooms: Set<string>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Maybe somebody is holding this corner. Returns the line to show, or
|
|
10
|
+
* '' for the overwhelmingly common case of nothing happening.
|
|
11
|
+
*
|
|
12
|
+
* NO AI, NO GOVERNOR (ruling, and the same branch the officer takes):
|
|
13
|
+
* with AI off nothing spawns and nothing is narrated, because a mute
|
|
14
|
+
* hostile stranger is worse than an empty street. The test asserts this
|
|
15
|
+
* path returns the empty string exactly.
|
|
16
|
+
*/
|
|
17
|
+
export declare function maybeStreetGang(host: IGangHost, actor: Player, room: Room): string;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Logger } from './logger.js';
|
|
2
|
+
import { isOutdoorsPlace } from './outdoors.js';
|
|
3
|
+
import { spawnEphemeral } from './ephemeral.js';
|
|
4
|
+
import { AI } from '../../../../tools/ai/ai.class.js';
|
|
5
|
+
/**
|
|
6
|
+
* THE SECOND EPHEMERAL KIND: a street gang holding its block
|
|
7
|
+
* (7ALf6u7PvTg6TZSm7, Maka named three kinds -- "authority checking
|
|
8
|
+
* SINs, hostile mobs, neutral npcs"). The officer shipped first; this
|
|
9
|
+
* is the mob, on the rails that officer proved.
|
|
10
|
+
*
|
|
11
|
+
* A GANG IS NOT A RESPONSE TEAM, and that distinction is the whole
|
|
12
|
+
* reason this is safe to add. The engine deliberately promises that
|
|
13
|
+
* NOBODY COMES when heat climbs (see Game.heatBand): SR5 p.352 and Run
|
|
14
|
+
* Faster p.220 put HTR response at 2D6 HOURS in a Zone 0 barrens, every
|
|
15
|
+
* shipped scene is a barrens district, and a player already reported
|
|
16
|
+
* the old lie -- "HTR assembling somewhere close, warning, but it never
|
|
17
|
+
* resulted in anything". Nothing arriving is the CORRECT outcome there.
|
|
18
|
+
*
|
|
19
|
+
* So this must never read as security responding to heat, or it
|
|
20
|
+
* reintroduces exactly the defect that was removed. It is not wired to
|
|
21
|
+
* heat at all. Gangers are territorial predators who were already
|
|
22
|
+
* standing on that corner: canon-supported and explicitly separate from
|
|
23
|
+
* HTR (core p.34-35 "street gangs claim territory ... and defend it
|
|
24
|
+
* against all comers, usually by challenging strangers to fights";
|
|
25
|
+
* Splintered State p.11 "law enforcement will not show up at any point
|
|
26
|
+
* -- this is the Barrens"; Run Faster p.220 on Zone 0).
|
|
27
|
+
*
|
|
28
|
+
* THEY DO NOT ATTACK ON SIGHT. They are spawned `hostile`, which per
|
|
29
|
+
* Player.hostile adds a REASON to the brief and nothing else -- the AI
|
|
30
|
+
* still chooses, and challenging, shaking down, or sizing you up are
|
|
31
|
+
* all likelier openings than shooting. That keeps the governor's
|
|
32
|
+
* founding property intact: an ephemeral voices, it does not rule.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* PROFESSIONAL RATING 1 GANGER, canon stats (SR5 p.382, "Gangers &
|
|
36
|
+
* Street Scum"): B/A/R/S 4, W/L/I/C 3, with Blades, Clubs,
|
|
37
|
+
* Intimidation, Pistols and Unarmed Combat.
|
|
38
|
+
*
|
|
39
|
+
* Copied rather than invented, and deliberately NOT scaled up. Canon's
|
|
40
|
+
* own barrens encounter calls a gang ambush "a straightforward, quick,
|
|
41
|
+
* and easy fight" for runners (Splintered State p.11). A mob that
|
|
42
|
+
* threatened a professional crew would be a set piece, and a set piece
|
|
43
|
+
* is a scene NPC's job, not a passing face's.
|
|
44
|
+
*/
|
|
45
|
+
const GANGER_COMBAT = {
|
|
46
|
+
body: 4, agility: 4, reaction: 4, strength: 4,
|
|
47
|
+
willpower: 3, logic: 3, intuition: 3, charisma: 3,
|
|
48
|
+
edge: 1, combatSkill: 3,
|
|
49
|
+
skills: { blades: 3, clubs: 3, intimidation: 3, firearms: 3, unarmed: 3, perception: 2 },
|
|
50
|
+
};
|
|
51
|
+
/** How often a street corner turns out to be somebody's corner. */
|
|
52
|
+
const GANG_CHANCE = 0.08;
|
|
53
|
+
/**
|
|
54
|
+
* The most that can ever be standing at once. THE CAP IS THE
|
|
55
|
+
* ACCUMULATION RULE (coordinator: a mob must NOT accumulate), and it is
|
|
56
|
+
* enforced against every ephemeral of this kind currently alive, not
|
|
57
|
+
* per spawn -- a per-spawn limit would let three quiet blocks in a row
|
|
58
|
+
* put nine gangers on the map.
|
|
59
|
+
*/
|
|
60
|
+
const MAX_STANDING = 3;
|
|
61
|
+
const GANG_NAMES = ['Halloweener', 'Ancient', 'Cutter', 'Spike', 'Blood Mountain Boy'];
|
|
62
|
+
/**
|
|
63
|
+
* Maybe somebody is holding this corner. Returns the line to show, or
|
|
64
|
+
* '' for the overwhelmingly common case of nothing happening.
|
|
65
|
+
*
|
|
66
|
+
* NO AI, NO GOVERNOR (ruling, and the same branch the officer takes):
|
|
67
|
+
* with AI off nothing spawns and nothing is narrated, because a mute
|
|
68
|
+
* hostile stranger is worse than an empty street. The test asserts this
|
|
69
|
+
* path returns the empty string exactly.
|
|
70
|
+
*/
|
|
71
|
+
export function maybeStreetGang(host, actor, room) {
|
|
72
|
+
if (!AI.isConfigured())
|
|
73
|
+
return '';
|
|
74
|
+
if (actor.plane !== 'meat')
|
|
75
|
+
return '';
|
|
76
|
+
// Gangs prowl STREETS. Indoors is somebody's premises, and whoever
|
|
77
|
+
// owns it is a scene NPC's job.
|
|
78
|
+
if (!isOutdoorsPlace(room))
|
|
79
|
+
return '';
|
|
80
|
+
if (host.gangedRooms.has(room.name))
|
|
81
|
+
return '';
|
|
82
|
+
// ALREADY-STANDING CHECK BEFORE THE ROLL, so a busy street cannot
|
|
83
|
+
// stack. Counted across the whole registry, which is what makes the
|
|
84
|
+
// cap mean "on the map" rather than "in this doorway".
|
|
85
|
+
const standing = [...host.ephemerals.values()].filter(m => m.kind === 'mob').length;
|
|
86
|
+
if (standing >= MAX_STANDING)
|
|
87
|
+
return '';
|
|
88
|
+
if (Math.random() >= GANG_CHANCE)
|
|
89
|
+
return '';
|
|
90
|
+
host.gangedRooms.add(room.name);
|
|
91
|
+
// Sized to what is left under the cap, never to the player's party:
|
|
92
|
+
// scaling opposition to the crew is a SCENE's job, and a passing
|
|
93
|
+
// shakedown that grew with the table would quietly become the set
|
|
94
|
+
// piece this is not.
|
|
95
|
+
const wanted = Math.min(2, MAX_STANDING - standing);
|
|
96
|
+
const spawned = [];
|
|
97
|
+
for (let i = 0; i < wanted; i++) {
|
|
98
|
+
const name = uniqueName(host, i);
|
|
99
|
+
if (!name)
|
|
100
|
+
break;
|
|
101
|
+
const npc = spawnEphemeral(host, {
|
|
102
|
+
name,
|
|
103
|
+
description: `a ganger holding this block -- colors on, hands loose, watching a stranger walk onto their corner. They are local muscle and nothing more: not security, not police, not anybody's employee, and they have never heard of whatever brought you here.`,
|
|
104
|
+
kind: 'mob',
|
|
105
|
+
// FIGHT-SCOPED, which for a territorial gang is also the honest
|
|
106
|
+
// reading of canon: they hold the block. Walk away without a
|
|
107
|
+
// fight and they let you go rather than following (see the
|
|
108
|
+
// despawn call in go.ts, which passes fightActive from the
|
|
109
|
+
// recency of your last exchange). Start something and they stay
|
|
110
|
+
// with it through the doorway.
|
|
111
|
+
until: 'fight',
|
|
112
|
+
room,
|
|
113
|
+
combat: GANGER_COMBAT,
|
|
114
|
+
});
|
|
115
|
+
if (!npc)
|
|
116
|
+
continue;
|
|
117
|
+
// OPPOSITION, not an ambush (Player.hostile): this gives them a
|
|
118
|
+
// reason, and the AI still chooses what to do with it.
|
|
119
|
+
npc.hostile = true;
|
|
120
|
+
spawned.push(npc.name);
|
|
121
|
+
}
|
|
122
|
+
if (spawned.length === 0)
|
|
123
|
+
return '';
|
|
124
|
+
Logger.getInstance().write(`Street gang on ${room.name}: ${spawned.join(', ')}.`);
|
|
125
|
+
return `{yellow-fg}This corner is somebody's corner. ${spawned.length === 1 ? `${spawned[0]} peels off a wall and squares up -- not in a hurry, just interested.` : `${spawned.join(' and ')} peel off a wall and spread out, unhurried, taking their time about it.`}{/yellow-fg}`;
|
|
126
|
+
}
|
|
127
|
+
/** A name nobody in the scene is already using. */
|
|
128
|
+
function uniqueName(host, offset) {
|
|
129
|
+
for (let i = 0; i < GANG_NAMES.length; i++) {
|
|
130
|
+
const base = GANG_NAMES[(offset + i) % GANG_NAMES.length];
|
|
131
|
+
for (const suffix of ['', ' (2)', ' (3)']) {
|
|
132
|
+
const candidate = `${base}${suffix}`;
|
|
133
|
+
if (!host.scene.getActor(candidate))
|
|
134
|
+
return candidate;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=street-gang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"street-gang.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/street-gang.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,8 @@ Command.create({
|
|
|
18
18
|
{ name: 'rawLogs', boolFlag: true, description: 'Display raw test output without formatting' },
|
|
19
19
|
{ name: 'port', description: 'Specify the port number for the test server' },
|
|
20
20
|
{ name: 'inspect', boolFlag: true, description: 'Enable Node.js inspector for debugging tests' },
|
|
21
|
-
{ name: 'testAppPath', description: 'Specify a custom path to the test app directory' }
|
|
21
|
+
{ name: 'testAppPath', description: 'Specify a custom path to the test app directory' },
|
|
22
|
+
{ name: 'settings', description: 'Path to a custom settings.json file (defaults to the resolved env config)' }
|
|
22
23
|
],
|
|
23
24
|
usage: 'maka test:mocha',
|
|
24
25
|
aliases: ['m'],
|
|
@@ -35,16 +36,8 @@ Command.create({
|
|
|
35
36
|
}
|
|
36
37
|
await this.pkg.checkNpmPackage('@testing-library/dom meteor-node-stubs chai', { shouldInstall: true });
|
|
37
38
|
const env = (opts.env) ? this.cfg.getEnvFromShorthand(opts.env) : 'local';
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
'--full-app'
|
|
41
|
-
]);
|
|
42
|
-
}
|
|
43
|
-
// meteor doesn't understand "unit"
|
|
44
|
-
if (opts.unit) {
|
|
45
|
-
delete opts.unit;
|
|
46
|
-
}
|
|
47
|
-
let driver = opts['driver-package'] || opts['driver'] || 'none';
|
|
39
|
+
const usePackages = !!opts.packages;
|
|
40
|
+
let driver = opts.driverPackage || opts.driver || 'none';
|
|
48
41
|
if (driver === 'none') {
|
|
49
42
|
const config = JSON.parse(fs.readFileSync(path.join(this.fsi.findProjectDirectory(), '.maka', 'config.json'), 'utf8'));
|
|
50
43
|
if (config.engines.test === 'jasmine') {
|
|
@@ -57,12 +50,6 @@ Command.create({
|
|
|
57
50
|
if (driver === 'none') {
|
|
58
51
|
throw new Error('This project does not have a mocha test driver');
|
|
59
52
|
}
|
|
60
|
-
if (!opts['driver-package'] || !opts['driver']) {
|
|
61
|
-
args = args.concat([
|
|
62
|
-
'--driver-package',
|
|
63
|
-
driver
|
|
64
|
-
]);
|
|
65
|
-
}
|
|
66
53
|
// always ensure local exists
|
|
67
54
|
const localExists = this.cfg.checkConfigExists('local');
|
|
68
55
|
if (!localExists) {
|
|
@@ -72,17 +59,10 @@ Command.create({
|
|
|
72
59
|
}
|
|
73
60
|
const configPath = this.cfg.getAppConfigPath(env);
|
|
74
61
|
const processDotEnvPath = path.join(configPath, 'process.env');
|
|
75
|
-
let settingsPath = path.join(configPath, 'settings.json');
|
|
76
62
|
// allow settings override
|
|
77
|
-
|
|
78
|
-
settingsPath = opts.settings;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
settingsPath = path.join(configPath, 'settings.json');
|
|
82
|
-
}
|
|
63
|
+
const settingsPath = opts.settings || path.join(configPath, 'settings.json');
|
|
83
64
|
// source the env file into the process environment
|
|
84
65
|
if (this.fsi.isFile(processDotEnvPath)) {
|
|
85
|
-
// Use path.relative to compute the relative path
|
|
86
66
|
const relativeDotEnvPath = path.relative(process.cwd(), processDotEnvPath);
|
|
87
67
|
Log.notice('Node Env Config: ' + relativeDotEnvPath);
|
|
88
68
|
this.dotenvx.load(processDotEnvPath);
|
|
@@ -92,33 +72,55 @@ Command.create({
|
|
|
92
72
|
Log.info('Cannot find Node Environment file, creating: ' + relativeDotEnvPath);
|
|
93
73
|
await this.fsi.createFile({ filePath: processDotEnvPath, data: '' });
|
|
94
74
|
}
|
|
75
|
+
// Meteor's own binary understands a completely different, kebab-case
|
|
76
|
+
// flag surface than the one this command advertises -- several of ours
|
|
77
|
+
// are camelCase aliases with no meteor equivalent under that spelling
|
|
78
|
+
// at all. Building meteorArgs explicitly from validated `opts`, rather
|
|
79
|
+
// than re-forwarding raw process.argv with ad-hoc filtering, is the
|
|
80
|
+
// only way to guarantee nothing maka-only or wrongly-cased leaks
|
|
81
|
+
// through to a binary that aborts on the first option it doesn't
|
|
82
|
+
// recognize. Confirmed against a real Meteor 3.5 install: --unit,
|
|
83
|
+
// --driverPackage, --rawLogs, --testAppPath, and a bare --driver each
|
|
84
|
+
// die with "--x: unknown option" and meteor's usage text instead of
|
|
85
|
+
// running anything; --env's VALUE leaked through too, as an orphaned
|
|
86
|
+
// positional argument, even in the old code's attempt to strip it.
|
|
87
|
+
const meteorArgs = [];
|
|
88
|
+
// --unit has no meteor flag of its own -- Meteor's own distinction is
|
|
89
|
+
// `test` (isolated/"unit") vs `test --full-app`. Its only real job is
|
|
90
|
+
// suppressing --full-app. --full-app is meaningless for test-packages
|
|
91
|
+
// (there is no "app" to run fully; every package test is already
|
|
92
|
+
// isolated by nature), so this only applies in `test` mode.
|
|
93
|
+
if (!usePackages && !opts.unit) {
|
|
94
|
+
meteorArgs.push('--full-app');
|
|
95
|
+
}
|
|
96
|
+
if (opts.once)
|
|
97
|
+
meteorArgs.push('--once');
|
|
98
|
+
// --raw-logs is `test`-only; test-packages has no such flag.
|
|
99
|
+
if (opts.rawLogs && !usePackages)
|
|
100
|
+
meteorArgs.push('--raw-logs');
|
|
101
|
+
if (opts.inspect)
|
|
102
|
+
meteorArgs.push('--inspect');
|
|
103
|
+
if (opts.port)
|
|
104
|
+
meteorArgs.push('--port', opts.port);
|
|
105
|
+
if (opts.testAppPath)
|
|
106
|
+
meteorArgs.push('--test-app-path', opts.testAppPath);
|
|
107
|
+
meteorArgs.push('--driver-package', driver);
|
|
95
108
|
if (this.fsi.isFile(settingsPath)) {
|
|
96
|
-
// Use path.relative to compute the relative path
|
|
97
109
|
const relativeSettingsPath = path.relative(process.cwd(), settingsPath);
|
|
98
110
|
Log.notice('Meteor Settings: ' + relativeSettingsPath);
|
|
99
|
-
|
|
100
|
-
'--settings',
|
|
101
|
-
settingsPath
|
|
102
|
-
]);
|
|
111
|
+
meteorArgs.push('--settings', settingsPath);
|
|
103
112
|
}
|
|
104
113
|
else {
|
|
105
114
|
const relativeSettingsPath = path.relative(process.cwd(), settingsPath);
|
|
106
115
|
Log.warn('Cannot find Meteor Settings File: ' + relativeSettingsPath);
|
|
107
116
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
if (arg === '--packages') {
|
|
117
|
-
processArgv.splice(idx, 1);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
const cmd = (opts.packages) ? 'test-packages' : 'test';
|
|
121
|
-
await this.mpi.invokeMeteorCommand(cmd, args.concat(processArgv));
|
|
117
|
+
// Positional args (e.g. package names/paths for test-packages) pass
|
|
118
|
+
// through as-is -- they were already separated from flags by the
|
|
119
|
+
// command framework, so there is nothing maka-only or mis-cased to
|
|
120
|
+
// translate here.
|
|
121
|
+
meteorArgs.push(...args);
|
|
122
|
+
const cmd = usePackages ? 'test-packages' : 'test';
|
|
123
|
+
await this.mpi.invokeMeteorCommand(cmd, meteorArgs);
|
|
122
124
|
}
|
|
123
125
|
catch (e) {
|
|
124
126
|
console.error(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocha.sub.cmd.js","sourceRoot":"","sources":["../../../../../src/commands/testCmd/mocha.sub.cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,OAAO,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"mocha.sub.cmd.js","sourceRoot":"","sources":["../../../../../src/commands/testCmd/mocha.sub.cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,OAAO,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAgBnD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,OAAO;IACb,mBAAmB,EAAE,IAAI;IACzB,SAAS,EAAE;QACT,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAsD,EAAE;QACrG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gDAAgD,EAAE;QACnG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2EAA2E,EAAE;QAC5G,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,4DAA4D,EAAE;QACpG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iEAAiE,EAAE;QAChH,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,iFAAiF,EAAE;QAC/G,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE;QAC9F,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6CAA6C,EAAE;QAC5E,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8CAA8C,EAAE;QAChG,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,iDAAiD,EAAE;QACvF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,2EAA2E,EAAE;KAC/G;IACD,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,SAAS,EAAE,uDAAuD;IAClE,QAAQ,EAAE,EAAE;CACb,EAAE,KAAK,WAAW,IAAc,EAAE,IAAe;IAChD,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YACnF,QAAQ,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,6CAA6C,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEpC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACzD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACvH,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,GAAG,eAAe,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3C,MAAM,GAAG,qBAAqB,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;YACzD,MAAM,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QACjG,CAAC;QAED,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/D,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAE7E,mDAAmD;QACnD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAC3E,GAAG,CAAC,MAAM,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,+CAA+C,GAAG,kBAAkB,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,iEAAiE;QACjE,iEAAiE;QACjE,kEAAkE;QAClE,sEAAsE;QACtE,oEAAoE;QACpE,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,iEAAiE;QACjE,4DAA4D;QAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,6DAA6D;QAC7D,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3E,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,oCAAoC,GAAG,oBAAoB,CAAC,CAAC;QACxE,CAAC;QAED,oEAAoE;QACpE,iEAAiE;QACjE,mEAAmE;QACnE,kBAAkB;QAClB,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAEzB,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;QACnD,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAAC,OAAM,CAAC,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -1,33 +1,19 @@
|
|
|
1
1
|
import { Command } from '../command.js';
|
|
2
2
|
import { Log } from '../tools/log/log.class.js';
|
|
3
|
-
// `maka update maka` -- update the CLI itself, and nothing else.
|
|
4
|
-
//
|
|
5
|
-
// THE ARGUMENT IS MANDATORY AND LITERAL on purpose: "update" alone is the
|
|
6
|
-
// kind of verb people aim at their PROJECT (dependencies, Meteor release),
|
|
7
|
-
// and a bare `maka update` quietly replacing the CLI would be an answer to
|
|
8
|
-
// a question nobody asked. validArgs pins the one accepted target; project
|
|
9
|
-
// Meteor versions stay where they were (`maka version:use`,
|
|
10
|
-
// `maka install meteor --release`).
|
|
11
|
-
//
|
|
12
|
-
// TWO INSTALL SHAPES, ONE COMMAND. A packaged binary fetches its successor
|
|
13
|
-
// from the public dist repo's latest release, verifies GitHub's sha256
|
|
14
|
-
// digest, and swaps itself in place -- no Node, no npm, no Meteor involved.
|
|
15
|
-
// An npm-installed maka delegates to npm, which owns that install's layout.
|
|
16
|
-
//
|
|
17
|
-
// The flow itself lives in tools/self-update/update-maka.ts so the repro
|
|
18
|
-
// version lock can offer "update now?" and act on a yes -- this file is
|
|
19
|
-
// only the command's front door.
|
|
20
3
|
Command.create({
|
|
21
4
|
name: 'update',
|
|
22
|
-
validOpts: [
|
|
5
|
+
validOpts: [
|
|
6
|
+
{ name: 'binary', boolFlag: true, description: 'From an npm install, switch to the standalone release binary instead of updating via npm (removes the npm install once the binary is verified on PATH)' },
|
|
7
|
+
],
|
|
23
8
|
validArgs: ['maka'],
|
|
24
9
|
minArgLength: 1,
|
|
25
10
|
usage: 'maka update maka',
|
|
26
11
|
shortDesc: 'Updates the maka CLI itself to the latest release.',
|
|
27
12
|
examples: [
|
|
28
13
|
'maka update maka',
|
|
14
|
+
'maka update maka --binary',
|
|
29
15
|
]
|
|
30
|
-
}, async function (args) {
|
|
16
|
+
}, async function (args, opts) {
|
|
31
17
|
try {
|
|
32
18
|
if (args[0] !== 'maka') {
|
|
33
19
|
Log.error('The only thing this command updates is the maka CLI itself: `maka update maka`.');
|
|
@@ -35,7 +21,7 @@ Command.create({
|
|
|
35
21
|
process.exit(1);
|
|
36
22
|
}
|
|
37
23
|
const { updateMakaCli } = await import('../tools/self-update/update-maka.js');
|
|
38
|
-
await updateMakaCli();
|
|
24
|
+
await updateMakaCli({ binary: opts.binary });
|
|
39
25
|
}
|
|
40
26
|
catch (e) {
|
|
41
27
|
Log.error(`Update failed: ${e.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AA6BhD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE;QACT,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wJAAwJ,EAAE;KAC1M;IACD,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC;IACf,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,oDAAoD;IAC/D,QAAQ,EAAE;QACR,kBAAkB;QAClB,2BAA2B;KAC5B;CACF,EAAE,KAAK,WAAW,IAAc,EAAE,IAAiB;IAClD,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;YAC7F,GAAG,CAAC,MAAM,CAAC,qGAAqG,CAAC,CAAC;YAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAC9E,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,kBAAmB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|