@astrasyncai/verification-gateway 5.13.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 +504 -249
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +504 -249
- 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 +487 -248
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +487 -248
- 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 +82 -20
- package/dist/bin/astrasync-codex-hook.js +82 -20
- package/dist/bin/astrasync-guard.js +82 -20
- package/dist/bin/astrasync.js +316 -43
- package/dist/browser/background.js +77 -15
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +87 -15
- 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 +82 -20
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +92 -20
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +82 -20
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +92 -20
- 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 +43 -6
- package/dist/edge-core/index.d.ts +43 -6
- package/dist/edge-core/index.js +120 -19
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +118 -19
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +77 -15
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +87 -15
- 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 +5143 -2621
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5090 -2623
- 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
|
@@ -3988,7 +3988,7 @@ function getTrustLevel(score) {
|
|
|
3988
3988
|
}
|
|
3989
3989
|
|
|
3990
3990
|
// src/version.ts
|
|
3991
|
-
var SDK_VERSION = "5.
|
|
3991
|
+
var SDK_VERSION = "5.15.0";
|
|
3992
3992
|
|
|
3993
3993
|
// src/http.ts
|
|
3994
3994
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4307,6 +4307,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4307
4307
|
if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
|
|
4308
4308
|
if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
|
|
4309
4309
|
if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
|
|
4310
|
+
if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
|
|
4310
4311
|
if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
|
|
4311
4312
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4312
4313
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
@@ -4457,7 +4458,8 @@ async function verify(config, request, options) {
|
|
|
4457
4458
|
"[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."
|
|
4458
4459
|
);
|
|
4459
4460
|
}
|
|
4460
|
-
|
|
4461
|
+
const uncacheable = Boolean(request.commerceArtifacts);
|
|
4462
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
4461
4463
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
4462
4464
|
if (cached) {
|
|
4463
4465
|
if (mergedConfig.debug) {
|
|
@@ -4538,7 +4540,10 @@ async function verify(config, request, options) {
|
|
|
4538
4540
|
// MERCHANT caller only (bridge callers strip it before the agent plane).
|
|
4539
4541
|
settlementToken: apiResponse.settlementToken,
|
|
4540
4542
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4541
|
-
fulfilment: apiResponse.fulfilment
|
|
4543
|
+
fulfilment: apiResponse.fulfilment,
|
|
4544
|
+
mandates: apiResponse.mandates,
|
|
4545
|
+
kyaToken: apiResponse.kyaToken,
|
|
4546
|
+
aep: apiResponse.aep
|
|
4542
4547
|
};
|
|
4543
4548
|
return result2;
|
|
4544
4549
|
}
|
|
@@ -4548,7 +4553,10 @@ async function verify(config, request, options) {
|
|
|
4548
4553
|
trustScore: apiResponse.agent.trustScore,
|
|
4549
4554
|
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4550
4555
|
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4551
|
-
status: apiResponse.agent.agentStatus
|
|
4556
|
+
status: apiResponse.agent.agentStatus,
|
|
4557
|
+
...apiResponse.agent.protocolIdentities && {
|
|
4558
|
+
protocolIdentities: apiResponse.agent.protocolIdentities
|
|
4559
|
+
}
|
|
4552
4560
|
} : void 0;
|
|
4553
4561
|
const developer = apiResponse.developer ? {
|
|
4554
4562
|
astradId: apiResponse.developer.kyaOwnerId,
|
|
@@ -4599,7 +4607,11 @@ async function verify(config, request, options) {
|
|
|
4599
4607
|
settlementOutcome: apiResponse.settlementOutcome,
|
|
4600
4608
|
settlementToken: apiResponse.settlementToken,
|
|
4601
4609
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4602
|
-
fulfilment: apiResponse.fulfilment
|
|
4610
|
+
fulfilment: apiResponse.fulfilment,
|
|
4611
|
+
// 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
|
|
4612
|
+
mandates: apiResponse.mandates,
|
|
4613
|
+
kyaToken: apiResponse.kyaToken,
|
|
4614
|
+
aep: apiResponse.aep
|
|
4603
4615
|
};
|
|
4604
4616
|
if (result.recommendation === "deny") {
|
|
4605
4617
|
result.policyAllowed = false;
|
|
@@ -4619,7 +4631,9 @@ async function verify(config, request, options) {
|
|
|
4619
4631
|
}
|
|
4620
4632
|
const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
|
|
4621
4633
|
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
|
|
4622
|
-
|
|
4634
|
+
if (!uncacheable) {
|
|
4635
|
+
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
4636
|
+
}
|
|
4623
4637
|
}
|
|
4624
4638
|
return result;
|
|
4625
4639
|
}
|
|
@@ -4630,6 +4644,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
|
4630
4644
|
// src/metadata-capture.ts
|
|
4631
4645
|
var MAX_TOTAL_BYTES = 16 * 1024;
|
|
4632
4646
|
|
|
4647
|
+
// src/adapters/commerce-detect.ts
|
|
4648
|
+
var MAX_BODY_BYTES = 64 * 1024;
|
|
4649
|
+
|
|
4633
4650
|
// src/edge-config.ts
|
|
4634
4651
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4635
4652
|
version: 1,
|
|
@@ -4658,6 +4675,11 @@ async function withBudget(promise, ms) {
|
|
|
4658
4675
|
if (timer) clearTimeout(timer);
|
|
4659
4676
|
}
|
|
4660
4677
|
}
|
|
4678
|
+
var CONTAINER_ID = (() => {
|
|
4679
|
+
const c = globalThis.crypto;
|
|
4680
|
+
if (c?.randomUUID) return c.randomUUID();
|
|
4681
|
+
return `c-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 12)}`;
|
|
4682
|
+
})();
|
|
4661
4683
|
var destKeyOf = (d) => `${d.apiBaseUrl}\0${d.apiKey ?? ""}\0${d.counterparty}\0${d.adapter ?? ""}`;
|
|
4662
4684
|
var BeaconBuffer = class {
|
|
4663
4685
|
constructor(options = {}) {
|
|
@@ -4665,6 +4687,7 @@ var BeaconBuffer = class {
|
|
|
4665
4687
|
this.droppedSinceLast = 0;
|
|
4666
4688
|
this.droppedTotal = 0;
|
|
4667
4689
|
this.deliveredTotal = 0;
|
|
4690
|
+
this.enqueuedTotal = 0;
|
|
4668
4691
|
this.backoffUntil = 0;
|
|
4669
4692
|
this.collapse = /* @__PURE__ */ new Map();
|
|
4670
4693
|
/** Keys the backend answered 401 for — later batches go unauthenticated. */
|
|
@@ -4677,13 +4700,16 @@ var BeaconBuffer = class {
|
|
|
4677
4700
|
collapseMaxKeys: options.collapseMaxKeys ?? 1e3,
|
|
4678
4701
|
requestTimeoutMs: options.requestTimeoutMs ?? 1e4,
|
|
4679
4702
|
retryBackoffMs: options.retryBackoffMs ?? 1e3,
|
|
4703
|
+
holdRepeats: options.holdRepeats ?? false,
|
|
4704
|
+
containerId: options.containerId ?? CONTAINER_ID,
|
|
4680
4705
|
now: options.now ?? Date.now
|
|
4681
4706
|
};
|
|
4682
4707
|
}
|
|
4683
4708
|
/**
|
|
4684
4709
|
* Queue one beacon. With a `collapseKey`, a repeat inside the window is
|
|
4685
|
-
* merged into
|
|
4686
|
-
*
|
|
4710
|
+
* merged into this key's item while that item is still queued (not yet in
|
|
4711
|
+
* flight). Once it has left, the repeat becomes a new item, sendable on
|
|
4712
|
+
* this flush — nothing waits for a later invocation (round 27.6).
|
|
4687
4713
|
*/
|
|
4688
4714
|
enqueue(dest, item, collapseKey) {
|
|
4689
4715
|
const now = this.opts.now();
|
|
@@ -4696,12 +4722,15 @@ var BeaconBuffer = class {
|
|
|
4696
4722
|
return;
|
|
4697
4723
|
}
|
|
4698
4724
|
}
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4725
|
+
if (this.opts.holdRepeats) {
|
|
4726
|
+
entry.held = this.push(
|
|
4727
|
+
dest,
|
|
4728
|
+
{ ...item, repeatCount: 1 },
|
|
4729
|
+
entry.firstSeenAt + this.opts.collapseWindowMs
|
|
4730
|
+
);
|
|
4731
|
+
return;
|
|
4732
|
+
}
|
|
4733
|
+
entry.first = this.push(dest, { ...item, repeatCount: 1 }, now);
|
|
4705
4734
|
return;
|
|
4706
4735
|
}
|
|
4707
4736
|
this.collapse.delete(collapseKey);
|
|
@@ -4737,6 +4766,7 @@ var BeaconBuffer = class {
|
|
|
4737
4766
|
droppedSinceLast: this.droppedSinceLast,
|
|
4738
4767
|
droppedTotal: this.droppedTotal,
|
|
4739
4768
|
deliveredTotal: this.deliveredTotal,
|
|
4769
|
+
enqueuedTotal: this.enqueuedTotal,
|
|
4740
4770
|
flushing: this.inFlight !== void 0
|
|
4741
4771
|
};
|
|
4742
4772
|
}
|
|
@@ -4751,6 +4781,7 @@ var BeaconBuffer = class {
|
|
|
4751
4781
|
inFlight: false
|
|
4752
4782
|
};
|
|
4753
4783
|
this.queue.push(entry);
|
|
4784
|
+
this.enqueuedTotal += 1;
|
|
4754
4785
|
return entry;
|
|
4755
4786
|
}
|
|
4756
4787
|
dropOldest() {
|
|
@@ -4796,7 +4827,11 @@ var BeaconBuffer = class {
|
|
|
4796
4827
|
droppedSinceLast: reportedDropped,
|
|
4797
4828
|
queueDepth: this.queue.length,
|
|
4798
4829
|
adapter: dest.adapter ?? "edge-core",
|
|
4799
|
-
version: SDK_VERSION
|
|
4830
|
+
version: SDK_VERSION,
|
|
4831
|
+
containerId: this.opts.containerId,
|
|
4832
|
+
enqueuedTotal: this.enqueuedTotal,
|
|
4833
|
+
deliveredTotal: this.deliveredTotal,
|
|
4834
|
+
droppedTotal: this.droppedTotal
|
|
4800
4835
|
};
|
|
4801
4836
|
const controller = typeof AbortController !== "undefined" ? new AbortController() : void 0;
|
|
4802
4837
|
const response = await withBudget(
|
|
@@ -4921,6 +4956,33 @@ var import_node_crypto4 = require("crypto");
|
|
|
4921
4956
|
// src/transport/registry/visa.ts
|
|
4922
4957
|
var import_jose = require("jose");
|
|
4923
4958
|
|
|
4959
|
+
// src/ucp/profile.ts
|
|
4960
|
+
var UCP_VERSION = "2026-08-25";
|
|
4961
|
+
var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
|
|
4962
|
+
var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
|
|
4963
|
+
|
|
4964
|
+
// src/ucp/signatures.ts
|
|
4965
|
+
var import_http_message_signatures3 = require("http-message-signatures");
|
|
4966
|
+
|
|
4967
|
+
// src/http-signatures/sign.ts
|
|
4968
|
+
var import_http_message_signatures2 = require("http-message-signatures");
|
|
4969
|
+
|
|
4970
|
+
// src/ucp/checkout-kit.ts
|
|
4971
|
+
var import_jose3 = require("jose");
|
|
4972
|
+
|
|
4973
|
+
// src/mandates/sd-jwt.ts
|
|
4974
|
+
var import_jose2 = require("jose");
|
|
4975
|
+
|
|
4976
|
+
// src/idempotency/index.ts
|
|
4977
|
+
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
4978
|
+
|
|
4979
|
+
// src/payments/kyapay.ts
|
|
4980
|
+
var import_jose4 = require("jose");
|
|
4981
|
+
|
|
4982
|
+
// src/aep/core.ts
|
|
4983
|
+
var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
|
|
4984
|
+
var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
4985
|
+
|
|
4924
4986
|
// src/gateway/modes/online.ts
|
|
4925
4987
|
function toGatewayConfig(config) {
|
|
4926
4988
|
return {
|