@agent-score/commerce 2.0.1 → 2.1.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 +26 -11
- package/dist/_core-kI7FRAiZ.d.mts +10 -0
- package/dist/_core-kI7FRAiZ.d.ts +10 -0
- package/dist/challenge/index.d.mts +3 -3
- package/dist/challenge/index.d.ts +3 -3
- package/dist/challenge/index.js +21 -14
- package/dist/challenge/index.js.map +1 -1
- package/dist/challenge/index.mjs +21 -14
- package/dist/challenge/index.mjs.map +1 -1
- package/dist/{checkout-B1JuEcbx.d.ts → checkout-BH-I_Ns8.d.ts} +19 -12
- package/dist/{checkout-BN5i1Fi7.d.mts → checkout-Bd_4aQ6c.d.mts} +19 -12
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +1 -1
- package/dist/core.mjs.map +1 -1
- package/dist/default_rails-BWAquZeu.d.mts +188 -0
- package/dist/default_rails-BxBzcCA1.d.ts +188 -0
- package/dist/discovery/index.d.mts +5 -5
- package/dist/discovery/index.d.ts +5 -5
- package/dist/discovery/index.js +14 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/index.mjs +14 -1
- package/dist/discovery/index.mjs.map +1 -1
- package/dist/identity/express.d.mts +7 -3
- package/dist/identity/express.d.ts +7 -3
- package/dist/identity/express.js +39 -96
- package/dist/identity/express.js.map +1 -1
- package/dist/identity/express.mjs +37 -87
- package/dist/identity/express.mjs.map +1 -1
- package/dist/identity/fastify.d.mts +4 -4
- package/dist/identity/fastify.d.ts +4 -4
- package/dist/identity/fastify.js +60 -96
- package/dist/identity/fastify.js.map +1 -1
- package/dist/identity/fastify.mjs +58 -87
- package/dist/identity/fastify.mjs.map +1 -1
- package/dist/identity/hono.d.mts +11 -3
- package/dist/identity/hono.d.ts +11 -3
- package/dist/identity/hono.js +39 -93
- package/dist/identity/hono.js.map +1 -1
- package/dist/identity/hono.mjs +37 -84
- package/dist/identity/hono.mjs.map +1 -1
- package/dist/identity/nextjs.d.mts +10 -3
- package/dist/identity/nextjs.d.ts +10 -3
- package/dist/identity/nextjs.js +49 -93
- package/dist/identity/nextjs.js.map +1 -1
- package/dist/identity/nextjs.mjs +46 -84
- package/dist/identity/nextjs.mjs.map +1 -1
- package/dist/identity/policy.js +220 -129
- package/dist/identity/policy.js.map +1 -1
- package/dist/identity/policy.mjs +222 -131
- package/dist/identity/policy.mjs.map +1 -1
- package/dist/identity/web.d.mts +9 -3
- package/dist/identity/web.d.ts +9 -3
- package/dist/identity/web.js +45 -93
- package/dist/identity/web.js.map +1 -1
- package/dist/identity/web.mjs +42 -84
- package/dist/identity/web.mjs.map +1 -1
- package/dist/index.d.mts +554 -90
- package/dist/index.d.ts +554 -90
- package/dist/index.js +951 -152
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +939 -152
- package/dist/index.mjs.map +1 -1
- package/dist/middleware/express.d.mts +10 -0
- package/dist/middleware/express.d.ts +10 -0
- package/dist/middleware/express.js +128 -0
- package/dist/middleware/express.js.map +1 -0
- package/dist/middleware/express.mjs +91 -0
- package/dist/middleware/express.mjs.map +1 -0
- package/dist/middleware/fastify.d.mts +10 -0
- package/dist/middleware/fastify.d.ts +10 -0
- package/dist/middleware/fastify.js +127 -0
- package/dist/middleware/fastify.js.map +1 -0
- package/dist/middleware/fastify.mjs +90 -0
- package/dist/middleware/fastify.mjs.map +1 -0
- package/dist/middleware/hono.d.mts +10 -0
- package/dist/middleware/hono.d.ts +10 -0
- package/dist/middleware/hono.js +122 -0
- package/dist/middleware/hono.js.map +1 -0
- package/dist/middleware/hono.mjs +85 -0
- package/dist/middleware/hono.mjs.map +1 -0
- package/dist/middleware/nextjs.d.mts +22 -0
- package/dist/middleware/nextjs.d.ts +22 -0
- package/dist/middleware/nextjs.js +143 -0
- package/dist/middleware/nextjs.js.map +1 -0
- package/dist/middleware/nextjs.mjs +105 -0
- package/dist/middleware/nextjs.mjs.map +1 -0
- package/dist/middleware/web.d.mts +25 -0
- package/dist/middleware/web.d.ts +25 -0
- package/dist/middleware/web.js +128 -0
- package/dist/middleware/web.js.map +1 -0
- package/dist/middleware/web.mjs +91 -0
- package/dist/middleware/web.mjs.map +1 -0
- package/dist/payment/index.d.mts +21 -6
- package/dist/payment/index.d.ts +21 -6
- package/dist/payment/index.js +136 -9
- package/dist/payment/index.js.map +1 -1
- package/dist/payment/index.mjs +127 -9
- package/dist/payment/index.mjs.map +1 -1
- package/dist/{pricing-CxzwyiO6.d.mts → pricing-4n5Ota0D.d.mts} +14 -4
- package/dist/{pricing-CQ9DIFaw.d.ts → pricing-DHfH3ogG.d.ts} +14 -4
- package/dist/{rail_spec-XP0wKgJV.d.mts → rail_spec-D6qzh3J0.d.mts} +1 -1
- package/dist/{rail_spec-XP0wKgJV.d.ts → rail_spec-D6qzh3J0.d.ts} +1 -1
- package/dist/stripe-multichain/index.d.mts +150 -47
- package/dist/stripe-multichain/index.d.ts +150 -47
- package/dist/stripe-multichain/index.js +19749 -42
- package/dist/stripe-multichain/index.js.map +1 -1
- package/dist/stripe-multichain/index.mjs +19758 -27
- package/dist/stripe-multichain/index.mjs.map +1 -1
- package/dist/{x402_server-hgQzWQwB.d.mts → x402_server-Ciz2mls2.d.mts} +1 -1
- package/dist/{x402_server-hgQzWQwB.d.ts → x402_server-Ciz2mls2.d.ts} +1 -1
- package/package.json +43 -5
- package/dist/_response-BFYN3b6i.d.mts +0 -142
- package/dist/_response-_iPD5AIj.d.ts +0 -142
- package/dist/solana-Cds87OTu.d.mts +0 -67
- package/dist/solana-Cds87OTu.d.ts +0 -67
package/dist/payment/index.mjs
CHANGED
|
@@ -599,7 +599,8 @@ function isSolanaMppRailSpec(s) {
|
|
|
599
599
|
return s.network?.startsWith("solana:") ?? false;
|
|
600
600
|
}
|
|
601
601
|
function solanaNetworkFromCAIP2(caip2) {
|
|
602
|
-
if (caip2 === networks.solana.devnet.caip2) return "devnet";
|
|
602
|
+
if (caip2 === "devnet" || caip2 === networks.solana.devnet.caip2) return "devnet";
|
|
603
|
+
if (caip2 === "localnet") return "localnet";
|
|
603
604
|
return "mainnet-beta";
|
|
604
605
|
}
|
|
605
606
|
function solanaDefaultRpcUrl(network) {
|
|
@@ -886,6 +887,13 @@ function clampKey(key) {
|
|
|
886
887
|
return key;
|
|
887
888
|
}
|
|
888
889
|
|
|
890
|
+
// src/_headers.ts
|
|
891
|
+
function normalizeHeadersToLowercase(headers) {
|
|
892
|
+
const out = {};
|
|
893
|
+
for (const [k, v] of Object.entries(headers)) out[k.toLowerCase()] = v;
|
|
894
|
+
return out;
|
|
895
|
+
}
|
|
896
|
+
|
|
889
897
|
// src/signer.ts
|
|
890
898
|
var TOKEN_PROGRAM = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
891
899
|
var TOKEN_2022_PROGRAM = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
|
|
@@ -968,13 +976,8 @@ async function extractPaymentSignerFromAuth(authHeader, x402PaymentHeader) {
|
|
|
968
976
|
function readX402PaymentHeader(request) {
|
|
969
977
|
return request.headers.get("payment-signature") ?? request.headers.get("x-payment") ?? void 0;
|
|
970
978
|
}
|
|
971
|
-
function lowerHeaders(headers) {
|
|
972
|
-
const out = {};
|
|
973
|
-
for (const [k, v] of Object.entries(headers)) out[k.toLowerCase()] = v;
|
|
974
|
-
return out;
|
|
975
|
-
}
|
|
976
979
|
async function extractSignerForPrecheck(headers) {
|
|
977
|
-
const lower =
|
|
980
|
+
const lower = normalizeHeadersToLowercase(headers);
|
|
978
981
|
const x402 = lower["payment-signature"] ?? lower["x-payment"];
|
|
979
982
|
if (x402) {
|
|
980
983
|
const signer = await extractPaymentSignerFromAuth(void 0, x402);
|
|
@@ -1031,8 +1034,8 @@ function usdToAtomic(usd, opts) {
|
|
|
1031
1034
|
}
|
|
1032
1035
|
return result;
|
|
1033
1036
|
}
|
|
1034
|
-
function formatUsdCents(cents) {
|
|
1035
|
-
return (cents / 100).toFixed(
|
|
1037
|
+
function formatUsdCents(cents, decimals = 2) {
|
|
1038
|
+
return (cents / 100).toFixed(decimals);
|
|
1036
1039
|
}
|
|
1037
1040
|
|
|
1038
1041
|
// src/payment/zero-settle.ts
|
|
@@ -1168,13 +1171,122 @@ async function loadSolanaFeePayer(opts) {
|
|
|
1168
1171
|
}
|
|
1169
1172
|
return kit.createKeyPairSignerFromPrivateKeyBytes(bytes);
|
|
1170
1173
|
}
|
|
1174
|
+
|
|
1175
|
+
// src/payment/compose_rails.ts
|
|
1176
|
+
function buildMppxComposeRails(opts) {
|
|
1177
|
+
const rails2 = [];
|
|
1178
|
+
if (opts.tempoRecipient) {
|
|
1179
|
+
rails2.push(["tempo/charge", {
|
|
1180
|
+
amount: opts.amountUsd,
|
|
1181
|
+
currency: opts.tempoTokenAddress ?? USDC.tempo.mainnet.address,
|
|
1182
|
+
decimals: 6,
|
|
1183
|
+
recipient: opts.tempoRecipient
|
|
1184
|
+
}]);
|
|
1185
|
+
}
|
|
1186
|
+
if (opts.solanaRecipient) {
|
|
1187
|
+
const atomic = usdToAtomic(opts.amountUsd, { decimals: 6 });
|
|
1188
|
+
rails2.push(["solana/charge", {
|
|
1189
|
+
amount: atomic.toString(),
|
|
1190
|
+
currency: opts.solanaTokenMint ?? USDC.solana.mainnet.mint,
|
|
1191
|
+
decimals: 6,
|
|
1192
|
+
recipient: opts.solanaRecipient,
|
|
1193
|
+
network: opts.solanaNetwork ?? "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
|
|
1194
|
+
}]);
|
|
1195
|
+
}
|
|
1196
|
+
if (opts.includeStripe !== false) {
|
|
1197
|
+
rails2.push(["stripe/charge", { amount: opts.amountUsd, currency: "usd", decimals: 2 }]);
|
|
1198
|
+
}
|
|
1199
|
+
return rails2;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
// src/payment/default_rails.ts
|
|
1203
|
+
function buildDefaultCheckoutRails(opts) {
|
|
1204
|
+
const out = {};
|
|
1205
|
+
if (opts.tempo) {
|
|
1206
|
+
out.tempo = { recipient: "", ...RAIL_SPEC_DEFAULTS.tempo, ...opts.tempo };
|
|
1207
|
+
}
|
|
1208
|
+
if (opts.x402Base) {
|
|
1209
|
+
const merged = { recipient: "", ...RAIL_SPEC_DEFAULTS.x402Base, ...opts.x402Base };
|
|
1210
|
+
if (merged.network === networks.base.sepolia.caip2) {
|
|
1211
|
+
if (opts.x402Base.chainId === void 0) merged.chainId = networks.base.sepolia.chainId;
|
|
1212
|
+
if (opts.x402Base.token === void 0) merged.token = USDC.base.sepolia.address;
|
|
1213
|
+
} else if (merged.network === networks.base.mainnet.caip2) {
|
|
1214
|
+
if (opts.x402Base.chainId === void 0) merged.chainId = networks.base.mainnet.chainId;
|
|
1215
|
+
if (opts.x402Base.token === void 0) merged.token = USDC.base.mainnet.address;
|
|
1216
|
+
}
|
|
1217
|
+
out.x402_base = merged;
|
|
1218
|
+
}
|
|
1219
|
+
if (opts.solanaMpp) {
|
|
1220
|
+
const merged = { recipient: "", ...RAIL_SPEC_DEFAULTS.solanaMpp, ...opts.solanaMpp };
|
|
1221
|
+
const isDevnet = merged.network === "devnet" || merged.network === networks.solana.devnet.caip2;
|
|
1222
|
+
if (isDevnet && opts.solanaMpp.token === void 0) {
|
|
1223
|
+
merged.token = USDC.solana.devnet.mint;
|
|
1224
|
+
}
|
|
1225
|
+
out.solana_mpp = merged;
|
|
1226
|
+
}
|
|
1227
|
+
if (opts.stripe) {
|
|
1228
|
+
out.stripe = { ...RAIL_SPEC_DEFAULTS.stripe, ...opts.stripe };
|
|
1229
|
+
}
|
|
1230
|
+
return out;
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
// src/payment/payment_header.ts
|
|
1234
|
+
function toTitleCase(name) {
|
|
1235
|
+
return name.replace(/(^|-)([a-z])/g, (_m, sep, c) => sep + c.toUpperCase());
|
|
1236
|
+
}
|
|
1237
|
+
function readHeader(headers, name) {
|
|
1238
|
+
if (typeof headers.get === "function") {
|
|
1239
|
+
return headers.get(name);
|
|
1240
|
+
}
|
|
1241
|
+
const rec = headers;
|
|
1242
|
+
const v = rec[name] ?? rec[name.toLowerCase()] ?? rec[toTitleCase(name)];
|
|
1243
|
+
if (typeof v === "string") return v;
|
|
1244
|
+
if (Array.isArray(v) && typeof v[0] === "string") return v[0];
|
|
1245
|
+
return null;
|
|
1246
|
+
}
|
|
1247
|
+
function asHeaders(input) {
|
|
1248
|
+
return typeof input.headers === "object" && input instanceof Request ? input.headers : input;
|
|
1249
|
+
}
|
|
1250
|
+
function hasPaymentHeader(input) {
|
|
1251
|
+
const headers = asHeaders(input);
|
|
1252
|
+
return Boolean(
|
|
1253
|
+
readHeader(headers, "payment-signature") || readHeader(headers, "x-payment") || readHeader(headers, "authorization")?.startsWith("Payment ")
|
|
1254
|
+
);
|
|
1255
|
+
}
|
|
1256
|
+
function hasX402Header(input) {
|
|
1257
|
+
const headers = asHeaders(input);
|
|
1258
|
+
return Boolean(readHeader(headers, "payment-signature") || readHeader(headers, "x-payment"));
|
|
1259
|
+
}
|
|
1260
|
+
function hasMppxHeader(input) {
|
|
1261
|
+
const headers = asHeaders(input);
|
|
1262
|
+
return Boolean(readHeader(headers, "authorization")?.startsWith("Payment "));
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
// src/payment/network_kind.ts
|
|
1266
|
+
function readNetwork(input) {
|
|
1267
|
+
if (typeof input === "string") return input;
|
|
1268
|
+
if (input && typeof input === "object") {
|
|
1269
|
+
const network = input.network;
|
|
1270
|
+
return typeof network === "string" ? network : "";
|
|
1271
|
+
}
|
|
1272
|
+
return "";
|
|
1273
|
+
}
|
|
1274
|
+
function isEvmNetwork(input) {
|
|
1275
|
+
return readNetwork(input).startsWith("eip155:");
|
|
1276
|
+
}
|
|
1277
|
+
function isSolanaNetwork(input) {
|
|
1278
|
+
return readNetwork(input).startsWith("solana:");
|
|
1279
|
+
}
|
|
1171
1280
|
export {
|
|
1172
1281
|
RAIL_SPEC_DEFAULTS,
|
|
1173
1282
|
SETTLEMENT_OVERRIDES_HEADER,
|
|
1174
1283
|
USDC,
|
|
1175
1284
|
X402_SUPPORTED_BASE_NETWORKS,
|
|
1176
1285
|
aliasAmountFields,
|
|
1286
|
+
asHeaders,
|
|
1287
|
+
buildDefaultCheckoutRails,
|
|
1177
1288
|
buildIdempotencyKey,
|
|
1289
|
+
buildMppxComposeRails,
|
|
1178
1290
|
buildPaymentDirective,
|
|
1179
1291
|
buildPaymentHeaders,
|
|
1180
1292
|
buildPaymentRequestBlob,
|
|
@@ -1190,6 +1302,11 @@ export {
|
|
|
1190
1302
|
extractPaymentSignerFromAuth,
|
|
1191
1303
|
extractSignerForPrecheck,
|
|
1192
1304
|
formatUsdCents,
|
|
1305
|
+
hasMppxHeader,
|
|
1306
|
+
hasPaymentHeader,
|
|
1307
|
+
hasX402Header,
|
|
1308
|
+
isEvmNetwork,
|
|
1309
|
+
isSolanaNetwork,
|
|
1193
1310
|
lazyMppxServer,
|
|
1194
1311
|
lazyX402Server,
|
|
1195
1312
|
loadSolanaFeePayer,
|
|
@@ -1201,6 +1318,7 @@ export {
|
|
|
1201
1318
|
paymentRequiredHeader,
|
|
1202
1319
|
processX402Settle,
|
|
1203
1320
|
rails,
|
|
1321
|
+
readHeader,
|
|
1204
1322
|
readX402PaymentHeader,
|
|
1205
1323
|
registerX402SchemesV1V2,
|
|
1206
1324
|
resolveRecipient,
|