@maka/maka-cli 5.206.0 → 5.207.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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.207.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.",
|
|
@@ -39,6 +39,10 @@ export const REPRO_FAR_ROOM = 'The Far Side';
|
|
|
39
39
|
* Both rooms have it: a doorway has two sides, and a guard posted on
|
|
40
40
|
* the far side stands in their own. */
|
|
41
41
|
export const REPRO_DOORWAY_SPOT = 'doorway';
|
|
42
|
+
/** What locks a `barrier.plainDoor` that names no keyItem of its own.
|
|
43
|
+
* A door with no key and no mechanism would simply stand open, which
|
|
44
|
+
* is the opposite of the fixture the author asked for. */
|
|
45
|
+
export const REPRO_PLAIN_DOOR_KEY = 'Door Key';
|
|
42
46
|
/**
|
|
43
47
|
* Somewhere to stand that is NOT the doorway, so "move to the door" is
|
|
44
48
|
* a real move with a real before-state. Without it the runner starts in
|
|
@@ -202,7 +206,18 @@ export function buildReproScene(fixture) {
|
|
|
202
206
|
const startSide = fixture.start ?? 'barrier';
|
|
203
207
|
const startRoom = roomFor(startSide);
|
|
204
208
|
let device;
|
|
205
|
-
|
|
209
|
+
// THE LOCK THAT IS IN THE DOOR (Gfx5RFFpHJdKB87Bh). barrier.plainDoor
|
|
210
|
+
// seals the exit with keyRequired and builds NO device -- the shape
|
|
211
|
+
// every ordinary locked door in a generated scene has, and the shape
|
|
212
|
+
// this builder could not make until the report proved it mattered.
|
|
213
|
+
// `open` still means what it means -- the door simply is not locked --
|
|
214
|
+
// and it must NOT quietly put the mechanism back, which is the
|
|
215
|
+
// silently-inert shape this file exists to avoid.
|
|
216
|
+
const plainDoor = barrier?.plainDoor === true;
|
|
217
|
+
if (barrier?.plainDoor && !barrier.keyItem && !barrier.open) {
|
|
218
|
+
warnings.push('A plain door with no keyItem has no quiet way through at all -- force is the only route, which is fine if that is the point.');
|
|
219
|
+
}
|
|
220
|
+
if (barrier && !plainDoor) {
|
|
206
221
|
// INVARIANT 1: a code belongs to a panel and nowhere else. The
|
|
207
222
|
// Device constructor DROPS it on a lock or a ward, silently and
|
|
208
223
|
// correctly -- that is the runtime honouring "you can't talk at a
|
|
@@ -309,7 +324,13 @@ export function buildReproScene(fixture) {
|
|
|
309
324
|
name: REPRO_BARRIER_ROOM,
|
|
310
325
|
description: barrier
|
|
311
326
|
? `A short concrete run ending at one door, ${direction} of you. `
|
|
312
|
-
+
|
|
327
|
+
+ (plainDoor
|
|
328
|
+
// NOTHING BESIDE THE DOOR, and the prose has to say so: the
|
|
329
|
+
// whole point of a plainDoor bench is that there is no
|
|
330
|
+
// mechanism to work, so describing one would hand the
|
|
331
|
+
// reviewer the wrong target to aim every verb at.
|
|
332
|
+
? `No panel, no maglock, no keypad -- just a lock in the door itself, and it is ${barrier.open ? 'off the latch' : 'shut'}. `
|
|
333
|
+
: `${device.name} is fixed beside the doorway${barrier.open ? ', standing open' : ', holding it shut'}. `)
|
|
313
334
|
+ `There is nothing else here, which is the point -- whatever is wrong is wrong at that door.`
|
|
314
335
|
: `A short concrete run with a door ${direction} of you and nothing else in it.`,
|
|
315
336
|
// fixture.home: the barrier room is the runner's own bed, so a rest
|
|
@@ -319,7 +340,16 @@ export function buildReproScene(fixture) {
|
|
|
319
340
|
spots,
|
|
320
341
|
levels: level ? [{ name: level.name, side: level.side ?? 'north', kind: level.kind ?? 'catwalk', climbOnly: level.climbOnly === true }] : undefined,
|
|
321
342
|
isStartRoom: startSide === 'barrier',
|
|
322
|
-
exits: [{
|
|
343
|
+
exits: [{
|
|
344
|
+
direction,
|
|
345
|
+
targetRoom: REPRO_FAR_ROOM,
|
|
346
|
+
atSpot: REPRO_DOORWAY_SPOT,
|
|
347
|
+
// INVARIANT 3, the deviceless case: with no mechanism to name the
|
|
348
|
+
// exit, the KEY is what locks the door.
|
|
349
|
+
...(plainDoor && !barrier?.open
|
|
350
|
+
? { keyRequired: barrier?.keyItem ?? REPRO_PLAIN_DOOR_KEY }
|
|
351
|
+
: {}),
|
|
352
|
+
}],
|
|
323
353
|
devices: device ? [device] : undefined,
|
|
324
354
|
};
|
|
325
355
|
const farRoom = {
|
|
@@ -327,7 +357,7 @@ export function buildReproScene(fixture) {
|
|
|
327
357
|
...watchedFields('far'),
|
|
328
358
|
name: REPRO_FAR_ROOM,
|
|
329
359
|
description: `The other side of the door, which lies ${OPPOSITE[direction]} of you`
|
|
330
|
-
+ `${barrier ? ` and is held from the far side by ${device.name}` : ''}. Bare, and no further out.`,
|
|
360
|
+
+ `${barrier && device ? ` and is held from the far side by ${device.name}` : ''}. Bare, and no further out.`,
|
|
331
361
|
roomType: 'Street',
|
|
332
362
|
size: 'medium',
|
|
333
363
|
spots,
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* 2.5.0 adds IReproHost.purpose / .sculpt and IReproItem.file (engine
|
|
28
28
|
* 1.50.0, hosts with a purpose) -- additive.
|
|
29
29
|
*/
|
|
30
|
-
export const REPRO_SCHEMA_VERSION = '2.
|
|
30
|
+
export const REPRO_SCHEMA_VERSION = '2.7.0';
|
|
31
31
|
/** THE LIVE REASON, from the field or the card's own words.
|
|
32
32
|
*
|
|
33
33
|
* `repro.live` is authoritative -- but the server's validator must
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.207.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.",
|