@curviate/cli 0.8.0 → 0.9.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/CHANGELOG.md CHANGED
@@ -8,6 +8,18 @@ a new command or flag is a minor; a breaking command/flag/exit-code change is a
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.9.0] - 2026-07-03
12
+
13
+ ### Added
14
+
15
+ - `account list` and `account get` gain a compact **slim-default** output — pass `--verbose` for the full API response. Slim `account list` items: `account_id`, `status`, `auth_method`, `full_name`, `headline`, `seat_id`, `connected_at`. Slim `account get`: the same seven fields plus `last_checked_at` and `quotas`. Six cached account-detail fields (`username`, `premium_id`, `public_identifier`, `substrate_created_at`, `signatures`, `groups`) are verbose-only on both commands — they are `null`/`[]` on an account that hasn't been enriched yet, never a missing key. `--all` NDJSON streaming on `account list` applies the same slim projection per item unless `--verbose` is passed.
16
+ - `account get` gains `seat_id` in its slim output (previously only `account list` carried it) — the seat the account occupies, `null` for an admin seatless account.
17
+
18
+ ### Changed
19
+
20
+ - `@curviate/sdk` dependency bumped to `^0.9.0`.
21
+ - `account get --help` no longer advertises `--limit`/`--cursor`/`--all`/`--max-pages` — a single-object read, those flags never applied. `--fields` is unchanged and still available. `account list` is unaffected (a genuine list read, keeps all pagination flags).
22
+
11
23
  ## [0.8.0] - 2026-07-02
12
24
 
13
25
  ### Added
@@ -5,6 +5,11 @@ import {
5
5
  import {
6
6
  streamAll
7
7
  } from "./chunk-GXTZION6.js";
8
+ import {
9
+ slimAccountGet,
10
+ slimAccountList,
11
+ slimAccountListItem
12
+ } from "./chunk-P4UYBDCB.js";
8
13
  import {
9
14
  createClient,
10
15
  renderError,
@@ -13,7 +18,8 @@ import {
13
18
  resolveEffectiveConfig
14
19
  } from "./chunk-47SYFQRF.js";
15
20
  import {
16
- GLOBAL_FLAGS
21
+ GLOBAL_FLAGS,
22
+ READ_SINGLE_FLAGS
17
23
  } from "./chunk-TDYIQHQX.js";
18
24
 
19
25
  // src/commands/account.ts
@@ -40,7 +46,8 @@ function resolveOutputOpts(flags) {
40
46
  return {
41
47
  json: (flags.json ?? false) || !process.stdout.isTTY,
42
48
  isTTY: process.stdout.isTTY ?? false,
43
- fields: flags.fields
49
+ fields: flags.fields,
50
+ verbose: flags.verbose ?? false
44
51
  };
45
52
  }
46
53
  async function handleError(err, outOpts, out) {
@@ -71,11 +78,12 @@ async function runAccountList(client, flags, out) {
71
78
  onTruncated: (n) => out.stderr.write(`Streaming truncated at ${n} page(s). Use --all --max-pages or --cursor for manual paging.
72
79
  `)
73
80
  })) {
74
- out.stdout.write(JSON.stringify(item) + "\n");
81
+ const projected = outOpts.verbose ? item : slimAccountListItem(item);
82
+ out.stdout.write(JSON.stringify(projected) + "\n");
75
83
  }
76
84
  } else {
77
85
  const result = await client.accounts.list(params);
78
- renderSuccess(result, outOpts, out);
86
+ renderSuccess(result, { ...outOpts, slim: slimAccountList }, out);
79
87
  }
80
88
  } catch (err) {
81
89
  await handleError(err, outOpts, out);
@@ -88,7 +96,7 @@ async function runAccountGet(client, flags, out) {
88
96
  const outOpts = resolveOutputOpts(flags);
89
97
  try {
90
98
  const result = await client.accounts.get(accountId);
91
- renderSuccess(result, outOpts, out);
99
+ renderSuccess(result, { ...outOpts, slim: slimAccountGet }, out);
92
100
  } catch (err) {
93
101
  await handleError(err, outOpts, out);
94
102
  }
@@ -340,7 +348,8 @@ var accountListCommand = defineCommand({
340
348
  var accountGetCommand = defineCommand({
341
349
  meta: { name: "get", description: "Get a connected LinkedIn account." },
342
350
  args: {
343
- ...GLOBAL_FLAGS,
351
+ // Single-object read: READ_SINGLE_FLAGS omits pagination flags, keeps --fields
352
+ ...READ_SINGLE_FLAGS,
344
353
  "account-id": { type: "positional", description: "Account id (acc_\u2026)." }
345
354
  },
346
355
  async run({ args }) {
@@ -179,6 +179,36 @@ function slimSearchPosts(data) {
179
179
  const items = Array.isArray(d["items"]) ? d["items"].map(slimSearchPostsItem) : [];
180
180
  return { ...d, items };
181
181
  }
182
+ function slimAccountListItem(item) {
183
+ return {
184
+ account_id: item["account_id"] ?? null,
185
+ status: item["status"] ?? null,
186
+ auth_method: item["auth_method"] ?? null,
187
+ full_name: item["full_name"] ?? null,
188
+ headline: item["headline"] ?? null,
189
+ seat_id: item["seat_id"] ?? null,
190
+ connected_at: item["connected_at"] ?? null
191
+ };
192
+ }
193
+ function slimAccountList(data) {
194
+ const d = data !== null && data !== void 0 && typeof data === "object" ? data : {};
195
+ const items = Array.isArray(d["items"]) ? d["items"].map(slimAccountListItem) : [];
196
+ return { object: d["object"] ?? null, items, cursor: d["cursor"] ?? null };
197
+ }
198
+ function slimAccountGet(data) {
199
+ const d = data !== null && data !== void 0 && typeof data === "object" ? data : {};
200
+ return {
201
+ account_id: d["account_id"] ?? null,
202
+ status: d["status"] ?? null,
203
+ auth_method: d["auth_method"] ?? null,
204
+ full_name: d["full_name"] ?? null,
205
+ headline: d["headline"] ?? null,
206
+ seat_id: d["seat_id"] ?? null,
207
+ connected_at: d["connected_at"] ?? null,
208
+ last_checked_at: d["last_checked_at"] ?? null,
209
+ quotas: d["quotas"] ?? []
210
+ };
211
+ }
182
212
  function slimCompany(data) {
183
213
  const d = data !== null && data !== void 0 && typeof data === "object" ? data : {};
184
214
  const rawMessaging = d["messaging"] !== null && d["messaging"] !== void 0 && typeof d["messaging"] === "object" ? d["messaging"] : null;
@@ -218,5 +248,8 @@ export {
218
248
  slimSearchJobs,
219
249
  slimSearchPostsItem,
220
250
  slimSearchPosts,
251
+ slimAccountListItem,
252
+ slimAccountList,
253
+ slimAccountGet,
221
254
  slimCompany
222
255
  };
package/dist/cli.js CHANGED
@@ -143,14 +143,14 @@ var main = defineCommand({
143
143
  // ---------------------------------------------------------------------------
144
144
  // Noun groups — lazy-loaded on first invocation.
145
145
  // ---------------------------------------------------------------------------
146
- profile: () => import("./profile-GGUBDI3P.js").then((m) => m.profileCommand),
147
- company: () => import("./company-HPHLJCKB.js").then((m) => m.companyCommand),
148
- connect: () => import("./connect-EUJBSLNM.js").then((m) => m.connectCommand),
149
- search: () => import("./search-RZYVGGMN.js").then((m) => m.searchCommand),
146
+ profile: () => import("./profile-5EPEZGUD.js").then((m) => m.profileCommand),
147
+ company: () => import("./company-WMO42NXD.js").then((m) => m.companyCommand),
148
+ connect: () => import("./connect-35ZPFUSM.js").then((m) => m.connectCommand),
149
+ search: () => import("./search-BRFUS2JW.js").then((m) => m.searchCommand),
150
150
  inbox: () => import("./inbox-YV6GPRG6.js").then((m) => m.inboxCommand),
151
151
  message: () => import("./message-YRMLMHK7.js").then((m) => m.messageCommand),
152
152
  post: () => import("./post-KBSR3ADF.js").then((m) => m.postCommand),
153
- account: () => import("./account-O5GZNE72.js").then((m) => m.accountCommand),
153
+ account: () => import("./account-JCNH2HOR.js").then((m) => m.accountCommand),
154
154
  webhook: () => import("./webhook-F6CRIISR.js").then((m) => m.webhookCommand),
155
155
  "sales-nav": () => import("./sales-nav-4DYBMHKN.js").then((m) => m.salesNavCommand),
156
156
  recruiter: () => import("./recruiter-B5UIHTIN.js").then((m) => m.recruiterCommand)
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-SZB3CFRZ.js";
5
5
  import {
6
6
  slimCompany
7
- } from "./chunk-J5KGG2EE.js";
7
+ } from "./chunk-P4UYBDCB.js";
8
8
  import {
9
9
  createClient,
10
10
  renderError,
@@ -13,7 +13,7 @@ import {
13
13
  slimInviteReceivedItem,
14
14
  slimInviteSent,
15
15
  slimInviteSentItem
16
- } from "./chunk-J5KGG2EE.js";
16
+ } from "./chunk-P4UYBDCB.js";
17
17
  import {
18
18
  createClient,
19
19
  renderError,
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  slimProfile,
13
13
  slimProfileMe
14
- } from "./chunk-J5KGG2EE.js";
14
+ } from "./chunk-P4UYBDCB.js";
15
15
  import {
16
16
  createClient,
17
17
  renderError,
@@ -17,7 +17,7 @@ import {
17
17
  slimSearchPeopleItem,
18
18
  slimSearchPosts,
19
19
  slimSearchPostsItem
20
- } from "./chunk-J5KGG2EE.js";
20
+ } from "./chunk-P4UYBDCB.js";
21
21
  import {
22
22
  createClient,
23
23
  renderError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curviate/cli",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "private": false,
5
5
  "description": "Official command-line interface for the Curviate API.",
6
6
  "license": "MIT",
@@ -40,7 +40,7 @@
40
40
  "clean": "rm -rf dist *.tsbuildinfo"
41
41
  },
42
42
  "dependencies": {
43
- "@curviate/sdk": "^0.8.0",
43
+ "@curviate/sdk": "^0.9.0",
44
44
  "citty": "^0.1.6"
45
45
  },
46
46
  "devDependencies": {