@curviate/cli 0.18.1 → 0.20.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 (26) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/dist/{account-EGJJNBXW.js → account-2SOSCEB6.js} +26 -26
  3. package/dist/{chunk-TMU3CSPR.js → chunk-DW2HCRXJ.js} +1 -1
  4. package/dist/{chunk-M33MI53G.js → chunk-HDQUEFD2.js} +1 -1
  5. package/dist/chunk-HOQ7EUHJ.js +50 -0
  6. package/dist/{chunk-KVV6LZ7E.js → chunk-IGCQNDIG.js} +53 -17
  7. package/dist/cli.js +33 -33
  8. package/dist/{comment-VT6PO4MN.js → comment-AXDINBPS.js} +3 -3
  9. package/dist/{company-BVXX4FGX.js → company-BX4VDXZX.js} +398 -16
  10. package/dist/{config-P5CPF5WC.js → config-3O4N2XSH.js} +2 -2
  11. package/dist/{connect-6PU7QCOL.js → connect-KWOJKCIB.js} +36 -15
  12. package/dist/feed-4ROKUBG5.js +127 -0
  13. package/dist/group-L7TQEEFN.js +236 -0
  14. package/dist/{inbox-DRJ6ENXC.js → inbox-GMGZVDTQ.js} +69 -11
  15. package/dist/{inboxes-MTPWLP5F.js → inboxes-YVYLSM5W.js} +4 -4
  16. package/dist/{job-EIXBJXLW.js → job-TYBA2DUQ.js} +7 -7
  17. package/dist/{login-GDLWR542.js → login-W7NCDZOQ.js} +2 -2
  18. package/dist/{message-UWMRE2SJ.js → message-C6FV6JH6.js} +6 -3
  19. package/dist/notification-45XFT3S4.js +219 -0
  20. package/dist/{post-N3GQDIQJ.js → post-RETV3WUG.js} +102 -9
  21. package/dist/{profile-XWSRUYRW.js → profile-A2TWF4HB.js} +121 -15
  22. package/dist/{recruiter-MVPSTH2V.js → recruiter-FQAKY6Z2.js} +30 -30
  23. package/dist/{sales-nav-TMXWDKSE.js → sales-nav-SSJIZUNB.js} +16 -16
  24. package/dist/{search-ZQUKLQ6T.js → search-DH6BJFQC.js} +213 -12
  25. package/dist/{webhook-QFSZN3P2.js → webhook-LED6AKF3.js} +50 -19
  26. package/package.json +4 -4
@@ -28,11 +28,12 @@ import {
28
28
  renderSuccess,
29
29
  renderUnexpectedError,
30
30
  resolveEffectiveConfig
31
- } from "./chunk-M33MI53G.js";
31
+ } from "./chunk-HDQUEFD2.js";
32
32
  import {
33
33
  GLOBAL_FLAGS,
34
+ READ_SINGLE_FLAGS,
34
35
  WRITE_SINGLE_FLAGS
35
- } from "./chunk-TMU3CSPR.js";
36
+ } from "./chunk-DW2HCRXJ.js";
36
37
 
37
38
  // src/commands/profile.ts
38
39
  import { defineCommand } from "citty";
@@ -425,6 +426,75 @@ async function handleSdkError(err, outOpts, out) {
425
426
  renderUnexpectedError(err, out);
426
427
  process.exit(1);
427
428
  }
429
+ async function runProfileSubscription(client, flags, out) {
430
+ rejectPreviewOnRead(flags.preview, out);
431
+ rejectAllOnNonPaginated(flags.all, out);
432
+ const accountId = requireAccount(flags.account, out);
433
+ const ns = client.account(accountId);
434
+ const outOpts = resolveOutputOpts(flags);
435
+ try {
436
+ const result = await ns.profile.subscription();
437
+ renderSuccess(result, outOpts, out);
438
+ } catch (err) {
439
+ await handleSdkError(err, outOpts, out);
440
+ }
441
+ }
442
+ async function runProfileAnalytics(client, flags, out) {
443
+ rejectPreviewOnRead(flags.preview, out);
444
+ rejectAllOnNonPaginated(flags.all, out);
445
+ const accountId = requireAccount(flags.account, out);
446
+ const ns = client.account(accountId);
447
+ const outOpts = resolveOutputOpts(flags);
448
+ try {
449
+ const result = await ns.profile.analytics();
450
+ renderSuccess(result, outOpts, out);
451
+ } catch (err) {
452
+ await handleSdkError(err, outOpts, out);
453
+ }
454
+ }
455
+ async function runProfileVisitors(client, flags, out) {
456
+ rejectPreviewOnRead(flags.preview, out);
457
+ const accountId = requireAccount(flags.account, out);
458
+ const ns = client.account(accountId);
459
+ const outOpts = resolveOutputOpts(flags);
460
+ const all = flags.all ?? false;
461
+ const maxPages = flags["max-pages"] ? parseInt(flags["max-pages"], 10) : 100;
462
+ const limit = flags.limit ? parseInt(flags.limit, 10) : void 0;
463
+ const cursor = flags.cursor;
464
+ const params = {};
465
+ if (limit !== void 0) params.limit = limit;
466
+ if (cursor) params.cursor = cursor;
467
+ try {
468
+ if (all) {
469
+ const fn = (p) => ns.profile.visitors(p);
470
+ for await (const item of streamAll(fn, params, {
471
+ maxPages,
472
+ out,
473
+ pageDelayMs: pageDelayFromFlags(flags)
474
+ })) {
475
+ out.stdout.write(JSON.stringify(item) + "\n");
476
+ }
477
+ } else {
478
+ const result = await ns.profile.visitors(params);
479
+ renderSuccess(result, outOpts, out);
480
+ }
481
+ } catch (err) {
482
+ await handleSdkError(err, outOpts, out);
483
+ }
484
+ }
485
+ async function runProfileSsi(client, flags, out) {
486
+ rejectPreviewOnRead(flags.preview, out);
487
+ rejectAllOnNonPaginated(flags.all, out);
488
+ const accountId = requireAccount(flags.account, out);
489
+ const ns = client.account(accountId);
490
+ const outOpts = resolveOutputOpts(flags);
491
+ try {
492
+ const result = await ns.profile.ssi();
493
+ renderSuccess(result, outOpts, out);
494
+ } catch (err) {
495
+ await handleSdkError(err, outOpts, out);
496
+ }
497
+ }
428
498
  async function runProfileUpdate(client, flags, out) {
429
499
  const accountId = requireAccount(flags.account, out);
430
500
  const body = {};
@@ -453,7 +523,7 @@ async function runProfileUpdate(client, flags, out) {
453
523
  throw err;
454
524
  }
455
525
  if (Object.keys(body).length === 0) {
456
- out.stderr.write("error: nothing to update \u2014 pass at least one of --first-name, --last-name, --headline, --bio, --skills, --picture, --background-picture.\n");
526
+ out.stderr.write("error: nothing to update. Pass at least one of --first-name, --last-name, --headline, --bio, --skills, --picture, --background-picture.\n");
457
527
  process.exit(2);
458
528
  }
459
529
  if (flags.preview) {
@@ -583,7 +653,7 @@ var profileMeCommand = defineCommand({
583
653
  ...GLOBAL_FLAGS,
584
654
  sections: {
585
655
  type: "string",
586
- description: "Comma-separated LinkedIn sections to fetch \u2014 linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills. Only applies to the base getMe call (no activity flag)."
656
+ description: "Comma-separated LinkedIn sections to fetch: linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills. Only applies to the base getMe call (no activity flag)."
587
657
  },
588
658
  posts: {
589
659
  type: "boolean",
@@ -616,7 +686,7 @@ var profileMeCommand = defineCommand({
616
686
  profile: flags.profile
617
687
  });
618
688
  if (!cfg.apiKey) {
619
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
689
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
620
690
  process.exit(3);
621
691
  }
622
692
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -637,7 +707,7 @@ var profileRelationsCommand = defineCommand({
637
707
  profile: flags.profile
638
708
  });
639
709
  if (!cfg.apiKey) {
640
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
710
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
641
711
  process.exit(3);
642
712
  }
643
713
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -652,7 +722,7 @@ var profileEndorseCommand = defineCommand({
652
722
  id: { type: "positional", description: "Member identifier (URL, slug, or provider id). A URL/slug is resolved to the provider id automatically (a slug is not accepted directly by the endorse endpoint)." },
653
723
  "endorsement-id": {
654
724
  type: "string",
655
- description: "Endorsement ID to endorse \u2014 get it from the target's skills section via `profile <id> --sections linkedin_skills`.",
725
+ description: "Endorsement ID to endorse. Get it from the target's skills section via `profile <id> --sections linkedin_skills`.",
656
726
  required: true
657
727
  }
658
728
  },
@@ -666,7 +736,7 @@ var profileEndorseCommand = defineCommand({
666
736
  profile: args.profile
667
737
  });
668
738
  if (!cfg.apiKey) {
669
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
739
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
670
740
  process.exit(3);
671
741
  }
672
742
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -683,7 +753,7 @@ async function withClient(flags, fn) {
683
753
  profile: flags.profile
684
754
  });
685
755
  if (!cfg.apiKey) {
686
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
756
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
687
757
  process.exit(3);
688
758
  }
689
759
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -699,8 +769,8 @@ var profileUpdateCommand = defineCommand({
699
769
  "first-name": { type: "string", description: "New first name." },
700
770
  "last-name": { type: "string", description: "New last name." },
701
771
  skills: { type: "string", description: "Comma-separated skill names to add (add-only)." },
702
- picture: { type: "string", description: "New profile photo \u2014 path to an image file." },
703
- "background-picture": { type: "string", description: "New cover/banner photo \u2014 path to an image file." }
772
+ picture: { type: "string", description: "New profile photo: path to an image file." },
773
+ "background-picture": { type: "string", description: "New cover/banner photo: path to an image file." }
704
774
  },
705
775
  async run({ args }) {
706
776
  await withClient(args, runProfileUpdate);
@@ -746,6 +816,34 @@ var profileFollowingCommand = defineCommand({
746
816
  await withClient(args, runProfileFollowing);
747
817
  }
748
818
  });
819
+ var profileSubscriptionCommand = defineCommand({
820
+ meta: { name: "subscription", description: "Read your premium subscription: entitlements, primary plan, and LinkedIn management links. A free account is a valid result (has_premium:false)." },
821
+ args: { ...READ_SINGLE_FLAGS },
822
+ async run({ args }) {
823
+ await withClient(args, runProfileSubscription);
824
+ }
825
+ });
826
+ var profileAnalyticsCommand = defineCommand({
827
+ meta: { name: "analytics", description: "Read your performance headline metrics: profile viewers, followers, post impressions, and search appearances (fixed LinkedIn reporting windows, no window selector)." },
828
+ args: { ...READ_SINGLE_FLAGS },
829
+ async run({ args }) {
830
+ await withClient(args, runProfileAnalytics);
831
+ }
832
+ });
833
+ var profileVisitorsCommand = defineCommand({
834
+ meta: { name: "visitors", description: "List people who recently viewed your profile, classified by disclosure fidelity (identified, semi-anonymous, or aggregate; Premium sees more identified viewers)." },
835
+ args: { ...GLOBAL_FLAGS },
836
+ async run({ args }) {
837
+ await withClient(args, runProfileVisitors);
838
+ }
839
+ });
840
+ var profileSsiCommand = defineCommand({
841
+ meta: { name: "ssi", description: "Read your Social Selling Index: the overall score, its four pillar breakdowns, and industry/network percentile ranks." },
842
+ args: { ...READ_SINGLE_FLAGS },
843
+ async run({ args }) {
844
+ await withClient(args, runProfileSsi);
845
+ }
846
+ });
749
847
  var profileCommand = defineCommand({
750
848
  meta: { name: "profile", description: "LinkedIn profile operations." },
751
849
  args: {
@@ -758,7 +856,7 @@ var profileCommand = defineCommand({
758
856
  "is-company": { type: "boolean", description: "When listing posts, treat the profile as a company page.", default: false },
759
857
  sections: {
760
858
  type: "string",
761
- description: "Comma-separated LinkedIn sections to fetch \u2014 linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills."
859
+ description: "Comma-separated LinkedIn sections to fetch: linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills."
762
860
  }
763
861
  },
764
862
  subCommands: {
@@ -769,7 +867,11 @@ var profileCommand = defineCommand({
769
867
  follow: profileFollowCommand,
770
868
  unfollow: profileUnfollowCommand,
771
869
  followers: profileFollowersCommand,
772
- following: profileFollowingCommand
870
+ following: profileFollowingCommand,
871
+ subscription: profileSubscriptionCommand,
872
+ analytics: profileAnalyticsCommand,
873
+ visitors: profileVisitorsCommand,
874
+ ssi: profileSsiCommand
773
875
  },
774
876
  async run({ args }) {
775
877
  const flags = args;
@@ -787,7 +889,7 @@ var profileCommand = defineCommand({
787
889
  profile: flags.profile
788
890
  });
789
891
  if (!cfg.apiKey) {
790
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
892
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
791
893
  process.exit(3);
792
894
  }
793
895
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -797,6 +899,7 @@ var profileCommand = defineCommand({
797
899
  });
798
900
  export {
799
901
  profileCommand,
902
+ runProfileAnalytics,
800
903
  runProfileEndorse,
801
904
  runProfileFollow,
802
905
  runProfileFollowers,
@@ -804,6 +907,9 @@ export {
804
907
  runProfileGet,
805
908
  runProfileMe,
806
909
  runProfileRelations,
910
+ runProfileSsi,
911
+ runProfileSubscription,
807
912
  runProfileUnfollow,
808
- runProfileUpdate
913
+ runProfileUpdate,
914
+ runProfileVisitors
809
915
  };
@@ -33,13 +33,13 @@ import {
33
33
  renderSuccess,
34
34
  renderUnexpectedError,
35
35
  resolveEffectiveConfig
36
- } from "./chunk-M33MI53G.js";
36
+ } from "./chunk-HDQUEFD2.js";
37
37
  import {
38
38
  GLOBAL_FLAGS,
39
39
  READ_SINGLE_FLAGS,
40
40
  WRITE_FLAGS,
41
41
  WRITE_SINGLE_FLAGS
42
- } from "./chunk-TMU3CSPR.js";
42
+ } from "./chunk-DW2HCRXJ.js";
43
43
 
44
44
  // src/commands/recruiter.ts
45
45
  import { defineCommand } from "citty";
@@ -894,7 +894,7 @@ var recruiterMessageNewCommand = defineCommand({
894
894
  ...WRITE_FLAGS,
895
895
  to: {
896
896
  type: "string",
897
- description: "Recipient's LinkedIn provider ID (AE\u2026 format, e.g. from a Recruiter search result or profile). Not resolved from a URL/slug \u2014 pass the provider ID directly.",
897
+ description: "Recipient's LinkedIn provider ID (AE\u2026 format, e.g. from a Recruiter search result or profile). Not resolved from a URL/slug. Pass the provider ID directly.",
898
898
  required: true
899
899
  },
900
900
  subject: { type: "string", description: "Message subject line (required for Recruiter InMail).", required: true },
@@ -914,7 +914,7 @@ var recruiterMessageNewCommand = defineCommand({
914
914
  profile: flags.profile
915
915
  });
916
916
  if (!cfg.apiKey) {
917
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
917
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
918
918
  process.exit(3);
919
919
  }
920
920
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -949,7 +949,7 @@ var recruiterProfileCommand = defineCommand({
949
949
  profile: flags.profile
950
950
  });
951
951
  if (!cfg.apiKey) {
952
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
952
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
953
953
  process.exit(3);
954
954
  }
955
955
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -979,7 +979,7 @@ var recruiterSearchPeopleCommand = defineCommand({
979
979
  profile: flags.profile
980
980
  });
981
981
  if (!cfg.apiKey) {
982
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
982
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
983
983
  process.exit(3);
984
984
  }
985
985
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -988,7 +988,7 @@ var recruiterSearchPeopleCommand = defineCommand({
988
988
  }
989
989
  });
990
990
  var recruiterSearchParametersCommand = defineCommand({
991
- meta: { name: "parameters", description: "Resolve Recruiter filter parameter IDs (POST \u2014 source-scoped)." },
991
+ meta: { name: "parameters", description: "Resolve Recruiter filter parameter IDs (POST, source-scoped)." },
992
992
  args: {
993
993
  ...GLOBAL_FLAGS,
994
994
  source: {
@@ -1015,7 +1015,7 @@ var recruiterSearchParametersCommand = defineCommand({
1015
1015
  profile: flags.profile
1016
1016
  });
1017
1017
  if (!cfg.apiKey) {
1018
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1018
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1019
1019
  process.exit(3);
1020
1020
  }
1021
1021
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1053,7 +1053,7 @@ var recruiterSearchCommand = defineCommand({
1053
1053
  profile: flags.profile
1054
1054
  });
1055
1055
  if (!cfg.apiKey) {
1056
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1056
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1057
1057
  process.exit(3);
1058
1058
  }
1059
1059
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1074,7 +1074,7 @@ var recruiterProjectsCommand = defineCommand({
1074
1074
  profile: flags.profile
1075
1075
  });
1076
1076
  if (!cfg.apiKey) {
1077
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1077
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1078
1078
  process.exit(3);
1079
1079
  }
1080
1080
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1083,7 +1083,7 @@ var recruiterProjectsCommand = defineCommand({
1083
1083
  }
1084
1084
  });
1085
1085
  var recruiterProjectUpdateCommand = defineCommand({
1086
- meta: { name: "update", description: "Edit a Recruiter project's config. All fields optional \u2014 omitted fields are left unchanged." },
1086
+ meta: { name: "update", description: "Edit a Recruiter project's config. All fields optional; omitted fields are left unchanged." },
1087
1087
  args: {
1088
1088
  // Write command: WRITE_SINGLE_FLAGS omits pagination flags, keeps --fields
1089
1089
  ...WRITE_SINGLE_FLAGS,
@@ -1108,7 +1108,7 @@ var recruiterProjectUpdateCommand = defineCommand({
1108
1108
  profile: flags.profile
1109
1109
  });
1110
1110
  if (!cfg.apiKey) {
1111
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1111
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1112
1112
  process.exit(3);
1113
1113
  }
1114
1114
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1142,7 +1142,7 @@ var recruiterProjectCommand = defineCommand({
1142
1142
  profile: flags.profile
1143
1143
  });
1144
1144
  if (!cfg.apiKey) {
1145
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1145
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1146
1146
  process.exit(3);
1147
1147
  }
1148
1148
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1170,7 +1170,7 @@ var recruiterPipelineCommand = defineCommand({
1170
1170
  profile: flags.profile
1171
1171
  });
1172
1172
  if (!cfg.apiKey) {
1173
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1173
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1174
1174
  process.exit(3);
1175
1175
  }
1176
1176
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1197,7 +1197,7 @@ var recruiterSaveCandidateCommand = defineCommand({
1197
1197
  profile: flags.profile
1198
1198
  });
1199
1199
  if (!cfg.apiKey) {
1200
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1200
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1201
1201
  process.exit(3);
1202
1202
  }
1203
1203
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1218,7 +1218,7 @@ var recruiterJobsCommand = defineCommand({
1218
1218
  profile: flags.profile
1219
1219
  });
1220
1220
  if (!cfg.apiKey) {
1221
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1221
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1222
1222
  process.exit(3);
1223
1223
  }
1224
1224
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1262,7 +1262,7 @@ var recruiterJobCreateCommand = defineCommand({
1262
1262
  profile: flags.profile
1263
1263
  });
1264
1264
  if (!cfg.apiKey) {
1265
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1265
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1266
1266
  process.exit(3);
1267
1267
  }
1268
1268
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1271,7 +1271,7 @@ var recruiterJobCreateCommand = defineCommand({
1271
1271
  }
1272
1272
  });
1273
1273
  var recruiterJobPublishCommand = defineCommand({
1274
- meta: { name: "publish", description: "Publish a Recruiter job posting draft. PROMOTED/PROMOTED_PLUS spend real money and require --budget-*." },
1274
+ meta: { name: "publish", description: "Publish a Recruiter job posting draft. PROMOTED/PROMOTED_PLUS spend real money and require --budget-amount, --budget-currency, and --budget-scope." },
1275
1275
  args: {
1276
1276
  // Write command: WRITE_SINGLE_FLAGS omits pagination flags, keeps --fields
1277
1277
  ...WRITE_SINGLE_FLAGS,
@@ -1292,7 +1292,7 @@ var recruiterJobPublishCommand = defineCommand({
1292
1292
  profile: flags.profile
1293
1293
  });
1294
1294
  if (!cfg.apiKey) {
1295
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1295
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1296
1296
  process.exit(3);
1297
1297
  }
1298
1298
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1317,7 +1317,7 @@ var recruiterApplicantsCommand = defineCommand({
1317
1317
  profile: flags.profile
1318
1318
  });
1319
1319
  if (!cfg.apiKey) {
1320
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1320
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1321
1321
  process.exit(3);
1322
1322
  }
1323
1323
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1341,7 +1341,7 @@ var recruiterJobGetCommand = defineCommand({
1341
1341
  profile: flags.profile
1342
1342
  });
1343
1343
  if (!cfg.apiKey) {
1344
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1344
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1345
1345
  process.exit(3);
1346
1346
  }
1347
1347
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1367,7 +1367,7 @@ var recruiterJobCloseCommand = defineCommand({
1367
1367
  profile: flags.profile
1368
1368
  });
1369
1369
  if (!cfg.apiKey) {
1370
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1370
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1371
1371
  process.exit(3);
1372
1372
  }
1373
1373
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1407,7 +1407,7 @@ var recruiterProjectJobGetCommand = defineCommand({
1407
1407
  profile: flags.profile
1408
1408
  });
1409
1409
  if (!cfg.apiKey) {
1410
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1410
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1411
1411
  process.exit(3);
1412
1412
  }
1413
1413
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1433,7 +1433,7 @@ var recruiterProjectJobCreateCommand = defineCommand({
1433
1433
  profile: flags.profile
1434
1434
  });
1435
1435
  if (!cfg.apiKey) {
1436
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1436
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1437
1437
  process.exit(3);
1438
1438
  }
1439
1439
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1459,7 +1459,7 @@ var recruiterProjectJobBudgetCommand = defineCommand({
1459
1459
  profile: flags.profile
1460
1460
  });
1461
1461
  if (!cfg.apiKey) {
1462
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1462
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1463
1463
  process.exit(3);
1464
1464
  }
1465
1465
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1486,7 +1486,7 @@ var recruiterProjectJobUpdateCommand = defineCommand({
1486
1486
  profile: flags.profile
1487
1487
  });
1488
1488
  if (!cfg.apiKey) {
1489
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1489
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1490
1490
  process.exit(3);
1491
1491
  }
1492
1492
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1522,7 +1522,7 @@ var recruiterProjectJobCommand = defineCommand({
1522
1522
  profile: flags.profile
1523
1523
  });
1524
1524
  if (!cfg.apiKey) {
1525
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1525
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1526
1526
  process.exit(3);
1527
1527
  }
1528
1528
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1550,7 +1550,7 @@ var recruiterTalentSearchCommand = defineCommand({
1550
1550
  profile: flags.profile
1551
1551
  });
1552
1552
  if (!cfg.apiKey) {
1553
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1553
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1554
1554
  process.exit(3);
1555
1555
  }
1556
1556
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1577,7 +1577,7 @@ var recruiterApplicantResumeCommand = defineCommand({
1577
1577
  profile: flags.profile
1578
1578
  });
1579
1579
  if (!cfg.apiKey) {
1580
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1580
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1581
1581
  process.exit(3);
1582
1582
  }
1583
1583
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1617,7 +1617,7 @@ var recruiterApplicantCommand = defineCommand({
1617
1617
  profile: flags.profile
1618
1618
  });
1619
1619
  if (!cfg.apiKey) {
1620
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1620
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1621
1621
  process.exit(3);
1622
1622
  }
1623
1623
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -26,12 +26,12 @@ import {
26
26
  renderSuccess,
27
27
  renderUnexpectedError,
28
28
  resolveEffectiveConfig
29
- } from "./chunk-M33MI53G.js";
29
+ } from "./chunk-HDQUEFD2.js";
30
30
  import {
31
31
  GLOBAL_FLAGS,
32
32
  READ_SINGLE_FLAGS,
33
33
  WRITE_FLAGS
34
- } from "./chunk-TMU3CSPR.js";
34
+ } from "./chunk-DW2HCRXJ.js";
35
35
 
36
36
  // src/commands/sales-nav.ts
37
37
  import { defineCommand } from "citty";
@@ -488,7 +488,7 @@ var salesNavMessageNewCommand = defineCommand({
488
488
  ...WRITE_FLAGS,
489
489
  to: {
490
490
  type: "string",
491
- description: "Recipient's LinkedIn provider ID (ACw\u2026 format, e.g. from a Sales Navigator search result or profile). Not resolved from a URL/slug \u2014 pass the provider ID directly.",
491
+ description: "Recipient's LinkedIn provider ID (ACw\u2026 format, e.g. from a Sales Navigator search result or profile). Not resolved from a URL/slug. Pass the provider ID directly.",
492
492
  required: true
493
493
  },
494
494
  subject: { type: "string", description: "Message subject line (required for Sales Navigator messaging).", required: true },
@@ -507,7 +507,7 @@ var salesNavMessageNewCommand = defineCommand({
507
507
  profile: flags.profile
508
508
  });
509
509
  if (!cfg.apiKey) {
510
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
510
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
511
511
  process.exit(3);
512
512
  }
513
513
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -547,7 +547,7 @@ var salesNavSearchPeopleCommand = defineCommand({
547
547
  profile: flags.profile
548
548
  });
549
549
  if (!cfg.apiKey) {
550
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
550
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
551
551
  process.exit(3);
552
552
  }
553
553
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -576,7 +576,7 @@ var salesNavSearchCompaniesCommand = defineCommand({
576
576
  profile: flags.profile
577
577
  });
578
578
  if (!cfg.apiKey) {
579
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
579
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
580
580
  process.exit(3);
581
581
  }
582
582
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -605,7 +605,7 @@ var salesNavSearchParametersCommand = defineCommand({
605
605
  profile: flags.profile
606
606
  });
607
607
  if (!cfg.apiKey) {
608
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
608
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
609
609
  process.exit(3);
610
610
  }
611
611
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -644,7 +644,7 @@ var salesNavSearchCommand = defineCommand({
644
644
  profile: flags.profile
645
645
  });
646
646
  if (!cfg.apiKey) {
647
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
647
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
648
648
  process.exit(3);
649
649
  }
650
650
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -669,7 +669,7 @@ var salesNavProfileCommand = defineCommand({
669
669
  profile: flags.profile
670
670
  });
671
671
  if (!cfg.apiKey) {
672
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
672
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
673
673
  process.exit(3);
674
674
  }
675
675
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -683,7 +683,7 @@ var salesNavSaveLeadCommand = defineCommand({
683
683
  // Write command: WRITE_FLAGS omits pagination/projection flags
684
684
  ...WRITE_FLAGS,
685
685
  userId: { type: "positional", description: "Sales Navigator member ID (ACw\u2026 format)." },
686
- list: { type: "string", description: "Lead list ID to save the member into (required \u2014 the v2 save always targets a specific list).", required: true }
686
+ list: { type: "string", description: "Lead list ID to save the member into (required; the v2 save always targets a specific list).", required: true }
687
687
  },
688
688
  async run({ args }) {
689
689
  const flags = args;
@@ -695,7 +695,7 @@ var salesNavSaveLeadCommand = defineCommand({
695
695
  profile: flags.profile
696
696
  });
697
697
  if (!cfg.apiKey) {
698
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
698
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
699
699
  process.exit(3);
700
700
  }
701
701
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -716,7 +716,7 @@ var salesNavAccountListsCommand = defineCommand({
716
716
  profile: flags.profile
717
717
  });
718
718
  if (!cfg.apiKey) {
719
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
719
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
720
720
  process.exit(3);
721
721
  }
722
722
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -737,7 +737,7 @@ var salesNavLeadListsCommand = defineCommand({
737
737
  profile: flags.profile
738
738
  });
739
739
  if (!cfg.apiKey) {
740
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
740
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
741
741
  process.exit(3);
742
742
  }
743
743
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -764,7 +764,7 @@ var salesNavBrowseAccountListCommand = defineCommand({
764
764
  profile: flags.profile
765
765
  });
766
766
  if (!cfg.apiKey) {
767
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
767
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
768
768
  process.exit(3);
769
769
  }
770
770
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -791,7 +791,7 @@ var salesNavBrowseLeadListCommand = defineCommand({
791
791
  profile: flags.profile
792
792
  });
793
793
  if (!cfg.apiKey) {
794
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
794
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
795
795
  process.exit(3);
796
796
  }
797
797
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -817,7 +817,7 @@ var salesNavSaveAccountCommand = defineCommand({
817
817
  profile: flags.profile
818
818
  });
819
819
  if (!cfg.apiKey) {
820
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
820
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
821
821
  process.exit(3);
822
822
  }
823
823
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });