@linkedapi/linkedin-cli 1.2.19 → 1.2.20

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.
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/post/search.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,OAAgB,WAAW,SAAkC;IAE7D,OAAgB,KAAK;;;;;;;;;;;;;;;;;;MA0CnB;IAEF,OAAgB,QAAQ,WAItB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ClC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/post/search.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,OAAgB,WAAW,SAAkC;IAE7D,OAAgB,KAAK;;;;;;;;;;;;;;;;;;MA+CnB;IAEF,OAAgB,QAAQ,WAKtB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6DlC"}
@@ -4,6 +4,7 @@ const core_1 = require("@oclif/core");
4
4
  const _base_command_1 = require("../../base-command");
5
5
  const formatter_1 = require("../../core/output/formatter");
6
6
  const workflow_runner_1 = require("../../core/workflow/workflow-runner");
7
+ const post_search_actor_filter_1 = require("../../utils/post-search-actor-filter");
7
8
  class PostSearch extends _base_command_1.BaseCommand {
8
9
  static description = 'Search for posts on LinkedIn';
9
10
  static flags = {
@@ -30,19 +31,19 @@ class PostSearch extends _base_command_1.BaseCommand {
30
31
  description: 'Filter by author relationship (comma-separated: me, firstConnections, peopleYouFollow)',
31
32
  }),
32
33
  'from-members': core_1.Flags.string({
33
- description: 'Filter by names of people whose posts to keep (comma-separated)',
34
+ description: 'Filter by people whose posts to keep (comma-separated name or name:identifier, where the identifier is a member URN or profile URL)',
34
35
  }),
35
36
  'from-companies': core_1.Flags.string({
36
- description: 'Filter by names of companies whose posts to keep (comma-separated)',
37
+ description: 'Filter by companies whose posts to keep (comma-separated name or name:identifier, where the identifier is an organization URN or company URL)',
37
38
  }),
38
39
  'mentioning-members': core_1.Flags.string({
39
- description: 'Filter by names of people the post must mention (comma-separated)',
40
+ description: 'Filter by people the post must mention (comma-separated name or name:identifier, where the identifier is a member URN or profile URL)',
40
41
  }),
41
42
  'mentioning-companies': core_1.Flags.string({
42
- description: 'Filter by names of companies the post must mention (comma-separated)',
43
+ description: 'Filter by companies the post must mention (comma-separated name or name:identifier, where the identifier is an organization URN or company URL)',
43
44
  }),
44
45
  'author-companies': core_1.Flags.string({
45
- description: 'Filter by names of companies the author works at (comma-separated)',
46
+ description: 'Filter by companies the author works at (comma-separated name or name:identifier, where the identifier is an organization URN or company URL)',
46
47
  }),
47
48
  'author-industries': core_1.Flags.string({
48
49
  description: 'Filter by industries the author works in (comma-separated)',
@@ -52,6 +53,7 @@ class PostSearch extends _base_command_1.BaseCommand {
52
53
  '<%= config.bin %> post search --term "climate tech" --date-posted pastWeek --json',
53
54
  '<%= config.bin %> post search --term "product launch" --content-type images --sort latest --limit 20 --json',
54
55
  '<%= config.bin %> post search --term "hiring" --from-companies "Linked API" --posted-by "peopleYouFollow" --json',
56
+ '<%= config.bin %> post search --term "ai" --from-members "Bill Gates,Example Person:urn:li:member:123456789" --mentioning-companies "Example Company:https://www.linkedin.com/company/example-company" --json',
55
57
  ];
56
58
  async run() {
57
59
  const { flags } = await this.parse(PostSearch);
@@ -71,15 +73,30 @@ class PostSearch extends _base_command_1.BaseCommand {
71
73
  if (flags['posted-by'])
72
74
  filter.postedBy = splitCsv(flags['posted-by']);
73
75
  if (flags['from-members'])
74
- filter.fromMembers = splitCsv(flags['from-members']);
76
+ filter.fromMembers = (0, post_search_actor_filter_1.parsePostSearchActorFilter)({
77
+ value: flags['from-members'],
78
+ actorKind: 'member',
79
+ });
75
80
  if (flags['from-companies'])
76
- filter.fromCompanies = splitCsv(flags['from-companies']);
81
+ filter.fromCompanies = (0, post_search_actor_filter_1.parsePostSearchActorFilter)({
82
+ value: flags['from-companies'],
83
+ actorKind: 'company',
84
+ });
77
85
  if (flags['mentioning-members'])
78
- filter.mentioningMembers = splitCsv(flags['mentioning-members']);
86
+ filter.mentioningMembers = (0, post_search_actor_filter_1.parsePostSearchActorFilter)({
87
+ value: flags['mentioning-members'],
88
+ actorKind: 'member',
89
+ });
79
90
  if (flags['mentioning-companies'])
80
- filter.mentioningCompanies = splitCsv(flags['mentioning-companies']);
91
+ filter.mentioningCompanies = (0, post_search_actor_filter_1.parsePostSearchActorFilter)({
92
+ value: flags['mentioning-companies'],
93
+ actorKind: 'company',
94
+ });
81
95
  if (flags['author-companies'])
82
- filter.authorCompanies = splitCsv(flags['author-companies']);
96
+ filter.authorCompanies = (0, post_search_actor_filter_1.parsePostSearchActorFilter)({
97
+ value: flags['author-companies'],
98
+ actorKind: 'company',
99
+ });
83
100
  if (flags['author-industries'])
84
101
  filter.authorIndustries = splitCsv(flags['author-industries']);
85
102
  if (Object.keys(filter).length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/post/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/post/search.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AAEpC,iDAA4C;AAC5C,sDAAsD;AACtD,oEAA6D;AAC7D,8EAA6E;AAE7E,MAAqB,UAAW,SAAQ,2BAAW;IACjD,MAAM,CAAU,WAAW,GAAG,8BAA8B,CAAC;IAE7D,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,2BAAW,CAAC,SAAS;QACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,kCAAkC;SAChD,CAAC;QACF,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;SAChC,CAAC;QACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC;SAClD,CAAC;QACF,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;YAC3B,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;SACrE,CAAC;QACF,WAAW,EAAE,YAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EACT,wFAAwF;SAC3F,CAAC;QACF,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;YAC3B,WAAW,EACT,qIAAqI;SACxI,CAAC;QACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EACT,+IAA+I;SAClJ,CAAC;QACF,oBAAoB,EAAE,YAAK,CAAC,MAAM,CAAC;YACjC,WAAW,EACT,uIAAuI;SAC1I,CAAC;QACF,sBAAsB,EAAE,YAAK,CAAC,MAAM,CAAC;YACnC,WAAW,EACT,iJAAiJ;SACpJ,CAAC;QACF,kBAAkB,EAAE,YAAK,CAAC,MAAM,CAAC;YAC/B,WAAW,EACT,+IAA+I;SAClJ,CAAC;QACF,mBAAmB,EAAE,YAAK,CAAC,MAAM,CAAC;YAChC,WAAW,EAAE,4DAA4D;SAC1E,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG;QACzB,mFAAmF;QACnF,6GAA6G;QAC7G,kHAAkH;QAClH,+MAA+M;KAChN,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAErD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACzC,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE5C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACzC,IAAI,KAAK,CAAC,aAAa,CAAC;YAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,cAAc,CAAC;YAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,cAAc,CAAC;YACvB,MAAM,CAAC,WAAW,GAAG,IAAA,qDAA0B,EAAC;gBAC9C,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;gBAC5B,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,gBAAgB,CAAC;YACzB,MAAM,CAAC,aAAa,GAAG,IAAA,qDAA0B,EAAC;gBAChD,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBAC9B,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,oBAAoB,CAAC;YAC7B,MAAM,CAAC,iBAAiB,GAAG,IAAA,qDAA0B,EAAC;gBACpD,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC;gBAClC,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,sBAAsB,CAAC;YAC/B,MAAM,CAAC,mBAAmB,GAAG,IAAA,qDAA0B,EAAC;gBACtD,KAAK,EAAE,KAAK,CAAC,sBAAsB,CAAC;gBACpC,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,kBAAkB,CAAC;YAC3B,MAAM,CAAC,eAAe,GAAG,IAAA,qDAA0B,EAAC;gBAClD,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC;gBAChC,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,mBAAmB,CAAC;YAAE,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE/F,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE;gBAC3D,OAAO,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC,CAAC;YAEH,IAAA,wBAAY,EAAC;gBACX,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,KAAK,CAAC,IAAI;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;;AAvHH,6BAwHC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const LINKEDIN_IDENTIFIER_PATTERN: {
2
+ readonly startSource: "(?:urn:li:|https?:\\/\\/)";
3
+ readonly memberUrn: RegExp;
4
+ readonly organizationUrn: RegExp;
5
+ readonly personUrl: RegExp;
6
+ readonly companyUrl: RegExp;
7
+ readonly salesPersonUrl: RegExp;
8
+ readonly salesCompanyUrl: RegExp;
9
+ };
10
+ //# sourceMappingURL=linkedin-identifier-pattern.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin-identifier-pattern.d.ts","sourceRoot":"","sources":["../../src/utils/linkedin-identifier-pattern.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B;;;;;;;;CAU9B,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LINKEDIN_IDENTIFIER_PATTERN = void 0;
4
+ exports.LINKEDIN_IDENTIFIER_PATTERN = {
5
+ // An identifier is itself full of colons, so a `name:identifier` split cannot be positional: the
6
+ // name ends where a value that announces itself as a URN or a URL begins.
7
+ startSource: '(?:urn:li:|https?:\\/\\/)',
8
+ memberUrn: /^urn:li:member:\d+$/,
9
+ organizationUrn: /^urn:li:organization:\d+$/,
10
+ personUrl: /^https?:\/\/[^/]*linkedin\.com\/in\//i,
11
+ companyUrl: /^https?:\/\/[^/]*linkedin\.com\/company\//i,
12
+ salesPersonUrl: /^https?:\/\/[^/]*linkedin\.com\/sales\/(?:lead|people)\//i,
13
+ salesCompanyUrl: /^https?:\/\/[^/]*linkedin\.com\/sales\/company\//i,
14
+ };
15
+ //# sourceMappingURL=linkedin-identifier-pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin-identifier-pattern.js","sourceRoot":"","sources":["../../src/utils/linkedin-identifier-pattern.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG;IACzC,iGAAiG;IACjG,0EAA0E;IAC1E,WAAW,EAAE,2BAA2B;IACxC,SAAS,EAAE,qBAAqB;IAChC,eAAe,EAAE,2BAA2B;IAC5C,SAAS,EAAE,uCAAuC;IAClD,UAAU,EAAE,4CAA4C;IACxD,cAAc,EAAE,2DAA2D;IAC3E,eAAe,EAAE,mDAAmD;CAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"post-mention.d.ts","sourceRoot":"","sources":["../../src/utils/post-mention.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CA6BlE"}
1
+ {"version":3,"file":"post-mention.d.ts","sourceRoot":"","sources":["../../src/utils/post-mention.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CA6BlE"}
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parsePostMention = parsePostMention;
4
- const MEMBER_URN_PATTERN = /^urn:li:member:\d+$/;
5
- const ORGANIZATION_URN_PATTERN = /^urn:li:organization:\d+$/;
6
- const PERSON_URL_PATTERN = /^https?:\/\/[^/]*linkedin\.com\/in\//i;
7
- const COMPANY_URL_PATTERN = /^https?:\/\/[^/]*linkedin\.com\/company\//i;
8
- // The identifier is optional and is itself full of colons, so the split cannot be positional: the
9
- // name ends where a value that announces itself as a URN or a URL begins.
10
- const MENTION_PATTERN = /^([^:]+):(.*?)(?::((?:urn:li:|https?:\/\/).*))?$/;
4
+ const linkedin_identifier_pattern_1 = require("./linkedin-identifier-pattern");
5
+ const { memberUrn, organizationUrn, personUrl, companyUrl, startSource } = linkedin_identifier_pattern_1.LINKEDIN_IDENTIFIER_PATTERN;
6
+ const MENTION_PATTERN = new RegExp(`^([^:]+):(.*?)(?::(${startSource}.*))?$`);
11
7
  /**
12
8
  * Parses one `--mention` value: `key:name` or `key:name:identifier`.
13
9
  *
@@ -26,13 +22,13 @@ function parsePostMention(value) {
26
22
  if (!identifier) {
27
23
  return mention;
28
24
  }
29
- if (MEMBER_URN_PATTERN.test(identifier) || ORGANIZATION_URN_PATTERN.test(identifier)) {
25
+ if (memberUrn.test(identifier) || organizationUrn.test(identifier)) {
30
26
  mention.urn = identifier;
31
27
  }
32
- else if (PERSON_URL_PATTERN.test(identifier)) {
28
+ else if (personUrl.test(identifier)) {
33
29
  mention.personHashedUrl = identifier;
34
30
  }
35
- else if (COMPANY_URL_PATTERN.test(identifier)) {
31
+ else if (companyUrl.test(identifier)) {
36
32
  mention.companyHashedUrl = identifier;
37
33
  }
38
34
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"post-mention.js","sourceRoot":"","sources":["../../src/utils/post-mention.ts"],"names":[],"mappings":";;AAuBA,4CA6BC;AApDD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACjD,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAC7D,MAAM,kBAAkB,GAAG,uCAAuC,CAAC;AACnE,MAAM,mBAAmB,GAAG,4CAA4C,CAAC;AAEzE,kGAAkG;AAClG,0EAA0E;AAC1E,MAAM,eAAe,GAAG,kDAAkD,CAAC;AAU3E;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,mCAAmC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,OAAO,GAAuB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrF,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;IAC3B,CAAC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC;IACvC,CAAC;SAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,uGAAuG,CAC/I,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"post-mention.js","sourceRoot":"","sources":["../../src/utils/post-mention.ts"],"names":[],"mappings":";;AAoBA,4CA6BC;AAjDD,+EAA4E;AAE5E,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GACtE,yDAA2B,CAAC;AAC9B,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,sBAAsB,WAAW,QAAQ,CAAC,CAAC;AAU9E;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,mCAAmC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,OAAO,GAAuB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;IAC3B,CAAC;SAAM,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC;IACvC,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,uGAAuG,CAC/I,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,24 @@
1
+ declare const IDENTIFIER_PATTERNS_BY_KIND: {
2
+ readonly member: readonly [RegExp, RegExp, RegExp];
3
+ readonly company: readonly [RegExp, RegExp, RegExp];
4
+ };
5
+ type TActorKind = keyof typeof IDENTIFIER_PATTERNS_BY_KIND;
6
+ interface TActorFilterWithId {
7
+ name: string;
8
+ id: string;
9
+ }
10
+ type TActorFilterEntry = string | TActorFilterWithId;
11
+ /**
12
+ * Parses a comma-separated `post search` actor flag, where each element is `name` or
13
+ * `name:identifier`.
14
+ *
15
+ * An element without an identifier stays the plain string it always was, so existing calls send
16
+ * exactly what they sent before. An identifier must name the flag's kind of entity: a person for
17
+ * the member flags, a company for the company flags.
18
+ */
19
+ export declare function parsePostSearchActorFilter({ value, actorKind, }: {
20
+ value: string;
21
+ actorKind: TActorKind;
22
+ }): Array<TActorFilterEntry>;
23
+ export {};
24
+ //# sourceMappingURL=post-search-actor-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-search-actor-filter.d.ts","sourceRoot":"","sources":["../../src/utils/post-search-actor-filter.ts"],"names":[],"mappings":"AAaA,QAAA,MAAM,2BAA2B;;;CAGvB,CAAC;AAOX,KAAK,UAAU,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAE3D,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,iBAAiB,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,CAAC;CACvB,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAE3B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePostSearchActorFilter = parsePostSearchActorFilter;
4
+ const linkedin_identifier_pattern_1 = require("./linkedin-identifier-pattern");
5
+ const { startSource, memberUrn, organizationUrn, personUrl, companyUrl, salesPersonUrl, salesCompanyUrl, } = linkedin_identifier_pattern_1.LINKEDIN_IDENTIFIER_PATTERN;
6
+ const ACTOR_FILTER_ELEMENT_PATTERN = new RegExp(`^(.*?)(?::(${startSource}.*))?$`);
7
+ const IDENTIFIER_PATTERNS_BY_KIND = {
8
+ member: [memberUrn, personUrl, salesPersonUrl],
9
+ company: [organizationUrn, companyUrl, salesCompanyUrl],
10
+ };
11
+ const EXPECTED_IDENTIFIER_BY_KIND = {
12
+ member: 'urn:li:member:<id> or a LinkedIn profile URL',
13
+ company: 'urn:li:organization:<id> or a LinkedIn company URL',
14
+ };
15
+ /**
16
+ * Parses a comma-separated `post search` actor flag, where each element is `name` or
17
+ * `name:identifier`.
18
+ *
19
+ * An element without an identifier stays the plain string it always was, so existing calls send
20
+ * exactly what they sent before. An identifier must name the flag's kind of entity: a person for
21
+ * the member flags, a company for the company flags.
22
+ */
23
+ function parsePostSearchActorFilter({ value, actorKind, }) {
24
+ return value.split(',').map((element) => parseElement({ element: element.trim(), actorKind }));
25
+ }
26
+ function parseElement({ element, actorKind, }) {
27
+ const match = ACTOR_FILTER_ELEMENT_PATTERN.exec(element);
28
+ const identifier = match?.[2]?.trim();
29
+ if (!identifier) {
30
+ return element;
31
+ }
32
+ const name = match?.[1]?.trim();
33
+ if (!name) {
34
+ throw new Error(`Invalid filter value: "${element}". Expected name[:identifier]`);
35
+ }
36
+ const isExpectedKind = IDENTIFIER_PATTERNS_BY_KIND[actorKind].some((pattern) => pattern.test(identifier));
37
+ if (!isExpectedKind) {
38
+ throw new Error(`Invalid filter identifier in "${element}". Expected ${EXPECTED_IDENTIFIER_BY_KIND[actorKind]}`);
39
+ }
40
+ return { name, id: identifier };
41
+ }
42
+ //# sourceMappingURL=post-search-actor-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-search-actor-filter.js","sourceRoot":"","sources":["../../src/utils/post-search-actor-filter.ts"],"names":[],"mappings":";;AAwCA,gEAQC;AAhDD,+EAA4E;AAE5E,MAAM,EACJ,WAAW,EACX,SAAS,EACT,eAAe,EACf,SAAS,EACT,UAAU,EACV,cAAc,EACd,eAAe,GAChB,GAAG,yDAA2B,CAAC;AAChC,MAAM,4BAA4B,GAAG,IAAI,MAAM,CAAC,cAAc,WAAW,QAAQ,CAAC,CAAC;AAEnF,MAAM,2BAA2B,GAAG;IAClC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC;IAC9C,OAAO,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,eAAe,CAAC;CAC/C,CAAC;AAEX,MAAM,2BAA2B,GAAG;IAClC,MAAM,EAAE,8CAA8C;IACtD,OAAO,EAAE,oDAAoD;CACrD,CAAC;AAWX;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,SAAS,GAIV;IACC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,OAAO,EACP,SAAS,GAIV;IACC,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,+BAA+B,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,cAAc,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7E,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CACzB,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,eAAe,2BAA2B,CAAC,SAAS,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC"}