@curviate/cli 0.23.1 → 0.23.3

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
@@ -6,6 +6,47 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
  Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html):
7
7
  a new command or flag is a minor; a breaking command/flag/exit-code change is a major; a fix is a patch.
8
8
 
9
+ ## [Unreleased]
10
+
11
+ ## [0.23.3] - 2026-08-17
12
+
13
+ ### Changed
14
+
15
+ - **`@curviate/sdk` dependency floor raised to `^0.22.0`** (was `^0.21.0`).
16
+ A caret range on a `0.x` version is locked to that minor, so without this
17
+ bump the CLI would have stayed on the previous SDK types. The new SDK minor
18
+ is a regeneration against the production API document: the Recruiter and
19
+ Sales Navigator profile section arrays now declare their item shapes, and
20
+ every paginated endpoint's 400 description names a malformed cursor. No CLI
21
+ behavior changes; typecheck, lint, and the full test suite are unaffected.
22
+
23
+ ## [0.23.2] - 2026-08-13
24
+
25
+ ### Changed
26
+
27
+ - **`@curviate/sdk` dependency floor raised to `^0.21.0`** (was `^0.20.1`).
28
+ The new SDK minor carries two changes that are breaking for a typed
29
+ consumer of the SDK directly (`total_count` and a search result's
30
+ `profile_url` are now nullable; profile section arrays gained a described
31
+ shape), but this CLI does not read any of those fields directly, so no CLI
32
+ behavior changes. Typecheck, lint, and the full test suite are unaffected.
33
+
34
+ ### Fixed
35
+
36
+ - **`profile` reported every past role as the person's current job, with no
37
+ job title and a malformed company name.** The `current_position` projection
38
+ read three field names that do not exist on the wire: `position` for the
39
+ title, `company` as if it were a name string, and `end` for the end date.
40
+ The visible result was `title: null` on every profile, a company object
41
+ emitted into `company_name` where the field is documented as a string, and
42
+ `is_current: true` for roles that ended years ago. It now reads `job_title`,
43
+ `company.name`, and `ended_on`. A role is current when `ended_on` is absent,
44
+ which is the only signal the platform provides. `company_id` is also
45
+ populated now, from `company.id`, instead of always being null.
46
+
47
+ If you consumed `current_position.is_current`, treat every previous reading
48
+ of `true` as unverified: it was returned unconditionally.
49
+
9
50
  ## [0.23.1] - 2026-08-10
10
51
 
11
52
  ### Fixed
@@ -6,7 +6,7 @@ import {
6
6
  slimAccountGet,
7
7
  slimAccountList,
8
8
  slimAccountListItem
9
- } from "./chunk-RFUO2G3M.js";
9
+ } from "./chunk-VAUKRTRG.js";
10
10
  import {
11
11
  pageDelayFromFlags,
12
12
  streamAll
@@ -6,11 +6,12 @@ function synthesizeCurrentPosition(workExperience) {
6
6
  return null;
7
7
  }
8
8
  const entry = workExperience[0];
9
+ const company = entry["company"] !== null && typeof entry["company"] === "object" ? entry["company"] : null;
9
10
  return {
10
- title: entry["position"] ?? null,
11
- company_name: entry["company"] ?? null,
12
- company_id: null,
13
- is_current: entry["end"] == null
11
+ title: entry["job_title"] ?? null,
12
+ company_name: company?.["name"] ?? null,
13
+ company_id: company?.["id"] ?? null,
14
+ is_current: entry["ended_on"] == null
14
15
  };
15
16
  }
16
17
  function synthesizeHeadquarters(locations) {
package/dist/cli.js CHANGED
@@ -338,20 +338,20 @@ var main = defineCommand({
338
338
  // ---------------------------------------------------------------------------
339
339
  // Noun groups, lazy-loaded on first invocation.
340
340
  // ---------------------------------------------------------------------------
341
- profile: () => import("./profile-LQXOC7HY.js").then((m) => m.profileCommand),
342
- company: () => import("./company-GZ2QR2CZ.js").then((m) => m.companyCommand),
343
- job: () => import("./job-U5YIJ7KB.js").then((m) => m.jobCommand),
344
- connect: () => import("./connect-3LTKVRGM.js").then((m) => m.connectCommand),
345
- search: () => import("./search-FEHXVTQ3.js").then((m) => m.searchCommand),
341
+ profile: () => import("./profile-HPZII6A5.js").then((m) => m.profileCommand),
342
+ company: () => import("./company-3UB4P77N.js").then((m) => m.companyCommand),
343
+ job: () => import("./job-URLZ4GU7.js").then((m) => m.jobCommand),
344
+ connect: () => import("./connect-DFZEYMLV.js").then((m) => m.connectCommand),
345
+ search: () => import("./search-52CISWQV.js").then((m) => m.searchCommand),
346
346
  inbox: () => import("./inbox-E6ME3ROZ.js").then((m) => m.inboxCommand),
347
347
  inboxes: () => import("./inboxes-JRX3J32A.js").then((m) => m.inboxesCommand),
348
348
  message: () => import("./message-NPX7UX46.js").then((m) => m.messageCommand),
349
349
  post: () => import("./post-OSM7JH65.js").then((m) => m.postCommand),
350
350
  comment: () => import("./comment-SXYTJPXI.js").then((m) => m.commentCommand),
351
- account: () => import("./account-NZZLUI4E.js").then((m) => m.accountCommand),
351
+ account: () => import("./account-JBSYX6D2.js").then((m) => m.accountCommand),
352
352
  webhook: () => import("./webhook-C43C5BK7.js").then((m) => m.webhookCommand),
353
353
  "sales-nav": () => import("./sales-nav-LSUBIJWZ.js").then((m) => m.salesNavCommand),
354
- recruiter: () => import("./recruiter-ZUTWJHO5.js").then((m) => m.recruiterCommand),
354
+ recruiter: () => import("./recruiter-VAZV2JJJ.js").then((m) => m.recruiterCommand),
355
355
  group: () => import("./group-DBE25EID.js").then((m) => m.groupCommand),
356
356
  feed: () => import("./feed-ZY27EY52.js").then((m) => m.feedCommand),
357
357
  notification: () => import("./notification-XSSA5QOJ.js").then((m) => m.notificationCommand)
@@ -16,7 +16,7 @@ import {
16
16
  slimSearchJobs,
17
17
  slimSearchPeople,
18
18
  slimSearchPosts
19
- } from "./chunk-RFUO2G3M.js";
19
+ } from "./chunk-VAUKRTRG.js";
20
20
  import {
21
21
  pageDelayFromFlags,
22
22
  streamAll
@@ -7,7 +7,7 @@ import {
7
7
  slimInviteReceivedItem,
8
8
  slimInviteSent,
9
9
  slimInviteSentItem
10
- } from "./chunk-RFUO2G3M.js";
10
+ } from "./chunk-VAUKRTRG.js";
11
11
  import {
12
12
  pageDelayFromFlags,
13
13
  streamAll
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  slimJob
4
- } from "./chunk-RFUO2G3M.js";
4
+ } from "./chunk-VAUKRTRG.js";
5
5
  import {
6
6
  DEFAULT_PAGE_DELAY_MS,
7
7
  ndjsonModeNotice,
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  slimProfile,
13
13
  slimProfileMe
14
- } from "./chunk-RFUO2G3M.js";
14
+ } from "./chunk-VAUKRTRG.js";
15
15
  import {
16
16
  pageDelayFromFlags,
17
17
  streamAll
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-BGZW6B7G.js";
12
12
  import {
13
13
  slimJob
14
- } from "./chunk-RFUO2G3M.js";
14
+ } from "./chunk-VAUKRTRG.js";
15
15
  import {
16
16
  pageDelayFromFlags,
17
17
  streamAll
@@ -14,7 +14,7 @@ import {
14
14
  slimSearchPeopleItem,
15
15
  slimSearchPosts,
16
16
  slimSearchPostsItem
17
- } from "./chunk-RFUO2G3M.js";
17
+ } from "./chunk-VAUKRTRG.js";
18
18
  import {
19
19
  pageDelayFromFlags,
20
20
  streamAll
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curviate/cli",
3
- "version": "0.23.1",
3
+ "version": "0.23.3",
4
4
  "private": false,
5
5
  "description": "Official command-line interface for the Curviate API.",
6
6
  "license": "MIT",
@@ -42,7 +42,7 @@
42
42
  "clean": "rm -rf dist *.tsbuildinfo"
43
43
  },
44
44
  "dependencies": {
45
- "@curviate/sdk": "^0.20.1",
45
+ "@curviate/sdk": "^0.22.0",
46
46
  "citty": "^0.1.6",
47
47
  "open": "^10.1.0"
48
48
  },