@olastudio/social-media-sdk 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 (76) hide show
  1. package/README.md +112 -0
  2. package/dist/adapters/expo.d.mts +19 -0
  3. package/dist/adapters/expo.d.ts +19 -0
  4. package/dist/adapters/expo.js +100 -0
  5. package/dist/adapters/expo.js.map +1 -0
  6. package/dist/adapters/expo.mjs +77 -0
  7. package/dist/adapters/expo.mjs.map +1 -0
  8. package/dist/adapters/index.d.mts +21 -0
  9. package/dist/adapters/index.d.ts +21 -0
  10. package/dist/adapters/index.js +6 -0
  11. package/dist/adapters/index.js.map +1 -0
  12. package/dist/adapters/index.mjs +3 -0
  13. package/dist/adapters/index.mjs.map +1 -0
  14. package/dist/auth.types-DTXCyA56.d.mts +128 -0
  15. package/dist/auth.types-DTXCyA56.d.ts +128 -0
  16. package/dist/chunk-36RADUUO.mjs +31 -0
  17. package/dist/chunk-36RADUUO.mjs.map +1 -0
  18. package/dist/chunk-7QAMNVQU.js +666 -0
  19. package/dist/chunk-7QAMNVQU.js.map +1 -0
  20. package/dist/chunk-B6NUTR54.js +4 -0
  21. package/dist/chunk-B6NUTR54.js.map +1 -0
  22. package/dist/chunk-BX3RO5PW.js +4 -0
  23. package/dist/chunk-BX3RO5PW.js.map +1 -0
  24. package/dist/chunk-CGNGZNVG.mjs +391 -0
  25. package/dist/chunk-CGNGZNVG.mjs.map +1 -0
  26. package/dist/chunk-ER5A6TIL.js +296 -0
  27. package/dist/chunk-ER5A6TIL.js.map +1 -0
  28. package/dist/chunk-GF3OEIKI.mjs +3 -0
  29. package/dist/chunk-GF3OEIKI.mjs.map +1 -0
  30. package/dist/chunk-H5GAC4UG.mjs +277 -0
  31. package/dist/chunk-H5GAC4UG.mjs.map +1 -0
  32. package/dist/chunk-HPLIHYLQ.js +35 -0
  33. package/dist/chunk-HPLIHYLQ.js.map +1 -0
  34. package/dist/chunk-MV6HJQQO.mjs +3 -0
  35. package/dist/chunk-MV6HJQQO.mjs.map +1 -0
  36. package/dist/chunk-ONR2OJOB.mjs +848 -0
  37. package/dist/chunk-ONR2OJOB.mjs.map +1 -0
  38. package/dist/chunk-PJ4KYVHH.js +854 -0
  39. package/dist/chunk-PJ4KYVHH.js.map +1 -0
  40. package/dist/chunk-QRGJXASL.js +402 -0
  41. package/dist/chunk-QRGJXASL.js.map +1 -0
  42. package/dist/chunk-QZHJXRRW.mjs +661 -0
  43. package/dist/chunk-QZHJXRRW.mjs.map +1 -0
  44. package/dist/core/index.d.mts +105 -0
  45. package/dist/core/index.d.ts +105 -0
  46. package/dist/core/index.js +94 -0
  47. package/dist/core/index.js.map +1 -0
  48. package/dist/core/index.mjs +5 -0
  49. package/dist/core/index.mjs.map +1 -0
  50. package/dist/index.d.mts +7 -0
  51. package/dist/index.d.ts +7 -0
  52. package/dist/index.js +174 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/index.mjs +9 -0
  55. package/dist/index.mjs.map +1 -0
  56. package/dist/insights.types-5z7HJnbt.d.mts +351 -0
  57. package/dist/insights.types-DF2_r0L1.d.ts +351 -0
  58. package/dist/providers/facebook/index.d.mts +464 -0
  59. package/dist/providers/facebook/index.d.ts +464 -0
  60. package/dist/providers/facebook/index.js +30 -0
  61. package/dist/providers/facebook/index.js.map +1 -0
  62. package/dist/providers/facebook/index.mjs +5 -0
  63. package/dist/providers/facebook/index.mjs.map +1 -0
  64. package/dist/providers/instagram/index.d.mts +355 -0
  65. package/dist/providers/instagram/index.d.ts +355 -0
  66. package/dist/providers/instagram/index.js +26 -0
  67. package/dist/providers/instagram/index.js.map +1 -0
  68. package/dist/providers/instagram/index.mjs +5 -0
  69. package/dist/providers/instagram/index.mjs.map +1 -0
  70. package/dist/providers/tiktok/index.d.mts +346 -0
  71. package/dist/providers/tiktok/index.d.ts +346 -0
  72. package/dist/providers/tiktok/index.js +48 -0
  73. package/dist/providers/tiktok/index.js.map +1 -0
  74. package/dist/providers/tiktok/index.mjs +3 -0
  75. package/dist/providers/tiktok/index.mjs.map +1 -0
  76. package/package.json +97 -0
@@ -0,0 +1,464 @@
1
+ import { U as UserProfile, R as RequestOptions, c as AuthProvider, A as AuthResult } from '../../auth.types-DTXCyA56.mjs';
2
+ import { A as APIClient, d as PageOverview, c as InsightsResponse, g as VideoInsights, i as ReelsInsights, f as PostInsights, k as PhotoInsights } from '../../insights.types-5z7HJnbt.mjs';
3
+
4
+ /**
5
+ * Facebook Types - Facebook-specific types
6
+ */
7
+
8
+ /**
9
+ * Facebook provider configuration
10
+ * Note: apiVersion is fixed to v24.0 to ensure API compatibility
11
+ */
12
+ interface FacebookConfig {
13
+ appId: string;
14
+ appSecret?: string;
15
+ redirectUri?: string;
16
+ }
17
+ /**
18
+ * Facebook Scopes (Business Permissions)
19
+ */
20
+ declare enum FacebookScopesBusiness {
21
+ PUBLIC_PROFILE = "public_profile",
22
+ EMAIL = "email",
23
+ PAGES_SHOW_LIST = "pages_show_list",
24
+ PAGES_READ_ENGAGEMENT = "pages_read_engagement",
25
+ PAGES_MANAGE_POSTS = "pages_manage_posts",
26
+ ADS_MANAGEMENT = "ads_management",
27
+ ADS_READ = "ads_read",
28
+ BUSINESS_MANAGEMENT = "business_management",
29
+ CATALOG_MANAGEMENT = "catalog_management",
30
+ COMMERCE_ACCOUNT_MANAGE_ORDERS = "commerce_account_manage_orders",
31
+ COMMERCE_ACCOUNT_READ_ORDERS = "commerce_account_read_orders",
32
+ COMMERCE_ACCOUNT_READ_REPORTS = "commerce_account_read_reports",
33
+ COMMERCE_ACCOUNT_READ_SETTINGS = "commerce_account_read_settings",
34
+ COMMERCE_MANAGE_ACCOUNTS = "commerce_manage_accounts",
35
+ INSTAGRAM_BASIC = "instagram_basic",
36
+ INSTAGRAM_CONTENT_PUBLISH = "instagram_content_publish",
37
+ INSTAGRAM_MANAGE_COMMENTS = "instagram_manage_comments",
38
+ INSTAGRAM_MANAGE_INSIGHTS = "instagram_manage_insights",
39
+ INSTAGRAM_MANAGE_MESSAGES = "instagram_manage_messages",
40
+ INSTAGRAM_SHOPPING_TAG_PRODUCTS = "instagram_shopping_tag_products",
41
+ LEADS_RETRIEVAL = "leads_retrieval",
42
+ MANAGE_APP_SOLUTIONS = "manage_app_solutions",
43
+ MANAGE_FUNDRAISERS = "manage_fundraisers",
44
+ PAGES_MANAGE_CTA = "pages_manage_cta",
45
+ PAGE_EVENTS = "page_events",
46
+ PAGES_MANAGE_ADS = "pages_manage_ads",
47
+ PAGES_MANAGE_ENGAGEMENT = "pages_manage_engagement",
48
+ PAGES_MANAGE_INSTANT_ARTICLES = "pages_manage_instant_articles",
49
+ PAGES_MANAGE_METADATA = "pages_manage_metadata",
50
+ PAGES_MESSAGING = "pages_messaging",
51
+ PAGES_READ_USER_CONTENT = "pages_read_user_content",
52
+ PRIVATE_COMPUTATION_ACCESS = "private_computation_access",
53
+ PUBLISH_VIDEO = "publish_video",
54
+ READ_INSIGHTS = "read_insights",
55
+ READ_AUDIENCE_NETWORK_INSIGHTS = "read_audience_network_insights",
56
+ WHATSAPP_BUSINESS_MANAGEMENT = "whatsapp_business_management",
57
+ WHATSAPP_BUSINESS_MESSAGING = "whatsapp_business_messaging"
58
+ }
59
+ /**
60
+ * Facebook Scopes (User Permissions)
61
+ */
62
+ declare enum FacebookScopesUser {
63
+ PUBLIC_PROFILE = "public_profile",
64
+ EMAIL = "email",
65
+ USER_FRIENDS = "user_friends"
66
+ }
67
+ /**
68
+ * Facebook Page
69
+ */
70
+ interface FacebookPage {
71
+ id: string;
72
+ name: string;
73
+ access_token: string;
74
+ picture?: {
75
+ data: {
76
+ url: string;
77
+ };
78
+ };
79
+ }
80
+ /**
81
+ * Facebook user profile
82
+ */
83
+ interface FacebookUserProfile extends UserProfile {
84
+ id: string;
85
+ name: string;
86
+ email?: string;
87
+ picture?: {
88
+ data: {
89
+ url: string;
90
+ };
91
+ };
92
+ }
93
+ /**
94
+ * Facebook pages response
95
+ */
96
+ interface FacebookPagesResponse {
97
+ data: FacebookPage[];
98
+ paging?: {
99
+ cursors: {
100
+ before: string;
101
+ after: string;
102
+ };
103
+ next?: string;
104
+ previous?: string;
105
+ };
106
+ }
107
+ /**
108
+ * Facebook post response
109
+ */
110
+ interface FacebookPostResponse {
111
+ id: string;
112
+ post_id?: string;
113
+ }
114
+ /**
115
+ * Parameters for publishing to Facebook
116
+ */
117
+ interface FacebookPublishPostParams {
118
+ pageId: string;
119
+ pageAccessToken: string;
120
+ message?: string;
121
+ imageUrl?: string;
122
+ scheduledPublishTime?: number;
123
+ }
124
+ /**
125
+ * Parameters for token exchange
126
+ */
127
+ interface FacebookExchangeTokenParams {
128
+ shortLivedToken: string;
129
+ appId: string;
130
+ appSecret: string;
131
+ }
132
+ /**
133
+ * Token exchange response
134
+ */
135
+ interface FacebookTokenResponse {
136
+ access_token: string;
137
+ token_type?: string;
138
+ expires_in?: number;
139
+ }
140
+ /**
141
+ * Facebook error
142
+ */
143
+ interface FacebookErrorResponse {
144
+ error: {
145
+ message: string;
146
+ type: string;
147
+ code: number;
148
+ fbtrace_id: string;
149
+ };
150
+ }
151
+
152
+ /**
153
+ * Facebook API - Facebook API Client
154
+ */
155
+
156
+ declare class FacebookAPI implements APIClient {
157
+ private httpClient;
158
+ private config;
159
+ private accessToken?;
160
+ constructor(config: FacebookConfig, accessToken?: string);
161
+ /**
162
+ * Generic request
163
+ */
164
+ request<T>(endpoint: string, options?: RequestOptions): Promise<T>;
165
+ /**
166
+ * GET request
167
+ */
168
+ get<T>(endpoint: string, params?: Record<string, any>): Promise<T>;
169
+ /**
170
+ * POST request
171
+ */
172
+ post<T>(endpoint: string, body?: any): Promise<T>;
173
+ /**
174
+ * PUT request
175
+ */
176
+ put<T>(endpoint: string, body?: any): Promise<T>;
177
+ /**
178
+ * DELETE request
179
+ */
180
+ delete<T>(endpoint: string): Promise<T>;
181
+ /**
182
+ * Update access token
183
+ */
184
+ setAccessToken(token: string): void;
185
+ /**
186
+ * Get current access token
187
+ */
188
+ getAccessToken(): string | undefined;
189
+ /**
190
+ * Get user's pages
191
+ */
192
+ getPages(userAccessToken?: string): Promise<FacebookPage[]>;
193
+ /**
194
+ * Publish post to Facebook page
195
+ */
196
+ publishPost(params: FacebookPublishPostParams): Promise<FacebookPostResponse>;
197
+ /**
198
+ * Delete Facebook post
199
+ */
200
+ deletePost(postId: string, pageAccessToken: string): Promise<boolean>;
201
+ /**
202
+ * Get page information
203
+ */
204
+ getPage(pageId: string, fields?: string[]): Promise<FacebookPage>;
205
+ /**
206
+ * Debug/validate a Facebook access token
207
+ * Uses Facebook's debug_token endpoint
208
+ *
209
+ * @param inputToken - The token to validate
210
+ * @param appAccessToken - App token (app_id|app_secret)
211
+ * @returns Token debug information
212
+ */
213
+ debugToken(inputToken: string, appAccessToken: string): Promise<{
214
+ data: {
215
+ is_valid: boolean;
216
+ expires_at?: number;
217
+ scopes?: string[];
218
+ error?: {
219
+ message: string;
220
+ code: number;
221
+ };
222
+ };
223
+ }>;
224
+ /**
225
+ * Get page insights/analytics
226
+ * @param pageId - Facebook Page ID
227
+ * @param options - Insights options
228
+ * @returns Page insights data
229
+ */
230
+ getPageInsights(pageId: string, options: {
231
+ metric: string[];
232
+ period?: 'day' | 'week' | 'days_28' | 'month' | 'lifetime';
233
+ since?: number;
234
+ until?: number;
235
+ }): Promise<{
236
+ data: Array<{
237
+ name: string;
238
+ period: string;
239
+ values: Array<{
240
+ value: number;
241
+ end_time?: string;
242
+ }>;
243
+ title?: string;
244
+ description?: string;
245
+ }>;
246
+ }>;
247
+ /**
248
+ * Get page fans count (total followers)
249
+ * @param pageId - Facebook Page ID
250
+ * @returns Page with fan count
251
+ */
252
+ getPageFansCount(pageId: string): Promise<{
253
+ id: string;
254
+ fan_count: number;
255
+ }>;
256
+ /**
257
+ * Get page overview with key metrics
258
+ * @param pageId - Facebook Page ID
259
+ * @returns Page overview data
260
+ */
261
+ getPageOverview(pageId: string): Promise<PageOverview>;
262
+ /**
263
+ * Get video insights
264
+ * @param videoId - Facebook Video ID
265
+ * @param metrics - Specific metrics to fetch (defaults to common metrics)
266
+ * @returns Video insights data
267
+ */
268
+ getVideoInsights(videoId: string, metrics?: string[]): Promise<InsightsResponse>;
269
+ /**
270
+ * Get video insights with parsed values
271
+ * @param videoId - Facebook Video ID
272
+ * @returns Parsed video insights
273
+ */
274
+ getVideoInsightsParsed(videoId: string): Promise<VideoInsights>;
275
+ /**
276
+ * Get page videos with basic info
277
+ * @param pageId - Facebook Page ID
278
+ * @param limit - Number of videos to fetch
279
+ * @returns List of videos
280
+ */
281
+ getPageVideos(pageId: string, limit?: number): Promise<{
282
+ data: Array<{
283
+ id: string;
284
+ title?: string;
285
+ description?: string;
286
+ created_time: string;
287
+ length?: number;
288
+ }>;
289
+ }>;
290
+ /**
291
+ * Get reels insights
292
+ * @param reelId - Facebook Reel ID
293
+ * @param metrics - Specific metrics to fetch
294
+ * @returns Reels insights data
295
+ */
296
+ getReelsInsights(reelId: string, metrics?: string[]): Promise<InsightsResponse>;
297
+ /**
298
+ * Get reels insights with parsed values
299
+ * @param reelId - Facebook Reel ID
300
+ * @returns Parsed reels insights
301
+ */
302
+ getReelsInsightsParsed(reelId: string): Promise<ReelsInsights>;
303
+ /**
304
+ * Get page reels
305
+ * @param pageId - Facebook Page ID
306
+ * @param limit - Number of reels to fetch
307
+ * @returns List of reels
308
+ */
309
+ getPageReels(pageId: string, limit?: number): Promise<{
310
+ data: Array<{
311
+ id: string;
312
+ description?: string;
313
+ created_time: string;
314
+ }>;
315
+ }>;
316
+ /**
317
+ * Get post insights
318
+ * @param postId - Facebook Post ID
319
+ * @param metrics - Specific metrics to fetch
320
+ * @returns Post insights data
321
+ */
322
+ getPostInsights(postId: string, metrics?: string[]): Promise<InsightsResponse>;
323
+ /**
324
+ * Get post insights with parsed values
325
+ * @param postId - Facebook Post ID
326
+ * @returns Parsed post insights
327
+ */
328
+ getPostInsightsParsed(postId: string): Promise<PostInsights>;
329
+ /**
330
+ * Get page posts/feed
331
+ * @param pageId - Facebook Page ID
332
+ * @param limit - Number of posts to fetch
333
+ * @returns List of posts
334
+ */
335
+ getPagePosts(pageId: string, limit?: number): Promise<{
336
+ data: Array<{
337
+ id: string;
338
+ message?: string;
339
+ created_time: string;
340
+ type?: string;
341
+ }>;
342
+ }>;
343
+ /**
344
+ * Get photo insights
345
+ * @param photoId - Facebook Photo ID
346
+ * @param metrics - Specific metrics to fetch
347
+ * @returns Photo insights data
348
+ */
349
+ getPhotoInsights(photoId: string, metrics?: string[]): Promise<InsightsResponse>;
350
+ /**
351
+ * Get photo insights with parsed values
352
+ * @param photoId - Facebook Photo ID
353
+ * @returns Parsed photo insights
354
+ */
355
+ getPhotoInsightsParsed(photoId: string): Promise<PhotoInsights>;
356
+ /**
357
+ * Get page photos
358
+ * @param pageId - Facebook Page ID
359
+ * @param limit - Number of photos to fetch
360
+ * @returns List of photos
361
+ */
362
+ getPagePhotos(pageId: string, limit?: number): Promise<{
363
+ data: Array<{
364
+ id: string;
365
+ name?: string;
366
+ created_time: string;
367
+ }>;
368
+ }>;
369
+ /**
370
+ * Get quick insights summary for a page
371
+ * Combines key metrics in a single call
372
+ * @param pageId - Facebook Page ID
373
+ * @param period - Period for time-based metrics
374
+ * @returns Summary of page insights
375
+ */
376
+ getPageInsightsSummary(pageId: string, period?: 'day' | 'week' | 'days_28'): Promise<{
377
+ overview: PageOverview;
378
+ engagement: {
379
+ views?: number;
380
+ post_engagements?: number;
381
+ video_views?: number;
382
+ };
383
+ }>;
384
+ /**
385
+ * Get current API version (read-only)
386
+ */
387
+ getApiVersion(): string;
388
+ }
389
+
390
+ /**
391
+ * Facebook Auth - Facebook Authentication
392
+ */
393
+
394
+ declare class FacebookAuth implements AuthProvider {
395
+ private httpClient;
396
+ private config;
397
+ constructor(config: FacebookConfig);
398
+ /**
399
+ * Exchange Facebook token for session
400
+ * In Expo + Supabase, this is handled in the app
401
+ * This function only validates and gets profile info
402
+ */
403
+ exchangeToken(facebookToken: string): Promise<AuthResult>;
404
+ /**
405
+ * Get Facebook user profile
406
+ */
407
+ getProfile(accessToken: string): Promise<UserProfile>;
408
+ /**
409
+ * Exchange short-lived token for long-lived token
410
+ */
411
+ exchangeForLongLivedToken(params: FacebookExchangeTokenParams): Promise<string>;
412
+ /**
413
+ * Get OAuth configuration for Facebook
414
+ */
415
+ getOAuthConfig(scopes: string[], redirectUri: string): {
416
+ authorizationEndpoint: "https://www.facebook.com/v24.0/dialog/oauth";
417
+ tokenEndpoint: string;
418
+ clientId: string;
419
+ clientSecret: string | undefined;
420
+ redirectUri: string;
421
+ scopes: string[];
422
+ responseType: "token";
423
+ extraParams: {
424
+ display: string;
425
+ };
426
+ };
427
+ /**
428
+ * Get authorization URL
429
+ */
430
+ getAuthorizationUrl(scopes: string[], redirectUri: string, state?: string): string;
431
+ /**
432
+ * Get current API version (read-only)
433
+ */
434
+ getApiVersion(): string;
435
+ }
436
+
437
+ /**
438
+ * Facebook Provider - Main Facebook provider
439
+ */
440
+
441
+ /**
442
+ * Facebook provider that encapsulates Auth and API
443
+ */
444
+ declare class FacebookProvider {
445
+ readonly name: "facebook";
446
+ auth: FacebookAuth;
447
+ api: FacebookAPI;
448
+ config: FacebookConfig;
449
+ constructor(config: FacebookConfig);
450
+ /**
451
+ * Create new API instance with access token
452
+ */
453
+ createAPIClient(accessToken: string): FacebookAPI;
454
+ /**
455
+ * Update access token of existing API client
456
+ */
457
+ setAccessToken(accessToken: string): void;
458
+ /**
459
+ * Get current access token
460
+ */
461
+ getAccessToken(): string | undefined;
462
+ }
463
+
464
+ export { FacebookAPI, FacebookAuth, type FacebookConfig, type FacebookErrorResponse, type FacebookExchangeTokenParams, type FacebookPage, type FacebookPagesResponse, type FacebookPostResponse, FacebookProvider, type FacebookPublishPostParams, FacebookScopesBusiness, FacebookScopesUser, type FacebookTokenResponse, type FacebookUserProfile };