@aibtc/mcp-server 1.47.2 → 1.49.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 (31) hide show
  1. package/dist/services/lightning/provider.d.ts +68 -0
  2. package/dist/services/lightning/provider.d.ts.map +1 -0
  3. package/dist/services/lightning/provider.js +8 -0
  4. package/dist/services/lightning/provider.js.map +1 -0
  5. package/dist/services/lightning/spark-provider.d.ts +41 -0
  6. package/dist/services/lightning/spark-provider.d.ts.map +1 -0
  7. package/dist/services/lightning/spark-provider.js +165 -0
  8. package/dist/services/lightning/spark-provider.js.map +1 -0
  9. package/dist/services/lightning-manager.d.ts +96 -0
  10. package/dist/services/lightning-manager.d.ts.map +1 -0
  11. package/dist/services/lightning-manager.js +226 -0
  12. package/dist/services/lightning-manager.js.map +1 -0
  13. package/dist/services/x402.service.d.ts.map +1 -1
  14. package/dist/services/x402.service.js +228 -0
  15. package/dist/services/x402.service.js.map +1 -1
  16. package/dist/tools/index.d.ts.map +1 -1
  17. package/dist/tools/index.js +3 -0
  18. package/dist/tools/index.js.map +1 -1
  19. package/dist/tools/lightning.tools.d.ts +11 -0
  20. package/dist/tools/lightning.tools.d.ts.map +1 -0
  21. package/dist/tools/lightning.tools.js +345 -0
  22. package/dist/tools/lightning.tools.js.map +1 -0
  23. package/dist/tools/nostr.tools.d.ts.map +1 -1
  24. package/dist/tools/nostr.tools.js +8 -1
  25. package/dist/tools/nostr.tools.js.map +1 -1
  26. package/dist/utils/l402-protocol.d.ts +64 -0
  27. package/dist/utils/l402-protocol.d.ts.map +1 -0
  28. package/dist/utils/l402-protocol.js +114 -0
  29. package/dist/utils/l402-protocol.js.map +1 -0
  30. package/package.json +4 -2
  31. package/skill/SKILL.md +1 -1
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Lightning Network (L402) tools.
3
+ *
4
+ * Exposes MCP tools for managing an embedded Spark-backed Lightning wallet,
5
+ * funding it from the user's L1 BTC wallet, and paying / creating Lightning
6
+ * invoices. The L402 interceptor in src/services/x402.service.ts uses the
7
+ * same LightningProvider singleton to auto-pay invoice challenges on 402s.
8
+ */
9
+ import { z } from "zod";
10
+ import { createJsonResponse, createErrorResponse } from "../utils/index.js";
11
+ import { getLightningManager } from "../services/lightning-manager.js";
12
+ import { getWalletManager } from "../services/wallet-manager.js";
13
+ import { MempoolApi, getMempoolTxUrl, } from "../services/mempool-api.js";
14
+ import { buildAndSignBtcTransaction } from "../transactions/bitcoin-builder.js";
15
+ import { OrdinalIndexer } from "../services/ordinal-indexer.js";
16
+ import { NETWORK } from "../config/networks.js";
17
+ export function registerLightningTools(server) {
18
+ // --- Wallet lifecycle -----------------------------------------------------
19
+ server.registerTool("lightning_create", {
20
+ description: "Create a new embedded Lightning wallet backed by the Spark SDK. " +
21
+ "Generates a fresh BIP39 mnemonic (shown once), encrypts it with the " +
22
+ "provided password, and stores it at ~/.aibtc/lightning/keystore.json. " +
23
+ "Returns the deposit address for funding the wallet from L1 BTC.",
24
+ inputSchema: {
25
+ name: z.string().describe("Name for the Lightning wallet (e.g., 'main')"),
26
+ password: z
27
+ .string()
28
+ .min(8)
29
+ .describe("Password to protect the Lightning wallet (minimum 8 characters) - WARNING: sensitive value"),
30
+ },
31
+ }, async ({ name, password }) => {
32
+ try {
33
+ const manager = getLightningManager();
34
+ const result = await manager.createWallet(password, name);
35
+ return createJsonResponse({
36
+ success: true,
37
+ message: "Lightning wallet created. Save the mnemonic — it will NOT be shown again.",
38
+ walletId: result.walletId,
39
+ lightningAddress: result.lightningAddress,
40
+ depositAddress: result.depositAddress,
41
+ mnemonic: result.mnemonic,
42
+ network: NETWORK,
43
+ nextSteps: [
44
+ "Save the mnemonic in a secure location.",
45
+ "Use lightning_fund_from_btc to deposit L1 BTC into the wallet, then claim it once confirmed.",
46
+ ],
47
+ });
48
+ }
49
+ catch (error) {
50
+ return createErrorResponse(error);
51
+ }
52
+ });
53
+ server.registerTool("lightning_import", {
54
+ description: "Import an existing Lightning wallet into the embedded Spark-backed " +
55
+ "store from a BIP39 mnemonic phrase. Encrypted locally at " +
56
+ "~/.aibtc/lightning/keystore.json.",
57
+ inputSchema: {
58
+ name: z.string().describe("Name for the Lightning wallet"),
59
+ mnemonic: z
60
+ .string()
61
+ .describe("BIP39 mnemonic phrase - WARNING: sensitive value"),
62
+ password: z
63
+ .string()
64
+ .min(8)
65
+ .describe("Password to protect the Lightning wallet (minimum 8 characters) - WARNING: sensitive value"),
66
+ },
67
+ }, async ({ name, mnemonic, password }) => {
68
+ try {
69
+ const manager = getLightningManager();
70
+ const result = await manager.importWallet(mnemonic, password, name);
71
+ return createJsonResponse({
72
+ success: true,
73
+ message: "Lightning wallet imported.",
74
+ walletId: result.walletId,
75
+ lightningAddress: result.lightningAddress,
76
+ depositAddress: result.depositAddress,
77
+ network: NETWORK,
78
+ });
79
+ }
80
+ catch (error) {
81
+ return createErrorResponse(error);
82
+ }
83
+ });
84
+ server.registerTool("lightning_unlock", {
85
+ description: "Unlock the Lightning wallet for the current session. Required before " +
86
+ "paying or creating invoices, and before the L402 interceptor can " +
87
+ "auto-pay challenges.",
88
+ inputSchema: {
89
+ password: z.string().describe("Wallet password - WARNING: sensitive value"),
90
+ },
91
+ }, async ({ password }) => {
92
+ try {
93
+ const manager = getLightningManager();
94
+ const result = await manager.unlock(password);
95
+ return createJsonResponse({
96
+ success: true,
97
+ message: "Lightning wallet unlocked.",
98
+ walletId: result.walletId,
99
+ lightningAddress: result.lightningAddress,
100
+ balanceSats: result.balanceSats,
101
+ });
102
+ }
103
+ catch (error) {
104
+ return createErrorResponse(error);
105
+ }
106
+ });
107
+ server.registerTool("lightning_lock", {
108
+ description: "Lock the Lightning wallet and drop the Spark session from memory. " +
109
+ "L402 auto-pay will stop working until the wallet is unlocked again.",
110
+ }, async () => {
111
+ try {
112
+ const manager = getLightningManager();
113
+ manager.lock();
114
+ return createJsonResponse({
115
+ success: true,
116
+ message: "Lightning wallet locked.",
117
+ });
118
+ }
119
+ catch (error) {
120
+ return createErrorResponse(error);
121
+ }
122
+ });
123
+ server.registerTool("lightning_status", {
124
+ description: "Get the status of the embedded Lightning wallet: whether it's " +
125
+ "unlocked, its wallet id, current balance (if unlocked), deposit " +
126
+ "address, and optional Lightning address.",
127
+ }, async () => {
128
+ try {
129
+ const manager = getLightningManager();
130
+ const status = await manager.getStatus();
131
+ return createJsonResponse(status);
132
+ }
133
+ catch (error) {
134
+ return createErrorResponse(error);
135
+ }
136
+ });
137
+ // --- L1 → LN funding ------------------------------------------------------
138
+ server.registerTool("lightning_fund_from_btc", {
139
+ description: "Fund the Lightning wallet from the user's L1 BTC wallet. " +
140
+ "Sends BTC to the Spark deposit address and returns the L1 txid. " +
141
+ "After the transaction confirms on-chain, the deposit must be " +
142
+ "claimed to credit the Lightning balance (separate follow-up step; " +
143
+ "not automated in this PR). Requires the main wallet to be unlocked " +
144
+ "AND the Lightning wallet to be unlocked (to fetch the deposit address).",
145
+ inputSchema: {
146
+ amountSats: z
147
+ .number()
148
+ .int()
149
+ .positive()
150
+ .describe("Amount to deposit in satoshis (1 BTC = 100,000,000 satoshis)"),
151
+ feeRate: z
152
+ .union([
153
+ z.enum(["fast", "medium", "slow"]),
154
+ z.number().int().positive(),
155
+ ])
156
+ .optional()
157
+ .default("medium")
158
+ .describe("Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB"),
159
+ },
160
+ }, async ({ amountSats, feeRate }) => {
161
+ try {
162
+ // Lightning wallet must be unlocked so we can fetch a deposit address.
163
+ const ln = getLightningManager();
164
+ const lnProvider = ln.getProvider();
165
+ if (!lnProvider) {
166
+ throw new Error("Lightning wallet is locked. Use lightning_unlock first so we can fetch a deposit address.");
167
+ }
168
+ // L1 BTC wallet must be unlocked for signing.
169
+ const walletManager = getWalletManager();
170
+ const account = walletManager.getActiveAccount();
171
+ if (!account) {
172
+ throw new Error("Wallet is not unlocked. Use wallet_unlock first to enable transactions.");
173
+ }
174
+ if (!account.btcAddress || !account.btcPrivateKey || !account.btcPublicKey) {
175
+ throw new Error("Bitcoin keys not available. Please unlock your wallet again.");
176
+ }
177
+ const depositAddress = await lnProvider.getDepositAddress();
178
+ const api = new MempoolApi(NETWORK);
179
+ // Prefer cardinal UTXOs on mainnet so we don't burn inscriptions.
180
+ let utxos;
181
+ let testnetWarning = "";
182
+ if (NETWORK === "testnet") {
183
+ utxos = await api.getUtxos(account.btcAddress);
184
+ testnetWarning =
185
+ " Ordinal protection is not available on testnet. All UTXOs were used.";
186
+ }
187
+ else {
188
+ const indexer = new OrdinalIndexer(NETWORK);
189
+ utxos = await indexer.getCardinalUtxos(account.btcAddress);
190
+ }
191
+ if (utxos.length === 0) {
192
+ throw new Error(`No cardinal UTXOs available for address ${account.btcAddress}. ` +
193
+ `Deposit L1 BTC to this address before funding Lightning.`);
194
+ }
195
+ let resolvedFeeRate;
196
+ if (typeof feeRate === "number") {
197
+ resolvedFeeRate = feeRate;
198
+ }
199
+ else {
200
+ const tiers = await api.getFeeTiers();
201
+ resolvedFeeRate =
202
+ feeRate === "fast"
203
+ ? tiers.fast
204
+ : feeRate === "slow"
205
+ ? tiers.slow
206
+ : tiers.medium;
207
+ }
208
+ const txResult = buildAndSignBtcTransaction({
209
+ utxos,
210
+ recipient: depositAddress,
211
+ amount: amountSats,
212
+ feeRate: resolvedFeeRate,
213
+ senderPubKey: account.btcPublicKey,
214
+ senderAddress: account.btcAddress,
215
+ network: NETWORK,
216
+ }, account.btcPrivateKey);
217
+ const txid = await api.broadcastTransaction(txResult.txHex);
218
+ const response = {
219
+ success: true,
220
+ btcTxid: txid,
221
+ amountSats,
222
+ depositAddress,
223
+ explorerUrl: getMempoolTxUrl(txid, NETWORK),
224
+ feeSats: txResult.fee,
225
+ feeRateUsed: `${resolvedFeeRate} sat/vB`,
226
+ estimatedConfirmation: feeRate === "fast"
227
+ ? "~10 minutes"
228
+ : feeRate === "slow"
229
+ ? "~1 hour"
230
+ : "~30 minutes",
231
+ nextStep: "Once this transaction confirms on-chain, the deposit must be claimed " +
232
+ "to credit the Lightning balance. Automatic claim is out of scope for this PR.",
233
+ };
234
+ if (testnetWarning) {
235
+ response.warning = testnetWarning.trim();
236
+ }
237
+ return createJsonResponse(response);
238
+ }
239
+ catch (error) {
240
+ return createErrorResponse(error);
241
+ }
242
+ });
243
+ server.registerTool("lightning_claim_deposit", {
244
+ description: "Claim a confirmed BTC L1 deposit into the Spark Lightning wallet. " +
245
+ "Call this AFTER lightning_fund_from_btc and after the on-chain " +
246
+ "transaction has 3 confirmations. Fetches a signed quote from the " +
247
+ "SSP, submits the claim, and returns the credited sats + Spark " +
248
+ "transfer id. Requires an unlocked Lightning wallet.",
249
+ inputSchema: {
250
+ transactionId: z
251
+ .string()
252
+ .describe("Bitcoin txid of the deposit transaction"),
253
+ outputIndex: z
254
+ .number()
255
+ .int()
256
+ .nonnegative()
257
+ .optional()
258
+ .describe("Vout index of the deposit output (default: SSP auto-detects)"),
259
+ },
260
+ }, async ({ transactionId, outputIndex }) => {
261
+ try {
262
+ const manager = getLightningManager();
263
+ const provider = manager.getProvider();
264
+ if (!provider) {
265
+ throw new Error("Lightning wallet not unlocked. Run lightning_unlock first.");
266
+ }
267
+ const result = await provider.claimDeposit(transactionId, outputIndex);
268
+ return createJsonResponse({
269
+ success: true,
270
+ ...result,
271
+ });
272
+ }
273
+ catch (error) {
274
+ return createErrorResponse(error);
275
+ }
276
+ });
277
+ // --- Manual Lightning ops -------------------------------------------------
278
+ server.registerTool("lightning_pay_invoice", {
279
+ description: "Pay a BOLT-11 Lightning invoice from the embedded Lightning wallet. " +
280
+ "Returns the payment preimage (proof of payment) and fees paid.",
281
+ inputSchema: {
282
+ bolt11: z
283
+ .string()
284
+ .describe("BOLT-11 encoded Lightning invoice (starts with lnbc... or lntb...)"),
285
+ maxFeeSats: z
286
+ .number()
287
+ .int()
288
+ .nonnegative()
289
+ .optional()
290
+ .describe("Maximum routing fee to pay in sats (provider default applies when omitted)"),
291
+ },
292
+ }, async ({ bolt11, maxFeeSats }) => {
293
+ try {
294
+ const manager = getLightningManager();
295
+ const provider = manager.getProvider();
296
+ if (!provider) {
297
+ throw new Error("Lightning wallet is locked. Use lightning_unlock first.");
298
+ }
299
+ const result = await provider.payInvoice(bolt11, maxFeeSats);
300
+ return createJsonResponse({
301
+ success: true,
302
+ preimage: result.preimage,
303
+ feesPaidSats: result.feesPaid,
304
+ });
305
+ }
306
+ catch (error) {
307
+ return createErrorResponse(error);
308
+ }
309
+ });
310
+ server.registerTool("lightning_create_invoice", {
311
+ description: "Create a BOLT-11 Lightning invoice that can receive a payment into " +
312
+ "the embedded Lightning wallet.",
313
+ inputSchema: {
314
+ amountSats: z
315
+ .number()
316
+ .int()
317
+ .positive()
318
+ .describe("Amount to request in satoshis"),
319
+ memo: z
320
+ .string()
321
+ .optional()
322
+ .describe("Optional description attached to the invoice"),
323
+ },
324
+ }, async ({ amountSats, memo }) => {
325
+ try {
326
+ const manager = getLightningManager();
327
+ const provider = manager.getProvider();
328
+ if (!provider) {
329
+ throw new Error("Lightning wallet is locked. Use lightning_unlock first.");
330
+ }
331
+ const result = await provider.createInvoice(amountSats, memo);
332
+ return createJsonResponse({
333
+ success: true,
334
+ bolt11: result.bolt11,
335
+ paymentHash: result.paymentHash,
336
+ amountSats,
337
+ memo,
338
+ });
339
+ }
340
+ catch (error) {
341
+ return createErrorResponse(error);
342
+ }
343
+ });
344
+ }
345
+ //# sourceMappingURL=lightning.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning.tools.js","sourceRoot":"","sources":["../../src/tools/lightning.tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nostr.tools.d.ts","sourceRoot":"","sources":["../../src/tools/nostr.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoGpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgZ1D"}
1
+ {"version":3,"file":"nostr.tools.d.ts","sourceRoot":"","sources":["../../src/tools/nostr.tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoGpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwZ1D"}
@@ -326,6 +326,11 @@ export function registerNostrTools(server) {
326
326
  name: z.string().optional().describe("Display name."),
327
327
  about: z.string().optional().describe("Bio / about text."),
328
328
  picture: z.string().url().optional().describe("Profile picture URL."),
329
+ banner: z
330
+ .string()
331
+ .url()
332
+ .optional()
333
+ .describe("Header/cover image URL. Displayed above the profile picture in most Nostr clients (Primal, Snort, Damus)."),
329
334
  website: z.string().url().optional().describe("Website URL."),
330
335
  nip05: z
331
336
  .string()
@@ -336,7 +341,7 @@ export function registerNostrTools(server) {
336
341
  .optional()
337
342
  .describe(`Relay URLs to publish to. Defaults to ${DEFAULT_RELAYS.join(", ")}.`),
338
343
  },
339
- }, async ({ name, about, picture, website, nip05, relays }) => {
344
+ }, async ({ name, about, picture, banner, website, nip05, relays }) => {
340
345
  try {
341
346
  const { sk, pubkey } = deriveNostrKeys();
342
347
  const targetRelays = relays && relays.length > 0 ? relays : DEFAULT_RELAYS;
@@ -365,6 +370,8 @@ export function registerNostrTools(server) {
365
370
  updates.about = about;
366
371
  if (picture !== undefined)
367
372
  updates.picture = picture;
373
+ if (banner !== undefined)
374
+ updates.banner = banner;
368
375
  if (website !== undefined)
369
376
  updates.website = website;
370
377
  if (nip05 !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"nostr.tools.js","sourceRoot":"","sources":["../../src/tools/nostr.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nostr.tools.js","sourceRoot":"","sources":["../../src/tools/nostr.tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * L402 Protocol Helpers
3
+ *
4
+ * Parses L402 challenge headers of the form:
5
+ * WWW-Authenticate: L402 macaroon="...", invoice="..."
6
+ *
7
+ * Builds the Authorization header used to retry the request after the
8
+ * Lightning invoice has been paid:
9
+ * Authorization: L402 <macaroon>:<preimage>
10
+ *
11
+ * References:
12
+ * - L402 (formerly LSAT) protocol: https://docs.lightning.engineering/the-lightning-network/l402
13
+ */
14
+ /**
15
+ * Parsed fields from an L402 challenge header.
16
+ */
17
+ export interface L402Challenge {
18
+ macaroon: string;
19
+ invoice: string;
20
+ }
21
+ /**
22
+ * Parse a `WWW-Authenticate: L402 macaroon="...", invoice="..."` header.
23
+ *
24
+ * Tolerates:
25
+ * - case-insensitive scheme ("L402" or "l402"; legacy "LSAT" aliased)
26
+ * - whitespace between key/value pairs
27
+ * - either single or double quotes around the values
28
+ * - key order (macaroon/invoice swapped)
29
+ *
30
+ * Returns null when the header doesn't match the L402 scheme or either field
31
+ * is missing. Callers should treat null as "not an L402 challenge".
32
+ */
33
+ export declare function parseL402Challenge(header: string | null | undefined): L402Challenge | null;
34
+ /**
35
+ * Build the L402 Authorization header: `L402 <macaroon>:<preimage>`.
36
+ */
37
+ export declare function buildL402AuthHeader(macaroon: string, preimage: string): string;
38
+ interface CachedMacaroon {
39
+ macaroon: string;
40
+ preimage: string;
41
+ cachedAt: number;
42
+ }
43
+ /**
44
+ * Build the canonical cache key for a request.
45
+ */
46
+ export declare function l402CacheKey(method: string, url: string): string;
47
+ /**
48
+ * Look up a cached macaroon+preimage pair. Returns null on miss.
49
+ */
50
+ export declare function getCachedL402Auth(method: string, url: string): CachedMacaroon | null;
51
+ /**
52
+ * Store the macaroon+preimage pair for future reuse.
53
+ */
54
+ export declare function cacheL402Auth(method: string, url: string, macaroon: string, preimage: string): void;
55
+ /**
56
+ * Drop a cached entry (e.g. after the server returned 401 despite a cache hit).
57
+ */
58
+ export declare function invalidateL402Auth(method: string, url: string): void;
59
+ /**
60
+ * Testing helper: clear the whole cache.
61
+ */
62
+ export declare function clearL402Cache(): void;
63
+ export {};
64
+ //# sourceMappingURL=l402-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l402-protocol.d.ts","sourceRoot":"","sources":["../../src/utils/l402-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,aAAa,GAAG,IAAI,CAetB;AAuCD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAQD,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,cAAc,GAAG,IAAI,CAEvB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * L402 Protocol Helpers
3
+ *
4
+ * Parses L402 challenge headers of the form:
5
+ * WWW-Authenticate: L402 macaroon="...", invoice="..."
6
+ *
7
+ * Builds the Authorization header used to retry the request after the
8
+ * Lightning invoice has been paid:
9
+ * Authorization: L402 <macaroon>:<preimage>
10
+ *
11
+ * References:
12
+ * - L402 (formerly LSAT) protocol: https://docs.lightning.engineering/the-lightning-network/l402
13
+ */
14
+ /**
15
+ * Parse a `WWW-Authenticate: L402 macaroon="...", invoice="..."` header.
16
+ *
17
+ * Tolerates:
18
+ * - case-insensitive scheme ("L402" or "l402"; legacy "LSAT" aliased)
19
+ * - whitespace between key/value pairs
20
+ * - either single or double quotes around the values
21
+ * - key order (macaroon/invoice swapped)
22
+ *
23
+ * Returns null when the header doesn't match the L402 scheme or either field
24
+ * is missing. Callers should treat null as "not an L402 challenge".
25
+ */
26
+ export function parseL402Challenge(header) {
27
+ if (!header)
28
+ return null;
29
+ const trimmed = header.trim();
30
+ // Accept both "L402 ..." and legacy "LSAT ..." schemes.
31
+ const schemeMatch = /^(L402|LSAT)\s+(.+)$/i.exec(trimmed);
32
+ if (!schemeMatch)
33
+ return null;
34
+ const body = schemeMatch[2];
35
+ const macaroon = extractParam(body, "macaroon");
36
+ const invoice = extractParam(body, "invoice");
37
+ if (!macaroon || !invoice)
38
+ return null;
39
+ return { macaroon, invoice };
40
+ }
41
+ /**
42
+ * Escape regex special characters so a caller-provided key can be safely
43
+ * interpolated into a RegExp. Keeps the helper defensive even though today's
44
+ * callers only pass hardcoded literals.
45
+ */
46
+ function escapeRegExp(s) {
47
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
48
+ }
49
+ /**
50
+ * Extract a quoted or unquoted param value from an RFC-7235-style header body.
51
+ *
52
+ * Supports double-quoted, single-quoted, and unquoted values to match the
53
+ * docstring claim and tolerate well-meaning servers that emit single quotes.
54
+ * RFC 7235 only mandates double quotes, but real-world implementations are
55
+ * forgiving here.
56
+ */
57
+ function extractParam(body, key) {
58
+ const escapedKey = escapeRegExp(key);
59
+ // Double-quoted value: key="..."
60
+ const doubleQuoted = new RegExp(`${escapedKey}\\s*=\\s*"([^"]+)"`, "i").exec(body);
61
+ if (doubleQuoted)
62
+ return doubleQuoted[1];
63
+ // Single-quoted value: key='...'
64
+ const singleQuoted = new RegExp(`${escapedKey}\\s*=\\s*'([^']+)'`, "i").exec(body);
65
+ if (singleQuoted)
66
+ return singleQuoted[1];
67
+ // Unquoted value: key=value[,\s]
68
+ const unquoted = new RegExp(`${escapedKey}\\s*=\\s*([^,\\s]+)`, "i").exec(body);
69
+ if (unquoted)
70
+ return unquoted[1];
71
+ return null;
72
+ }
73
+ /**
74
+ * Build the L402 Authorization header: `L402 <macaroon>:<preimage>`.
75
+ */
76
+ export function buildL402AuthHeader(macaroon, preimage) {
77
+ return `L402 ${macaroon}:${preimage}`;
78
+ }
79
+ const macaroonCache = new Map();
80
+ /**
81
+ * Build the canonical cache key for a request.
82
+ */
83
+ export function l402CacheKey(method, url) {
84
+ return `${method.toUpperCase()}:${url}`;
85
+ }
86
+ /**
87
+ * Look up a cached macaroon+preimage pair. Returns null on miss.
88
+ */
89
+ export function getCachedL402Auth(method, url) {
90
+ return macaroonCache.get(l402CacheKey(method, url)) ?? null;
91
+ }
92
+ /**
93
+ * Store the macaroon+preimage pair for future reuse.
94
+ */
95
+ export function cacheL402Auth(method, url, macaroon, preimage) {
96
+ macaroonCache.set(l402CacheKey(method, url), {
97
+ macaroon,
98
+ preimage,
99
+ cachedAt: Date.now(),
100
+ });
101
+ }
102
+ /**
103
+ * Drop a cached entry (e.g. after the server returned 401 despite a cache hit).
104
+ */
105
+ export function invalidateL402Auth(method, url) {
106
+ macaroonCache.delete(l402CacheKey(method, url));
107
+ }
108
+ /**
109
+ * Testing helper: clear the whole cache.
110
+ */
111
+ export function clearL402Cache() {
112
+ macaroonCache.clear();
113
+ }
114
+ //# sourceMappingURL=l402-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l402-protocol.js","sourceRoot":"","sources":["../../src/utils/l402-protocol.ts"],"names":[],"mappings":"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"}