@astrasyncai/verification-gateway 5.14.0 → 5.15.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 +27 -17
- package/dist/adapters/express.d.mts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.js +477 -240
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +477 -240
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +1 -1
- package/dist/adapters/mcp.d.ts +1 -1
- package/dist/adapters/mcp.js +20 -6
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +20 -6
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +1 -1
- package/dist/adapters/nextjs.d.ts +1 -1
- package/dist/adapters/nextjs.js +460 -239
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +460 -239
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +18 -10
- package/dist/adapters/sdk.d.ts +18 -10
- package/dist/adapters/sdk.js +80 -23
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +80 -23
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +1 -1
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +55 -11
- package/dist/bin/astrasync-codex-hook.js +55 -11
- package/dist/bin/astrasync-guard.js +55 -11
- package/dist/bin/astrasync.js +288 -33
- package/dist/browser/background.js +50 -6
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +60 -6
- package/dist/browser/background.mjs.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/codex/index.js +55 -11
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +65 -11
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +55 -11
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +65 -11
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.d.mts +31 -2
- package/dist/edge-config.d.ts +31 -2
- package/dist/edge-config.js +35 -5
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +32 -4
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.d.mts +11 -2
- package/dist/edge-core/index.d.ts +11 -2
- package/dist/edge-core/index.js +93 -10
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +91 -10
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +50 -6
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +60 -6
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +1 -1
- package/dist/git-trigger/git-hooks.d.ts +1 -1
- package/dist/index.d.mts +1314 -34
- package/dist/index.d.ts +1314 -34
- package/dist/index.js +5116 -2612
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5063 -2614
- package/dist/index.mjs.map +1 -1
- package/dist/registration/index.d.mts +28 -2
- package/dist/registration/index.d.ts +28 -2
- package/dist/registration/index.js +18 -3
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +15 -2
- package/dist/registration/index.mjs.map +1 -1
- package/dist/transport/index.d.mts +7 -5
- package/dist/transport/index.d.ts +7 -5
- package/dist/transport/index.js +61 -5
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +67 -11
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-C_b4QTyO.d.ts → types-DtJjlW4O.d.ts} +104 -10
- package/dist/{types-BCkwBA84.d.mts → types-Dxf9DBpr.d.mts} +106 -12
- package/dist/{types-BCkwBA84.d.ts → types-Dxf9DBpr.d.ts} +106 -12
- package/dist/{types-DlshIIR-.d.mts → types-Eg6VoBNH.d.mts} +104 -10
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/verify.d.mts +1 -1
- package/dist/verify.d.ts +1 -1
- package/dist/verify.js +20 -6
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +20 -6
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -3969,7 +3969,7 @@ function getTrustLevel(score) {
|
|
|
3969
3969
|
}
|
|
3970
3970
|
|
|
3971
3971
|
// src/version.ts
|
|
3972
|
-
var SDK_VERSION = "5.
|
|
3972
|
+
var SDK_VERSION = "5.15.0";
|
|
3973
3973
|
|
|
3974
3974
|
// src/http.ts
|
|
3975
3975
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4288,6 +4288,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4288
4288
|
if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
|
|
4289
4289
|
if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
|
|
4290
4290
|
if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
|
|
4291
|
+
if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
|
|
4291
4292
|
if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
|
|
4292
4293
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4293
4294
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
@@ -4438,7 +4439,8 @@ async function verify(config, request, options) {
|
|
|
4438
4439
|
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access decisions (verified ID + runtime challenge + PDLSS + trust score). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
|
|
4439
4440
|
);
|
|
4440
4441
|
}
|
|
4441
|
-
|
|
4442
|
+
const uncacheable = Boolean(request.commerceArtifacts);
|
|
4443
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
4442
4444
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
4443
4445
|
if (cached) {
|
|
4444
4446
|
if (mergedConfig.debug) {
|
|
@@ -4519,7 +4521,10 @@ async function verify(config, request, options) {
|
|
|
4519
4521
|
// MERCHANT caller only (bridge callers strip it before the agent plane).
|
|
4520
4522
|
settlementToken: apiResponse.settlementToken,
|
|
4521
4523
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4522
|
-
fulfilment: apiResponse.fulfilment
|
|
4524
|
+
fulfilment: apiResponse.fulfilment,
|
|
4525
|
+
mandates: apiResponse.mandates,
|
|
4526
|
+
kyaToken: apiResponse.kyaToken,
|
|
4527
|
+
aep: apiResponse.aep
|
|
4523
4528
|
};
|
|
4524
4529
|
return result2;
|
|
4525
4530
|
}
|
|
@@ -4529,7 +4534,10 @@ async function verify(config, request, options) {
|
|
|
4529
4534
|
trustScore: apiResponse.agent.trustScore,
|
|
4530
4535
|
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4531
4536
|
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4532
|
-
status: apiResponse.agent.agentStatus
|
|
4537
|
+
status: apiResponse.agent.agentStatus,
|
|
4538
|
+
...apiResponse.agent.protocolIdentities && {
|
|
4539
|
+
protocolIdentities: apiResponse.agent.protocolIdentities
|
|
4540
|
+
}
|
|
4533
4541
|
} : void 0;
|
|
4534
4542
|
const developer = apiResponse.developer ? {
|
|
4535
4543
|
astradId: apiResponse.developer.kyaOwnerId,
|
|
@@ -4580,7 +4588,11 @@ async function verify(config, request, options) {
|
|
|
4580
4588
|
settlementOutcome: apiResponse.settlementOutcome,
|
|
4581
4589
|
settlementToken: apiResponse.settlementToken,
|
|
4582
4590
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4583
|
-
fulfilment: apiResponse.fulfilment
|
|
4591
|
+
fulfilment: apiResponse.fulfilment,
|
|
4592
|
+
// 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
|
|
4593
|
+
mandates: apiResponse.mandates,
|
|
4594
|
+
kyaToken: apiResponse.kyaToken,
|
|
4595
|
+
aep: apiResponse.aep
|
|
4584
4596
|
};
|
|
4585
4597
|
if (result.recommendation === "deny") {
|
|
4586
4598
|
result.policyAllowed = false;
|
|
@@ -4600,7 +4612,9 @@ async function verify(config, request, options) {
|
|
|
4600
4612
|
}
|
|
4601
4613
|
const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
|
|
4602
4614
|
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
|
|
4603
|
-
|
|
4615
|
+
if (!uncacheable) {
|
|
4616
|
+
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
4617
|
+
}
|
|
4604
4618
|
}
|
|
4605
4619
|
return result;
|
|
4606
4620
|
}
|
|
@@ -4611,6 +4625,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
|
4611
4625
|
// src/metadata-capture.ts
|
|
4612
4626
|
var MAX_TOTAL_BYTES = 16 * 1024;
|
|
4613
4627
|
|
|
4628
|
+
// src/adapters/commerce-detect.ts
|
|
4629
|
+
var MAX_BODY_BYTES = 64 * 1024;
|
|
4630
|
+
|
|
4614
4631
|
// src/edge-config.ts
|
|
4615
4632
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4616
4633
|
version: 1,
|
|
@@ -4923,6 +4940,43 @@ import { createHash as createHash3, webcrypto } from "crypto";
|
|
|
4923
4940
|
// src/transport/registry/visa.ts
|
|
4924
4941
|
import { createRemoteJWKSet } from "jose";
|
|
4925
4942
|
|
|
4943
|
+
// src/ucp/profile.ts
|
|
4944
|
+
var UCP_VERSION = "2026-08-25";
|
|
4945
|
+
var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
|
|
4946
|
+
var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
|
|
4947
|
+
|
|
4948
|
+
// src/ucp/signatures.ts
|
|
4949
|
+
import { httpbis as httpbis3, createSigner as createSigner2 } from "http-message-signatures";
|
|
4950
|
+
|
|
4951
|
+
// src/http-signatures/sign.ts
|
|
4952
|
+
import { httpbis as httpbis2, createSigner } from "http-message-signatures";
|
|
4953
|
+
|
|
4954
|
+
// src/ucp/checkout-kit.ts
|
|
4955
|
+
import { CompactSign as CompactSign2 } from "jose";
|
|
4956
|
+
|
|
4957
|
+
// src/mandates/sd-jwt.ts
|
|
4958
|
+
import {
|
|
4959
|
+
CompactSign,
|
|
4960
|
+
compactVerify,
|
|
4961
|
+
importJWK,
|
|
4962
|
+
decodeProtectedHeader
|
|
4963
|
+
} from "jose";
|
|
4964
|
+
|
|
4965
|
+
// src/idempotency/index.ts
|
|
4966
|
+
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
4967
|
+
|
|
4968
|
+
// src/payments/kyapay.ts
|
|
4969
|
+
import {
|
|
4970
|
+
createLocalJWKSet,
|
|
4971
|
+
createRemoteJWKSet as createRemoteJWKSet2,
|
|
4972
|
+
decodeProtectedHeader as decodeProtectedHeader2,
|
|
4973
|
+
jwtVerify
|
|
4974
|
+
} from "jose";
|
|
4975
|
+
|
|
4976
|
+
// src/aep/core.ts
|
|
4977
|
+
var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
|
|
4978
|
+
var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
4979
|
+
|
|
4926
4980
|
// src/gateway/modes/online.ts
|
|
4927
4981
|
function toGatewayConfig(config) {
|
|
4928
4982
|
return {
|
|
@@ -5634,7 +5688,7 @@ async function sendHeartbeat(enrolment, request, timeoutMs = 1500) {
|
|
|
5634
5688
|
|
|
5635
5689
|
// src/fleet/policy-verify.ts
|
|
5636
5690
|
import { createHash as createHash4 } from "crypto";
|
|
5637
|
-
import { compactVerify, createLocalJWKSet } from "jose";
|
|
5691
|
+
import { compactVerify as compactVerify2, createLocalJWKSet as createLocalJWKSet2 } from "jose";
|
|
5638
5692
|
|
|
5639
5693
|
// src/fleet/types.ts
|
|
5640
5694
|
var FLEET_POLICY_TYP = "fleet-policy+jwt";
|
|
@@ -5683,8 +5737,8 @@ async function verifyFleetPolicy(jws, jwks, options) {
|
|
|
5683
5737
|
let payloadBytes;
|
|
5684
5738
|
let header;
|
|
5685
5739
|
try {
|
|
5686
|
-
const keySet =
|
|
5687
|
-
const result = await
|
|
5740
|
+
const keySet = createLocalJWKSet2(jwks);
|
|
5741
|
+
const result = await compactVerify2(jws, keySet, { algorithms: ["ES256"] });
|
|
5688
5742
|
payloadBytes = result.payload;
|
|
5689
5743
|
header = result.protectedHeader;
|
|
5690
5744
|
} catch (err) {
|
|
@@ -5730,9 +5784,9 @@ async function resolveFleetJwks(pinned, chain, ownerId) {
|
|
|
5730
5784
|
let lastSeq = 0;
|
|
5731
5785
|
for (const link of chain) {
|
|
5732
5786
|
try {
|
|
5733
|
-
const { payload, protectedHeader } = await
|
|
5787
|
+
const { payload, protectedHeader } = await compactVerify2(
|
|
5734
5788
|
link,
|
|
5735
|
-
|
|
5789
|
+
createLocalJWKSet2(trusted),
|
|
5736
5790
|
{ algorithms: ["ES256"] }
|
|
5737
5791
|
);
|
|
5738
5792
|
if (protectedHeader.typ !== FLEET_KEYS_TYP) continue;
|