@activepieces/piece-linkedin 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ # pieces-linkedin
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running lint
6
+
7
+ Run `nx lint pieces-linkedin` to execute the lint via [ESLint](https://eslint.org/).
package/package.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "@activepieces/piece-linkedin",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "@sinclair/typebox": "0.26.8",
6
+ "axios": "1.2.4",
7
+ "form-data": "4.0.0",
8
+ "jsonwebtoken": "9.0.0",
9
+ "lodash": "4.17.21",
10
+ "nanoid": "3.3.4",
11
+ "@activepieces/pieces-framework": "0.3.29",
12
+ "@activepieces/shared": "0.3.49",
13
+ "@activepieces/pieces-common": "0.0.7",
14
+ "tslib": "2.5.3"
15
+ },
16
+ "main": "./src/index.js",
17
+ "types": "./src/index.d.ts"
18
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const linkedin: import("@activepieces/pieces-framework").Piece;
package/src/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.linkedin = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ const create_share_update_1 = require("./lib/actions/create-share-update");
6
+ const create_company_update_1 = require("./lib/actions/create-company-update");
7
+ exports.linkedin = (0, pieces_framework_1.createPiece)({
8
+ displayName: "LinkedIn",
9
+ logoUrl: "https://cdn.activepieces.com/pieces/linkedin.png",
10
+ authors: ['MoShizzle'],
11
+ actions: [create_share_update_1.createShareUpdate, create_company_update_1.createCompanyUpdate],
12
+ triggers: [],
13
+ });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pieces/linkedin/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAA6D;AAE7D,2EAAsE;AACtE,+EAA0E;AAE7D,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IAChC,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,kDAAkD;IAC3D,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,OAAO,EAAE,CAAC,uCAAiB,EAAE,2CAAmB,CAAC;IACjD,QAAQ,EAAE,EAAE;CACf,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const createCompanyUpdate: import("@activepieces/pieces-framework").Action;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCompanyUpdate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const common_1 = require("../common");
8
+ exports.createCompanyUpdate = (0, pieces_framework_1.createAction)({
9
+ name: "create_company_update",
10
+ displayName: "Create Company Update",
11
+ description: 'Create a company update on LinkedIn',
12
+ sampleData: {},
13
+ props: {
14
+ authentication: common_1.linkedinCommon.authentication,
15
+ company: common_1.linkedinCommon.company,
16
+ text: common_1.linkedinCommon.text,
17
+ link: common_1.linkedinCommon.link,
18
+ linkTitle: common_1.linkedinCommon.linkTitle,
19
+ linkDescription: common_1.linkedinCommon.linkDescription,
20
+ imageUrl: common_1.linkedinCommon.imageUrl
21
+ },
22
+ run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
23
+ const imageUrl = context.propsValue.imageUrl;
24
+ const bodyConfig = {
25
+ urn: `organization:${context.propsValue.company}`,
26
+ text: context.propsValue.text,
27
+ link: context.propsValue.link,
28
+ linkDescription: context.propsValue.linkDescription,
29
+ linkTitle: context.propsValue.linkTitle,
30
+ visibility: 'PUBLIC'
31
+ };
32
+ if (imageUrl) {
33
+ bodyConfig.image = yield common_1.linkedinCommon.uploadImage(context.propsValue.authentication.access_token, `organization:${context.propsValue.company}`, imageUrl);
34
+ }
35
+ const requestBody = common_1.linkedinCommon.generatePostRequestBody(bodyConfig);
36
+ const createPostHeaders = common_1.linkedinCommon.linkedinHeaders;
37
+ createPostHeaders["LinkedIn-Version"] = '202306';
38
+ const request = {
39
+ method: pieces_common_1.HttpMethod.POST,
40
+ url: `${common_1.linkedinCommon.baseUrl}/rest/posts`,
41
+ authentication: {
42
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
43
+ token: context.propsValue.authentication.access_token
44
+ },
45
+ headers: createPostHeaders,
46
+ body: requestBody,
47
+ };
48
+ const response = yield pieces_common_1.httpClient.sendRequest(request);
49
+ return response.body;
50
+ })
51
+ });
52
+ //# sourceMappingURL=create-company-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-company-update.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/linkedin/src/lib/actions/create-company-update.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,+DAAsG;AACtG,sCAAkD;AAErC,QAAA,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IAC5C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,qCAAqC;IAClD,UAAU,EAAE,EAAE;IACd,KAAK,EAAE;QACH,cAAc,EAAE,uBAAc,CAAC,cAAc;QAC7C,OAAO,EAAE,uBAAc,CAAC,OAAO;QAC/B,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,SAAS,EAAE,uBAAc,CAAC,SAAS;QACnC,eAAe,EAAE,uBAAc,CAAC,eAAe;QAC/C,QAAQ,EAAE,uBAAc,CAAC,QAAQ;KACpC;IAED,GAAG,EAAE,CAAO,OAAO,EAAE,EAAE;QACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,MAAM,UAAU,GAQZ;YACA,GAAG,EAAE,gBAAgB,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;YACjD,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC7B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC7B,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,eAAe;YACnD,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;YACvC,UAAU,EAAE,QAAQ;SACvB,CAAA;QAED,IAAI,QAAQ,EAAE;YACV,UAAU,CAAC,KAAK,GAAG,MAAM,uBAAc,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,gBAAgB,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;SAC/J;QAED,MAAM,WAAW,GAAG,uBAAc,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAQ,uBAAc,CAAC,eAAe,CAAA;QAC7D,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC;QAEjD,MAAM,OAAO,GAAgB;YACzB,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,uBAAc,CAAC,OAAO,aAAa;YAC3C,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY;aACxD;YACD,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,WAAW;SACpB,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC,CAAA;CACJ,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const createShareUpdate: import("@activepieces/pieces-framework").Action;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createShareUpdate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const common_1 = require("../common");
8
+ const jsonwebtoken_1 = tslib_1.__importDefault(require("jsonwebtoken"));
9
+ exports.createShareUpdate = (0, pieces_framework_1.createAction)({
10
+ name: "create_share_update",
11
+ displayName: "Create Share Update",
12
+ description: 'Create a share update on LinkedIn',
13
+ sampleData: {},
14
+ props: {
15
+ authentication: common_1.linkedinCommon.authentication,
16
+ text: common_1.linkedinCommon.text,
17
+ visibility: common_1.linkedinCommon.visibility,
18
+ link: common_1.linkedinCommon.link,
19
+ linkTitle: common_1.linkedinCommon.linkTitle,
20
+ linkDescription: common_1.linkedinCommon.linkDescription,
21
+ imageUrl: common_1.linkedinCommon.imageUrl
22
+ },
23
+ run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
+ const token = context.propsValue.authentication.data.id_token;
25
+ const decoded = jsonwebtoken_1.default.decode(token);
26
+ const imageUrl = context.propsValue.imageUrl;
27
+ const bodyConfig = {
28
+ urn: `person:${decoded.sub}`,
29
+ text: context.propsValue.text,
30
+ link: context.propsValue.link,
31
+ linkDescription: context.propsValue.linkDescription,
32
+ linkTitle: context.propsValue.linkTitle,
33
+ visibility: context.propsValue.visibility
34
+ };
35
+ if (imageUrl) {
36
+ bodyConfig.image = yield common_1.linkedinCommon.uploadImage(context.propsValue.authentication.access_token, `person:${decoded.sub}`, imageUrl);
37
+ }
38
+ const requestBody = common_1.linkedinCommon.generatePostRequestBody(bodyConfig);
39
+ const createPostHeaders = common_1.linkedinCommon.linkedinHeaders;
40
+ createPostHeaders["LinkedIn-Version"] = '202306';
41
+ const request = {
42
+ method: pieces_common_1.HttpMethod.POST,
43
+ url: `${common_1.linkedinCommon.baseUrl}/rest/posts`,
44
+ authentication: {
45
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
46
+ token: context.propsValue.authentication.access_token
47
+ },
48
+ headers: createPostHeaders,
49
+ body: requestBody,
50
+ };
51
+ const response = yield pieces_common_1.httpClient.sendRequest(request);
52
+ return response.body;
53
+ })
54
+ });
55
+ //# sourceMappingURL=create-share-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-share-update.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/linkedin/src/lib/actions/create-share-update.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,+DAAsG;AACtG,sCAAkD;AAClD,wEAA8C;AAEjC,QAAA,iBAAiB,GAAG,IAAA,+BAAY,EAAC;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,mCAAmC;IAChD,UAAU,EAAE,EAAE;IACd,KAAK,EAAE;QACH,cAAc,EAAE,uBAAc,CAAC,cAAc;QAC7C,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,UAAU,EAAE,uBAAc,CAAC,UAAU;QACrC,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,SAAS,EAAE,uBAAc,CAAC,SAAS;QACnC,eAAe,EAAE,uBAAc,CAAC,eAAe;QAC/C,QAAQ,EAAE,uBAAc,CAAC,QAAQ;KACpC;IAED,GAAG,EAAE,CAAO,OAAO,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9D,MAAM,OAAO,GAAe,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,MAAM,UAAU,GAQZ;YACA,GAAG,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC7B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC7B,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,eAAe;YACnD,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;SAC5C,CAAA;QAED,IAAI,QAAQ,EAAE;YACV,UAAU,CAAC,KAAK,GAAG,MAAM,uBAAc,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;SAC1I;QAED,MAAM,WAAW,GAAG,uBAAc,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAQ,uBAAc,CAAC,eAAe,CAAA;QAC7D,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC;QAEjD,MAAM,OAAO,GAAgB;YACzB,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,uBAAc,CAAC,OAAO,aAAa;YAC3C,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY;aACxD;YACD,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,WAAW;SACpB,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC,CAAA;CACJ,CAAC,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { ApFile } from "@activepieces/pieces-framework";
2
+ export declare const linkedinCommon: {
3
+ baseUrl: string;
4
+ linkedinHeaders: {
5
+ 'X-Restli-Protocol-Version': string;
6
+ };
7
+ authentication: import("@activepieces/pieces-framework").OAuth2Property<true, import("@activepieces/pieces-framework").OAuth2Props>;
8
+ text: import("@activepieces/pieces-framework").LongTextProperty<true>;
9
+ imageUrl: import("@activepieces/pieces-framework").FileProperty<false>;
10
+ link: import("@activepieces/pieces-framework").ShortTextProperty<false>;
11
+ linkTitle: import("@activepieces/pieces-framework").ShortTextProperty<false>;
12
+ linkDescription: import("@activepieces/pieces-framework").ShortTextProperty<false>;
13
+ visibility: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
14
+ company: import("@activepieces/pieces-framework").DropdownProperty<any, true>;
15
+ getCompanies: (accessToken: string) => Promise<any>;
16
+ generatePostRequestBody: (data: {
17
+ urn: string;
18
+ text: string;
19
+ link?: string | undefined;
20
+ linkTitle?: string | undefined;
21
+ linkDescription?: string | undefined;
22
+ visibility: string;
23
+ image?: Image | undefined;
24
+ }) => Post;
25
+ uploadImage: (accessToken: string, urn: string, image: ApFile) => Promise<Image>;
26
+ };
27
+ export interface UgcPost {
28
+ author: string;
29
+ lifecycleState: string;
30
+ specificContent: {
31
+ "com.linkedin.ugc.ShareContent": {
32
+ shareCommentary: {
33
+ text?: string;
34
+ };
35
+ shareMediaCategory: string;
36
+ media?: [
37
+ {
38
+ status: string;
39
+ description?: {
40
+ text: string;
41
+ };
42
+ originalUrl?: string;
43
+ thumbnail?: string;
44
+ title?: {
45
+ text: string;
46
+ };
47
+ }
48
+ ];
49
+ };
50
+ };
51
+ visibility: {
52
+ "com.linkedin.ugc.MemberNetworkVisibility": string;
53
+ };
54
+ }
55
+ export interface Post {
56
+ author: string;
57
+ commentary: string;
58
+ lifecycleState: string;
59
+ visibility: string;
60
+ distribution: {
61
+ feedDistribution: string;
62
+ };
63
+ content?: {
64
+ article?: {
65
+ source: string;
66
+ thumbnail?: string | undefined;
67
+ title?: string | undefined;
68
+ description?: string | undefined;
69
+ };
70
+ };
71
+ isReshareDisabledByAuthor: boolean;
72
+ }
73
+ export interface Image {
74
+ value: {
75
+ uploadUrlExpiresAt: number;
76
+ uploadUrl: string;
77
+ image: string;
78
+ };
79
+ }
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.linkedinCommon = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const form_data_1 = tslib_1.__importDefault(require("form-data"));
8
+ exports.linkedinCommon = {
9
+ baseUrl: 'https://api.linkedin.com',
10
+ linkedinHeaders: {
11
+ 'X-Restli-Protocol-Version': '2.0.0',
12
+ // 'LinkedIn-Version': '202306'
13
+ },
14
+ authentication: pieces_framework_1.Property.OAuth2({
15
+ authUrl: 'https://www.linkedin.com/oauth/v2/authorization',
16
+ tokenUrl: 'https://www.linkedin.com/oauth/v2/accessToken',
17
+ displayName: 'Authentication',
18
+ required: true,
19
+ scope: ['w_member_social', 'openid', 'email', 'profile', 'w_organization_social', 'rw_organization_admin']
20
+ }),
21
+ text: pieces_framework_1.Property.LongText({
22
+ displayName: 'Text',
23
+ required: true
24
+ }),
25
+ imageUrl: pieces_framework_1.Property.File({
26
+ displayName: 'Link Thumbnail URL',
27
+ required: false
28
+ }),
29
+ link: pieces_framework_1.Property.ShortText({
30
+ displayName: 'Link',
31
+ required: false
32
+ }),
33
+ linkTitle: pieces_framework_1.Property.ShortText({
34
+ displayName: 'Link Title',
35
+ required: false
36
+ }),
37
+ linkDescription: pieces_framework_1.Property.ShortText({
38
+ displayName: 'Link Description',
39
+ required: false
40
+ }),
41
+ visibility: pieces_framework_1.Property.Dropdown({
42
+ displayName: 'Visibility',
43
+ refreshers: [],
44
+ required: true,
45
+ options: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
46
+ return {
47
+ options: [
48
+ {
49
+ label: "Public",
50
+ value: "PUBLIC",
51
+ },
52
+ {
53
+ label: "Connections Only",
54
+ value: "CONNECTIONS",
55
+ }
56
+ ]
57
+ };
58
+ })
59
+ }),
60
+ company: pieces_framework_1.Property.Dropdown({
61
+ displayName: 'Company Page',
62
+ required: true,
63
+ refreshers: ['authentication'],
64
+ options: (props) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
65
+ if (!props['authentication']) {
66
+ return {
67
+ disabled: true,
68
+ placeholder: 'Connect your account',
69
+ options: []
70
+ };
71
+ }
72
+ const auth = props['authentication'];
73
+ const companies = yield exports.linkedinCommon.getCompanies(auth.access_token);
74
+ const options = [];
75
+ for (const company in companies) {
76
+ options.push({
77
+ label: companies[company].localizedName,
78
+ value: companies[company].id
79
+ });
80
+ }
81
+ return {
82
+ options: options
83
+ };
84
+ })
85
+ }),
86
+ getCompanies: (accessToken) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
87
+ const companies = (yield pieces_common_1.httpClient.sendRequest({
88
+ url: `${exports.linkedinCommon.baseUrl}/v2/organizationalEntityAcls`,
89
+ method: pieces_common_1.HttpMethod.GET,
90
+ authentication: {
91
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
92
+ token: accessToken
93
+ },
94
+ queryParams: {
95
+ q: 'roleAssignee'
96
+ }
97
+ })).body;
98
+ const companyIds = companies.elements.map((company) => {
99
+ return company.organizationalTarget.substr(company.organizationalTarget.lastIndexOf(':') + 1);
100
+ });
101
+ const companySearch = (yield pieces_common_1.httpClient.sendRequest({
102
+ url: `${exports.linkedinCommon.baseUrl}/v2/organizations?ids=List(${companyIds.join(',')})`,
103
+ method: pieces_common_1.HttpMethod.GET,
104
+ authentication: {
105
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
106
+ token: accessToken
107
+ },
108
+ headers: exports.linkedinCommon.linkedinHeaders
109
+ })).body;
110
+ return companySearch.results;
111
+ }),
112
+ generatePostRequestBody: (data) => {
113
+ var _a;
114
+ const requestObject = {
115
+ author: `urn:li:${data.urn}`,
116
+ lifecycleState: 'PUBLISHED',
117
+ commentary: data.text,
118
+ distribution: {
119
+ feedDistribution: 'MAIN_FEED'
120
+ },
121
+ visibility: data.visibility,
122
+ isReshareDisabledByAuthor: false
123
+ };
124
+ if (data.link) {
125
+ requestObject.content = {
126
+ article: {
127
+ source: data.link,
128
+ title: data.linkTitle,
129
+ description: data.linkDescription,
130
+ thumbnail: (_a = data.image) === null || _a === void 0 ? void 0 : _a.value.image
131
+ }
132
+ };
133
+ }
134
+ return requestObject;
135
+ },
136
+ uploadImage: (accessToken, urn, image) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
137
+ const uploadData = (yield pieces_common_1.httpClient.sendRequest({
138
+ method: pieces_common_1.HttpMethod.POST,
139
+ url: `${exports.linkedinCommon.baseUrl}/v2/images`,
140
+ authentication: {
141
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
142
+ token: accessToken
143
+ },
144
+ queryParams: {
145
+ action: 'initializeUpload'
146
+ },
147
+ body: {
148
+ initializeUploadRequest: {
149
+ owner: `urn:li:${urn}`,
150
+ }
151
+ }
152
+ })).body;
153
+ const uploadFormData = new form_data_1.default();
154
+ const { filename, base64 } = image;
155
+ uploadFormData.append('file', Buffer.from(base64, "base64"), filename);
156
+ yield pieces_common_1.httpClient.sendRequest({
157
+ url: uploadData.value.uploadUrl,
158
+ method: pieces_common_1.HttpMethod.POST,
159
+ body: uploadFormData,
160
+ authentication: {
161
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
162
+ token: accessToken
163
+ },
164
+ headers: {
165
+ 'Content-Type': 'multipart/form-data'
166
+ }
167
+ });
168
+ return uploadData;
169
+ }),
170
+ };
171
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/linkedin/src/lib/common/index.ts"],"names":[],"mappings":";;;;AAAA,qEAAkE;AAClE,+DAAyF;AAEzF,kEAAiC;AAEpB,QAAA,cAAc,GAAG;IAC1B,OAAO,EAAE,0BAA0B;IACnC,eAAe,EAAE;QACb,2BAA2B,EAAE,OAAO;QACpC,+BAA+B;KAClC;IAED,cAAc,EAAE,2BAAQ,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,iDAAiD;QAC1D,QAAQ,EAAE,+CAA+C;QACzD,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,CAAC;KAC7G,CAAC;IACF,IAAI,EAAE,2BAAQ,CAAC,QAAQ,CAAC;QACpB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,IAAI;KACjB,CAAC;IACF,QAAQ,EAAE,2BAAQ,CAAC,IAAI,CAAC;QACpB,WAAW,EAAE,oBAAoB;QACjC,QAAQ,EAAE,KAAK;KAClB,CAAC;IACF,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;QACrB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,KAAK;KAClB,CAAC;IACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;QAC1B,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,KAAK;KAClB,CAAC;IACF,eAAe,EAAE,2BAAQ,CAAC,SAAS,CAAC;QAChC,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,KAAK;KAClB,CAAC;IAEF,UAAU,EAAE,2BAAQ,CAAC,QAAQ,CAAC;QAC1B,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAS,EAAE;YAChB,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,KAAK,EAAE,QAAQ;wBACf,KAAK,EAAE,QAAQ;qBAClB;oBACD;wBACI,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,aAAa;qBACvB;iBACJ;aACJ,CAAA;QACL,CAAC,CAAA;KACJ,CAAC;IAEF,OAAO,EAAE,2BAAQ,CAAC,QAAQ,CAAC;QACvB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,CAAC,gBAAgB,CAAC;QAC9B,OAAO,EAAE,CAAO,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAC1B,OAAO;oBACH,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,sBAAsB;oBACnC,OAAO,EAAE,EAAE;iBACd,CAAA;aACJ;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAA6B,CAAC;YAEjE,MAAM,SAAS,GAAQ,MAAM,sBAAc,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa;oBACvC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE;iBAC/B,CAAC,CAAA;aACL;YAED,OAAO;gBACH,OAAO,EAAE,OAAO;aACnB,CAAA;QACL,CAAC,CAAA;KACJ,CAAC;IAEF,YAAY,EAAE,CAAO,WAAmB,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,CAAC,MAAM,0BAAU,CAAC,WAAW,CAAC;YAC5C,GAAG,EAAE,GAAG,sBAAc,CAAC,OAAO,8BAA8B;YAC5D,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,WAAW;aACrB;YACD,WAAW,EAAE;gBACT,CAAC,EAAE,cAAc;aACpB;SACJ,CAAC,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAyC,EAAE,EAAE;YACpF,OAAO,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClG,CAAC,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,CAAC,MAAM,0BAAU,CAAC,WAAW,CAAC;YAChD,GAAG,EAAE,GAAG,sBAAc,CAAC,OAAO,8BAA8B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACnF,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,WAAW;aACrB;YACD,OAAO,EAAE,sBAAc,CAAC,eAAe;SAC1C,CAAC,CAAC,CAAC,IAAI,CAAA;QAER,OAAO,aAAa,CAAC,OAAO,CAAC;IACjC,CAAC,CAAA;IAED,uBAAuB,EAAE,CAAC,IAQzB,EAAE,EAAE;;QACD,MAAM,aAAa,GAAS;YACxB,MAAM,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE;YAC5B,cAAc,EAAE,WAAW;YAC3B,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,YAAY,EAAE;gBACV,gBAAgB,EAAE,WAAW;aAChC;YACD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,yBAAyB,EAAE,KAAK;SACnC,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,aAAa,CAAC,OAAO,GAAG;gBACpB,OAAO,EAAE;oBACL,MAAM,EAAE,IAAI,CAAC,IAAI;oBACjB,KAAK,EAAE,IAAI,CAAC,SAAS;oBACrB,WAAW,EAAE,IAAI,CAAC,eAAe;oBACjC,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC,KAAK;iBACrC;aACJ,CAAA;SACJ;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,WAAW,EAAE,CAAO,WAAmB,EAAE,GAAW,EAAE,KAAa,EAAkB,EAAE;QACnF,MAAM,UAAU,GAAG,CAAC,MAAM,0BAAU,CAAC,WAAW,CAAC;YAC7C,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,sBAAc,CAAC,OAAO,YAAY;YAC1C,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,WAAW;aACrB;YACD,WAAW,EAAE;gBACT,MAAM,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE;gBACF,uBAAuB,EAAE;oBACrB,KAAK,EAAE,UAAU,GAAG,EAAE;iBACzB;aACJ;SACJ,CAAC,CAAC,CAAC,IAAa,CAAC;QAElB,MAAM,cAAc,GAAG,IAAI,mBAAQ,EAAE,CAAC;QACtC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACnC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEvE,MAAM,0BAAU,CAAC,WAAW,CAAC;YACzB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS;YAC/B,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,IAAI,EAAE,cAAc;YACpB,cAAc,EAAE;gBACZ,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,WAAW;aACrB;YACD,OAAO,EAAE;gBACL,cAAc,EAAE,qBAAqB;aACxC;SACJ,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC,CAAA;CACJ,CAAA"}