@tangle-network/agent-integrations 0.53.46 → 0.53.47

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.
@@ -182,6 +182,7 @@ __export(adapters_exports, {
182
182
  copyAiConnector: () => copyAiConnector,
183
183
  couchbaseConnector: () => couchbaseConnector,
184
184
  createKafkaConnector: () => createKafkaConnector,
185
+ createLinkedinConnector: () => createLinkedinConnector,
185
186
  createMongoDbConnector: () => createMongoDbConnector,
186
187
  createMySqlConnector: () => createMySqlConnector,
187
188
  createPostgresConnector: () => createPostgresConnector,
@@ -48394,327 +48395,335 @@ var linearConnector = declarativeRestConnector({
48394
48395
  });
48395
48396
 
48396
48397
  // src/connectors/adapters/linkedin.ts
48397
- var linkedinConnector = declarativeRestConnector({
48398
- kind: "linkedin",
48399
- displayName: "LinkedIn",
48400
- description: "Read the connected LinkedIn member profile and administered organizations, and create / read / delete member or organization posts and comments via the LinkedIn REST API.",
48401
- auth: {
48402
- kind: "oauth2",
48403
- authorizationUrl: "https://www.linkedin.com/oauth/v2/authorization",
48404
- tokenUrl: "https://www.linkedin.com/oauth/v2/accessToken",
48405
- scopes: [
48406
- "openid",
48407
- "profile",
48408
- "email",
48409
- "w_member_social",
48410
- "r_organization_social",
48411
- "w_organization_social",
48412
- "rw_organization_admin"
48413
- ],
48414
- clientIdEnv: "LINKEDIN_OAUTH_CLIENT_ID",
48415
- clientSecretEnv: "LINKEDIN_OAUTH_CLIENT_SECRET"
48416
- },
48417
- category: "comms",
48418
- defaultConsistencyModel: "advisory",
48419
- baseUrl: "https://api.linkedin.com",
48420
- defaultHeaders: {
48421
- "LinkedIn-Version": "202405",
48422
- "X-Restli-Protocol-Version": "2.0.0"
48423
- },
48424
- test: { method: "GET", path: "/v2/userinfo" },
48425
- capabilities: [
48426
- {
48427
- name: "userinfo",
48428
- class: "read",
48429
- description: "Return the OpenID-Connect userinfo for the connected LinkedIn member (sub, name, given_name, family_name, picture, email, email_verified, locale).",
48430
- parameters: { type: "object", properties: {} },
48431
- request: { method: "GET", path: "/v2/userinfo" },
48432
- requiredScopes: ["openid", "profile"]
48398
+ var MEMBER_SCOPES = ["openid", "profile", "email", "w_member_social"];
48399
+ var ORGANIZATION_SCOPES = [
48400
+ "r_organization_social",
48401
+ "w_organization_social",
48402
+ "rw_organization_admin"
48403
+ ];
48404
+ var ORGANIZATION_SCOPE_SET = new Set(ORGANIZATION_SCOPES);
48405
+ function createLinkedinConnector(options = {}) {
48406
+ const organizationAccess = options.organizationAccess === true;
48407
+ const postScope = organizationAccess ? "w_organization_social" : "w_member_social";
48408
+ return declarativeRestConnector({
48409
+ kind: "linkedin",
48410
+ displayName: "LinkedIn",
48411
+ description: organizationAccess ? "Read the connected LinkedIn member profile and administered organizations, and create / read / delete organization posts and comments via the LinkedIn REST API." : "Read the connected LinkedIn member profile and create / delete member posts and comments via the LinkedIn REST API.",
48412
+ auth: {
48413
+ kind: "oauth2",
48414
+ authorizationUrl: "https://www.linkedin.com/oauth/v2/authorization",
48415
+ tokenUrl: "https://www.linkedin.com/oauth/v2/accessToken",
48416
+ scopes: organizationAccess ? [...MEMBER_SCOPES, ...ORGANIZATION_SCOPES] : [...MEMBER_SCOPES],
48417
+ clientIdEnv: "LINKEDIN_OAUTH_CLIENT_ID",
48418
+ clientSecretEnv: "LINKEDIN_OAUTH_CLIENT_SECRET"
48433
48419
  },
48434
- {
48435
- name: "organizations.get",
48436
- class: "read",
48437
- description: "Read a single LinkedIn organization (company page) by numeric id. The connected member must be an administrator of the organization.",
48438
- parameters: {
48439
- type: "object",
48440
- properties: { organizationId: { type: "string" } },
48441
- required: ["organizationId"]
48442
- },
48443
- request: { method: "GET", path: "/v2/organizations/{organizationId}" },
48444
- requiredScopes: ["r_organization_social"]
48420
+ category: "comms",
48421
+ defaultConsistencyModel: "advisory",
48422
+ baseUrl: "https://api.linkedin.com",
48423
+ defaultHeaders: {
48424
+ "LinkedIn-Version": "202405",
48425
+ "X-Restli-Protocol-Version": "2.0.0"
48445
48426
  },
48446
- {
48447
- name: "organizations.acls.list",
48448
- class: "read",
48449
- description: "List the organizations (and roles) for which the connected member has an ACL \u2014 i.e. the company pages they can read or post on behalf of.",
48450
- parameters: {
48451
- type: "object",
48452
- properties: {
48453
- role: {
48454
- type: "string",
48455
- enum: ["ADMINISTRATOR", "DIRECT_SPONSORED_CONTENT_POSTER", "RECRUITING_POSTER"],
48456
- default: "ADMINISTRATOR"
48457
- },
48458
- state: {
48459
- type: "string",
48460
- enum: ["APPROVED", "REQUESTED", "REJECTED", "REVOKED"],
48461
- default: "APPROVED"
48462
- },
48463
- count: { type: "integer", minimum: 1, maximum: 100, default: 100 },
48464
- start: { type: "integer", minimum: 0, default: 0 }
48465
- }
48466
- },
48467
- request: {
48468
- method: "GET",
48469
- path: "/v2/organizationAcls",
48470
- query: {
48471
- q: "roleAssignee",
48472
- role: "{role}",
48473
- state: "{state}",
48474
- count: "{count}",
48475
- start: "{start}"
48476
- }
48427
+ test: { method: "GET", path: "/v2/userinfo" },
48428
+ capabilities: [
48429
+ {
48430
+ name: "userinfo",
48431
+ class: "read",
48432
+ description: "Return the OpenID-Connect userinfo for the connected LinkedIn member (sub, name, given_name, family_name, picture, email, email_verified, locale).",
48433
+ parameters: { type: "object", properties: {} },
48434
+ request: { method: "GET", path: "/v2/userinfo" },
48435
+ requiredScopes: ["openid", "profile", "email"]
48477
48436
  },
48478
- requiredScopes: ["r_organization_social", "rw_organization_admin"]
48479
- },
48480
- {
48481
- name: "posts.create",
48482
- class: "mutation",
48483
- description: "Create a LinkedIn post on the REST Posts API. `author` is the member or organization URN (e.g. `urn:li:person:{sub}` or `urn:li:organization:{id}`). `commentary` is the post text; `distribution.feedDistribution` defaults to `MAIN_FEED`; `lifecycleState` defaults to `PUBLISHED`. Append-only \u2014 caller owns dedupe via idempotencyKey.",
48484
- parameters: {
48485
- type: "object",
48486
- properties: {
48487
- author: {
48488
- type: "string",
48489
- description: "URN of the post author (urn:li:person:{sub} or urn:li:organization:{id})."
48490
- },
48491
- commentary: { type: "string", description: "Post text body." },
48492
- visibility: {
48493
- type: "string",
48494
- enum: ["PUBLIC", "CONNECTIONS", "LOGGED_IN", "CONTAINER"],
48495
- default: "PUBLIC"
48496
- },
48497
- distribution: {
48498
- type: "object",
48499
- description: 'Distribution policy. Defaults to { feedDistribution: "MAIN_FEED", targetEntities: [], thirdPartyDistributionChannels: [] }.'
48500
- },
48501
- content: {
48502
- type: "object",
48503
- description: "Optional rich-media content block ({ article: {...} } | { media: {...} } | { multiImage: {...} } | { poll: {...} } | { carousel: {...} })."
48504
- },
48505
- lifecycleState: {
48506
- type: "string",
48507
- enum: ["PUBLISHED", "DRAFT"],
48508
- default: "PUBLISHED"
48509
- },
48510
- isReshareDisabledByAuthor: { type: "boolean", default: false }
48437
+ {
48438
+ name: "organizations.get",
48439
+ class: "read",
48440
+ description: "Read a single LinkedIn organization (company page) by numeric id. The connected member must be an administrator of the organization.",
48441
+ parameters: {
48442
+ type: "object",
48443
+ properties: { organizationId: { type: "string" } },
48444
+ required: ["organizationId"]
48511
48445
  },
48512
- required: ["author", "commentary"]
48513
- },
48514
- request: {
48515
- method: "POST",
48516
- path: "/rest/posts",
48517
- body: {
48518
- author: "{author}",
48519
- commentary: "{commentary}",
48520
- visibility: "{visibility}",
48521
- distribution: "{distribution}",
48522
- content: "{content}",
48523
- lifecycleState: "{lifecycleState}",
48524
- isReshareDisabledByAuthor: "{isReshareDisabledByAuthor}"
48525
- }
48446
+ request: { method: "GET", path: "/v2/organizations/{organizationId}" },
48447
+ requiredScopes: ["r_organization_social"]
48526
48448
  },
48527
- cas: "none",
48528
- externalEffect: true,
48529
- requiredScopes: ["w_member_social"]
48530
- },
48531
- {
48532
- name: "posts.get",
48533
- class: "read",
48534
- description: "Read a single post by its URN (e.g. `urn:li:share:1234567890` or `urn:li:ugcPost:1234567890`). The URN must be URL-encoded by the caller.",
48535
- parameters: {
48536
- type: "object",
48537
- properties: {
48538
- postUrn: {
48539
- type: "string",
48540
- description: "URL-encoded URN of the post (urn:li:share:* or urn:li:ugcPost:*)."
48449
+ {
48450
+ name: "organizations.acls.list",
48451
+ class: "read",
48452
+ description: "List the organizations (and roles) for which the connected member has an ACL \u2014 i.e. the company pages they can read or post on behalf of.",
48453
+ parameters: {
48454
+ type: "object",
48455
+ properties: {
48456
+ role: {
48457
+ type: "string",
48458
+ enum: ["ADMINISTRATOR", "DIRECT_SPONSORED_CONTENT_POSTER", "RECRUITING_POSTER"],
48459
+ default: "ADMINISTRATOR"
48460
+ },
48461
+ state: {
48462
+ type: "string",
48463
+ enum: ["APPROVED", "REQUESTED", "REJECTED", "REVOKED"],
48464
+ default: "APPROVED"
48465
+ },
48466
+ count: { type: "integer", minimum: 1, maximum: 100, default: 100 },
48467
+ start: { type: "integer", minimum: 0, default: 0 }
48468
+ }
48469
+ },
48470
+ request: {
48471
+ method: "GET",
48472
+ path: "/v2/organizationAcls",
48473
+ query: {
48474
+ q: "roleAssignee",
48475
+ role: "{role}",
48476
+ state: "{state}",
48477
+ count: "{count}",
48478
+ start: "{start}"
48541
48479
  }
48542
48480
  },
48543
- required: ["postUrn"]
48481
+ requiredScopes: ["r_organization_social", "rw_organization_admin"]
48544
48482
  },
48545
- request: { method: "GET", path: "/rest/posts/{postUrn}" },
48546
- requiredScopes: ["r_organization_social"]
48547
- },
48548
- {
48549
- name: "posts.list.byAuthor",
48550
- class: "read",
48551
- description: "List posts authored by a given URN (member or organization). Uses the Posts API finder `q=author`.",
48552
- parameters: {
48553
- type: "object",
48554
- properties: {
48555
- author: {
48556
- type: "string",
48557
- description: "URN of the author to list posts for."
48483
+ {
48484
+ name: "posts.create",
48485
+ class: "mutation",
48486
+ description: organizationAccess ? "Create a LinkedIn organization post on the REST Posts API. `author` is an organization URN (e.g. `urn:li:organization:{id}`). `commentary` is the post text; `distribution.feedDistribution` defaults to `MAIN_FEED`; `lifecycleState` defaults to `PUBLISHED`. Append-only \u2014 caller owns dedupe via idempotencyKey." : "Create a LinkedIn member post on the REST Posts API. `author` is the connected member URN (e.g. `urn:li:person:{sub}`). `commentary` is the post text; `distribution.feedDistribution` defaults to `MAIN_FEED`; `lifecycleState` defaults to `PUBLISHED`. Append-only \u2014 caller owns dedupe via idempotencyKey.",
48487
+ parameters: {
48488
+ type: "object",
48489
+ properties: {
48490
+ author: {
48491
+ type: "string",
48492
+ description: organizationAccess ? "URN of the organization post author (urn:li:organization:{id})." : "URN of the connected member post author (urn:li:person:{sub})."
48493
+ },
48494
+ commentary: { type: "string", description: "Post text body." },
48495
+ visibility: {
48496
+ type: "string",
48497
+ enum: ["PUBLIC", "CONNECTIONS", "LOGGED_IN", "CONTAINER"],
48498
+ default: "PUBLIC"
48499
+ },
48500
+ distribution: {
48501
+ type: "object",
48502
+ description: 'Distribution policy. Defaults to { feedDistribution: "MAIN_FEED", targetEntities: [], thirdPartyDistributionChannels: [] }.'
48503
+ },
48504
+ content: {
48505
+ type: "object",
48506
+ description: "Optional rich-media content block ({ article: {...} } | { media: {...} } | { multiImage: {...} } | { poll: {...} } | { carousel: {...} })."
48507
+ },
48508
+ lifecycleState: {
48509
+ type: "string",
48510
+ enum: ["PUBLISHED", "DRAFT"],
48511
+ default: "PUBLISHED"
48512
+ },
48513
+ isReshareDisabledByAuthor: { type: "boolean", default: false }
48558
48514
  },
48559
- count: { type: "integer", minimum: 1, maximum: 100, default: 20 },
48560
- start: { type: "integer", minimum: 0, default: 0 },
48561
- sortBy: {
48562
- type: "string",
48563
- enum: ["CREATED", "LAST_MODIFIED"],
48564
- default: "CREATED"
48515
+ required: ["author", "commentary"]
48516
+ },
48517
+ request: {
48518
+ method: "POST",
48519
+ path: "/rest/posts",
48520
+ body: {
48521
+ author: "{author}",
48522
+ commentary: "{commentary}",
48523
+ visibility: "{visibility}",
48524
+ distribution: "{distribution}",
48525
+ content: "{content}",
48526
+ lifecycleState: "{lifecycleState}",
48527
+ isReshareDisabledByAuthor: "{isReshareDisabledByAuthor}"
48565
48528
  }
48566
48529
  },
48567
- required: ["author"]
48568
- },
48569
- request: {
48570
- method: "GET",
48571
- path: "/rest/posts",
48572
- query: {
48573
- q: "author",
48574
- author: "{author}",
48575
- count: "{count}",
48576
- start: "{start}",
48577
- sortBy: "{sortBy}"
48578
- }
48530
+ cas: "none",
48531
+ externalEffect: true,
48532
+ requiredScopes: [postScope]
48579
48533
  },
48580
- requiredScopes: ["r_organization_social"]
48581
- },
48582
- {
48583
- name: "posts.delete",
48584
- class: "mutation",
48585
- description: "Delete a post by its URL-encoded URN. Idempotent on the URN \u2014 replays after success return 404 and the engine maps that to a no-op.",
48586
- parameters: {
48587
- type: "object",
48588
- properties: {
48589
- postUrn: { type: "string" }
48534
+ {
48535
+ name: "posts.get",
48536
+ class: "read",
48537
+ description: "Read a single post by its URN (e.g. `urn:li:share:1234567890` or `urn:li:ugcPost:1234567890`). The URN must be URL-encoded by the caller.",
48538
+ parameters: {
48539
+ type: "object",
48540
+ properties: {
48541
+ postUrn: {
48542
+ type: "string",
48543
+ description: "URL-encoded URN of the post (urn:li:share:* or urn:li:ugcPost:*)."
48544
+ }
48545
+ },
48546
+ required: ["postUrn"]
48590
48547
  },
48591
- required: ["postUrn"]
48548
+ request: { method: "GET", path: "/rest/posts/{postUrn}" },
48549
+ requiredScopes: ["r_organization_social"]
48592
48550
  },
48593
- request: { method: "DELETE", path: "/rest/posts/{postUrn}" },
48594
- cas: "native-idempotency",
48595
- externalEffect: true,
48596
- requiredScopes: ["w_member_social"]
48597
- },
48598
- {
48599
- name: "comments.list",
48600
- class: "read",
48601
- description: "List comments on a share / post. `shareUrn` is the URL-encoded URN of the parent share (urn:li:share:* or urn:li:ugcPost:*).",
48602
- parameters: {
48603
- type: "object",
48604
- properties: {
48605
- shareUrn: { type: "string" },
48606
- count: { type: "integer", minimum: 1, maximum: 100, default: 50 },
48607
- start: { type: "integer", minimum: 0, default: 0 }
48551
+ {
48552
+ name: "posts.list.byAuthor",
48553
+ class: "read",
48554
+ description: "List posts authored by a given URN (member or organization). Uses the Posts API finder `q=author`.",
48555
+ parameters: {
48556
+ type: "object",
48557
+ properties: {
48558
+ author: {
48559
+ type: "string",
48560
+ description: "URN of the author to list posts for."
48561
+ },
48562
+ count: { type: "integer", minimum: 1, maximum: 100, default: 20 },
48563
+ start: { type: "integer", minimum: 0, default: 0 },
48564
+ sortBy: {
48565
+ type: "string",
48566
+ enum: ["CREATED", "LAST_MODIFIED"],
48567
+ default: "CREATED"
48568
+ }
48569
+ },
48570
+ required: ["author"]
48608
48571
  },
48609
- required: ["shareUrn"]
48610
- },
48611
- request: {
48612
- method: "GET",
48613
- path: "/rest/socialActions/{shareUrn}/comments",
48614
- query: { count: "{count}", start: "{start}" }
48572
+ request: {
48573
+ method: "GET",
48574
+ path: "/rest/posts",
48575
+ query: {
48576
+ q: "author",
48577
+ author: "{author}",
48578
+ count: "{count}",
48579
+ start: "{start}",
48580
+ sortBy: "{sortBy}"
48581
+ }
48582
+ },
48583
+ requiredScopes: ["r_organization_social"]
48615
48584
  },
48616
- requiredScopes: ["r_organization_social"]
48617
- },
48618
- {
48619
- name: "comments.create",
48620
- class: "mutation",
48621
- description: "Create a top-level comment on a share / post. `actor` is the member or organization URN posting the comment; `message.text` is the comment text. Append-only \u2014 caller owns dedupe via idempotencyKey.",
48622
- parameters: {
48623
- type: "object",
48624
- properties: {
48625
- shareUrn: {
48626
- type: "string",
48627
- description: "URL-encoded URN of the parent share (urn:li:share:* or urn:li:ugcPost:*)."
48585
+ {
48586
+ name: "posts.delete",
48587
+ class: "mutation",
48588
+ description: "Delete a post by its URL-encoded URN. Idempotent on the URN \u2014 replays after success return 404 and the engine maps that to a no-op.",
48589
+ parameters: {
48590
+ type: "object",
48591
+ properties: {
48592
+ postUrn: { type: "string" }
48628
48593
  },
48629
- actor: {
48630
- type: "string",
48631
- description: "URN of the commenting member or organization."
48594
+ required: ["postUrn"]
48595
+ },
48596
+ request: { method: "DELETE", path: "/rest/posts/{postUrn}" },
48597
+ cas: "native-idempotency",
48598
+ externalEffect: true,
48599
+ requiredScopes: [postScope]
48600
+ },
48601
+ {
48602
+ name: "comments.list",
48603
+ class: "read",
48604
+ description: "List comments on a share / post. `shareUrn` is the URL-encoded URN of the parent share (urn:li:share:* or urn:li:ugcPost:*).",
48605
+ parameters: {
48606
+ type: "object",
48607
+ properties: {
48608
+ shareUrn: { type: "string" },
48609
+ count: { type: "integer", minimum: 1, maximum: 100, default: 50 },
48610
+ start: { type: "integer", minimum: 0, default: 0 }
48632
48611
  },
48633
- message: {
48634
- type: "object",
48635
- description: "Comment body `{ text: string, attributes?: [...] }`."
48612
+ required: ["shareUrn"]
48613
+ },
48614
+ request: {
48615
+ method: "GET",
48616
+ path: "/rest/socialActions/{shareUrn}/comments",
48617
+ query: { count: "{count}", start: "{start}" }
48618
+ },
48619
+ requiredScopes: ["r_organization_social"]
48620
+ },
48621
+ {
48622
+ name: "comments.create",
48623
+ class: "mutation",
48624
+ description: organizationAccess ? "Create a top-level comment on an organization share / post. `actor` is the organization URN posting the comment; `message.text` is the comment text. Append-only \u2014 caller owns dedupe via idempotencyKey." : "Create a top-level comment on a share / post as the connected member. `actor` is the member URN posting the comment; `message.text` is the comment text. Append-only \u2014 caller owns dedupe via idempotencyKey.",
48625
+ parameters: {
48626
+ type: "object",
48627
+ properties: {
48628
+ shareUrn: {
48629
+ type: "string",
48630
+ description: "URL-encoded URN of the parent share (urn:li:share:* or urn:li:ugcPost:*)."
48631
+ },
48632
+ actor: {
48633
+ type: "string",
48634
+ description: organizationAccess ? "URN of the commenting organization." : "URN of the commenting member."
48635
+ },
48636
+ message: {
48637
+ type: "object",
48638
+ description: "Comment body `{ text: string, attributes?: [...] }`."
48639
+ },
48640
+ parentComment: {
48641
+ type: "string",
48642
+ description: "Optional URN of a parent comment for threaded replies."
48643
+ }
48636
48644
  },
48637
- parentComment: {
48638
- type: "string",
48639
- description: "Optional URN of a parent comment for threaded replies."
48645
+ required: ["shareUrn", "actor", "message"]
48646
+ },
48647
+ request: {
48648
+ method: "POST",
48649
+ path: "/rest/socialActions/{shareUrn}/comments",
48650
+ body: {
48651
+ actor: "{actor}",
48652
+ object: "{shareUrn}",
48653
+ message: "{message}",
48654
+ parentComment: "{parentComment}"
48640
48655
  }
48641
48656
  },
48642
- required: ["shareUrn", "actor", "message"]
48643
- },
48644
- request: {
48645
- method: "POST",
48646
- path: "/rest/socialActions/{shareUrn}/comments",
48647
- body: {
48648
- actor: "{actor}",
48649
- object: "{shareUrn}",
48650
- message: "{message}",
48651
- parentComment: "{parentComment}"
48652
- }
48657
+ cas: "none",
48658
+ externalEffect: true,
48659
+ requiredScopes: [postScope]
48653
48660
  },
48654
- cas: "none",
48655
- externalEffect: true,
48656
- requiredScopes: ["w_member_social"]
48657
- },
48658
- {
48659
- name: "comments.update",
48660
- class: "mutation",
48661
- description: "Edit the text of an existing comment by its URN. Only the original comment actor can edit. Verified via read-after-write because LinkedIn returns no ETag.",
48662
- parameters: {
48663
- type: "object",
48664
- properties: {
48665
- shareUrn: { type: "string" },
48666
- commentUrn: { type: "string", description: "URL-encoded URN of the comment to update." },
48667
- actor: { type: "string" },
48668
- message: { type: "object" }
48661
+ {
48662
+ name: "comments.update",
48663
+ class: "mutation",
48664
+ description: "Edit the text of an existing comment by its URN. Only the original comment actor can edit. Verified via read-after-write because LinkedIn returns no ETag.",
48665
+ parameters: {
48666
+ type: "object",
48667
+ properties: {
48668
+ shareUrn: { type: "string" },
48669
+ commentUrn: { type: "string", description: "URL-encoded URN of the comment to update." },
48670
+ actor: { type: "string" },
48671
+ message: { type: "object" }
48672
+ },
48673
+ required: ["shareUrn", "commentUrn", "actor", "message"]
48669
48674
  },
48670
- required: ["shareUrn", "commentUrn", "actor", "message"]
48671
- },
48672
- request: {
48673
- method: "POST",
48674
- path: "/rest/socialActions/{shareUrn}/comments/{commentUrn}",
48675
- headers: { "X-RestLi-Method": "PARTIAL_UPDATE" },
48676
- body: { actor: "{actor}", message: "{message}" }
48677
- },
48678
- cas: "optimistic-read-verify",
48679
- externalEffect: true,
48680
- requiredScopes: ["w_member_social"]
48681
- },
48682
- {
48683
- name: "comments.delete",
48684
- class: "mutation",
48685
- description: "Delete a comment by URN. `actor` must be the comment author. Idempotent on the URN.",
48686
- parameters: {
48687
- type: "object",
48688
- properties: {
48689
- shareUrn: { type: "string" },
48690
- commentUrn: { type: "string" },
48691
- actor: { type: "string" }
48675
+ request: {
48676
+ method: "POST",
48677
+ path: "/rest/socialActions/{shareUrn}/comments/{commentUrn}",
48678
+ headers: { "X-RestLi-Method": "PARTIAL_UPDATE" },
48679
+ body: { actor: "{actor}", message: "{message}" }
48692
48680
  },
48693
- required: ["shareUrn", "commentUrn", "actor"]
48694
- },
48695
- request: {
48696
- method: "DELETE",
48697
- path: "/rest/socialActions/{shareUrn}/comments/{commentUrn}",
48698
- query: { actor: "{actor}" }
48681
+ cas: "optimistic-read-verify",
48682
+ externalEffect: true,
48683
+ requiredScopes: [postScope]
48699
48684
  },
48700
- cas: "native-idempotency",
48701
- externalEffect: true,
48702
- requiredScopes: ["w_member_social"]
48703
- },
48704
- {
48705
- name: "socialActions.get",
48706
- class: "read",
48707
- description: "Read the aggregate social-action counts (likes, comments) for a share / post URN.",
48708
- parameters: {
48709
- type: "object",
48710
- properties: { shareUrn: { type: "string" } },
48711
- required: ["shareUrn"]
48685
+ {
48686
+ name: "comments.delete",
48687
+ class: "mutation",
48688
+ description: "Delete a comment by URN. `actor` must be the comment author. Idempotent on the URN.",
48689
+ parameters: {
48690
+ type: "object",
48691
+ properties: {
48692
+ shareUrn: { type: "string" },
48693
+ commentUrn: { type: "string" },
48694
+ actor: { type: "string" }
48695
+ },
48696
+ required: ["shareUrn", "commentUrn", "actor"]
48697
+ },
48698
+ request: {
48699
+ method: "DELETE",
48700
+ path: "/rest/socialActions/{shareUrn}/comments/{commentUrn}",
48701
+ query: { actor: "{actor}" }
48702
+ },
48703
+ cas: "native-idempotency",
48704
+ externalEffect: true,
48705
+ requiredScopes: [postScope]
48712
48706
  },
48713
- request: { method: "GET", path: "/rest/socialActions/{shareUrn}" },
48714
- requiredScopes: ["r_organization_social"]
48715
- }
48716
- ]
48717
- });
48707
+ {
48708
+ name: "socialActions.get",
48709
+ class: "read",
48710
+ description: "Read the aggregate social-action counts (likes, comments) for a share / post URN.",
48711
+ parameters: {
48712
+ type: "object",
48713
+ properties: { shareUrn: { type: "string" } },
48714
+ required: ["shareUrn"]
48715
+ },
48716
+ request: { method: "GET", path: "/rest/socialActions/{shareUrn}" },
48717
+ requiredScopes: ["r_organization_social"]
48718
+ }
48719
+ ].filter(
48720
+ // Organization-gated capabilities are not part of the self-serve grant.
48721
+ // Keep them absent from the default manifest so discovery cannot advertise them.
48722
+ ({ requiredScopes }) => organizationAccess || !(requiredScopes ?? []).some((scope) => ORGANIZATION_SCOPE_SET.has(scope))
48723
+ )
48724
+ });
48725
+ }
48726
+ var linkedinConnector = createLinkedinConnector();
48718
48727
 
48719
48728
  // src/connectors/adapters/make.ts
48720
48729
  var makeConnector = declarativeRestConnector({
@@ -146642,6 +146651,7 @@ export {
146642
146651
  leadConnectorConnector,
146643
146652
  lemonSqueezyConnector,
146644
146653
  linearConnector,
146654
+ createLinkedinConnector,
146645
146655
  linkedinConnector,
146646
146656
  makeConnector,
146647
146657
  microsoft365PeopleConnector,
@@ -147100,4 +147110,4 @@ export {
147100
147110
  getresponseConnector,
147101
147111
  adapters_exports
147102
147112
  };
147103
- //# sourceMappingURL=chunk-CMNY7MMC.js.map
147113
+ //# sourceMappingURL=chunk-AGXTCR34.js.map