@woopsocial/typescript-sdk 0.0.9 → 0.1.1

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 (335) hide show
  1. package/FUNCTIONS.md +9 -3
  2. package/README.md +71 -22
  3. package/esm/funcs/posts-create-post.d.ts +23 -0
  4. package/esm/funcs/posts-create-post.d.ts.map +1 -0
  5. package/esm/funcs/posts-create-post.js +88 -0
  6. package/esm/funcs/posts-create-post.js.map +1 -0
  7. package/esm/funcs/posts-delete-post.d.ts +21 -0
  8. package/esm/funcs/posts-delete-post.d.ts.map +1 -0
  9. package/esm/funcs/posts-delete-post.js +91 -0
  10. package/esm/funcs/posts-delete-post.js.map +1 -0
  11. package/esm/funcs/posts-get-post.d.ts +19 -0
  12. package/esm/funcs/posts-get-post.d.ts.map +1 -0
  13. package/esm/funcs/posts-get-post.js +89 -0
  14. package/esm/funcs/posts-get-post.js.map +1 -0
  15. package/esm/funcs/social-accounts-get-social-account-platform-inputs.d.ts +2 -1
  16. package/esm/funcs/social-accounts-get-social-account-platform-inputs.d.ts.map +1 -1
  17. package/esm/funcs/social-accounts-get-social-account-platform-inputs.js +2 -1
  18. package/esm/funcs/social-accounts-get-social-account-platform-inputs.js.map +1 -1
  19. package/esm/lib/config.d.ts +2 -2
  20. package/esm/lib/config.js +2 -2
  21. package/esm/models/create-post-error-code.d.ts +16 -0
  22. package/esm/models/create-post-error-code.d.ts.map +1 -0
  23. package/esm/models/create-post-error-code.js +17 -0
  24. package/esm/models/create-post-error-code.js.map +1 -0
  25. package/esm/models/create-post-request.d.ts +35 -0
  26. package/esm/models/create-post-request.d.ts.map +1 -0
  27. package/esm/models/create-post-request.js +17 -0
  28. package/esm/models/create-post-request.js.map +1 -0
  29. package/esm/models/delete-post-error-code.d.ts +11 -0
  30. package/esm/models/delete-post-error-code.d.ts.map +1 -0
  31. package/esm/models/delete-post-error-code.js +12 -0
  32. package/esm/models/delete-post-error-code.js.map +1 -0
  33. package/esm/models/delivery-status.d.ts +0 -2
  34. package/esm/models/delivery-status.d.ts.map +1 -1
  35. package/esm/models/delivery-status.js +0 -2
  36. package/esm/models/delivery-status.js.map +1 -1
  37. package/esm/models/draft-post-schedule.d.ts +17 -0
  38. package/esm/models/draft-post-schedule.d.ts.map +1 -0
  39. package/esm/models/draft-post-schedule.js +21 -0
  40. package/esm/models/draft-post-schedule.js.map +1 -0
  41. package/esm/models/errors/create-post-error-response.d.ts +46 -0
  42. package/esm/models/errors/create-post-error-response.d.ts.map +1 -0
  43. package/esm/models/errors/create-post-error-response.js +55 -0
  44. package/esm/models/errors/create-post-error-response.js.map +1 -0
  45. package/esm/models/errors/delete-post-error-response.d.ts +20 -0
  46. package/esm/models/errors/delete-post-error-response.d.ts.map +1 -0
  47. package/esm/models/errors/delete-post-error-response.js +34 -0
  48. package/esm/models/errors/delete-post-error-response.js.map +1 -0
  49. package/esm/models/errors/get-post-error-response.d.ts +20 -0
  50. package/esm/models/errors/get-post-error-response.d.ts.map +1 -0
  51. package/esm/models/errors/get-post-error-response.js +34 -0
  52. package/esm/models/errors/get-post-error-response.js.map +1 -0
  53. package/esm/models/errors/index.d.ts +3 -0
  54. package/esm/models/errors/index.d.ts.map +1 -1
  55. package/esm/models/errors/index.js +3 -0
  56. package/esm/models/errors/index.js.map +1 -1
  57. package/esm/models/facebook-input.d.ts +33 -0
  58. package/esm/models/facebook-input.d.ts.map +1 -0
  59. package/esm/models/facebook-input.js +18 -0
  60. package/esm/models/facebook-input.js.map +1 -0
  61. package/esm/models/facebook-post.d.ts +43 -0
  62. package/esm/models/facebook-post.d.ts.map +1 -0
  63. package/esm/models/facebook-post.js +26 -0
  64. package/esm/models/facebook-post.js.map +1 -0
  65. package/esm/models/get-post-error-code.d.ts +10 -0
  66. package/esm/models/get-post-error-code.d.ts.map +1 -0
  67. package/esm/models/get-post-error-code.js +11 -0
  68. package/esm/models/get-post-error-code.js.map +1 -0
  69. package/esm/models/health-response.d.ts +2 -2
  70. package/esm/models/health-response.d.ts.map +1 -1
  71. package/esm/models/health-response.js +1 -1
  72. package/esm/models/health-response.js.map +1 -1
  73. package/esm/models/index.d.ts +37 -34
  74. package/esm/models/index.d.ts.map +1 -1
  75. package/esm/models/index.js +37 -34
  76. package/esm/models/index.js.map +1 -1
  77. package/esm/models/instagram-input.d.ts +31 -0
  78. package/esm/models/instagram-input.d.ts.map +1 -0
  79. package/esm/models/instagram-input.js +17 -0
  80. package/esm/models/instagram-input.js.map +1 -0
  81. package/esm/models/instagram-post.d.ts +42 -0
  82. package/esm/models/instagram-post.d.ts.map +1 -0
  83. package/esm/models/instagram-post.js +25 -0
  84. package/esm/models/instagram-post.js.map +1 -0
  85. package/esm/models/linked-in-input.d.ts +28 -0
  86. package/esm/models/linked-in-input.d.ts.map +1 -0
  87. package/esm/models/linked-in-input.js +15 -0
  88. package/esm/models/linked-in-input.js.map +1 -0
  89. package/esm/models/linked-in-pages-input.d.ts +28 -0
  90. package/esm/models/linked-in-pages-input.d.ts.map +1 -0
  91. package/esm/models/linked-in-pages-input.js +15 -0
  92. package/esm/models/linked-in-pages-input.js.map +1 -0
  93. package/esm/models/linked-in-pages-post.d.ts +40 -0
  94. package/esm/models/linked-in-pages-post.d.ts.map +1 -0
  95. package/esm/models/linked-in-pages-post.js +23 -0
  96. package/esm/models/linked-in-pages-post.js.map +1 -0
  97. package/esm/models/linked-in-post.d.ts +40 -0
  98. package/esm/models/linked-in-post.d.ts.map +1 -0
  99. package/esm/models/linked-in-post.js +23 -0
  100. package/esm/models/linked-in-post.js.map +1 -0
  101. package/esm/models/media-library-post-content-media-input.d.ts +17 -0
  102. package/esm/models/media-library-post-content-media-input.d.ts.map +1 -0
  103. package/esm/models/media-library-post-content-media-input.js +13 -0
  104. package/esm/models/media-library-post-content-media-input.js.map +1 -0
  105. package/esm/models/media-library-post-content-media.d.ts +31 -0
  106. package/esm/models/media-library-post-content-media.d.ts.map +1 -0
  107. package/esm/models/media-library-post-content-media.js +25 -0
  108. package/esm/models/media-library-post-content-media.js.map +1 -0
  109. package/esm/models/operations/delete-post.d.ts +15 -0
  110. package/esm/models/operations/delete-post.d.ts.map +1 -0
  111. package/esm/models/operations/delete-post.js +12 -0
  112. package/esm/models/operations/delete-post.js.map +1 -0
  113. package/esm/models/operations/get-post.d.ts +15 -0
  114. package/esm/models/operations/get-post.d.ts.map +1 -0
  115. package/esm/models/operations/get-post.js +12 -0
  116. package/esm/models/operations/get-post.js.map +1 -0
  117. package/esm/models/operations/index.d.ts +2 -0
  118. package/esm/models/operations/index.d.ts.map +1 -1
  119. package/esm/models/operations/index.js +2 -0
  120. package/esm/models/operations/index.js.map +1 -1
  121. package/esm/models/pinterest-input.d.ts +30 -0
  122. package/esm/models/pinterest-input.d.ts.map +1 -0
  123. package/esm/models/pinterest-input.js +16 -0
  124. package/esm/models/pinterest-input.js.map +1 -0
  125. package/esm/models/pinterest-post.d.ts +41 -0
  126. package/esm/models/pinterest-post.d.ts.map +1 -0
  127. package/esm/models/pinterest-post.js +24 -0
  128. package/esm/models/pinterest-post.js.map +1 -0
  129. package/esm/models/pinterest-social-account-platform-specific-inputs.d.ts +10 -2
  130. package/esm/models/pinterest-social-account-platform-specific-inputs.d.ts.map +1 -1
  131. package/esm/models/pinterest-social-account-platform-specific-inputs.js +2 -2
  132. package/esm/models/pinterest-social-account-platform-specific-inputs.js.map +1 -1
  133. package/esm/models/post-content-item-input.d.ts +18 -0
  134. package/esm/models/post-content-item-input.d.ts.map +1 -0
  135. package/esm/models/post-content-item-input.js +14 -0
  136. package/esm/models/post-content-item-input.js.map +1 -0
  137. package/esm/models/post-content-item.d.ts +15 -0
  138. package/esm/models/post-content-item.d.ts.map +1 -0
  139. package/esm/models/post-content-item.js +16 -0
  140. package/esm/models/post-content-item.js.map +1 -0
  141. package/esm/models/post-content-media-input.d.ts +14 -0
  142. package/esm/models/post-content-media-input.d.ts.map +1 -0
  143. package/esm/models/post-content-media-input.js +10 -0
  144. package/esm/models/post-content-media-input.js.map +1 -0
  145. package/esm/models/post-content-media.d.ts +14 -0
  146. package/esm/models/post-content-media.d.ts.map +1 -0
  147. package/esm/models/post-content-media.js +11 -0
  148. package/esm/models/post-content-media.js.map +1 -0
  149. package/esm/models/post-schedule.d.ts +17 -0
  150. package/esm/models/post-schedule.d.ts.map +1 -0
  151. package/esm/models/post-schedule.js +28 -0
  152. package/esm/models/post-schedule.js.map +1 -0
  153. package/esm/models/post.d.ts +14 -44
  154. package/esm/models/post.d.ts.map +1 -1
  155. package/esm/models/post.js +8 -18
  156. package/esm/models/post.js.map +1 -1
  157. package/esm/models/publish-now-post-schedule.d.ts +17 -0
  158. package/esm/models/publish-now-post-schedule.d.ts.map +1 -0
  159. package/esm/models/publish-now-post-schedule.js +21 -0
  160. package/esm/models/publish-now-post-schedule.js.map +1 -0
  161. package/esm/models/schedule-for-later-post-schedule.d.ts +22 -0
  162. package/esm/models/schedule-for-later-post-schedule.d.ts.map +1 -0
  163. package/esm/models/schedule-for-later-post-schedule.js +23 -0
  164. package/esm/models/schedule-for-later-post-schedule.js.map +1 -0
  165. package/esm/models/social-account-platform-inputs.d.ts +0 -5
  166. package/esm/models/social-account-platform-inputs.d.ts.map +1 -1
  167. package/esm/models/social-account-platform-inputs.js +0 -2
  168. package/esm/models/social-account-platform-inputs.js.map +1 -1
  169. package/esm/models/social-account-post.d.ts +17 -0
  170. package/esm/models/social-account-post.d.ts.map +1 -0
  171. package/esm/models/social-account-post.js +28 -0
  172. package/esm/models/social-account-post.js.map +1 -0
  173. package/esm/models/social-account-target-input.d.ts +16 -0
  174. package/esm/models/social-account-target-input.d.ts.map +1 -0
  175. package/esm/models/social-account-target-input.js +27 -0
  176. package/esm/models/social-account-target-input.js.map +1 -0
  177. package/esm/models/tik-tok-input.d.ts +90 -0
  178. package/esm/models/tik-tok-input.d.ts.map +1 -0
  179. package/esm/models/tik-tok-input.js +26 -0
  180. package/esm/models/tik-tok-input.js.map +1 -0
  181. package/esm/models/tik-tok-post.d.ts +93 -0
  182. package/esm/models/tik-tok-post.d.ts.map +1 -0
  183. package/esm/models/tik-tok-post.js +35 -0
  184. package/esm/models/tik-tok-post.js.map +1 -0
  185. package/esm/models/tik-tok-social-account-platform-specific-inputs.d.ts +26 -2
  186. package/esm/models/tik-tok-social-account-platform-specific-inputs.d.ts.map +1 -1
  187. package/esm/models/tik-tok-social-account-platform-specific-inputs.js +6 -2
  188. package/esm/models/tik-tok-social-account-platform-specific-inputs.js.map +1 -1
  189. package/esm/models/upload-session-aborted-status.d.ts +14 -0
  190. package/esm/models/upload-session-aborted-status.d.ts.map +1 -0
  191. package/esm/models/upload-session-aborted-status.js +15 -0
  192. package/esm/models/upload-session-aborted-status.js.map +1 -0
  193. package/esm/models/upload-session-failed-status.d.ts +22 -0
  194. package/esm/models/upload-session-failed-status.d.ts.map +1 -0
  195. package/esm/models/upload-session-failed-status.js +17 -0
  196. package/esm/models/upload-session-failed-status.js.map +1 -0
  197. package/esm/models/upload-session-initiated-status.d.ts +14 -0
  198. package/esm/models/upload-session-initiated-status.d.ts.map +1 -0
  199. package/esm/models/upload-session-initiated-status.js +15 -0
  200. package/esm/models/upload-session-initiated-status.js.map +1 -0
  201. package/esm/models/upload-session-ready-status.d.ts +18 -0
  202. package/esm/models/upload-session-ready-status.d.ts.map +1 -0
  203. package/esm/models/upload-session-ready-status.js +16 -0
  204. package/esm/models/upload-session-ready-status.js.map +1 -0
  205. package/esm/models/upload-session-status.d.ts +7 -11
  206. package/esm/models/upload-session-status.d.ts.map +1 -1
  207. package/esm/models/upload-session-status.js +12 -9
  208. package/esm/models/upload-session-status.js.map +1 -1
  209. package/esm/models/upload-session-uploaded-status.d.ts +14 -0
  210. package/esm/models/upload-session-uploaded-status.d.ts.map +1 -0
  211. package/esm/models/upload-session-uploaded-status.js +15 -0
  212. package/esm/models/upload-session-uploaded-status.js.map +1 -0
  213. package/esm/models/validation-error.d.ts +4 -2
  214. package/esm/models/validation-error.d.ts.map +1 -1
  215. package/esm/models/validation-error.js +1 -2
  216. package/esm/models/validation-error.js.map +1 -1
  217. package/esm/models/x-input.d.ts +28 -0
  218. package/esm/models/x-input.d.ts.map +1 -0
  219. package/esm/models/x-input.js +16 -0
  220. package/esm/models/x-input.js.map +1 -0
  221. package/esm/models/x-post.d.ts +40 -0
  222. package/esm/models/x-post.d.ts.map +1 -0
  223. package/esm/models/x-post.js +23 -0
  224. package/esm/models/x-post.js.map +1 -0
  225. package/esm/models/you-tube-input.d.ts +37 -0
  226. package/esm/models/you-tube-input.d.ts.map +1 -0
  227. package/esm/models/you-tube-input.js +20 -0
  228. package/esm/models/you-tube-input.js.map +1 -0
  229. package/esm/models/you-tube-post.d.ts +45 -0
  230. package/esm/models/you-tube-post.d.ts.map +1 -0
  231. package/esm/models/you-tube-post.js +29 -0
  232. package/esm/models/you-tube-post.js.map +1 -0
  233. package/esm/sdk/posts.d.ts +15 -27
  234. package/esm/sdk/posts.d.ts.map +1 -1
  235. package/esm/sdk/posts.js +20 -36
  236. package/esm/sdk/posts.js.map +1 -1
  237. package/esm/sdk/social-accounts.d.ts +2 -1
  238. package/esm/sdk/social-accounts.d.ts.map +1 -1
  239. package/esm/sdk/social-accounts.js +2 -1
  240. package/esm/sdk/social-accounts.js.map +1 -1
  241. package/jsr.json +1 -1
  242. package/package.json +3 -3
  243. package/src/funcs/{posts-delete-posts.ts → posts-create-post.ts} +27 -16
  244. package/src/funcs/{posts-create-posts.ts → posts-delete-post.ts} +36 -24
  245. package/src/funcs/{posts-list-posts.ts → posts-get-post.ts} +34 -21
  246. package/src/funcs/social-accounts-get-social-account-platform-inputs.ts +2 -1
  247. package/src/lib/config.ts +2 -2
  248. package/src/models/{create-post-failure-code.ts → create-post-error-code.ts} +8 -7
  249. package/src/models/create-post-request.ts +67 -0
  250. package/src/models/{delete-post-failure-code.ts → delete-post-error-code.ts} +5 -5
  251. package/src/models/delivery-status.ts +0 -5
  252. package/src/models/draft-post-schedule.ts +50 -0
  253. package/src/models/errors/create-post-error-response.ts +89 -0
  254. package/src/models/errors/delete-post-error-response.ts +53 -0
  255. package/src/models/errors/get-post-error-response.ts +53 -0
  256. package/src/models/errors/index.ts +3 -0
  257. package/src/models/facebook-input.ts +58 -0
  258. package/src/models/facebook-post.ts +80 -0
  259. package/src/models/get-post-error-code.ts +19 -0
  260. package/src/models/health-response.ts +3 -3
  261. package/src/models/index.ts +37 -34
  262. package/src/models/instagram-input.ts +55 -0
  263. package/src/models/instagram-post.ts +80 -0
  264. package/src/models/linked-in-input.ts +48 -0
  265. package/src/models/linked-in-pages-input.ts +52 -0
  266. package/src/models/linked-in-pages-post.ts +74 -0
  267. package/src/models/linked-in-post.ts +72 -0
  268. package/src/models/media-library-post-content-media-input.ts +38 -0
  269. package/src/models/media-library-post-content-media.ts +60 -0
  270. package/src/models/operations/delete-post.ts +33 -0
  271. package/src/models/operations/get-post.ts +29 -0
  272. package/src/models/operations/index.ts +2 -0
  273. package/src/models/pinterest-input.ts +51 -0
  274. package/src/models/pinterest-post.ts +76 -0
  275. package/src/models/pinterest-social-account-platform-specific-inputs.ts +13 -5
  276. package/src/models/post-content-item-input.ts +41 -0
  277. package/src/models/post-content-item.ts +40 -0
  278. package/src/models/post-content-media-input.ts +35 -0
  279. package/src/models/post-content-media.ts +35 -0
  280. package/src/models/post-schedule.ts +70 -0
  281. package/src/models/post.ts +23 -65
  282. package/src/models/publish-now-post-schedule.ts +50 -0
  283. package/src/models/schedule-for-later-post-schedule.ts +59 -0
  284. package/src/models/social-account-platform-inputs.ts +0 -9
  285. package/src/models/social-account-post.ts +63 -0
  286. package/src/models/social-account-target-input.ts +85 -0
  287. package/src/models/tik-tok-input.ts +125 -0
  288. package/src/models/tik-tok-post.ts +140 -0
  289. package/src/models/tik-tok-social-account-platform-specific-inputs.ts +33 -5
  290. package/src/models/upload-session-aborted-status.ts +36 -0
  291. package/src/models/upload-session-failed-status.ts +46 -0
  292. package/src/models/upload-session-initiated-status.ts +36 -0
  293. package/src/models/upload-session-ready-status.ts +41 -0
  294. package/src/models/upload-session-status.ts +34 -20
  295. package/src/models/upload-session-uploaded-status.ts +36 -0
  296. package/src/models/validation-error.ts +5 -6
  297. package/src/models/x-input.ts +46 -0
  298. package/src/models/x-post.ts +71 -0
  299. package/src/models/you-tube-input.ts +64 -0
  300. package/src/models/you-tube-post.ts +84 -0
  301. package/src/sdk/posts.ts +27 -50
  302. package/src/sdk/social-accounts.ts +2 -1
  303. package/src/funcs/posts-update-posts.ts +0 -165
  304. package/src/models/create-post-failure-result.ts +0 -68
  305. package/src/models/create-post-item.ts +0 -73
  306. package/src/models/create-post-result.ts +0 -42
  307. package/src/models/create-post-success-result.ts +0 -50
  308. package/src/models/create-posts-response.ts +0 -37
  309. package/src/models/delete-post-failure-result.ts +0 -44
  310. package/src/models/delete-post-result.ts +0 -42
  311. package/src/models/delete-post-success-result.ts +0 -36
  312. package/src/models/delete-posts-response.ts +0 -37
  313. package/src/models/facebook-specifics.ts +0 -63
  314. package/src/models/instagram-specifics.ts +0 -59
  315. package/src/models/linked-in-pages-specifics.ts +0 -50
  316. package/src/models/linked-in-specifics.ts +0 -50
  317. package/src/models/list-posts-request.ts +0 -68
  318. package/src/models/list-posts-response.ts +0 -37
  319. package/src/models/pinterest-account-platform-inputs.ts +0 -42
  320. package/src/models/pinterest-specifics.ts +0 -54
  321. package/src/models/platform-specifics.ts +0 -129
  322. package/src/models/post-media.ts +0 -56
  323. package/src/models/tik-tok-account-platform-inputs.ts +0 -63
  324. package/src/models/tik-tok-specifics.ts +0 -94
  325. package/src/models/update-post-failure-code.ts +0 -23
  326. package/src/models/update-post-failure-result.ts +0 -68
  327. package/src/models/update-post-item.ts +0 -61
  328. package/src/models/update-post-result.ts +0 -42
  329. package/src/models/update-post-success-result.ts +0 -45
  330. package/src/models/update-posts-response.ts +0 -37
  331. package/src/models/upload-session-status-value.ts +0 -24
  332. package/src/models/validation-field.ts +0 -29
  333. package/src/models/validation-warning.ts +0 -37
  334. package/src/models/x-specifics.ts +0 -44
  335. package/src/models/you-tube-specifics.ts +0 -71
@@ -6,20 +6,16 @@ import * as z from "zod/v4-mini";
6
6
  import { safeParse } from "../lib/schemas.js";
7
7
  import { Result as SafeParseResult } from "../types/fp.js";
8
8
  import * as types from "../types/primitives.js";
9
- import {
10
- DeliveryStatus,
11
- DeliveryStatus$inboundSchema,
12
- } from "./delivery-status.js";
13
9
  import { SDKValidationError } from "./errors/sdk-validation-error.js";
14
10
  import {
15
- PlatformSpecifics,
16
- PlatformSpecifics$inboundSchema,
17
- } from "./platform-specifics.js";
18
- import { PostMedia, PostMedia$inboundSchema } from "./post-media.js";
11
+ PostContentItem,
12
+ PostContentItem$inboundSchema,
13
+ } from "./post-content-item.js";
14
+ import { PostSchedule, PostSchedule$inboundSchema } from "./post-schedule.js";
19
15
  import {
20
- SocialPlatform,
21
- SocialPlatform$inboundSchema,
22
- } from "./social-platform.js";
16
+ SocialAccountPost,
17
+ SocialAccountPost$inboundSchema,
18
+ } from "./social-account-post.js";
23
19
 
24
20
  export type Post = {
25
21
  /**
@@ -27,77 +23,39 @@ export type Post = {
27
23
  */
28
24
  id: string;
29
25
  /**
30
- * Project identifier.
26
+ * Project identifier derived from the selected social accounts.
31
27
  */
32
28
  projectId: string;
33
29
  /**
34
- * Connected social account identifier.
35
- */
36
- socialAccountId: string;
37
- /**
38
- * Social platform supported by WoopSocial.
39
- */
40
- platform: SocialPlatform;
41
- /**
42
- * Display name or username for the connected account.
43
- */
44
- username: string;
45
- /**
46
- * Delivery lifecycle status for a post.
30
+ * Post content expressed as thread items.
47
31
  *
48
32
  * @remarks
49
33
  *
50
- * `NOT_STARTED`: The post exists and is scheduled, but delivery has not started yet.
51
- * `SENDING`: Delivery is currently in progress.
52
- * `SENT`: Delivery completed successfully.
53
- * `FAILED`: Delivery completed unsuccessfully.
54
- */
55
- deliveryStatus: DeliveryStatus;
56
- /**
57
- * Effective UTC time when the post is or was scheduled to publish.
58
- */
59
- scheduledForUTC: Date;
60
- /**
61
- * UTC time when delivery completed successfully or failed.
62
- */
63
- sentAt?: Date | undefined;
64
- title?: string | undefined;
65
- description?: string | undefined;
66
- firstComment?: string | undefined;
67
- media?: Array<PostMedia> | undefined;
68
- /**
69
- * Platform-specific publishing options. The `platform` value must match the publishing account's platform.
34
+ * The array exists for future thread support. Currently exactly one item
35
+ * is returned.
70
36
  */
71
- platformSpecifics: PlatformSpecifics;
37
+ content: Array<PostContentItem>;
38
+ schedule: PostSchedule;
39
+ socialAccounts: Array<SocialAccountPost>;
72
40
  /**
73
- * ID of the published post on the external social media platform.
41
+ * UTC time when the post was created.
74
42
  */
75
- externalPostId?: string | undefined;
43
+ createdAt: Date;
76
44
  /**
77
- * URL of the published post on the external social media platform.
45
+ * UTC time when the post was last updated.
78
46
  */
79
- externalPostUrl?: string | undefined;
80
- errorMessage?: string | undefined;
47
+ updatedAt: Date;
81
48
  };
82
49
 
83
50
  /** @internal */
84
51
  export const Post$inboundSchema: z.ZodMiniType<Post, unknown> = z.object({
85
52
  id: types.string(),
86
53
  projectId: types.string(),
87
- socialAccountId: types.string(),
88
- platform: SocialPlatform$inboundSchema,
89
- username: types.string(),
90
- deliveryStatus: DeliveryStatus$inboundSchema,
91
- scheduledForUTC: types.date(),
92
- sentAt: types.optional(types.date()),
93
- title: types.optional(types.string()),
94
- description: types.optional(types.string()),
95
- firstComment: types.optional(types.string()),
96
- media: types.optional(z.array(PostMedia$inboundSchema)),
97
- platformSpecifics: PlatformSpecifics$inboundSchema,
98
- externalPostId: types.optional(types.string()),
99
- externalPostUrl: types.optional(types.string()),
100
- errorMessage: types.optional(types.string()),
54
+ content: z.array(PostContentItem$inboundSchema),
55
+ schedule: PostSchedule$inboundSchema,
56
+ socialAccounts: z.array(SocialAccountPost$inboundSchema),
57
+ createdAt: types.date(),
58
+ updatedAt: types.date(),
101
59
  });
102
60
 
103
61
  export function postFromJSON(
@@ -0,0 +1,50 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import * as types from "../types/primitives.js";
9
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
10
+
11
+ export type PublishNowPostSchedule = {
12
+ type: "PUBLISH_NOW";
13
+ };
14
+
15
+ /** @internal */
16
+ export const PublishNowPostSchedule$inboundSchema: z.ZodMiniType<
17
+ PublishNowPostSchedule,
18
+ unknown
19
+ > = z.object({
20
+ type: types.literal("PUBLISH_NOW"),
21
+ });
22
+ /** @internal */
23
+ export type PublishNowPostSchedule$Outbound = {
24
+ type: "PUBLISH_NOW";
25
+ };
26
+
27
+ /** @internal */
28
+ export const PublishNowPostSchedule$outboundSchema: z.ZodMiniType<
29
+ PublishNowPostSchedule$Outbound,
30
+ PublishNowPostSchedule
31
+ > = z.object({
32
+ type: z.literal("PUBLISH_NOW"),
33
+ });
34
+
35
+ export function publishNowPostScheduleToJSON(
36
+ publishNowPostSchedule: PublishNowPostSchedule,
37
+ ): string {
38
+ return JSON.stringify(
39
+ PublishNowPostSchedule$outboundSchema.parse(publishNowPostSchedule),
40
+ );
41
+ }
42
+ export function publishNowPostScheduleFromJSON(
43
+ jsonString: string,
44
+ ): SafeParseResult<PublishNowPostSchedule, SDKValidationError> {
45
+ return safeParse(
46
+ jsonString,
47
+ (x) => PublishNowPostSchedule$inboundSchema.parse(JSON.parse(x)),
48
+ `Failed to parse 'PublishNowPostSchedule' from JSON`,
49
+ );
50
+ }
@@ -0,0 +1,59 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import * as types from "../types/primitives.js";
9
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
10
+
11
+ export type ScheduleForLaterPostSchedule = {
12
+ type: "SCHEDULE_FOR_LATER";
13
+ /**
14
+ * UTC time (ISO 8601) when the post should be published.
15
+ */
16
+ scheduledFor: Date;
17
+ };
18
+
19
+ /** @internal */
20
+ export const ScheduleForLaterPostSchedule$inboundSchema: z.ZodMiniType<
21
+ ScheduleForLaterPostSchedule,
22
+ unknown
23
+ > = z.object({
24
+ type: types.literal("SCHEDULE_FOR_LATER"),
25
+ scheduledFor: types.date(),
26
+ });
27
+ /** @internal */
28
+ export type ScheduleForLaterPostSchedule$Outbound = {
29
+ type: "SCHEDULE_FOR_LATER";
30
+ scheduledFor: string;
31
+ };
32
+
33
+ /** @internal */
34
+ export const ScheduleForLaterPostSchedule$outboundSchema: z.ZodMiniType<
35
+ ScheduleForLaterPostSchedule$Outbound,
36
+ ScheduleForLaterPostSchedule
37
+ > = z.object({
38
+ type: z.literal("SCHEDULE_FOR_LATER"),
39
+ scheduledFor: z.pipe(z.date(), z.transform(v => v.toISOString())),
40
+ });
41
+
42
+ export function scheduleForLaterPostScheduleToJSON(
43
+ scheduleForLaterPostSchedule: ScheduleForLaterPostSchedule,
44
+ ): string {
45
+ return JSON.stringify(
46
+ ScheduleForLaterPostSchedule$outboundSchema.parse(
47
+ scheduleForLaterPostSchedule,
48
+ ),
49
+ );
50
+ }
51
+ export function scheduleForLaterPostScheduleFromJSON(
52
+ jsonString: string,
53
+ ): SafeParseResult<ScheduleForLaterPostSchedule, SDKValidationError> {
54
+ return safeParse(
55
+ jsonString,
56
+ (x) => ScheduleForLaterPostSchedule$inboundSchema.parse(JSON.parse(x)),
57
+ `Failed to parse 'ScheduleForLaterPostSchedule' from JSON`,
58
+ );
59
+ }
@@ -11,20 +11,12 @@ import {
11
11
  SocialAccountPlatformSpecificInputs,
12
12
  SocialAccountPlatformSpecificInputs$inboundSchema,
13
13
  } from "./social-account-platform-specific-inputs.js";
14
- import {
15
- SocialPlatform,
16
- SocialPlatform$inboundSchema,
17
- } from "./social-platform.js";
18
14
 
19
15
  export type SocialAccountPlatformInputs = {
20
16
  /**
21
17
  * Connected social account identifier.
22
18
  */
23
19
  socialAccountId: string;
24
- /**
25
- * Social platform supported by WoopSocial.
26
- */
27
- platform: SocialPlatform;
28
20
  platformSpecificInputs: SocialAccountPlatformSpecificInputs;
29
21
  };
30
22
 
@@ -34,7 +26,6 @@ export const SocialAccountPlatformInputs$inboundSchema: z.ZodMiniType<
34
26
  unknown
35
27
  > = z.object({
36
28
  socialAccountId: types.string(),
37
- platform: SocialPlatform$inboundSchema,
38
29
  platformSpecificInputs: SocialAccountPlatformSpecificInputs$inboundSchema,
39
30
  });
40
31
 
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import * as discriminatedUnionTypes from "../types/discriminated-union.js";
8
+ import { discriminatedUnion } from "../types/discriminated-union.js";
9
+ import { Result as SafeParseResult } from "../types/fp.js";
10
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
11
+ import { FacebookPost, FacebookPost$inboundSchema } from "./facebook-post.js";
12
+ import {
13
+ InstagramPost,
14
+ InstagramPost$inboundSchema,
15
+ } from "./instagram-post.js";
16
+ import {
17
+ LinkedInPagesPost,
18
+ LinkedInPagesPost$inboundSchema,
19
+ } from "./linked-in-pages-post.js";
20
+ import { LinkedInPost, LinkedInPost$inboundSchema } from "./linked-in-post.js";
21
+ import {
22
+ PinterestPost,
23
+ PinterestPost$inboundSchema,
24
+ } from "./pinterest-post.js";
25
+ import { TikTokPost, TikTokPost$inboundSchema } from "./tik-tok-post.js";
26
+ import { XPost, XPost$inboundSchema } from "./x-post.js";
27
+ import { YouTubePost, YouTubePost$inboundSchema } from "./you-tube-post.js";
28
+
29
+ export type SocialAccountPost =
30
+ | PinterestPost
31
+ | InstagramPost
32
+ | FacebookPost
33
+ | TikTokPost
34
+ | YouTubePost
35
+ | XPost
36
+ | LinkedInPost
37
+ | LinkedInPagesPost
38
+ | discriminatedUnionTypes.Unknown<"platform">;
39
+
40
+ /** @internal */
41
+ export const SocialAccountPost$inboundSchema: z.ZodMiniType<
42
+ SocialAccountPost,
43
+ unknown
44
+ > = discriminatedUnion("platform", {
45
+ PINTEREST: PinterestPost$inboundSchema,
46
+ INSTAGRAM: InstagramPost$inboundSchema,
47
+ FACEBOOK: FacebookPost$inboundSchema,
48
+ TIKTOK: TikTokPost$inboundSchema,
49
+ YOUTUBE: YouTubePost$inboundSchema,
50
+ X: XPost$inboundSchema,
51
+ LINKEDIN: LinkedInPost$inboundSchema,
52
+ LINKEDIN_PAGES: LinkedInPagesPost$inboundSchema,
53
+ });
54
+
55
+ export function socialAccountPostFromJSON(
56
+ jsonString: string,
57
+ ): SafeParseResult<SocialAccountPost, SDKValidationError> {
58
+ return safeParse(
59
+ jsonString,
60
+ (x) => SocialAccountPost$inboundSchema.parse(JSON.parse(x)),
61
+ `Failed to parse 'SocialAccountPost' from JSON`,
62
+ );
63
+ }
@@ -0,0 +1,85 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import {
7
+ FacebookInput,
8
+ FacebookInput$Outbound,
9
+ FacebookInput$outboundSchema,
10
+ } from "./facebook-input.js";
11
+ import {
12
+ InstagramInput,
13
+ InstagramInput$Outbound,
14
+ InstagramInput$outboundSchema,
15
+ } from "./instagram-input.js";
16
+ import {
17
+ LinkedInInput,
18
+ LinkedInInput$Outbound,
19
+ LinkedInInput$outboundSchema,
20
+ } from "./linked-in-input.js";
21
+ import {
22
+ LinkedInPagesInput,
23
+ LinkedInPagesInput$Outbound,
24
+ LinkedInPagesInput$outboundSchema,
25
+ } from "./linked-in-pages-input.js";
26
+ import {
27
+ PinterestInput,
28
+ PinterestInput$Outbound,
29
+ PinterestInput$outboundSchema,
30
+ } from "./pinterest-input.js";
31
+ import {
32
+ TikTokInput,
33
+ TikTokInput$Outbound,
34
+ TikTokInput$outboundSchema,
35
+ } from "./tik-tok-input.js";
36
+ import { XInput, XInput$Outbound, XInput$outboundSchema } from "./x-input.js";
37
+ import {
38
+ YouTubeInput,
39
+ YouTubeInput$Outbound,
40
+ YouTubeInput$outboundSchema,
41
+ } from "./you-tube-input.js";
42
+
43
+ export type SocialAccountTargetInput =
44
+ | PinterestInput
45
+ | InstagramInput
46
+ | FacebookInput
47
+ | TikTokInput
48
+ | YouTubeInput
49
+ | XInput
50
+ | LinkedInInput
51
+ | LinkedInPagesInput;
52
+
53
+ /** @internal */
54
+ export type SocialAccountTargetInput$Outbound =
55
+ | PinterestInput$Outbound
56
+ | InstagramInput$Outbound
57
+ | FacebookInput$Outbound
58
+ | TikTokInput$Outbound
59
+ | YouTubeInput$Outbound
60
+ | XInput$Outbound
61
+ | LinkedInInput$Outbound
62
+ | LinkedInPagesInput$Outbound;
63
+
64
+ /** @internal */
65
+ export const SocialAccountTargetInput$outboundSchema: z.ZodMiniType<
66
+ SocialAccountTargetInput$Outbound,
67
+ SocialAccountTargetInput
68
+ > = z.union([
69
+ PinterestInput$outboundSchema,
70
+ InstagramInput$outboundSchema,
71
+ FacebookInput$outboundSchema,
72
+ TikTokInput$outboundSchema,
73
+ YouTubeInput$outboundSchema,
74
+ XInput$outboundSchema,
75
+ LinkedInInput$outboundSchema,
76
+ LinkedInPagesInput$outboundSchema,
77
+ ]);
78
+
79
+ export function socialAccountTargetInputToJSON(
80
+ socialAccountTargetInput: SocialAccountTargetInput,
81
+ ): string {
82
+ return JSON.stringify(
83
+ SocialAccountTargetInput$outboundSchema.parse(socialAccountTargetInput),
84
+ );
85
+ }
@@ -0,0 +1,125 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import {
7
+ PostContentItemInput,
8
+ PostContentItemInput$Outbound,
9
+ PostContentItemInput$outboundSchema,
10
+ } from "./post-content-item-input.js";
11
+ import {
12
+ TikTokPostType,
13
+ TikTokPostType$outboundSchema,
14
+ } from "./tik-tok-post-type.js";
15
+ import {
16
+ TikTokPrivacyLevel,
17
+ TikTokPrivacyLevel$outboundSchema,
18
+ } from "./tik-tok-privacy-level.js";
19
+
20
+ export type TikTokInput = {
21
+ platform: "TIKTOK";
22
+ /**
23
+ * Connected social account identifier.
24
+ */
25
+ socialAccountId: string;
26
+ /**
27
+ * Post content expressed as thread items.
28
+ *
29
+ * @remarks
30
+ *
31
+ * The array exists for future thread support. Currently exactly one item
32
+ * is supported.
33
+ */
34
+ contentOverride?: Array<PostContentItemInput> | undefined;
35
+ postType: TikTokPostType;
36
+ privacyLevel: TikTokPrivacyLevel;
37
+ /**
38
+ * Whether comments should be allowed for this TikTok post.
39
+ */
40
+ allowComment: boolean;
41
+ /**
42
+ * Whether duets should be allowed for this TikTok post.
43
+ *
44
+ * @remarks
45
+ *
46
+ * This field applies to `postType=VIDEO`.
47
+ *
48
+ * When `postType=PHOTO`, this field is required by the API contract
49
+ * but is not used by TikTok.
50
+ */
51
+ allowDuet: boolean;
52
+ /**
53
+ * Whether stitches should be allowed for this TikTok post.
54
+ *
55
+ * @remarks
56
+ *
57
+ * This field applies to `postType=VIDEO`.
58
+ *
59
+ * When `postType=PHOTO`, this field is required by the API contract
60
+ * but is not used by TikTok.
61
+ */
62
+ allowStitch: boolean;
63
+ /**
64
+ * Whether TikTok content disclosure should be enabled for this post.
65
+ */
66
+ contentDisclosureEnabled: boolean;
67
+ /**
68
+ * Whether the post should be disclosed as "Your brand" content on TikTok.
69
+ */
70
+ isYourBrand: boolean;
71
+ /**
72
+ * Whether the post should be disclosed as branded content on TikTok.
73
+ */
74
+ isBrandedContent: boolean;
75
+ /**
76
+ * Whether TikTok should automatically add music to this post.
77
+ *
78
+ * @remarks
79
+ *
80
+ * This field applies to `postType=PHOTO`.
81
+ *
82
+ * When `postType=VIDEO`, this field is required by the API contract
83
+ * but is not used by TikTok.
84
+ */
85
+ autoAddMusic: boolean;
86
+ };
87
+
88
+ /** @internal */
89
+ export type TikTokInput$Outbound = {
90
+ platform: "TIKTOK";
91
+ socialAccountId: string;
92
+ contentOverride?: Array<PostContentItemInput$Outbound> | undefined;
93
+ postType: string;
94
+ privacyLevel: string;
95
+ allowComment: boolean;
96
+ allowDuet: boolean;
97
+ allowStitch: boolean;
98
+ contentDisclosureEnabled: boolean;
99
+ isYourBrand: boolean;
100
+ isBrandedContent: boolean;
101
+ autoAddMusic: boolean;
102
+ };
103
+
104
+ /** @internal */
105
+ export const TikTokInput$outboundSchema: z.ZodMiniType<
106
+ TikTokInput$Outbound,
107
+ TikTokInput
108
+ > = z.object({
109
+ platform: z.literal("TIKTOK"),
110
+ socialAccountId: z.string(),
111
+ contentOverride: z.optional(z.array(PostContentItemInput$outboundSchema)),
112
+ postType: TikTokPostType$outboundSchema,
113
+ privacyLevel: TikTokPrivacyLevel$outboundSchema,
114
+ allowComment: z.boolean(),
115
+ allowDuet: z.boolean(),
116
+ allowStitch: z.boolean(),
117
+ contentDisclosureEnabled: z.boolean(),
118
+ isYourBrand: z.boolean(),
119
+ isBrandedContent: z.boolean(),
120
+ autoAddMusic: z.boolean(),
121
+ });
122
+
123
+ export function tikTokInputToJSON(tikTokInput: TikTokInput): string {
124
+ return JSON.stringify(TikTokInput$outboundSchema.parse(tikTokInput));
125
+ }
@@ -0,0 +1,140 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import * as types from "../types/primitives.js";
9
+ import {
10
+ DeliveryStatus,
11
+ DeliveryStatus$inboundSchema,
12
+ } from "./delivery-status.js";
13
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
14
+ import {
15
+ PostContentItem,
16
+ PostContentItem$inboundSchema,
17
+ } from "./post-content-item.js";
18
+ import {
19
+ TikTokPostType,
20
+ TikTokPostType$inboundSchema,
21
+ } from "./tik-tok-post-type.js";
22
+ import {
23
+ TikTokPrivacyLevel,
24
+ TikTokPrivacyLevel$inboundSchema,
25
+ } from "./tik-tok-privacy-level.js";
26
+
27
+ export type TikTokPost = {
28
+ platform: "TIKTOK";
29
+ /**
30
+ * Connected social account identifier.
31
+ */
32
+ socialAccountId: string;
33
+ /**
34
+ * Delivery lifecycle status for a post.
35
+ *
36
+ * @remarks
37
+ *
38
+ * `NOT_STARTED`: The post exists and is scheduled, but delivery has not started yet.
39
+ * `SENDING`: Delivery is currently in progress.
40
+ * `SENT`: Delivery completed successfully.
41
+ * `FAILED`: Delivery completed unsuccessfully.
42
+ */
43
+ deliveryStatus: DeliveryStatus;
44
+ /**
45
+ * Post content expressed as thread items.
46
+ *
47
+ * @remarks
48
+ *
49
+ * The array exists for future thread support. Currently exactly one item
50
+ * is returned.
51
+ */
52
+ contentOverride?: Array<PostContentItem> | undefined;
53
+ sentAt?: Date | undefined;
54
+ externalPostId?: string | undefined;
55
+ externalPostUrl?: string | undefined;
56
+ errorMessage?: string | undefined;
57
+ postType: TikTokPostType;
58
+ privacyLevel: TikTokPrivacyLevel;
59
+ /**
60
+ * Whether comments should be allowed for this TikTok post.
61
+ */
62
+ allowComment: boolean;
63
+ /**
64
+ * Whether duets should be allowed for this TikTok post.
65
+ *
66
+ * @remarks
67
+ *
68
+ * This field applies to `postType=VIDEO`.
69
+ *
70
+ * When `postType=PHOTO`, this field is required by the API contract
71
+ * but is not used by TikTok.
72
+ */
73
+ allowDuet: boolean;
74
+ /**
75
+ * Whether stitches should be allowed for this TikTok post.
76
+ *
77
+ * @remarks
78
+ *
79
+ * This field applies to `postType=VIDEO`.
80
+ *
81
+ * When `postType=PHOTO`, this field is required by the API contract
82
+ * but is not used by TikTok.
83
+ */
84
+ allowStitch: boolean;
85
+ /**
86
+ * Whether TikTok content disclosure should be enabled for this post.
87
+ */
88
+ contentDisclosureEnabled: boolean;
89
+ /**
90
+ * Whether the post should be disclosed as "Your brand" content on TikTok.
91
+ */
92
+ isYourBrand: boolean;
93
+ /**
94
+ * Whether the post should be disclosed as branded content on TikTok.
95
+ */
96
+ isBrandedContent: boolean;
97
+ /**
98
+ * Whether TikTok should automatically add music to this post.
99
+ *
100
+ * @remarks
101
+ *
102
+ * This field applies to `postType=PHOTO`.
103
+ *
104
+ * When `postType=VIDEO`, this field is required by the API contract
105
+ * but is not used by TikTok.
106
+ */
107
+ autoAddMusic: boolean;
108
+ };
109
+
110
+ /** @internal */
111
+ export const TikTokPost$inboundSchema: z.ZodMiniType<TikTokPost, unknown> = z
112
+ .object({
113
+ platform: types.literal("TIKTOK"),
114
+ socialAccountId: types.string(),
115
+ deliveryStatus: DeliveryStatus$inboundSchema,
116
+ contentOverride: types.optional(z.array(PostContentItem$inboundSchema)),
117
+ sentAt: types.optional(types.date()),
118
+ externalPostId: types.optional(types.string()),
119
+ externalPostUrl: types.optional(types.string()),
120
+ errorMessage: types.optional(types.string()),
121
+ postType: TikTokPostType$inboundSchema,
122
+ privacyLevel: TikTokPrivacyLevel$inboundSchema,
123
+ allowComment: types.boolean(),
124
+ allowDuet: types.boolean(),
125
+ allowStitch: types.boolean(),
126
+ contentDisclosureEnabled: types.boolean(),
127
+ isYourBrand: types.boolean(),
128
+ isBrandedContent: types.boolean(),
129
+ autoAddMusic: types.boolean(),
130
+ });
131
+
132
+ export function tikTokPostFromJSON(
133
+ jsonString: string,
134
+ ): SafeParseResult<TikTokPost, SDKValidationError> {
135
+ return safeParse(
136
+ jsonString,
137
+ (x) => TikTokPost$inboundSchema.parse(JSON.parse(x)),
138
+ `Failed to parse 'TikTokPost' from JSON`,
139
+ );
140
+ }