@opencoredev/social-sdk 0.1.2 → 0.2.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 (82) hide show
  1. package/README.md +6 -0
  2. package/dist/cli.d.ts +13 -0
  3. package/dist/cli.js +234 -0
  4. package/dist/cloud/common.d.ts +25 -0
  5. package/dist/cloud/common.js +334 -0
  6. package/dist/cloud/lifecycle.d.ts +10 -0
  7. package/dist/cloud/lifecycle.js +112 -0
  8. package/dist/cloud/media.d.ts +23 -0
  9. package/dist/cloud/media.js +100 -0
  10. package/dist/cloud/outcomes.d.ts +9 -0
  11. package/dist/cloud/outcomes.js +195 -0
  12. package/dist/cloud/post-for-me.d.ts +69 -0
  13. package/dist/cloud/post-for-me.js +396 -0
  14. package/dist/cloud/zernio.d.ts +111 -0
  15. package/dist/cloud/zernio.js +632 -0
  16. package/dist/core/adapter.d.ts +158 -0
  17. package/dist/core/adapter.js +3 -0
  18. package/dist/core/client.d.ts +141 -0
  19. package/dist/core/client.js +1285 -0
  20. package/dist/core/concurrency.d.ts +9 -0
  21. package/dist/core/concurrency.js +79 -0
  22. package/dist/core/errors.d.ts +44 -0
  23. package/dist/core/errors.js +50 -0
  24. package/dist/core/idempotency.d.ts +33 -0
  25. package/dist/core/idempotency.js +58 -0
  26. package/dist/core/index.d.ts +6 -0
  27. package/dist/core/index.js +6 -0
  28. package/dist/core/pagination.d.ts +11 -0
  29. package/dist/core/pagination.js +81 -0
  30. package/dist/core/types.d.ts +396 -0
  31. package/dist/core/types.js +16 -0
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.js +1 -0
  34. package/dist/platforms/bluesky.d.ts +261 -0
  35. package/dist/platforms/bluesky.js +1776 -0
  36. package/dist/platforms/instagram.d.ts +129 -0
  37. package/dist/platforms/instagram.js +1031 -0
  38. package/dist/platforms/linkedin.d.ts +108 -0
  39. package/dist/platforms/linkedin.js +890 -0
  40. package/dist/platforms/threads.d.ts +134 -0
  41. package/dist/platforms/threads.js +945 -0
  42. package/dist/platforms/tiktok.d.ts +31 -0
  43. package/dist/platforms/tiktok.js +593 -0
  44. package/dist/platforms/x-engagement.d.ts +16 -0
  45. package/dist/platforms/x-engagement.js +50 -0
  46. package/dist/platforms/x-text.d.ts +2 -0
  47. package/dist/platforms/x-text.js +123 -0
  48. package/dist/platforms/x-tlds.d.ts +1 -0
  49. package/dist/platforms/x-tlds.js +2 -0
  50. package/dist/platforms/x.d.ts +299 -0
  51. package/dist/platforms/x.js +1287 -0
  52. package/dist/platforms/youtube-upload.d.ts +32 -0
  53. package/dist/platforms/youtube-upload.js +296 -0
  54. package/dist/platforms/youtube.d.ts +108 -0
  55. package/dist/platforms/youtube.js +1100 -0
  56. package/dist/server/connections.d.ts +123 -0
  57. package/dist/server/connections.js +335 -0
  58. package/dist/server/credentials.d.ts +51 -0
  59. package/dist/server/credentials.js +108 -0
  60. package/dist/server/index.d.ts +4 -0
  61. package/dist/server/index.js +4 -0
  62. package/dist/server/oauth.d.ts +52 -0
  63. package/dist/server/oauth.js +553 -0
  64. package/dist/server/webhooks.d.ts +57 -0
  65. package/dist/server/webhooks.js +204 -0
  66. package/dist/testing/index.d.ts +46 -0
  67. package/dist/testing/index.js +564 -0
  68. package/dist/testing.d.ts +1 -0
  69. package/dist/testing.js +1 -0
  70. package/dist/transport/binary.d.ts +2 -0
  71. package/dist/transport/binary.js +29 -0
  72. package/dist/transport/budget.d.ts +3 -0
  73. package/dist/transport/budget.js +26 -0
  74. package/dist/transport/http.d.ts +44 -0
  75. package/dist/transport/http.js +259 -0
  76. package/dist/transport/json.d.ts +8 -0
  77. package/dist/transport/json.js +16 -0
  78. package/dist/transport/upload.d.ts +25 -0
  79. package/dist/transport/upload.js +153 -0
  80. package/dist/transport/validation.d.ts +5 -0
  81. package/dist/transport/validation.js +24 -0
  82. package/package.json +2 -7
@@ -0,0 +1,129 @@
1
+ import type { AdapterOperationContext, ConnectedAccountRef, DeliveryOutcome, JsonObject, Page } from "../core/types.js";
2
+ export interface InstagramOptions {
3
+ /** Instagram Login by default. Facebook Login is required for business discovery and hashtags. */
4
+ readonly auth: {
5
+ readonly accessToken: string;
6
+ readonly accountId: string;
7
+ readonly flavor?: "instagram-login" | "facebook-login";
8
+ };
9
+ readonly fetch?: typeof globalThis.fetch;
10
+ readonly clock?: () => Date;
11
+ readonly workflowStore?: InstagramWorkflowStore;
12
+ }
13
+ export interface InstagramNative {
14
+ readonly moderateComment: (input: {
15
+ readonly account: ConnectedAccountRef;
16
+ readonly commentId: string;
17
+ readonly hidden: boolean;
18
+ readonly context: AdapterOperationContext;
19
+ }) => Promise<void>;
20
+ readonly deleteComment: (input: {
21
+ readonly account: ConnectedAccountRef;
22
+ readonly commentId: string;
23
+ readonly context: AdapterOperationContext;
24
+ }) => Promise<void>;
25
+ readonly setCommentsEnabled: (input: {
26
+ readonly account: ConnectedAccountRef;
27
+ readonly mediaId: string;
28
+ readonly enabled: boolean;
29
+ readonly context: AdapterOperationContext;
30
+ }) => Promise<void>;
31
+ readonly listCommentReplies: (input: {
32
+ readonly account: ConnectedAccountRef;
33
+ readonly commentId: string;
34
+ readonly cursor?: string;
35
+ readonly limit?: number;
36
+ readonly context: AdapterOperationContext;
37
+ }) => Promise<Page<JsonObject>>;
38
+ readonly listMentions: (input: {
39
+ readonly account: ConnectedAccountRef;
40
+ readonly cursor?: string;
41
+ readonly limit?: number;
42
+ readonly context: AdapterOperationContext;
43
+ }) => Promise<Page<JsonObject>>;
44
+ readonly mentionedMedia: (input: {
45
+ readonly account: ConnectedAccountRef;
46
+ readonly mediaId: string;
47
+ readonly context: AdapterOperationContext;
48
+ }) => Promise<JsonObject>;
49
+ readonly mentionedComment: (input: {
50
+ readonly account: ConnectedAccountRef;
51
+ readonly commentId: string;
52
+ readonly context: AdapterOperationContext;
53
+ }) => Promise<JsonObject>;
54
+ readonly listTaggedMedia: (input: {
55
+ readonly account: ConnectedAccountRef;
56
+ readonly cursor?: string;
57
+ readonly limit?: number;
58
+ readonly context: AdapterOperationContext;
59
+ }) => Promise<Page<JsonObject>>;
60
+ readonly hashtagMedia: (input: {
61
+ readonly account: ConnectedAccountRef;
62
+ readonly hashtagId: string;
63
+ readonly kind: "top" | "recent";
64
+ readonly cursor?: string;
65
+ readonly limit?: number;
66
+ readonly context: AdapterOperationContext;
67
+ }) => Promise<Page<JsonObject>>;
68
+ readonly businessDiscovery: (input: {
69
+ readonly account: ConnectedAccountRef;
70
+ readonly username: string;
71
+ readonly fields?: string;
72
+ readonly context: AdapterOperationContext;
73
+ }) => Promise<JsonObject>;
74
+ readonly publishReel: (input: {
75
+ readonly account: ConnectedAccountRef;
76
+ readonly videoUrl: string;
77
+ readonly caption?: string;
78
+ readonly context: AdapterOperationContext;
79
+ }) => Promise<DeliveryOutcome>;
80
+ readonly publishStory: (input: {
81
+ readonly account: ConnectedAccountRef;
82
+ readonly mediaUrl: string;
83
+ readonly videoUrl?: string;
84
+ readonly context: AdapterOperationContext;
85
+ }) => Promise<DeliveryOutcome>;
86
+ readonly deletePost: (input: {
87
+ readonly account: ConnectedAccountRef;
88
+ readonly postId: string;
89
+ readonly context: AdapterOperationContext;
90
+ }) => Promise<void>;
91
+ readonly hashtagSearch: (input: {
92
+ readonly account: ConnectedAccountRef;
93
+ readonly hashtag: string;
94
+ readonly context: AdapterOperationContext;
95
+ }) => Promise<JsonObject>;
96
+ readonly publishingLimit: (input: {
97
+ readonly account: ConnectedAccountRef;
98
+ readonly context: AdapterOperationContext;
99
+ }) => Promise<JsonObject>;
100
+ readonly mentions: (input: {
101
+ readonly account: ConnectedAccountRef;
102
+ readonly cursor?: string;
103
+ readonly limit?: number;
104
+ readonly context: AdapterOperationContext;
105
+ }) => Promise<Page<JsonObject>>;
106
+ readonly publishContainer: (account: ConnectedAccountRef, containerId: string, context: AdapterOperationContext, workflowId?: string) => Promise<DeliveryOutcome>;
107
+ readonly publishCarousel: (account: ConnectedAccountRef, children: readonly string[], caption: string, context: AdapterOperationContext) => Promise<DeliveryOutcome>;
108
+ readonly resumePublication: (account: ConnectedAccountRef, workflowId: string, context: AdapterOperationContext) => Promise<DeliveryOutcome>;
109
+ }
110
+ export interface InstagramWorkflow {
111
+ readonly id: string;
112
+ readonly backend: string;
113
+ readonly accountId: string;
114
+ readonly childIds: readonly string[];
115
+ readonly parentId?: string;
116
+ readonly nativeId?: string;
117
+ readonly caption: string;
118
+ readonly stage: "children" | "parent" | "published" | "unknown" | "failed";
119
+ }
120
+ export interface InstagramWorkflowStore {
121
+ create(input: Omit<InstagramWorkflow, "id">): Promise<InstagramWorkflow>;
122
+ get(id: string): Promise<InstagramWorkflow | undefined>;
123
+ update(id: string, update: Partial<InstagramWorkflow>): Promise<InstagramWorkflow>;
124
+ /** Atomically claim a workflow for continuation. */
125
+ claim(id: string): Promise<boolean>;
126
+ /** Release a transient continuation claim after the operation settles. */
127
+ release?(id: string): Promise<void>;
128
+ }
129
+ export declare function instagram(options: InstagramOptions): import("../core/adapter.js").SocialAdapter<InstagramNative>;