@entergreat/unipile-wrapper 2.1.0 → 2.1.3
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/dist/services/companyService.d.ts +5 -1
- package/dist/services/companyService.d.ts.map +1 -1
- package/dist/services/companyService.js +16 -0
- package/dist/services/companyService.js.map +1 -1
- package/dist/services/profileService.d.ts +5 -1
- package/dist/services/profileService.d.ts.map +1 -1
- package/dist/services/profileService.js +17 -0
- package/dist/services/profileService.js.map +1 -1
- package/dist/types/company.d.ts +26 -0
- package/dist/types/company.d.ts.map +1 -1
- package/dist/types/profile.d.ts +23 -0
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/utils/urlBuilder.d.ts +1 -0
- package/dist/utils/urlBuilder.d.ts.map +1 -1
- package/dist/utils/urlBuilder.js +10 -3
- package/dist/utils/urlBuilder.js.map +1 -1
- package/package.json +1 -1
- package/src/services/companyService.ts +30 -1
- package/src/services/profileService.ts +26 -0
- package/src/types/company.ts +29 -1
- package/src/types/profile.ts +19 -1
- package/src/utils/urlBuilder.ts +11 -3
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { HttpClient } from "../client/index.js";
|
|
2
2
|
import { BaseService } from "./baseService.js";
|
|
3
|
-
import { RetrieveCompanyRequest, CompanyResponse } from "../types/index.js";
|
|
3
|
+
import { RetrieveCompanyRequest, SearchCompanyRequest, CompanyResponse, CompanySearchResponse } from "../types/index.js";
|
|
4
4
|
export declare class CompanyService extends BaseService {
|
|
5
5
|
constructor(client: HttpClient, defaultAccountId?: string);
|
|
6
6
|
/**
|
|
7
7
|
* Retrieve LinkedIn company information by ID or URL
|
|
8
8
|
*/
|
|
9
9
|
retrieve({ accountId, companyId, companyUrl, }: RetrieveCompanyRequest): Promise<CompanyResponse>;
|
|
10
|
+
/**
|
|
11
|
+
* Search for companies by name/keywords
|
|
12
|
+
*/
|
|
13
|
+
search({ accountId, keywords, limit, }: SearchCompanyRequest): Promise<CompanySearchResponse>;
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=companyService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companyService.d.ts","sourceRoot":"","sources":["../../src/services/companyService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"companyService.d.ts","sourceRoot":"","sources":["../../src/services/companyService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAG3B,qBAAa,cAAe,SAAQ,WAAW;gBACjC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAIzD;;OAEG;IACG,QAAQ,CAAC,EACb,SAAS,EACT,SAAS,EACT,UAAU,GACX,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAoBpD;;OAEG;IACG,MAAM,CAAC,EACX,SAAS,EACT,QAAQ,EACR,KAAS,GACV,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAgBzD"}
|
|
@@ -22,5 +22,21 @@ export class CompanyService extends BaseService {
|
|
|
22
22
|
});
|
|
23
23
|
return this.client.get(url);
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Search for companies by name/keywords
|
|
27
|
+
*/
|
|
28
|
+
async search({ accountId, keywords, limit = 5, }) {
|
|
29
|
+
const resolvedAccountId = this.resolveAccountId(accountId);
|
|
30
|
+
if (!keywords) {
|
|
31
|
+
throw new Error("keywords is required for company search");
|
|
32
|
+
}
|
|
33
|
+
const url = this.buildUrl("/linkedin/search/parameters", {
|
|
34
|
+
account_id: resolvedAccountId,
|
|
35
|
+
keywords,
|
|
36
|
+
type: "COMPANY",
|
|
37
|
+
limit,
|
|
38
|
+
});
|
|
39
|
+
return this.client.get(url);
|
|
40
|
+
}
|
|
25
41
|
}
|
|
26
42
|
//# sourceMappingURL=companyService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companyService.js","sourceRoot":"","sources":["../../src/services/companyService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"companyService.js","sourceRoot":"","sources":["../../src/services/companyService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC7C,YAAY,MAAkB,EAAE,gBAAyB;QACvD,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EACb,SAAS,EACT,SAAS,EACT,UAAU,GACa;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC3D,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE9C,IAAI,EAAE,GAAG,SAAS,CAAC;QACnB,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;YACtB,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,EAAE;YACnD,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAkB,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EACT,QAAQ,EACR,KAAK,GAAG,CAAC,GACY;QACrB,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;YACvD,UAAU,EAAE,iBAAiB;YAC7B,QAAQ;YACR,IAAI,EAAE,SAAS;YACf,KAAK;SACN,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAwB,GAAG,CAAC,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from "../client/index.js";
|
|
2
2
|
import { BaseService } from "./baseService.js";
|
|
3
|
-
import { RetrieveProfileRequest, EditProfileRequest, AddExperienceRequest, ProfileResponse } from "../types/index.js";
|
|
3
|
+
import { RetrieveProfileRequest, EditProfileRequest, AddExperienceRequest, DeleteExperienceRequest, ProfileResponse } from "../types/index.js";
|
|
4
4
|
export declare class ProfileService extends BaseService {
|
|
5
5
|
constructor(client: HttpClient, defaultAccountId?: string);
|
|
6
6
|
/**
|
|
@@ -15,6 +15,10 @@ export declare class ProfileService extends BaseService {
|
|
|
15
15
|
* Add a work experience position to the profile
|
|
16
16
|
*/
|
|
17
17
|
addExperience({ accountId, experience, }: AddExperienceRequest): Promise<ProfileResponse>;
|
|
18
|
+
/**
|
|
19
|
+
* Delete a work experience position from the profile
|
|
20
|
+
*/
|
|
21
|
+
deleteExperience({ accountId, experienceId, }: DeleteExperienceRequest): Promise<ProfileResponse>;
|
|
18
22
|
private buildExperienceFormData;
|
|
19
23
|
}
|
|
20
24
|
//# sourceMappingURL=profileService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profileService.d.ts","sourceRoot":"","sources":["../../src/services/profileService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAQ3B,qBAAa,cAAe,SAAQ,WAAW;gBACjC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAIzD;;OAEG;IACG,QAAQ,CAAC,EACb,SAAS,EACT,SAAS,EACT,gBAAqB,EACrB,MAAc,GACf,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpD;;OAEG;IACG,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAapF;;OAEG;IACG,aAAa,CAAC,EAClB,SAAS,EACT,UAAU,GACX,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAalD,OAAO,CAAC,uBAAuB;CA6DhC"}
|
|
1
|
+
{"version":3,"file":"profileService.d.ts","sourceRoot":"","sources":["../../src/services/profileService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAQ3B,qBAAa,cAAe,SAAQ,WAAW;gBACjC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAIzD;;OAEG;IACG,QAAQ,CAAC,EACb,SAAS,EACT,SAAS,EACT,gBAAqB,EACrB,MAAc,GACf,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpD;;OAEG;IACG,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAapF;;OAEG;IACG,aAAa,CAAC,EAClB,SAAS,EACT,UAAU,GACX,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAalD;;OAEG;IACG,gBAAgB,CAAC,EACrB,SAAS,EACT,YAAY,GACb,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmBrD,OAAO,CAAC,uBAAuB;CA6DhC"}
|
|
@@ -44,6 +44,23 @@ export class ProfileService extends BaseService {
|
|
|
44
44
|
const formData = this.buildExperienceFormData(resolvedAccountId, experience);
|
|
45
45
|
return this.client.patchFormData(url, formData);
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Delete a work experience position from the profile
|
|
49
|
+
*/
|
|
50
|
+
async deleteExperience({ accountId, experienceId, }) {
|
|
51
|
+
const resolvedAccountId = this.resolveAccountId(accountId);
|
|
52
|
+
if (!experienceId) {
|
|
53
|
+
throw new Error("experienceId is required");
|
|
54
|
+
}
|
|
55
|
+
const url = this.buildUrl("/users/me/edit", {
|
|
56
|
+
account_id: resolvedAccountId,
|
|
57
|
+
});
|
|
58
|
+
const formData = new FormData();
|
|
59
|
+
formData.append("type", "LINKEDIN");
|
|
60
|
+
formData.append("account_id", resolvedAccountId);
|
|
61
|
+
formData.append("experience[delete]", experienceId);
|
|
62
|
+
return this.client.patchFormData(url, formData);
|
|
63
|
+
}
|
|
47
64
|
buildExperienceFormData(accountId, experience) {
|
|
48
65
|
const formData = new FormData();
|
|
49
66
|
formData.append("type", "LINKEDIN");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profileService.js","sourceRoot":"","sources":["../../src/services/profileService.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"profileService.js","sourceRoot":"","sources":["../../src/services/profileService.ts"],"names":[],"mappings":"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"}
|
package/dist/types/company.d.ts
CHANGED
|
@@ -3,9 +3,35 @@ export interface RetrieveCompanyRequest extends AccountIdParam {
|
|
|
3
3
|
companyId?: string;
|
|
4
4
|
companyUrl?: string;
|
|
5
5
|
}
|
|
6
|
+
export interface SearchCompanyRequest extends AccountIdParam {
|
|
7
|
+
keywords: string;
|
|
8
|
+
limit?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface CompanySearchResult {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
linkedin_url?: string;
|
|
14
|
+
logo_url?: string;
|
|
15
|
+
industry?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CompanySearchResponse {
|
|
18
|
+
object: string;
|
|
19
|
+
items: CompanySearchResult[];
|
|
20
|
+
}
|
|
6
21
|
export interface CompanyResponse {
|
|
7
22
|
object: string;
|
|
8
23
|
id: string;
|
|
9
24
|
name?: string;
|
|
25
|
+
industry?: string;
|
|
26
|
+
company_size?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
linkedin_url?: string;
|
|
29
|
+
website?: string;
|
|
30
|
+
locations?: Array<{
|
|
31
|
+
id?: string;
|
|
32
|
+
city?: string;
|
|
33
|
+
country?: string;
|
|
34
|
+
name?: string;
|
|
35
|
+
}>;
|
|
10
36
|
}
|
|
11
37
|
//# sourceMappingURL=company.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company.d.ts","sourceRoot":"","sources":["../../src/types/company.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"company.d.ts","sourceRoot":"","sources":["../../src/types/company.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ"}
|
package/dist/types/profile.d.ts
CHANGED
|
@@ -37,10 +37,33 @@ export interface ExperienceData {
|
|
|
37
37
|
export interface AddExperienceRequest extends AccountIdParam {
|
|
38
38
|
experience: ExperienceData;
|
|
39
39
|
}
|
|
40
|
+
export interface DeleteExperienceRequest extends AccountIdParam {
|
|
41
|
+
experienceId: string;
|
|
42
|
+
}
|
|
40
43
|
export interface ProfileResponse {
|
|
41
44
|
object: string;
|
|
42
45
|
id: string;
|
|
43
46
|
name?: string;
|
|
44
47
|
headline?: string;
|
|
48
|
+
occupation?: string;
|
|
49
|
+
about?: string;
|
|
50
|
+
work_experience?: WorkExperience[];
|
|
51
|
+
work_experience_total_count?: number;
|
|
52
|
+
public_identifier?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface WorkExperience {
|
|
55
|
+
id?: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
company_name?: string;
|
|
58
|
+
company_id?: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
start_date?: {
|
|
61
|
+
month?: number;
|
|
62
|
+
year?: number;
|
|
63
|
+
};
|
|
64
|
+
end_date?: {
|
|
65
|
+
month?: number;
|
|
66
|
+
year?: number;
|
|
67
|
+
};
|
|
45
68
|
}
|
|
46
69
|
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/types/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/types/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
type QueryParams = Record<string, string | number | boolean | undefined>;
|
|
2
2
|
/**
|
|
3
3
|
* Builds a URL with query parameters, filtering out undefined values
|
|
4
|
+
* Properly joins baseUrl path with the given path
|
|
4
5
|
*/
|
|
5
6
|
export declare function buildUrl(baseUrl: string, path: string, params?: QueryParams): string;
|
|
6
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/urlBuilder.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEzE
|
|
1
|
+
{"version":3,"file":"urlBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/urlBuilder.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEzE;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM,CAiBxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAQpF"}
|
package/dist/utils/urlBuilder.js
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Builds a URL with query parameters, filtering out undefined values
|
|
3
|
+
* Properly joins baseUrl path with the given path
|
|
3
4
|
*/
|
|
4
5
|
export function buildUrl(baseUrl, path, params = {}) {
|
|
5
|
-
|
|
6
|
+
// Parse the base URL to get its components
|
|
7
|
+
const base = new URL(baseUrl);
|
|
8
|
+
// Join the base path with the new path (remove leading slash from path if base has trailing content)
|
|
9
|
+
const basePath = base.pathname.endsWith('/') ? base.pathname.slice(0, -1) : base.pathname;
|
|
10
|
+
const newPath = path.startsWith('/') ? path : `/${path}`;
|
|
11
|
+
base.pathname = basePath + newPath;
|
|
12
|
+
// Add query parameters
|
|
6
13
|
for (const [key, value] of Object.entries(params)) {
|
|
7
14
|
if (value !== undefined && value !== "") {
|
|
8
|
-
|
|
15
|
+
base.searchParams.append(key, String(value));
|
|
9
16
|
}
|
|
10
17
|
}
|
|
11
|
-
return
|
|
18
|
+
return base.toString();
|
|
12
19
|
}
|
|
13
20
|
/**
|
|
14
21
|
* Appends array values as repeated query parameters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlBuilder.js","sourceRoot":"","sources":["../../src/utils/urlBuilder.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"urlBuilder.js","sourceRoot":"","sources":["../../src/utils/urlBuilder.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAY,EAAE,SAAsB,EAAE;IAC9E,2CAA2C;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9B,qGAAqG;IACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEnC,uBAAuB;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,GAAW,EAAE,MAAgB;IAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { HttpClient } from "../client/index.js";
|
|
2
2
|
import { BaseService } from "./baseService.js";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
RetrieveCompanyRequest,
|
|
5
|
+
SearchCompanyRequest,
|
|
6
|
+
CompanyResponse,
|
|
7
|
+
CompanySearchResponse,
|
|
8
|
+
} from "../types/index.js";
|
|
4
9
|
import { validateCompanyIdOrUrl, extractCompanyIdFromUrl } from "../utils/index.js";
|
|
5
10
|
|
|
6
11
|
export class CompanyService extends BaseService {
|
|
@@ -34,4 +39,28 @@ export class CompanyService extends BaseService {
|
|
|
34
39
|
|
|
35
40
|
return this.client.get<CompanyResponse>(url);
|
|
36
41
|
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Search for companies by name/keywords
|
|
45
|
+
*/
|
|
46
|
+
async search({
|
|
47
|
+
accountId,
|
|
48
|
+
keywords,
|
|
49
|
+
limit = 5,
|
|
50
|
+
}: SearchCompanyRequest): Promise<CompanySearchResponse> {
|
|
51
|
+
const resolvedAccountId = this.resolveAccountId(accountId);
|
|
52
|
+
|
|
53
|
+
if (!keywords) {
|
|
54
|
+
throw new Error("keywords is required for company search");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const url = this.buildUrl("/linkedin/search/parameters", {
|
|
58
|
+
account_id: resolvedAccountId,
|
|
59
|
+
keywords,
|
|
60
|
+
type: "COMPANY",
|
|
61
|
+
limit,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
return this.client.get<CompanySearchResponse>(url);
|
|
65
|
+
}
|
|
37
66
|
}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
RetrieveProfileRequest,
|
|
6
6
|
EditProfileRequest,
|
|
7
7
|
AddExperienceRequest,
|
|
8
|
+
DeleteExperienceRequest,
|
|
8
9
|
ProfileResponse,
|
|
9
10
|
} from "../types/index.js";
|
|
10
11
|
import {
|
|
@@ -78,6 +79,31 @@ export class ProfileService extends BaseService {
|
|
|
78
79
|
return this.client.patchFormData<ProfileResponse>(url, formData);
|
|
79
80
|
}
|
|
80
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Delete a work experience position from the profile
|
|
84
|
+
*/
|
|
85
|
+
async deleteExperience({
|
|
86
|
+
accountId,
|
|
87
|
+
experienceId,
|
|
88
|
+
}: DeleteExperienceRequest): Promise<ProfileResponse> {
|
|
89
|
+
const resolvedAccountId = this.resolveAccountId(accountId);
|
|
90
|
+
|
|
91
|
+
if (!experienceId) {
|
|
92
|
+
throw new Error("experienceId is required");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const url = this.buildUrl("/users/me/edit", {
|
|
96
|
+
account_id: resolvedAccountId,
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
const formData = new FormData();
|
|
100
|
+
formData.append("type", "LINKEDIN");
|
|
101
|
+
formData.append("account_id", resolvedAccountId);
|
|
102
|
+
formData.append("experience[delete]", experienceId);
|
|
103
|
+
|
|
104
|
+
return this.client.patchFormData<ProfileResponse>(url, formData);
|
|
105
|
+
}
|
|
106
|
+
|
|
81
107
|
private buildExperienceFormData(
|
|
82
108
|
accountId: string,
|
|
83
109
|
experience: AddExperienceRequest["experience"]
|
package/src/types/company.ts
CHANGED
|
@@ -5,9 +5,37 @@ export interface RetrieveCompanyRequest extends AccountIdParam {
|
|
|
5
5
|
companyUrl?: string;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
export interface SearchCompanyRequest extends AccountIdParam {
|
|
9
|
+
keywords: string;
|
|
10
|
+
limit?: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface CompanySearchResult {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
linkedin_url?: string;
|
|
17
|
+
logo_url?: string;
|
|
18
|
+
industry?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface CompanySearchResponse {
|
|
22
|
+
object: string;
|
|
23
|
+
items: CompanySearchResult[];
|
|
24
|
+
}
|
|
25
|
+
|
|
8
26
|
export interface CompanyResponse {
|
|
9
27
|
object: string;
|
|
10
28
|
id: string;
|
|
11
29
|
name?: string;
|
|
12
|
-
|
|
30
|
+
industry?: string;
|
|
31
|
+
company_size?: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
linkedin_url?: string;
|
|
34
|
+
website?: string;
|
|
35
|
+
locations?: Array<{
|
|
36
|
+
id?: string;
|
|
37
|
+
city?: string;
|
|
38
|
+
country?: string;
|
|
39
|
+
name?: string;
|
|
40
|
+
}>;
|
|
13
41
|
}
|
package/src/types/profile.ts
CHANGED
|
@@ -41,10 +41,28 @@ export interface AddExperienceRequest extends AccountIdParam {
|
|
|
41
41
|
experience: ExperienceData;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
export interface DeleteExperienceRequest extends AccountIdParam {
|
|
45
|
+
experienceId: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
44
48
|
export interface ProfileResponse {
|
|
45
49
|
object: string;
|
|
46
50
|
id: string;
|
|
47
51
|
name?: string;
|
|
48
52
|
headline?: string;
|
|
49
|
-
|
|
53
|
+
occupation?: string;
|
|
54
|
+
about?: string;
|
|
55
|
+
work_experience?: WorkExperience[];
|
|
56
|
+
work_experience_total_count?: number;
|
|
57
|
+
public_identifier?: string;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface WorkExperience {
|
|
61
|
+
id?: string;
|
|
62
|
+
title?: string;
|
|
63
|
+
company_name?: string;
|
|
64
|
+
company_id?: string;
|
|
65
|
+
description?: string;
|
|
66
|
+
start_date?: { month?: number; year?: number };
|
|
67
|
+
end_date?: { month?: number; year?: number };
|
|
50
68
|
}
|
package/src/utils/urlBuilder.ts
CHANGED
|
@@ -2,17 +2,25 @@ type QueryParams = Record<string, string | number | boolean | undefined>;
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Builds a URL with query parameters, filtering out undefined values
|
|
5
|
+
* Properly joins baseUrl path with the given path
|
|
5
6
|
*/
|
|
6
7
|
export function buildUrl(baseUrl: string, path: string, params: QueryParams = {}): string {
|
|
7
|
-
|
|
8
|
+
// Parse the base URL to get its components
|
|
9
|
+
const base = new URL(baseUrl);
|
|
8
10
|
|
|
11
|
+
// Join the base path with the new path (remove leading slash from path if base has trailing content)
|
|
12
|
+
const basePath = base.pathname.endsWith('/') ? base.pathname.slice(0, -1) : base.pathname;
|
|
13
|
+
const newPath = path.startsWith('/') ? path : `/${path}`;
|
|
14
|
+
base.pathname = basePath + newPath;
|
|
15
|
+
|
|
16
|
+
// Add query parameters
|
|
9
17
|
for (const [key, value] of Object.entries(params)) {
|
|
10
18
|
if (value !== undefined && value !== "") {
|
|
11
|
-
|
|
19
|
+
base.searchParams.append(key, String(value));
|
|
12
20
|
}
|
|
13
21
|
}
|
|
14
22
|
|
|
15
|
-
return
|
|
23
|
+
return base.toString();
|
|
16
24
|
}
|
|
17
25
|
|
|
18
26
|
/**
|