@memberjunction/actions-bizapps-social 2.61.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.
Files changed (458) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +375 -0
  4. package/dist/base/base-social.action.d.ts +137 -0
  5. package/dist/base/base-social.action.d.ts.map +1 -0
  6. package/dist/base/base-social.action.js +176 -0
  7. package/dist/base/base-social.action.js.map +1 -0
  8. package/dist/index.d.ts +10 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +35 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/providers/buffer/actions/create-post.action.d.ts +20 -0
  13. package/dist/providers/buffer/actions/create-post.action.d.ts.map +1 -0
  14. package/dist/providers/buffer/actions/create-post.action.js +195 -0
  15. package/dist/providers/buffer/actions/create-post.action.js.map +1 -0
  16. package/dist/providers/buffer/actions/delete-post.action.d.ts +20 -0
  17. package/dist/providers/buffer/actions/delete-post.action.d.ts.map +1 -0
  18. package/dist/providers/buffer/actions/delete-post.action.js +119 -0
  19. package/dist/providers/buffer/actions/delete-post.action.js.map +1 -0
  20. package/dist/providers/buffer/actions/get-analytics.action.d.ts +28 -0
  21. package/dist/providers/buffer/actions/get-analytics.action.d.ts.map +1 -0
  22. package/dist/providers/buffer/actions/get-analytics.action.js +143 -0
  23. package/dist/providers/buffer/actions/get-analytics.action.js.map +1 -0
  24. package/dist/providers/buffer/actions/get-pending-posts.action.d.ts +24 -0
  25. package/dist/providers/buffer/actions/get-pending-posts.action.d.ts.map +1 -0
  26. package/dist/providers/buffer/actions/get-pending-posts.action.js +161 -0
  27. package/dist/providers/buffer/actions/get-pending-posts.action.js.map +1 -0
  28. package/dist/providers/buffer/actions/get-profiles.action.d.ts +24 -0
  29. package/dist/providers/buffer/actions/get-profiles.action.d.ts.map +1 -0
  30. package/dist/providers/buffer/actions/get-profiles.action.js +128 -0
  31. package/dist/providers/buffer/actions/get-profiles.action.js.map +1 -0
  32. package/dist/providers/buffer/actions/get-sent-posts.action.d.ts +32 -0
  33. package/dist/providers/buffer/actions/get-sent-posts.action.d.ts.map +1 -0
  34. package/dist/providers/buffer/actions/get-sent-posts.action.js +187 -0
  35. package/dist/providers/buffer/actions/get-sent-posts.action.js.map +1 -0
  36. package/dist/providers/buffer/actions/index.d.ts +9 -0
  37. package/dist/providers/buffer/actions/index.d.ts.map +1 -0
  38. package/dist/providers/buffer/actions/index.js +25 -0
  39. package/dist/providers/buffer/actions/index.js.map +1 -0
  40. package/dist/providers/buffer/actions/reorder-queue.action.d.ts +20 -0
  41. package/dist/providers/buffer/actions/reorder-queue.action.d.ts.map +1 -0
  42. package/dist/providers/buffer/actions/reorder-queue.action.js +138 -0
  43. package/dist/providers/buffer/actions/reorder-queue.action.js.map +1 -0
  44. package/dist/providers/buffer/actions/search-posts.action.d.ts +28 -0
  45. package/dist/providers/buffer/actions/search-posts.action.d.ts.map +1 -0
  46. package/dist/providers/buffer/actions/search-posts.action.js +249 -0
  47. package/dist/providers/buffer/actions/search-posts.action.js.map +1 -0
  48. package/dist/providers/buffer/buffer-base.action.d.ts +95 -0
  49. package/dist/providers/buffer/buffer-base.action.d.ts.map +1 -0
  50. package/dist/providers/buffer/buffer-base.action.js +419 -0
  51. package/dist/providers/buffer/buffer-base.action.js.map +1 -0
  52. package/dist/providers/buffer/index.d.ts +3 -0
  53. package/dist/providers/buffer/index.d.ts.map +1 -0
  54. package/dist/providers/buffer/index.js +19 -0
  55. package/dist/providers/buffer/index.js.map +1 -0
  56. package/dist/providers/facebook/actions/boost-post.action.d.ts +45 -0
  57. package/dist/providers/facebook/actions/boost-post.action.d.ts.map +1 -0
  58. package/dist/providers/facebook/actions/boost-post.action.js +340 -0
  59. package/dist/providers/facebook/actions/boost-post.action.js.map +1 -0
  60. package/dist/providers/facebook/actions/create-album.action.d.ts +33 -0
  61. package/dist/providers/facebook/actions/create-album.action.d.ts.map +1 -0
  62. package/dist/providers/facebook/actions/create-album.action.js +285 -0
  63. package/dist/providers/facebook/actions/create-album.action.js.map +1 -0
  64. package/dist/providers/facebook/actions/create-post.action.d.ts +21 -0
  65. package/dist/providers/facebook/actions/create-post.action.d.ts.map +1 -0
  66. package/dist/providers/facebook/actions/create-post.action.js +223 -0
  67. package/dist/providers/facebook/actions/create-post.action.js.map +1 -0
  68. package/dist/providers/facebook/actions/get-page-insights.action.d.ts +37 -0
  69. package/dist/providers/facebook/actions/get-page-insights.action.d.ts.map +1 -0
  70. package/dist/providers/facebook/actions/get-page-insights.action.js +359 -0
  71. package/dist/providers/facebook/actions/get-page-insights.action.js.map +1 -0
  72. package/dist/providers/facebook/actions/get-page-posts.action.d.ts +29 -0
  73. package/dist/providers/facebook/actions/get-page-posts.action.d.ts.map +1 -0
  74. package/dist/providers/facebook/actions/get-page-posts.action.js +216 -0
  75. package/dist/providers/facebook/actions/get-page-posts.action.js.map +1 -0
  76. package/dist/providers/facebook/actions/get-post-insights.action.d.ts +33 -0
  77. package/dist/providers/facebook/actions/get-post-insights.action.d.ts.map +1 -0
  78. package/dist/providers/facebook/actions/get-post-insights.action.js +287 -0
  79. package/dist/providers/facebook/actions/get-post-insights.action.js.map +1 -0
  80. package/dist/providers/facebook/actions/index.d.ts +10 -0
  81. package/dist/providers/facebook/actions/index.d.ts.map +1 -0
  82. package/dist/providers/facebook/actions/index.js +26 -0
  83. package/dist/providers/facebook/actions/index.js.map +1 -0
  84. package/dist/providers/facebook/actions/respond-to-comments.action.d.ts +41 -0
  85. package/dist/providers/facebook/actions/respond-to-comments.action.d.ts.map +1 -0
  86. package/dist/providers/facebook/actions/respond-to-comments.action.js +328 -0
  87. package/dist/providers/facebook/actions/respond-to-comments.action.js.map +1 -0
  88. package/dist/providers/facebook/actions/schedule-post.action.d.ts +29 -0
  89. package/dist/providers/facebook/actions/schedule-post.action.d.ts.map +1 -0
  90. package/dist/providers/facebook/actions/schedule-post.action.js +289 -0
  91. package/dist/providers/facebook/actions/schedule-post.action.js.map +1 -0
  92. package/dist/providers/facebook/actions/search-posts.action.d.ts +54 -0
  93. package/dist/providers/facebook/actions/search-posts.action.d.ts.map +1 -0
  94. package/dist/providers/facebook/actions/search-posts.action.js +396 -0
  95. package/dist/providers/facebook/actions/search-posts.action.js.map +1 -0
  96. package/dist/providers/facebook/facebook-base.action.d.ts +230 -0
  97. package/dist/providers/facebook/facebook-base.action.d.ts.map +1 -0
  98. package/dist/providers/facebook/facebook-base.action.js +566 -0
  99. package/dist/providers/facebook/facebook-base.action.js.map +1 -0
  100. package/dist/providers/facebook/index.d.ts +3 -0
  101. package/dist/providers/facebook/index.d.ts.map +1 -0
  102. package/dist/providers/facebook/index.js +19 -0
  103. package/dist/providers/facebook/index.js.map +1 -0
  104. package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.d.ts +24 -0
  105. package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.d.ts.map +1 -0
  106. package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.js +266 -0
  107. package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.js.map +1 -0
  108. package/dist/providers/hootsuite/actions/create-scheduled-post.action.d.ts +25 -0
  109. package/dist/providers/hootsuite/actions/create-scheduled-post.action.d.ts.map +1 -0
  110. package/dist/providers/hootsuite/actions/create-scheduled-post.action.js +202 -0
  111. package/dist/providers/hootsuite/actions/create-scheduled-post.action.js.map +1 -0
  112. package/dist/providers/hootsuite/actions/delete-scheduled-post.action.d.ts +20 -0
  113. package/dist/providers/hootsuite/actions/delete-scheduled-post.action.d.ts.map +1 -0
  114. package/dist/providers/hootsuite/actions/delete-scheduled-post.action.js +172 -0
  115. package/dist/providers/hootsuite/actions/delete-scheduled-post.action.js.map +1 -0
  116. package/dist/providers/hootsuite/actions/get-analytics.action.d.ts +52 -0
  117. package/dist/providers/hootsuite/actions/get-analytics.action.d.ts.map +1 -0
  118. package/dist/providers/hootsuite/actions/get-analytics.action.js +265 -0
  119. package/dist/providers/hootsuite/actions/get-analytics.action.js.map +1 -0
  120. package/dist/providers/hootsuite/actions/get-scheduled-posts.action.d.ts +37 -0
  121. package/dist/providers/hootsuite/actions/get-scheduled-posts.action.d.ts.map +1 -0
  122. package/dist/providers/hootsuite/actions/get-scheduled-posts.action.js +208 -0
  123. package/dist/providers/hootsuite/actions/get-scheduled-posts.action.js.map +1 -0
  124. package/dist/providers/hootsuite/actions/get-social-profiles.action.d.ts +36 -0
  125. package/dist/providers/hootsuite/actions/get-social-profiles.action.d.ts.map +1 -0
  126. package/dist/providers/hootsuite/actions/get-social-profiles.action.js +212 -0
  127. package/dist/providers/hootsuite/actions/get-social-profiles.action.js.map +1 -0
  128. package/dist/providers/hootsuite/actions/search-posts.action.d.ts +53 -0
  129. package/dist/providers/hootsuite/actions/search-posts.action.d.ts.map +1 -0
  130. package/dist/providers/hootsuite/actions/search-posts.action.js +353 -0
  131. package/dist/providers/hootsuite/actions/search-posts.action.js.map +1 -0
  132. package/dist/providers/hootsuite/actions/update-scheduled-post.action.d.ts +20 -0
  133. package/dist/providers/hootsuite/actions/update-scheduled-post.action.d.ts.map +1 -0
  134. package/dist/providers/hootsuite/actions/update-scheduled-post.action.js +217 -0
  135. package/dist/providers/hootsuite/actions/update-scheduled-post.action.js.map +1 -0
  136. package/dist/providers/hootsuite/hootsuite-base.action.d.ts +101 -0
  137. package/dist/providers/hootsuite/hootsuite-base.action.d.ts.map +1 -0
  138. package/dist/providers/hootsuite/hootsuite-base.action.js +274 -0
  139. package/dist/providers/hootsuite/hootsuite-base.action.js.map +1 -0
  140. package/dist/providers/hootsuite/index.d.ts +10 -0
  141. package/dist/providers/hootsuite/index.d.ts.map +1 -0
  142. package/dist/providers/hootsuite/index.js +28 -0
  143. package/dist/providers/hootsuite/index.js.map +1 -0
  144. package/dist/providers/instagram/actions/create-post.action.d.ts +30 -0
  145. package/dist/providers/instagram/actions/create-post.action.d.ts.map +1 -0
  146. package/dist/providers/instagram/actions/create-post.action.js +269 -0
  147. package/dist/providers/instagram/actions/create-post.action.js.map +1 -0
  148. package/dist/providers/instagram/actions/create-story.action.d.ts +43 -0
  149. package/dist/providers/instagram/actions/create-story.action.d.ts.map +1 -0
  150. package/dist/providers/instagram/actions/create-story.action.js +365 -0
  151. package/dist/providers/instagram/actions/create-story.action.js.map +1 -0
  152. package/dist/providers/instagram/actions/get-account-insights.action.d.ts +50 -0
  153. package/dist/providers/instagram/actions/get-account-insights.action.d.ts.map +1 -0
  154. package/dist/providers/instagram/actions/get-account-insights.action.js +390 -0
  155. package/dist/providers/instagram/actions/get-account-insights.action.js.map +1 -0
  156. package/dist/providers/instagram/actions/get-business-posts.action.d.ts +30 -0
  157. package/dist/providers/instagram/actions/get-business-posts.action.d.ts.map +1 -0
  158. package/dist/providers/instagram/actions/get-business-posts.action.js +246 -0
  159. package/dist/providers/instagram/actions/get-business-posts.action.js.map +1 -0
  160. package/dist/providers/instagram/actions/get-comments.action.d.ts +41 -0
  161. package/dist/providers/instagram/actions/get-comments.action.d.ts.map +1 -0
  162. package/dist/providers/instagram/actions/get-comments.action.js +337 -0
  163. package/dist/providers/instagram/actions/get-comments.action.js.map +1 -0
  164. package/dist/providers/instagram/actions/get-post-insights.action.d.ts +42 -0
  165. package/dist/providers/instagram/actions/get-post-insights.action.d.ts.map +1 -0
  166. package/dist/providers/instagram/actions/get-post-insights.action.js +271 -0
  167. package/dist/providers/instagram/actions/get-post-insights.action.js.map +1 -0
  168. package/dist/providers/instagram/actions/index.d.ts +9 -0
  169. package/dist/providers/instagram/actions/index.d.ts.map +1 -0
  170. package/dist/providers/instagram/actions/index.js +26 -0
  171. package/dist/providers/instagram/actions/index.js.map +1 -0
  172. package/dist/providers/instagram/actions/schedule-post.action.d.ts +34 -0
  173. package/dist/providers/instagram/actions/schedule-post.action.d.ts.map +1 -0
  174. package/dist/providers/instagram/actions/schedule-post.action.js +234 -0
  175. package/dist/providers/instagram/actions/schedule-post.action.js.map +1 -0
  176. package/dist/providers/instagram/actions/search-posts.action.d.ts +56 -0
  177. package/dist/providers/instagram/actions/search-posts.action.d.ts.map +1 -0
  178. package/dist/providers/instagram/actions/search-posts.action.js +479 -0
  179. package/dist/providers/instagram/actions/search-posts.action.js.map +1 -0
  180. package/dist/providers/instagram/index.d.ts +3 -0
  181. package/dist/providers/instagram/index.d.ts.map +1 -0
  182. package/dist/providers/instagram/index.js +20 -0
  183. package/dist/providers/instagram/index.js.map +1 -0
  184. package/dist/providers/instagram/instagram-base.action.d.ts +76 -0
  185. package/dist/providers/instagram/instagram-base.action.d.ts.map +1 -0
  186. package/dist/providers/instagram/instagram-base.action.js +362 -0
  187. package/dist/providers/instagram/instagram-base.action.js.map +1 -0
  188. package/dist/providers/linkedin/actions/create-article.action.d.ts +28 -0
  189. package/dist/providers/linkedin/actions/create-article.action.d.ts.map +1 -0
  190. package/dist/providers/linkedin/actions/create-article.action.js +275 -0
  191. package/dist/providers/linkedin/actions/create-article.action.js.map +1 -0
  192. package/dist/providers/linkedin/actions/create-post.action.d.ts +20 -0
  193. package/dist/providers/linkedin/actions/create-post.action.d.ts.map +1 -0
  194. package/dist/providers/linkedin/actions/create-post.action.js +188 -0
  195. package/dist/providers/linkedin/actions/create-post.action.js.map +1 -0
  196. package/dist/providers/linkedin/actions/get-followers.action.d.ts +29 -0
  197. package/dist/providers/linkedin/actions/get-followers.action.d.ts.map +1 -0
  198. package/dist/providers/linkedin/actions/get-followers.action.js +222 -0
  199. package/dist/providers/linkedin/actions/get-followers.action.js.map +1 -0
  200. package/dist/providers/linkedin/actions/get-organization-posts.action.d.ts +24 -0
  201. package/dist/providers/linkedin/actions/get-organization-posts.action.d.ts.map +1 -0
  202. package/dist/providers/linkedin/actions/get-organization-posts.action.js +163 -0
  203. package/dist/providers/linkedin/actions/get-organization-posts.action.js.map +1 -0
  204. package/dist/providers/linkedin/actions/get-personal-posts.action.d.ts +25 -0
  205. package/dist/providers/linkedin/actions/get-personal-posts.action.d.ts.map +1 -0
  206. package/dist/providers/linkedin/actions/get-personal-posts.action.js +156 -0
  207. package/dist/providers/linkedin/actions/get-personal-posts.action.js.map +1 -0
  208. package/dist/providers/linkedin/actions/get-post-analytics.action.d.ts +28 -0
  209. package/dist/providers/linkedin/actions/get-post-analytics.action.d.ts.map +1 -0
  210. package/dist/providers/linkedin/actions/get-post-analytics.action.js +200 -0
  211. package/dist/providers/linkedin/actions/get-post-analytics.action.js.map +1 -0
  212. package/dist/providers/linkedin/actions/index.d.ts +9 -0
  213. package/dist/providers/linkedin/actions/index.d.ts.map +1 -0
  214. package/dist/providers/linkedin/actions/index.js +25 -0
  215. package/dist/providers/linkedin/actions/index.js.map +1 -0
  216. package/dist/providers/linkedin/actions/schedule-post.action.d.ts +22 -0
  217. package/dist/providers/linkedin/actions/schedule-post.action.d.ts.map +1 -0
  218. package/dist/providers/linkedin/actions/schedule-post.action.js +205 -0
  219. package/dist/providers/linkedin/actions/schedule-post.action.js.map +1 -0
  220. package/dist/providers/linkedin/actions/search-posts.action.d.ts +41 -0
  221. package/dist/providers/linkedin/actions/search-posts.action.d.ts.map +1 -0
  222. package/dist/providers/linkedin/actions/search-posts.action.js +292 -0
  223. package/dist/providers/linkedin/actions/search-posts.action.js.map +1 -0
  224. package/dist/providers/linkedin/index.d.ts +3 -0
  225. package/dist/providers/linkedin/index.d.ts.map +1 -0
  226. package/dist/providers/linkedin/index.js +19 -0
  227. package/dist/providers/linkedin/index.js.map +1 -0
  228. package/dist/providers/linkedin/linkedin-base.action.d.ts +166 -0
  229. package/dist/providers/linkedin/linkedin-base.action.d.ts.map +1 -0
  230. package/dist/providers/linkedin/linkedin-base.action.js +346 -0
  231. package/dist/providers/linkedin/linkedin-base.action.js.map +1 -0
  232. package/dist/providers/tiktok/actions/create-video-post.action.d.ts +21 -0
  233. package/dist/providers/tiktok/actions/create-video-post.action.d.ts.map +1 -0
  234. package/dist/providers/tiktok/actions/create-video-post.action.js +226 -0
  235. package/dist/providers/tiktok/actions/create-video-post.action.js.map +1 -0
  236. package/dist/providers/tiktok/actions/get-account-analytics.action.d.ts +32 -0
  237. package/dist/providers/tiktok/actions/get-account-analytics.action.d.ts.map +1 -0
  238. package/dist/providers/tiktok/actions/get-account-analytics.action.js +242 -0
  239. package/dist/providers/tiktok/actions/get-account-analytics.action.js.map +1 -0
  240. package/dist/providers/tiktok/actions/get-comments.action.d.ts +44 -0
  241. package/dist/providers/tiktok/actions/get-comments.action.d.ts.map +1 -0
  242. package/dist/providers/tiktok/actions/get-comments.action.js +290 -0
  243. package/dist/providers/tiktok/actions/get-comments.action.js.map +1 -0
  244. package/dist/providers/tiktok/actions/get-trending-hashtags.action.d.ts +48 -0
  245. package/dist/providers/tiktok/actions/get-trending-hashtags.action.d.ts.map +1 -0
  246. package/dist/providers/tiktok/actions/get-trending-hashtags.action.js +309 -0
  247. package/dist/providers/tiktok/actions/get-trending-hashtags.action.js.map +1 -0
  248. package/dist/providers/tiktok/actions/get-user-videos.action.d.ts +20 -0
  249. package/dist/providers/tiktok/actions/get-user-videos.action.d.ts.map +1 -0
  250. package/dist/providers/tiktok/actions/get-user-videos.action.js +131 -0
  251. package/dist/providers/tiktok/actions/get-user-videos.action.js.map +1 -0
  252. package/dist/providers/tiktok/actions/get-video-analytics.action.d.ts +28 -0
  253. package/dist/providers/tiktok/actions/get-video-analytics.action.d.ts.map +1 -0
  254. package/dist/providers/tiktok/actions/get-video-analytics.action.js +198 -0
  255. package/dist/providers/tiktok/actions/get-video-analytics.action.js.map +1 -0
  256. package/dist/providers/tiktok/actions/index.d.ts +8 -0
  257. package/dist/providers/tiktok/actions/index.d.ts.map +1 -0
  258. package/dist/providers/tiktok/actions/index.js +25 -0
  259. package/dist/providers/tiktok/actions/index.js.map +1 -0
  260. package/dist/providers/tiktok/actions/search-videos.action.d.ts +89 -0
  261. package/dist/providers/tiktok/actions/search-videos.action.d.ts.map +1 -0
  262. package/dist/providers/tiktok/actions/search-videos.action.js +653 -0
  263. package/dist/providers/tiktok/actions/search-videos.action.js.map +1 -0
  264. package/dist/providers/tiktok/index.d.ts +3 -0
  265. package/dist/providers/tiktok/index.d.ts.map +1 -0
  266. package/dist/providers/tiktok/index.js +20 -0
  267. package/dist/providers/tiktok/index.js.map +1 -0
  268. package/dist/providers/tiktok/tiktok-base.action.d.ts +87 -0
  269. package/dist/providers/tiktok/tiktok-base.action.d.ts.map +1 -0
  270. package/dist/providers/tiktok/tiktok-base.action.js +294 -0
  271. package/dist/providers/tiktok/tiktok-base.action.js.map +1 -0
  272. package/dist/providers/twitter/actions/create-thread.action.d.ts +28 -0
  273. package/dist/providers/twitter/actions/create-thread.action.d.ts.map +1 -0
  274. package/dist/providers/twitter/actions/create-thread.action.js +217 -0
  275. package/dist/providers/twitter/actions/create-thread.action.js.map +1 -0
  276. package/dist/providers/twitter/actions/create-tweet.action.d.ts +24 -0
  277. package/dist/providers/twitter/actions/create-tweet.action.d.ts.map +1 -0
  278. package/dist/providers/twitter/actions/create-tweet.action.js +199 -0
  279. package/dist/providers/twitter/actions/create-tweet.action.js.map +1 -0
  280. package/dist/providers/twitter/actions/delete-tweet.action.d.ts +24 -0
  281. package/dist/providers/twitter/actions/delete-tweet.action.d.ts.map +1 -0
  282. package/dist/providers/twitter/actions/delete-tweet.action.js +158 -0
  283. package/dist/providers/twitter/actions/delete-tweet.action.js.map +1 -0
  284. package/dist/providers/twitter/actions/get-analytics.action.d.ts +44 -0
  285. package/dist/providers/twitter/actions/get-analytics.action.d.ts.map +1 -0
  286. package/dist/providers/twitter/actions/get-analytics.action.js +399 -0
  287. package/dist/providers/twitter/actions/get-analytics.action.js.map +1 -0
  288. package/dist/providers/twitter/actions/get-mentions.action.d.ts +24 -0
  289. package/dist/providers/twitter/actions/get-mentions.action.d.ts.map +1 -0
  290. package/dist/providers/twitter/actions/get-mentions.action.js +229 -0
  291. package/dist/providers/twitter/actions/get-mentions.action.js.map +1 -0
  292. package/dist/providers/twitter/actions/get-timeline.action.d.ts +24 -0
  293. package/dist/providers/twitter/actions/get-timeline.action.d.ts.map +1 -0
  294. package/dist/providers/twitter/actions/get-timeline.action.js +249 -0
  295. package/dist/providers/twitter/actions/get-timeline.action.js.map +1 -0
  296. package/dist/providers/twitter/actions/index.d.ts +14 -0
  297. package/dist/providers/twitter/actions/index.d.ts.map +1 -0
  298. package/dist/providers/twitter/actions/index.js +30 -0
  299. package/dist/providers/twitter/actions/index.js.map +1 -0
  300. package/dist/providers/twitter/actions/schedule-tweet.action.d.ts +30 -0
  301. package/dist/providers/twitter/actions/schedule-tweet.action.d.ts.map +1 -0
  302. package/dist/providers/twitter/actions/schedule-tweet.action.js +250 -0
  303. package/dist/providers/twitter/actions/schedule-tweet.action.js.map +1 -0
  304. package/dist/providers/twitter/actions/search-tweets.action.d.ts +41 -0
  305. package/dist/providers/twitter/actions/search-tweets.action.d.ts.map +1 -0
  306. package/dist/providers/twitter/actions/search-tweets.action.js +559 -0
  307. package/dist/providers/twitter/actions/search-tweets.action.js.map +1 -0
  308. package/dist/providers/twitter/index.d.ts +8 -0
  309. package/dist/providers/twitter/index.d.ts.map +1 -0
  310. package/dist/providers/twitter/index.js +24 -0
  311. package/dist/providers/twitter/index.js.map +1 -0
  312. package/dist/providers/twitter/twitter-base.action.d.ts +185 -0
  313. package/dist/providers/twitter/twitter-base.action.d.ts.map +1 -0
  314. package/dist/providers/twitter/twitter-base.action.js +484 -0
  315. package/dist/providers/twitter/twitter-base.action.js.map +1 -0
  316. package/dist/providers/youtube/actions/create-playlist.action.d.ts +28 -0
  317. package/dist/providers/youtube/actions/create-playlist.action.d.ts.map +1 -0
  318. package/dist/providers/youtube/actions/create-playlist.action.js +235 -0
  319. package/dist/providers/youtube/actions/create-playlist.action.js.map +1 -0
  320. package/dist/providers/youtube/actions/get-channel-analytics.action.d.ts +60 -0
  321. package/dist/providers/youtube/actions/get-channel-analytics.action.d.ts.map +1 -0
  322. package/dist/providers/youtube/actions/get-channel-analytics.action.js +429 -0
  323. package/dist/providers/youtube/actions/get-channel-analytics.action.js.map +1 -0
  324. package/dist/providers/youtube/actions/get-channel-videos.action.d.ts +28 -0
  325. package/dist/providers/youtube/actions/get-channel-videos.action.d.ts.map +1 -0
  326. package/dist/providers/youtube/actions/get-channel-videos.action.js +263 -0
  327. package/dist/providers/youtube/actions/get-channel-videos.action.js.map +1 -0
  328. package/dist/providers/youtube/actions/get-comments.action.d.ts +40 -0
  329. package/dist/providers/youtube/actions/get-comments.action.d.ts.map +1 -0
  330. package/dist/providers/youtube/actions/get-comments.action.js +381 -0
  331. package/dist/providers/youtube/actions/get-comments.action.js.map +1 -0
  332. package/dist/providers/youtube/actions/get-video-analytics.action.d.ts +48 -0
  333. package/dist/providers/youtube/actions/get-video-analytics.action.d.ts.map +1 -0
  334. package/dist/providers/youtube/actions/get-video-analytics.action.js +280 -0
  335. package/dist/providers/youtube/actions/get-video-analytics.action.js.map +1 -0
  336. package/dist/providers/youtube/actions/index.d.ts +10 -0
  337. package/dist/providers/youtube/actions/index.d.ts.map +1 -0
  338. package/dist/providers/youtube/actions/index.js +26 -0
  339. package/dist/providers/youtube/actions/index.js.map +1 -0
  340. package/dist/providers/youtube/actions/schedule-video.action.d.ts +24 -0
  341. package/dist/providers/youtube/actions/schedule-video.action.d.ts.map +1 -0
  342. package/dist/providers/youtube/actions/schedule-video.action.js +225 -0
  343. package/dist/providers/youtube/actions/schedule-video.action.js.map +1 -0
  344. package/dist/providers/youtube/actions/search-videos.action.d.ts +40 -0
  345. package/dist/providers/youtube/actions/search-videos.action.d.ts.map +1 -0
  346. package/dist/providers/youtube/actions/search-videos.action.js +483 -0
  347. package/dist/providers/youtube/actions/search-videos.action.js.map +1 -0
  348. package/dist/providers/youtube/actions/update-video-metadata.action.d.ts +32 -0
  349. package/dist/providers/youtube/actions/update-video-metadata.action.d.ts.map +1 -0
  350. package/dist/providers/youtube/actions/update-video-metadata.action.js +298 -0
  351. package/dist/providers/youtube/actions/update-video-metadata.action.js.map +1 -0
  352. package/dist/providers/youtube/actions/upload-video.action.d.ts +28 -0
  353. package/dist/providers/youtube/actions/upload-video.action.d.ts.map +1 -0
  354. package/dist/providers/youtube/actions/upload-video.action.js +266 -0
  355. package/dist/providers/youtube/actions/upload-video.action.js.map +1 -0
  356. package/dist/providers/youtube/index.d.ts +3 -0
  357. package/dist/providers/youtube/index.d.ts.map +1 -0
  358. package/dist/providers/youtube/index.js +19 -0
  359. package/dist/providers/youtube/index.js.map +1 -0
  360. package/dist/providers/youtube/youtube-base.action.d.ts +83 -0
  361. package/dist/providers/youtube/youtube-base.action.d.ts.map +1 -0
  362. package/dist/providers/youtube/youtube-base.action.js +319 -0
  363. package/dist/providers/youtube/youtube-base.action.js.map +1 -0
  364. package/package.json +42 -0
  365. package/social_actions_summary.md +439 -0
  366. package/src/base/base-social.action.ts +270 -0
  367. package/src/index.ts +26 -0
  368. package/src/providers/buffer/actions/create-post.action.ts +205 -0
  369. package/src/providers/buffer/actions/delete-post.action.ts +116 -0
  370. package/src/providers/buffer/actions/get-analytics.action.ts +146 -0
  371. package/src/providers/buffer/actions/get-pending-posts.action.ts +161 -0
  372. package/src/providers/buffer/actions/get-profiles.action.ts +126 -0
  373. package/src/providers/buffer/actions/get-sent-posts.action.ts +189 -0
  374. package/src/providers/buffer/actions/index.ts +8 -0
  375. package/src/providers/buffer/actions/reorder-queue.action.ts +141 -0
  376. package/src/providers/buffer/actions/search-posts.action.ts +262 -0
  377. package/src/providers/buffer/buffer-base.action.ts +490 -0
  378. package/src/providers/buffer/index.ts +2 -0
  379. package/src/providers/facebook/actions/boost-post.action.ts +412 -0
  380. package/src/providers/facebook/actions/create-album.action.ts +335 -0
  381. package/src/providers/facebook/actions/create-post.action.ts +243 -0
  382. package/src/providers/facebook/actions/get-page-insights.action.ts +427 -0
  383. package/src/providers/facebook/actions/get-page-posts.action.ts +241 -0
  384. package/src/providers/facebook/actions/get-post-insights.action.ts +338 -0
  385. package/src/providers/facebook/actions/index.ts +9 -0
  386. package/src/providers/facebook/actions/respond-to-comments.action.ts +372 -0
  387. package/src/providers/facebook/actions/schedule-post.action.ts +310 -0
  388. package/src/providers/facebook/actions/search-posts.action.ts +449 -0
  389. package/src/providers/facebook/facebook-base.action.ts +750 -0
  390. package/src/providers/facebook/index.ts +2 -0
  391. package/src/providers/hootsuite/actions/bulk-schedule-posts.action.ts +293 -0
  392. package/src/providers/hootsuite/actions/create-scheduled-post.action.ts +206 -0
  393. package/src/providers/hootsuite/actions/delete-scheduled-post.action.ts +173 -0
  394. package/src/providers/hootsuite/actions/get-analytics.action.ts +281 -0
  395. package/src/providers/hootsuite/actions/get-scheduled-posts.action.ts +220 -0
  396. package/src/providers/hootsuite/actions/get-social-profiles.action.ts +220 -0
  397. package/src/providers/hootsuite/actions/search-posts.action.ts +395 -0
  398. package/src/providers/hootsuite/actions/update-scheduled-post.action.ts +222 -0
  399. package/src/providers/hootsuite/hootsuite-base.action.ts +346 -0
  400. package/src/providers/hootsuite/index.ts +12 -0
  401. package/src/providers/instagram/README.md +129 -0
  402. package/src/providers/instagram/actions/create-post.action.ts +329 -0
  403. package/src/providers/instagram/actions/create-story.action.ts +415 -0
  404. package/src/providers/instagram/actions/get-account-insights.action.ts +449 -0
  405. package/src/providers/instagram/actions/get-business-posts.action.ts +281 -0
  406. package/src/providers/instagram/actions/get-comments.action.ts +395 -0
  407. package/src/providers/instagram/actions/get-post-insights.action.ts +302 -0
  408. package/src/providers/instagram/actions/index.ts +9 -0
  409. package/src/providers/instagram/actions/schedule-post.action.ts +248 -0
  410. package/src/providers/instagram/actions/search-posts.action.ts +569 -0
  411. package/src/providers/instagram/index.ts +3 -0
  412. package/src/providers/instagram/instagram-base.action.ts +430 -0
  413. package/src/providers/linkedin/actions/create-article.action.ts +301 -0
  414. package/src/providers/linkedin/actions/create-post.action.ts +190 -0
  415. package/src/providers/linkedin/actions/get-followers.action.ts +226 -0
  416. package/src/providers/linkedin/actions/get-organization-posts.action.ts +164 -0
  417. package/src/providers/linkedin/actions/get-personal-posts.action.ts +158 -0
  418. package/src/providers/linkedin/actions/get-post-analytics.action.ts +205 -0
  419. package/src/providers/linkedin/actions/index.ts +8 -0
  420. package/src/providers/linkedin/actions/schedule-post.action.ts +206 -0
  421. package/src/providers/linkedin/actions/search-posts.action.ts +323 -0
  422. package/src/providers/linkedin/index.ts +2 -0
  423. package/src/providers/linkedin/linkedin-base.action.ts +481 -0
  424. package/src/providers/tiktok/actions/create-video-post.action.ts +234 -0
  425. package/src/providers/tiktok/actions/get-account-analytics.action.ts +255 -0
  426. package/src/providers/tiktok/actions/get-comments.action.ts +332 -0
  427. package/src/providers/tiktok/actions/get-trending-hashtags.action.ts +341 -0
  428. package/src/providers/tiktok/actions/get-user-videos.action.ts +136 -0
  429. package/src/providers/tiktok/actions/get-video-analytics.action.ts +218 -0
  430. package/src/providers/tiktok/actions/index.ts +8 -0
  431. package/src/providers/tiktok/actions/search-videos.action.ts +717 -0
  432. package/src/providers/tiktok/index.ts +3 -0
  433. package/src/providers/tiktok/tiktok-base.action.ts +356 -0
  434. package/src/providers/twitter/README.md +207 -0
  435. package/src/providers/twitter/actions/create-thread.action.ts +227 -0
  436. package/src/providers/twitter/actions/create-tweet.action.ts +204 -0
  437. package/src/providers/twitter/actions/delete-tweet.action.ts +153 -0
  438. package/src/providers/twitter/actions/get-analytics.action.ts +440 -0
  439. package/src/providers/twitter/actions/get-mentions.action.ts +233 -0
  440. package/src/providers/twitter/actions/get-timeline.action.ts +248 -0
  441. package/src/providers/twitter/actions/index.ts +14 -0
  442. package/src/providers/twitter/actions/schedule-tweet.action.ts +259 -0
  443. package/src/providers/twitter/actions/search-tweets.action.ts +588 -0
  444. package/src/providers/twitter/index.ts +8 -0
  445. package/src/providers/twitter/twitter-base.action.ts +629 -0
  446. package/src/providers/youtube/actions/create-playlist.action.ts +256 -0
  447. package/src/providers/youtube/actions/get-channel-analytics.action.ts +502 -0
  448. package/src/providers/youtube/actions/get-channel-videos.action.ts +286 -0
  449. package/src/providers/youtube/actions/get-comments.action.ts +411 -0
  450. package/src/providers/youtube/actions/get-video-analytics.action.ts +298 -0
  451. package/src/providers/youtube/actions/index.ts +9 -0
  452. package/src/providers/youtube/actions/schedule-video.action.ts +246 -0
  453. package/src/providers/youtube/actions/search-videos.action.ts +530 -0
  454. package/src/providers/youtube/actions/update-video-metadata.action.ts +321 -0
  455. package/src/providers/youtube/actions/upload-video.action.ts +288 -0
  456. package/src/providers/youtube/index.ts +2 -0
  457. package/src/providers/youtube/youtube-base.action.ts +373 -0
  458. package/tsconfig.json +18 -0
@@ -0,0 +1,226 @@
1
+ import { RegisterClass } from '@memberjunction/global';
2
+ import { LinkedInBaseAction } from '../linkedin-base.action';
3
+ import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
4
+ import { LogStatus, LogError } from '@memberjunction/core';
5
+
6
+ /**
7
+ * Action to get follower statistics for LinkedIn profiles and organizations
8
+ */
9
+ @RegisterClass(LinkedInBaseAction, 'LinkedInGetFollowersAction')
10
+ export class LinkedInGetFollowersAction extends LinkedInBaseAction {
11
+ /**
12
+ * Get follower statistics for personal profile or organization
13
+ */
14
+ protected async InternalRunAction(params: RunActionParams): Promise<ActionResultSimple> {
15
+ const { Params, ContextUser } = params;
16
+
17
+ try {
18
+ // Initialize OAuth
19
+ const companyIntegrationId = this.getParamValue(Params, 'CompanyIntegrationID');
20
+ if (!await this.initializeOAuth(companyIntegrationId)) {
21
+ throw new Error('Failed to initialize OAuth connection');
22
+ }
23
+
24
+ // Extract parameters
25
+ const entityType = this.getParamValue(Params, 'EntityType') || 'organization'; // 'personal' or 'organization'
26
+ const organizationId = this.getParamValue(Params, 'OrganizationID');
27
+ const includeGrowth = this.getParamValue(Params, 'IncludeGrowth') === true;
28
+ const timeRange = this.getParamValue(Params, 'TimeRange'); // Optional: {start: Date, end: Date}
29
+
30
+ let followerData: any = {};
31
+
32
+ if (entityType === 'organization') {
33
+ // Get organization follower statistics
34
+ let organizationUrn: string;
35
+ if (!organizationId) {
36
+ // Get first admin organization if not specified
37
+ const orgs = await this.getAdminOrganizations();
38
+ if (orgs.length === 0) {
39
+ throw new Error('No organizations found. Please specify OrganizationID.');
40
+ }
41
+ organizationUrn = orgs[0].urn;
42
+ LogStatus(`Using organization: ${orgs[0].name}`);
43
+ } else {
44
+ organizationUrn = `urn:li:organization:${organizationId}`;
45
+ }
46
+
47
+ followerData = await this.getOrganizationFollowers(organizationUrn, includeGrowth, timeRange);
48
+ } else {
49
+ // Get personal profile follower statistics
50
+ const userUrn = await this.getCurrentUserUrn();
51
+ followerData = await this.getPersonalFollowers(userUrn);
52
+ }
53
+
54
+ // Update output parameters
55
+ const outputParams = [...Params];
56
+ const followersParam = outputParams.find(p => p.Name === 'FollowerCount');
57
+ if (followersParam) followersParam.Value = followerData.followerCount || 0;
58
+ const statsParam = outputParams.find(p => p.Name === 'FollowerStatistics');
59
+ if (statsParam) statsParam.Value = followerData;
60
+
61
+ return {
62
+ Success: true,
63
+ ResultCode: 'SUCCESS',
64
+ Message: `Successfully retrieved follower statistics`,
65
+ Params: outputParams
66
+ };
67
+
68
+ } catch (error) {
69
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
70
+
71
+ return {
72
+ Success: false,
73
+ ResultCode: 'ERROR',
74
+ Message: `Failed to get followers: ${errorMessage}`,
75
+ Params
76
+ };
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Get organization follower statistics
82
+ */
83
+ private async getOrganizationFollowers(organizationUrn: string, includeGrowth: boolean, timeRange?: any): Promise<any> {
84
+ try {
85
+ const params: any = {
86
+ q: 'organizationalEntity',
87
+ organizationalEntity: organizationUrn
88
+ };
89
+
90
+ // Add time range if specified for growth metrics
91
+ if (includeGrowth && timeRange) {
92
+ params.timeIntervals = `List((start:${new Date(timeRange.start).getTime()},end:${new Date(timeRange.end || Date.now()).getTime()}))`;
93
+ }
94
+
95
+ // Get follower statistics
96
+ const response = await this.axiosInstance.get('/organizationalEntityFollowerStatistics', { params });
97
+
98
+ const stats = response.data.elements?.[0] || {};
99
+
100
+ const result: any = {
101
+ followerCount: stats.followerCounts?.organicFollowerCount || 0,
102
+ paidFollowerCount: stats.followerCounts?.paidFollowerCount || 0,
103
+ totalFollowerCount: (stats.followerCounts?.organicFollowerCount || 0) + (stats.followerCounts?.paidFollowerCount || 0)
104
+ };
105
+
106
+ // Add growth metrics if requested
107
+ if (includeGrowth && stats.followerGains) {
108
+ result.followerGrowth = {
109
+ organicGains: stats.followerGains.organicFollowerGains || 0,
110
+ paidGains: stats.followerGains.paidFollowerGains || 0,
111
+ totalGains: (stats.followerGains.organicFollowerGains || 0) + (stats.followerGains.paidFollowerGains || 0),
112
+ timeRange: timeRange
113
+ };
114
+ }
115
+
116
+ // Get demographics if available
117
+ try {
118
+ const demographicsResponse = await this.axiosInstance.get('/organizationalEntityFollowerStatistics', {
119
+ params: {
120
+ q: 'organizationalEntity',
121
+ organizationalEntity: organizationUrn,
122
+ projection: '(followerCountsByAssociationType,followerCountsByFunction,followerCountsBySeniority,followerCountsByIndustry,followerCountsByRegion,followerCountsByCountry)'
123
+ }
124
+ });
125
+
126
+ if (demographicsResponse.data.elements?.[0]) {
127
+ const demographics = demographicsResponse.data.elements[0];
128
+ result.demographics = {
129
+ byFunction: demographics.followerCountsByFunction || [],
130
+ bySeniority: demographics.followerCountsBySeniority || [],
131
+ byIndustry: demographics.followerCountsByIndustry || [],
132
+ byRegion: demographics.followerCountsByRegion || [],
133
+ byCountry: demographics.followerCountsByCountry || []
134
+ };
135
+ }
136
+ } catch (error) {
137
+ LogError(`Failed to get follower demographics: ${error instanceof Error ? error.message : 'Unknown error'}`);
138
+ }
139
+
140
+ return result;
141
+ } catch (error) {
142
+ LogError(`Failed to get organization followers: ${error instanceof Error ? error.message : 'Unknown error'}`);
143
+ throw error;
144
+ }
145
+ }
146
+
147
+ /**
148
+ * Get personal profile follower statistics
149
+ * Note: LinkedIn provides limited follower data for personal profiles
150
+ */
151
+ private async getPersonalFollowers(userUrn: string): Promise<any> {
152
+ try {
153
+ // Get basic profile information including follower count
154
+ const response = await this.axiosInstance.get('/me', {
155
+ params: {
156
+ projection: '(id,firstName,lastName,headline,publicProfileUrl,followerCount)'
157
+ }
158
+ });
159
+
160
+ return {
161
+ followerCount: response.data.followerCount || 0,
162
+ profileInfo: {
163
+ name: `${response.data.firstName?.localized?.en_US || ''} ${response.data.lastName?.localized?.en_US || ''}`.trim(),
164
+ headline: response.data.headline?.localized?.en_US || '',
165
+ profileUrl: response.data.publicProfileUrl || ''
166
+ },
167
+ note: 'LinkedIn API provides limited follower statistics for personal profiles'
168
+ };
169
+ } catch (error) {
170
+ LogError(`Failed to get personal followers: ${error instanceof Error ? error.message : 'Unknown error'}`);
171
+
172
+ // Fallback: return basic info
173
+ return {
174
+ followerCount: 0,
175
+ note: 'Unable to retrieve follower count for personal profile',
176
+ error: error instanceof Error ? error.message : 'Unknown error'
177
+ };
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Define the parameters this action expects
183
+ */
184
+ public get Params(): ActionParam[] {
185
+ return [
186
+ ...this.commonSocialParams,
187
+ {
188
+ Name: 'EntityType',
189
+ Type: 'Input',
190
+ Value: 'organization' // 'personal' or 'organization'
191
+ },
192
+ {
193
+ Name: 'OrganizationID',
194
+ Type: 'Input',
195
+ Value: null
196
+ },
197
+ {
198
+ Name: 'IncludeGrowth',
199
+ Type: 'Input',
200
+ Value: false
201
+ },
202
+ {
203
+ Name: 'TimeRange',
204
+ Type: 'Input',
205
+ Value: null // Optional: {start: Date, end: Date}
206
+ },
207
+ {
208
+ Name: 'FollowerCount',
209
+ Type: 'Output',
210
+ Value: null
211
+ },
212
+ {
213
+ Name: 'FollowerStatistics',
214
+ Type: 'Output',
215
+ Value: null
216
+ }
217
+ ];
218
+ }
219
+
220
+ /**
221
+ * Get action description
222
+ */
223
+ public get Description(): string {
224
+ return 'Retrieves follower statistics for LinkedIn personal profiles or organization pages, including demographics and growth metrics where available';
225
+ }
226
+ }
@@ -0,0 +1,164 @@
1
+ import { RegisterClass } from '@memberjunction/global';
2
+ import { LinkedInBaseAction } from '../linkedin-base.action';
3
+ import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
4
+ import { LogStatus, LogError } from '@memberjunction/core';
5
+ import { SocialPost } from '../../../base/base-social.action';
6
+
7
+ /**
8
+ * Action to get posts from a LinkedIn organization page
9
+ */
10
+ @RegisterClass(LinkedInBaseAction, 'LinkedInGetOrganizationPostsAction')
11
+ export class LinkedInGetOrganizationPostsAction extends LinkedInBaseAction {
12
+ /**
13
+ * Get posts from a LinkedIn organization page
14
+ */
15
+ protected async InternalRunAction(params: RunActionParams): Promise<ActionResultSimple> {
16
+ const { Params, ContextUser } = params;
17
+
18
+ try {
19
+ // Initialize OAuth
20
+ const companyIntegrationId = this.getParamValue(Params, 'CompanyIntegrationID');
21
+ if (!await this.initializeOAuth(companyIntegrationId)) {
22
+ throw new Error('Failed to initialize OAuth connection');
23
+ }
24
+
25
+ // Extract parameters
26
+ const organizationId = this.getParamValue(Params, 'OrganizationID');
27
+ const count = this.getParamValue(Params, 'Count') || 50;
28
+ const startIndex = this.getParamValue(Params, 'StartIndex') || 0;
29
+ const includeAnalytics = this.getParamValue(Params, 'IncludeAnalytics') === true;
30
+
31
+ // Determine organization URN
32
+ let organizationUrn: string;
33
+ if (!organizationId) {
34
+ // Get first admin organization if not specified
35
+ const orgs = await this.getAdminOrganizations();
36
+ if (orgs.length === 0) {
37
+ throw new Error('No organizations found. Please specify OrganizationID.');
38
+ }
39
+ organizationUrn = orgs[0].urn;
40
+ LogStatus(`Using organization: ${orgs[0].name}`);
41
+ } else {
42
+ organizationUrn = `urn:li:organization:${organizationId}`;
43
+ }
44
+
45
+ // Get posts
46
+ LogStatus(`Fetching posts for organization...`);
47
+ const shares = await this.getShares(organizationUrn, count, startIndex);
48
+
49
+ // Convert to common format
50
+ const posts: SocialPost[] = [];
51
+ for (const share of shares) {
52
+ const post = this.normalizePost(share);
53
+
54
+ // Optionally fetch analytics
55
+ if (includeAnalytics) {
56
+ try {
57
+ const analytics = await this.getPostAnalytics(share.id, organizationUrn);
58
+ post.analytics = this.normalizeAnalytics(analytics);
59
+ } catch (error) {
60
+ LogError(`Failed to get analytics for post ${share.id}: ${error instanceof Error ? error.message : 'Unknown error'}`);
61
+ }
62
+ }
63
+
64
+ posts.push(post);
65
+ }
66
+
67
+ LogStatus(`Retrieved ${posts.length} posts`);
68
+
69
+ // Update output parameters
70
+ const outputParams = [...Params];
71
+ const postsParam = outputParams.find(p => p.Name === 'Posts');
72
+ if (postsParam) postsParam.Value = posts;
73
+ const totalCountParam = outputParams.find(p => p.Name === 'TotalCount');
74
+ if (totalCountParam) totalCountParam.Value = posts.length;
75
+
76
+ return {
77
+ Success: true,
78
+ ResultCode: 'SUCCESS',
79
+ Message: `Successfully retrieved ${posts.length} organization posts`,
80
+ Params: outputParams
81
+ };
82
+
83
+ } catch (error) {
84
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
85
+
86
+ return {
87
+ Success: false,
88
+ ResultCode: 'ERROR',
89
+ Message: `Failed to get organization posts: ${errorMessage}`,
90
+ Params
91
+ };
92
+ }
93
+ }
94
+
95
+ /**
96
+ * Get analytics for a specific post
97
+ */
98
+ private async getPostAnalytics(shareId: string, organizationUrn: string): Promise<any> {
99
+ try {
100
+ const response = await this.axiosInstance.get('/organizationalEntityShareStatistics', {
101
+ params: {
102
+ q: 'organizationalEntity',
103
+ organizationalEntity: organizationUrn,
104
+ shares: `List(${shareId})`
105
+ }
106
+ });
107
+
108
+ if (response.data.elements && response.data.elements.length > 0) {
109
+ return response.data.elements[0];
110
+ }
111
+
112
+ return null;
113
+ } catch (error) {
114
+ LogError(`Failed to get post analytics: ${error instanceof Error ? error.message : 'Unknown error'}`);
115
+ return null;
116
+ }
117
+ }
118
+
119
+ /**
120
+ * Define the parameters this action expects
121
+ */
122
+ public get Params(): ActionParam[] {
123
+ return [
124
+ ...this.commonSocialParams,
125
+ {
126
+ Name: 'OrganizationID',
127
+ Type: 'Input',
128
+ Value: null
129
+ },
130
+ {
131
+ Name: 'Count',
132
+ Type: 'Input',
133
+ Value: 50
134
+ },
135
+ {
136
+ Name: 'StartIndex',
137
+ Type: 'Input',
138
+ Value: 0
139
+ },
140
+ {
141
+ Name: 'IncludeAnalytics',
142
+ Type: 'Input',
143
+ Value: false
144
+ },
145
+ {
146
+ Name: 'Posts',
147
+ Type: 'Output',
148
+ Value: null
149
+ },
150
+ {
151
+ Name: 'TotalCount',
152
+ Type: 'Output',
153
+ Value: null
154
+ }
155
+ ];
156
+ }
157
+
158
+ /**
159
+ * Get action description
160
+ */
161
+ public get Description(): string {
162
+ return 'Retrieves posts from a LinkedIn organization page with optional analytics data';
163
+ }
164
+ }
@@ -0,0 +1,158 @@
1
+ import { RegisterClass } from '@memberjunction/global';
2
+ import { LinkedInBaseAction } from '../linkedin-base.action';
3
+ import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
4
+ import { LogStatus, LogError } from '@memberjunction/core';
5
+ import { SocialPost } from '../../../base/base-social.action';
6
+
7
+ /**
8
+ * Action to get posts from a LinkedIn personal profile
9
+ */
10
+ @RegisterClass(LinkedInBaseAction, 'LinkedInGetPersonalPostsAction')
11
+ export class LinkedInGetPersonalPostsAction extends LinkedInBaseAction {
12
+ /**
13
+ * Get posts from the authenticated user's LinkedIn profile
14
+ */
15
+ protected async InternalRunAction(params: RunActionParams): Promise<ActionResultSimple> {
16
+ const { Params, ContextUser } = params;
17
+
18
+ try {
19
+ // Initialize OAuth
20
+ const companyIntegrationId = this.getParamValue(Params, 'CompanyIntegrationID');
21
+ if (!await this.initializeOAuth(companyIntegrationId)) {
22
+ throw new Error('Failed to initialize OAuth connection');
23
+ }
24
+
25
+ // Extract parameters
26
+ const count = this.getParamValue(Params, 'Count') || 50;
27
+ const startIndex = this.getParamValue(Params, 'StartIndex') || 0;
28
+ const includeAnalytics = this.getParamValue(Params, 'IncludeAnalytics') === true;
29
+
30
+ // Get current user URN
31
+ const userUrn = await this.getCurrentUserUrn();
32
+ LogStatus(`Fetching posts for user: ${userUrn}`);
33
+
34
+ // Get posts
35
+ const shares = await this.getShares(userUrn, count, startIndex);
36
+
37
+ // Convert to common format
38
+ const posts: SocialPost[] = [];
39
+ for (const share of shares) {
40
+ const post = this.normalizePost(share);
41
+
42
+ // Personal posts have limited analytics access
43
+ if (includeAnalytics) {
44
+ try {
45
+ // Note: Personal share analytics are limited compared to organization analytics
46
+ const analytics = await this.getPersonalPostAnalytics(share.id);
47
+ if (analytics) {
48
+ post.analytics = this.normalizeAnalytics(analytics);
49
+ }
50
+ } catch (error) {
51
+ LogError(`Failed to get analytics for post ${share.id}: ${error instanceof Error ? error.message : 'Unknown error'}`);
52
+ }
53
+ }
54
+
55
+ posts.push(post);
56
+ }
57
+
58
+ LogStatus(`Retrieved ${posts.length} personal posts`);
59
+
60
+ // Update output parameters
61
+ const outputParams = [...Params];
62
+ const postsParam = outputParams.find(p => p.Name === 'Posts');
63
+ if (postsParam) postsParam.Value = posts;
64
+ const totalCountParam = outputParams.find(p => p.Name === 'TotalCount');
65
+ if (totalCountParam) totalCountParam.Value = posts.length;
66
+
67
+ return {
68
+ Success: true,
69
+ ResultCode: 'SUCCESS',
70
+ Message: `Successfully retrieved ${posts.length} personal posts`,
71
+ Params: outputParams
72
+ };
73
+
74
+ } catch (error) {
75
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
76
+
77
+ return {
78
+ Success: false,
79
+ ResultCode: 'ERROR',
80
+ Message: `Failed to get personal posts: ${errorMessage}`,
81
+ Params
82
+ };
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Get analytics for a personal post
88
+ * Note: LinkedIn provides limited analytics for personal posts
89
+ */
90
+ private async getPersonalPostAnalytics(shareId: string): Promise<any> {
91
+ try {
92
+ // LinkedIn v2 API has limited personal analytics
93
+ // We can get basic engagement data from the share itself
94
+ const response = await this.axiosInstance.get(`/ugcPosts/${shareId}`);
95
+
96
+ if (response.data) {
97
+ // Extract available metrics from the post data
98
+ return {
99
+ totalShareStatistics: {
100
+ impressionCount: 0, // Not available for personal posts
101
+ clickCount: 0, // Not available for personal posts
102
+ engagement: 0, // Not available for personal posts
103
+ likeCount: response.data.likesSummary?.totalLikes || 0,
104
+ commentCount: response.data.commentsSummary?.totalComments || 0,
105
+ shareCount: 0, // Not available in this endpoint
106
+ uniqueImpressionsCount: 0 // Not available for personal posts
107
+ }
108
+ };
109
+ }
110
+
111
+ return null;
112
+ } catch (error) {
113
+ LogError(`Failed to get personal post analytics: ${error instanceof Error ? error.message : 'Unknown error'}`);
114
+ return null;
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Define the parameters this action expects
120
+ */
121
+ public get Params(): ActionParam[] {
122
+ return [
123
+ ...this.commonSocialParams,
124
+ {
125
+ Name: 'Count',
126
+ Type: 'Input',
127
+ Value: 50
128
+ },
129
+ {
130
+ Name: 'StartIndex',
131
+ Type: 'Input',
132
+ Value: 0
133
+ },
134
+ {
135
+ Name: 'IncludeAnalytics',
136
+ Type: 'Input',
137
+ Value: false
138
+ },
139
+ {
140
+ Name: 'Posts',
141
+ Type: 'Output',
142
+ Value: null
143
+ },
144
+ {
145
+ Name: 'TotalCount',
146
+ Type: 'Output',
147
+ Value: null
148
+ }
149
+ ];
150
+ }
151
+
152
+ /**
153
+ * Get action description
154
+ */
155
+ public get Description(): string {
156
+ return 'Retrieves posts from the authenticated user\'s LinkedIn personal profile with limited analytics data';
157
+ }
158
+ }