@postpeer/node 0.8.6 → 0.9.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.0
4
+
5
+ - Grouped integration moves, comments, messages, comment automations, post editing and syncing, and LinkedIn lookup into resource-based SDK namespaces.
6
+ - Added creating and editing draft posts, editing scheduled posts through the unified posts API, and Facebook Page Stories.
7
+ - Added syncing posts published outside PostPeer and filtering posts by their source.
8
+ - Added creating, listing, updating, deleting, and inspecting comment automations.
9
+ - Added LinkedIn organization lookup and connected-integration sorting and sync-capability fields.
10
+
3
11
  ## 0.8.6
4
12
 
5
13
  - Added retrying failed platform targets for a post.
package/README.md CHANGED
@@ -62,7 +62,10 @@ client.health.verifyAccessKey();
62
62
  client.posts.create({ body });
63
63
  client.posts.list({ query });
64
64
  client.posts.get({ path: { postId } });
65
+ client.posts.edit({ path: { postId }, body });
65
66
  client.posts.delete({ path: { postId } });
67
+ client.posts.retry({ path: { postId }, body });
68
+ client.posts.syncExternal({ body });
66
69
  client.posts.scheduled.list();
67
70
  client.posts.scheduled.edit({ path: { postId }, body });
68
71
  client.posts.scheduled.cancel({ path: { postId } });
@@ -73,8 +76,27 @@ client.connect.facebook.getSelection({ path: { token } });
73
76
  client.connect.facebook.submitSelection({ path: { token }, body });
74
77
  client.connect.integrations.list();
75
78
  client.connect.integrations.get({ path: { id } });
79
+ client.connect.integrations.move({ path: { id }, body });
76
80
  client.connect.integrations.disconnect({ path: { id } });
77
81
 
82
+ client.comments.list({ query });
83
+ client.comments.create({ body });
84
+ client.comments.hide({ path: { commentId }, body });
85
+ client.comments.delete({ path: { commentId }, query });
86
+
87
+ client.messages.listConversations({ query });
88
+ client.messages.getConversation({ path: { conversationId }, query });
89
+ client.messages.send({ body });
90
+
91
+ client.commentAutomations.list();
92
+ client.commentAutomations.create({ body });
93
+ client.commentAutomations.update({ path: { id }, body });
94
+ client.commentAutomations.delete({ path: { id } });
95
+ client.commentAutomations.posts.list({ query });
96
+ client.commentAutomations.logs.list({ path: { id }, query });
97
+
98
+ client.linkedin.lookupOrganization({ query });
99
+
78
100
  client.profiles.list();
79
101
  client.apps.list();
80
102
  client.notifications.list();
@@ -145,8 +167,8 @@ Generated files under `src/generated` must not be edited by hand.
145
167
  PostPeer uses conservative pre-1.0 versioning:
146
168
 
147
169
  - `0.8.0` is the first Hey API release.
148
- - Compatible fixes and additions remain in `0.8.x`.
149
- - A breaking SDK change moves to `0.9.0`.
170
+ - Compatible fixes and additions remain within the current minor release.
171
+ - Breaking SDK changes move to the next minor release until `1.0.0`.
150
172
  - `1.0.0` will be published only when the SDK contract is considered mature.
151
173
 
152
174
  OpenAPI changes may accumulate before a package release.
package/dist/index.cjs CHANGED
@@ -930,6 +930,22 @@ var Integrations = class extends HeyApiClient {
930
930
  ...options
931
931
  });
932
932
  }
933
+ /**
934
+ * Move an integration to another profile
935
+ *
936
+ * Reassigns an existing integration to another profile in the same project. Pass profileId=null to leave the integration unassigned. OAuth credentials and existing posts are unchanged.
937
+ */
938
+ move(options) {
939
+ return (options.client ?? this.client).patch({
940
+ security: [{ name: "x-access-key", type: "apiKey" }],
941
+ url: "/v1/connect/integrations/{id}",
942
+ ...options,
943
+ headers: {
944
+ "Content-Type": "application/json",
945
+ ...options.headers
946
+ }
947
+ });
948
+ }
933
949
  };
934
950
  var Connect = class extends HeyApiClient {
935
951
  static {
@@ -1009,7 +1025,7 @@ var Profiles = class extends HeyApiClient {
1009
1025
  /**
1010
1026
  * Delete a profile
1011
1027
  *
1012
- * Soft-deletes the profile. Existing integrations bound to it keep their profileId — they are not orphaned, but listing /v1/profiles will no longer surface this row.
1028
+ * Soft-deletes an empty profile. Move or disconnect active integrations before deleting their profile.
1013
1029
  */
1014
1030
  delete(options) {
1015
1031
  return (options.client ?? this.client).delete({
@@ -1249,7 +1265,9 @@ var Scheduled = class extends HeyApiClient {
1249
1265
  /**
1250
1266
  * Edit a scheduled post (content, media, platforms, time)
1251
1267
  *
1252
- * Replaces the editable fields of a scheduled post: text content, media attachments, target platforms + platform-specific data, and optionally the scheduled time/timezone. Re-validates each platform and reconciles the credit difference. Only works while the post is still scheduled.
1268
+ * Deprecated: use PUT /v1/posts/:postId. Replaces the editable fields of a scheduled post and reconciles credits.
1269
+ *
1270
+ * @deprecated
1253
1271
  */
1254
1272
  edit(options) {
1255
1273
  return (options.client ?? this.client).put({
@@ -1280,7 +1298,9 @@ var Posts = class extends HeyApiClient {
1280
1298
  });
1281
1299
  }
1282
1300
  /**
1283
- * Publish a post to one or more social media platforms
1301
+ * Create, publish, or schedule a post
1302
+ *
1303
+ * Set saveAsDraft=true to save without accounts or credits, publishNow=true to publish immediately, or provide scheduledFor to schedule it.
1284
1304
  */
1285
1305
  create(options) {
1286
1306
  return (options.client ?? this.client).post({
@@ -1329,6 +1349,38 @@ var Posts = class extends HeyApiClient {
1329
1349
  ...options
1330
1350
  });
1331
1351
  }
1352
+ /**
1353
+ * Edit a draft or scheduled post
1354
+ *
1355
+ * Replaces an editable post. Drafts remain drafts with saveAsDraft=true, publish immediately with publishNow=true, or become scheduled with scheduledFor. Scheduled posts keep their schedule.
1356
+ */
1357
+ edit(options) {
1358
+ return (options.client ?? this.client).put({
1359
+ security: [{ name: "x-access-key", type: "apiKey" }],
1360
+ url: "/v1/posts/{postId}",
1361
+ ...options,
1362
+ headers: {
1363
+ "Content-Type": "application/json",
1364
+ ...options.headers
1365
+ }
1366
+ });
1367
+ }
1368
+ /**
1369
+ * Sync recent posts published outside PostPeer
1370
+ *
1371
+ * Fetches at most the 50 most recent posts from one connected account and stores posts published outside PostPeer. Existing PostPeer posts are updated instead of duplicated. Provide url or postId to verify one post. Requests are debounced per account for 15 seconds. Supported accounts: Twitter, YouTube, Pinterest, LinkedIn organization pages, TikTok, Facebook, Instagram, Threads, and Google Business.
1372
+ */
1373
+ syncExternal(options) {
1374
+ return (options.client ?? this.client).post({
1375
+ security: [{ name: "x-access-key", type: "apiKey" }],
1376
+ url: "/v1/posts/sync-external",
1377
+ ...options,
1378
+ headers: {
1379
+ "Content-Type": "application/json",
1380
+ ...options.headers
1381
+ }
1382
+ });
1383
+ }
1332
1384
  _scheduled;
1333
1385
  get scheduled() {
1334
1386
  return this._scheduled ??= new Scheduled({ client: this.client });
@@ -1415,68 +1467,59 @@ var Analytics = class extends HeyApiClient {
1415
1467
  return this._instagram ??= new Instagram({ client: this.client });
1416
1468
  }
1417
1469
  };
1418
- var Usage = class extends HeyApiClient {
1470
+ var Comments = class extends HeyApiClient {
1419
1471
  static {
1420
- __name(this, "Usage");
1472
+ __name(this, "Comments");
1421
1473
  }
1422
1474
  /**
1423
- * Get credit usage
1475
+ * List comments on a post
1424
1476
  *
1425
- * Returns credit usage history for the project. Without filters, returns project-level totals. Add `profileId` to scope to a specific profile, or `integrationId` to scope to a specific connected account. Use `from`/`to` (YYYY-MM) to slice the history. Each entry contains the monthly credit count and a per-platform breakdown.
1477
+ * Fetch comments (and first-level replies) on a post from a connected Facebook Page, Instagram Business account, Threads account, or LinkedIn account. Requires the account to have the relevant permissions approved (pages_read_user_content for Facebook, instagram_business_manage_comments for Instagram, threads_manage_replies for Threads, Community Management social-feed scopes for LinkedIn).
1426
1478
  */
1427
- get(options) {
1428
- return (options?.client ?? this.client).get({
1479
+ list(options) {
1480
+ return (options.client ?? this.client).get({
1429
1481
  security: [{ name: "x-access-key", type: "apiKey" }],
1430
- url: "/v1/usage/",
1482
+ url: "/v1/comments/",
1431
1483
  ...options
1432
1484
  });
1433
1485
  }
1434
- };
1435
- var Pinterest = class extends HeyApiClient {
1436
- static {
1437
- __name(this, "Pinterest");
1438
- }
1439
1486
  /**
1440
- * List Pinterest boards for a connected account
1487
+ * Create a comment or reply
1488
+ *
1489
+ * Post a top-level comment on an Instagram, Facebook, or LinkedIn post, or a top-level post on Threads (provide `postId`), or reply to an existing comment on Facebook, Instagram, Threads, or LinkedIn (provide `commentId`).
1441
1490
  */
1442
- getBoards(options) {
1443
- return (options?.client ?? this.client).get({
1491
+ create(options) {
1492
+ return (options.client ?? this.client).post({
1444
1493
  security: [{ name: "x-access-key", type: "apiKey" }],
1445
- url: "/v1/pinterest/boards",
1446
- ...options
1494
+ url: "/v1/comments/",
1495
+ ...options,
1496
+ headers: {
1497
+ "Content-Type": "application/json",
1498
+ ...options.headers
1499
+ }
1447
1500
  });
1448
1501
  }
1449
- };
1450
- var Tiktok = class extends HeyApiClient {
1451
- static {
1452
- __name(this, "Tiktok");
1453
- }
1454
1502
  /**
1455
- * Fetch TikTok creator info for a connected account
1503
+ * Delete a comment
1456
1504
  *
1457
- * Proxies TikTok's /v2/post/publish/creator_info/query/ endpoint. Use the returned `privacyLevelOptions`, `commentDisabled`, `duetDisabled`, `stitchDisabled`, and `maxVideoPostDurationSec` to build a compliant "Post to TikTok" UX.
1505
+ * Delete a comment on a Facebook Page post, Instagram Business post, or LinkedIn post. Not supported on Threads (the API does not allow deleting others' replies).
1458
1506
  */
1459
- getCreatorInfo(options) {
1460
- return (options?.client ?? this.client).get({
1507
+ delete(options) {
1508
+ return (options.client ?? this.client).delete({
1461
1509
  security: [{ name: "x-access-key", type: "apiKey" }],
1462
- url: "/v1/tiktok/creator-info",
1510
+ url: "/v1/comments/{commentId}",
1463
1511
  ...options
1464
1512
  });
1465
1513
  }
1466
- };
1467
- var Ai = class extends HeyApiClient {
1468
- static {
1469
- __name(this, "Ai");
1470
- }
1471
1514
  /**
1472
- * Generate a social media caption from a description
1515
+ * Hide or unhide a comment
1473
1516
  *
1474
- * Generates a caption tailored to the platforms you'll post to. Costs 2 credits per successful generation. Failed calls do not deduct credits.
1517
+ * Hide or unhide a comment on an Instagram Business post. Pass `hidden: true` to hide, `hidden: false` to unhide. Instagram only.
1475
1518
  */
1476
- write(options) {
1477
- return (options.client ?? this.client).post({
1519
+ hide(options) {
1520
+ return (options.client ?? this.client).patch({
1478
1521
  security: [{ name: "x-access-key", type: "apiKey" }],
1479
- url: "/v1/ai/write",
1522
+ url: "/v1/comments/{commentId}",
1480
1523
  ...options,
1481
1524
  headers: {
1482
1525
  "Content-Type": "application/json",
@@ -1484,15 +1527,32 @@ var Ai = class extends HeyApiClient {
1484
1527
  }
1485
1528
  });
1486
1529
  }
1530
+ };
1531
+ var Messages = class extends HeyApiClient {
1532
+ static {
1533
+ __name(this, "Messages");
1534
+ }
1487
1535
  /**
1488
- * Generate a social media image from a description
1536
+ * List conversations
1489
1537
  *
1490
- * Generates a square or vertical image suitable for social media. Costs 10 credits per successful generation. Failed calls do not deduct credits.
1538
+ * List DM conversations for a connected Instagram Business account. Requires instagram_business_manage_messages.
1491
1539
  */
1492
- generateImage(options) {
1540
+ listConversations(options) {
1541
+ return (options.client ?? this.client).get({
1542
+ security: [{ name: "x-access-key", type: "apiKey" }],
1543
+ url: "/v1/messages/",
1544
+ ...options
1545
+ });
1546
+ }
1547
+ /**
1548
+ * Send a message
1549
+ *
1550
+ * Send a DM reply on Instagram.
1551
+ */
1552
+ send(options) {
1493
1553
  return (options.client ?? this.client).post({
1494
1554
  security: [{ name: "x-access-key", type: "apiKey" }],
1495
- url: "/v1/ai/image",
1555
+ url: "/v1/messages/",
1496
1556
  ...options,
1497
1557
  headers: {
1498
1558
  "Content-Type": "application/json",
@@ -1500,25 +1560,56 @@ var Ai = class extends HeyApiClient {
1500
1560
  }
1501
1561
  });
1502
1562
  }
1563
+ /**
1564
+ * Get messages in a conversation
1565
+ */
1566
+ getConversation(options) {
1567
+ return (options.client ?? this.client).get({
1568
+ security: [{ name: "x-access-key", type: "apiKey" }],
1569
+ url: "/v1/messages/{conversationId}",
1570
+ ...options
1571
+ });
1572
+ }
1503
1573
  };
1504
- var PostPeer = class _PostPeer extends HeyApiClient {
1574
+ var Posts2 = class extends HeyApiClient {
1505
1575
  static {
1506
- __name(this, "PostPeer");
1576
+ __name(this, "Posts2");
1507
1577
  }
1508
- static __registry = new HeyApiRegistry();
1509
- constructor(args) {
1510
- super(args);
1511
- _PostPeer.__registry.set(this, args?.key);
1578
+ list(options) {
1579
+ return (options.client ?? this.client).get({
1580
+ security: [{ name: "x-access-key", type: "apiKey" }],
1581
+ url: "/v1/comment-automations/posts",
1582
+ ...options
1583
+ });
1512
1584
  }
1513
- /**
1514
- * Move an integration to another profile
1515
- *
1516
- * Reassigns an existing integration to another profile in the same project. Pass profileId=null to leave the integration unassigned. OAuth credentials and existing posts are unchanged.
1517
- */
1518
- moveIntegration(options) {
1519
- return (options.client ?? this.client).patch({
1585
+ };
1586
+ var Logs = class extends HeyApiClient {
1587
+ static {
1588
+ __name(this, "Logs");
1589
+ }
1590
+ list(options) {
1591
+ return (options.client ?? this.client).get({
1520
1592
  security: [{ name: "x-access-key", type: "apiKey" }],
1521
- url: "/v1/connect/integrations/{id}",
1593
+ url: "/v1/comment-automations/{id}/logs",
1594
+ ...options
1595
+ });
1596
+ }
1597
+ };
1598
+ var CommentAutomations = class extends HeyApiClient {
1599
+ static {
1600
+ __name(this, "CommentAutomations");
1601
+ }
1602
+ list(options) {
1603
+ return (options?.client ?? this.client).get({
1604
+ security: [{ name: "x-access-key", type: "apiKey" }],
1605
+ url: "/v1/comment-automations/",
1606
+ ...options
1607
+ });
1608
+ }
1609
+ create(options) {
1610
+ return (options.client ?? this.client).post({
1611
+ security: [{ name: "x-access-key", type: "apiKey" }],
1612
+ url: "/v1/comment-automations/",
1522
1613
  ...options,
1523
1614
  headers: {
1524
1615
  "Content-Type": "application/json",
@@ -1526,27 +1617,17 @@ var PostPeer = class _PostPeer extends HeyApiClient {
1526
1617
  }
1527
1618
  });
1528
1619
  }
1529
- /**
1530
- * List comments on a post
1531
- *
1532
- * Fetch comments (and first-level replies) on a post from a connected Facebook Page, Instagram Business account, or Threads account. Requires the account to have the relevant Meta permissions approved (pages_read_user_content for Facebook, instagram_business_manage_comments for Instagram, threads_manage_replies for Threads).
1533
- */
1534
- listComments(options) {
1535
- return (options.client ?? this.client).get({
1620
+ delete(options) {
1621
+ return (options.client ?? this.client).delete({
1536
1622
  security: [{ name: "x-access-key", type: "apiKey" }],
1537
- url: "/v1/comments/",
1623
+ url: "/v1/comment-automations/{id}",
1538
1624
  ...options
1539
1625
  });
1540
1626
  }
1541
- /**
1542
- * Create a comment or reply
1543
- *
1544
- * Post a top-level comment on an Instagram or Facebook post, or a top-level post on Threads (provide `postId`), or reply to an existing comment on Facebook, Instagram, or Threads (provide `commentId`).
1545
- */
1546
- createComment(options) {
1547
- return (options.client ?? this.client).post({
1627
+ update(options) {
1628
+ return (options.client ?? this.client).patch({
1548
1629
  security: [{ name: "x-access-key", type: "apiKey" }],
1549
- url: "/v1/comments/",
1630
+ url: "/v1/comment-automations/{id}",
1550
1631
  ...options,
1551
1632
  headers: {
1552
1633
  "Content-Type": "application/json",
@@ -1554,55 +1635,92 @@ var PostPeer = class _PostPeer extends HeyApiClient {
1554
1635
  }
1555
1636
  });
1556
1637
  }
1638
+ _posts;
1639
+ get posts() {
1640
+ return this._posts ??= new Posts2({ client: this.client });
1641
+ }
1642
+ _logs;
1643
+ get logs() {
1644
+ return this._logs ??= new Logs({ client: this.client });
1645
+ }
1646
+ };
1647
+ var Usage = class extends HeyApiClient {
1648
+ static {
1649
+ __name(this, "Usage");
1650
+ }
1557
1651
  /**
1558
- * Delete a comment
1652
+ * Get credit usage
1559
1653
  *
1560
- * Delete a comment on a Facebook Page post or Instagram Business post. Not supported on Threads (the API does not allow deleting others' replies).
1654
+ * Returns credit usage history for the project. Without filters, returns project-level totals. Add `profileId` to scope to a specific profile, or `integrationId` to scope to a specific connected account. Use `from`/`to` (YYYY-MM) to slice the history. Each entry contains the monthly credit count and a per-platform breakdown.
1561
1655
  */
1562
- deleteComment(options) {
1563
- return (options.client ?? this.client).delete({
1656
+ get(options) {
1657
+ return (options?.client ?? this.client).get({
1564
1658
  security: [{ name: "x-access-key", type: "apiKey" }],
1565
- url: "/v1/comments/{commentId}",
1659
+ url: "/v1/usage/",
1566
1660
  ...options
1567
1661
  });
1568
1662
  }
1663
+ };
1664
+ var Pinterest = class extends HeyApiClient {
1665
+ static {
1666
+ __name(this, "Pinterest");
1667
+ }
1569
1668
  /**
1570
- * Hide or unhide a comment
1571
- *
1572
- * Hide or unhide a comment on an Instagram Business post. Pass `hidden: true` to hide, `hidden: false` to unhide. Instagram only.
1669
+ * List Pinterest boards for a connected account
1573
1670
  */
1574
- hideComment(options) {
1575
- return (options.client ?? this.client).patch({
1671
+ getBoards(options) {
1672
+ return (options?.client ?? this.client).get({
1576
1673
  security: [{ name: "x-access-key", type: "apiKey" }],
1577
- url: "/v1/comments/{commentId}",
1578
- ...options,
1579
- headers: {
1580
- "Content-Type": "application/json",
1581
- ...options.headers
1582
- }
1674
+ url: "/v1/pinterest/boards",
1675
+ ...options
1583
1676
  });
1584
1677
  }
1678
+ };
1679
+ var Tiktok = class extends HeyApiClient {
1680
+ static {
1681
+ __name(this, "Tiktok");
1682
+ }
1585
1683
  /**
1586
- * List conversations
1684
+ * Fetch TikTok creator info for a connected account
1587
1685
  *
1588
- * List DM conversations for a connected Instagram Business account. Requires instagram_business_manage_messages.
1686
+ * Proxies TikTok's /v2/post/publish/creator_info/query/ endpoint. Use the returned `privacyLevelOptions`, `commentDisabled`, `duetDisabled`, `stitchDisabled`, and `maxVideoPostDurationSec` to build a compliant "Post to TikTok" UX.
1589
1687
  */
1590
- listConversations(options) {
1688
+ getCreatorInfo(options) {
1689
+ return (options?.client ?? this.client).get({
1690
+ security: [{ name: "x-access-key", type: "apiKey" }],
1691
+ url: "/v1/tiktok/creator-info",
1692
+ ...options
1693
+ });
1694
+ }
1695
+ };
1696
+ var Linkedin2 = class extends HeyApiClient {
1697
+ static {
1698
+ __name(this, "Linkedin2");
1699
+ }
1700
+ /**
1701
+ * Find a LinkedIn organization ID and URN by company URL or slug
1702
+ */
1703
+ lookupOrganization(options) {
1591
1704
  return (options.client ?? this.client).get({
1592
1705
  security: [{ name: "x-access-key", type: "apiKey" }],
1593
- url: "/v1/messages/",
1706
+ url: "/v1/linkedin/organization-lookup",
1594
1707
  ...options
1595
1708
  });
1596
1709
  }
1710
+ };
1711
+ var Ai = class extends HeyApiClient {
1712
+ static {
1713
+ __name(this, "Ai");
1714
+ }
1597
1715
  /**
1598
- * Send a message
1716
+ * Generate a social media caption from a description
1599
1717
  *
1600
- * Send a DM reply on Instagram.
1718
+ * Generates a caption tailored to the platforms you'll post to. Costs 2 credits per successful generation. Failed calls do not deduct credits.
1601
1719
  */
1602
- sendMessage(options) {
1720
+ write(options) {
1603
1721
  return (options.client ?? this.client).post({
1604
1722
  security: [{ name: "x-access-key", type: "apiKey" }],
1605
- url: "/v1/messages/",
1723
+ url: "/v1/ai/write",
1606
1724
  ...options,
1607
1725
  headers: {
1608
1726
  "Content-Type": "application/json",
@@ -1611,15 +1729,31 @@ var PostPeer = class _PostPeer extends HeyApiClient {
1611
1729
  });
1612
1730
  }
1613
1731
  /**
1614
- * Get messages in a conversation
1732
+ * Generate a social media image from a description
1733
+ *
1734
+ * Generates a square or vertical image suitable for social media. Costs 10 credits per successful generation. Failed calls do not deduct credits.
1615
1735
  */
1616
- getConversationMessages(options) {
1617
- return (options.client ?? this.client).get({
1736
+ generateImage(options) {
1737
+ return (options.client ?? this.client).post({
1618
1738
  security: [{ name: "x-access-key", type: "apiKey" }],
1619
- url: "/v1/messages/{conversationId}",
1620
- ...options
1739
+ url: "/v1/ai/image",
1740
+ ...options,
1741
+ headers: {
1742
+ "Content-Type": "application/json",
1743
+ ...options.headers
1744
+ }
1621
1745
  });
1622
1746
  }
1747
+ };
1748
+ var PostPeer = class _PostPeer extends HeyApiClient {
1749
+ static {
1750
+ __name(this, "PostPeer");
1751
+ }
1752
+ static __registry = new HeyApiRegistry();
1753
+ constructor(args) {
1754
+ super(args);
1755
+ _PostPeer.__registry.set(this, args?.key);
1756
+ }
1623
1757
  _health;
1624
1758
  get health() {
1625
1759
  return this._health ??= new Health({ client: this.client });
@@ -1656,6 +1790,18 @@ var PostPeer = class _PostPeer extends HeyApiClient {
1656
1790
  get analytics() {
1657
1791
  return this._analytics ??= new Analytics({ client: this.client });
1658
1792
  }
1793
+ _comments;
1794
+ get comments() {
1795
+ return this._comments ??= new Comments({ client: this.client });
1796
+ }
1797
+ _messages;
1798
+ get messages() {
1799
+ return this._messages ??= new Messages({ client: this.client });
1800
+ }
1801
+ _commentAutomations;
1802
+ get commentAutomations() {
1803
+ return this._commentAutomations ??= new CommentAutomations({ client: this.client });
1804
+ }
1659
1805
  _usage;
1660
1806
  get usage() {
1661
1807
  return this._usage ??= new Usage({ client: this.client });
@@ -1668,6 +1814,10 @@ var PostPeer = class _PostPeer extends HeyApiClient {
1668
1814
  get tiktok() {
1669
1815
  return this._tiktok ??= new Tiktok({ client: this.client });
1670
1816
  }
1817
+ _linkedin;
1818
+ get linkedin() {
1819
+ return this._linkedin ??= new Linkedin2({ client: this.client });
1820
+ }
1671
1821
  _ai;
1672
1822
  get ai() {
1673
1823
  return this._ai ??= new Ai({ client: this.client });
@@ -1813,7 +1963,7 @@ var createAPIError = /* @__PURE__ */ __name((response, body) => {
1813
1963
  }, "createAPIError");
1814
1964
 
1815
1965
  // src/version.ts
1816
- var VERSION = "0.8.6";
1966
+ var VERSION = "0.9.0";
1817
1967
 
1818
1968
  // src/client.ts
1819
1969
  var DEFAULT_BASE_URL = "https://api.postpeer.dev";