@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.
- package/CHANGELOG.md +123 -0
- package/dist/{account-EGJJNBXW.js → account-2SOSCEB6.js} +26 -26
- package/dist/{chunk-TMU3CSPR.js → chunk-DW2HCRXJ.js} +1 -1
- package/dist/{chunk-M33MI53G.js → chunk-HDQUEFD2.js} +1 -1
- package/dist/chunk-HOQ7EUHJ.js +50 -0
- package/dist/{chunk-KVV6LZ7E.js → chunk-IGCQNDIG.js} +53 -17
- package/dist/cli.js +33 -33
- package/dist/{comment-VT6PO4MN.js → comment-AXDINBPS.js} +3 -3
- package/dist/{company-BVXX4FGX.js → company-BX4VDXZX.js} +398 -16
- package/dist/{config-P5CPF5WC.js → config-3O4N2XSH.js} +2 -2
- package/dist/{connect-6PU7QCOL.js → connect-KWOJKCIB.js} +36 -15
- package/dist/feed-4ROKUBG5.js +127 -0
- package/dist/group-L7TQEEFN.js +236 -0
- package/dist/{inbox-DRJ6ENXC.js → inbox-GMGZVDTQ.js} +69 -11
- package/dist/{inboxes-MTPWLP5F.js → inboxes-YVYLSM5W.js} +4 -4
- package/dist/{job-EIXBJXLW.js → job-TYBA2DUQ.js} +7 -7
- package/dist/{login-GDLWR542.js → login-W7NCDZOQ.js} +2 -2
- package/dist/{message-UWMRE2SJ.js → message-C6FV6JH6.js} +6 -3
- package/dist/notification-45XFT3S4.js +219 -0
- package/dist/{post-N3GQDIQJ.js → post-RETV3WUG.js} +102 -9
- package/dist/{profile-XWSRUYRW.js → profile-A2TWF4HB.js} +121 -15
- package/dist/{recruiter-MVPSTH2V.js → recruiter-FQAKY6Z2.js} +30 -30
- package/dist/{sales-nav-TMXWDKSE.js → sales-nav-SSJIZUNB.js} +16 -16
- package/dist/{search-ZQUKLQ6T.js → search-DH6BJFQC.js} +213 -12
- package/dist/{webhook-QFSZN3P2.js → webhook-LED6AKF3.js} +50 -19
- package/package.json +4 -4
|
@@ -28,11 +28,12 @@ import {
|
|
|
28
28
|
renderSuccess,
|
|
29
29
|
renderUnexpectedError,
|
|
30
30
|
resolveEffectiveConfig
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-HDQUEFD2.js";
|
|
32
32
|
import {
|
|
33
33
|
GLOBAL_FLAGS,
|
|
34
|
+
READ_SINGLE_FLAGS,
|
|
34
35
|
WRITE_SINGLE_FLAGS
|
|
35
|
-
} from "./chunk-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
703
|
-
"background-picture": { type: "string", description: "New cover/banner photo
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
29
|
+
} from "./chunk-HDQUEFD2.js";
|
|
30
30
|
import {
|
|
31
31
|
GLOBAL_FLAGS,
|
|
32
32
|
READ_SINGLE_FLAGS,
|
|
33
33
|
WRITE_FLAGS
|
|
34
|
-
} from "./chunk-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 });
|