@classytic/social 0.1.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 (121) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/LICENSE +21 -0
  3. package/README.md +368 -0
  4. package/dist/base-Bw7e52V8.mjs +246 -0
  5. package/dist/base-Bw7e52V8.mjs.map +1 -0
  6. package/dist/base-DBtKFiSX.d.mts +226 -0
  7. package/dist/base-DBtKFiSX.d.mts.map +1 -0
  8. package/dist/chunk-DQk6qfdC.mjs +18 -0
  9. package/dist/client/index.d.mts +44 -0
  10. package/dist/client/index.d.mts.map +1 -0
  11. package/dist/client/index.mjs +154 -0
  12. package/dist/client/index.mjs.map +1 -0
  13. package/dist/common/index.d.mts +3 -0
  14. package/dist/common/index.mjs +7 -0
  15. package/dist/contracts-Cdwa4zlg.d.mts +121 -0
  16. package/dist/contracts-Cdwa4zlg.d.mts.map +1 -0
  17. package/dist/contracts-lCa069IK.mjs +221 -0
  18. package/dist/contracts-lCa069IK.mjs.map +1 -0
  19. package/dist/env-Bl0cwwjC.mjs +955 -0
  20. package/dist/env-Bl0cwwjC.mjs.map +1 -0
  21. package/dist/env-DxOZHf0p.d.mts +394 -0
  22. package/dist/env-DxOZHf0p.d.mts.map +1 -0
  23. package/dist/errors-Cm6LeKf7.mjs +32 -0
  24. package/dist/errors-Cm6LeKf7.mjs.map +1 -0
  25. package/dist/facebook-l_4CghaA.mjs +95 -0
  26. package/dist/facebook-l_4CghaA.mjs.map +1 -0
  27. package/dist/http-DpcLSR1M.mjs +197 -0
  28. package/dist/http-DpcLSR1M.mjs.map +1 -0
  29. package/dist/index.d.mts +42 -0
  30. package/dist/index.d.mts.map +1 -0
  31. package/dist/index.mjs +71 -0
  32. package/dist/index.mjs.map +1 -0
  33. package/dist/instagram-BGaeUFU2.mjs +90 -0
  34. package/dist/instagram-BGaeUFU2.mjs.map +1 -0
  35. package/dist/linkedin-70whtVKa.mjs +101 -0
  36. package/dist/linkedin-70whtVKa.mjs.map +1 -0
  37. package/dist/meta-D3vcJU1c.mjs +126 -0
  38. package/dist/meta-D3vcJU1c.mjs.map +1 -0
  39. package/dist/pkce-jq5II68b.mjs +72 -0
  40. package/dist/pkce-jq5II68b.mjs.map +1 -0
  41. package/dist/polling-DZ1apXtA.mjs +25 -0
  42. package/dist/polling-DZ1apXtA.mjs.map +1 -0
  43. package/dist/providers/facebook.d.mts +135 -0
  44. package/dist/providers/facebook.d.mts.map +1 -0
  45. package/dist/providers/facebook.mjs +450 -0
  46. package/dist/providers/facebook.mjs.map +1 -0
  47. package/dist/providers/instagram.d.mts +122 -0
  48. package/dist/providers/instagram.d.mts.map +1 -0
  49. package/dist/providers/instagram.mjs +496 -0
  50. package/dist/providers/instagram.mjs.map +1 -0
  51. package/dist/providers/linkedin.d.mts +145 -0
  52. package/dist/providers/linkedin.d.mts.map +1 -0
  53. package/dist/providers/linkedin.mjs +574 -0
  54. package/dist/providers/linkedin.mjs.map +1 -0
  55. package/dist/providers/reddit.d.mts +102 -0
  56. package/dist/providers/reddit.d.mts.map +1 -0
  57. package/dist/providers/reddit.mjs +657 -0
  58. package/dist/providers/reddit.mjs.map +1 -0
  59. package/dist/providers/telegram.d.mts +139 -0
  60. package/dist/providers/telegram.d.mts.map +1 -0
  61. package/dist/providers/telegram.mjs +517 -0
  62. package/dist/providers/telegram.mjs.map +1 -0
  63. package/dist/providers/tiktok.d.mts +116 -0
  64. package/dist/providers/tiktok.d.mts.map +1 -0
  65. package/dist/providers/tiktok.mjs +676 -0
  66. package/dist/providers/tiktok.mjs.map +1 -0
  67. package/dist/providers/twitter.d.mts +150 -0
  68. package/dist/providers/twitter.d.mts.map +1 -0
  69. package/dist/providers/twitter.mjs +628 -0
  70. package/dist/providers/twitter.mjs.map +1 -0
  71. package/dist/providers/whatsapp.d.mts +79 -0
  72. package/dist/providers/whatsapp.d.mts.map +1 -0
  73. package/dist/providers/whatsapp.mjs +376 -0
  74. package/dist/providers/whatsapp.mjs.map +1 -0
  75. package/dist/providers/youtube.d.mts +153 -0
  76. package/dist/providers/youtube.d.mts.map +1 -0
  77. package/dist/providers/youtube.mjs +902 -0
  78. package/dist/providers/youtube.mjs.map +1 -0
  79. package/dist/reddit-B10kS4Se.mjs +126 -0
  80. package/dist/reddit-B10kS4Se.mjs.map +1 -0
  81. package/dist/schemas/index.d.mts +819 -0
  82. package/dist/schemas/index.d.mts.map +1 -0
  83. package/dist/schemas/index.mjs +31 -0
  84. package/dist/schemas/index.mjs.map +1 -0
  85. package/dist/security-BXhfebWm.d.mts +338 -0
  86. package/dist/security-BXhfebWm.d.mts.map +1 -0
  87. package/dist/shared-Fvc6xQku.mjs +100 -0
  88. package/dist/shared-Fvc6xQku.mjs.map +1 -0
  89. package/dist/telegram-FaUHpZgB.mjs +107 -0
  90. package/dist/telegram-FaUHpZgB.mjs.map +1 -0
  91. package/dist/tiktok-B_bMk4G-.mjs +94 -0
  92. package/dist/tiktok-B_bMk4G-.mjs.map +1 -0
  93. package/dist/twitter-BC22zfuc.mjs +98 -0
  94. package/dist/twitter-BC22zfuc.mjs.map +1 -0
  95. package/dist/types-BFE4psYI.d.mts +102 -0
  96. package/dist/types-BFE4psYI.d.mts.map +1 -0
  97. package/dist/types-Bv27tcT0.d.mts +230 -0
  98. package/dist/types-Bv27tcT0.d.mts.map +1 -0
  99. package/dist/types-BwkKyqpi.d.mts +253 -0
  100. package/dist/types-BwkKyqpi.d.mts.map +1 -0
  101. package/dist/types-CJrHMDV9.mjs +27 -0
  102. package/dist/types-CJrHMDV9.mjs.map +1 -0
  103. package/dist/types-ClbVc2rc.d.mts +117 -0
  104. package/dist/types-ClbVc2rc.d.mts.map +1 -0
  105. package/dist/types-D91N16Ym.d.mts +242 -0
  106. package/dist/types-D91N16Ym.d.mts.map +1 -0
  107. package/dist/types-DfLp_ibQ.d.mts +178 -0
  108. package/dist/types-DfLp_ibQ.d.mts.map +1 -0
  109. package/dist/types-DfjDgEoJ.d.mts +88 -0
  110. package/dist/types-DfjDgEoJ.d.mts.map +1 -0
  111. package/dist/types-Dp5Z9VBr.mjs +23 -0
  112. package/dist/types-Dp5Z9VBr.mjs.map +1 -0
  113. package/dist/types-hriBJTsU.d.mts +129 -0
  114. package/dist/types-hriBJTsU.d.mts.map +1 -0
  115. package/dist/types-rn6UuLL8.d.mts +184 -0
  116. package/dist/types-rn6UuLL8.d.mts.map +1 -0
  117. package/dist/whatsapp-CFp7ryR4.mjs +101 -0
  118. package/dist/whatsapp-CFp7ryR4.mjs.map +1 -0
  119. package/dist/youtube-Bs0fdY7H.mjs +98 -0
  120. package/dist/youtube-Bs0fdY7H.mjs.map +1 -0
  121. package/package.json +148 -0
@@ -0,0 +1,116 @@
1
+ import { d as ProviderMetadata, g as UploadResult, h as UploadParams, i as CredentialField, l as ProviderConfig, o as OAuthTokens, p as TestResult, r as AuthUrlOptions, s as PlatformProvider, t as AccountInfo } from "../base-DBtKFiSX.mjs";
2
+ import { a as TikTokCredentials, c as TikTokPrivacyLevel, d as TikTokTokenData, f as TikTokUploadPhotoParams, i as TikTokCredentialData, l as TikTokPublishStatus, m as TikTokVideo, n as ListTikTokVideosResult, o as TikTokPostInfo, p as TikTokUploadSource, r as TikTokAccountInfo, s as TikTokPrivacy, t as ListTikTokVideosOptions, u as TikTokPublishStatusResponse } from "../types-DfjDgEoJ.mjs";
3
+ import { z } from "zod";
4
+
5
+ //#region src/providers/tiktok/index.d.ts
6
+ declare class TikTokProvider extends PlatformProvider {
7
+ defaultRedirectUri: string;
8
+ scopes: string[];
9
+ /**
10
+ * PKCE verifier store keyed by `state`. TTL'd to 10 minutes; entries are
11
+ * single-use. For multi-instance deployments, persist verifiers alongside
12
+ * `state` (session/Redis) and pass them back via `exchangeCode(code, creds, state)`.
13
+ */
14
+ private codeVerifiers;
15
+ constructor(cfg?: ProviderConfig);
16
+ /**
17
+ * Get TikTok OAuth authorization URL
18
+ * Quirk: uses `client_key` (not `client_id`), comma-separated scopes
19
+ *
20
+ * @param options.environment - Both sandbox and production request the same scopes.
21
+ * Sandbox apps with "Direct Post" enabled support video.publish for test users.
22
+ */
23
+ getAuthUrl(state: string, credentials?: Record<string, any>, options?: AuthUrlOptions): string;
24
+ /**
25
+ * Exchange authorization code for tokens
26
+ * Quirk: form-urlencoded body with client_key/client_secret (not Basic auth)
27
+ */
28
+ exchangeCode(code: string, credentials?: Record<string, any>, state?: string): Promise<OAuthTokens>;
29
+ /**
30
+ * Refresh access token
31
+ */
32
+ refreshToken(refreshToken: string, credentials?: Record<string, any>): Promise<OAuthTokens>;
33
+ /**
34
+ * Revoke TikTok access token.
35
+ * Forces fresh consent screen on next authorization — ensures newly
36
+ * enabled scopes (e.g. video.publish after enabling Direct Post) are granted.
37
+ */
38
+ revokeToken(accessToken: string, credData?: Record<string, any>): Promise<void>;
39
+ /**
40
+ * Get TikTok user profile
41
+ * Quirk: requires explicit `fields` query param
42
+ */
43
+ getAccountInfo(accessToken: string): Promise<AccountInfo>;
44
+ /**
45
+ * Test credential validity
46
+ */
47
+ testCredential(credentialData: Record<string, any>): Promise<TestResult>;
48
+ /**
49
+ * Upload video to TikTok
50
+ *
51
+ * Smart mode selection:
52
+ * - videoUrl → tries PULL_FROM_URL first (zero server load, TikTok fetches directly)
53
+ * → falls back to FILE_UPLOAD if domain not verified (url_ownership_unverified)
54
+ * - filePath → always FILE_UPLOAD (local file, no URL to pull from)
55
+ *
56
+ * FILE_UPLOAD uses stream-through: fetch(url) → pipe to TikTok (no server buffering).
57
+ */
58
+ uploadVideo(params: UploadParams): Promise<UploadResult>;
59
+ /**
60
+ * Attempt PULL_FROM_URL upload. Returns result on success, null if domain not verified.
61
+ * Throws on any other error.
62
+ */
63
+ private _tryPullFromUrl;
64
+ /**
65
+ * FILE_UPLOAD with stream-through (fetch URL → pipe to TikTok, or local file → stream).
66
+ */
67
+ private _uploadViaFile;
68
+ /**
69
+ * Create a photo post on TikTok
70
+ * TikTok-specific — not in the base class.
71
+ *
72
+ * Restrictions:
73
+ * - Only JPG/JPEG/WEBP (no PNG)
74
+ * - Max 35 images per post
75
+ * - Images must be publicly accessible URLs
76
+ *
77
+ * @param params
78
+ * @param params.imageUrls - Array of public image URLs
79
+ * @param params.title - Post title (max 150 chars)
80
+ * @param params.privacy - 'public' | 'private' | 'followers' | 'friends'
81
+ * @param params.tokens - { access_token }
82
+ */
83
+ uploadPhoto(params: TikTokUploadPhotoParams): Promise<UploadResult>;
84
+ /**
85
+ * List videos for the authenticated user (cursor-based pagination).
86
+ * Requires scope: `video.list`
87
+ *
88
+ * @param accessToken - OAuth access token
89
+ * @param options.maxCount - Number of videos per page (1-20, default 20)
90
+ * @param options.cursor - Pagination cursor from a previous response
91
+ */
92
+ listVideos(accessToken: string, options?: ListTikTokVideosOptions): Promise<ListTikTokVideosResult>;
93
+ /**
94
+ * Query specific videos by their IDs.
95
+ *
96
+ * @param accessToken - OAuth access token
97
+ * @param videoIds - Array of TikTok video IDs to fetch
98
+ */
99
+ getVideos(accessToken: string, videoIds: string[]): Promise<TikTokVideo[]>;
100
+ getCredentialZodSchema(): z.ZodType;
101
+ getCredentialSchema(): CredentialField[];
102
+ getMetadata(): ProviderMetadata;
103
+ /**
104
+ * Parse a raw TikTok video API item into a normalized TikTokVideo object.
105
+ * @private
106
+ */
107
+ private _parseVideoItem;
108
+ /**
109
+ * Poll TikTok publish status until complete or failed
110
+ * @private
111
+ */
112
+ _pollPublishStatus(accessToken: string, publishId: string, maxAttempts?: number, intervalMs?: number): Promise<any>;
113
+ }
114
+ //#endregion
115
+ export { type ListTikTokVideosOptions, type ListTikTokVideosResult, type TikTokAccountInfo, type TikTokCredentialData, type TikTokCredentials, type TikTokPostInfo, type TikTokPrivacy, type TikTokPrivacyLevel, TikTokProvider, type TikTokPublishStatus, type TikTokPublishStatusResponse, type TikTokTokenData, type TikTokUploadPhotoParams, type TikTokUploadSource, type TikTokVideo };
116
+ //# sourceMappingURL=tiktok.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiktok.d.mts","names":[],"sources":["../../src/providers/tiktok/index.ts"],"mappings":";;;;;cA8Ga,cAAA,SAAuB,gBAAA;EAC3B,kBAAA;EACA,MAAA;EA0QkC;;;;;EAAA,QApQjC,aAAA;cAEI,GAAA,GAAK,cAAA;EA2nBiD;;;;;;;EAlmBlE,UAAA,CAAW,KAAA,UAAe,WAAA,GAAa,MAAA,eAA0B,OAAA,GAAU,cAAA;EAnCzB;;;;EA2D5C,YAAA,CAAa,IAAA,UAAc,WAAA,GAAa,MAAA,eAA0B,KAAA,YAAiB,OAAA,CAAQ,WAAA;;;;EA+D3F,YAAA,CAAa,YAAA,UAAsB,WAAA,GAAa,MAAA,gBAA2B,OAAA,CAAQ,WAAA;EAvF9E;;;;;EA2HL,WAAA,CAAY,WAAA,UAAqB,QAAA,GAAW,MAAA,gBAAsB,OAAA;EAnGrD;;;;EA6Hb,cAAA,CAAe,WAAA,WAAsB,OAAA,CAAQ,WAAA;EA7H8C;;;EA+J3F,cAAA,CAAe,cAAA,EAAgB,MAAA,gBAAsB,OAAA,CAAQ,UAAA;EAhG1B;;;;;;;;;;EAkJnC,WAAA,CAAY,MAAA,EAAQ,YAAA,GAAe,OAAA,CAAQ,YAAA;EApFE;;;;EAAA,QA4JrC,eAAA;EA1HqD;;;EAAA,QAmLrD,cAAA;EAjI2B;;;;;;;;;;;;;;;EAiQnC,WAAA,CAAY,MAAA,EAAQ,uBAAA,GAA0B,OAAA,CAAQ,YAAA;EAwH5C;;;;;;;;EA7CV,UAAA,CAAW,WAAA,UAAqB,OAAA,GAAU,uBAAA,GAA0B,OAAA,CAAQ,sBAAA;EA4GlF;;;;;;EA/DM,SAAA,CAAU,WAAA,UAAqB,QAAA,aAAqB,OAAA,CAAQ,WAAA;EAwClE,sBAAA,CAAA,GAA0B,CAAA,CAAE,OAAA;EAI5B,mBAAA,CAAA,GAAuB,eAAA;EAmBvB,WAAA,CAAA,GAAe,gBAAA;EAoF+G;;;;EAAA,QApBtH,eAAA;;;;;EAoBF,kBAAA,CAAmB,WAAA,UAAqB,SAAA,UAAmB,WAAA,WAA0B,UAAA,YAA4B,OAAA;AAAA"}