@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,153 @@
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 { C as YouTubeSearchOrder, D as YouTubeVideoRating, E as YouTubeVideo, O as YouTubeVideoType, S as YouTubeSafeSearch, T as YouTubeUploadOptions, _ as YouTubeCategory, a as ListPlaylistItemsOptions, b as YouTubeLicense, c as ListPlaylistsResult, d as PlaylistItem, f as SearchVideosOptions, g as YouTubeAccountInfo, h as UpdateVideoParams, i as InitUploadSessionResult, l as ListVideosOptions, m as UpdatePlaylistParams, n as CreatePlaylistParams, o as ListPlaylistItemsResult, p as SearchVideosResult, r as InitUploadSessionParams, s as ListPlaylistsOptions, t as AddToPlaylistOptions, u as ListVideosResult, v as YouTubeCredentialData, w as YouTubeUploadMetadata, x as YouTubePlaylist, y as YouTubeCredentials } from "../types-D91N16Ym.mjs";
3
+ import { z } from "zod";
4
+ import { OAuth2Client } from "google-auth-library";
5
+
6
+ //#region src/providers/youtube/index.d.ts
7
+ declare class YouTubeProvider extends PlatformProvider {
8
+ defaultRedirectUri: string;
9
+ scopes: string[];
10
+ constructor(config?: ProviderConfig);
11
+ /**
12
+ * Create OAuth2 client with dynamic credentials
13
+ * @private
14
+ */
15
+ _createOAuthClient(clientId: string, clientSecret: string, redirectUri?: string): OAuth2Client;
16
+ /**
17
+ * Get OAuth authorization URL
18
+ * @param state - State parameter for CSRF protection
19
+ * @param credentials - OAuth credentials {clientId, clientSecret}
20
+ */
21
+ getAuthUrl(state: string, credentials?: YouTubeCredentials, _options?: AuthUrlOptions): string;
22
+ /**
23
+ * Exchange authorization code for tokens
24
+ * @param code - Authorization code
25
+ * @param credentials - OAuth credentials {clientId, clientSecret}
26
+ */
27
+ exchangeCode(code: string, credentials?: YouTubeCredentials): Promise<OAuthTokens>;
28
+ /**
29
+ * Refresh access token
30
+ * @param refreshToken - Refresh token
31
+ * @param credentials - OAuth credentials {clientId, clientSecret}
32
+ */
33
+ refreshToken(refreshToken: string, credentials?: YouTubeCredentials): Promise<OAuthTokens>;
34
+ /**
35
+ * Get account information
36
+ * @param accessToken - Access token
37
+ * @param credentials - OAuth credentials {clientId, clientSecret}
38
+ */
39
+ getAccountInfo(accessToken: string, credentials?: YouTubeCredentials): Promise<AccountInfo>;
40
+ /**
41
+ * Test credential validity
42
+ */
43
+ testCredential(credentialData: YouTubeCredentialData): Promise<TestResult>;
44
+ /**
45
+ * Build video metadata for YouTube uploads.
46
+ * Shared between initUploadSession() and uploadVideo().
47
+ *
48
+ * Supports all YouTube Data API v3 fields:
49
+ * - snippet: title, description, tags, categoryId, defaultLanguage
50
+ * - status: privacyStatus, publishAt, license, embeddable, publicStatsViewable, selfDeclaredMadeForKids
51
+ * - recordingDetails: recordingDate
52
+ */
53
+ private _buildVideoMetadata;
54
+ /**
55
+ * Initialize a resumable upload session (metadata only, no file).
56
+ * Returns a self-authenticating upload URI that the frontend can PUT to directly.
57
+ *
58
+ * Flow: Server calls this → returns uploadUri → Frontend PUTs file to uploadUri
59
+ * The upload URI is valid for ~24 hours and requires no additional auth.
60
+ */
61
+ initUploadSession(params: InitUploadSessionParams): Promise<InitUploadSessionResult>;
62
+ /**
63
+ * Upload video to YouTube (server-side).
64
+ *
65
+ * Supports two modes:
66
+ * - filePath: Read from local file (original behavior)
67
+ * - videoUrl: Stream-through from URL (no disk IO, for GCS-stored media)
68
+ */
69
+ uploadVideo(params: UploadParams): Promise<UploadResult>;
70
+ /**
71
+ * Parse a YouTube API video item into a normalized YouTubeVideo.
72
+ */
73
+ private _parseVideoItem;
74
+ /**
75
+ * Get a single video by ID.
76
+ *
77
+ * @param accessToken - OAuth access token
78
+ * @param videoId - YouTube video ID
79
+ * @param credentials - OAuth credentials { clientId, clientSecret }
80
+ * @returns Normalized video data with snippet, stats, and content details
81
+ */
82
+ getVideo(accessToken: string, videoId: string, credentials?: YouTubeCredentials): Promise<YouTubeVideo>;
83
+ /**
84
+ * List videos from the authenticated channel.
85
+ *
86
+ * Uses playlistItems.list on the channel's uploads playlist (1 quota unit per call)
87
+ * instead of search.list (100 quota units per call — avoid).
88
+ *
89
+ * For text search within videos use videos.list with a separate search flow.
90
+ */
91
+ listVideos(accessToken: string, credentials?: YouTubeCredentials, options?: ListVideosOptions): Promise<ListVideosResult>;
92
+ /**
93
+ * Update video metadata (title, description, tags, category, privacy).
94
+ *
95
+ * Only the fields provided in `params` are updated. Omitted fields are left unchanged.
96
+ * Note: You must have ownership of the video.
97
+ *
98
+ * @param accessToken - OAuth access token
99
+ * @param videoId - YouTube video ID to update
100
+ * @param params - Fields to update
101
+ * @param credentials - OAuth credentials { clientId, clientSecret }
102
+ */
103
+ updateVideo(accessToken: string, videoId: string, params: UpdateVideoParams, credentials?: YouTubeCredentials): Promise<YouTubeVideo>;
104
+ /**
105
+ * Delete a video by ID.
106
+ *
107
+ * @param accessToken - OAuth access token
108
+ * @param videoId - YouTube video ID to delete
109
+ * @param credentials - OAuth credentials { clientId, clientSecret }
110
+ */
111
+ deleteVideo(accessToken: string, videoId: string, credentials?: YouTubeCredentials): Promise<void>;
112
+ private _parsePlaylist;
113
+ private _parsePlaylistItem;
114
+ createPlaylist(accessToken: string, params: CreatePlaylistParams, credentials?: YouTubeCredentials): Promise<YouTubePlaylist>;
115
+ getPlaylist(accessToken: string, playlistId: string, credentials?: YouTubeCredentials): Promise<YouTubePlaylist>;
116
+ listPlaylists(accessToken: string, credentials?: YouTubeCredentials, options?: ListPlaylistsOptions): Promise<ListPlaylistsResult>;
117
+ updatePlaylist(accessToken: string, playlistId: string, params: UpdatePlaylistParams, credentials?: YouTubeCredentials): Promise<YouTubePlaylist>;
118
+ deletePlaylist(accessToken: string, playlistId: string, credentials?: YouTubeCredentials): Promise<void>;
119
+ addToPlaylist(accessToken: string, playlistId: string, videoId: string, credentials?: YouTubeCredentials, options?: AddToPlaylistOptions): Promise<PlaylistItem>;
120
+ removeFromPlaylist(accessToken: string, playlistItemId: string, credentials?: YouTubeCredentials): Promise<void>;
121
+ listPlaylistItems(accessToken: string, playlistId: string, credentials?: YouTubeCredentials, options?: ListPlaylistItemsOptions): Promise<ListPlaylistItemsResult>;
122
+ /**
123
+ * Search YouTube videos with comprehensive filters.
124
+ * Uses a 2-step approach: search.list → videos.list for full details.
125
+ */
126
+ searchVideos(accessToken: string, credentials?: YouTubeCredentials, options?: SearchVideosOptions): Promise<SearchVideosResult>;
127
+ /**
128
+ * Get available video categories for a region.
129
+ * @param regionCode - ISO 3166-1 alpha-2 country code (e.g. 'US', 'BD')
130
+ */
131
+ getVideoCategories(accessToken: string, regionCode: string, credentials?: YouTubeCredentials): Promise<YouTubeCategory[]>;
132
+ /**
133
+ * Rate a video (like, dislike, or remove rating).
134
+ */
135
+ rateVideo(accessToken: string, videoId: string, rating: YouTubeVideoRating, credentials?: YouTubeCredentials): Promise<void>;
136
+ /**
137
+ * Return the zod schema for runtime validation. Consumers can call
138
+ * `z.toJSONSchema(provider.getCredentialZodSchema())` to render UI forms
139
+ * or generate OpenAPI specs.
140
+ */
141
+ getCredentialZodSchema(): z.ZodType;
142
+ /**
143
+ * Get credential schema for UI (legacy CredentialField[] shape).
144
+ */
145
+ getCredentialSchema(): CredentialField[];
146
+ /**
147
+ * Get provider metadata for frontend display
148
+ */
149
+ getMetadata(): ProviderMetadata;
150
+ }
151
+ //#endregion
152
+ export { type AddToPlaylistOptions, type CreatePlaylistParams, type InitUploadSessionParams, type InitUploadSessionResult, type ListPlaylistItemsOptions, type ListPlaylistItemsResult, type ListPlaylistsOptions, type ListPlaylistsResult, type ListVideosOptions, type ListVideosResult, type PlaylistItem, type SearchVideosOptions, type SearchVideosResult, type UpdatePlaylistParams, type UpdateVideoParams, type YouTubeAccountInfo, type YouTubeCategory, type YouTubeCredentialData, type YouTubeCredentials, type YouTubeLicense, type YouTubePlaylist, YouTubeProvider, type YouTubeSafeSearch, type YouTubeSearchOrder, type YouTubeUploadMetadata, type YouTubeUploadOptions, type YouTubeVideo, type YouTubeVideoRating, type YouTubeVideoType };
153
+ //# sourceMappingURL=youtube.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"youtube.d.mts","names":[],"sources":["../../src/providers/youtube/index.ts"],"mappings":"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"}