@cogitator-ai/channels 0.9.3 → 0.10.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.
- package/README.md +101 -11
- package/dist/assistant-config.d.ts +16 -0
- package/dist/assistant-config.d.ts.map +1 -1
- package/dist/assistant-config.js +22 -0
- package/dist/assistant-config.js.map +1 -1
- package/dist/channels/bluesky/account.d.ts +18 -0
- package/dist/channels/bluesky/account.d.ts.map +1 -0
- package/dist/channels/bluesky/account.js +25 -0
- package/dist/channels/bluesky/account.js.map +1 -0
- package/dist/channels/bluesky/channel.d.ts +89 -0
- package/dist/channels/bluesky/channel.d.ts.map +1 -0
- package/dist/channels/bluesky/channel.js +427 -0
- package/dist/channels/bluesky/channel.js.map +1 -0
- package/dist/channels/bluesky/config.d.ts +16 -0
- package/dist/channels/bluesky/config.d.ts.map +1 -0
- package/dist/channels/bluesky/config.js +2 -0
- package/dist/channels/bluesky/config.js.map +1 -0
- package/dist/channels/bluesky/connection.d.ts +40 -0
- package/dist/channels/bluesky/connection.d.ts.map +1 -0
- package/dist/channels/bluesky/connection.js +159 -0
- package/dist/channels/bluesky/connection.js.map +1 -0
- package/dist/channels/bluesky/feed.d.ts +59 -0
- package/dist/channels/bluesky/feed.d.ts.map +1 -0
- package/dist/channels/bluesky/feed.js +324 -0
- package/dist/channels/bluesky/feed.js.map +1 -0
- package/dist/channels/bluesky/index.d.ts +5 -0
- package/dist/channels/bluesky/index.d.ts.map +1 -0
- package/dist/channels/bluesky/index.js +4 -0
- package/dist/channels/bluesky/index.js.map +1 -0
- package/dist/channels/threads/account.d.ts +42 -0
- package/dist/channels/threads/account.d.ts.map +1 -0
- package/dist/channels/threads/account.js +64 -0
- package/dist/channels/threads/account.js.map +1 -0
- package/dist/channels/threads/channel.d.ts +119 -0
- package/dist/channels/threads/channel.d.ts.map +1 -0
- package/dist/channels/threads/channel.js +405 -0
- package/dist/channels/threads/channel.js.map +1 -0
- package/dist/channels/threads/client.d.ts +42 -0
- package/dist/channels/threads/client.d.ts.map +1 -0
- package/dist/channels/threads/client.js +102 -0
- package/dist/channels/threads/client.js.map +1 -0
- package/dist/channels/threads/feed.d.ts +79 -0
- package/dist/channels/threads/feed.d.ts.map +1 -0
- package/dist/channels/threads/feed.js +396 -0
- package/dist/channels/threads/feed.js.map +1 -0
- package/dist/channels/threads/index.d.ts +6 -0
- package/dist/channels/threads/index.d.ts.map +1 -0
- package/dist/channels/threads/index.js +6 -0
- package/dist/channels/threads/index.js.map +1 -0
- package/dist/channels/threads/token.d.ts +51 -0
- package/dist/channels/threads/token.d.ts.map +1 -0
- package/dist/channels/threads/token.js +128 -0
- package/dist/channels/threads/token.js.map +1 -0
- package/dist/feeds/attachments.d.ts +15 -0
- package/dist/feeds/attachments.d.ts.map +1 -0
- package/dist/feeds/attachments.js +85 -0
- package/dist/feeds/attachments.js.map +1 -0
- package/dist/feeds/errors.d.ts +42 -0
- package/dist/feeds/errors.d.ts.map +1 -0
- package/dist/feeds/errors.js +66 -0
- package/dist/feeds/errors.js.map +1 -0
- package/dist/feeds/index.d.ts +8 -0
- package/dist/feeds/index.d.ts.map +1 -0
- package/dist/feeds/index.js +6 -0
- package/dist/feeds/index.js.map +1 -0
- package/dist/feeds/publish-store.d.ts +148 -0
- package/dist/feeds/publish-store.d.ts.map +1 -0
- package/dist/feeds/publish-store.js +345 -0
- package/dist/feeds/publish-store.js.map +1 -0
- package/dist/feeds/publisher.d.ts +118 -0
- package/dist/feeds/publisher.d.ts.map +1 -0
- package/dist/feeds/publisher.js +308 -0
- package/dist/feeds/publisher.js.map +1 -0
- package/dist/feeds/storage.d.ts +33 -0
- package/dist/feeds/storage.d.ts.map +1 -0
- package/dist/feeds/storage.js +61 -0
- package/dist/feeds/storage.js.map +1 -0
- package/dist/feeds/text.d.ts +26 -0
- package/dist/feeds/text.d.ts.map +1 -0
- package/dist/feeds/text.js +126 -0
- package/dist/feeds/text.js.map +1 -0
- package/dist/feeds/token-store.d.ts +45 -0
- package/dist/feeds/token-store.d.ts.map +1 -0
- package/dist/feeds/token-store.js +128 -0
- package/dist/feeds/token-store.js.map +1 -0
- package/dist/formatters/markdown.d.ts.map +1 -1
- package/dist/formatters/markdown.js +6 -0
- package/dist/formatters/markdown.js.map +1 -1
- package/dist/formatters/plain-text.d.ts +7 -0
- package/dist/formatters/plain-text.d.ts.map +1 -0
- package/dist/formatters/plain-text.js +38 -0
- package/dist/formatters/plain-text.js.map +1 -0
- package/dist/gateway.js +1 -1
- package/dist/gateway.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime-builder.d.ts.map +1 -1
- package/dist/runtime-builder.js +54 -0
- package/dist/runtime-builder.js.map +1 -1
- package/package.json +23 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../../src/channels/threads/feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ThreadsAccount, type ThreadsAccountConfig } from './account.js';
|
|
2
|
+
export { THREADS_API, ThreadsClient, threadsErrorCode, type ThreadsParams } from './client.js';
|
|
3
|
+
export { THREADS_LIMITS, ThreadsFeed, threadsFeed, type ThreadsFeedConfig } from './feed.js';
|
|
4
|
+
export { ThreadsTokenManager, type ThreadsTokenOptions } from './token.js';
|
|
5
|
+
export { ThreadsChannel, threadsChannel, verifyThreadsSignature, type ThreadsChannelConfig, type ThreadsWebhookConfig, type ThreadsWebhookRequest, type ThreadsWebhookResponse, } from './channel.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/threads/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EACL,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ThreadsAccount } from './account.js';
|
|
2
|
+
export { THREADS_API, ThreadsClient, threadsErrorCode } from './client.js';
|
|
3
|
+
export { THREADS_LIMITS, ThreadsFeed, threadsFeed } from './feed.js';
|
|
4
|
+
export { ThreadsTokenManager } from './token.js';
|
|
5
|
+
export { ThreadsChannel, threadsChannel, verifyThreadsSignature, } from './channel.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/threads/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA6B,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAsB,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAA0B,MAAM,QAAQ,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAA4B,MAAM,SAAS,CAAC;AACxE,OAAO,EACL,cAAc,EACd,cAAc,EACd,sBAAsB,GAKvB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { StoredToken, TokenStore } from '@cogitator-ai/types';
|
|
2
|
+
import type { ThreadsClient } from './client.js';
|
|
3
|
+
export interface ThreadsTokenOptions {
|
|
4
|
+
/** A long-lived token to start from when the store holds none. */
|
|
5
|
+
accessToken?: string;
|
|
6
|
+
/** When `accessToken` expires, where known. Otherwise the first renewal finds out. */
|
|
7
|
+
accessTokenExpiresAt?: Date | number;
|
|
8
|
+
/** Where the token is kept and renewed (default in memory). */
|
|
9
|
+
store?: TokenStore;
|
|
10
|
+
/** The token's key in the store (default `threads`). */
|
|
11
|
+
storeKey?: string;
|
|
12
|
+
/** How long before it expires the token is renewed (default seven days). */
|
|
13
|
+
renewBefore?: number;
|
|
14
|
+
/** Called with the new token after each renewal. */
|
|
15
|
+
onTokenRenewed?: (token: StoredToken) => void | Promise<void>;
|
|
16
|
+
now?: () => number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A Threads long-lived token kept fresh. Threads renews a token that is at
|
|
20
|
+
* least a day old and not yet expired, for sixty days. One left alone
|
|
21
|
+
* expires and cannot be renewed. The manager renews it `renewBefore` its
|
|
22
|
+
* end, checks daily once started, and before each use. A token whose expiry
|
|
23
|
+
* is unknown is renewed at the first chance, which reveals it. Calls made at
|
|
24
|
+
* the same time share one renewal. Before renewing, the manager rereads the
|
|
25
|
+
* store, so a token another process renewed is used as it is. Two processes
|
|
26
|
+
* renewing at the same moment both get valid tokens.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ThreadsTokenManager {
|
|
29
|
+
private readonly client;
|
|
30
|
+
private readonly options;
|
|
31
|
+
private readonly store;
|
|
32
|
+
private readonly key;
|
|
33
|
+
private readonly renewBefore;
|
|
34
|
+
private readonly now;
|
|
35
|
+
private nextAttemptAt;
|
|
36
|
+
private renewing?;
|
|
37
|
+
private timer?;
|
|
38
|
+
constructor(client: ThreadsClient, options: ThreadsTokenOptions);
|
|
39
|
+
/** A token to call the API with, renewed first when it is due. */
|
|
40
|
+
token(): Promise<string>;
|
|
41
|
+
/** Renews the token now, whatever its age. */
|
|
42
|
+
renew(): Promise<StoredToken>;
|
|
43
|
+
private renewOnce;
|
|
44
|
+
/** Checks the token every day until `stop()`. */
|
|
45
|
+
start(): void;
|
|
46
|
+
stop(): void;
|
|
47
|
+
private current;
|
|
48
|
+
private due;
|
|
49
|
+
private doRenew;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/channels/threads/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACrC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAuB;IACxC,OAAO,CAAC,KAAK,CAAC,CAAiC;gBAG5B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,mBAAmB;IAQ/C,kEAAkE;IAC5D,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAoB9B,8CAA8C;IAC9C,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAI7B,OAAO,CAAC,SAAS;IAOjB,iDAAiD;IACjD,KAAK,IAAI,IAAI;IAUb,IAAI,IAAI,IAAI;YAKE,OAAO;IAsBrB,OAAO,CAAC,GAAG;YAMG,OAAO;CA4BtB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { FeedError } from '../../feeds/errors.js';
|
|
2
|
+
import { MemoryTokenStore } from '../../feeds/token-store.js';
|
|
3
|
+
const DAY = 24 * 60 * 60 * 1000;
|
|
4
|
+
const HOUR = 60 * 60 * 1000;
|
|
5
|
+
/**
|
|
6
|
+
* A Threads long-lived token kept fresh. Threads renews a token that is at
|
|
7
|
+
* least a day old and not yet expired, for sixty days. One left alone
|
|
8
|
+
* expires and cannot be renewed. The manager renews it `renewBefore` its
|
|
9
|
+
* end, checks daily once started, and before each use. A token whose expiry
|
|
10
|
+
* is unknown is renewed at the first chance, which reveals it. Calls made at
|
|
11
|
+
* the same time share one renewal. Before renewing, the manager rereads the
|
|
12
|
+
* store, so a token another process renewed is used as it is. Two processes
|
|
13
|
+
* renewing at the same moment both get valid tokens.
|
|
14
|
+
*/
|
|
15
|
+
export class ThreadsTokenManager {
|
|
16
|
+
client;
|
|
17
|
+
options;
|
|
18
|
+
store;
|
|
19
|
+
key;
|
|
20
|
+
renewBefore;
|
|
21
|
+
now;
|
|
22
|
+
nextAttemptAt = 0;
|
|
23
|
+
renewing;
|
|
24
|
+
timer;
|
|
25
|
+
constructor(client, options) {
|
|
26
|
+
this.client = client;
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.store = options.store ?? new MemoryTokenStore();
|
|
29
|
+
this.key = options.storeKey ?? 'threads';
|
|
30
|
+
this.renewBefore = options.renewBefore ?? 7 * DAY;
|
|
31
|
+
this.now = options.now ?? Date.now;
|
|
32
|
+
}
|
|
33
|
+
/** A token to call the API with, renewed first when it is due. */
|
|
34
|
+
async token() {
|
|
35
|
+
const current = await this.current();
|
|
36
|
+
if (current.expiresAt !== undefined && current.expiresAt <= this.now()) {
|
|
37
|
+
throw new FeedError('threads', 'token_expired', `The Threads token expired on ${new Date(current.expiresAt).toISOString()}: sign in again for a new long-lived token`);
|
|
38
|
+
}
|
|
39
|
+
if (this.due(current)) {
|
|
40
|
+
try {
|
|
41
|
+
return (await this.renewOnce(false)).value;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (error instanceof FeedError && error.code === 'token_expired')
|
|
45
|
+
throw error;
|
|
46
|
+
console.warn('[threads] Could not renew the token, using the current one:', error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return current.value;
|
|
50
|
+
}
|
|
51
|
+
/** Renews the token now, whatever its age. */
|
|
52
|
+
renew() {
|
|
53
|
+
return this.renewOnce(true);
|
|
54
|
+
}
|
|
55
|
+
renewOnce(force) {
|
|
56
|
+
this.renewing ??= this.doRenew(force).finally(() => {
|
|
57
|
+
this.renewing = undefined;
|
|
58
|
+
});
|
|
59
|
+
return this.renewing;
|
|
60
|
+
}
|
|
61
|
+
/** Checks the token every day until `stop()`. */
|
|
62
|
+
start() {
|
|
63
|
+
if (this.timer)
|
|
64
|
+
return;
|
|
65
|
+
this.timer = setInterval(() => {
|
|
66
|
+
void this.token().catch((error) => console.error('[threads] The daily token check failed:', error));
|
|
67
|
+
}, DAY);
|
|
68
|
+
this.timer.unref?.();
|
|
69
|
+
}
|
|
70
|
+
stop() {
|
|
71
|
+
if (this.timer)
|
|
72
|
+
clearInterval(this.timer);
|
|
73
|
+
this.timer = undefined;
|
|
74
|
+
}
|
|
75
|
+
async current() {
|
|
76
|
+
const stored = await this.store.get(this.key);
|
|
77
|
+
if (stored)
|
|
78
|
+
return stored;
|
|
79
|
+
if (!this.options.accessToken) {
|
|
80
|
+
throw new FeedError('threads', 'auth', 'No Threads token: pass accessToken or put one in the token store');
|
|
81
|
+
}
|
|
82
|
+
const expiresAt = this.options.accessTokenExpiresAt;
|
|
83
|
+
const seeded = {
|
|
84
|
+
value: this.options.accessToken,
|
|
85
|
+
issuedAt: this.now(),
|
|
86
|
+
...(expiresAt !== undefined && {
|
|
87
|
+
expiresAt: typeof expiresAt === 'number' ? expiresAt : expiresAt.getTime(),
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
await this.store.set(this.key, seeded);
|
|
91
|
+
return seeded;
|
|
92
|
+
}
|
|
93
|
+
due(token) {
|
|
94
|
+
if (this.now() < this.nextAttemptAt)
|
|
95
|
+
return false;
|
|
96
|
+
if (token.expiresAt === undefined)
|
|
97
|
+
return true;
|
|
98
|
+
return token.expiresAt - this.now() <= this.renewBefore && this.now() - token.issuedAt >= DAY;
|
|
99
|
+
}
|
|
100
|
+
async doRenew(force) {
|
|
101
|
+
const latest = await this.current();
|
|
102
|
+
if (!force && !this.due(latest))
|
|
103
|
+
return latest;
|
|
104
|
+
try {
|
|
105
|
+
const response = await this.client.get('refresh_access_token', latest.value, { grant_type: 'th_refresh_token' });
|
|
106
|
+
const now = this.now();
|
|
107
|
+
const renewed = {
|
|
108
|
+
value: response.access_token,
|
|
109
|
+
issuedAt: now,
|
|
110
|
+
...(response.expires_in !== undefined && { expiresAt: now + response.expires_in * 1000 }),
|
|
111
|
+
};
|
|
112
|
+
await this.store.set(this.key, renewed);
|
|
113
|
+
this.nextAttemptAt = 0;
|
|
114
|
+
try {
|
|
115
|
+
await this.options.onTokenRenewed?.(renewed);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
console.error('[threads] onTokenRenewed failed:', error);
|
|
119
|
+
}
|
|
120
|
+
return renewed;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
this.nextAttemptAt = this.now() + HOUR;
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/channels/threads/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Attachment } from '@cogitator-ai/types';
|
|
2
|
+
/**
|
|
3
|
+
* The bytes of an attachment: its buffer, or its URL downloaded. Fails with
|
|
4
|
+
* `invalid_post` when it is over `maxBytes`, without reading past the limit,
|
|
5
|
+
* or when the URL does not serve it, and with `unavailable` (or
|
|
6
|
+
* `rate_limited`) when its host fails for now, so the post is tried again.
|
|
7
|
+
*/
|
|
8
|
+
export declare function attachmentBytes(feed: string, attachment: Attachment, options: {
|
|
9
|
+
maxBytes: number;
|
|
10
|
+
fetch?: typeof fetch;
|
|
11
|
+
what: string;
|
|
12
|
+
}): Promise<Uint8Array>;
|
|
13
|
+
/** Fails with `invalid_post` unless the attachment is an image. */
|
|
14
|
+
export declare function assertImage(feed: string, attachment: Attachment, what: string): void;
|
|
15
|
+
//# sourceMappingURL=attachments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/feeds/attachments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,UAAU,CAAC,CAqFrB;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQpF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { FeedError, retryAfterOf } from './errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* The bytes of an attachment: its buffer, or its URL downloaded. Fails with
|
|
4
|
+
* `invalid_post` when it is over `maxBytes`, without reading past the limit,
|
|
5
|
+
* or when the URL does not serve it, and with `unavailable` (or
|
|
6
|
+
* `rate_limited`) when its host fails for now, so the post is tried again.
|
|
7
|
+
*/
|
|
8
|
+
export async function attachmentBytes(feed, attachment, options) {
|
|
9
|
+
const tooLarge = (size) => new FeedError(feed, 'invalid_post', `${options.what} is ${size} bytes, the feed takes up to ${options.maxBytes}`);
|
|
10
|
+
if (attachment.buffer) {
|
|
11
|
+
if (attachment.buffer.byteLength > options.maxBytes)
|
|
12
|
+
throw tooLarge(attachment.buffer.byteLength);
|
|
13
|
+
return attachment.buffer;
|
|
14
|
+
}
|
|
15
|
+
if (!attachment.url) {
|
|
16
|
+
throw new FeedError(feed, 'invalid_post', `${options.what} has neither a buffer nor a url`);
|
|
17
|
+
}
|
|
18
|
+
const unreachable = (error) => new FeedError(feed, 'unavailable', `Could not download ${options.what} from ${attachment.url}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
19
|
+
let response;
|
|
20
|
+
try {
|
|
21
|
+
response = await (options.fetch ?? fetch)(attachment.url);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
throw unreachable(error);
|
|
25
|
+
}
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
const { status } = response;
|
|
28
|
+
const code = status === 429
|
|
29
|
+
? 'rate_limited'
|
|
30
|
+
: status === 408 || status >= 500
|
|
31
|
+
? 'unavailable'
|
|
32
|
+
: 'invalid_post';
|
|
33
|
+
const retryAfter = retryAfterOf(response.headers);
|
|
34
|
+
await response.body?.cancel().catch(() => { });
|
|
35
|
+
throw new FeedError(feed, code, `Could not download ${options.what} from ${attachment.url}: HTTP ${status}`, { status, ...(retryAfter !== undefined && { retryAfter }) });
|
|
36
|
+
}
|
|
37
|
+
const declared = Number(response.headers.get('content-length'));
|
|
38
|
+
if (Number.isFinite(declared) && declared > options.maxBytes) {
|
|
39
|
+
await response.body?.cancel();
|
|
40
|
+
throw tooLarge(declared);
|
|
41
|
+
}
|
|
42
|
+
const reader = response.body?.getReader();
|
|
43
|
+
if (!reader) {
|
|
44
|
+
try {
|
|
45
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw unreachable(error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const chunks = [];
|
|
52
|
+
let size = 0;
|
|
53
|
+
for (;;) {
|
|
54
|
+
let chunk;
|
|
55
|
+
try {
|
|
56
|
+
chunk = await reader.read();
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
throw unreachable(error);
|
|
60
|
+
}
|
|
61
|
+
const { done, value } = chunk;
|
|
62
|
+
if (done)
|
|
63
|
+
break;
|
|
64
|
+
size += value.byteLength;
|
|
65
|
+
if (size > options.maxBytes) {
|
|
66
|
+
await reader.cancel();
|
|
67
|
+
throw tooLarge(size);
|
|
68
|
+
}
|
|
69
|
+
chunks.push(value);
|
|
70
|
+
}
|
|
71
|
+
const bytes = new Uint8Array(size);
|
|
72
|
+
let offset = 0;
|
|
73
|
+
for (const chunk of chunks) {
|
|
74
|
+
bytes.set(chunk, offset);
|
|
75
|
+
offset += chunk.byteLength;
|
|
76
|
+
}
|
|
77
|
+
return bytes;
|
|
78
|
+
}
|
|
79
|
+
/** Fails with `invalid_post` unless the attachment is an image. */
|
|
80
|
+
export function assertImage(feed, attachment, what) {
|
|
81
|
+
if (attachment.type !== 'image' || !attachment.mimeType.startsWith('image/')) {
|
|
82
|
+
throw new FeedError(feed, 'invalid_post', `${what} must be an image, got ${attachment.type} (${attachment.mimeType})`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=attachments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/feeds/attachments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type FeedErrorCode =
|
|
2
|
+
/** The credentials are wrong or lack a permission. */
|
|
3
|
+
'auth'
|
|
4
|
+
/** The token or session expired and cannot be renewed. */
|
|
5
|
+
| 'token_expired'
|
|
6
|
+
/** Too many requests: try again after `retryAfter`. */
|
|
7
|
+
| 'rate_limited'
|
|
8
|
+
/** The account used up its publishing quota for now. */
|
|
9
|
+
| 'quota_exceeded'
|
|
10
|
+
/** The post breaks a rule of the feed: too long, too many links, a bad tag or image. */
|
|
11
|
+
| 'invalid_post'
|
|
12
|
+
/** The post or account it refers to does not exist. */
|
|
13
|
+
| 'not_found'
|
|
14
|
+
/** The feed failed or did not answer: try again. */
|
|
15
|
+
| 'unavailable' | 'unknown';
|
|
16
|
+
/** A failure of a feed, with whether and when trying again can help. */
|
|
17
|
+
export declare class FeedError extends Error {
|
|
18
|
+
readonly feed: string;
|
|
19
|
+
readonly code: FeedErrorCode;
|
|
20
|
+
/** The HTTP status, where the feed answered with one. */
|
|
21
|
+
readonly status?: number;
|
|
22
|
+
/** How long to wait before trying again, in ms, where the feed said. */
|
|
23
|
+
readonly retryAfter?: number;
|
|
24
|
+
/** The platform's finer error code where it gives one, such as a Graph API `error_subcode`. */
|
|
25
|
+
readonly subcode?: number;
|
|
26
|
+
constructor(feed: string, code: FeedErrorCode, message: string, options?: {
|
|
27
|
+
status?: number;
|
|
28
|
+
retryAfter?: number;
|
|
29
|
+
subcode?: number;
|
|
30
|
+
cause?: unknown;
|
|
31
|
+
});
|
|
32
|
+
/** Whether publishing again later can succeed. */
|
|
33
|
+
get retryable(): boolean;
|
|
34
|
+
}
|
|
35
|
+
/** The error code an HTTP status means, where the body says nothing more precise. */
|
|
36
|
+
export declare function feedErrorCode(status: number): FeedErrorCode;
|
|
37
|
+
/**
|
|
38
|
+
* How long a `Retry-After` header (seconds or an HTTP date) or a
|
|
39
|
+
* `ratelimit-reset` header (epoch seconds) asks to wait, in ms.
|
|
40
|
+
*/
|
|
41
|
+
export declare function retryAfterOf(headers: Headers, now?: number): number | undefined;
|
|
42
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/feeds/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa;AACvB,sDAAsD;AACpD,MAAM;AACR,0DAA0D;GACxD,eAAe;AACjB,uDAAuD;GACrD,cAAc;AAChB,wDAAwD;GACtD,gBAAgB;AAClB,wFAAwF;GACtF,cAAc;AAChB,uDAAuD;GACrD,WAAW;AACb,oDAAoD;GAClD,aAAa,GACb,SAAS,CAAC;AAQd,wEAAwE;AACxE,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAGxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;IAW3F,kDAAkD;IAClD,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAO3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,SAAS,CAWnF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const RETRYABLE = new Set([
|
|
2
|
+
'rate_limited',
|
|
3
|
+
'quota_exceeded',
|
|
4
|
+
'unavailable',
|
|
5
|
+
]);
|
|
6
|
+
/** A failure of a feed, with whether and when trying again can help. */
|
|
7
|
+
export class FeedError extends Error {
|
|
8
|
+
feed;
|
|
9
|
+
code;
|
|
10
|
+
/** The HTTP status, where the feed answered with one. */
|
|
11
|
+
status;
|
|
12
|
+
/** How long to wait before trying again, in ms, where the feed said. */
|
|
13
|
+
retryAfter;
|
|
14
|
+
/** The platform's finer error code where it gives one, such as a Graph API `error_subcode`. */
|
|
15
|
+
subcode;
|
|
16
|
+
constructor(feed, code, message, options = {}) {
|
|
17
|
+
super(`[${feed}] ${message}`, { cause: options.cause });
|
|
18
|
+
this.name = 'FeedError';
|
|
19
|
+
this.feed = feed;
|
|
20
|
+
this.code = code;
|
|
21
|
+
if (options.status !== undefined)
|
|
22
|
+
this.status = options.status;
|
|
23
|
+
if (options.retryAfter !== undefined)
|
|
24
|
+
this.retryAfter = options.retryAfter;
|
|
25
|
+
if (options.subcode !== undefined)
|
|
26
|
+
this.subcode = options.subcode;
|
|
27
|
+
}
|
|
28
|
+
/** Whether publishing again later can succeed. */
|
|
29
|
+
get retryable() {
|
|
30
|
+
return RETRYABLE.has(this.code);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** The error code an HTTP status means, where the body says nothing more precise. */
|
|
34
|
+
export function feedErrorCode(status) {
|
|
35
|
+
if (status === 401 || status === 403)
|
|
36
|
+
return 'auth';
|
|
37
|
+
if (status === 404)
|
|
38
|
+
return 'not_found';
|
|
39
|
+
if (status === 429)
|
|
40
|
+
return 'rate_limited';
|
|
41
|
+
if (status === 400 || status === 413 || status === 422)
|
|
42
|
+
return 'invalid_post';
|
|
43
|
+
if (status >= 500)
|
|
44
|
+
return 'unavailable';
|
|
45
|
+
return 'unknown';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* How long a `Retry-After` header (seconds or an HTTP date) or a
|
|
49
|
+
* `ratelimit-reset` header (epoch seconds) asks to wait, in ms.
|
|
50
|
+
*/
|
|
51
|
+
export function retryAfterOf(headers, now = Date.now()) {
|
|
52
|
+
const after = headers.get('retry-after');
|
|
53
|
+
if (after) {
|
|
54
|
+
const seconds = Number(after);
|
|
55
|
+
if (Number.isFinite(seconds))
|
|
56
|
+
return Math.max(0, seconds * 1000);
|
|
57
|
+
const date = Date.parse(after);
|
|
58
|
+
if (Number.isFinite(date))
|
|
59
|
+
return Math.max(0, date - now);
|
|
60
|
+
}
|
|
61
|
+
const reset = Number(headers.get('ratelimit-reset'));
|
|
62
|
+
if (Number.isFinite(reset) && reset > 0)
|
|
63
|
+
return Math.max(0, reset * 1000 - now);
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/feeds/errors.ts"],"names":[],"mappings":"AAiBA,MAAM,SAAS,GAA+B,IAAI,GAAG,CAAC;IACpD,cAAc;IACd,gBAAgB;IAChB,aAAa;CACd,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAS;IACb,IAAI,CAAgB;IAC7B,yDAAyD;IAChD,MAAM,CAAU;IACzB,wEAAwE;IAC/D,UAAU,CAAU;IAC7B,+FAA+F;IACtF,OAAO,CAAU;IAE1B,YACE,IAAY,EACZ,IAAmB,EACnB,OAAe,EACf,UAAuF,EAAE;QAEzF,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/D,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC3E,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACpE,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS;QACX,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC1C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC9E,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,aAAa,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;IAChF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { FeedError, feedErrorCode, retryAfterOf } from './errors.js';
|
|
2
|
+
export type { FeedErrorCode } from './errors.js';
|
|
3
|
+
export { FeedPublisher, type FeedFailedEvent, type FeedPublishedEvent, type FeedPublisherOptions, type FeedRetryOptions, type PublishOptions, type PublishOutcome, } from './publisher.js';
|
|
4
|
+
export { FilePublishStore, MemoryPublishStore, PostgresPublishStore, decodeJob, encodeJob, isPending, nextDueAt, type FeedDelivery, type FilePublishStoreOptions, type JobClaim, type PostgresPublishStoreOptions, type PublishJob, type PublishStore, } from './publish-store.js';
|
|
5
|
+
export { FileTokenStore, MemoryTokenStore, PostgresTokenStore, type FileTokenStoreOptions, type PostgresTokenStoreOptions, } from './token-store.js';
|
|
6
|
+
export type { PgClient } from './storage.js';
|
|
7
|
+
export { fitText, graphemeLength, graphemes, splitText, threadsLength, type TextMeasure, } from './text.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feeds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,2BAA2B,EAChC,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,GAC/B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { FeedError, feedErrorCode, retryAfterOf } from './errors.js';
|
|
2
|
+
export { FeedPublisher, } from './publisher.js';
|
|
3
|
+
export { FilePublishStore, MemoryPublishStore, PostgresPublishStore, decodeJob, encodeJob, isPending, nextDueAt, } from './publish-store.js';
|
|
4
|
+
export { FileTokenStore, MemoryTokenStore, PostgresTokenStore, } from './token-store.js';
|
|
5
|
+
export { fitText, graphemeLength, graphemes, splitText, threadsLength, } from './text.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/feeds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,EACL,aAAa,GAOd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,GAOV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,OAAO,EACP,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,GAEd,MAAM,QAAQ,CAAC"}
|