@astrasyncai/verification-gateway 5.19.0 → 5.21.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 (111) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +53 -4
  3. package/dist/adapter-interface/interface.d.mts +2 -2
  4. package/dist/adapter-interface/interface.d.ts +2 -2
  5. package/dist/adapters/express.d.mts +1 -1
  6. package/dist/adapters/express.d.ts +1 -1
  7. package/dist/adapters/express.js +65 -16
  8. package/dist/adapters/express.js.map +1 -1
  9. package/dist/adapters/express.mjs +65 -16
  10. package/dist/adapters/express.mjs.map +1 -1
  11. package/dist/adapters/mcp.d.mts +23 -1
  12. package/dist/adapters/mcp.d.ts +23 -1
  13. package/dist/adapters/mcp.js +91 -16
  14. package/dist/adapters/mcp.js.map +1 -1
  15. package/dist/adapters/mcp.mjs +91 -16
  16. package/dist/adapters/mcp.mjs.map +1 -1
  17. package/dist/adapters/nextjs.d.mts +1 -1
  18. package/dist/adapters/nextjs.d.ts +1 -1
  19. package/dist/adapters/nextjs.js +57 -11
  20. package/dist/adapters/nextjs.js.map +1 -1
  21. package/dist/adapters/nextjs.mjs +57 -11
  22. package/dist/adapters/nextjs.mjs.map +1 -1
  23. package/dist/adapters/sdk.d.mts +35 -2
  24. package/dist/adapters/sdk.d.ts +35 -2
  25. package/dist/adapters/sdk.js +110 -11
  26. package/dist/adapters/sdk.js.map +1 -1
  27. package/dist/adapters/sdk.mjs +110 -11
  28. package/dist/adapters/sdk.mjs.map +1 -1
  29. package/dist/agent/index.d.mts +1 -1
  30. package/dist/agent/index.d.ts +1 -1
  31. package/dist/agent/index.js +1 -1
  32. package/dist/agent/index.js.map +1 -1
  33. package/dist/agent/index.mjs +1 -1
  34. package/dist/agent/index.mjs.map +1 -1
  35. package/dist/bin/astrasync-claude-hook.js +50 -12
  36. package/dist/bin/astrasync-codex-hook.js +50 -12
  37. package/dist/bin/astrasync-guard.js +50 -12
  38. package/dist/bin/astrasync.js +65 -13
  39. package/dist/browser/background.js +50 -12
  40. package/dist/browser/background.js.map +1 -1
  41. package/dist/browser/background.mjs +50 -12
  42. package/dist/browser/background.mjs.map +1 -1
  43. package/dist/cli/index.js +1 -1
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/cli/index.mjs +1 -1
  46. package/dist/cli/index.mjs.map +1 -1
  47. package/dist/codex/index.js +50 -12
  48. package/dist/codex/index.js.map +1 -1
  49. package/dist/codex/index.mjs +50 -12
  50. package/dist/codex/index.mjs.map +1 -1
  51. package/dist/cursor/extension.js +50 -12
  52. package/dist/cursor/extension.js.map +1 -1
  53. package/dist/cursor/extension.mjs +50 -12
  54. package/dist/cursor/extension.mjs.map +1 -1
  55. package/dist/edge-config.d.mts +1 -1
  56. package/dist/edge-config.d.ts +1 -1
  57. package/dist/edge-config.js +1 -1
  58. package/dist/edge-config.js.map +1 -1
  59. package/dist/edge-config.mjs +1 -1
  60. package/dist/edge-config.mjs.map +1 -1
  61. package/dist/edge-core/index.d.mts +1 -1
  62. package/dist/edge-core/index.d.ts +1 -1
  63. package/dist/edge-core/index.js +49 -11
  64. package/dist/edge-core/index.js.map +1 -1
  65. package/dist/edge-core/index.mjs +49 -11
  66. package/dist/edge-core/index.mjs.map +1 -1
  67. package/dist/gateway/gateway.d.mts +2 -2
  68. package/dist/gateway/gateway.d.ts +2 -2
  69. package/dist/gateway/gateway.js +50 -12
  70. package/dist/gateway/gateway.js.map +1 -1
  71. package/dist/gateway/gateway.mjs +50 -12
  72. package/dist/gateway/gateway.mjs.map +1 -1
  73. package/dist/git-trigger/git-hooks.d.mts +1 -1
  74. package/dist/git-trigger/git-hooks.d.ts +1 -1
  75. package/dist/index.d.mts +286 -8
  76. package/dist/index.d.ts +286 -8
  77. package/dist/index.js +532 -49
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +522 -49
  80. package/dist/index.mjs.map +1 -1
  81. package/dist/local-evaluator/evaluator.d.mts +2 -2
  82. package/dist/local-evaluator/evaluator.d.ts +2 -2
  83. package/dist/registration/index.d.mts +11 -2
  84. package/dist/registration/index.d.ts +11 -2
  85. package/dist/registration/index.js +1 -1
  86. package/dist/registration/index.js.map +1 -1
  87. package/dist/registration/index.mjs +1 -1
  88. package/dist/registration/index.mjs.map +1 -1
  89. package/dist/transport/index.d.mts +1 -1
  90. package/dist/transport/index.d.ts +1 -1
  91. package/dist/transport/index.js +1 -1
  92. package/dist/transport/index.js.map +1 -1
  93. package/dist/transport/index.mjs +1 -1
  94. package/dist/transport/index.mjs.map +1 -1
  95. package/dist/{types-BoGjyon0.d.mts → types-B4zhOAlq.d.mts} +30 -1
  96. package/dist/{types-BRz2U0Pn.d.ts → types-B_HLhZ9n.d.ts} +1 -1
  97. package/dist/{types-BfILnheI.d.mts → types-CU17R4Nr.d.mts} +11 -0
  98. package/dist/{types-BfILnheI.d.ts → types-CU17R4Nr.d.ts} +11 -0
  99. package/dist/{types-eWyZuz-3.d.ts → types-CtBXnWuV.d.ts} +30 -1
  100. package/dist/{types-DqWPkiYl.d.mts → types-DHHyXtuZ.d.mts} +30 -1
  101. package/dist/{types-DqWPkiYl.d.ts → types-DHHyXtuZ.d.ts} +30 -1
  102. package/dist/{types-CfBpm3w5.d.mts → types-Djpz-L0w.d.mts} +1 -1
  103. package/dist/ui/index.d.mts +1 -1
  104. package/dist/ui/index.d.ts +1 -1
  105. package/dist/verify.d.mts +28 -3
  106. package/dist/verify.d.ts +28 -3
  107. package/dist/verify.js +71 -11
  108. package/dist/verify.js.map +1 -1
  109. package/dist/verify.mjs +69 -11
  110. package/dist/verify.mjs.map +1 -1
  111. package/package.json +1 -1
@@ -4036,7 +4036,7 @@ function getTrustLevel(score) {
4036
4036
  }
4037
4037
 
4038
4038
  // src/version.ts
4039
- var SDK_VERSION = "5.19.0";
4039
+ var SDK_VERSION = "5.21.0";
4040
4040
 
4041
4041
  // src/http.ts
4042
4042
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4354,6 +4354,9 @@ async function callVerifyAccessAPI(config, request) {
4354
4354
  if (requestData.enableRuntimeChallenge)
4355
4355
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4356
4356
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4357
+ if (config.actingProof?.connectorToken) {
4358
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4359
+ }
4357
4360
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4358
4361
  if (requestData.createSession) body.createSession = requestData.createSession;
4359
4362
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4521,22 +4524,43 @@ async function verify(config, request, options) {
4521
4524
  "[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."
4522
4525
  );
4523
4526
  }
4524
- const uncacheable = Boolean(request.commerceArtifacts);
4527
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4525
4528
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4526
4529
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4527
4530
  if (cached) {
4528
4531
  if (mergedConfig.debug) {
4529
4532
  console.log("[VerificationGateway] Returning cached result");
4530
4533
  }
4531
- const hit = { ...cached };
4532
- if (request.attemptId) {
4533
- hit.attemptId = request.attemptId;
4534
- } else {
4535
- delete hit.attemptId;
4536
- }
4537
- return hit;
4534
+ return sharedVerdict(cached, request);
4538
4535
  }
4539
4536
  }
4537
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4538
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4539
+ const pending = inflightVerifies.get(key);
4540
+ if (pending) return sharedVerdict(await pending, request);
4541
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4542
+ inflightVerifies.set(key, flight);
4543
+ try {
4544
+ return await flight;
4545
+ } finally {
4546
+ inflightVerifies.delete(key);
4547
+ }
4548
+ }
4549
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4550
+ }
4551
+ var inflightVerifies = /* @__PURE__ */ new Map();
4552
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4553
+ function sharedVerdict(source, request) {
4554
+ const hit = { ...source };
4555
+ if (request.attemptId) {
4556
+ hit.attemptId = request.attemptId;
4557
+ } else {
4558
+ delete hit.attemptId;
4559
+ }
4560
+ sharedVerdicts.add(hit);
4561
+ return hit;
4562
+ }
4563
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4540
4564
  const enrichedRequest = { ...request };
4541
4565
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4542
4566
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4615,7 +4639,9 @@ async function verify(config, request, options) {
4615
4639
  fulfilment: apiResponse.fulfilment,
4616
4640
  mandates: apiResponse.mandates,
4617
4641
  kyaToken: apiResponse.kyaToken,
4618
- aep: apiResponse.aep
4642
+ aep: apiResponse.aep,
4643
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4644
+ warnings: apiResponse.warnings
4619
4645
  };
4620
4646
  return result2;
4621
4647
  }
@@ -4683,7 +4709,9 @@ async function verify(config, request, options) {
4683
4709
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4684
4710
  mandates: apiResponse.mandates,
4685
4711
  kyaToken: apiResponse.kyaToken,
4686
- aep: apiResponse.aep
4712
+ aep: apiResponse.aep,
4713
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4714
+ warnings: apiResponse.warnings
4687
4715
  };
4688
4716
  if (result.recommendation === "deny") {
4689
4717
  result.policyAllowed = false;
@@ -4709,8 +4737,18 @@ async function verify(config, request, options) {
4709
4737
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4710
4738
  }
4711
4739
  }
4740
+ notifyVerificationListeners(request, result);
4712
4741
  return result;
4713
4742
  }
4743
+ var verificationListeners = /* @__PURE__ */ new Set();
4744
+ function notifyVerificationListeners(request, result) {
4745
+ for (const listener of verificationListeners) {
4746
+ try {
4747
+ listener(result, request);
4748
+ } catch {
4749
+ }
4750
+ }
4751
+ }
4714
4752
 
4715
4753
  // src/adapters/stepup-poll.ts
4716
4754
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
@@ -5079,7 +5117,7 @@ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
5079
5117
  // src/gateway/modes/online.ts
5080
5118
  function toGatewayConfig(config) {
5081
5119
  return {
5082
- apiBaseUrl: config.apiBaseUrl || "https://api.astrasync.ai",
5120
+ apiBaseUrl: config.apiBaseUrl || "https://astrasync.ai/api",
5083
5121
  apiKey: config.apiKey,
5084
5122
  minTrustScore: config.minTrustScore,
5085
5123
  minTrustScoreForFull: config.minTrustScoreForFull,