@opencoredev/social-sdk 0.1.2 → 0.2.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 (154) hide show
  1. package/README.md +6 -0
  2. package/dist/cli.d.ts +14 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +235 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/cloud/common.d.ts +26 -0
  7. package/dist/cloud/common.d.ts.map +1 -0
  8. package/dist/cloud/common.js +335 -0
  9. package/dist/cloud/common.js.map +1 -0
  10. package/dist/cloud/lifecycle.d.ts +11 -0
  11. package/dist/cloud/lifecycle.d.ts.map +1 -0
  12. package/dist/cloud/lifecycle.js +113 -0
  13. package/dist/cloud/lifecycle.js.map +1 -0
  14. package/dist/cloud/media.d.ts +24 -0
  15. package/dist/cloud/media.d.ts.map +1 -0
  16. package/dist/cloud/media.js +101 -0
  17. package/dist/cloud/media.js.map +1 -0
  18. package/dist/cloud/outcomes.d.ts +10 -0
  19. package/dist/cloud/outcomes.d.ts.map +1 -0
  20. package/dist/cloud/outcomes.js +196 -0
  21. package/dist/cloud/outcomes.js.map +1 -0
  22. package/dist/cloud/post-for-me.d.ts +70 -0
  23. package/dist/cloud/post-for-me.d.ts.map +1 -0
  24. package/dist/cloud/post-for-me.js +397 -0
  25. package/dist/cloud/post-for-me.js.map +1 -0
  26. package/dist/cloud/zernio.d.ts +112 -0
  27. package/dist/cloud/zernio.d.ts.map +1 -0
  28. package/dist/cloud/zernio.js +633 -0
  29. package/dist/cloud/zernio.js.map +1 -0
  30. package/dist/core/adapter.d.ts +159 -0
  31. package/dist/core/adapter.d.ts.map +1 -0
  32. package/dist/core/adapter.js +4 -0
  33. package/dist/core/adapter.js.map +1 -0
  34. package/dist/core/client.d.ts +142 -0
  35. package/dist/core/client.d.ts.map +1 -0
  36. package/dist/core/client.js +1286 -0
  37. package/dist/core/client.js.map +1 -0
  38. package/dist/core/concurrency.d.ts +10 -0
  39. package/dist/core/concurrency.d.ts.map +1 -0
  40. package/dist/core/concurrency.js +80 -0
  41. package/dist/core/concurrency.js.map +1 -0
  42. package/dist/core/errors.d.ts +45 -0
  43. package/dist/core/errors.d.ts.map +1 -0
  44. package/dist/core/errors.js +51 -0
  45. package/dist/core/errors.js.map +1 -0
  46. package/dist/core/idempotency.d.ts +34 -0
  47. package/dist/core/idempotency.d.ts.map +1 -0
  48. package/dist/core/idempotency.js +59 -0
  49. package/dist/core/idempotency.js.map +1 -0
  50. package/dist/core/index.d.ts +7 -0
  51. package/dist/core/index.d.ts.map +1 -0
  52. package/dist/core/index.js +7 -0
  53. package/dist/core/index.js.map +1 -0
  54. package/dist/core/pagination.d.ts +12 -0
  55. package/dist/core/pagination.d.ts.map +1 -0
  56. package/dist/core/pagination.js +82 -0
  57. package/dist/core/pagination.js.map +1 -0
  58. package/dist/core/types.d.ts +397 -0
  59. package/dist/core/types.d.ts.map +1 -0
  60. package/dist/core/types.js +17 -0
  61. package/dist/core/types.js.map +1 -0
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/platforms/bluesky.d.ts +262 -0
  67. package/dist/platforms/bluesky.d.ts.map +1 -0
  68. package/dist/platforms/bluesky.js +1777 -0
  69. package/dist/platforms/bluesky.js.map +1 -0
  70. package/dist/platforms/instagram.d.ts +130 -0
  71. package/dist/platforms/instagram.d.ts.map +1 -0
  72. package/dist/platforms/instagram.js +1032 -0
  73. package/dist/platforms/instagram.js.map +1 -0
  74. package/dist/platforms/linkedin.d.ts +109 -0
  75. package/dist/platforms/linkedin.d.ts.map +1 -0
  76. package/dist/platforms/linkedin.js +891 -0
  77. package/dist/platforms/linkedin.js.map +1 -0
  78. package/dist/platforms/threads.d.ts +135 -0
  79. package/dist/platforms/threads.d.ts.map +1 -0
  80. package/dist/platforms/threads.js +946 -0
  81. package/dist/platforms/threads.js.map +1 -0
  82. package/dist/platforms/tiktok.d.ts +32 -0
  83. package/dist/platforms/tiktok.d.ts.map +1 -0
  84. package/dist/platforms/tiktok.js +594 -0
  85. package/dist/platforms/tiktok.js.map +1 -0
  86. package/dist/platforms/x-engagement.d.ts +17 -0
  87. package/dist/platforms/x-engagement.d.ts.map +1 -0
  88. package/dist/platforms/x-engagement.js +51 -0
  89. package/dist/platforms/x-engagement.js.map +1 -0
  90. package/dist/platforms/x.d.ts +300 -0
  91. package/dist/platforms/x.d.ts.map +1 -0
  92. package/dist/platforms/x.js +1288 -0
  93. package/dist/platforms/x.js.map +1 -0
  94. package/dist/platforms/youtube-upload.d.ts +33 -0
  95. package/dist/platforms/youtube-upload.d.ts.map +1 -0
  96. package/dist/platforms/youtube-upload.js +297 -0
  97. package/dist/platforms/youtube-upload.js.map +1 -0
  98. package/dist/platforms/youtube.d.ts +109 -0
  99. package/dist/platforms/youtube.d.ts.map +1 -0
  100. package/dist/platforms/youtube.js +1101 -0
  101. package/dist/platforms/youtube.js.map +1 -0
  102. package/dist/server/connections.d.ts +124 -0
  103. package/dist/server/connections.d.ts.map +1 -0
  104. package/dist/server/connections.js +336 -0
  105. package/dist/server/connections.js.map +1 -0
  106. package/dist/server/credentials.d.ts +52 -0
  107. package/dist/server/credentials.d.ts.map +1 -0
  108. package/dist/server/credentials.js +109 -0
  109. package/dist/server/credentials.js.map +1 -0
  110. package/dist/server/index.d.ts +5 -0
  111. package/dist/server/index.d.ts.map +1 -0
  112. package/dist/server/index.js +5 -0
  113. package/dist/server/index.js.map +1 -0
  114. package/dist/server/oauth.d.ts +53 -0
  115. package/dist/server/oauth.d.ts.map +1 -0
  116. package/dist/server/oauth.js +554 -0
  117. package/dist/server/oauth.js.map +1 -0
  118. package/dist/server/webhooks.d.ts +58 -0
  119. package/dist/server/webhooks.d.ts.map +1 -0
  120. package/dist/server/webhooks.js +205 -0
  121. package/dist/server/webhooks.js.map +1 -0
  122. package/dist/testing/index.d.ts +47 -0
  123. package/dist/testing/index.d.ts.map +1 -0
  124. package/dist/testing/index.js +565 -0
  125. package/dist/testing/index.js.map +1 -0
  126. package/dist/testing.d.ts +2 -0
  127. package/dist/testing.d.ts.map +1 -0
  128. package/dist/testing.js +2 -0
  129. package/dist/testing.js.map +1 -0
  130. package/dist/transport/binary.d.ts +3 -0
  131. package/dist/transport/binary.d.ts.map +1 -0
  132. package/dist/transport/binary.js +30 -0
  133. package/dist/transport/binary.js.map +1 -0
  134. package/dist/transport/budget.d.ts +4 -0
  135. package/dist/transport/budget.d.ts.map +1 -0
  136. package/dist/transport/budget.js +27 -0
  137. package/dist/transport/budget.js.map +1 -0
  138. package/dist/transport/http.d.ts +45 -0
  139. package/dist/transport/http.d.ts.map +1 -0
  140. package/dist/transport/http.js +260 -0
  141. package/dist/transport/http.js.map +1 -0
  142. package/dist/transport/json.d.ts +9 -0
  143. package/dist/transport/json.d.ts.map +1 -0
  144. package/dist/transport/json.js +17 -0
  145. package/dist/transport/json.js.map +1 -0
  146. package/dist/transport/upload.d.ts +26 -0
  147. package/dist/transport/upload.d.ts.map +1 -0
  148. package/dist/transport/upload.js +154 -0
  149. package/dist/transport/upload.js.map +1 -0
  150. package/dist/transport/validation.d.ts +6 -0
  151. package/dist/transport/validation.d.ts.map +1 -0
  152. package/dist/transport/validation.js +25 -0
  153. package/dist/transport/validation.js.map +1 -0
  154. package/package.json +2 -1
@@ -0,0 +1,109 @@
1
+ import { SocialError } from "../core/errors.js";
2
+ export class MemoryCredentialStore {
3
+ #values = new Map();
4
+ #sequence = 0;
5
+ async get(key) {
6
+ const found = this.#values.get(key);
7
+ if (found === undefined)
8
+ return undefined;
9
+ const value = { ...found.value };
10
+ if (found.value.scopes !== undefined)
11
+ value.scopes = [...found.value.scopes];
12
+ return { value, revision: found.revision };
13
+ }
14
+ async compareAndSet(input) {
15
+ const current = this.#values.get(input.key);
16
+ if ((current?.revision ?? undefined) !== input.expectedRevision)
17
+ return { updated: false };
18
+ const revision = `credential-${++this.#sequence}`;
19
+ const value = { ...input.value };
20
+ if (input.value.scopes !== undefined)
21
+ value.scopes = [...input.value.scopes];
22
+ this.#values.set(input.key, { value, revision });
23
+ return { updated: true, revision };
24
+ }
25
+ async delete(key) {
26
+ this.#values.delete(key);
27
+ }
28
+ }
29
+ export class MemoryCredentialLock {
30
+ #leases = new Map();
31
+ #sequence = 0;
32
+ async acquire(key, ttlMs) {
33
+ const current = this.#leases.get(key);
34
+ if (current !== undefined && Date.parse(current.expiresAt) > Date.now())
35
+ return undefined;
36
+ const lease = {
37
+ key,
38
+ token: `lease-${++this.#sequence}`,
39
+ expiresAt: new Date(Date.now() + ttlMs).toISOString(),
40
+ };
41
+ this.#leases.set(key, lease);
42
+ return lease;
43
+ }
44
+ async release(lease) {
45
+ if (this.#leases.get(lease.key)?.token === lease.token)
46
+ this.#leases.delete(lease.key);
47
+ }
48
+ }
49
+ export class CredentialManager {
50
+ store;
51
+ lock;
52
+ lockTtlMs;
53
+ constructor(store, lock, lockTtlMs = 30_000) {
54
+ this.store = store;
55
+ this.lock = lock;
56
+ this.lockTtlMs = lockTtlMs;
57
+ }
58
+ get(key) {
59
+ return this.store.get(key);
60
+ }
61
+ async save(key, value, expectedRevision) {
62
+ const result = await this.store.compareAndSet({ key, expectedRevision, value });
63
+ if (!result.updated || result.revision === undefined)
64
+ throw new SocialError({
65
+ code: "upstream_failure",
66
+ operation: "credentials.save",
67
+ message: "Credential revision changed; reload before saving",
68
+ });
69
+ return result.revision;
70
+ }
71
+ async rotate(key, refresh) {
72
+ const lease = await this.lock.acquire(key, this.lockTtlMs);
73
+ if (lease === undefined)
74
+ throw new SocialError({
75
+ code: "upstream_failure",
76
+ operation: "credentials.rotate",
77
+ message: "Another worker is already refreshing this credential",
78
+ });
79
+ try {
80
+ const current = await this.store.get(key);
81
+ if (current === undefined)
82
+ throw new SocialError({
83
+ code: "reconnect_required",
84
+ operation: "credentials.rotate",
85
+ message: "No credential is stored for this account",
86
+ });
87
+ const next = await refresh(current.value);
88
+ const saved = await this.store.compareAndSet({
89
+ key,
90
+ expectedRevision: current.revision,
91
+ value: next,
92
+ });
93
+ if (!saved.updated)
94
+ throw new SocialError({
95
+ code: "upstream_failure",
96
+ operation: "credentials.rotate",
97
+ message: "Credential changed while refreshing; do not repeat the provider request blindly",
98
+ });
99
+ return next;
100
+ }
101
+ finally {
102
+ await this.lock.release(lease);
103
+ }
104
+ }
105
+ delete(key) {
106
+ return this.store.delete(key);
107
+ }
108
+ }
109
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/server/credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./connections.js";
2
+ export * from "./credentials.js";
3
+ export * from "./webhooks.js";
4
+ export * from "./oauth.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./connections.js";
2
+ export * from "./credentials.js";
3
+ export * from "./webhooks.js";
4
+ export * from "./oauth.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { ConnectionAccount, ConnectionAttempt, ConnectionProvider } from "./connections.js";
2
+ export interface OAuthTokenSet {
3
+ readonly accessToken: string;
4
+ readonly refreshToken?: string;
5
+ readonly expiresAt?: string;
6
+ readonly scopes?: readonly string[];
7
+ readonly tokenType?: string;
8
+ }
9
+ export interface OAuthCredentialSink {
10
+ save(input: {
11
+ readonly account: ConnectionAccount;
12
+ readonly token: OAuthTokenSet;
13
+ readonly attempt: ConnectionAttempt;
14
+ }): Promise<void>;
15
+ }
16
+ export interface OAuthProviderOptions {
17
+ readonly clientId: string;
18
+ readonly clientSecret?: string;
19
+ readonly redirectUri?: string;
20
+ readonly fetch?: typeof globalThis.fetch;
21
+ readonly credentialSink?: OAuthCredentialSink;
22
+ /**
23
+ * Selects which validated discovered accounts receive persisted credentials.
24
+ * When omitted, credentials are persisted for every discovered account.
25
+ */
26
+ readonly selectAccounts?: (accounts: readonly ConnectionAccount[], attempt: ConnectionAttempt) => readonly string[] | Promise<readonly string[]>;
27
+ /** Optional label for callers; the attempt's backend is always authoritative. */
28
+ readonly backend?: string;
29
+ readonly scopes?: readonly string[];
30
+ /** Explicit LinkedIn Marketing API version (YYYYMM). Required for LinkedIn OAuth. */
31
+ readonly linkedinApiVersion?: string;
32
+ /** Graph API version for Threads account discovery. */
33
+ readonly threadsApiVersion?: string;
34
+ /** Graph API version for Instagram Login account discovery. */
35
+ readonly instagramApiVersion?: string;
36
+ /** Maximum time for a single OAuth request. Defaults to ten seconds. */
37
+ readonly timeoutMs?: number;
38
+ /** Maximum response body size. Defaults to one MiB. */
39
+ readonly maxResponseBytes?: number;
40
+ }
41
+ type ProviderKind = "youtube" | "x" | "threads" | "tiktok" | "instagram" | "linkedin";
42
+ export declare function oauthProvider(kind: ProviderKind, options: OAuthProviderOptions): ConnectionProvider;
43
+ /** Exchange a short-lived Threads or Instagram Login token for a long-lived token. */
44
+ export declare function exchangeLongLivedOAuthToken(kind: "threads" | "instagram", options: OAuthProviderOptions, current: OAuthTokenSet): Promise<OAuthTokenSet>;
45
+ export declare const youtubeOAuth: (options: OAuthProviderOptions) => ConnectionProvider;
46
+ export declare const xOAuth: (options: OAuthProviderOptions) => ConnectionProvider;
47
+ export declare const threadsOAuth: (options: OAuthProviderOptions) => ConnectionProvider;
48
+ export declare const tiktokOAuth: (options: OAuthProviderOptions) => ConnectionProvider;
49
+ export declare const instagramOAuth: (options: OAuthProviderOptions) => ConnectionProvider;
50
+ export declare const linkedinOAuth: (options: OAuthProviderOptions) => ConnectionProvider;
51
+ export declare function refreshOAuthToken(kind: ProviderKind, options: OAuthProviderOptions, current: OAuthTokenSet): Promise<OAuthTokenSet>;
52
+ export {};
53
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/server/oauth.ts"],"names":[],"mappings":"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"}