@activepieces/piece-linkedin 0.2.5 → 0.2.7
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/package.json +7 -17
- package/src/index.js +47 -49
- package/src/index.d.ts +0 -3
- package/src/index.d.ts.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/actions/create-company-update.d.ts +0 -9
- package/src/lib/actions/create-company-update.d.ts.map +0 -1
- package/src/lib/actions/create-company-update.js +0 -58
- package/src/lib/actions/create-company-update.js.map +0 -1
- package/src/lib/actions/create-share-update.d.ts +0 -9
- package/src/lib/actions/create-share-update.d.ts.map +0 -1
- package/src/lib/actions/create-share-update.js +0 -63
- package/src/lib/actions/create-share-update.js.map +0 -1
- package/src/lib/common/index.d.ts +0 -84
- package/src/lib/common/index.d.ts.map +0 -1
- package/src/lib/common/index.js +0 -181
- package/src/lib/common/index.js.map +0 -1
package/src/index.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const linkedinAuth: import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>;
|
|
2
|
-
export declare const linkedin: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
|
|
3
|
-
//# sourceMappingURL=index.d.ts.map
|
package/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,+GAYvB,CAAC;AAEH,eAAO,MAAM,QAAQ,+JAyBnB,CAAC"}
|
package/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AAExC,iDAAqD;AACrD,+EAA0E;AAC1E,2EAAsE;AACtE,+DAAwE;AACxE,yCAA8C;AAEjC,QAAA,YAAY,GAAG,4BAAS,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,iDAAiD;IAC1D,QAAQ,EAAE,+CAA+C;IACzD,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,iBAAiB;QACjB,uBAAuB;QACvB,uBAAuB;QACvB,QAAQ;QACR,OAAO;QACP,SAAS;KACV;CACF,CAAC,CAAC;AAEU,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IAClC,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,wCAAwC;IAErD,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,CAAC,sBAAa,CAAC,SAAS,CAAC;IACrC,OAAO,EAAE,CAAC,WAAW,EAAC,YAAY,EAAC,WAAW,EAAC,eAAe,EAAC,UAAU,EAAE,SAAS,CAAC;IACrF,IAAI,EAAE,oBAAY;IAClB,OAAO,EAAE;QACP,uCAAiB;QACjB,2CAAmB;QACnB,IAAA,yCAAyB,EAAC;YACxB,IAAI,EAAE,oBAAY;YAClB,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO,uBAAc,CAAC,OAAO,CAAC;YAChC,CAAC;YACD,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAC1B,OAAO;oBACL,aAAa,EAAE,UAAW,IAA4B,CAAC,YAAY,EAAE;iBACtE,CAAC;YACJ,CAAC,CAAA;SACF,CAAC;KACH;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const createCompanyUpdate: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
company: import("@activepieces/pieces-framework").DropdownProperty<any, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
|
|
3
|
-
imageUrl: import("@activepieces/pieces-framework").FileProperty<false>;
|
|
4
|
-
text: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
5
|
-
link: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
6
|
-
linkTitle: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
7
|
-
linkDescription: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
8
|
-
}>;
|
|
9
|
-
//# sourceMappingURL=create-company-update.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-company-update.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-company-update.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,mBAAmB;;;;;;;EAkE9B,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
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
|
-
const __1 = require("../..");
|
|
9
|
-
exports.createCompanyUpdate = (0, pieces_framework_1.createAction)({
|
|
10
|
-
auth: __1.linkedinAuth,
|
|
11
|
-
name: 'create_company_update',
|
|
12
|
-
displayName: 'Create Company Update',
|
|
13
|
-
description: 'Create a new company update for Company Page',
|
|
14
|
-
audience: 'both',
|
|
15
|
-
aiMetadata: {
|
|
16
|
-
description: 'Publishes a new post to a LinkedIn organization (company) page, with optional image and link preview; posts are always public. Use this to share content on behalf of a company rather than a personal profile, and requires the target organization id plus admin access to that page. Not idempotent: each call creates a separate post, so repeating it with the same text produces a duplicate.',
|
|
17
|
-
idempotent: false,
|
|
18
|
-
},
|
|
19
|
-
props: {
|
|
20
|
-
company: common_1.linkedinCommon.company,
|
|
21
|
-
imageUrl: common_1.linkedinCommon.imageUrl,
|
|
22
|
-
text: common_1.linkedinCommon.text,
|
|
23
|
-
link: common_1.linkedinCommon.link,
|
|
24
|
-
linkTitle: common_1.linkedinCommon.linkTitle,
|
|
25
|
-
linkDescription: common_1.linkedinCommon.linkDescription,
|
|
26
|
-
},
|
|
27
|
-
run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
-
const imageUrl = context.propsValue.imageUrl;
|
|
29
|
-
const bodyConfig = {
|
|
30
|
-
urn: `organization:${context.propsValue.company}`,
|
|
31
|
-
text: (0, common_1.santizeText)(context.propsValue.text),
|
|
32
|
-
link: context.propsValue.link,
|
|
33
|
-
linkDescription: context.propsValue.linkDescription,
|
|
34
|
-
linkTitle: context.propsValue.linkTitle,
|
|
35
|
-
visibility: 'PUBLIC',
|
|
36
|
-
};
|
|
37
|
-
if (imageUrl) {
|
|
38
|
-
bodyConfig.image = yield common_1.linkedinCommon.uploadImage(context.auth.access_token, `organization:${context.propsValue.company}`, imageUrl);
|
|
39
|
-
}
|
|
40
|
-
const requestBody = common_1.linkedinCommon.generatePostRequestBody(bodyConfig);
|
|
41
|
-
const createPostHeaders = common_1.linkedinCommon.linkedinHeaders;
|
|
42
|
-
const request = {
|
|
43
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
44
|
-
url: `${common_1.linkedinCommon.baseUrl}/rest/posts`,
|
|
45
|
-
authentication: {
|
|
46
|
-
type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
|
|
47
|
-
token: context.auth.access_token,
|
|
48
|
-
},
|
|
49
|
-
headers: createPostHeaders,
|
|
50
|
-
body: requestBody,
|
|
51
|
-
};
|
|
52
|
-
const response = yield pieces_common_1.httpClient.sendRequest(request);
|
|
53
|
-
return {
|
|
54
|
-
success: true,
|
|
55
|
-
};
|
|
56
|
-
}),
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=create-company-update.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-company-update.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-company-update.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,+DAKqC;AACrC,sCAA+D;AAC/D,6BAAqC;AAExB,QAAA,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IAC9C,IAAI,EAAE,gBAAY;IAClB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,qYAAqY;QACvY,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,uBAAc,CAAC,OAAO;QAC/B,QAAQ,EAAE,uBAAc,CAAC,QAAQ;QACjC,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,SAAS,EAAE,uBAAc,CAAC,SAAS;QACnC,eAAe,EAAE,uBAAc,CAAC,eAAe;KAChD;IAED,GAAG,EAAE,CAAO,OAAO,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,MAAM,UAAU,GAQZ;YACF,GAAG,EAAE,gBAAgB,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;YACjD,IAAI,EAAE,IAAA,oBAAW,EAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1C,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;SACrB,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,KAAK,GAAG,MAAM,uBAAc,CAAC,WAAW,CACjD,OAAO,CAAC,IAAI,CAAC,YAAY,EACzB,gBAAgB,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAC5C,QAAQ,CACT,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,uBAAc,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAQ,uBAAc,CAAC,eAAe,CAAC;QAE9D,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,uBAAc,CAAC,OAAO,aAAa;YAC3C,cAAc,EAAE;gBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;aACjC;YACD,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const createShareUpdate: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
text: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
3
|
-
visibility: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
|
|
4
|
-
imageUrl: import("@activepieces/pieces-framework").FileProperty<false>;
|
|
5
|
-
link: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
6
|
-
linkTitle: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
7
|
-
linkDescription: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
8
|
-
}>;
|
|
9
|
-
//# sourceMappingURL=create-share-update.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-share-update.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-share-update.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,iBAAiB;;;;;;;EA+D5B,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
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
|
-
const __1 = require("../..");
|
|
10
|
-
exports.createShareUpdate = (0, pieces_framework_1.createAction)({
|
|
11
|
-
auth: __1.linkedinAuth,
|
|
12
|
-
name: 'create_share_update',
|
|
13
|
-
displayName: 'Create Share Update',
|
|
14
|
-
description: 'Create a share update on LinkedIn',
|
|
15
|
-
audience: 'both',
|
|
16
|
-
aiMetadata: {
|
|
17
|
-
description: "Publishes a new post to the authenticated user's personal LinkedIn profile, with optional image, link preview, and visibility setting. Use this to share content as an individual member (not a company page — use Create Company Update for that). Not idempotent: each call creates a separate post, so calling it again with the same text produces a duplicate.",
|
|
18
|
-
idempotent: false,
|
|
19
|
-
},
|
|
20
|
-
props: {
|
|
21
|
-
text: common_1.linkedinCommon.text,
|
|
22
|
-
visibility: common_1.linkedinCommon.visibility,
|
|
23
|
-
imageUrl: common_1.linkedinCommon.imageUrl,
|
|
24
|
-
link: common_1.linkedinCommon.link,
|
|
25
|
-
linkTitle: common_1.linkedinCommon.linkTitle,
|
|
26
|
-
linkDescription: common_1.linkedinCommon.linkDescription,
|
|
27
|
-
},
|
|
28
|
-
run: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
-
const token = context.auth.data.id_token;
|
|
30
|
-
const decoded = jsonwebtoken_1.default.decode(token);
|
|
31
|
-
const imageUrl = context.propsValue.imageUrl;
|
|
32
|
-
const { text, link, linkDescription, linkTitle, visibility } = context.propsValue;
|
|
33
|
-
let image;
|
|
34
|
-
if (imageUrl) {
|
|
35
|
-
image = yield common_1.linkedinCommon.uploadImage(context.auth.access_token, `person:${decoded.sub}`, imageUrl);
|
|
36
|
-
}
|
|
37
|
-
const requestBody = common_1.linkedinCommon.generatePostRequestBody({
|
|
38
|
-
urn: `person:${decoded.sub}`,
|
|
39
|
-
text: (0, common_1.santizeText)(text),
|
|
40
|
-
link,
|
|
41
|
-
linkDescription,
|
|
42
|
-
linkTitle,
|
|
43
|
-
visibility,
|
|
44
|
-
image,
|
|
45
|
-
});
|
|
46
|
-
const createPostHeaders = common_1.linkedinCommon.linkedinHeaders;
|
|
47
|
-
const request = {
|
|
48
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
49
|
-
url: `${common_1.linkedinCommon.baseUrl}/rest/posts`,
|
|
50
|
-
authentication: {
|
|
51
|
-
type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
|
|
52
|
-
token: context.auth.access_token,
|
|
53
|
-
},
|
|
54
|
-
headers: createPostHeaders,
|
|
55
|
-
body: requestBody,
|
|
56
|
-
};
|
|
57
|
-
const response = yield pieces_common_1.httpClient.sendRequest(request);
|
|
58
|
-
return {
|
|
59
|
-
success: true,
|
|
60
|
-
};
|
|
61
|
-
}),
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=create-share-update.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-share-update.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-share-update.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,+DAKqC;AACrC,sCAA+D;AAC/D,wEAA+C;AAC/C,6BAAqC;AAExB,QAAA,iBAAiB,GAAG,IAAA,+BAAY,EAAC;IAC5C,IAAI,EAAE,gBAAY;IAClB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,qWAAqW;QACvW,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,UAAU,EAAE,uBAAc,CAAC,UAAU;QACrC,QAAQ,EAAE,uBAAc,CAAC,QAAQ;QACjC,IAAI,EAAE,uBAAc,CAAC,IAAI;QACzB,SAAS,EAAE,uBAAc,CAAC,SAAS;QACnC,eAAe,EAAE,uBAAc,CAAC,eAAe;KAChD;IAED,GAAG,EAAE,CAAO,OAAO,EAAE,EAAE;QAErB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzC,MAAM,OAAO,GAAe,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,GAC1D,OAAO,CAAC,UAAU,CAAC;QACrB,IAAI,KAAwB,CAAC;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,uBAAc,CAAC,WAAW,CACtC,OAAO,CAAC,IAAI,CAAC,YAAY,EACzB,UAAU,OAAO,CAAC,GAAG,EAAE,EACvB,QAAQ,CACT,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,uBAAc,CAAC,uBAAuB,CAAC;YACzD,GAAG,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE;YAC5B,IAAI,EAAE,IAAA,oBAAW,EAAC,IAAI,CAAC;YACvB,IAAI;YACJ,eAAe;YACf,SAAS;YACT,UAAU;YACV,KAAK;SACN,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAQ,uBAAc,CAAC,eAAe,CAAC;QAE9D,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,uBAAc,CAAC,OAAO,aAAa;YAC3C,cAAc,EAAE;gBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;gBACrC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;aACjC;YACD,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,WAAW;SAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ApFile } from '@activepieces/pieces-framework';
|
|
2
|
-
export declare const santizeText: (text: string) => string;
|
|
3
|
-
export declare const linkedinCommon: {
|
|
4
|
-
baseUrl: string;
|
|
5
|
-
linkedinHeaders: {
|
|
6
|
-
'X-Restli-Protocol-Version': string;
|
|
7
|
-
'LinkedIn-Version': string;
|
|
8
|
-
};
|
|
9
|
-
text: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
10
|
-
imageUrl: import("@activepieces/pieces-framework").FileProperty<false>;
|
|
11
|
-
link: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
12
|
-
linkTitle: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
13
|
-
linkDescription: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
14
|
-
visibility: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
|
|
15
|
-
company: import("@activepieces/pieces-framework").DropdownProperty<any, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
|
|
16
|
-
getCompanies: (accessToken: string) => Promise<any>;
|
|
17
|
-
generatePostRequestBody: (data: {
|
|
18
|
-
urn: string;
|
|
19
|
-
text: any;
|
|
20
|
-
link?: string | undefined;
|
|
21
|
-
linkTitle?: string | undefined;
|
|
22
|
-
linkDescription?: string | undefined;
|
|
23
|
-
visibility: string;
|
|
24
|
-
image?: Image | undefined;
|
|
25
|
-
}) => Post;
|
|
26
|
-
uploadImage: (accessToken: string, urn: string, image: ApFile) => Promise<Image>;
|
|
27
|
-
};
|
|
28
|
-
export interface UgcPost {
|
|
29
|
-
author: string;
|
|
30
|
-
lifecycleState: string;
|
|
31
|
-
specificContent: {
|
|
32
|
-
'com.linkedin.ugc.ShareContent': {
|
|
33
|
-
shareCommentary: {
|
|
34
|
-
text?: string;
|
|
35
|
-
};
|
|
36
|
-
shareMediaCategory: string;
|
|
37
|
-
media?: [
|
|
38
|
-
{
|
|
39
|
-
status: string;
|
|
40
|
-
description?: {
|
|
41
|
-
text: string;
|
|
42
|
-
};
|
|
43
|
-
originalUrl?: string;
|
|
44
|
-
thumbnail?: string;
|
|
45
|
-
title?: {
|
|
46
|
-
text: string;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
];
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
visibility: {
|
|
53
|
-
'com.linkedin.ugc.MemberNetworkVisibility': string;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export interface Post {
|
|
57
|
-
author: string;
|
|
58
|
-
commentary: string;
|
|
59
|
-
lifecycleState: string;
|
|
60
|
-
visibility: string;
|
|
61
|
-
distribution: {
|
|
62
|
-
feedDistribution: string;
|
|
63
|
-
};
|
|
64
|
-
content?: {
|
|
65
|
-
article?: {
|
|
66
|
-
source: string;
|
|
67
|
-
thumbnail?: string | undefined;
|
|
68
|
-
title?: string | undefined;
|
|
69
|
-
description?: string | undefined;
|
|
70
|
-
};
|
|
71
|
-
media?: {
|
|
72
|
-
id: string;
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
isReshareDisabledByAuthor: boolean;
|
|
76
|
-
}
|
|
77
|
-
export interface Image {
|
|
78
|
-
value: {
|
|
79
|
-
uploadUrlExpiresAt: number;
|
|
80
|
-
uploadUrl: string;
|
|
81
|
-
image: string;
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,gCAAgC,CAAC;AAUlE,eAAO,MAAM,WAAW,SAAU,MAAM,WAMvC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;gCA+ES,MAAM;oCAwCR;QAC9B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,GAAG,CAAC;QACV,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;KAC3B;+BAiCc,MAAM,OACd,MAAM,SACJ,MAAM,KACZ,OAAO,CAAC,KAAK,CAAC;CAuClB,CAAC;AACF,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE;QACf,+BAA+B,EAAE;YAC/B,eAAe,EAAE;gBACf,IAAI,CAAC,EAAE,MAAM,CAAC;aACf,CAAC;YACF,kBAAkB,EAAE,MAAM,CAAC;YAC3B,KAAK,CAAC,EAAE;gBACN;oBACE,MAAM,EAAE,MAAM,CAAC;oBACf,WAAW,CAAC,EAAE;wBACZ,IAAI,EAAE,MAAM,CAAC;qBACd,CAAC;oBACF,WAAW,CAAC,EAAE,MAAM,CAAC;oBACrB,SAAS,CAAC,EAAE,MAAM,CAAC;oBACnB,KAAK,CAAC,EAAE;wBACN,IAAI,EAAE,MAAM,CAAC;qBACd,CAAC;iBACH;aACF,CAAC;SACH,CAAC;KACH,CAAC;IACF,UAAU,EAAE;QACV,0CAA0C,EAAE,MAAM,CAAC;KACpD,CAAC;CACH;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE;QACZ,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE;YACR,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAClC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;KACH,CAAC;IACF,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE;QACL,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH"}
|
package/src/lib/common/index.js
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.linkedinCommon = exports.santizeText = 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
|
-
const __1 = require("../..");
|
|
9
|
-
const santizeText = (text) => {
|
|
10
|
-
// LinkedIn Posts API has a list of characters that need to be escaped since it's type is "LittleText"
|
|
11
|
-
// https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api?view=li-lms-2023-11&tabs=http
|
|
12
|
-
// https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/little-text-format?view=li-lms-2023-11
|
|
13
|
-
// eslint-disable-next-line no-useless-escape
|
|
14
|
-
return text.replace(/[\(*\)\[\]\{\}<>@|~_]/gm, (x) => '\\' + x);
|
|
15
|
-
};
|
|
16
|
-
exports.santizeText = santizeText;
|
|
17
|
-
exports.linkedinCommon = {
|
|
18
|
-
baseUrl: 'https://api.linkedin.com',
|
|
19
|
-
linkedinHeaders: {
|
|
20
|
-
'X-Restli-Protocol-Version': '2.0.0',
|
|
21
|
-
'LinkedIn-Version': '202511',
|
|
22
|
-
},
|
|
23
|
-
text: pieces_framework_1.Property.LongText({
|
|
24
|
-
displayName: 'Text',
|
|
25
|
-
required: true,
|
|
26
|
-
}),
|
|
27
|
-
imageUrl: pieces_framework_1.Property.File({
|
|
28
|
-
displayName: 'Image',
|
|
29
|
-
required: false,
|
|
30
|
-
}),
|
|
31
|
-
link: pieces_framework_1.Property.ShortText({
|
|
32
|
-
displayName: 'Content - URL',
|
|
33
|
-
required: false,
|
|
34
|
-
}),
|
|
35
|
-
linkTitle: pieces_framework_1.Property.ShortText({
|
|
36
|
-
displayName: 'Content - Title',
|
|
37
|
-
required: false,
|
|
38
|
-
}),
|
|
39
|
-
linkDescription: pieces_framework_1.Property.ShortText({
|
|
40
|
-
displayName: 'Content - Description',
|
|
41
|
-
required: false,
|
|
42
|
-
}),
|
|
43
|
-
visibility: pieces_framework_1.Property.Dropdown({
|
|
44
|
-
auth: __1.linkedinAuth,
|
|
45
|
-
displayName: 'Visibility',
|
|
46
|
-
refreshers: [],
|
|
47
|
-
required: true,
|
|
48
|
-
options: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
-
return {
|
|
50
|
-
options: [
|
|
51
|
-
{
|
|
52
|
-
label: 'Public',
|
|
53
|
-
value: 'PUBLIC',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
label: 'Connections Only',
|
|
57
|
-
value: 'CONNECTIONS',
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
};
|
|
61
|
-
}),
|
|
62
|
-
}),
|
|
63
|
-
company: pieces_framework_1.Property.Dropdown({
|
|
64
|
-
auth: __1.linkedinAuth,
|
|
65
|
-
displayName: 'Company Page',
|
|
66
|
-
required: true,
|
|
67
|
-
refreshers: [],
|
|
68
|
-
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
69
|
-
if (!auth) {
|
|
70
|
-
return {
|
|
71
|
-
disabled: true,
|
|
72
|
-
placeholder: 'Connect your account',
|
|
73
|
-
options: [],
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
const authProp = auth;
|
|
77
|
-
const companies = yield exports.linkedinCommon.getCompanies(authProp.access_token);
|
|
78
|
-
const options = [];
|
|
79
|
-
for (const company in companies) {
|
|
80
|
-
options.push({
|
|
81
|
-
label: companies[company].localizedName,
|
|
82
|
-
value: companies[company].id,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
options: options,
|
|
87
|
-
};
|
|
88
|
-
}),
|
|
89
|
-
}),
|
|
90
|
-
getCompanies: (accessToken) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
91
|
-
const companies = (yield pieces_common_1.httpClient.sendRequest({
|
|
92
|
-
url: `${exports.linkedinCommon.baseUrl}/v2/organizationalEntityAcls`,
|
|
93
|
-
method: pieces_common_1.HttpMethod.GET,
|
|
94
|
-
authentication: {
|
|
95
|
-
type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
|
|
96
|
-
token: accessToken,
|
|
97
|
-
},
|
|
98
|
-
queryParams: {
|
|
99
|
-
q: 'roleAssignee',
|
|
100
|
-
},
|
|
101
|
-
})).body;
|
|
102
|
-
const companyIds = companies.elements.map((company) => {
|
|
103
|
-
return company.organizationalTarget.substr(company.organizationalTarget.lastIndexOf(':') + 1);
|
|
104
|
-
});
|
|
105
|
-
const response = yield fetch(`${exports.linkedinCommon.baseUrl}/rest/organizations?ids=List(${companyIds.join(',')})`, {
|
|
106
|
-
method: 'GET',
|
|
107
|
-
headers: Object.assign(Object.assign({}, exports.linkedinCommon.linkedinHeaders), { 'Authorization': `Bearer ${accessToken}` })
|
|
108
|
-
});
|
|
109
|
-
if (!response.ok) {
|
|
110
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
111
|
-
}
|
|
112
|
-
const companySearch = yield response.json();
|
|
113
|
-
return companySearch.results;
|
|
114
|
-
}),
|
|
115
|
-
generatePostRequestBody: (data) => {
|
|
116
|
-
var _a;
|
|
117
|
-
const requestObject = {
|
|
118
|
-
author: `urn:li:${data.urn}`,
|
|
119
|
-
lifecycleState: 'PUBLISHED',
|
|
120
|
-
commentary: data.text,
|
|
121
|
-
distribution: {
|
|
122
|
-
feedDistribution: 'MAIN_FEED',
|
|
123
|
-
},
|
|
124
|
-
visibility: data.visibility,
|
|
125
|
-
isReshareDisabledByAuthor: false,
|
|
126
|
-
};
|
|
127
|
-
if (data.link) {
|
|
128
|
-
requestObject.content = {
|
|
129
|
-
article: {
|
|
130
|
-
source: data.link,
|
|
131
|
-
title: data.linkTitle,
|
|
132
|
-
description: data.linkDescription,
|
|
133
|
-
thumbnail: (_a = data.image) === null || _a === void 0 ? void 0 : _a.value.image,
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
else if (data.image) {
|
|
138
|
-
requestObject.content = {
|
|
139
|
-
media: {
|
|
140
|
-
id: data.image.value.image,
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
return requestObject;
|
|
145
|
-
},
|
|
146
|
-
uploadImage: (accessToken, urn, image) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
147
|
-
const uploadData = (yield pieces_common_1.httpClient.sendRequest({
|
|
148
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
149
|
-
url: `${exports.linkedinCommon.baseUrl}/v2/images`,
|
|
150
|
-
authentication: {
|
|
151
|
-
type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
|
|
152
|
-
token: accessToken,
|
|
153
|
-
},
|
|
154
|
-
queryParams: {
|
|
155
|
-
action: 'initializeUpload',
|
|
156
|
-
},
|
|
157
|
-
body: {
|
|
158
|
-
initializeUploadRequest: {
|
|
159
|
-
owner: `urn:li:${urn}`,
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
})).body;
|
|
163
|
-
const uploadFormData = new form_data_1.default();
|
|
164
|
-
const { filename, base64 } = image;
|
|
165
|
-
uploadFormData.append('file', Buffer.from(base64, 'base64'), filename);
|
|
166
|
-
yield pieces_common_1.httpClient.sendRequest({
|
|
167
|
-
url: uploadData.value.uploadUrl,
|
|
168
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
169
|
-
body: uploadFormData,
|
|
170
|
-
authentication: {
|
|
171
|
-
type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
|
|
172
|
-
token: accessToken,
|
|
173
|
-
},
|
|
174
|
-
headers: {
|
|
175
|
-
'Content-Type': 'multipart/form-data',
|
|
176
|
-
},
|
|
177
|
-
});
|
|
178
|
-
return uploadData;
|
|
179
|
-
}),
|
|
180
|
-
};
|
|
181
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"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"}
|