@benglo/storu-cli 1.1.0 → 1.2.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.
Files changed (39) hide show
  1. package/dist/api-client.d.ts +5 -0
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +24 -0
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/commands/apps.d.ts +2 -1
  6. package/dist/commands/apps.d.ts.map +1 -1
  7. package/dist/commands/apps.js +60 -49
  8. package/dist/commands/apps.js.map +1 -1
  9. package/dist/commands/epics.d.ts +2 -1
  10. package/dist/commands/epics.d.ts.map +1 -1
  11. package/dist/commands/epics.js +66 -61
  12. package/dist/commands/epics.js.map +1 -1
  13. package/dist/commands/labels.d.ts +2 -1
  14. package/dist/commands/labels.d.ts.map +1 -1
  15. package/dist/commands/labels.js +43 -37
  16. package/dist/commands/labels.js.map +1 -1
  17. package/dist/commands/releases.d.ts +2 -1
  18. package/dist/commands/releases.d.ts.map +1 -1
  19. package/dist/commands/releases.js +85 -82
  20. package/dist/commands/releases.js.map +1 -1
  21. package/dist/commands/stories.d.ts +2 -1
  22. package/dist/commands/stories.d.ts.map +1 -1
  23. package/dist/commands/stories.js +278 -162
  24. package/dist/commands/stories.js.map +1 -1
  25. package/dist/commands/subscribers.d.ts +2 -1
  26. package/dist/commands/subscribers.d.ts.map +1 -1
  27. package/dist/commands/subscribers.js +39 -33
  28. package/dist/commands/subscribers.js.map +1 -1
  29. package/dist/config.d.ts +1 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +25 -12
  32. package/dist/config.js.map +1 -1
  33. package/dist/helpers.d.ts +20 -0
  34. package/dist/helpers.d.ts.map +1 -0
  35. package/dist/helpers.js +32 -0
  36. package/dist/helpers.js.map +1 -0
  37. package/dist/index.js +29 -25
  38. package/dist/index.js.map +1 -1
  39. package/package.json +1 -1
@@ -1,64 +1,71 @@
1
- export function registerLabelsCommand(program, client) {
2
- program
3
- .command("labels")
1
+ import { shortId, output } from "../helpers.js";
2
+ export function registerLabelCommand(program, client, _getConfig) {
3
+ const labelCmd = program.command("label").description("Manage labels");
4
+ labelCmd
5
+ .command("list")
4
6
  .description("List all labels")
5
- .action(async () => {
7
+ .option("--json", "Output raw JSON")
8
+ .action(async (opts) => {
6
9
  const result = await client.listLabels();
7
10
  if (!result.success || !result.data) {
8
- process.stderr.write(`Error: ${result.error ?? "Failed to list labels"}\n`);
9
- process.exit(1);
11
+ throw new Error(result.error ?? "Failed to list labels");
10
12
  }
11
13
  const rows = result.data;
12
- if (rows.length === 0) {
13
- process.stdout.write("No labels found.\n");
14
- return;
15
- }
16
- const tableData = rows.map((label) => ({
17
- ID: label.id,
18
- Name: label.name,
19
- Color: label.color ?? "",
20
- }));
21
- console.table(tableData);
14
+ output(rows, opts, (data) => {
15
+ if (data.length === 0) {
16
+ process.stdout.write("No labels found.\n");
17
+ return;
18
+ }
19
+ const tableData = data.map((label) => ({
20
+ ID: shortId(label.id),
21
+ Name: label.name,
22
+ Color: label.color ?? "",
23
+ }));
24
+ console.table(tableData);
25
+ });
22
26
  });
23
- const labelCmd = program.command("label").description("Manage labels");
24
27
  labelCmd
25
28
  .command("create")
26
29
  .description("Create a new label")
27
30
  .requiredOption("--name <name>", "Label name")
28
31
  .option("--color <hex>", "Label color (hex, e.g. #ff0000)")
29
- .action(async (options) => {
32
+ .option("--json", "Output raw JSON")
33
+ .action(async (opts) => {
30
34
  const result = await client.createLabel({
31
- name: options.name,
32
- color: options.color,
35
+ name: opts.name,
36
+ color: opts.color,
33
37
  });
34
38
  if (!result.success || !result.data) {
35
- process.stderr.write(`Error: ${result.error ?? "Failed to create label"}\n`);
36
- process.exit(1);
39
+ throw new Error(result.error ?? "Failed to create label");
37
40
  }
38
41
  const label = result.data;
39
- process.stdout.write(`Label created: ${label.id}\n`);
40
- process.stdout.write(` Name: ${label.name}\n`);
41
- if (label.color) {
42
- process.stdout.write(` Color: ${label.color}\n`);
43
- }
42
+ output(label, opts, (data) => {
43
+ process.stdout.write(`Label created: ${data.id}\n`);
44
+ process.stdout.write(` Name: ${data.name}\n`);
45
+ if (data.color) {
46
+ process.stdout.write(` Color: ${data.color}\n`);
47
+ }
48
+ });
44
49
  });
45
50
  labelCmd
46
- .command("update <id>")
51
+ .command("edit <id>")
47
52
  .description("Update a label")
48
53
  .option("--name <name>", "New name")
49
54
  .option("--color <hex>", "New color (hex)")
50
- .action(async (id, options) => {
55
+ .option("--json", "Output raw JSON")
56
+ .action(async (id, opts) => {
51
57
  const result = await client.updateLabel(id, {
52
- name: options.name,
53
- color: options.color,
58
+ name: opts.name,
59
+ color: opts.color,
54
60
  });
55
61
  if (!result.success || !result.data) {
56
- process.stderr.write(`Error: ${result.error ?? "Failed to update label"}\n`);
57
- process.exit(1);
62
+ throw new Error(result.error ?? "Failed to update label");
58
63
  }
59
64
  const label = result.data;
60
- process.stdout.write(`Label updated: ${label.id}\n`);
61
- process.stdout.write(` Name: ${label.name}\n`);
65
+ output(label, opts, (data) => {
66
+ process.stdout.write(`Label updated: ${data.id}\n`);
67
+ process.stdout.write(` Name: ${data.name}\n`);
68
+ });
62
69
  });
63
70
  labelCmd
64
71
  .command("delete <id>")
@@ -66,8 +73,7 @@ export function registerLabelsCommand(program, client) {
66
73
  .action(async (id) => {
67
74
  const result = await client.deleteLabel(id);
68
75
  if (!result.success) {
69
- process.stderr.write(`Error: ${result.error ?? "Failed to delete label"}\n`);
70
- process.exit(1);
76
+ throw new Error(result.error ?? "Failed to delete label");
71
77
  }
72
78
  process.stdout.write(`Label deleted: ${id}\n`);
73
79
  });
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/commands/labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/commands/labels.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Command } from "commander";
2
2
  import { StoruApiClient } from "../api-client.js";
3
- export declare function registerReleasesCommand(program: Command, client: StoruApiClient): void;
3
+ import type { StoruConfig } from "../config.js";
4
+ export declare function registerReleaseCommand(program: Command, client: StoruApiClient, getConfig: () => StoruConfig): void;
4
5
  //# sourceMappingURL=releases.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/commands/releases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAelD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAiLtF"}
1
+ {"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../../src/commands/releases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAgBhD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,WAAW,GAC3B,IAAI,CAqKN"}
@@ -1,141 +1,144 @@
1
- export function registerReleasesCommand(program, client) {
2
- program
3
- .command("releases")
1
+ import { shortId, output, resolveApp } from "../helpers.js";
2
+ export function registerReleaseCommand(program, client, getConfig) {
3
+ const releaseCmd = program.command("release").description("Manage releases");
4
+ releaseCmd
5
+ .command("list")
4
6
  .description("List releases for an application")
5
- .requiredOption("--app <id>", "Application UUID or slug")
7
+ .option("--app <slug-or-id>", "Application UUID or slug")
6
8
  .option("--status <status>", "Filter by status (draft|published)")
7
- .action(async (options) => {
8
- const result = await client.listReleases({
9
- app: options.app,
10
- status: options.status,
11
- });
9
+ .option("--json", "Output raw JSON")
10
+ .action(async (opts) => {
11
+ const appId = await resolveApp(client, opts, getConfig());
12
+ const result = await client.listReleases({ app: appId, status: opts.status });
12
13
  if (!result.success || !result.data) {
13
- process.stderr.write(`Error: ${result.error ?? "Failed to list releases"}\n`);
14
- process.exit(1);
14
+ throw new Error(result.error ?? "Failed to list releases");
15
15
  }
16
16
  const rows = result.data;
17
- if (rows.length === 0) {
18
- process.stdout.write("No releases found.\n");
19
- return;
20
- }
21
- const tableData = rows.map((r) => ({
22
- ID: r.id,
23
- Title: r.title,
24
- Status: r.status,
25
- Published: r.published_at ?? "",
26
- }));
27
- console.table(tableData);
17
+ output(rows, opts, (data) => {
18
+ if (data.length === 0) {
19
+ process.stdout.write("No releases found.\n");
20
+ return;
21
+ }
22
+ const tableData = data.map((r) => ({
23
+ ID: shortId(r.id),
24
+ Title: r.title,
25
+ Status: r.status,
26
+ Published: r.published_at ?? "",
27
+ }));
28
+ console.table(tableData);
29
+ });
28
30
  });
29
- const releaseCmd = program.command("release").description("Manage releases");
30
31
  releaseCmd
31
- .command("get <id>")
32
+ .command("view <id>")
32
33
  .description("Get full details for a release")
33
- .action(async (id) => {
34
+ .option("--json", "Output raw JSON")
35
+ .action(async (id, opts) => {
34
36
  const result = await client.getRelease(id);
35
37
  if (!result.success || !result.data) {
36
- process.stderr.write(`Error: ${result.error ?? "Failed to get release"}\n`);
37
- process.exit(1);
38
+ throw new Error(result.error ?? "Failed to get release");
38
39
  }
39
40
  const release = result.data;
40
- process.stdout.write(`\nRelease: ${release.title}\n`);
41
- process.stdout.write(`${"─".repeat(60)}\n`);
42
- process.stdout.write(`ID: ${release.id}\n`);
43
- process.stdout.write(`Status: ${release.status}\n`);
44
- process.stdout.write(`App: ${release.application_id}\n`);
45
- if (release.published_at) {
46
- process.stdout.write(`Published: ${release.published_at}\n`);
47
- }
48
- if (release.description) {
49
- process.stdout.write(`\nDescription:\n${release.description}\n`);
50
- }
51
- const stories = release.stories ?? release.story_ids ?? [];
52
- if (Array.isArray(stories) && stories.length > 0) {
53
- process.stdout.write(`\nStories (${stories.length}):\n`);
54
- for (const s of stories) {
55
- process.stdout.write(` - ${JSON.stringify(s)}\n`);
41
+ output(release, opts, (data) => {
42
+ process.stdout.write(`\nRelease: ${data.title}\n`);
43
+ process.stdout.write(`${"─".repeat(60)}\n`);
44
+ process.stdout.write(`ID: ${data.id}\n`);
45
+ process.stdout.write(`Status: ${data.status}\n`);
46
+ process.stdout.write(`App: ${data.application_id}\n`);
47
+ if (data.published_at) {
48
+ process.stdout.write(`Published: ${data.published_at}\n`);
56
49
  }
57
- }
50
+ if (data.description) {
51
+ process.stdout.write(`\nDescription:\n${data.description}\n`);
52
+ }
53
+ const stories = data.stories ?? data.story_ids ?? [];
54
+ if (Array.isArray(stories) && stories.length > 0) {
55
+ process.stdout.write(`\nStories (${stories.length}):\n`);
56
+ for (const s of stories) {
57
+ process.stdout.write(` - ${JSON.stringify(s)}\n`);
58
+ }
59
+ }
60
+ });
58
61
  });
59
62
  releaseCmd
60
63
  .command("create")
61
64
  .description("Create a new release")
62
- .requiredOption("--app <slug-or-id>", "Application slug or UUID")
65
+ .option("--app <slug-or-id>", "Application slug or UUID")
63
66
  .requiredOption("--title <title>", "Release title")
64
67
  .option("--description <text>", "Release description")
65
68
  .option("--stories <ids>", "Comma-separated story UUIDs to include")
66
- .action(async (options) => {
67
- const storyIds = options.stories
68
- ? options.stories.split(",").map((s) => s.trim()).filter(Boolean)
69
+ .option("--json", "Output raw JSON")
70
+ .action(async (opts) => {
71
+ const appId = await resolveApp(client, opts, getConfig());
72
+ const storyIds = opts.stories
73
+ ? opts.stories.split(",").map((s) => s.trim()).filter(Boolean)
69
74
  : undefined;
70
- const appId = await client.resolveAppId(options.app);
71
75
  const result = await client.createRelease({
72
76
  application_id: appId,
73
- title: options.title,
74
- description: options.description,
77
+ title: opts.title,
78
+ description: opts.description,
75
79
  story_ids: storyIds,
76
80
  });
77
81
  if (!result.success || !result.data) {
78
- process.stderr.write(`Error: ${result.error ?? "Failed to create release"}\n`);
79
- process.exit(1);
82
+ throw new Error(result.error ?? "Failed to create release");
80
83
  }
81
84
  const release = result.data;
82
- process.stdout.write(`Release created: ${release.id}\n`);
83
- process.stdout.write(` Title: ${release.title}\n`);
84
- process.stdout.write(` Status: ${release.status}\n`);
85
+ output(release, opts, (data) => {
86
+ process.stdout.write(`Release created: ${data.id}\n`);
87
+ process.stdout.write(` Title: ${data.title}\n`);
88
+ process.stdout.write(` Status: ${data.status}\n`);
89
+ });
85
90
  });
86
91
  releaseCmd
87
- .command("update <id>")
92
+ .command("edit <id>")
88
93
  .description("Update a release")
89
94
  .option("--title <title>", "New title")
90
95
  .option("--description <text>", "New description")
91
96
  .option("--add-stories <ids>", "Comma-separated story UUIDs to add")
92
- .action(async (id, options) => {
97
+ .option("--json", "Output raw JSON")
98
+ .action(async (id, opts) => {
93
99
  const getResult = await client.getRelease(id);
94
100
  if (!getResult.success || !getResult.data) {
95
- process.stderr.write(`Error: ${getResult.error ?? "Release not found"}\n`);
96
- process.exit(1);
101
+ throw new Error(getResult.error ?? "Release not found");
97
102
  }
98
103
  const current = getResult.data;
99
104
  let storyIds;
100
- if (options.addStories !== undefined) {
101
- const existing = Array.isArray(current.story_ids)
102
- ? current.story_ids
103
- : [];
104
- const newIds = options.addStories
105
- .split(",")
106
- .map((s) => s.trim())
107
- .filter(Boolean);
105
+ if (opts.addStories !== undefined) {
106
+ const existing = Array.isArray(current.story_ids) ? current.story_ids : [];
107
+ const newIds = opts.addStories.split(",").map((s) => s.trim()).filter(Boolean);
108
108
  storyIds = [...new Set([...existing, ...newIds])];
109
109
  }
110
110
  const result = await client.updateRelease(id, {
111
111
  version: current.version,
112
- title: options.title,
113
- description: options.description,
112
+ title: opts.title,
113
+ description: opts.description,
114
114
  story_ids: storyIds,
115
115
  });
116
116
  if (!result.success || !result.data) {
117
- process.stderr.write(`Error: ${result.error ?? "Failed to update release"}\n`);
118
- process.exit(1);
117
+ throw new Error(result.error ?? "Failed to update release");
119
118
  }
120
119
  const release = result.data;
121
- process.stdout.write(`Release updated: ${release.id}\n`);
122
- process.stdout.write(` Title: ${release.title}\n`);
123
- process.stdout.write(` Status: ${release.status}\n`);
120
+ output(release, opts, (data) => {
121
+ process.stdout.write(`Release updated: ${data.id}\n`);
122
+ process.stdout.write(` Title: ${data.title}\n`);
123
+ process.stdout.write(` Status: ${data.status}\n`);
124
+ });
124
125
  });
125
126
  releaseCmd
126
127
  .command("publish <id>")
127
128
  .description("Publish a draft release")
128
- .action(async (id) => {
129
+ .option("--json", "Output raw JSON")
130
+ .action(async (id, opts) => {
129
131
  const result = await client.publishRelease(id);
130
132
  if (!result.success || !result.data) {
131
- process.stderr.write(`Error: ${result.error ?? "Failed to publish release"}\n`);
132
- process.exit(1);
133
+ throw new Error(result.error ?? "Failed to publish release");
133
134
  }
134
135
  const release = result.data;
135
- process.stdout.write(`Release published: ${release.id}\n`);
136
- process.stdout.write(` Title: ${release.title}\n`);
137
- process.stdout.write(` Status: ${release.status}\n`);
138
- process.stdout.write(` Published at: ${release.published_at ?? "unknown"}\n`);
136
+ output(release, opts, (data) => {
137
+ process.stdout.write(`Release published: ${data.id}\n`);
138
+ process.stdout.write(` Title: ${data.title}\n`);
139
+ process.stdout.write(` Status: ${data.status}\n`);
140
+ process.stdout.write(` Published at: ${data.published_at ?? "unknown"}\n`);
141
+ });
139
142
  });
140
143
  }
141
144
  //# sourceMappingURL=releases.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/commands/releases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/commands/releases.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Command } from "commander";
2
2
  import { StoruApiClient } from "../api-client.js";
3
- export declare function registerStoriesCommand(program: Command, client: StoruApiClient): void;
3
+ import type { StoruConfig } from "../config.js";
4
+ export declare function registerStoryCommand(program: Command, client: StoruApiClient, getConfig: () => StoruConfig): void;
4
5
  //# sourceMappingURL=stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stories.d.ts","sourceRoot":"","sources":["../../src/commands/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsClD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAqWrF"}
1
+ {"version":3,"file":"stories.d.ts","sourceRoot":"","sources":["../../src/commands/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAwEhD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,WAAW,GAC3B,IAAI,CAqZN"}