@nwire/please 0.9.2 → 0.10.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/dist/define-command.d.ts +2 -3
- package/dist/define-command.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/please.d.ts +6 -31
- package/dist/please.js +17 -57
- package/package.json +3 -3
- package/dist/__tests__/define-command.test.d.ts +0 -9
- package/dist/__tests__/define-command.test.d.ts.map +0 -1
- package/dist/__tests__/define-command.test.js +0 -93
- package/dist/__tests__/define-command.test.js.map +0 -1
- package/dist/__tests__/run-please.test.d.ts +0 -8
- package/dist/__tests__/run-please.test.d.ts.map +0 -1
- package/dist/__tests__/run-please.test.js +0 -118
- package/dist/__tests__/run-please.test.js.map +0 -1
- package/dist/define-command.d.ts.map +0 -1
- package/dist/define-command.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/please.d.ts.map +0 -1
- package/dist/please.js.map +0 -1
package/dist/define-command.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* back to the action/query surface. This keeps the action graph clean and
|
|
22
22
|
* pushes ops scripts to the layer they belong on.
|
|
23
23
|
*/
|
|
24
|
-
import type
|
|
24
|
+
import type { ForgeApp } from "@nwire/forge";
|
|
25
25
|
import type { SourceLocation } from "@nwire/messages";
|
|
26
26
|
/**
|
|
27
27
|
* Minimal zod-like schema contract — anything with `.parse(input) → output`.
|
|
@@ -42,7 +42,7 @@ export interface CommandContext {
|
|
|
42
42
|
/** Look up a dependency by name (container.resolve shortcut). */
|
|
43
43
|
resolve<T = unknown>(name: string): T;
|
|
44
44
|
/** The booted app the command was dispatched against. */
|
|
45
|
-
readonly app:
|
|
45
|
+
readonly app: ForgeApp;
|
|
46
46
|
}
|
|
47
47
|
export interface CommandHandlerArgs<TArgs> {
|
|
48
48
|
readonly args: TArgs;
|
|
@@ -71,4 +71,3 @@ export interface CommandDefinition<TSchema extends CommandArgsSchema | undefined
|
|
|
71
71
|
readonly $source?: SourceLocation;
|
|
72
72
|
}
|
|
73
73
|
export declare function defineCommand<TSchema extends CommandArgsSchema | undefined = undefined>(name: string, meta: CommandMeta<TSchema>): CommandDefinition<TSchema>;
|
|
74
|
-
//# sourceMappingURL=define-command.d.ts.map
|
package/dist/define-command.js
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/please.d.ts
CHANGED
|
@@ -2,47 +2,22 @@
|
|
|
2
2
|
* `@nwire/please` — operator CLI for Nwire apps.
|
|
3
3
|
*
|
|
4
4
|
* #!/usr/bin/env node
|
|
5
|
-
* import { runPlease } from
|
|
6
|
-
* import { apps } from
|
|
5
|
+
* import { runPlease } from "@nwire/please";
|
|
6
|
+
* import { apps } from "../app/apps";
|
|
7
7
|
*
|
|
8
8
|
* runPlease({ apps, argv: process.argv.slice(2) }).then(code => process.exit(code))
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* please lessons.start-attempt --lessonId hebrew-1 --studentId avi
|
|
13
|
-
* please submissions.by-student --studentId avi --status under-review
|
|
14
|
-
* please --help
|
|
15
|
-
*
|
|
16
|
-
* Scaffolding (`make:module`, `make:action`, `make:projection`) lands as a
|
|
17
|
-
* follow-up phase — the CLI runner is the primitive, scaffolders compose on top.
|
|
10
|
+
* Dispatches against any registered action/query in any provided app, or
|
|
11
|
+
* a named operator-script command.
|
|
18
12
|
*/
|
|
19
|
-
import
|
|
13
|
+
import { type ForgeApp } from "@nwire/forge";
|
|
20
14
|
import type { CommandDefinition } from "./define-command.js";
|
|
21
15
|
export interface RunPleaseOptions {
|
|
22
|
-
|
|
23
|
-
readonly apps: readonly forge.AppDefinition[];
|
|
24
|
-
/** Pre-instantiated `App`s (for tests where stores are injected). */
|
|
25
|
-
readonly appInstances?: readonly forge.App[];
|
|
26
|
-
/** Argv slice, typically `process.argv.slice(2)`. */
|
|
16
|
+
readonly apps: readonly ForgeApp[];
|
|
27
17
|
readonly argv: readonly string[];
|
|
28
|
-
/** stdout override (tests). Default: console.log. */
|
|
29
18
|
readonly stdout?: (line: string) => void;
|
|
30
|
-
/** stderr override (tests). Default: console.error. */
|
|
31
19
|
readonly stderr?: (line: string) => void;
|
|
32
|
-
/** Hook for store/logger overrides at instantiation time. */
|
|
33
|
-
readonly createOverrides?: (appDef: forge.AppDefinition) => Omit<forge.CreateAppOptions, "modules">;
|
|
34
|
-
/**
|
|
35
|
-
* Operator-script commands (`defineCommand`). Dispatched by name with
|
|
36
|
-
* precedence over actions/queries — so a backfill script can shadow a
|
|
37
|
-
* domain action name on purpose, and ops scripts never leak into the
|
|
38
|
-
* action surface.
|
|
39
|
-
*/
|
|
40
20
|
readonly commands?: readonly CommandDefinition[];
|
|
41
21
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Boot every registered app, run the dispatched action/query against the
|
|
44
|
-
* matching app, return the exit code (0 on success, 1 on error).
|
|
45
|
-
*/
|
|
46
22
|
export declare function runPlease(options: RunPleaseOptions): Promise<number>;
|
|
47
23
|
export { defineCommand, type CommandArgsSchema, type CommandContext, type CommandDefinition, type CommandHandler, type CommandHandlerArgs, type CommandMeta, } from "./define-command.js";
|
|
48
|
-
//# sourceMappingURL=please.d.ts.map
|
package/dist/please.js
CHANGED
|
@@ -2,44 +2,27 @@
|
|
|
2
2
|
* `@nwire/please` — operator CLI for Nwire apps.
|
|
3
3
|
*
|
|
4
4
|
* #!/usr/bin/env node
|
|
5
|
-
* import { runPlease } from
|
|
6
|
-
* import { apps } from
|
|
5
|
+
* import { runPlease } from "@nwire/please";
|
|
6
|
+
* import { apps } from "../app/apps";
|
|
7
7
|
*
|
|
8
8
|
* runPlease({ apps, argv: process.argv.slice(2) }).then(code => process.exit(code))
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* please lessons.start-attempt --lessonId hebrew-1 --studentId avi
|
|
13
|
-
* please submissions.by-student --studentId avi --status under-review
|
|
14
|
-
* please --help
|
|
15
|
-
*
|
|
16
|
-
* Scaffolding (`make:module`, `make:action`, `make:projection`) lands as a
|
|
17
|
-
* follow-up phase — the CLI runner is the primitive, scaffolders compose on top.
|
|
18
|
-
*/
|
|
19
|
-
import * as forge from "@nwire/forge";
|
|
20
|
-
/**
|
|
21
|
-
* Boot every registered app, run the dispatched action/query against the
|
|
22
|
-
* matching app, return the exit code (0 on success, 1 on error).
|
|
10
|
+
* Dispatches against any registered action/query in any provided app, or
|
|
11
|
+
* a named operator-script command.
|
|
23
12
|
*/
|
|
13
|
+
import { runCli } from "@nwire/forge";
|
|
24
14
|
export async function runPlease(options) {
|
|
25
|
-
const instances = options.
|
|
26
|
-
options.apps.map((def) => def.create(options.createOverrides?.(def) ?? {}));
|
|
15
|
+
const instances = options.apps;
|
|
27
16
|
await Promise.all(instances.map((a) => a.start()));
|
|
28
|
-
// Find which app owns the named action/query and run against THAT app.
|
|
29
|
-
// For now, if argv[0] is a name found in any app, dispatch through that.
|
|
30
|
-
// Multi-app `please <app>:<action>` syntax lands when needed.
|
|
31
17
|
const argv = options.argv;
|
|
32
18
|
const stdout = options.stdout;
|
|
33
19
|
const stderr = options.stderr;
|
|
34
20
|
const commands = options.commands ?? [];
|
|
35
21
|
if (argv.length === 0 || argv[0] === "--help" || argv[0] === "-h") {
|
|
36
|
-
printAllHelp(instances, commands,
|
|
22
|
+
printAllHelp(instances, commands, stdout ?? ((l) => console.log(l)));
|
|
37
23
|
return 0;
|
|
38
24
|
}
|
|
39
25
|
const targetName = argv[0];
|
|
40
|
-
// Commands take precedence: operator scripts shadow the action surface so a
|
|
41
|
-
// backfill named "submissions.flag" never collides with the domain action of
|
|
42
|
-
// the same name. The first registered command wins on duplicates.
|
|
43
26
|
const command = commands.find((c) => c.name === targetName);
|
|
44
27
|
if (command) {
|
|
45
28
|
return runCommand(command, instances, argv.slice(1), {
|
|
@@ -49,10 +32,10 @@ export async function runPlease(options) {
|
|
|
49
32
|
}
|
|
50
33
|
const owner = instances.find((a) => actionOrQueryNames(a).includes(targetName));
|
|
51
34
|
if (!owner) {
|
|
52
|
-
(
|
|
35
|
+
(stderr ?? ((l) => console.error(l)))(`unknown command, action, or query: "${targetName}". Run with --help.`);
|
|
53
36
|
return 1;
|
|
54
37
|
}
|
|
55
|
-
return
|
|
38
|
+
return runCli(owner, argv, { stdout, stderr });
|
|
56
39
|
}
|
|
57
40
|
async function runCommand(command, instances, rest, io) {
|
|
58
41
|
const app = instances[0];
|
|
@@ -92,11 +75,6 @@ async function runCommand(command, instances, rest, io) {
|
|
|
92
75
|
return 1;
|
|
93
76
|
}
|
|
94
77
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Minimal flag parser shared with the action CLI surface. Mirrors the
|
|
97
|
-
* `--field value` / `--field=value` / repeated-flag / boolean-toggle behavior
|
|
98
|
-
* `forge.runCli` exposes, so command authors get the same operator UX.
|
|
99
|
-
*/
|
|
100
78
|
function parseFlagsToObject(argv) {
|
|
101
79
|
const out = {};
|
|
102
80
|
for (let i = 0; i < argv.length; i++) {
|
|
@@ -147,14 +125,8 @@ function coerceFlag(value) {
|
|
|
147
125
|
return value;
|
|
148
126
|
}
|
|
149
127
|
function actionOrQueryNames(app) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
for (const action of module.manifest.actions ?? [])
|
|
153
|
-
actions.push(action.name);
|
|
154
|
-
for (const query of module.manifest.queries ?? [])
|
|
155
|
-
actions.push(query.name);
|
|
156
|
-
}
|
|
157
|
-
return actions;
|
|
128
|
+
const dispatcher = app.dispatcher();
|
|
129
|
+
return [...dispatcher.listHandlers(), ...dispatcher.listQueries()];
|
|
158
130
|
}
|
|
159
131
|
function printAllHelp(instances, commands, out) {
|
|
160
132
|
out("please — Nwire operator CLI\n");
|
|
@@ -167,25 +139,13 @@ function printAllHelp(instances, commands, out) {
|
|
|
167
139
|
out("");
|
|
168
140
|
}
|
|
169
141
|
for (const app of instances) {
|
|
170
|
-
out(`# App: ${
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
out(` ${query.name}${query.description ? " — " + query.description.slice(0, 70) : ""}`);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
142
|
+
out(`# App: ${app.appName}`);
|
|
143
|
+
const dispatcher = app.dispatcher();
|
|
144
|
+
for (const name of dispatcher.listHandlers())
|
|
145
|
+
out(` ${name}`);
|
|
146
|
+
for (const name of dispatcher.listQueries())
|
|
147
|
+
out(` ${name}`);
|
|
179
148
|
out("");
|
|
180
149
|
}
|
|
181
150
|
}
|
|
182
|
-
function describeApp(app) {
|
|
183
|
-
// The runtime doesn't expose the app's name yet; defer naming until
|
|
184
|
-
// `App` carries its AppDefinition reference. Today: show module count.
|
|
185
|
-
return `${app.modules.length} module${app.modules.length === 1 ? "" : "s"}`;
|
|
186
|
-
}
|
|
187
|
-
// Surface the operator-script primitive alongside `runPlease`. Consumers
|
|
188
|
-
// import them from the same package entry: `import { defineCommand, runPlease }
|
|
189
|
-
// from '@nwire/please'`.
|
|
190
151
|
export { defineCommand, } from "./define-command.js";
|
|
191
|
-
//# sourceMappingURL=please.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nwire/please",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Nwire — operator CLI. runPlease dispatches actions/queries by name across all registered apps; --tenant for tenant scoping; --help lists everything. Scaffolding (make:module / make:action) lands on top.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ace",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@nwire/forge": "0.
|
|
32
|
-
"@nwire/messages": "0.
|
|
31
|
+
"@nwire/forge": "0.10.0",
|
|
32
|
+
"@nwire/messages": "0.10.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^22.19.9",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `defineCommand` — operator-script primitive.
|
|
3
|
-
*
|
|
4
|
-
* Verifies the primitive shape, source capture, optional args, and that
|
|
5
|
-
* commands plumb through `runPlease` to invoke the handler with an injected
|
|
6
|
-
* resolver + app instance.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=define-command.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/define-command.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `defineCommand` — operator-script primitive.
|
|
3
|
-
*
|
|
4
|
-
* Verifies the primitive shape, source capture, optional args, and that
|
|
5
|
-
* commands plumb through `runPlease` to invoke the handler with an injected
|
|
6
|
-
* resolver + app instance.
|
|
7
|
-
*/
|
|
8
|
-
import { describe, it, expect } from "vitest";
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
import { defineModule, createApp } from "@nwire/forge";
|
|
11
|
-
import { defineCommand, runPlease } from "../please.js";
|
|
12
|
-
describe("defineCommand", () => {
|
|
13
|
-
it("returns a $kind=command definition with source location", () => {
|
|
14
|
-
const cmd = defineCommand("seed-students", {
|
|
15
|
-
describe: "Seed Dina's starter classroom roster.",
|
|
16
|
-
args: z.object({ count: z.number().int().positive() }),
|
|
17
|
-
handler: async ({ args }) => ({ created: args.count }),
|
|
18
|
-
});
|
|
19
|
-
expect(cmd.$kind).toBe("command");
|
|
20
|
-
expect(cmd.name).toBe("seed-students");
|
|
21
|
-
expect(cmd.describe).toContain("Dina");
|
|
22
|
-
expect(cmd.args).toBeDefined();
|
|
23
|
-
// captureSourceLocation populates $source from the call site. The
|
|
24
|
-
// helper skips nwire-internal frames (including this test file, which
|
|
25
|
-
// lives under packages/nwire-please), so $source resolves to the next
|
|
26
|
-
// user-code frame the V8 stack exposes — what matters is that it ran.
|
|
27
|
-
expect(cmd.$source).toBeDefined();
|
|
28
|
-
expect(typeof cmd.$source?.line).toBe("number");
|
|
29
|
-
});
|
|
30
|
-
it("accepts a command with no args schema (optional field)", () => {
|
|
31
|
-
const cmd = defineCommand("ping", {
|
|
32
|
-
describe: "Smoke-test that the wire is up.",
|
|
33
|
-
handler: async () => ({ ok: true }),
|
|
34
|
-
});
|
|
35
|
-
expect(cmd.args).toBeUndefined();
|
|
36
|
-
expect(cmd.describe).toBe("Smoke-test that the wire is up.");
|
|
37
|
-
});
|
|
38
|
-
it("invokes the handler via runPlease with parsed args + ctx.resolve", async () => {
|
|
39
|
-
let captured = null;
|
|
40
|
-
const emptyModule = defineModule("ops", {});
|
|
41
|
-
const app = createApp({ modules: [emptyModule], appName: "ops-app" });
|
|
42
|
-
app.container.register("Reporter", () => ({ report: () => "reported" }));
|
|
43
|
-
const cmd = defineCommand("backfill-users", {
|
|
44
|
-
describe: "Re-hydrate users.",
|
|
45
|
-
args: z.object({ since: z.string().optional() }),
|
|
46
|
-
handler: async ({ args, ctx }) => {
|
|
47
|
-
captured = {
|
|
48
|
-
args,
|
|
49
|
-
resolved: ctx.resolve("Reporter").report(),
|
|
50
|
-
appKind: ctx.app.$nwireApp,
|
|
51
|
-
};
|
|
52
|
-
return { ok: true };
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
const stdout = [];
|
|
56
|
-
const stderr = [];
|
|
57
|
-
const code = await runPlease({
|
|
58
|
-
apps: [],
|
|
59
|
-
appInstances: [app],
|
|
60
|
-
argv: ["backfill-users", "--since", "2026-01-01"],
|
|
61
|
-
commands: [cmd],
|
|
62
|
-
stdout: (l) => stdout.push(l),
|
|
63
|
-
stderr: (l) => stderr.push(l),
|
|
64
|
-
});
|
|
65
|
-
expect(code).toBe(0);
|
|
66
|
-
expect(stderr).toEqual([]);
|
|
67
|
-
expect(captured).not.toBeNull();
|
|
68
|
-
expect(captured.args).toEqual({ since: "2026-01-01" });
|
|
69
|
-
expect(captured.resolved).toBe("reported");
|
|
70
|
-
expect(captured.appKind).toBe(true);
|
|
71
|
-
expect(stdout.join("\n")).toContain('"ok": true');
|
|
72
|
-
});
|
|
73
|
-
it("surfaces zod validation errors with a non-zero exit code", async () => {
|
|
74
|
-
const emptyModule = defineModule("ops", {});
|
|
75
|
-
const app = createApp({ modules: [emptyModule], appName: "ops-app" });
|
|
76
|
-
const cmd = defineCommand("require-id", {
|
|
77
|
-
args: z.object({ id: z.string() }),
|
|
78
|
-
handler: async () => "never",
|
|
79
|
-
});
|
|
80
|
-
const stderr = [];
|
|
81
|
-
const code = await runPlease({
|
|
82
|
-
apps: [],
|
|
83
|
-
appInstances: [app],
|
|
84
|
-
argv: ["require-id"],
|
|
85
|
-
commands: [cmd],
|
|
86
|
-
stdout: () => { },
|
|
87
|
-
stderr: (l) => stderr.push(l),
|
|
88
|
-
});
|
|
89
|
-
expect(code).toBe(1);
|
|
90
|
-
expect(stderr.join("\n")).toMatch(/invalid args for "require-id"/);
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=define-command.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.test.js","sourceRoot":"","sources":["../../src/__tests__/define-command.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-please.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/run-please.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `runPlease` — operator CLI dispatcher.
|
|
3
|
-
*
|
|
4
|
-
* Covers command-vs-action precedence so domain-action surface stays clean
|
|
5
|
-
* and operator scripts run via the same `please <name>` UX.
|
|
6
|
-
*/
|
|
7
|
-
import { describe, it, expect } from "vitest";
|
|
8
|
-
import { z } from "zod";
|
|
9
|
-
import { defineAction, defineModule, createApp } from "@nwire/forge";
|
|
10
|
-
import { defineCommand, runPlease } from "../please.js";
|
|
11
|
-
describe("runPlease command dispatch", () => {
|
|
12
|
-
it("dispatches a registered command by name (precedence over actions)", async () => {
|
|
13
|
-
let actionRan = false;
|
|
14
|
-
let commandRan = false;
|
|
15
|
-
// Domain action sharing the same name as the operator command.
|
|
16
|
-
const ping = defineAction({
|
|
17
|
-
name: "ping",
|
|
18
|
-
description: "Domain ping action — should NOT run when shadowed.",
|
|
19
|
-
schema: z.object({}),
|
|
20
|
-
handler: async () => {
|
|
21
|
-
actionRan = true;
|
|
22
|
-
return undefined;
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
const opsModule = defineModule("ops", { actions: [ping] });
|
|
26
|
-
const app = createApp({ modules: [opsModule], appName: "ops-app" });
|
|
27
|
-
const pingCommand = defineCommand("ping", {
|
|
28
|
-
describe: "Operator ping — shadows the domain action.",
|
|
29
|
-
handler: async () => {
|
|
30
|
-
commandRan = true;
|
|
31
|
-
return { from: "command" };
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
const stdout = [];
|
|
35
|
-
const code = await runPlease({
|
|
36
|
-
apps: [],
|
|
37
|
-
appInstances: [app],
|
|
38
|
-
argv: ["ping"],
|
|
39
|
-
commands: [pingCommand],
|
|
40
|
-
stdout: (l) => stdout.push(l),
|
|
41
|
-
stderr: () => { },
|
|
42
|
-
});
|
|
43
|
-
expect(code).toBe(0);
|
|
44
|
-
expect(commandRan).toBe(true);
|
|
45
|
-
expect(actionRan).toBe(false);
|
|
46
|
-
expect(stdout.join("\n")).toContain('"from": "command"');
|
|
47
|
-
});
|
|
48
|
-
it("falls back to the action surface when no command matches the name", async () => {
|
|
49
|
-
let actionInput = null;
|
|
50
|
-
const flagSubmission = defineAction({
|
|
51
|
-
name: "submissions.flag",
|
|
52
|
-
description: "Flag Avi's submission for review.",
|
|
53
|
-
schema: z.object({ submissionId: z.string() }),
|
|
54
|
-
handler: async (input) => {
|
|
55
|
-
actionInput = input;
|
|
56
|
-
return undefined;
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
const submissionsModule = defineModule("submissions", { actions: [flagSubmission] });
|
|
60
|
-
const app = createApp({ modules: [submissionsModule], appName: "ops-app" });
|
|
61
|
-
const backfill = defineCommand("backfill-users", {
|
|
62
|
-
handler: async () => "noop",
|
|
63
|
-
});
|
|
64
|
-
const stdout = [];
|
|
65
|
-
const stderr = [];
|
|
66
|
-
const code = await runPlease({
|
|
67
|
-
apps: [],
|
|
68
|
-
appInstances: [app],
|
|
69
|
-
argv: ["submissions.flag", "--submissionId", "sub-1"],
|
|
70
|
-
commands: [backfill],
|
|
71
|
-
stdout: (l) => stdout.push(l),
|
|
72
|
-
stderr: (l) => stderr.push(l),
|
|
73
|
-
});
|
|
74
|
-
expect(code).toBe(0);
|
|
75
|
-
expect(stderr).toEqual([]);
|
|
76
|
-
expect(actionInput).toEqual({ submissionId: "sub-1" });
|
|
77
|
-
expect(stdout.join("\n")).toContain("OK");
|
|
78
|
-
});
|
|
79
|
-
it("reports unknown name when neither a command nor an action matches", async () => {
|
|
80
|
-
const emptyModule = defineModule("ops", {});
|
|
81
|
-
const app = createApp({ modules: [emptyModule], appName: "ops-app" });
|
|
82
|
-
const stderr = [];
|
|
83
|
-
const code = await runPlease({
|
|
84
|
-
apps: [],
|
|
85
|
-
appInstances: [app],
|
|
86
|
-
argv: ["nope"],
|
|
87
|
-
commands: [],
|
|
88
|
-
stdout: () => { },
|
|
89
|
-
stderr: (l) => stderr.push(l),
|
|
90
|
-
});
|
|
91
|
-
expect(code).toBe(1);
|
|
92
|
-
expect(stderr.join("\n")).toMatch(/unknown command, action, or query: "nope"/);
|
|
93
|
-
});
|
|
94
|
-
it("lists commands in --help output alongside actions", async () => {
|
|
95
|
-
const emptyModule = defineModule("ops", {});
|
|
96
|
-
const app = createApp({ modules: [emptyModule], appName: "ops-app" });
|
|
97
|
-
const stdout = [];
|
|
98
|
-
const code = await runPlease({
|
|
99
|
-
apps: [],
|
|
100
|
-
appInstances: [app],
|
|
101
|
-
argv: ["--help"],
|
|
102
|
-
commands: [
|
|
103
|
-
defineCommand("seed-classroom", {
|
|
104
|
-
describe: "Seed Dina's starter classroom.",
|
|
105
|
-
handler: async () => undefined,
|
|
106
|
-
}),
|
|
107
|
-
],
|
|
108
|
-
stdout: (l) => stdout.push(l),
|
|
109
|
-
stderr: () => { },
|
|
110
|
-
});
|
|
111
|
-
expect(code).toBe(0);
|
|
112
|
-
const out = stdout.join("\n");
|
|
113
|
-
expect(out).toContain("# Commands (operator scripts)");
|
|
114
|
-
expect(out).toContain("seed-classroom");
|
|
115
|
-
expect(out).toContain("Seed Dina's starter classroom.");
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
//# sourceMappingURL=run-please.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-please.test.js","sourceRoot":"","sources":["../../src/__tests__/run-please.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAErD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,+DAA+D;QAC/D,MAAM,IAAI,GAAG,YAAY,CAAC;YACxB,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,oDAAoD;YACjE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,SAAS,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAEpE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE;YACxC,QAAQ,EAAE,4CAA4C;YACtD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7B,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,CAAC,GAAG,CAAC;YACnB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,IAAI,WAAW,GAAY,IAAI,CAAC;QAEhC,MAAM,cAAc,GAAG,YAAY,CAAC;YAClC,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,mCAAmC;YAChD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvB,WAAW,GAAG,KAAK,CAAC;gBACpB,OAAO,SAAS,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,YAAY,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,EAAE;YAC/C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,CAAC,GAAG,CAAC;YACnB,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC;YACrD,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,CAAC,GAAG,CAAC;YACnB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;YAChB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,CAAC,GAAG,CAAC;YACnB,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,QAAQ,EAAE;gBACR,aAAa,CAAC,gBAAgB,EAAE;oBAC9B,QAAQ,EAAE,gCAAgC;oBAC1C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;iBAC/B,CAAC;aACH;YACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.d.ts","sourceRoot":"","sources":["../src/define-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,GAAG;IAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IACtC,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB,CAAC,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;CAC9B;AAED,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,CAElC,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAC5B,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEhC,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,SAAS;IACxE,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAC9B,OAAO,SAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACzE,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB,CAChC,OAAO,SAAS,iBAAiB,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS;IAE7E,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAC9B,OAAO,SAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACzE,CAAC;IACF,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAS,iBAAiB,GAAG,SAAS,GAAG,SAAS,EACrF,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GACzB,iBAAiB,CAAC,OAAO,CAAC,CAU5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.js","sourceRoot":"","sources":["../src/define-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAiExD,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,IAA0B;IAE1B,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
|
package/dist/please.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"please.d.ts","sourceRoot":"","sources":["../src/please.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,CAAC,aAAa,EAAE,CAAC;IAC9C,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7C,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,MAAM,EAAE,KAAK,CAAC,aAAa,KACxB,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C1E;AA8ID,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/please.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"please.js","sourceRoot":"","sources":["../src/please.ts"],"names":[],"mappings":"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"}
|