@curviate/cli 0.23.3 → 0.24.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,43 @@ 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.24.0] - 2026-08-18
12
+
13
+ ### Changed
14
+
15
+ - **Corrected flag-to-body-field drift across `search`, `sales-nav`, and
16
+ `recruiter`.** Named filter flags were hand-mapped to request-body field
17
+ names with no compiler coupling, so several server-side field
18
+ renames/removals left flags pointing at fields the body schema now rejects
19
+ with a 400. Every one of these previously produced a 400, so nothing that
20
+ worked is being taken away:
21
+ - `search people`: `--company` -> `current_company` (was: `company`)
22
+ - `search companies`: `--has-job-offers` -> `has_job_postings` (was:
23
+ `has_job_offers`); `--network-distance` **removed** (field no longer
24
+ accepted on this endpoint)
25
+ - `search companies --filters` help text corrected: the request body is
26
+ `.strict()` and rejects unknown fields with a 400, it does not
27
+ validate-and-strip them
28
+ - `sales-nav search people`: `--groups` -> `group` (was: `groups`, plural)
29
+ - `sales-nav search companies`: `--technologies` / `--recent-activities` /
30
+ `--network-distance` **removed** (none is an accepted field on this
31
+ endpoint)
32
+ - `recruiter search people`: `--function` -> `job_function` (was:
33
+ `function`); `--locale` **removed** (no accepted field exists for it)
34
+ - Adds a guard test that checks every command's real body output against
35
+ the accepted request-body properties in the SDK's OpenAPI fixture, so a
36
+ future rename/removal reds a test instead of shipping silently.
37
+ - **`@curviate/sdk` dependency floor raised to `^0.23.0`** (was `^0.22.0`),
38
+ matching the SDK regeneration the fixes above were verified against.
39
+
40
+ ### Removed
41
+
42
+ - `--locale` (recruiter search people), `--technologies` and
43
+ `--recent-activities` (sales-nav search companies). All three previously
44
+ produced a 400 on every call; a script passing them now fails at argument
45
+ parsing instead. Breaking to the command surface even though the flags
46
+ were non-functional, hence a minor bump rather than a patch.
47
+
11
48
  ## [0.23.3] - 2026-08-17
12
49
 
13
50
  ### Changed
package/dist/cli.js CHANGED
@@ -342,7 +342,7 @@ var main = defineCommand({
342
342
  company: () => import("./company-3UB4P77N.js").then((m) => m.companyCommand),
343
343
  job: () => import("./job-URLZ4GU7.js").then((m) => m.jobCommand),
344
344
  connect: () => import("./connect-DFZEYMLV.js").then((m) => m.connectCommand),
345
- search: () => import("./search-52CISWQV.js").then((m) => m.searchCommand),
345
+ search: () => import("./search-GBMRH4LG.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),
@@ -350,8 +350,8 @@ var main = defineCommand({
350
350
  comment: () => import("./comment-SXYTJPXI.js").then((m) => m.commentCommand),
351
351
  account: () => import("./account-JBSYX6D2.js").then((m) => m.accountCommand),
352
352
  webhook: () => import("./webhook-C43C5BK7.js").then((m) => m.webhookCommand),
353
- "sales-nav": () => import("./sales-nav-LSUBIJWZ.js").then((m) => m.salesNavCommand),
354
- recruiter: () => import("./recruiter-VAZV2JJJ.js").then((m) => m.recruiterCommand),
353
+ "sales-nav": () => import("./sales-nav-7EE4UGNF.js").then((m) => m.salesNavCommand),
354
+ recruiter: () => import("./recruiter-UKBLQ2PE.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)
@@ -280,9 +280,8 @@ async function runRecruiterSearchPeople(client, flags, out, readers = DEFAULT_FI
280
280
  }
281
281
  const body = assembled.body;
282
282
  if (flags.keywords) body["keywords"] = flags.keywords;
283
- if (flags.locale) body["locale"] = flags.locale;
284
283
  if (flags["employment-type"]) body["employment_type"] = splitCsv(flags["employment-type"]);
285
- if (flags.function) body["function"] = splitCsv(flags.function);
284
+ if (flags.function) body["job_function"] = splitCsv(flags.function);
286
285
  if (flags["profile-language"]) body["profile_language"] = splitCsv(flags["profile-language"]);
287
286
  const params = {};
288
287
  if (limit !== void 0) params["limit"] = limit;
@@ -963,9 +962,8 @@ var recruiterSearchPeopleCommand = defineCommand({
963
962
  keywords: { type: "string", description: "Keyword search string." },
964
963
  filters: { type: "string", stdinArg: true, description: "Filter body as a JSON object (escape hatch for the full filter surface); '-' reads JSON from stdin." },
965
964
  "filters-file": { type: "string", description: "Path to a JSON file with the filter body." },
966
- locale: { type: "string", description: "Result locale, e.g. en." },
967
965
  "employment-type": { type: "string", description: "Employment type ids (comma-separated)." },
968
- function: { type: "string", description: "Job function ids (comma-separated)." },
966
+ function: { type: "string", description: "Job function ids (comma-separated); maps to the API's job_function." },
969
967
  "profile-language": { type: "string", description: "Profile language codes (comma-separated)." }
970
968
  },
971
969
  async run({ args }) {
@@ -2,8 +2,7 @@
2
2
  import {
3
3
  DEFAULT_FILTER_READERS,
4
4
  assembleFilters,
5
- splitCsv,
6
- splitCsvNumbers
5
+ splitCsv
7
6
  } from "./chunk-LCIUD7S2.js";
8
7
  import {
9
8
  AttachError,
@@ -92,7 +91,7 @@ async function runSalesNavSearchPeople(client, flags, out, readers = DEFAULT_FIL
92
91
  if (flags.keywords) body["keywords"] = flags.keywords;
93
92
  if (flags["first-name"]) body["first_name"] = flags["first-name"];
94
93
  if (flags["last-name"]) body["last_name"] = flags["last-name"];
95
- if (flags.groups) body["groups"] = splitCsv(flags.groups);
94
+ if (flags.groups) body["group"] = splitCsv(flags.groups);
96
95
  if (flags["profile-language"]) body["profile_language"] = splitCsv(flags["profile-language"]);
97
96
  const params = {};
98
97
  if (limit !== void 0) params["limit"] = limit;
@@ -140,9 +139,6 @@ async function runSalesNavSearchCompanies(client, flags, out, readers = DEFAULT_
140
139
  }
141
140
  const body = assembled.body;
142
141
  if (flags.keywords) body["keywords"] = flags.keywords;
143
- if (flags.technologies) body["technologies"] = splitCsv(flags.technologies);
144
- if (flags["recent-activities"]) body["recent_activities"] = splitCsv(flags["recent-activities"]);
145
- if (flags["network-distance"]) body["network_distance"] = splitCsvNumbers(flags["network-distance"]);
146
142
  const params = {};
147
143
  if (limit !== void 0) params["limit"] = limit;
148
144
  if (cursor) params["cursor"] = cursor;
@@ -559,10 +555,7 @@ var salesNavSearchCompaniesCommand = defineCommand({
559
555
  ...GLOBAL_FLAGS,
560
556
  keywords: { type: "string", description: "Keyword search string." },
561
557
  filters: { type: "string", stdinArg: true, description: "Filter body as a JSON object (escape hatch for the full filter surface); '-' reads JSON from stdin." },
562
- "filters-file": { type: "string", description: "Path to a JSON file with the filter body." },
563
- technologies: { type: "string", description: "Technology tags (comma-separated)." },
564
- "recent-activities": { type: "string", description: "Recent activity ids (comma-separated)." },
565
- "network-distance": { type: "string", description: "Network distance, 1-3 (comma-separated)." }
558
+ "filters-file": { type: "string", description: "Path to a JSON file with the filter body." }
566
559
  },
567
560
  async run({ args }) {
568
561
  const flags = args;
@@ -51,7 +51,7 @@ var FILTER_FLAGS = {
51
51
  filters: {
52
52
  type: "string",
53
53
  stdinArg: true,
54
- description: "Filter body as a JSON object (named flags win on conflict; server validates and strips unknown fields); '-' reads JSON from stdin."
54
+ description: "Filter body as a JSON object (named flags win on conflict; the server body schema is strict and rejects unknown fields with a 400); '-' reads JSON from stdin."
55
55
  },
56
56
  "filters-file": {
57
57
  type: "string",
@@ -97,7 +97,7 @@ var NAMED_FLAG_MAPPERS = {
97
97
  people(body, flags) {
98
98
  if (flags.industry) body["industry"] = splitCsv(flags.industry);
99
99
  if (flags.location) body["location"] = splitCsv(flags.location);
100
- if (flags.company) body["company"] = splitCsv(flags.company);
100
+ if (flags.company) body["current_company"] = splitCsv(flags.company);
101
101
  if (flags["past-company"]) body["past_company"] = splitCsv(flags["past-company"]);
102
102
  if (flags.school) body["school"] = splitCsv(flags.school);
103
103
  if (flags["network-distance"]) body["network_distance"] = splitCsvNumbers(flags["network-distance"]);
@@ -112,8 +112,7 @@ var NAMED_FLAG_MAPPERS = {
112
112
  companies(body, flags) {
113
113
  if (flags.industry) body["industry"] = splitCsv(flags.industry);
114
114
  if (flags.location) body["location"] = splitCsv(flags.location);
115
- if (flags["network-distance"]) body["network_distance"] = splitCsvNumbers(flags["network-distance"]);
116
- if (flags["has-job-offers"]) body["has_job_offers"] = true;
115
+ if (flags["has-job-offers"]) body["has_job_postings"] = true;
117
116
  if (flags.headcount) {
118
117
  const buckets = splitCsv(flags.headcount);
119
118
  const mapped = [];
@@ -573,7 +572,6 @@ var searchCompaniesCommand = defineCommand({
573
572
  ...FILTER_FLAGS,
574
573
  industry: { type: "string", description: "Industry ids (comma-separated)." },
575
574
  location: { type: "string", description: "Location ids (comma-separated)." },
576
- "network-distance": { type: "string", description: "Network distance, 1-3 (comma-separated)." },
577
575
  "has-job-offers": { type: "boolean", description: "only companies with active job listings" },
578
576
  headcount: {
579
577
  type: "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curviate/cli",
3
- "version": "0.23.3",
3
+ "version": "0.24.0",
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.22.0",
45
+ "@curviate/sdk": "^0.23.0",
46
46
  "citty": "^0.1.6",
47
47
  "open": "^10.1.0"
48
48
  },