@profullstack/agenticjobs 0.11.0 → 0.12.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.
- package/README.md +66 -0
- package/dist/cli/args.js +3 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.js +149 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/jobfile.js +38 -2
- package/dist/cli/jobfile.js.map +1 -1
- package/dist/client/client.d.ts +113 -0
- package/dist/client/client.js +25 -0
- package/dist/client/client.js.map +1 -1
- package/dist/config.d.ts +35 -1
- package/dist/config.js +33 -1
- package/dist/config.js.map +1 -1
- package/dist/core/candidates.js +3 -5
- package/dist/core/candidates.js.map +1 -1
- package/dist/core/capacity.d.ts +1 -1
- package/dist/core/capacity.js +11 -19
- package/dist/core/capacity.js.map +1 -1
- package/dist/core/coinpay.d.ts +143 -0
- package/dist/core/coinpay.js +417 -0
- package/dist/core/coinpay.js.map +1 -0
- package/dist/core/import.js +9 -7
- package/dist/core/import.js.map +1 -1
- package/dist/core/inbox.d.ts +155 -0
- package/dist/core/inbox.js +353 -0
- package/dist/core/inbox.js.map +1 -0
- package/dist/core/invoices.d.ts +111 -0
- package/dist/core/invoices.js +292 -0
- package/dist/core/invoices.js.map +1 -0
- package/dist/core/mail.d.ts +16 -0
- package/dist/core/mail.js +22 -0
- package/dist/core/mail.js.map +1 -1
- package/dist/directory/fetch.d.ts +1 -1
- package/dist/markup/markdown.js +4 -1
- package/dist/markup/markdown.js.map +1 -1
- package/dist/mcp/tools.js +150 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/app.d.ts +4 -3
- package/dist/server/app.js +7 -4
- package/dist/server/app.js.map +1 -1
- package/dist/server/deps.d.ts +5 -0
- package/dist/server/middleware.js +9 -1
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/routes/api.js +284 -0
- package/dist/server/routes/api.js.map +1 -1
- package/dist/server/routes/discovery.js +19 -0
- package/dist/server/routes/discovery.js.map +1 -1
- package/dist/server/routes/inbox.d.ts +9 -0
- package/dist/server/routes/inbox.js +223 -0
- package/dist/server/routes/inbox.js.map +1 -0
- package/dist/server/routes/openapi.js +124 -0
- package/dist/server/routes/openapi.js.map +1 -1
- package/dist/server/routes/pages.d.ts +22 -0
- package/dist/server/routes/pages.js +91 -7
- package/dist/server/routes/pages.js.map +1 -1
- package/dist/views/candidates.d.ts +1 -0
- package/dist/views/candidates.js +1 -1
- package/dist/views/candidates.js.map +1 -1
- package/dist/views/docs.js +10 -1
- package/dist/views/docs.js.map +1 -1
- package/dist/views/inbox.d.ts +90 -0
- package/dist/views/inbox.js +73 -0
- package/dist/views/inbox.js.map +1 -0
- package/dist/views/jobs.d.ts +9 -0
- package/dist/views/jobs.js +3 -2
- package/dist/views/jobs.js.map +1 -1
- package/dist/views/layout.d.ts +2 -0
- package/dist/views/layout.js +2 -2
- package/dist/views/layout.js.map +1 -1
- package/dist/views/me.d.ts +3 -3
- package/dist/views/me.js +2 -2
- package/dist/views/me.js.map +1 -1
- package/dist/views/updates.d.ts +13 -0
- package/dist/views/updates.js +2 -1
- package/dist/views/updates.js.map +1 -1
- package/migrations/0014_inbox_and_billing.sql +138 -0
- package/package.json +1 -1
- package/web/public/app.css +135 -0
- package/web/public/sw.js +1 -1
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoinPay: connecting a person's account, and minting the payments that settle
|
|
3
|
+
* an invoice to their wallet.
|
|
4
|
+
*
|
|
5
|
+
* Two credentials do two jobs, and it matters which is which:
|
|
6
|
+
*
|
|
7
|
+
* - A person connects their own CoinPay account over OAuth. The board asks for
|
|
8
|
+
* `wallet:read` and uses the token for exactly one call, `userinfo`, which
|
|
9
|
+
* returns the wallets they can be paid to. That is all the token can do;
|
|
10
|
+
* CoinPay's OAuth has no scope for creating anything.
|
|
11
|
+
* - The board has a business key of its own. That is what creates a payment,
|
|
12
|
+
* with the payee's address as `merchant_wallet_address`, and CoinPay records
|
|
13
|
+
* who authorised the third-party payout. The board never holds funds.
|
|
14
|
+
*
|
|
15
|
+
* `wallet:read` is checked on the scope the token came back with, not on the
|
|
16
|
+
* scope that was asked for. CoinPay narrows a grant to what the client was
|
|
17
|
+
* registered for without an error, and a board that trusts its own request
|
|
18
|
+
* ends up showing "Connected" beside an account it cannot read a wallet from.
|
|
19
|
+
*
|
|
20
|
+
* Everything here goes through one `fetch`, injected, so the suite can stand
|
|
21
|
+
* in for CoinPay without a network.
|
|
22
|
+
*/
|
|
23
|
+
import { createHash, createHmac, randomBytes, timingSafeEqual } from 'node:crypto';
|
|
24
|
+
export const REQUIRED_SCOPE = 'wallet:read';
|
|
25
|
+
export const SCOPES = ['openid', 'profile', 'email', REQUIRED_SCOPE];
|
|
26
|
+
/** An authorization has this long to come back. */
|
|
27
|
+
const STATE_TTL_MS = 10 * 60 * 1000;
|
|
28
|
+
/** Refresh a token this close to expiry rather than using it. */
|
|
29
|
+
const EXPIRY_BUFFER_MS = 5 * 60 * 1000;
|
|
30
|
+
export class CoinPayProblem extends Error {
|
|
31
|
+
}
|
|
32
|
+
function base64url(bytes) {
|
|
33
|
+
return bytes.toString('base64url');
|
|
34
|
+
}
|
|
35
|
+
export function pkcePair() {
|
|
36
|
+
const verifier = base64url(randomBytes(32));
|
|
37
|
+
const challenge = base64url(createHash('sha256').update(verifier).digest());
|
|
38
|
+
return { verifier, challenge };
|
|
39
|
+
}
|
|
40
|
+
function str(value) {
|
|
41
|
+
return typeof value === 'string' && value.trim() !== '' ? value.trim() : null;
|
|
42
|
+
}
|
|
43
|
+
/** The wallets claim, as userinfo returns it: `{ address, chain, label }`. */
|
|
44
|
+
export function normaliseWallets(value) {
|
|
45
|
+
if (!Array.isArray(value))
|
|
46
|
+
return [];
|
|
47
|
+
const out = [];
|
|
48
|
+
for (const entry of value) {
|
|
49
|
+
if (typeof entry !== 'object' || entry === null)
|
|
50
|
+
continue;
|
|
51
|
+
const record = entry;
|
|
52
|
+
const address = str(record['address']);
|
|
53
|
+
const chain = str(record['chain']) ?? str(record['cryptocurrency']);
|
|
54
|
+
if (address === null || chain === null)
|
|
55
|
+
continue;
|
|
56
|
+
out.push({ address, chain: chain.toUpperCase(), label: str(record['label']) });
|
|
57
|
+
}
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
60
|
+
export function hasScope(scope, wanted = REQUIRED_SCOPE) {
|
|
61
|
+
const list = Array.isArray(scope) ? scope : scope.split(/\s+/).filter(Boolean);
|
|
62
|
+
return list.includes(wanted);
|
|
63
|
+
}
|
|
64
|
+
function tokenSet(body) {
|
|
65
|
+
const accessToken = str(body['access_token']);
|
|
66
|
+
if (accessToken === null)
|
|
67
|
+
throw new CoinPayProblem('CoinPay returned no access token.');
|
|
68
|
+
const expiresIn = typeof body['expires_in'] === 'number' ? body['expires_in'] : 3600;
|
|
69
|
+
return {
|
|
70
|
+
accessToken,
|
|
71
|
+
refreshToken: str(body['refresh_token']),
|
|
72
|
+
scope: (str(body['scope']) ?? '').split(/\s+/).filter(Boolean),
|
|
73
|
+
expiresAt: new Date(Date.now() + expiresIn * 1000).toISOString(),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function payment(body) {
|
|
77
|
+
const id = str(body['id']);
|
|
78
|
+
if (id === null)
|
|
79
|
+
throw new CoinPayProblem('CoinPay returned a payment with no id.');
|
|
80
|
+
const crypto = body['amount_crypto'] ?? body['crypto_amount'];
|
|
81
|
+
return {
|
|
82
|
+
id,
|
|
83
|
+
address: str(body['payment_address']),
|
|
84
|
+
amountCrypto: crypto === undefined || crypto === null ? null : String(crypto),
|
|
85
|
+
currency: (str(body['currency']) ?? str(body['blockchain']))?.toUpperCase() ?? null,
|
|
86
|
+
status: str(body['status']) ?? 'pending',
|
|
87
|
+
expiresAt: str(body['expires_at']),
|
|
88
|
+
txHash: str(body['tx_hash']),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function createCoinPay(config, fetchImpl = fetch) {
|
|
92
|
+
const api = `${config.url}/api`;
|
|
93
|
+
async function call(path, init) {
|
|
94
|
+
let response;
|
|
95
|
+
try {
|
|
96
|
+
response = await fetchImpl(`${api}${path}`, {
|
|
97
|
+
method: init.method ?? 'GET',
|
|
98
|
+
headers: init.headers ?? {},
|
|
99
|
+
...(init.body === undefined ? {} : { body: init.body }),
|
|
100
|
+
signal: AbortSignal.timeout(15_000),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw new CoinPayProblem(`CoinPay is not answering: ${error.message}`);
|
|
105
|
+
}
|
|
106
|
+
const text = await response.text();
|
|
107
|
+
let parsed = {};
|
|
108
|
+
try {
|
|
109
|
+
parsed = text === '' ? {} : JSON.parse(text);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// An HTML error page, usually a wrong COINPAY_URL. Say so.
|
|
113
|
+
throw new CoinPayProblem(`CoinPay answered ${response.status} with something that is not JSON.`);
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
status: response.status,
|
|
117
|
+
body: typeof parsed === 'object' && parsed !== null ? parsed : {},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function errorOf(body, fallback) {
|
|
121
|
+
const error = body['error'];
|
|
122
|
+
if (typeof error === 'string')
|
|
123
|
+
return error;
|
|
124
|
+
if (typeof error === 'object' && error !== null) {
|
|
125
|
+
const message = error['message'];
|
|
126
|
+
if (typeof message === 'string')
|
|
127
|
+
return message;
|
|
128
|
+
}
|
|
129
|
+
return typeof body['error_description'] === 'string' ? body['error_description'] : fallback;
|
|
130
|
+
}
|
|
131
|
+
async function token(params) {
|
|
132
|
+
const result = await call('/oauth/token', {
|
|
133
|
+
method: 'POST',
|
|
134
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
135
|
+
body: new URLSearchParams({
|
|
136
|
+
...params,
|
|
137
|
+
client_id: config.clientId,
|
|
138
|
+
client_secret: config.clientSecret,
|
|
139
|
+
}).toString(),
|
|
140
|
+
});
|
|
141
|
+
if (result.status !== 200) {
|
|
142
|
+
throw new CoinPayProblem(errorOf(result.body, 'CoinPay refused the token request.'));
|
|
143
|
+
}
|
|
144
|
+
return tokenSet(result.body);
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
config,
|
|
148
|
+
authorizeUrl({ state, codeChallenge, redirectUri }) {
|
|
149
|
+
const params = new URLSearchParams({
|
|
150
|
+
client_id: config.clientId,
|
|
151
|
+
redirect_uri: redirectUri,
|
|
152
|
+
response_type: 'code',
|
|
153
|
+
scope: SCOPES.join(' '),
|
|
154
|
+
state,
|
|
155
|
+
code_challenge: codeChallenge,
|
|
156
|
+
code_challenge_method: 'S256',
|
|
157
|
+
});
|
|
158
|
+
return `${api}/oauth/authorize?${params.toString()}`;
|
|
159
|
+
},
|
|
160
|
+
exchangeCode({ code, redirectUri, codeVerifier }) {
|
|
161
|
+
return token({
|
|
162
|
+
grant_type: 'authorization_code',
|
|
163
|
+
code,
|
|
164
|
+
redirect_uri: redirectUri,
|
|
165
|
+
code_verifier: codeVerifier,
|
|
166
|
+
});
|
|
167
|
+
},
|
|
168
|
+
refresh(refreshToken) {
|
|
169
|
+
return token({ grant_type: 'refresh_token', refresh_token: refreshToken });
|
|
170
|
+
},
|
|
171
|
+
async userinfo(accessToken) {
|
|
172
|
+
const result = await call('/oauth/userinfo', {
|
|
173
|
+
headers: { authorization: `Bearer ${accessToken}` },
|
|
174
|
+
});
|
|
175
|
+
if (result.status !== 200) {
|
|
176
|
+
throw new CoinPayProblem(errorOf(result.body, 'CoinPay would not say who that token is.'));
|
|
177
|
+
}
|
|
178
|
+
const sub = str(result.body['sub']);
|
|
179
|
+
if (sub === null)
|
|
180
|
+
throw new CoinPayProblem('CoinPay returned a user with no id.');
|
|
181
|
+
return {
|
|
182
|
+
sub,
|
|
183
|
+
email: str(result.body['email']),
|
|
184
|
+
name: str(result.body['name']),
|
|
185
|
+
wallets: normaliseWallets(result.body['wallets']),
|
|
186
|
+
};
|
|
187
|
+
},
|
|
188
|
+
async createPayment(input) {
|
|
189
|
+
const result = await call('/payments/create', {
|
|
190
|
+
method: 'POST',
|
|
191
|
+
headers: {
|
|
192
|
+
'content-type': 'application/json',
|
|
193
|
+
authorization: `Bearer ${config.apiKey}`,
|
|
194
|
+
},
|
|
195
|
+
body: JSON.stringify({
|
|
196
|
+
business_id: config.businessId,
|
|
197
|
+
amount_usd: Number(input.amountUsd),
|
|
198
|
+
payment_method: 'crypto',
|
|
199
|
+
blockchain: input.chain,
|
|
200
|
+
merchant_wallet_address: input.payeeAddress,
|
|
201
|
+
description: input.description,
|
|
202
|
+
redirect_url: input.redirectUrl,
|
|
203
|
+
metadata: { ...input.metadata, idempotency_key: input.idempotencyKey },
|
|
204
|
+
}),
|
|
205
|
+
});
|
|
206
|
+
if (result.status !== 200 && result.status !== 201) {
|
|
207
|
+
throw new CoinPayProblem(errorOf(result.body, 'CoinPay would not create the payment.'));
|
|
208
|
+
}
|
|
209
|
+
const body = result.body['payment'];
|
|
210
|
+
if (typeof body !== 'object' || body === null) {
|
|
211
|
+
throw new CoinPayProblem('CoinPay returned no payment.');
|
|
212
|
+
}
|
|
213
|
+
return payment(body);
|
|
214
|
+
},
|
|
215
|
+
async getPayment(id) {
|
|
216
|
+
const result = await call(`/payments/${encodeURIComponent(id)}`, {});
|
|
217
|
+
if (result.status === 404)
|
|
218
|
+
return null;
|
|
219
|
+
if (result.status !== 200) {
|
|
220
|
+
throw new CoinPayProblem(errorOf(result.body, 'CoinPay would not return the payment.'));
|
|
221
|
+
}
|
|
222
|
+
const body = result.body['payment'];
|
|
223
|
+
if (typeof body !== 'object' || body === null)
|
|
224
|
+
return null;
|
|
225
|
+
return payment(body);
|
|
226
|
+
},
|
|
227
|
+
payUrl(paymentId) {
|
|
228
|
+
return `${config.url}/pay/${encodeURIComponent(paymentId)}`;
|
|
229
|
+
},
|
|
230
|
+
verifyWebhook(rawBody, signature, now = Date.now()) {
|
|
231
|
+
if (config.webhookSecret === null || signature === undefined)
|
|
232
|
+
return false;
|
|
233
|
+
// `t=<unix seconds>,v1=<hex>`, HMAC-SHA256 over `<t>.<body>`.
|
|
234
|
+
const parts = new Map();
|
|
235
|
+
for (const part of signature.split(',')) {
|
|
236
|
+
const at = part.indexOf('=');
|
|
237
|
+
if (at === -1)
|
|
238
|
+
continue;
|
|
239
|
+
parts.set(part.slice(0, at).trim(), part.slice(at + 1).trim());
|
|
240
|
+
}
|
|
241
|
+
const t = parts.get('t');
|
|
242
|
+
const v1 = parts.get('v1');
|
|
243
|
+
if (t === undefined || v1 === undefined || !/^\d+$/.test(t) || !/^[0-9a-f]+$/i.test(v1)) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
if (Math.abs(Math.floor(now / 1000) - Number(t)) > 300)
|
|
247
|
+
return false;
|
|
248
|
+
const expected = createHmac('sha256', config.webhookSecret)
|
|
249
|
+
.update(`${t}.${rawBody}`)
|
|
250
|
+
.digest();
|
|
251
|
+
const received = Buffer.from(v1, 'hex');
|
|
252
|
+
return received.length === expected.length && timingSafeEqual(received, expected);
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function toAccount(row) {
|
|
257
|
+
const scope = row.scope.split(/\s+/).filter(Boolean);
|
|
258
|
+
return {
|
|
259
|
+
userId: row.user_id,
|
|
260
|
+
sub: row.coinpay_sub,
|
|
261
|
+
email: row.email,
|
|
262
|
+
name: row.name,
|
|
263
|
+
scope,
|
|
264
|
+
wallets: normaliseWallets(row.wallets),
|
|
265
|
+
connectedAt: row.connected_at,
|
|
266
|
+
updatedAt: row.updated_at,
|
|
267
|
+
usable: row.access_token !== '' && hasScope(scope),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
export async function getAccount(pool, userId) {
|
|
271
|
+
const result = await pool.query(`select * from coinpay_accounts where user_id = $1`, [
|
|
272
|
+
userId,
|
|
273
|
+
]);
|
|
274
|
+
const row = result.rows[0];
|
|
275
|
+
return row === undefined ? null : toAccount(row);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Begin connecting. Returns the URL to send the person to.
|
|
279
|
+
*
|
|
280
|
+
* The state and the PKCE verifier live in the database, not a cookie, so the
|
|
281
|
+
* callback can be completed from any session of the same person and a state
|
|
282
|
+
* is used up by being deleted.
|
|
283
|
+
*/
|
|
284
|
+
export async function beginConnect(pool, coinpay, userId, redirectUri, next) {
|
|
285
|
+
const { verifier, challenge } = pkcePair();
|
|
286
|
+
const state = base64url(randomBytes(24));
|
|
287
|
+
await pool.query(`delete from coinpay_oauth_states where expires_at < now()`);
|
|
288
|
+
await pool.query(`insert into coinpay_oauth_states (state, user_id, code_verifier, redirect, expires_at)
|
|
289
|
+
values ($1, $2, $3, $4, $5)`, [state, userId, verifier, next, new Date(Date.now() + STATE_TTL_MS).toISOString()]);
|
|
290
|
+
return coinpay.authorizeUrl({ state, codeChallenge: challenge, redirectUri });
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Finish connecting. Returns where to send the person, or a sentence.
|
|
294
|
+
*
|
|
295
|
+
* The account is attached to whoever *started* the flow, read off the state,
|
|
296
|
+
* not to whoever is signed in when the callback lands: those are the same
|
|
297
|
+
* person in every honest case and a different one in the case this protects
|
|
298
|
+
* against.
|
|
299
|
+
*/
|
|
300
|
+
export async function finishConnect(pool, coinpay, input) {
|
|
301
|
+
const claimed = await pool.query(`delete from coinpay_oauth_states where state = $1 and expires_at > now()
|
|
302
|
+
returning user_id, code_verifier, redirect`, [input.state]);
|
|
303
|
+
const pending = claimed.rows[0];
|
|
304
|
+
if (pending === undefined)
|
|
305
|
+
return 'That connection attempt has expired. Start again.';
|
|
306
|
+
let tokens;
|
|
307
|
+
let info;
|
|
308
|
+
try {
|
|
309
|
+
tokens = await coinpay.exchangeCode({
|
|
310
|
+
code: input.code,
|
|
311
|
+
redirectUri: input.redirectUri,
|
|
312
|
+
codeVerifier: pending.code_verifier,
|
|
313
|
+
});
|
|
314
|
+
info = await coinpay.userinfo(tokens.accessToken);
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
if (error instanceof CoinPayProblem)
|
|
318
|
+
return error.message;
|
|
319
|
+
throw error;
|
|
320
|
+
}
|
|
321
|
+
if (!hasScope(tokens.scope)) {
|
|
322
|
+
return `CoinPay connected the account but did not grant ${REQUIRED_SCOPE}, so no wallet can be read. Check the OAuth client's registered scopes on CoinPay.`;
|
|
323
|
+
}
|
|
324
|
+
// One CoinPay account, one person here.
|
|
325
|
+
const holder = await pool.query(`select user_id from coinpay_accounts where coinpay_sub = $1 and user_id <> $2`, [info.sub, pending.user_id]);
|
|
326
|
+
if (holder.rows.length > 0) {
|
|
327
|
+
return 'That CoinPay account is already connected to a different account on this board. Disconnect it there first.';
|
|
328
|
+
}
|
|
329
|
+
const saved = await pool.query(`insert into coinpay_accounts
|
|
330
|
+
(user_id, coinpay_sub, email, name, access_token, refresh_token, scope, expires_at, wallets)
|
|
331
|
+
values ($1, $2, $3, $4, $5, $6, $7, $8, $9::jsonb)
|
|
332
|
+
on conflict (user_id) do update set
|
|
333
|
+
coinpay_sub = excluded.coinpay_sub, email = excluded.email, name = excluded.name,
|
|
334
|
+
access_token = excluded.access_token,
|
|
335
|
+
refresh_token = coalesce(excluded.refresh_token, coinpay_accounts.refresh_token),
|
|
336
|
+
scope = excluded.scope, expires_at = excluded.expires_at, wallets = excluded.wallets,
|
|
337
|
+
updated_at = now()
|
|
338
|
+
returning *`, [
|
|
339
|
+
pending.user_id,
|
|
340
|
+
info.sub,
|
|
341
|
+
info.email,
|
|
342
|
+
info.name,
|
|
343
|
+
tokens.accessToken,
|
|
344
|
+
tokens.refreshToken,
|
|
345
|
+
tokens.scope.join(' '),
|
|
346
|
+
tokens.expiresAt,
|
|
347
|
+
JSON.stringify(info.wallets),
|
|
348
|
+
]);
|
|
349
|
+
return {
|
|
350
|
+
userId: pending.user_id,
|
|
351
|
+
redirect: pending.redirect,
|
|
352
|
+
account: toAccount(saved.rows[0]),
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* A token that works right now, refreshing if it is about to stop. Null when
|
|
357
|
+
* the person has to reconnect, which the caller should say plainly.
|
|
358
|
+
*/
|
|
359
|
+
async function freshToken(pool, coinpay, row) {
|
|
360
|
+
if (!hasScope(row.scope))
|
|
361
|
+
return null;
|
|
362
|
+
if (new Date(row.expires_at).getTime() - Date.now() > EXPIRY_BUFFER_MS)
|
|
363
|
+
return row.access_token;
|
|
364
|
+
if (row.refresh_token === null)
|
|
365
|
+
return null;
|
|
366
|
+
try {
|
|
367
|
+
const tokens = await coinpay.refresh(row.refresh_token);
|
|
368
|
+
await pool.query(`update coinpay_accounts set access_token = $2, refresh_token = coalesce($3, refresh_token),
|
|
369
|
+
scope = $4, expires_at = $5, updated_at = now() where user_id = $1`, [
|
|
370
|
+
row.user_id,
|
|
371
|
+
tokens.accessToken,
|
|
372
|
+
tokens.refreshToken,
|
|
373
|
+
tokens.scope.join(' '),
|
|
374
|
+
tokens.expiresAt,
|
|
375
|
+
]);
|
|
376
|
+
return hasScope(tokens.scope) ? tokens.accessToken : null;
|
|
377
|
+
}
|
|
378
|
+
catch {
|
|
379
|
+
return null;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Re-read the wallets from CoinPay. Returns the account as it now stands, or
|
|
384
|
+
* a sentence when the connection no longer works.
|
|
385
|
+
*/
|
|
386
|
+
export async function refreshWallets(pool, coinpay, userId) {
|
|
387
|
+
const result = await pool.query(`select * from coinpay_accounts where user_id = $1`, [
|
|
388
|
+
userId,
|
|
389
|
+
]);
|
|
390
|
+
const row = result.rows[0];
|
|
391
|
+
if (row === undefined)
|
|
392
|
+
return 'No CoinPay account is connected.';
|
|
393
|
+
const token = await freshToken(pool, coinpay, row);
|
|
394
|
+
if (token === null)
|
|
395
|
+
return 'The CoinPay connection has lapsed. Reconnect it.';
|
|
396
|
+
try {
|
|
397
|
+
const info = await coinpay.userinfo(token);
|
|
398
|
+
const saved = await pool.query(`update coinpay_accounts set wallets = $2::jsonb, email = $3, name = $4, updated_at = now()
|
|
399
|
+
where user_id = $1 returning *`, [userId, JSON.stringify(info.wallets), info.email, info.name]);
|
|
400
|
+
return toAccount(saved.rows[0]);
|
|
401
|
+
}
|
|
402
|
+
catch (error) {
|
|
403
|
+
if (error instanceof CoinPayProblem)
|
|
404
|
+
return error.message;
|
|
405
|
+
throw error;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Forget the connection. CoinPay publishes no revocation endpoint, so deleting
|
|
410
|
+
* the row is the whole of what can be done; invoices already sent keep the
|
|
411
|
+
* address they were sent with and are unaffected.
|
|
412
|
+
*/
|
|
413
|
+
export async function disconnect(pool, userId) {
|
|
414
|
+
const result = await pool.query(`delete from coinpay_accounts where user_id = $1`, [userId]);
|
|
415
|
+
return (result.rowCount ?? 0) > 0;
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=coinpay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coinpay.js","sourceRoot":"","sources":["../../src/core/coinpay.ts"],"names":[],"mappings":"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"}
|
package/dist/core/import.js
CHANGED
|
@@ -230,13 +230,15 @@ function stripMarks(value) {
|
|
|
230
230
|
return value.replace(/\*+/g, '').trim();
|
|
231
231
|
}
|
|
232
232
|
function decodeXml(value) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
.
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
233
|
+
const named = { lt: '<', gt: '>', quot: '"', apos: "'", amp: '&' };
|
|
234
|
+
// One pass keeps a decoded ampersand from starting another reference.
|
|
235
|
+
return value.replace(/&(#x[0-9a-fA-F]+|#\d+|lt|gt|quot|apos|amp);/g, (whole, entity) => {
|
|
236
|
+
if (entity.startsWith('#x'))
|
|
237
|
+
return String.fromCodePoint(Number.parseInt(entity.slice(2), 16));
|
|
238
|
+
if (entity.startsWith('#'))
|
|
239
|
+
return String.fromCodePoint(Number(entity.slice(1)));
|
|
240
|
+
return named[entity] ?? whole;
|
|
241
|
+
});
|
|
240
242
|
}
|
|
241
243
|
/** Laying text back out of a PDF is poppler's job, not ours. */
|
|
242
244
|
export async function pdfToMarkdown(bytes) {
|
package/dist/core/import.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/core/import.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/core/import.ts"],"names":[],"mappings":"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"}
|