@linkedapi/linkedin-cli 1.0.4 → 1.0.6

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 (175) hide show
  1. package/README.md +6 -0
  2. package/dist/base-command.d.ts +15 -0
  3. package/dist/base-command.d.ts.map +1 -0
  4. package/dist/base-command.js +77 -0
  5. package/dist/base-command.js.map +1 -0
  6. package/dist/commands/account/list.d.ts +7 -0
  7. package/dist/commands/account/list.d.ts.map +1 -0
  8. package/dist/commands/account/list.js +28 -0
  9. package/dist/commands/account/list.js.map +1 -0
  10. package/dist/commands/account/rename.d.ts +13 -0
  11. package/dist/commands/account/rename.d.ts.map +1 -0
  12. package/dist/commands/account/rename.js +36 -0
  13. package/dist/commands/account/rename.js.map +1 -0
  14. package/dist/commands/account/switch.d.ts +10 -0
  15. package/dist/commands/account/switch.d.ts.map +1 -0
  16. package/dist/commands/account/switch.js +29 -0
  17. package/dist/commands/account/switch.js.map +1 -0
  18. package/dist/commands/company/fetch.d.ts +30 -0
  19. package/dist/commands/company/fetch.d.ts.map +1 -0
  20. package/dist/commands/company/fetch.js +129 -0
  21. package/dist/commands/company/fetch.js.map +1 -0
  22. package/dist/commands/company/search.d.ts +19 -0
  23. package/dist/commands/company/search.d.ts.map +1 -0
  24. package/dist/commands/company/search.js +67 -0
  25. package/dist/commands/company/search.js.map +1 -0
  26. package/dist/commands/connection/list.d.ts +24 -0
  27. package/dist/commands/connection/list.d.ts.map +1 -0
  28. package/dist/commands/connection/list.js +92 -0
  29. package/dist/commands/connection/list.js.map +1 -0
  30. package/dist/commands/connection/pending.d.ts +14 -0
  31. package/dist/commands/connection/pending.d.ts.map +1 -0
  32. package/dist/commands/connection/pending.js +33 -0
  33. package/dist/commands/connection/pending.js.map +1 -0
  34. package/dist/commands/connection/remove.d.ts +17 -0
  35. package/dist/commands/connection/remove.d.ts.map +1 -0
  36. package/dist/commands/connection/remove.js +43 -0
  37. package/dist/commands/connection/remove.js.map +1 -0
  38. package/dist/commands/connection/send.d.ts +19 -0
  39. package/dist/commands/connection/send.d.ts.map +1 -0
  40. package/dist/commands/connection/send.js +55 -0
  41. package/dist/commands/connection/send.js.map +1 -0
  42. package/dist/commands/connection/status.d.ts +17 -0
  43. package/dist/commands/connection/status.d.ts.map +1 -0
  44. package/dist/commands/connection/status.js +44 -0
  45. package/dist/commands/connection/status.js.map +1 -0
  46. package/dist/commands/connection/withdraw.d.ts +18 -0
  47. package/dist/commands/connection/withdraw.d.ts.map +1 -0
  48. package/dist/commands/connection/withdraw.js +49 -0
  49. package/dist/commands/connection/withdraw.js.map +1 -0
  50. package/dist/commands/message/get.d.ts +18 -0
  51. package/dist/commands/message/get.d.ts.map +1 -0
  52. package/dist/commands/message/get.js +81 -0
  53. package/dist/commands/message/get.js.map +1 -0
  54. package/dist/commands/message/send.d.ts +18 -0
  55. package/dist/commands/message/send.d.ts.map +1 -0
  56. package/dist/commands/message/send.js +48 -0
  57. package/dist/commands/message/send.js.map +1 -0
  58. package/dist/commands/navigator/company/fetch.d.ts +28 -0
  59. package/dist/commands/navigator/company/fetch.d.ts.map +1 -0
  60. package/dist/commands/navigator/company/fetch.js +115 -0
  61. package/dist/commands/navigator/company/fetch.js.map +1 -0
  62. package/dist/commands/navigator/company/search.d.ts +21 -0
  63. package/dist/commands/navigator/company/search.d.ts.map +1 -0
  64. package/dist/commands/navigator/company/search.js +80 -0
  65. package/dist/commands/navigator/company/search.js.map +1 -0
  66. package/dist/commands/navigator/message/get.d.ts +18 -0
  67. package/dist/commands/navigator/message/get.d.ts.map +1 -0
  68. package/dist/commands/navigator/message/get.js +80 -0
  69. package/dist/commands/navigator/message/get.js.map +1 -0
  70. package/dist/commands/navigator/message/send.d.ts +19 -0
  71. package/dist/commands/navigator/message/send.d.ts.map +1 -0
  72. package/dist/commands/navigator/message/send.js +53 -0
  73. package/dist/commands/navigator/message/send.js.map +1 -0
  74. package/dist/commands/navigator/person/fetch.d.ts +17 -0
  75. package/dist/commands/navigator/person/fetch.d.ts.map +1 -0
  76. package/dist/commands/navigator/person/fetch.js +44 -0
  77. package/dist/commands/navigator/person/fetch.js.map +1 -0
  78. package/dist/commands/navigator/person/search.d.ts +25 -0
  79. package/dist/commands/navigator/person/search.d.ts.map +1 -0
  80. package/dist/commands/navigator/person/search.js +99 -0
  81. package/dist/commands/navigator/person/search.js.map +1 -0
  82. package/dist/commands/person/fetch.d.ts +30 -0
  83. package/dist/commands/person/fetch.d.ts.map +1 -0
  84. package/dist/commands/person/fetch.js +130 -0
  85. package/dist/commands/person/fetch.js.map +1 -0
  86. package/dist/commands/person/search.d.ts +24 -0
  87. package/dist/commands/person/search.d.ts.map +1 -0
  88. package/dist/commands/person/search.js +95 -0
  89. package/dist/commands/person/search.js.map +1 -0
  90. package/dist/commands/post/comment.d.ts +19 -0
  91. package/dist/commands/post/comment.d.ts.map +1 -0
  92. package/dist/commands/post/comment.js +54 -0
  93. package/dist/commands/post/comment.js.map +1 -0
  94. package/dist/commands/post/create.d.ts +19 -0
  95. package/dist/commands/post/create.d.ts.map +1 -0
  96. package/dist/commands/post/create.js +89 -0
  97. package/dist/commands/post/create.js.map +1 -0
  98. package/dist/commands/post/fetch.d.ts +23 -0
  99. package/dist/commands/post/fetch.d.ts.map +1 -0
  100. package/dist/commands/post/fetch.js +88 -0
  101. package/dist/commands/post/fetch.js.map +1 -0
  102. package/dist/commands/post/react.d.ts +19 -0
  103. package/dist/commands/post/react.d.ts.map +1 -0
  104. package/dist/commands/post/react.js +55 -0
  105. package/dist/commands/post/react.js.map +1 -0
  106. package/dist/commands/reset.d.ts +10 -0
  107. package/dist/commands/reset.d.ts.map +1 -0
  108. package/dist/commands/reset.js +50 -0
  109. package/dist/commands/reset.js.map +1 -0
  110. package/dist/commands/setup.d.ts +11 -0
  111. package/dist/commands/setup.d.ts.map +1 -0
  112. package/dist/commands/setup.js +118 -0
  113. package/dist/commands/setup.js.map +1 -0
  114. package/dist/commands/stats/performance.d.ts +14 -0
  115. package/dist/commands/stats/performance.d.ts.map +1 -0
  116. package/dist/commands/stats/performance.js +33 -0
  117. package/dist/commands/stats/performance.js.map +1 -0
  118. package/dist/commands/stats/ssi.d.ts +14 -0
  119. package/dist/commands/stats/ssi.d.ts.map +1 -0
  120. package/dist/commands/stats/ssi.js +33 -0
  121. package/dist/commands/stats/ssi.js.map +1 -0
  122. package/dist/commands/stats/usage.d.ts +16 -0
  123. package/dist/commands/stats/usage.d.ts.map +1 -0
  124. package/dist/commands/stats/usage.js +47 -0
  125. package/dist/commands/stats/usage.js.map +1 -0
  126. package/dist/commands/workflow/run.d.ts +15 -0
  127. package/dist/commands/workflow/run.d.ts.map +1 -0
  128. package/dist/commands/workflow/run.js +89 -0
  129. package/dist/commands/workflow/run.js.map +1 -0
  130. package/dist/commands/workflow/status.d.ts +18 -0
  131. package/dist/commands/workflow/status.d.ts.map +1 -0
  132. package/dist/commands/workflow/status.js +75 -0
  133. package/dist/commands/workflow/status.js.map +1 -0
  134. package/dist/core/auth/auth-manager.d.ts +7 -0
  135. package/dist/core/auth/auth-manager.d.ts.map +1 -0
  136. package/dist/core/auth/auth-manager.js +35 -0
  137. package/dist/core/auth/auth-manager.js.map +1 -0
  138. package/dist/core/auth/config-store.d.ts +22 -0
  139. package/dist/core/auth/config-store.d.ts.map +1 -0
  140. package/dist/core/auth/config-store.js +195 -0
  141. package/dist/core/auth/config-store.js.map +1 -0
  142. package/dist/core/client/build-client.d.ts +8 -0
  143. package/dist/core/client/build-client.d.ts.map +1 -0
  144. package/dist/core/client/build-client.js +11 -0
  145. package/dist/core/client/build-client.js.map +1 -0
  146. package/dist/core/errors/error-handler.d.ts +12 -0
  147. package/dist/core/errors/error-handler.d.ts.map +1 -0
  148. package/dist/core/errors/error-handler.js +71 -0
  149. package/dist/core/errors/error-handler.js.map +1 -0
  150. package/dist/core/errors/exit-codes.d.ts +13 -0
  151. package/dist/core/errors/exit-codes.d.ts.map +1 -0
  152. package/dist/core/errors/exit-codes.js +15 -0
  153. package/dist/core/errors/exit-codes.js.map +1 -0
  154. package/dist/core/output/field-selector.d.ts +2 -0
  155. package/dist/core/output/field-selector.d.ts.map +1 -0
  156. package/dist/core/output/field-selector.js +24 -0
  157. package/dist/core/output/field-selector.js.map +1 -0
  158. package/dist/core/output/formatter.d.ts +15 -0
  159. package/dist/core/output/formatter.d.ts.map +1 -0
  160. package/dist/core/output/formatter.js +152 -0
  161. package/dist/core/output/formatter.js.map +1 -0
  162. package/dist/core/workflow/workflow-runner.d.ts +8 -0
  163. package/dist/core/workflow/workflow-runner.d.ts.map +1 -0
  164. package/dist/core/workflow/workflow-runner.js +27 -0
  165. package/dist/core/workflow/workflow-runner.js.map +1 -0
  166. package/dist/index.d.ts +2 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +6 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/utils/tty.d.ts +4 -0
  171. package/dist/utils/tty.d.ts.map +1 -0
  172. package/dist/utils/tty.js +18 -0
  173. package/dist/utils/tty.js.map +1 -0
  174. package/oclif.manifest.json +2573 -2
  175. package/package.json +3 -3
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("node:fs");
4
+ const core_1 = require("@oclif/core");
5
+ const _base_command_1 = require("../../base-command");
6
+ const formatter_1 = require("../../core/output/formatter");
7
+ const workflow_runner_1 = require("../../core/workflow/workflow-runner");
8
+ const tty_1 = require("../../utils/tty");
9
+ class WorkflowRun extends _base_command_1.BaseCommand {
10
+ static description = `Execute a custom workflow definition.
11
+
12
+ A workflow is a JSON object describing one or more LinkedIn actions to run sequentially.
13
+ See https://linkedapi.io/docs/building-workflows/ for the workflow format.
14
+ Available actions: https://linkedapi.io/docs/actions-overview/`;
15
+ static flags = {
16
+ ..._base_command_1.BaseCommand.baseFlags,
17
+ file: core_1.Flags.string({
18
+ description: 'Path to workflow JSON file',
19
+ char: 'f',
20
+ }),
21
+ };
22
+ static examples = [
23
+ '<%= config.bin %> workflow run --file workflow.json',
24
+ 'cat workflow.json | <%= config.bin %> workflow run',
25
+ ];
26
+ async run() {
27
+ const { flags } = await this.parse(WorkflowRun);
28
+ const client = await this.buildAuthenticatedClient();
29
+ let workflowJson;
30
+ if (flags.file) {
31
+ if (!fs.existsSync(flags.file)) {
32
+ process.stderr.write(`File not found: ${flags.file}\n`);
33
+ this.exit(1);
34
+ return;
35
+ }
36
+ workflowJson = fs.readFileSync(flags.file, 'utf-8');
37
+ }
38
+ else if ((0, tty_1.isStdinTty)()) {
39
+ process.stderr.write('No workflow definition provided. Use --file or pipe via stdin.\n');
40
+ this.exit(5);
41
+ return;
42
+ }
43
+ else {
44
+ workflowJson = await readStdin();
45
+ if (!workflowJson.trim()) {
46
+ process.stderr.write('No workflow definition provided via stdin.\n');
47
+ this.exit(5);
48
+ return;
49
+ }
50
+ }
51
+ let definition;
52
+ try {
53
+ definition = JSON.parse(workflowJson);
54
+ }
55
+ catch {
56
+ process.stderr.write('Invalid JSON in workflow definition.\n');
57
+ this.exit(1);
58
+ return;
59
+ }
60
+ try {
61
+ const result = await (0, workflow_runner_1.runWorkflow)(client.customWorkflow, definition, {
62
+ isQuiet: flags.quiet,
63
+ });
64
+ (0, formatter_1.formatOutput)({
65
+ data: result.data,
66
+ errors: result.errors,
67
+ isJson: flags.json,
68
+ fields: flags.fields,
69
+ isQuiet: flags.quiet,
70
+ });
71
+ }
72
+ catch (error) {
73
+ this.handleError(error);
74
+ }
75
+ }
76
+ }
77
+ exports.default = WorkflowRun;
78
+ function readStdin() {
79
+ return new Promise((resolve, reject) => {
80
+ let data = '';
81
+ process.stdin.setEncoding('utf-8');
82
+ process.stdin.on('data', (chunk) => {
83
+ data += chunk;
84
+ });
85
+ process.stdin.on('end', () => resolve(data));
86
+ process.stdin.on('error', reject);
87
+ });
88
+ }
89
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/workflow/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class WorkflowStatus extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ wait: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ fields: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ 'no-color': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ account: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ };
15
+ static examples: string[];
16
+ run(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/workflow/status.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,OAAgB,WAAW,SAEsE;IAEjG,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,KAAK;;;;;;;MAMnB;IAEF,OAAgB,QAAQ,WAGtB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgDlC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const _base_command_1 = require("../../base-command");
5
+ const formatter_1 = require("../../core/output/formatter");
6
+ class WorkflowStatus extends _base_command_1.BaseCommand {
7
+ static description = `Check status of a running workflow or wait for completion.
8
+
9
+ See https://linkedapi.io/docs/executing-workflows/ for details on workflow execution and polling.`;
10
+ static args = {
11
+ id: core_1.Args.string({
12
+ description: 'Workflow ID',
13
+ required: true,
14
+ }),
15
+ };
16
+ static flags = {
17
+ ..._base_command_1.BaseCommand.baseFlags,
18
+ wait: core_1.Flags.boolean({
19
+ description: 'Wait for workflow to complete',
20
+ default: false,
21
+ }),
22
+ };
23
+ static examples = [
24
+ '<%= config.bin %> workflow status abc123',
25
+ '<%= config.bin %> workflow status abc123 --wait --json',
26
+ ];
27
+ async run() {
28
+ const { args, flags } = await this.parse(WorkflowStatus);
29
+ const client = await this.buildAuthenticatedClient();
30
+ try {
31
+ if (flags.wait) {
32
+ if (!flags.quiet) {
33
+ process.stderr.write(`Waiting for workflow ${args.id}...\n`);
34
+ }
35
+ const result = await client.customWorkflow.result(args.id);
36
+ (0, formatter_1.formatOutput)({
37
+ data: result.data,
38
+ errors: result.errors,
39
+ isJson: flags.json,
40
+ fields: flags.fields,
41
+ isQuiet: flags.quiet,
42
+ });
43
+ }
44
+ else {
45
+ const status = await client.customWorkflow.status(args.id);
46
+ if (status === 'running') {
47
+ (0, formatter_1.formatOutput)({
48
+ data: {
49
+ workflowId: args.id,
50
+ status: 'running',
51
+ },
52
+ errors: [],
53
+ isJson: flags.json,
54
+ fields: flags.fields,
55
+ isQuiet: flags.quiet,
56
+ });
57
+ }
58
+ else {
59
+ (0, formatter_1.formatOutput)({
60
+ data: status.data,
61
+ errors: status.errors,
62
+ isJson: flags.json,
63
+ fields: flags.fields,
64
+ isQuiet: flags.quiet,
65
+ });
66
+ }
67
+ }
68
+ }
69
+ catch (error) {
70
+ this.handleError(error);
71
+ }
72
+ }
73
+ }
74
+ exports.default = WorkflowStatus;
75
+ //# sourceMappingURL=status.js.map
@@ -0,0 +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;oBACzB,IAAA,wBAAY,EAAC;wBACX,IAAI,EAAE;4BACJ,UAAU,EAAE,IAAI,CAAC,EAAE;4BACnB,MAAM,EAAE,SAAS;yBAClB;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"}
@@ -0,0 +1,7 @@
1
+ interface TAuthTokens {
2
+ linkedApiToken: string;
3
+ identificationToken: string;
4
+ }
5
+ export declare function resolveAuthTokens(accountOverride?: string): TAuthTokens;
6
+ export {};
7
+ //# sourceMappingURL=auth-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../../src/core/auth/auth-manager.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAaD,wBAAgB,iBAAiB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CAwBvE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveAuthTokens = resolveAuthTokens;
4
+ const config_store_1 = require("./config-store");
5
+ const NO_TOKENS_MESSAGE = `Authentication required.
6
+
7
+ To use this CLI, you need a Linked API account with a connected LinkedIn profile.
8
+
9
+ 1. Create an account at https://app.linkedapi.io
10
+ 2. Connect your LinkedIn account on the platform
11
+ 3. Copy your Linked API Token and Identification Token from the dashboard
12
+ 4. Run: linkedin setup
13
+
14
+ Learn more: https://linkedapi.io/docs/getting-started`;
15
+ function resolveAuthTokens(accountOverride) {
16
+ if (accountOverride) {
17
+ const account = (0, config_store_1.findAccountByName)(accountOverride);
18
+ if (!account) {
19
+ throw new Error(`Account "${accountOverride}" not found. Run "linkedin account list" to see available accounts.`);
20
+ }
21
+ return {
22
+ linkedApiToken: account.linkedApiToken,
23
+ identificationToken: account.identificationToken,
24
+ };
25
+ }
26
+ const config = (0, config_store_1.readConfig)();
27
+ if (config) {
28
+ return {
29
+ linkedApiToken: config.linkedApiToken,
30
+ identificationToken: config.identificationToken,
31
+ };
32
+ }
33
+ throw new Error(NO_TOKENS_MESSAGE);
34
+ }
35
+ //# sourceMappingURL=auth-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../../src/core/auth/auth-manager.ts"],"names":[],"mappings":";;AAkBA,8CAwBC;AA1CD,iDAA+D;AAO/D,MAAM,iBAAiB,GAAG;;;;;;;;;sDAS4B,CAAC;AAEvD,SAAgB,iBAAiB,CAAC,eAAwB;IACxD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAA,gCAAiB,EAAC,eAAe,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,eAAe,qEAAqE,CAAC,CAAC;QACpH,CAAC;QAED,OAAO;YACL,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,yBAAU,GAAE,CAAC;IAE5B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,22 @@
1
+ interface TAccountEntry {
2
+ name: string;
3
+ linkedApiToken: string;
4
+ identificationToken: string;
5
+ }
6
+ export declare function readConfig(): {
7
+ linkedApiToken: string;
8
+ identificationToken: string;
9
+ } | undefined;
10
+ export declare function addAccount(account: TAccountEntry): void;
11
+ export declare function removeCurrentAccount(): TAccountEntry | undefined;
12
+ export declare function removeAllAccounts(): number;
13
+ export declare function listAccounts(): Array<TAccountEntry & {
14
+ isCurrent: boolean;
15
+ }>;
16
+ export declare function setCurrentAccount(identificationToken: string): boolean;
17
+ export declare function findAccountByName(nameQuery: string): TAccountEntry | undefined;
18
+ export declare function renameAccount(identificationToken: string, newName: string): boolean;
19
+ export declare function deleteConfig(): boolean;
20
+ export declare function getConfigFilePath(): string;
21
+ export {};
22
+ //# sourceMappingURL=config-store.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readConfig = readConfig;
4
+ exports.addAccount = addAccount;
5
+ exports.removeCurrentAccount = removeCurrentAccount;
6
+ exports.removeAllAccounts = removeAllAccounts;
7
+ exports.listAccounts = listAccounts;
8
+ exports.setCurrentAccount = setCurrentAccount;
9
+ exports.findAccountByName = findAccountByName;
10
+ exports.renameAccount = renameAccount;
11
+ exports.deleteConfig = deleteConfig;
12
+ exports.getConfigFilePath = getConfigFilePath;
13
+ const fs = require("node:fs");
14
+ const os = require("node:os");
15
+ const path = require("node:path");
16
+ function getConfigDir() {
17
+ const xdgConfig = process.env.XDG_CONFIG_HOME;
18
+ if (xdgConfig) {
19
+ return path.join(xdgConfig, 'linkedin-cli');
20
+ }
21
+ return path.join(os.homedir(), '.config', 'linkedin-cli');
22
+ }
23
+ function getConfigPath() {
24
+ return path.join(getConfigDir(), 'config.json');
25
+ }
26
+ function readRawConfig() {
27
+ const configPath = getConfigPath();
28
+ if (!fs.existsSync(configPath)) {
29
+ return undefined;
30
+ }
31
+ try {
32
+ const raw = fs.readFileSync(configPath, 'utf-8');
33
+ const parsed = JSON.parse(raw);
34
+ // Auto-migrate legacy format
35
+ if ('linkedApiToken' in parsed && !('accounts' in parsed)) {
36
+ const legacy = parsed;
37
+ const migrated = {
38
+ accounts: [
39
+ {
40
+ name: 'default',
41
+ linkedApiToken: legacy.linkedApiToken,
42
+ identificationToken: legacy.identificationToken,
43
+ },
44
+ ],
45
+ currentAccount: legacy.identificationToken,
46
+ };
47
+ saveRawConfig(migrated);
48
+ return migrated;
49
+ }
50
+ const multi = parsed;
51
+ if (multi.accounts && multi.accounts.length > 0) {
52
+ return multi;
53
+ }
54
+ return undefined;
55
+ }
56
+ catch {
57
+ return undefined;
58
+ }
59
+ }
60
+ function saveRawConfig(config) {
61
+ const configDir = getConfigDir();
62
+ if (!fs.existsSync(configDir)) {
63
+ fs.mkdirSync(configDir, {
64
+ recursive: true,
65
+ });
66
+ }
67
+ const configPath = getConfigPath();
68
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2), {
69
+ mode: 0o600,
70
+ });
71
+ }
72
+ function readConfig() {
73
+ const config = readRawConfig();
74
+ if (!config) {
75
+ return undefined;
76
+ }
77
+ const current = config.accounts.find((account) => account.identificationToken === config.currentAccount);
78
+ if (!current) {
79
+ // Fallback to first account
80
+ const first = config.accounts[0];
81
+ if (!first) {
82
+ return undefined;
83
+ }
84
+ return {
85
+ linkedApiToken: first.linkedApiToken,
86
+ identificationToken: first.identificationToken,
87
+ };
88
+ }
89
+ return {
90
+ linkedApiToken: current.linkedApiToken,
91
+ identificationToken: current.identificationToken,
92
+ };
93
+ }
94
+ function addAccount(account) {
95
+ const config = readRawConfig() ?? {
96
+ accounts: [],
97
+ currentAccount: '',
98
+ };
99
+ const existingIndex = config.accounts.findIndex((existing) => existing.identificationToken === account.identificationToken);
100
+ if (existingIndex >= 0) {
101
+ config.accounts[existingIndex] = account;
102
+ }
103
+ else {
104
+ config.accounts.push(account);
105
+ }
106
+ config.currentAccount = account.identificationToken;
107
+ saveRawConfig(config);
108
+ }
109
+ function removeCurrentAccount() {
110
+ const config = readRawConfig();
111
+ if (!config) {
112
+ return undefined;
113
+ }
114
+ const currentIndex = config.accounts.findIndex((account) => account.identificationToken === config.currentAccount);
115
+ if (currentIndex < 0) {
116
+ return undefined;
117
+ }
118
+ const removed = config.accounts.splice(currentIndex, 1)[0];
119
+ if (config.accounts.length > 0) {
120
+ config.currentAccount = config.accounts[0].identificationToken;
121
+ }
122
+ else {
123
+ config.currentAccount = '';
124
+ }
125
+ saveRawConfig(config);
126
+ return removed;
127
+ }
128
+ function removeAllAccounts() {
129
+ const config = readRawConfig();
130
+ if (!config) {
131
+ return 0;
132
+ }
133
+ const count = config.accounts.length;
134
+ saveRawConfig({
135
+ accounts: [],
136
+ currentAccount: '',
137
+ });
138
+ return count;
139
+ }
140
+ function listAccounts() {
141
+ const config = readRawConfig();
142
+ if (!config) {
143
+ return [];
144
+ }
145
+ return config.accounts.map((account) => ({
146
+ ...account,
147
+ isCurrent: account.identificationToken === config.currentAccount,
148
+ }));
149
+ }
150
+ function setCurrentAccount(identificationToken) {
151
+ const config = readRawConfig();
152
+ if (!config) {
153
+ return false;
154
+ }
155
+ const account = config.accounts.find((account) => account.identificationToken === identificationToken);
156
+ if (!account) {
157
+ return false;
158
+ }
159
+ config.currentAccount = identificationToken;
160
+ saveRawConfig(config);
161
+ return true;
162
+ }
163
+ function findAccountByName(nameQuery) {
164
+ const config = readRawConfig();
165
+ if (!config) {
166
+ return undefined;
167
+ }
168
+ const lowerQuery = nameQuery.toLowerCase();
169
+ return config.accounts.find((account) => account.name.toLowerCase().includes(lowerQuery));
170
+ }
171
+ function renameAccount(identificationToken, newName) {
172
+ const config = readRawConfig();
173
+ if (!config) {
174
+ return false;
175
+ }
176
+ const account = config.accounts.find((account) => account.identificationToken === identificationToken);
177
+ if (!account) {
178
+ return false;
179
+ }
180
+ account.name = newName;
181
+ saveRawConfig(config);
182
+ return true;
183
+ }
184
+ function deleteConfig() {
185
+ const configPath = getConfigPath();
186
+ if (!fs.existsSync(configPath)) {
187
+ return false;
188
+ }
189
+ fs.unlinkSync(configPath);
190
+ return true;
191
+ }
192
+ function getConfigFilePath() {
193
+ return getConfigPath();
194
+ }
195
+ //# sourceMappingURL=config-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../../src/core/auth/config-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import LinkedApi from '@linkedapi/node';
2
+ interface TClientTokens {
3
+ linkedApiToken: string;
4
+ identificationToken: string;
5
+ }
6
+ export declare function buildClient(tokens: TClientTokens): LinkedApi;
7
+ export {};
8
+ //# sourceMappingURL=build-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-client.d.ts","sourceRoot":"","sources":["../../../src/core/client/build-client.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAK5D"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildClient = buildClient;
4
+ const node_1 = require("@linkedapi/node");
5
+ function buildClient(tokens) {
6
+ return new node_1.default({
7
+ ...tokens,
8
+ client: 'cli'
9
+ });
10
+ }
11
+ //# sourceMappingURL=build-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-client.js","sourceRoot":"","sources":["../../../src/core/client/build-client.ts"],"names":[],"mappings":";;AAOA,kCAKC;AAZD,0CAAwC;AAOxC,SAAgB,WAAW,CAAC,MAAqB;IAC/C,OAAO,IAAI,cAAS,CAAC;QACnB,GAAG,MAAM;QACT,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { LinkedApiError } from '@linkedapi/node';
2
+ import { TExitCode } from './exit-codes';
3
+ interface TCliError {
4
+ exitCode: TExitCode;
5
+ error: string;
6
+ message: string;
7
+ workflowId?: string;
8
+ }
9
+ export declare function mapLinkedApiErrorToCliError(error: LinkedApiError): TCliError;
10
+ export declare function writeErrorToStderr(cliError: TCliError): void;
11
+ export {};
12
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +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;CACrB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CA2D5E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAW5D"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapLinkedApiErrorToCliError = mapLinkedApiErrorToCliError;
4
+ exports.writeErrorToStderr = writeErrorToStderr;
5
+ const node_1 = require("@linkedapi/node");
6
+ const exit_codes_1 = require("./exit-codes");
7
+ function mapLinkedApiErrorToCliError(error) {
8
+ if (error instanceof node_1.LinkedApiWorkflowTimeoutError) {
9
+ return {
10
+ exitCode: exit_codes_1.EXIT_CODE.TIMEOUT,
11
+ error: 'workflowTimeout',
12
+ message: `Workflow timed out. Use 'linkedin workflow status ${error.workflowId} --wait' to continue polling.`,
13
+ workflowId: error.workflowId,
14
+ };
15
+ }
16
+ switch (error.type) {
17
+ case 'linkedApiTokenRequired':
18
+ case 'invalidLinkedApiToken':
19
+ case 'identificationTokenRequired':
20
+ case 'invalidIdentificationToken':
21
+ return {
22
+ exitCode: exit_codes_1.EXIT_CODE.AUTH,
23
+ error: error.type,
24
+ message: error.message,
25
+ };
26
+ case 'subscriptionRequired':
27
+ case 'plusPlanRequired':
28
+ return {
29
+ exitCode: exit_codes_1.EXIT_CODE.SUBSCRIPTION,
30
+ error: error.type,
31
+ message: error.message,
32
+ };
33
+ case 'linkedinAccountSignedOut':
34
+ case 'languageNotSupported':
35
+ return {
36
+ exitCode: exit_codes_1.EXIT_CODE.ACCOUNT,
37
+ error: error.type,
38
+ message: error.message,
39
+ };
40
+ case 'invalidRequestPayload':
41
+ case 'invalidWorkflow':
42
+ return {
43
+ exitCode: exit_codes_1.EXIT_CODE.VALIDATION,
44
+ error: error.type,
45
+ message: error.message,
46
+ };
47
+ case 'httpError':
48
+ return {
49
+ exitCode: exit_codes_1.EXIT_CODE.NETWORK,
50
+ error: error.type,
51
+ message: error.message,
52
+ };
53
+ default:
54
+ return {
55
+ exitCode: exit_codes_1.EXIT_CODE.GENERAL,
56
+ error: error.type,
57
+ message: error.message,
58
+ };
59
+ }
60
+ }
61
+ function writeErrorToStderr(cliError) {
62
+ const output = {
63
+ error: cliError.error,
64
+ message: cliError.message,
65
+ };
66
+ if (cliError.workflowId) {
67
+ output.workflowId = cliError.workflowId;
68
+ }
69
+ process.stderr.write(JSON.stringify(output) + '\n');
70
+ }
71
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/core/errors/error-handler.ts"],"names":[],"mappings":";;AAWA,kEA2DC;AAED,gDAWC;AAnFD,0CAAgF;AAEhF,6CAAoD;AASpD,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;aACvB,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;AACtD,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const EXIT_CODE: {
2
+ readonly SUCCESS: 0;
3
+ readonly GENERAL: 1;
4
+ readonly AUTH: 2;
5
+ readonly SUBSCRIPTION: 3;
6
+ readonly ACCOUNT: 4;
7
+ readonly VALIDATION: 5;
8
+ readonly RATE_LIMIT: 6;
9
+ readonly NETWORK: 7;
10
+ readonly TIMEOUT: 8;
11
+ };
12
+ export type TExitCode = (typeof EXIT_CODE)[keyof typeof EXIT_CODE];
13
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../../src/core/errors/exit-codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;CAUZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EXIT_CODE = void 0;
4
+ exports.EXIT_CODE = {
5
+ SUCCESS: 0,
6
+ GENERAL: 1,
7
+ AUTH: 2,
8
+ SUBSCRIPTION: 3,
9
+ ACCOUNT: 4,
10
+ VALIDATION: 5,
11
+ RATE_LIMIT: 6,
12
+ NETWORK: 7,
13
+ TIMEOUT: 8,
14
+ };
15
+ //# sourceMappingURL=exit-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../../src/core/errors/exit-codes.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function selectFields(data: unknown, fields: string): unknown;
2
+ //# sourceMappingURL=field-selector.d.ts.map