@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,234 @@
1
+ import { RegisterClass } from '@memberjunction/global';
2
+ import { TikTokBaseAction } from '../tiktok-base.action';
3
+ import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
4
+
5
+ /**
6
+ * Action to create a video post on TikTok
7
+ * Note: This requires special API approval from TikTok
8
+ */
9
+ @RegisterClass(TikTokBaseAction, 'CreateVideoPostAction')
10
+ export class CreateVideoPostAction extends TikTokBaseAction {
11
+
12
+ /**
13
+ * Create a video post on TikTok
14
+ */
15
+ protected async InternalRunAction(params: RunActionParams): Promise<ActionResultSimple> {
16
+ const { Params } = params;
17
+
18
+ try {
19
+ // Initialize OAuth
20
+ const companyIntegrationId = this.getParamValue(Params, 'CompanyIntegrationID');
21
+ if (!companyIntegrationId) {
22
+ throw new Error('CompanyIntegrationID is required');
23
+ }
24
+
25
+ await this.initializeOAuth(companyIntegrationId);
26
+
27
+ // Extract parameters
28
+ const videoUrl = this.getParamValue(Params, 'VideoURL');
29
+ const title = this.getParamValue(Params, 'Title');
30
+ const description = this.getParamValue(Params, 'Description');
31
+ const hashtags = this.getParamValue(Params, 'Hashtags') || [];
32
+ const privacyLevel = this.getParamValue(Params, 'PrivacyLevel') || 'PUBLIC';
33
+ const allowComments = this.getParamValue(Params, 'AllowComments') !== false;
34
+ const allowDuet = this.getParamValue(Params, 'AllowDuet') !== false;
35
+ const allowStitch = this.getParamValue(Params, 'AllowStitch') !== false;
36
+ const scheduleTime = this.getParamValue(Params, 'ScheduleTime');
37
+
38
+ // Validate required parameters
39
+ if (!videoUrl && !this.getParamValue(Params, 'VideoFile')) {
40
+ throw new Error('Either VideoURL or VideoFile is required');
41
+ }
42
+
43
+ // Build description with hashtags
44
+ const hashtagString = hashtags.map((tag: string) =>
45
+ tag.startsWith('#') ? tag : `#${tag}`
46
+ ).join(' ');
47
+ const fullDescription = description ? `${description} ${hashtagString}`.trim() : hashtagString;
48
+
49
+ // Check if we have video upload approval
50
+ const hasUploadApproval = this.getCustomAttribute(3) === 'approved';
51
+
52
+ if (!hasUploadApproval) {
53
+ // Return informative message about TikTok limitations
54
+ const alternativeSteps = {
55
+ manualProcess: [
56
+ '1. Download the TikTok mobile app',
57
+ '2. Log in to your TikTok account',
58
+ '3. Tap the + button to create a new video',
59
+ '4. Upload your video or record a new one',
60
+ `5. Add title: "${title || 'Your video title'}"`,
61
+ `6. Add description: "${fullDescription}"`,
62
+ '7. Set privacy and interaction settings',
63
+ '8. Post immediately or save as draft'
64
+ ],
65
+ businessSolution: 'For automated posting, apply for TikTok Marketing API access at https://ads.tiktok.com/marketing_api/',
66
+ thirdPartyTools: [
67
+ 'TikTok Creator Studio (web interface)',
68
+ 'Buffer (with TikTok integration)',
69
+ 'Hootsuite (business plans)'
70
+ ]
71
+ };
72
+
73
+ // Update output parameters with alternative instructions
74
+ const outputParams = [...Params];
75
+ const postIdParam = outputParams.find(p => p.Name === 'PostID');
76
+ if (postIdParam) postIdParam.Value = null;
77
+ const postUrlParam = outputParams.find(p => p.Name === 'PostURL');
78
+ if (postUrlParam) postUrlParam.Value = null;
79
+ const alternativesParam = outputParams.find(p => p.Name === 'Alternatives');
80
+ if (alternativesParam) alternativesParam.Value = alternativeSteps;
81
+
82
+ return {
83
+ Success: false,
84
+ ResultCode: 'API_LIMITATION',
85
+ Message: 'TikTok video upload requires special API approval. See Alternatives output for manual posting instructions.',
86
+ Params: outputParams
87
+ };
88
+ }
89
+
90
+ // If we have approval, attempt to create the post
91
+ // This is the theoretical implementation if approval is granted
92
+ const createPostData = {
93
+ video_url: videoUrl,
94
+ title: title,
95
+ description: fullDescription,
96
+ privacy_level: privacyLevel,
97
+ allow_comments: allowComments,
98
+ allow_duet: allowDuet,
99
+ allow_stitch: allowStitch,
100
+ scheduled_publish_time: scheduleTime ? new Date(scheduleTime).toISOString() : undefined
101
+ };
102
+
103
+ const response = await this.makeTikTokRequest<any>(
104
+ '/v2/video/upload/',
105
+ 'POST',
106
+ createPostData
107
+ );
108
+
109
+ const postData = response.data;
110
+
111
+ // Update output parameters
112
+ const outputParams = [...Params];
113
+ const postIdParam = outputParams.find(p => p.Name === 'PostID');
114
+ if (postIdParam) postIdParam.Value = postData.video_id;
115
+ const postUrlParam = outputParams.find(p => p.Name === 'PostURL');
116
+ if (postUrlParam) postUrlParam.Value = postData.share_url;
117
+ const statusParam = outputParams.find(p => p.Name === 'Status');
118
+ if (statusParam) statusParam.Value = postData.status;
119
+
120
+ return {
121
+ Success: true,
122
+ ResultCode: 'SUCCESS',
123
+ Message: `Successfully created TikTok video post: ${postData.video_id}`,
124
+ Params: outputParams
125
+ };
126
+
127
+ } catch (error) {
128
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
129
+
130
+ // Check for specific TikTok error codes
131
+ if (errorMessage.includes('insufficient_permissions')) {
132
+ return {
133
+ Success: false,
134
+ ResultCode: 'INSUFFICIENT_PERMISSIONS',
135
+ Message: 'This action requires TikTok Marketing API approval. Contact TikTok for Business.',
136
+ Params
137
+ };
138
+ }
139
+
140
+ return {
141
+ Success: false,
142
+ ResultCode: this.isAuthError(error) ? 'INVALID_TOKEN' : 'ERROR',
143
+ Message: `Failed to create TikTok video post: ${errorMessage}`,
144
+ Params
145
+ };
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Define the parameters this action expects
151
+ */
152
+ public get Params(): ActionParam[] {
153
+ return [
154
+ ...this.commonSocialParams,
155
+ {
156
+ Name: 'VideoURL',
157
+ Type: 'Input',
158
+ Value: null
159
+ },
160
+ {
161
+ Name: 'VideoFile',
162
+ Type: 'Input',
163
+ Value: null
164
+ },
165
+ {
166
+ Name: 'Title',
167
+ Type: 'Input',
168
+ Value: null
169
+ },
170
+ {
171
+ Name: 'Description',
172
+ Type: 'Input',
173
+ Value: null
174
+ },
175
+ {
176
+ Name: 'Hashtags',
177
+ Type: 'Input',
178
+ Value: []
179
+ },
180
+ {
181
+ Name: 'PrivacyLevel',
182
+ Type: 'Input',
183
+ Value: 'PUBLIC'
184
+ },
185
+ {
186
+ Name: 'AllowComments',
187
+ Type: 'Input',
188
+ Value: true
189
+ },
190
+ {
191
+ Name: 'AllowDuet',
192
+ Type: 'Input',
193
+ Value: true
194
+ },
195
+ {
196
+ Name: 'AllowStitch',
197
+ Type: 'Input',
198
+ Value: true
199
+ },
200
+ {
201
+ Name: 'ScheduleTime',
202
+ Type: 'Input',
203
+ Value: null
204
+ },
205
+ {
206
+ Name: 'PostID',
207
+ Type: 'Output',
208
+ Value: null
209
+ },
210
+ {
211
+ Name: 'PostURL',
212
+ Type: 'Output',
213
+ Value: null
214
+ },
215
+ {
216
+ Name: 'Status',
217
+ Type: 'Output',
218
+ Value: null
219
+ },
220
+ {
221
+ Name: 'Alternatives',
222
+ Type: 'Output',
223
+ Value: null
224
+ }
225
+ ];
226
+ }
227
+
228
+ /**
229
+ * Metadata about this action
230
+ */
231
+ public get Description(): string {
232
+ return 'Creates a video post on TikTok (requires special API approval from TikTok)';
233
+ }
234
+ }
@@ -0,0 +1,255 @@
1
+ import { RegisterClass } from '@memberjunction/global';
2
+ import { TikTokBaseAction, TikTokUser } from '../tiktok-base.action';
3
+ import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
4
+
5
+ /**
6
+ * Action to get analytics for a TikTok account
7
+ */
8
+ @RegisterClass(TikTokBaseAction, 'GetAccountAnalyticsAction')
9
+ export class GetAccountAnalyticsAction extends TikTokBaseAction {
10
+
11
+ /**
12
+ * Get account-level analytics from TikTok
13
+ */
14
+ protected async InternalRunAction(params: RunActionParams): Promise<ActionResultSimple> {
15
+ const { Params } = params;
16
+
17
+ try {
18
+ // Initialize OAuth
19
+ const companyIntegrationId = this.getParamValue(Params, 'CompanyIntegrationID');
20
+ if (!companyIntegrationId) {
21
+ throw new Error('CompanyIntegrationID is required');
22
+ }
23
+
24
+ await this.initializeOAuth(companyIntegrationId);
25
+
26
+ // Extract parameters
27
+ const dateRange = this.getParamValue(Params, 'DateRange') || '30d';
28
+ const includeVideoStats = this.getParamValue(Params, 'IncludeVideoStats') !== false;
29
+ const includeAudienceData = this.getParamValue(Params, 'IncludeAudienceData') !== false;
30
+
31
+ // Get current user info
32
+ const userInfo = await this.getCurrentUser();
33
+
34
+ // Get user's videos for aggregate stats
35
+ let videoStats = null;
36
+ if (includeVideoStats) {
37
+ const videos = await this.getUserVideos();
38
+
39
+ // Calculate video statistics
40
+ videoStats = {
41
+ totalVideos: videos.length,
42
+ totalViews: videos.reduce((sum, v) => sum + v.view_count, 0),
43
+ totalLikes: videos.reduce((sum, v) => sum + v.like_count, 0),
44
+ totalComments: videos.reduce((sum, v) => sum + v.comment_count, 0),
45
+ totalShares: videos.reduce((sum, v) => sum + v.share_count, 0),
46
+ averageViewsPerVideo: videos.length > 0
47
+ ? Math.round(videos.reduce((sum, v) => sum + v.view_count, 0) / videos.length)
48
+ : 0,
49
+ averageEngagementRate: videos.length > 0
50
+ ? this.calculateAverageEngagementRate(videos)
51
+ : 0,
52
+ topVideos: videos
53
+ .sort((a, b) => b.view_count - a.view_count)
54
+ .slice(0, 5)
55
+ .map(v => ({
56
+ id: v.id,
57
+ title: v.title,
58
+ views: v.view_count,
59
+ likes: v.like_count,
60
+ url: v.share_url
61
+ }))
62
+ };
63
+ }
64
+
65
+ // Build account analytics
66
+ const accountAnalytics = {
67
+ accountInfo: {
68
+ userId: userInfo.open_id,
69
+ username: userInfo.display_name,
70
+ isVerified: userInfo.is_verified,
71
+ profileUrl: userInfo.profile_deep_link,
72
+ avatarUrl: userInfo.avatar_url,
73
+ bio: userInfo.bio_description
74
+ },
75
+ metrics: {
76
+ followers: userInfo.follower_count,
77
+ following: userInfo.following_count,
78
+ totalLikes: userInfo.likes_count,
79
+ engagementRate: this.calculateAccountEngagementRate(userInfo, videoStats),
80
+ growthRate: null // Would need historical data
81
+ },
82
+ videoStats,
83
+ dateRange,
84
+ generatedAt: new Date()
85
+ };
86
+
87
+ // Build audience data if requested (placeholder - TikTok API limitations)
88
+ let audienceData = null;
89
+ if (includeAudienceData) {
90
+ audienceData = {
91
+ demographics: {
92
+ message: 'Detailed audience demographics require TikTok For Business account'
93
+ },
94
+ topCountries: [],
95
+ topCities: [],
96
+ ageGroups: [],
97
+ genderSplit: {}
98
+ };
99
+ }
100
+
101
+ // Create summary
102
+ const summary = {
103
+ accountLevel: {
104
+ followers: userInfo.follower_count,
105
+ engagement: accountAnalytics.metrics.engagementRate,
106
+ verified: userInfo.is_verified
107
+ },
108
+ contentPerformance: videoStats ? {
109
+ totalContent: videoStats.totalVideos,
110
+ totalReach: videoStats.totalViews,
111
+ avgEngagement: videoStats.averageEngagementRate
112
+ } : null,
113
+ recommendations: this.generateRecommendations(accountAnalytics)
114
+ };
115
+
116
+ // Update output parameters
117
+ const outputParams = [...Params];
118
+ const analyticsParam = outputParams.find(p => p.Name === 'AccountAnalytics');
119
+ if (analyticsParam) analyticsParam.Value = accountAnalytics;
120
+ const audienceParam = outputParams.find(p => p.Name === 'AudienceData');
121
+ if (audienceParam) audienceParam.Value = audienceData;
122
+ const summaryParam = outputParams.find(p => p.Name === 'Summary');
123
+ if (summaryParam) summaryParam.Value = summary;
124
+
125
+ return {
126
+ Success: true,
127
+ ResultCode: 'SUCCESS',
128
+ Message: `Successfully retrieved analytics for TikTok account @${userInfo.display_name}`,
129
+ Params: outputParams
130
+ };
131
+
132
+ } catch (error) {
133
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
134
+
135
+ return {
136
+ Success: false,
137
+ ResultCode: this.isAuthError(error) ? 'INVALID_TOKEN' : 'ERROR',
138
+ Message: `Failed to get TikTok account analytics: ${errorMessage}`,
139
+ Params
140
+ };
141
+ }
142
+ }
143
+
144
+ /**
145
+ * Calculate average engagement rate for videos
146
+ */
147
+ private calculateAverageEngagementRate(videos: any[]): number {
148
+ if (videos.length === 0) return 0;
149
+
150
+ const totalEngagements = videos.reduce((sum, v) =>
151
+ sum + v.like_count + v.comment_count + v.share_count, 0
152
+ );
153
+ const totalViews = videos.reduce((sum, v) => sum + v.view_count, 0);
154
+
155
+ return totalViews > 0
156
+ ? parseFloat(((totalEngagements / totalViews) * 100).toFixed(2))
157
+ : 0;
158
+ }
159
+
160
+ /**
161
+ * Calculate account-level engagement rate
162
+ */
163
+ private calculateAccountEngagementRate(user: TikTokUser, videoStats: any): number {
164
+ if (!videoStats || !user.follower_count) return 0;
165
+
166
+ const avgEngagementsPerVideo = videoStats.totalVideos > 0
167
+ ? (videoStats.totalLikes + videoStats.totalComments + videoStats.totalShares) / videoStats.totalVideos
168
+ : 0;
169
+
170
+ return parseFloat(((avgEngagementsPerVideo / user.follower_count) * 100).toFixed(2));
171
+ }
172
+
173
+ /**
174
+ * Generate recommendations based on analytics
175
+ */
176
+ private generateRecommendations(analytics: any): string[] {
177
+ const recommendations: string[] = [];
178
+
179
+ // Engagement rate recommendations
180
+ if (analytics.metrics.engagementRate < 1) {
181
+ recommendations.push('Consider improving content quality to boost engagement rate above 1%');
182
+ } else if (analytics.metrics.engagementRate > 5) {
183
+ recommendations.push('Excellent engagement rate! Consider posting more frequently to capitalize on audience interest');
184
+ }
185
+
186
+ // Follower recommendations
187
+ if (analytics.accountInfo.followers < 1000) {
188
+ recommendations.push('Focus on consistent posting and trending hashtags to grow your follower base');
189
+ }
190
+
191
+ // Video performance recommendations
192
+ if (analytics.videoStats) {
193
+ if (analytics.videoStats.averageViewsPerVideo < analytics.accountInfo.followers) {
194
+ recommendations.push('Your videos are reaching less than your follower count. Try posting at peak times');
195
+ }
196
+
197
+ if (analytics.videoStats.totalVideos < 10) {
198
+ recommendations.push('Post more videos to build a stronger content library');
199
+ }
200
+ }
201
+
202
+ // Verification recommendation
203
+ if (!analytics.accountInfo.isVerified && analytics.accountInfo.followers > 10000) {
204
+ recommendations.push('Consider applying for TikTok verification to build trust with your audience');
205
+ }
206
+
207
+ return recommendations;
208
+ }
209
+
210
+ /**
211
+ * Define the parameters this action expects
212
+ */
213
+ public get Params(): ActionParam[] {
214
+ return [
215
+ ...this.commonSocialParams,
216
+ {
217
+ Name: 'DateRange',
218
+ Type: 'Input',
219
+ Value: '30d'
220
+ },
221
+ {
222
+ Name: 'IncludeVideoStats',
223
+ Type: 'Input',
224
+ Value: true
225
+ },
226
+ {
227
+ Name: 'IncludeAudienceData',
228
+ Type: 'Input',
229
+ Value: true
230
+ },
231
+ {
232
+ Name: 'AccountAnalytics',
233
+ Type: 'Output',
234
+ Value: null
235
+ },
236
+ {
237
+ Name: 'AudienceData',
238
+ Type: 'Output',
239
+ Value: null
240
+ },
241
+ {
242
+ Name: 'Summary',
243
+ Type: 'Output',
244
+ Value: null
245
+ }
246
+ ];
247
+ }
248
+
249
+ /**
250
+ * Metadata about this action
251
+ */
252
+ public get Description(): string {
253
+ return 'Retrieves comprehensive analytics for a TikTok account including followers, engagement rates, and content performance';
254
+ }
255
+ }