@forjio/storlaunch-cli 0.15.0 → 0.15.1

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.
@@ -0,0 +1,249 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { readFileSync } from "node:fs";
4
+ import { apiRequest, ApiClientError } from "../lib/api.js";
5
+ import { output } from "../lib/output.js";
6
+ /**
7
+ * `sell workspace` — merchant workspace management. Backend mount is
8
+ * app-level at `/api/v1/workspaces` (see backend/src/index.ts line 51).
9
+ *
10
+ * Real endpoints:
11
+ * GET /workspaces/current — show active workspace
12
+ * PATCH /workspaces/current — rename active workspace
13
+ * GET /workspaces — list workspaces user belongs to
14
+ * POST /workspaces — create workspace
15
+ * GET /workspaces/current/members — list members
16
+ * POST /workspaces/current/members — invite by email
17
+ * DELETE /workspaces/current/members/:userId — remove
18
+ * PATCH /workspaces/current/members/:userId — change role
19
+ *
20
+ * The audit hinted at `/workspace` (singular) and `/workspace/members`
21
+ * — those don't exist. Only the plural-current shape is on the backend.
22
+ */
23
+ function getExitCode(err) {
24
+ if (err instanceof ApiClientError) {
25
+ if (err.status === 401 || err.status === 403)
26
+ return 2;
27
+ if (err.status === 429)
28
+ return 3;
29
+ if (err.code === "QUOTA_EXCEEDED")
30
+ return 4;
31
+ }
32
+ return 1;
33
+ }
34
+ function handleError(err, json) {
35
+ if (json && err instanceof ApiClientError) {
36
+ console.error(JSON.stringify({ data: null, error: { code: err.code, message: err.message } }, null, 2));
37
+ }
38
+ else {
39
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
40
+ }
41
+ process.exit(getExitCode(err));
42
+ }
43
+ function parseBody(raw, fileRaw) {
44
+ let source;
45
+ if (fileRaw) {
46
+ try {
47
+ source = readFileSync(fileRaw, "utf-8");
48
+ }
49
+ catch (e) {
50
+ console.error(chalk.red(`Error: cannot read --body-file ${fileRaw}: ${e.message}`));
51
+ process.exit(1);
52
+ }
53
+ }
54
+ else if (raw) {
55
+ source = raw;
56
+ }
57
+ else {
58
+ console.error(chalk.red("Error: --body <json> or --body-file <path> is required"));
59
+ process.exit(1);
60
+ }
61
+ try {
62
+ const parsed = JSON.parse(source);
63
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
64
+ console.error(chalk.red("Error: body must be a JSON object"));
65
+ process.exit(1);
66
+ }
67
+ return parsed;
68
+ }
69
+ catch (e) {
70
+ console.error(chalk.red(`Error: --body is not valid JSON: ${e.message}`));
71
+ process.exit(1);
72
+ }
73
+ }
74
+ function unwrap(result) {
75
+ if (result && typeof result === "object" && "data" in result) {
76
+ return result.data;
77
+ }
78
+ return result;
79
+ }
80
+ const workspace = new Command("workspace").description("Workspace + member management (active workspace from auth session)");
81
+ workspace
82
+ .command("show")
83
+ .description("Show the active workspace (id, name, slug, plan, role)")
84
+ .action(async (_, cmd) => {
85
+ const g = cmd.optsWithGlobals();
86
+ try {
87
+ const result = await apiRequest("/workspaces/current", {
88
+ sandbox: g.sandbox,
89
+ });
90
+ if (g.json) {
91
+ output(result, { json: true });
92
+ }
93
+ else {
94
+ const data = unwrap(result);
95
+ output(data, {});
96
+ }
97
+ }
98
+ catch (err) {
99
+ handleError(err, g.json);
100
+ }
101
+ });
102
+ workspace
103
+ .command("update")
104
+ .description("Rename the active workspace (PATCH /workspaces/current)")
105
+ .option("--body <json>", "JSON object — currently only { name } is supported")
106
+ .option("--body-file <path>", "Read JSON body from a file")
107
+ .action(async (opts, cmd) => {
108
+ const g = cmd.optsWithGlobals();
109
+ const body = parseBody(opts.body, opts.bodyFile);
110
+ try {
111
+ const result = await apiRequest("/workspaces/current", {
112
+ method: "PATCH",
113
+ body,
114
+ sandbox: g.sandbox,
115
+ });
116
+ if (g.json) {
117
+ output(result, { json: true });
118
+ }
119
+ else {
120
+ console.log(chalk.green("Workspace updated."));
121
+ const data = unwrap(result);
122
+ output(data, {});
123
+ }
124
+ }
125
+ catch (err) {
126
+ handleError(err, g.json);
127
+ }
128
+ });
129
+ workspace
130
+ .command("list")
131
+ .description("List workspaces this user belongs to")
132
+ .action(async (_, cmd) => {
133
+ const g = cmd.optsWithGlobals();
134
+ try {
135
+ const result = await apiRequest("/workspaces", {
136
+ sandbox: g.sandbox,
137
+ });
138
+ if (g.json) {
139
+ output(result, { json: true });
140
+ }
141
+ else {
142
+ const data = unwrap(result) ?? [];
143
+ const cols = [
144
+ { key: "id", header: "ID", width: 24 },
145
+ { key: "name", header: "Name", width: 24 },
146
+ { key: "slug", header: "Slug", width: 24 },
147
+ { key: "plan", header: "Plan", width: 10 },
148
+ { key: "role", header: "Role" },
149
+ ];
150
+ output(data, { columns: cols });
151
+ }
152
+ }
153
+ catch (err) {
154
+ handleError(err, g.json);
155
+ }
156
+ });
157
+ // ─── members ────────────────────────────────────────────────────────────────
158
+ const members = new Command("members").description("Manage members of the active workspace");
159
+ members
160
+ .command("list")
161
+ .description("List members of the active workspace")
162
+ .action(async (_, cmd) => {
163
+ const g = cmd.optsWithGlobals();
164
+ try {
165
+ const result = await apiRequest("/workspaces/current/members", { sandbox: g.sandbox });
166
+ if (g.json) {
167
+ output(result, { json: true });
168
+ }
169
+ else {
170
+ const data = unwrap(result) ?? [];
171
+ const cols = [
172
+ { key: "userId", header: "User ID", width: 24 },
173
+ { key: "email", header: "Email", width: 28 },
174
+ { key: "name", header: "Name", width: 20 },
175
+ { key: "role", header: "Role", width: 8 },
176
+ { key: "joinedAt", header: "Joined" },
177
+ ];
178
+ output(data, { columns: cols });
179
+ }
180
+ }
181
+ catch (err) {
182
+ handleError(err, g.json);
183
+ }
184
+ });
185
+ members
186
+ .command("add")
187
+ .description("Invite a member by email")
188
+ .requiredOption("--email <email>", "Email of the user to invite")
189
+ .option("--role <role>", "Role: admin | member", "member")
190
+ .action(async (opts, cmd) => {
191
+ const g = cmd.optsWithGlobals();
192
+ try {
193
+ const result = await apiRequest("/workspaces/current/members", {
194
+ method: "POST",
195
+ body: { email: opts.email, role: opts.role },
196
+ sandbox: g.sandbox,
197
+ });
198
+ if (g.json) {
199
+ output(result, { json: true });
200
+ }
201
+ else {
202
+ const data = unwrap(result);
203
+ console.log(chalk.green(`Invited ${chalk.bold(opts.email)} as ${opts.role}.${data?.userId ? ` userId=${String(data.userId)}` : ""}`));
204
+ }
205
+ }
206
+ catch (err) {
207
+ handleError(err, g.json);
208
+ }
209
+ });
210
+ members
211
+ .command("remove <userId>")
212
+ .description("Remove a member from the active workspace")
213
+ .action(async (userId, _, cmd) => {
214
+ const g = cmd.optsWithGlobals();
215
+ try {
216
+ const result = await apiRequest(`/workspaces/current/members/${userId}`, { method: "DELETE", sandbox: g.sandbox });
217
+ if (g.json) {
218
+ output(result ?? { removed: true, userId }, { json: true });
219
+ }
220
+ else {
221
+ console.log(chalk.green(`Member ${userId} removed.`));
222
+ }
223
+ }
224
+ catch (err) {
225
+ handleError(err, g.json);
226
+ }
227
+ });
228
+ members
229
+ .command("set-role <userId>")
230
+ .description("Change role of a member (admin | member)")
231
+ .requiredOption("--role <role>", "New role: admin | member")
232
+ .action(async (userId, opts, cmd) => {
233
+ const g = cmd.optsWithGlobals();
234
+ try {
235
+ const result = await apiRequest(`/workspaces/current/members/${userId}`, { method: "PATCH", body: { role: opts.role }, sandbox: g.sandbox });
236
+ if (g.json) {
237
+ output(result, { json: true });
238
+ }
239
+ else {
240
+ console.log(chalk.green(`Member ${userId} role set to ${opts.role}.`));
241
+ }
242
+ }
243
+ catch (err) {
244
+ handleError(err, g.json);
245
+ }
246
+ });
247
+ workspace.addCommand(members);
248
+ export { workspace };
249
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@forjio/storlaunch-cli",
3
- "version": "0.15.0",
4
- "description": "Storlaunch CLI — seller tools (storefronts, inventory, shipping, ledger, reports, payouts, discount-codes, payments, webhooks) and buyer tools (shop, cart, orders, subs, invoices) in one CLI",
3
+ "version": "0.15.1",
4
+ "description": "Storlaunch CLI \u2014 seller tools (storefronts, inventory, shipping, ledger, reports, payouts, discount-codes, payments, webhooks) and buyer tools (shop, cart, orders, subs, invoices) in one CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
@@ -31,5 +31,13 @@
31
31
  "engines": {
32
32
  "node": ">=18.0.0"
33
33
  },
34
- "license": "MIT"
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+https://github.com/hachimi-cat/storlaunch-cli.git"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/hachimi-cat/storlaunch-cli/issues"
41
+ },
42
+ "homepage": "https://github.com/hachimi-cat/storlaunch-cli#readme"
35
43
  }