@maka/maka-cli 5.63.1 → 5.65.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/ar.js +29 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +86 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +29 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +151 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +40 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +107 -25
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +11 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +13 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +30 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +40 -49
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +121 -160
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +29 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +13 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +22 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js +65 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +25 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js +18 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.d.ts +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js +136 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +157 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +18 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/players.js +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js +115 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +46 -12
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +30 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.d.ts +47 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +91 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.js +61 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +136 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +128 -44
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +551 -254
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +82 -84
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +23 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +95 -79
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js +176 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +104 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +268 -16
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +78 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +188 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.d.ts +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +78 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.d.ts +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js +145 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +27 -8
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js +15 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +143 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +253 -30
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +68 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +102 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +80 -34
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +126 -54
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +1 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +0 -22
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +78 -109
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +4 -101
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +52 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.d.ts +63 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +2 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js +1 -14
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.d.ts +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +116 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +73 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +56 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +37 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +57 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +46 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +72 -17
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.d.ts +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +14 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +45 -31
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +66 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +81 -15
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +142 -33
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.d.ts +88 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js +113 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.d.ts +83 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js +106 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +54 -5
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/maka.js +1 -1
- package/bundle/typescript/src/maka.js.map +1 -1
- package/bundle/typescript/src/tools/sdk-loader/relocate.d.ts +19 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js +22 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
- package/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +0 -72
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +0 -26
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +0 -143
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +0 -366
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +0 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js +0 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js.map +0 -1
|
@@ -2,8 +2,25 @@
|
|
|
2
2
|
* runtime directory rather than out of node_modules. */
|
|
3
3
|
export declare function isRelocated(): boolean;
|
|
4
4
|
/** Whether this invocation drives Meteor and therefore needs a real Node.
|
|
5
|
-
* `command` is the raw first argument, so "g:route" and "build" both work.
|
|
6
|
-
|
|
5
|
+
* `command` is the raw first argument, so "g:route" and "build" both work.
|
|
6
|
+
* `flags` is the parsed switch set (minimist's argv), consulted for one
|
|
7
|
+
* reason only: see below.
|
|
8
|
+
*
|
|
9
|
+
* ASKING WHAT A COMMAND DOES MUST NOT COST A DOWNLOAD. `maka build --help`
|
|
10
|
+
* prints a paragraph of text -- it never reaches the toolchain -- but this
|
|
11
|
+
* used to key off the command name ALONE, so from a packaged binary it
|
|
12
|
+
* relocated, and relocating fetches a ~100MB Node first. The most cautious
|
|
13
|
+
* thing a new user can type was the most expensive, and silently so.
|
|
14
|
+
*
|
|
15
|
+
* Found by check-bundle-parity running on a CI runner, and only there: any
|
|
16
|
+
* machine that has already run a Meteor command has the runtime cached, so
|
|
17
|
+
* the fetch prints nothing and the help text arrives looking correct. It
|
|
18
|
+
* needs a machine that has never run maka to be visible at all. */
|
|
19
|
+
export declare function needsRealNode(command: unknown, flags?: {
|
|
20
|
+
help?: unknown;
|
|
21
|
+
h?: unknown;
|
|
22
|
+
[flag: string]: unknown;
|
|
23
|
+
}): boolean;
|
|
7
24
|
/** Re-execs this command on a real Node and exits with the child's status.
|
|
8
25
|
* Never returns. */
|
|
9
26
|
export declare function reexecOnRealNode(args: string[]): Promise<never>;
|
|
@@ -47,11 +47,31 @@ export function isRelocated() {
|
|
|
47
47
|
return process.env[RELOCATED_ENV] === '1';
|
|
48
48
|
}
|
|
49
49
|
/** Whether this invocation drives Meteor and therefore needs a real Node.
|
|
50
|
-
* `command` is the raw first argument, so "g:route" and "build" both work.
|
|
51
|
-
|
|
50
|
+
* `command` is the raw first argument, so "g:route" and "build" both work.
|
|
51
|
+
* `flags` is the parsed switch set (minimist's argv), consulted for one
|
|
52
|
+
* reason only: see below.
|
|
53
|
+
*
|
|
54
|
+
* ASKING WHAT A COMMAND DOES MUST NOT COST A DOWNLOAD. `maka build --help`
|
|
55
|
+
* prints a paragraph of text -- it never reaches the toolchain -- but this
|
|
56
|
+
* used to key off the command name ALONE, so from a packaged binary it
|
|
57
|
+
* relocated, and relocating fetches a ~100MB Node first. The most cautious
|
|
58
|
+
* thing a new user can type was the most expensive, and silently so.
|
|
59
|
+
*
|
|
60
|
+
* Found by check-bundle-parity running on a CI runner, and only there: any
|
|
61
|
+
* machine that has already run a Meteor command has the runtime cached, so
|
|
62
|
+
* the fetch prints nothing and the help text arrives looking correct. It
|
|
63
|
+
* needs a machine that has never run maka to be visible at all. */
|
|
64
|
+
export function needsRealNode(command,
|
|
65
|
+
// The index signature is load-bearing: minimist's ParsedArgs has one, and
|
|
66
|
+
// without it here TypeScript treats this as a weak type and rejects the
|
|
67
|
+
// whole argv object for having "no properties in common".
|
|
68
|
+
flags = {}) {
|
|
52
69
|
if (typeof command !== 'string' || !command) {
|
|
53
70
|
return false;
|
|
54
71
|
}
|
|
72
|
+
if (flags.help || flags.h) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
55
75
|
return SDK_BACKED.has(command.split(':')[0]);
|
|
56
76
|
}
|
|
57
77
|
function cliHome() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relocate.js","sourceRoot":"","sources":["../../../../../src/tools/sdk-loader/relocate.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc;AACd,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,iEAAiE;AACjE,8EAA8E;AAC9E,2EAA2E;AAC3E,sEAAsE;AACtE,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,qEAAqE;AACrE,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,mDAAmD;AACnD,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,oEAAoE;AACpE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D,6DAA6D;AAC7D,iCAAiC;AACjC,+BAA+B;AAC/B,gFAAgF;AAChF,EAAE;AACF,2DAA2D;AAC3D,6EAA6E;AAC7E,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,yDAAyD;AACzD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAEtE,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;yDACyD;AACzD,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"relocate.js","sourceRoot":"","sources":["../../../../../src/tools/sdk-loader/relocate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.65.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 2.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 2.x applications using React.",
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Command } from './command.js';
|
|
2
|
-
import { exitSpot, ensureAtSpot } from '../utilities/spots.js';
|
|
3
|
-
export class SolveCommand extends Command {
|
|
4
|
-
static verb = 'solve';
|
|
5
|
-
static description = 'Answer a barrier with the credential you FOUND: "solve <code/passphrase>". The safe, deterministic route -- the right answer always works. To skip finding it, each barrier has its own risky verb: pick or breach a lock, hack a terminal, dispel a ward, bluff a doorman.';
|
|
6
|
-
async execute(args) {
|
|
7
|
-
const answer = args.join(' ').toLowerCase();
|
|
8
|
-
const room = this.actor.currentLocation;
|
|
9
|
-
const targets = room?.getPuzzleTargets() ?? [];
|
|
10
|
-
if (targets.length === 0) {
|
|
11
|
-
this.logger.write(`SolveCommand: ${this.actor.name} attempted to solve a riddle in a room with no puzzle.`);
|
|
12
|
-
return 'There doesn\'t seem to be a riddle here to solve.';
|
|
13
|
-
}
|
|
14
|
-
// The typed answer alone identifies which target it's for -- no need to
|
|
15
|
-
// ask the player to also name it (unlike pick/hack/cast, where there's
|
|
16
|
-
// no answer to disambiguate with -- see bypass-command.ts).
|
|
17
|
-
let firstResult;
|
|
18
|
-
for (const target of targets) {
|
|
19
|
-
const result = target.puzzle.solve(answer, this.actor.inventory);
|
|
20
|
-
firstResult ??= result;
|
|
21
|
-
if (result.success) {
|
|
22
|
-
// "At" spots: the keypad/ward is a PLACE -- reciting the answer
|
|
23
|
-
// means standing at it (free walk over out of combat).
|
|
24
|
-
const barrierSpot = target.door && target.direction
|
|
25
|
-
? exitSpot(room, target.direction)
|
|
26
|
-
: target.puzzle.atSpot;
|
|
27
|
-
const reach = ensureAtSpot(this.actor, barrierSpot);
|
|
28
|
-
if (reach.refusal)
|
|
29
|
-
return reach.refusal;
|
|
30
|
-
const crossNote = reach.line ? `${reach.line}\n` : '';
|
|
31
|
-
this.logger.write(`${this.actor.name} attempted to solve ${target.puzzle.name} with result ${result.success}`);
|
|
32
|
-
this.logger.write(`${this.actor.name} has solved ${target.puzzle.name}`);
|
|
33
|
-
if (target.door) {
|
|
34
|
-
target.door.isLocked = false;
|
|
35
|
-
this.scene.updateExits(room);
|
|
36
|
-
this.scene.addWorldEvent(`${this.actor.name} unlocked the way ${target.direction} in ${room.name} by solving "${target.puzzle.name}".`);
|
|
37
|
-
}
|
|
38
|
-
else if (target.puzzle.rewardItem) {
|
|
39
|
-
this.actor.inventory.addItem(target.puzzle.rewardItem);
|
|
40
|
-
this.scene.addWorldEvent(`${this.actor.name} solved "${target.puzzle.name}" in ${room.name}.`);
|
|
41
|
-
this.scene.updateInventory(this.scene.getPlayer().inventory);
|
|
42
|
-
}
|
|
43
|
-
// ROOM GRIDS (spatial wave 2026-08-25): a room-anchored barrier
|
|
44
|
-
// that synthesized as blocking TERRAIN opens now -- most
|
|
45
|
-
// puzzles never have one (Room.clearTerrainFor is a silent
|
|
46
|
-
// no-op), so this is free for every existing scene.
|
|
47
|
-
const opened = room.clearTerrainFor(target.puzzle.name);
|
|
48
|
-
const terrainNote = opened ? `\nThe ${opened} comes apart -- the way through is open.` : '';
|
|
49
|
-
if (opened)
|
|
50
|
-
this.scene.addWorldEvent(`${this.actor.name} cleared ${opened} in ${room.name} by solving "${target.puzzle.name}".`);
|
|
51
|
-
this.logger.write(`SolveCommand: ${result.message}`);
|
|
52
|
-
this.actor.performAction('solve', result.message);
|
|
53
|
-
return crossNote + result.message + terrainNote;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
this.logger.write(`${this.actor.name} attempted to solve ${targets[0].puzzle.name} with result false`);
|
|
57
|
-
this.logger.write(`SolveCommand: ${firstResult.message}`);
|
|
58
|
-
this.actor.performAction('solve', firstResult.message);
|
|
59
|
-
// NAME THE OTHER ROUTE (blocker 2026-08-27): a wrong answer was the
|
|
60
|
-
// last dead-end refusal left on a barrier -- the same silence go.ts
|
|
61
|
-
// and unlock.ts had. A player who was handed a bad code has nowhere
|
|
62
|
-
// to go from "that's not it"; the risky route is exactly what they
|
|
63
|
-
// need to hear about. Only offered while it's actually available:
|
|
64
|
-
// a burned route is not a suggestion, it's a closed door.
|
|
65
|
-
const alt = targets.find(t => !t.puzzle.bypassBurned && t.puzzle.getBypassVerb());
|
|
66
|
-
const altNote = alt
|
|
67
|
-
? `\n(There's another way at this one -- "${alt.puzzle.getBypassVerb()}" it. Riskier, and it gets exactly one try.)`
|
|
68
|
-
: '';
|
|
69
|
-
return firstResult.message + altNote;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=solve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"solve.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/solve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Puzzle } from '../models/puzzle.js';
|
|
2
|
-
import { IPuzzleSeedJson } from '../types/seed/puzzle-seed.js';
|
|
3
|
-
import { Item } from '../models/item.js';
|
|
4
|
-
export declare class PuzzleFactory {
|
|
5
|
-
createPuzzleFromJson(json: IPuzzleSeedJson, itemMap: Map<string, Item>): Promise<Puzzle>;
|
|
6
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Puzzle } from '../models/puzzle.js';
|
|
2
|
-
export class PuzzleFactory {
|
|
3
|
-
async createPuzzleFromJson(json, itemMap) {
|
|
4
|
-
const requiredItem = json.requiredItem ? itemMap.get(json.requiredItem) : undefined;
|
|
5
|
-
const rewardItem = json.rewardItem ? itemMap.get(json.rewardItem) : undefined;
|
|
6
|
-
if (json.requiredItem && !requiredItem) {
|
|
7
|
-
throw new Error(`Required item '${json.requiredItem}' not found for puzzle "${json.name}"`);
|
|
8
|
-
}
|
|
9
|
-
if (json.rewardItem && !rewardItem) {
|
|
10
|
-
throw new Error(`Reward item '${json.rewardItem}' not found for puzzle "${json.name}"`);
|
|
11
|
-
}
|
|
12
|
-
return new Puzzle({
|
|
13
|
-
name: json.name,
|
|
14
|
-
riddle: json.riddle,
|
|
15
|
-
requiredPhrase: json.requiredPhrase,
|
|
16
|
-
requiredItem,
|
|
17
|
-
rewardItem,
|
|
18
|
-
successMessage: json.successMessage,
|
|
19
|
-
failureMessage: json.failureMessage,
|
|
20
|
-
hobbyTags: json.hobbyTags,
|
|
21
|
-
bypassType: json.bypassType,
|
|
22
|
-
atSpot: json.atSpot
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=puzzle-factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"puzzle-factory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/puzzle-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,oBAAoB,CAAC,IAAqB,EAAE,OAA0B;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9E,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,YAAY,2BAA2B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,UAAU,2BAA2B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,IAAI,MAAM,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY;YACZ,UAAU;YACV,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { Logger } from '../utilities/logger.js';
|
|
2
|
-
import { Item } from './item.js';
|
|
3
|
-
import { Inventory } from './inventory.js';
|
|
4
|
-
import { PuzzleBypassType } from '../types/seed/puzzle-seed.js';
|
|
5
|
-
import { AbstractPuzzle } from '../types/shared/abstracts.js';
|
|
6
|
-
/**
|
|
7
|
-
* Why a bypass was refused, so the CALLING command can re-voice a
|
|
8
|
-
* message the puzzle can't word correctly on its own: two verbs share
|
|
9
|
-
* one bypassType (pick/breach both work 'lockpick'), and the puzzle
|
|
10
|
-
* only knows the type. See BypassCommand.burnedFlavor.
|
|
11
|
-
*/
|
|
12
|
-
export type BypassRefusal = 'solved' | 'locked' | 'mismatch' | 'burned';
|
|
13
|
-
export interface BypassGate {
|
|
14
|
-
allowed: boolean;
|
|
15
|
-
reason?: BypassRefusal;
|
|
16
|
-
message?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface IPuzzleConstructorConfig {
|
|
19
|
-
name: string;
|
|
20
|
-
requiredItem?: Item;
|
|
21
|
-
requiredPhrase?: string;
|
|
22
|
-
riddle?: string;
|
|
23
|
-
rewardItem?: Item;
|
|
24
|
-
successMessage?: string;
|
|
25
|
-
failureMessage?: string;
|
|
26
|
-
hobbyTags?: string[];
|
|
27
|
-
bypassType?: PuzzleBypassType;
|
|
28
|
-
atSpot?: string;
|
|
29
|
-
}
|
|
30
|
-
export declare class Puzzle extends AbstractPuzzle {
|
|
31
|
-
protected logger: Logger;
|
|
32
|
-
protected solved: boolean;
|
|
33
|
-
private hasAIRiddle;
|
|
34
|
-
name: string;
|
|
35
|
-
requiredItem?: Item;
|
|
36
|
-
requiredPhrase?: string;
|
|
37
|
-
riddle?: string;
|
|
38
|
-
rewardItem?: Item;
|
|
39
|
-
atSpot?: string;
|
|
40
|
-
successMessage: string;
|
|
41
|
-
failureMessage: string;
|
|
42
|
-
hobbyTags?: string[];
|
|
43
|
-
requiresPuzzle?: Puzzle;
|
|
44
|
-
lockedMessage: string;
|
|
45
|
-
bypassType?: PuzzleBypassType;
|
|
46
|
-
private static readonly BYPASS_SUCCESS_CHANCE;
|
|
47
|
-
bypassBurned: boolean;
|
|
48
|
-
constructor(config: IPuzzleConstructorConfig);
|
|
49
|
-
/**
|
|
50
|
-
* Player-facing hint that a risky bypass exists, without which nothing
|
|
51
|
-
* in the game ever tells the player "pick"/"hack"/"cast" is even an
|
|
52
|
-
* option here -- found via a real session where a player had no idea
|
|
53
|
-
* what they were supposed to "pick".
|
|
54
|
-
*/
|
|
55
|
-
/** Just the bypass verb ("pick"/"hack"/"cast"/"bluff"), for refusal
|
|
56
|
-
* one-liners that need to NAME the mechanism without the full
|
|
57
|
-
* coaching text getBypassHint() carries. */
|
|
58
|
-
getBypassVerb(): string | undefined;
|
|
59
|
-
getBypassHint(): string | undefined;
|
|
60
|
-
/**
|
|
61
|
-
* Wired in after all puzzles in a scene exist (scene-factory.ts), since
|
|
62
|
-
* a prerequisite may not have been constructed yet at this puzzle's own
|
|
63
|
-
* construction time.
|
|
64
|
-
*/
|
|
65
|
-
setRequiresPuzzle(prerequisite: Puzzle, lockedMessage?: string): void;
|
|
66
|
-
/**
|
|
67
|
-
* Persistence-only (utilities/persistence.ts): flags in, nothing out --
|
|
68
|
-
* no reward items, no success message, no door side effects (door lock
|
|
69
|
-
* state is restored independently, so a solved-then-relocked door stays
|
|
70
|
-
* relocked on load).
|
|
71
|
-
*/
|
|
72
|
-
restoreState(state: {
|
|
73
|
-
solved: boolean;
|
|
74
|
-
bypassBurned: boolean;
|
|
75
|
-
}): void;
|
|
76
|
-
isSolved(): boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Rewrites the riddle's presentation once per scene load, while keeping
|
|
79
|
-
* `requiredPhrase` (the exact-match answer key used by `solve()`) fixed --
|
|
80
|
-
* so the correctness gate never drifts from what the player was actually
|
|
81
|
-
* asked.
|
|
82
|
-
*/
|
|
83
|
-
ensureAIRiddle(sceneContext: string, roomName?: string, kind?: 'device' | 'terrain'): Promise<void>;
|
|
84
|
-
hasRequiredItem(playerInventory: Inventory): boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Clue items are only required to CONTAIN the answer somewhere in their
|
|
87
|
-
* text (e.g. "kill the power to bypass security" for a required phrase
|
|
88
|
-
* of "kill the power"), so a player who reasonably quotes the clue back
|
|
89
|
-
* verbatim types more words than the exact answer. Strict equality
|
|
90
|
-
* rejected that. Normalizing punctuation/whitespace and accepting the
|
|
91
|
-
* required phrase as a substring of the input (not just an exact match)
|
|
92
|
-
* fixes it without loosening things enough for a wrong guess to pass.
|
|
93
|
-
*/
|
|
94
|
-
matchesRequiredPhrase(inputPhrase: string): boolean;
|
|
95
|
-
solve(providedAnswer: string, playerInventory: Inventory): {
|
|
96
|
-
success: boolean;
|
|
97
|
-
message: string;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* The risky alternate route never requires knowing requiredPhrase. Split
|
|
101
|
-
* into a gate check (run first, before any outcome is determined -- an
|
|
102
|
-
* already-solved, blocked, or type-mismatched puzzle should never make
|
|
103
|
-
* the player sit through an interactive minigame they were never going
|
|
104
|
-
* to be allowed to attempt) and applying an already-determined outcome.
|
|
105
|
-
* A failed attempt BURNS the route (see bypassBurned) -- the gate
|
|
106
|
-
* refuses retries with the burned flavor -- but never touches the safe
|
|
107
|
-
* solve() path: finding the actual answer remains deterministic. Further
|
|
108
|
-
* consequences (the alarm world event, spell backlash) belong to the
|
|
109
|
-
* calling command (see commands/bypass-command.ts).
|
|
110
|
-
*/
|
|
111
|
-
checkBypassGate(type: PuzzleBypassType): BypassGate;
|
|
112
|
-
/**
|
|
113
|
-
* The wrong-verb answer, spoken in the barrier's OWN fiction. Keyed on
|
|
114
|
-
* this.bypassType (what the thing IS), never on the verb attempted --
|
|
115
|
-
* see the note on BYPASS_FLAVOR.resists. Always names a route that
|
|
116
|
-
* works, so a player never gets a dead end in front of a visible
|
|
117
|
-
* barrier; a barrier with no shortcut at all says so plainly instead
|
|
118
|
-
* of pretending not to exist, which is what a solve-only puzzle used
|
|
119
|
-
* to do (it was filtered out before this gate ever ran).
|
|
120
|
-
*/
|
|
121
|
-
private wrongRouteMessage;
|
|
122
|
-
/**
|
|
123
|
-
* Applies an outcome already determined elsewhere (a coin flip, or a live
|
|
124
|
-
* minigame's win/loss) to this puzzle. Assumes checkBypassGate() already
|
|
125
|
-
* passed -- doesn't re-check it.
|
|
126
|
-
*/
|
|
127
|
-
resolveBypass(type: PuzzleBypassType, succeeded: boolean): {
|
|
128
|
-
success: boolean;
|
|
129
|
-
message: string;
|
|
130
|
-
alarmed: boolean;
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* Convenience wrapper: gate check + a flat coin-flip outcome. Used for
|
|
134
|
-
* any bypass type without its own interactive minigame yet -- see
|
|
135
|
-
* BypassCommand.determineOutcome(), which lockpicking overrides to run a
|
|
136
|
-
* real player-skill challenge instead of this coin flip.
|
|
137
|
-
*/
|
|
138
|
-
attemptBypass(type: PuzzleBypassType): {
|
|
139
|
-
success: boolean;
|
|
140
|
-
message: string;
|
|
141
|
-
alarmed: boolean;
|
|
142
|
-
};
|
|
143
|
-
}
|