@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 +12 -0
- package/dist/{account-O5GZNE72.js → account-JCNH2HOR.js} +15 -6
- package/dist/{chunk-J5KGG2EE.js → chunk-P4UYBDCB.js} +33 -0
- package/dist/cli.js +5 -5
- package/dist/{company-HPHLJCKB.js → company-WMO42NXD.js} +1 -1
- package/dist/{connect-EUJBSLNM.js → connect-35ZPFUSM.js} +1 -1
- package/dist/{profile-GGUBDI3P.js → profile-5EPEZGUD.js} +1 -1
- package/dist/{search-RZYVGGMN.js → search-BRFUS2JW.js} +1 -1
- package/package.json +2 -2
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
|
-
|
|
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
|
-
|
|
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-
|
|
147
|
-
company: () => import("./company-
|
|
148
|
-
connect: () => import("./connect-
|
|
149
|
-
search: () => import("./search-
|
|
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-
|
|
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)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@curviate/cli",
|
|
3
|
-
"version": "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.
|
|
43
|
+
"@curviate/sdk": "^0.9.0",
|
|
44
44
|
"citty": "^0.1.6"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|