@linkedapi/linkedin-cli 1.0.6 → 1.0.8
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/README.md +37 -0
- package/dist/commands/account/update.d.ts +15 -0
- package/dist/commands/account/update.d.ts.map +1 -0
- package/dist/commands/account/update.js +118 -0
- package/dist/commands/account/update.js.map +1 -0
- package/dist/commands/workflow/status.js +2 -2
- package/dist/commands/workflow/status.js.map +1 -1
- package/dist/core/auth/config-store.d.ts +5 -0
- package/dist/core/auth/config-store.d.ts.map +1 -1
- package/dist/core/auth/config-store.js +17 -0
- package/dist/core/auth/config-store.js.map +1 -1
- package/dist/core/errors/error-handler.d.ts +1 -0
- package/dist/core/errors/error-handler.d.ts.map +1 -1
- package/dist/core/errors/error-handler.js +4 -0
- package/dist/core/errors/error-handler.js.map +1 -1
- package/dist/utils/masked-input.d.ts +2 -0
- package/dist/utils/masked-input.d.ts.map +1 -0
- package/dist/utils/masked-input.js +43 -0
- package/dist/utils/masked-input.js.map +1 -0
- package/oclif.manifest.json +188 -142
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -60,6 +60,15 @@ linkedin account list
|
|
|
60
60
|
# Switch active account
|
|
61
61
|
linkedin account switch "Vlad"
|
|
62
62
|
|
|
63
|
+
# Update tokens for active account (e.g. after regenerating tokens on the dashboard)
|
|
64
|
+
linkedin account update
|
|
65
|
+
|
|
66
|
+
# Update tokens for a specific account
|
|
67
|
+
linkedin account update "Vlad"
|
|
68
|
+
|
|
69
|
+
# Non-interactive token update
|
|
70
|
+
linkedin account update --linked-api-token=xxx --identification-token=yyy
|
|
71
|
+
|
|
63
72
|
# Rename a saved account
|
|
64
73
|
linkedin account rename "Vlad" --name "My Work Account"
|
|
65
74
|
|
|
@@ -772,6 +781,34 @@ linkedin account list
|
|
|
772
781
|
|
|
773
782
|
The active account is marked with `*`.
|
|
774
783
|
|
|
784
|
+
#### `account update`
|
|
785
|
+
|
|
786
|
+
Update tokens for a saved account. Useful when your tokens were regenerated on the dashboard and you need to refresh them in the CLI.
|
|
787
|
+
|
|
788
|
+
```bash
|
|
789
|
+
linkedin account update [name] [flags]
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
| Arg | Required | Description |
|
|
793
|
+
|-----|----------|-------------|
|
|
794
|
+
| `name` | no | Account name (case-insensitive substring match). Defaults to active account. |
|
|
795
|
+
|
|
796
|
+
| Flag | Type | Description |
|
|
797
|
+
|------|------|-------------|
|
|
798
|
+
| `--linked-api-token` | string | New Linked API Token (skips prompt) |
|
|
799
|
+
| `--identification-token` | string | New Identification Token (skips prompt) |
|
|
800
|
+
|
|
801
|
+
```bash
|
|
802
|
+
# Update active account interactively
|
|
803
|
+
linkedin account update
|
|
804
|
+
|
|
805
|
+
# Update a specific account
|
|
806
|
+
linkedin account update "Vlad"
|
|
807
|
+
|
|
808
|
+
# Non-interactive (for scripts/CI)
|
|
809
|
+
linkedin account update --linked-api-token=xxx --identification-token=yyy
|
|
810
|
+
```
|
|
811
|
+
|
|
775
812
|
#### `account switch`
|
|
776
813
|
|
|
777
814
|
Switch the active LinkedIn account.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class AccountUpdate extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
name: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
'linked-api-token': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'identification-token': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
static examples: string[];
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
private resolveAccount;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/account/update.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAInD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,OAAgB,WAAW,SAAgD;IAE3E,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,KAAK;;;MAOnB;IAEF,OAAgB,QAAQ,WAItB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8EjC,OAAO,CAAC,cAAc;CAqCvB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_store_1 = require("../../core/auth/config-store");
|
|
4
|
+
const build_client_1 = require("../../core/client/build-client");
|
|
5
|
+
const exit_codes_1 = require("../../core/errors/exit-codes");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const masked_input_1 = require("../../utils/masked-input");
|
|
8
|
+
const tty_1 = require("../../utils/tty");
|
|
9
|
+
class AccountUpdate extends core_1.Command {
|
|
10
|
+
static description = 'Update tokens for a saved LinkedIn account';
|
|
11
|
+
static args = {
|
|
12
|
+
name: core_1.Args.string({
|
|
13
|
+
description: 'Account name to update (case-insensitive substring match). Defaults to active account.',
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
static flags = {
|
|
17
|
+
'linked-api-token': core_1.Flags.string({
|
|
18
|
+
description: 'New Linked API Token (for non-interactive use)',
|
|
19
|
+
}),
|
|
20
|
+
'identification-token': core_1.Flags.string({
|
|
21
|
+
description: 'New Identification Token (for non-interactive use)',
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
static examples = [
|
|
25
|
+
'<%= config.bin %> account update',
|
|
26
|
+
'<%= config.bin %> account update "John"',
|
|
27
|
+
'<%= config.bin %> account update --linked-api-token=xxx --identification-token=yyy',
|
|
28
|
+
];
|
|
29
|
+
async run() {
|
|
30
|
+
const { args, flags } = await this.parse(AccountUpdate);
|
|
31
|
+
const account = this.resolveAccount(args.name);
|
|
32
|
+
if (!account) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
let linkedApiToken;
|
|
36
|
+
let identificationToken;
|
|
37
|
+
if (flags['linked-api-token'] && flags['identification-token']) {
|
|
38
|
+
linkedApiToken = flags['linked-api-token'];
|
|
39
|
+
identificationToken = flags['identification-token'];
|
|
40
|
+
}
|
|
41
|
+
else if (!(0, tty_1.isStdinTty)()) {
|
|
42
|
+
process.stderr.write(`Cannot run interactive update in non-interactive mode.
|
|
43
|
+
Use flags instead:
|
|
44
|
+
|
|
45
|
+
linkedin account update --linked-api-token=xxx --identification-token=yyy
|
|
46
|
+
|
|
47
|
+
Get tokens at https://app.linkedapi.io\n`);
|
|
48
|
+
this.exit(exit_codes_1.EXIT_CODE.AUTH);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
process.stdout.write(`Updating tokens for "${account.name}".\n` +
|
|
53
|
+
'Get new tokens at https://app.linkedapi.io\n\n');
|
|
54
|
+
linkedApiToken = await (0, masked_input_1.readMaskedInput)('New Linked API Token: ', 'account_');
|
|
55
|
+
identificationToken = await (0, masked_input_1.readMaskedInput)('New Identification Token: ', 'id_');
|
|
56
|
+
}
|
|
57
|
+
if (!linkedApiToken || !identificationToken) {
|
|
58
|
+
process.stderr.write('Both tokens are required.\n');
|
|
59
|
+
this.exit(exit_codes_1.EXIT_CODE.AUTH);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
process.stdout.write('Verifying tokens... ');
|
|
63
|
+
let accountName = '';
|
|
64
|
+
try {
|
|
65
|
+
const tempClient = (0, build_client_1.buildClient)({
|
|
66
|
+
linkedApiToken,
|
|
67
|
+
identificationToken,
|
|
68
|
+
});
|
|
69
|
+
const accountInfo = await tempClient.getAccountInfo();
|
|
70
|
+
accountName = accountInfo.data?.name ?? '';
|
|
71
|
+
process.stdout.write('OK\n');
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
process.stdout.write('FAILED\n');
|
|
75
|
+
process.stderr.write('\nInvalid tokens. Make sure you copied the correct tokens from https://app.linkedapi.io\n');
|
|
76
|
+
this.exit(exit_codes_1.EXIT_CODE.AUTH);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const displayName = accountName || account.name;
|
|
80
|
+
const updated = (0, config_store_1.updateAccountTokens)(account.identificationToken, {
|
|
81
|
+
name: displayName,
|
|
82
|
+
linkedApiToken,
|
|
83
|
+
identificationToken,
|
|
84
|
+
});
|
|
85
|
+
if (!updated) {
|
|
86
|
+
process.stderr.write('Failed to update account.\n');
|
|
87
|
+
this.exit(exit_codes_1.EXIT_CODE.GENERAL);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
process.stdout.write(`Account "${displayName}" updated successfully.\n`);
|
|
91
|
+
}
|
|
92
|
+
resolveAccount(nameQuery) {
|
|
93
|
+
const accounts = (0, config_store_1.listAccounts)();
|
|
94
|
+
if (accounts.length === 0) {
|
|
95
|
+
process.stderr.write('No accounts configured. Run "linkedin setup" to add one.\n');
|
|
96
|
+
this.exit(exit_codes_1.EXIT_CODE.AUTH);
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
if (nameQuery) {
|
|
100
|
+
const account = (0, config_store_1.findAccountByName)(nameQuery);
|
|
101
|
+
if (!account) {
|
|
102
|
+
process.stderr.write(`Account "${nameQuery}" not found. Run "linkedin account list" to see available accounts.\n`);
|
|
103
|
+
this.exit(exit_codes_1.EXIT_CODE.GENERAL);
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
return account;
|
|
107
|
+
}
|
|
108
|
+
const current = accounts.find((account) => account.isCurrent);
|
|
109
|
+
if (!current) {
|
|
110
|
+
process.stderr.write('No active account. Run "linkedin account list" to see available accounts.\n');
|
|
111
|
+
this.exit(exit_codes_1.EXIT_CODE.AUTH);
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return current;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.default = AccountUpdate;
|
|
118
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/account/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,11 +43,11 @@ See https://linkedapi.io/docs/executing-workflows/ for details on workflow execu
|
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
45
|
const status = await client.customWorkflow.status(args.id);
|
|
46
|
-
if (status === 'running') {
|
|
46
|
+
if (status === 'running' || status === 'pending') {
|
|
47
47
|
(0, formatter_1.formatOutput)({
|
|
48
48
|
data: {
|
|
49
49
|
workflowId: args.id,
|
|
50
|
-
status
|
|
50
|
+
status,
|
|
51
51
|
},
|
|
52
52
|
errors: [],
|
|
53
53
|
isJson: flags.json,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAE1C,iDAA4C;AAC5C,sDAAsD;AAEtD,MAAqB,cAAe,SAAQ,2BAAW;IACrD,MAAM,CAAU,WAAW,GAAG;;kGAEkE,CAAC;IAEjG,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,2BAAW,CAAC,SAAS;QACxB,IAAI,EAAE,YAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG;QACzB,0CAA0C;QAC1C,wDAAwD;KACzD,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAErD,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE3D,IAAA,wBAAY,EAAC;oBACX,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,KAAK,CAAC,IAAI;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE3D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAE1C,iDAA4C;AAC5C,sDAAsD;AAEtD,MAAqB,cAAe,SAAQ,2BAAW;IACrD,MAAM,CAAU,WAAW,GAAG;;kGAEkE,CAAC;IAEjG,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,2BAAW,CAAC,SAAS;QACxB,IAAI,EAAE,YAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG;QACzB,0CAA0C;QAC1C,wDAAwD;KACzD,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAErD,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE3D,IAAA,wBAAY,EAAC;oBACX,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,KAAK,CAAC,IAAI;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE3D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACjD,IAAA,wBAAY,EAAC;wBACX,IAAI,EAAE;4BACJ,UAAU,EAAE,IAAI,CAAC,EAAE;4BACnB,MAAM;yBACP;wBACD,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,KAAK,CAAC,IAAI;wBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,OAAO,EAAE,KAAK,CAAC,KAAK;qBACrB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAA,wBAAY,EAAC;wBACX,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,KAAK,CAAC,IAAI;wBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,OAAO,EAAE,KAAK,CAAC,KAAK;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;;AAxEH,iCAyEC"}
|
|
@@ -15,6 +15,11 @@ export declare function listAccounts(): Array<TAccountEntry & {
|
|
|
15
15
|
}>;
|
|
16
16
|
export declare function setCurrentAccount(identificationToken: string): boolean;
|
|
17
17
|
export declare function findAccountByName(nameQuery: string): TAccountEntry | undefined;
|
|
18
|
+
export declare function updateAccountTokens(oldIdentificationToken: string, newTokens: {
|
|
19
|
+
name: string;
|
|
20
|
+
linkedApiToken: string;
|
|
21
|
+
identificationToken: string;
|
|
22
|
+
}): boolean;
|
|
18
23
|
export declare function renameAccount(identificationToken: string, newName: string): boolean;
|
|
19
24
|
export declare function deleteConfig(): boolean;
|
|
20
25
|
export declare function getConfigFilePath(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../../src/core/auth/config-store.ts"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAiFD,wBAAgB,UAAU,IAAI;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA6BhG;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAkBvD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,SAAS,CAyBhE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AAED,wBAAgB,YAAY,IAAI,KAAK,CAAC,aAAa,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAW5E;AAED,wBAAgB,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAkBtE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAU9E;AAED,wBAAgB,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBnF;AAED,wBAAgB,YAAY,IAAI,OAAO,CAStC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../../src/core/auth/config-store.ts"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAiFD,wBAAgB,UAAU,IAAI;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA6BhG;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAkBvD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,SAAS,CAyBhE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AAED,wBAAgB,YAAY,IAAI,KAAK,CAAC,aAAa,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAW5E;AAED,wBAAgB,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAkBtE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAU9E;AAED,wBAAgB,mBAAmB,CACjC,sBAAsB,EAAE,MAAM,EAC9B,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAC/E,OAAO,CAuBT;AAED,wBAAgB,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBnF;AAED,wBAAgB,YAAY,IAAI,OAAO,CAStC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
@@ -7,6 +7,7 @@ exports.removeAllAccounts = removeAllAccounts;
|
|
|
7
7
|
exports.listAccounts = listAccounts;
|
|
8
8
|
exports.setCurrentAccount = setCurrentAccount;
|
|
9
9
|
exports.findAccountByName = findAccountByName;
|
|
10
|
+
exports.updateAccountTokens = updateAccountTokens;
|
|
10
11
|
exports.renameAccount = renameAccount;
|
|
11
12
|
exports.deleteConfig = deleteConfig;
|
|
12
13
|
exports.getConfigFilePath = getConfigFilePath;
|
|
@@ -168,6 +169,22 @@ function findAccountByName(nameQuery) {
|
|
|
168
169
|
const lowerQuery = nameQuery.toLowerCase();
|
|
169
170
|
return config.accounts.find((account) => account.name.toLowerCase().includes(lowerQuery));
|
|
170
171
|
}
|
|
172
|
+
function updateAccountTokens(oldIdentificationToken, newTokens) {
|
|
173
|
+
const config = readRawConfig();
|
|
174
|
+
if (!config) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
const index = config.accounts.findIndex((account) => account.identificationToken === oldIdentificationToken);
|
|
178
|
+
if (index < 0) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
config.accounts[index] = newTokens;
|
|
182
|
+
if (config.currentAccount === oldIdentificationToken) {
|
|
183
|
+
config.currentAccount = newTokens.identificationToken;
|
|
184
|
+
}
|
|
185
|
+
saveRawConfig(config);
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
171
188
|
function renameAccount(identificationToken, newName) {
|
|
172
189
|
const config = readRawConfig();
|
|
173
190
|
if (!config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../../src/core/auth/config-store.ts"],"names":[],"mappings":";;AAyFA,gCA6BC;AAED,gCAkBC;AAED,oDAyBC;AAED,8CAaC;AAED,oCAWC;AAED,8CAkBC;AAED,8CAUC;AAED,sCAkBC;AAED,oCASC;AAED,8CAEC;
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../../src/core/auth/config-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/core/errors/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiC,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAa,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,UAAU,SAAS;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/core/errors/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiC,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAa,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,UAAU,SAAS;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CA4D5E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAe5D"}
|
|
@@ -22,6 +22,7 @@ function mapLinkedApiErrorToCliError(error) {
|
|
|
22
22
|
exitCode: exit_codes_1.EXIT_CODE.AUTH,
|
|
23
23
|
error: error.type,
|
|
24
24
|
message: error.message,
|
|
25
|
+
hint: 'Run "linkedin account update" to refresh your tokens.',
|
|
25
26
|
};
|
|
26
27
|
case 'subscriptionRequired':
|
|
27
28
|
case 'plusPlanRequired':
|
|
@@ -67,5 +68,8 @@ function writeErrorToStderr(cliError) {
|
|
|
67
68
|
output.workflowId = cliError.workflowId;
|
|
68
69
|
}
|
|
69
70
|
process.stderr.write(JSON.stringify(output) + '\n');
|
|
71
|
+
if (cliError.hint) {
|
|
72
|
+
process.stderr.write(`\n${cliError.hint}\n`);
|
|
73
|
+
}
|
|
70
74
|
}
|
|
71
75
|
//# sourceMappingURL=error-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/core/errors/error-handler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/core/errors/error-handler.ts"],"names":[],"mappings":";;AAYA,kEA4DC;AAED,gDAeC;AAzFD,0CAAgF;AAEhF,6CAAoD;AAUpD,SAAgB,2BAA2B,CAAC,KAAqB;IAC/D,IAAI,KAAK,YAAY,oCAA6B,EAAE,CAAC;QACnD,OAAO;YACL,QAAQ,EAAE,sBAAS,CAAC,OAAO;YAC3B,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,qDAAqD,KAAK,CAAC,UAAU,+BAA+B;YAC7G,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,wBAAwB,CAAC;QAC9B,KAAK,uBAAuB,CAAC;QAC7B,KAAK,6BAA6B,CAAC;QACnC,KAAK,4BAA4B;YAC/B,OAAO;gBACL,QAAQ,EAAE,sBAAS,CAAC,IAAI;gBACxB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,uDAAuD;aAC9D,CAAC;QAEJ,KAAK,sBAAsB,CAAC;QAC5B,KAAK,kBAAkB;YACrB,OAAO;gBACL,QAAQ,EAAE,sBAAS,CAAC,YAAY;gBAChC,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QAEJ,KAAK,0BAA0B,CAAC;QAChC,KAAK,sBAAsB;YACzB,OAAO;gBACL,QAAQ,EAAE,sBAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QAEJ,KAAK,uBAAuB,CAAC;QAC7B,KAAK,iBAAiB;YACpB,OAAO;gBACL,QAAQ,EAAE,sBAAS,CAAC,UAAU;gBAC9B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QAEJ,KAAK,WAAW;YACd,OAAO;gBACL,QAAQ,EAAE,sBAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QAEJ;YACE,OAAO;gBACL,QAAQ,EAAE,sBAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAmB;IACpD,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;IAEF,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masked-input.d.ts","sourceRoot":"","sources":["../../src/utils/masked-input.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCtF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readMaskedInput = readMaskedInput;
|
|
4
|
+
function readMaskedInput(prompt, visiblePrefix) {
|
|
5
|
+
return new Promise((resolve) => {
|
|
6
|
+
process.stdout.write(prompt);
|
|
7
|
+
const stdin = process.stdin;
|
|
8
|
+
stdin.setRawMode(true);
|
|
9
|
+
stdin.resume();
|
|
10
|
+
stdin.setEncoding('utf-8');
|
|
11
|
+
let input = '';
|
|
12
|
+
const onData = (str) => {
|
|
13
|
+
for (const char of str) {
|
|
14
|
+
if (char === '\n' || char === '\r') {
|
|
15
|
+
stdin.setRawMode(false);
|
|
16
|
+
stdin.removeListener('data', onData);
|
|
17
|
+
stdin.pause();
|
|
18
|
+
process.stdout.write('\n');
|
|
19
|
+
resolve(input);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
else if (char === '\u007F' || char === '\b') {
|
|
23
|
+
if (input.length > 0) {
|
|
24
|
+
input = input.slice(0, -1);
|
|
25
|
+
process.stdout.write('\b \b');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (char === '\u0003') {
|
|
29
|
+
stdin.setRawMode(false);
|
|
30
|
+
process.stdout.write('\n');
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
else if (char >= ' ') {
|
|
34
|
+
input += char;
|
|
35
|
+
const isInPrefix = input.length <= visiblePrefix.length && visiblePrefix.startsWith(input);
|
|
36
|
+
process.stdout.write(isInPrefix ? char : '*');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
stdin.on('data', onData);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=masked-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masked-input.js","sourceRoot":"","sources":["../../src/utils/masked-input.ts"],"names":[],"mappings":";;AAAA,0CAwCC;AAxCD,SAAgB,eAAe,CAAC,MAAc,EAAE,aAAqB;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG,CAAC,GAAW,EAAQ,EAAE;YACnC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACxB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACrC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACT,CAAC;qBAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;oBACvB,KAAK,IAAI,IAAI,CAAC;oBACd,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/oclif.manifest.json
CHANGED
|
@@ -163,6 +163,52 @@
|
|
|
163
163
|
"switch.js"
|
|
164
164
|
]
|
|
165
165
|
},
|
|
166
|
+
"account:update": {
|
|
167
|
+
"aliases": [],
|
|
168
|
+
"args": {
|
|
169
|
+
"name": {
|
|
170
|
+
"description": "Account name to update (case-insensitive substring match). Defaults to active account.",
|
|
171
|
+
"name": "name"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"description": "Update tokens for a saved LinkedIn account",
|
|
175
|
+
"examples": [
|
|
176
|
+
"<%= config.bin %> account update",
|
|
177
|
+
"<%= config.bin %> account update \"John\"",
|
|
178
|
+
"<%= config.bin %> account update --linked-api-token=xxx --identification-token=yyy"
|
|
179
|
+
],
|
|
180
|
+
"flags": {
|
|
181
|
+
"linked-api-token": {
|
|
182
|
+
"description": "New Linked API Token (for non-interactive use)",
|
|
183
|
+
"name": "linked-api-token",
|
|
184
|
+
"hasDynamicHelp": false,
|
|
185
|
+
"multiple": false,
|
|
186
|
+
"type": "option"
|
|
187
|
+
},
|
|
188
|
+
"identification-token": {
|
|
189
|
+
"description": "New Identification Token (for non-interactive use)",
|
|
190
|
+
"name": "identification-token",
|
|
191
|
+
"hasDynamicHelp": false,
|
|
192
|
+
"multiple": false,
|
|
193
|
+
"type": "option"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"hasDynamicHelp": false,
|
|
197
|
+
"hiddenAliases": [],
|
|
198
|
+
"id": "account:update",
|
|
199
|
+
"pluginAlias": "@linkedapi/linkedin-cli",
|
|
200
|
+
"pluginName": "@linkedapi/linkedin-cli",
|
|
201
|
+
"pluginType": "core",
|
|
202
|
+
"strict": true,
|
|
203
|
+
"enableJsonFlag": false,
|
|
204
|
+
"isESM": false,
|
|
205
|
+
"relativePath": [
|
|
206
|
+
"dist",
|
|
207
|
+
"commands",
|
|
208
|
+
"account",
|
|
209
|
+
"update.js"
|
|
210
|
+
]
|
|
211
|
+
},
|
|
166
212
|
"company:fetch": {
|
|
167
213
|
"aliases": [],
|
|
168
214
|
"args": {
|
|
@@ -410,147 +456,6 @@
|
|
|
410
456
|
"search.js"
|
|
411
457
|
]
|
|
412
458
|
},
|
|
413
|
-
"message:get": {
|
|
414
|
-
"aliases": [],
|
|
415
|
-
"args": {
|
|
416
|
-
"person-url": {
|
|
417
|
-
"description": "LinkedIn profile URL",
|
|
418
|
-
"name": "person-url",
|
|
419
|
-
"required": true
|
|
420
|
-
}
|
|
421
|
-
},
|
|
422
|
-
"description": "Get conversation messages with a LinkedIn person",
|
|
423
|
-
"examples": [
|
|
424
|
-
"<%= config.bin %> message get https://www.linkedin.com/in/john-doe",
|
|
425
|
-
"<%= config.bin %> message get https://www.linkedin.com/in/john-doe --since 2024-01-15T10:30:00Z"
|
|
426
|
-
],
|
|
427
|
-
"flags": {
|
|
428
|
-
"json": {
|
|
429
|
-
"description": "Output as JSON",
|
|
430
|
-
"name": "json",
|
|
431
|
-
"allowNo": false,
|
|
432
|
-
"type": "boolean"
|
|
433
|
-
},
|
|
434
|
-
"fields": {
|
|
435
|
-
"description": "Comma-separated list of fields to include in output",
|
|
436
|
-
"name": "fields",
|
|
437
|
-
"hasDynamicHelp": false,
|
|
438
|
-
"multiple": false,
|
|
439
|
-
"type": "option"
|
|
440
|
-
},
|
|
441
|
-
"quiet": {
|
|
442
|
-
"char": "q",
|
|
443
|
-
"description": "Suppress progress output on stderr",
|
|
444
|
-
"name": "quiet",
|
|
445
|
-
"allowNo": false,
|
|
446
|
-
"type": "boolean"
|
|
447
|
-
},
|
|
448
|
-
"no-color": {
|
|
449
|
-
"description": "Disable colored output",
|
|
450
|
-
"name": "no-color",
|
|
451
|
-
"allowNo": false,
|
|
452
|
-
"type": "boolean"
|
|
453
|
-
},
|
|
454
|
-
"account": {
|
|
455
|
-
"description": "Account name to use (when multiple accounts are configured)",
|
|
456
|
-
"name": "account",
|
|
457
|
-
"hasDynamicHelp": false,
|
|
458
|
-
"multiple": false,
|
|
459
|
-
"type": "option"
|
|
460
|
-
},
|
|
461
|
-
"since": {
|
|
462
|
-
"description": "Retrieve messages since ISO timestamp",
|
|
463
|
-
"name": "since",
|
|
464
|
-
"hasDynamicHelp": false,
|
|
465
|
-
"multiple": false,
|
|
466
|
-
"type": "option"
|
|
467
|
-
}
|
|
468
|
-
},
|
|
469
|
-
"hasDynamicHelp": false,
|
|
470
|
-
"hiddenAliases": [],
|
|
471
|
-
"id": "message:get",
|
|
472
|
-
"pluginAlias": "@linkedapi/linkedin-cli",
|
|
473
|
-
"pluginName": "@linkedapi/linkedin-cli",
|
|
474
|
-
"pluginType": "core",
|
|
475
|
-
"strict": true,
|
|
476
|
-
"enableJsonFlag": false,
|
|
477
|
-
"isESM": false,
|
|
478
|
-
"relativePath": [
|
|
479
|
-
"dist",
|
|
480
|
-
"commands",
|
|
481
|
-
"message",
|
|
482
|
-
"get.js"
|
|
483
|
-
]
|
|
484
|
-
},
|
|
485
|
-
"message:send": {
|
|
486
|
-
"aliases": [],
|
|
487
|
-
"args": {
|
|
488
|
-
"person-url": {
|
|
489
|
-
"description": "LinkedIn profile URL of the recipient",
|
|
490
|
-
"name": "person-url",
|
|
491
|
-
"required": true
|
|
492
|
-
},
|
|
493
|
-
"text": {
|
|
494
|
-
"description": "Message text (up to 1900 characters)",
|
|
495
|
-
"name": "text",
|
|
496
|
-
"required": true
|
|
497
|
-
}
|
|
498
|
-
},
|
|
499
|
-
"description": "Send a message to a LinkedIn person",
|
|
500
|
-
"examples": [
|
|
501
|
-
"<%= config.bin %> message send https://www.linkedin.com/in/john-doe \"Hello John!\""
|
|
502
|
-
],
|
|
503
|
-
"flags": {
|
|
504
|
-
"json": {
|
|
505
|
-
"description": "Output as JSON",
|
|
506
|
-
"name": "json",
|
|
507
|
-
"allowNo": false,
|
|
508
|
-
"type": "boolean"
|
|
509
|
-
},
|
|
510
|
-
"fields": {
|
|
511
|
-
"description": "Comma-separated list of fields to include in output",
|
|
512
|
-
"name": "fields",
|
|
513
|
-
"hasDynamicHelp": false,
|
|
514
|
-
"multiple": false,
|
|
515
|
-
"type": "option"
|
|
516
|
-
},
|
|
517
|
-
"quiet": {
|
|
518
|
-
"char": "q",
|
|
519
|
-
"description": "Suppress progress output on stderr",
|
|
520
|
-
"name": "quiet",
|
|
521
|
-
"allowNo": false,
|
|
522
|
-
"type": "boolean"
|
|
523
|
-
},
|
|
524
|
-
"no-color": {
|
|
525
|
-
"description": "Disable colored output",
|
|
526
|
-
"name": "no-color",
|
|
527
|
-
"allowNo": false,
|
|
528
|
-
"type": "boolean"
|
|
529
|
-
},
|
|
530
|
-
"account": {
|
|
531
|
-
"description": "Account name to use (when multiple accounts are configured)",
|
|
532
|
-
"name": "account",
|
|
533
|
-
"hasDynamicHelp": false,
|
|
534
|
-
"multiple": false,
|
|
535
|
-
"type": "option"
|
|
536
|
-
}
|
|
537
|
-
},
|
|
538
|
-
"hasDynamicHelp": false,
|
|
539
|
-
"hiddenAliases": [],
|
|
540
|
-
"id": "message:send",
|
|
541
|
-
"pluginAlias": "@linkedapi/linkedin-cli",
|
|
542
|
-
"pluginName": "@linkedapi/linkedin-cli",
|
|
543
|
-
"pluginType": "core",
|
|
544
|
-
"strict": true,
|
|
545
|
-
"enableJsonFlag": false,
|
|
546
|
-
"isESM": false,
|
|
547
|
-
"relativePath": [
|
|
548
|
-
"dist",
|
|
549
|
-
"commands",
|
|
550
|
-
"message",
|
|
551
|
-
"send.js"
|
|
552
|
-
]
|
|
553
|
-
},
|
|
554
459
|
"connection:list": {
|
|
555
460
|
"aliases": [],
|
|
556
461
|
"args": {},
|
|
@@ -1015,6 +920,147 @@
|
|
|
1015
920
|
"withdraw.js"
|
|
1016
921
|
]
|
|
1017
922
|
},
|
|
923
|
+
"message:get": {
|
|
924
|
+
"aliases": [],
|
|
925
|
+
"args": {
|
|
926
|
+
"person-url": {
|
|
927
|
+
"description": "LinkedIn profile URL",
|
|
928
|
+
"name": "person-url",
|
|
929
|
+
"required": true
|
|
930
|
+
}
|
|
931
|
+
},
|
|
932
|
+
"description": "Get conversation messages with a LinkedIn person",
|
|
933
|
+
"examples": [
|
|
934
|
+
"<%= config.bin %> message get https://www.linkedin.com/in/john-doe",
|
|
935
|
+
"<%= config.bin %> message get https://www.linkedin.com/in/john-doe --since 2024-01-15T10:30:00Z"
|
|
936
|
+
],
|
|
937
|
+
"flags": {
|
|
938
|
+
"json": {
|
|
939
|
+
"description": "Output as JSON",
|
|
940
|
+
"name": "json",
|
|
941
|
+
"allowNo": false,
|
|
942
|
+
"type": "boolean"
|
|
943
|
+
},
|
|
944
|
+
"fields": {
|
|
945
|
+
"description": "Comma-separated list of fields to include in output",
|
|
946
|
+
"name": "fields",
|
|
947
|
+
"hasDynamicHelp": false,
|
|
948
|
+
"multiple": false,
|
|
949
|
+
"type": "option"
|
|
950
|
+
},
|
|
951
|
+
"quiet": {
|
|
952
|
+
"char": "q",
|
|
953
|
+
"description": "Suppress progress output on stderr",
|
|
954
|
+
"name": "quiet",
|
|
955
|
+
"allowNo": false,
|
|
956
|
+
"type": "boolean"
|
|
957
|
+
},
|
|
958
|
+
"no-color": {
|
|
959
|
+
"description": "Disable colored output",
|
|
960
|
+
"name": "no-color",
|
|
961
|
+
"allowNo": false,
|
|
962
|
+
"type": "boolean"
|
|
963
|
+
},
|
|
964
|
+
"account": {
|
|
965
|
+
"description": "Account name to use (when multiple accounts are configured)",
|
|
966
|
+
"name": "account",
|
|
967
|
+
"hasDynamicHelp": false,
|
|
968
|
+
"multiple": false,
|
|
969
|
+
"type": "option"
|
|
970
|
+
},
|
|
971
|
+
"since": {
|
|
972
|
+
"description": "Retrieve messages since ISO timestamp",
|
|
973
|
+
"name": "since",
|
|
974
|
+
"hasDynamicHelp": false,
|
|
975
|
+
"multiple": false,
|
|
976
|
+
"type": "option"
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"hasDynamicHelp": false,
|
|
980
|
+
"hiddenAliases": [],
|
|
981
|
+
"id": "message:get",
|
|
982
|
+
"pluginAlias": "@linkedapi/linkedin-cli",
|
|
983
|
+
"pluginName": "@linkedapi/linkedin-cli",
|
|
984
|
+
"pluginType": "core",
|
|
985
|
+
"strict": true,
|
|
986
|
+
"enableJsonFlag": false,
|
|
987
|
+
"isESM": false,
|
|
988
|
+
"relativePath": [
|
|
989
|
+
"dist",
|
|
990
|
+
"commands",
|
|
991
|
+
"message",
|
|
992
|
+
"get.js"
|
|
993
|
+
]
|
|
994
|
+
},
|
|
995
|
+
"message:send": {
|
|
996
|
+
"aliases": [],
|
|
997
|
+
"args": {
|
|
998
|
+
"person-url": {
|
|
999
|
+
"description": "LinkedIn profile URL of the recipient",
|
|
1000
|
+
"name": "person-url",
|
|
1001
|
+
"required": true
|
|
1002
|
+
},
|
|
1003
|
+
"text": {
|
|
1004
|
+
"description": "Message text (up to 1900 characters)",
|
|
1005
|
+
"name": "text",
|
|
1006
|
+
"required": true
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"description": "Send a message to a LinkedIn person",
|
|
1010
|
+
"examples": [
|
|
1011
|
+
"<%= config.bin %> message send https://www.linkedin.com/in/john-doe \"Hello John!\""
|
|
1012
|
+
],
|
|
1013
|
+
"flags": {
|
|
1014
|
+
"json": {
|
|
1015
|
+
"description": "Output as JSON",
|
|
1016
|
+
"name": "json",
|
|
1017
|
+
"allowNo": false,
|
|
1018
|
+
"type": "boolean"
|
|
1019
|
+
},
|
|
1020
|
+
"fields": {
|
|
1021
|
+
"description": "Comma-separated list of fields to include in output",
|
|
1022
|
+
"name": "fields",
|
|
1023
|
+
"hasDynamicHelp": false,
|
|
1024
|
+
"multiple": false,
|
|
1025
|
+
"type": "option"
|
|
1026
|
+
},
|
|
1027
|
+
"quiet": {
|
|
1028
|
+
"char": "q",
|
|
1029
|
+
"description": "Suppress progress output on stderr",
|
|
1030
|
+
"name": "quiet",
|
|
1031
|
+
"allowNo": false,
|
|
1032
|
+
"type": "boolean"
|
|
1033
|
+
},
|
|
1034
|
+
"no-color": {
|
|
1035
|
+
"description": "Disable colored output",
|
|
1036
|
+
"name": "no-color",
|
|
1037
|
+
"allowNo": false,
|
|
1038
|
+
"type": "boolean"
|
|
1039
|
+
},
|
|
1040
|
+
"account": {
|
|
1041
|
+
"description": "Account name to use (when multiple accounts are configured)",
|
|
1042
|
+
"name": "account",
|
|
1043
|
+
"hasDynamicHelp": false,
|
|
1044
|
+
"multiple": false,
|
|
1045
|
+
"type": "option"
|
|
1046
|
+
}
|
|
1047
|
+
},
|
|
1048
|
+
"hasDynamicHelp": false,
|
|
1049
|
+
"hiddenAliases": [],
|
|
1050
|
+
"id": "message:send",
|
|
1051
|
+
"pluginAlias": "@linkedapi/linkedin-cli",
|
|
1052
|
+
"pluginName": "@linkedapi/linkedin-cli",
|
|
1053
|
+
"pluginType": "core",
|
|
1054
|
+
"strict": true,
|
|
1055
|
+
"enableJsonFlag": false,
|
|
1056
|
+
"isESM": false,
|
|
1057
|
+
"relativePath": [
|
|
1058
|
+
"dist",
|
|
1059
|
+
"commands",
|
|
1060
|
+
"message",
|
|
1061
|
+
"send.js"
|
|
1062
|
+
]
|
|
1063
|
+
},
|
|
1018
1064
|
"person:fetch": {
|
|
1019
1065
|
"aliases": [],
|
|
1020
1066
|
"args": {
|
|
@@ -2571,5 +2617,5 @@
|
|
|
2571
2617
|
]
|
|
2572
2618
|
}
|
|
2573
2619
|
},
|
|
2574
|
-
"version": "1.0.
|
|
2620
|
+
"version": "1.0.8"
|
|
2575
2621
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linkedapi/linkedin-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "AI-agent-friendly CLI for controlling LinkedIn accounts and retrieving real-time data.",
|
|
5
5
|
"author": "Linked API",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"ai-agent"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@linkedapi/node": "^1.2.
|
|
46
|
+
"@linkedapi/node": "^1.2.17",
|
|
47
47
|
"@oclif/core": "^4.2.10"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|