@astrasyncai/verification-gateway 5.19.0 → 5.20.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 +83 -0
  2. package/README.md +51 -2
  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 +58 -2
  24. package/dist/adapters/sdk.d.ts +58 -2
  25. package/dist/adapters/sdk.js +124 -11
  26. package/dist/adapters/sdk.js.map +1 -1
  27. package/dist/adapters/sdk.mjs +124 -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 +49 -11
  36. package/dist/bin/astrasync-codex-hook.js +49 -11
  37. package/dist/bin/astrasync-guard.js +49 -11
  38. package/dist/bin/astrasync.js +51 -12
  39. package/dist/browser/background.js +49 -11
  40. package/dist/browser/background.js.map +1 -1
  41. package/dist/browser/background.mjs +49 -11
  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 +49 -11
  48. package/dist/codex/index.js.map +1 -1
  49. package/dist/codex/index.mjs +49 -11
  50. package/dist/codex/index.mjs.map +1 -1
  51. package/dist/cursor/extension.js +49 -11
  52. package/dist/cursor/extension.js.map +1 -1
  53. package/dist/cursor/extension.mjs +49 -11
  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 +49 -11
  70. package/dist/gateway/gateway.js.map +1 -1
  71. package/dist/gateway/gateway.mjs +49 -11
  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 +168 -8
  76. package/dist/index.d.ts +168 -8
  77. package/dist/index.js +229 -31
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +226 -31
  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-BRz2U0Pn.d.ts → types-B_HLhZ9n.d.ts} +1 -1
  96. package/dist/{types-BfILnheI.d.mts → types-CU17R4Nr.d.mts} +11 -0
  97. package/dist/{types-BfILnheI.d.ts → types-CU17R4Nr.d.ts} +11 -0
  98. package/dist/{types-DqWPkiYl.d.mts → types-CxjqmPl-.d.mts} +25 -1
  99. package/dist/{types-DqWPkiYl.d.ts → types-CxjqmPl-.d.ts} +25 -1
  100. package/dist/{types-BoGjyon0.d.mts → types-D37aSQ9c.d.mts} +25 -1
  101. package/dist/{types-CfBpm3w5.d.mts → types-Djpz-L0w.d.mts} +1 -1
  102. package/dist/{types-eWyZuz-3.d.ts → types-Dn8tXnei.d.ts} +25 -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
@@ -3986,7 +3986,7 @@ function getTrustLevel(score) {
3986
3986
  }
3987
3987
 
3988
3988
  // src/version.ts
3989
- var SDK_VERSION = "5.19.0";
3989
+ var SDK_VERSION = "5.20.0";
3990
3990
 
3991
3991
  // src/http.ts
3992
3992
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4304,6 +4304,9 @@ async function callVerifyAccessAPI(config, request) {
4304
4304
  if (requestData.enableRuntimeChallenge)
4305
4305
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4306
4306
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4307
+ if (config.actingProof?.connectorToken) {
4308
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4309
+ }
4307
4310
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4308
4311
  if (requestData.createSession) body.createSession = requestData.createSession;
4309
4312
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4471,22 +4474,43 @@ async function verify(config, request, options) {
4471
4474
  "[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."
4472
4475
  );
4473
4476
  }
4474
- const uncacheable = Boolean(request.commerceArtifacts);
4477
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4475
4478
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4476
4479
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4477
4480
  if (cached) {
4478
4481
  if (mergedConfig.debug) {
4479
4482
  console.log("[VerificationGateway] Returning cached result");
4480
4483
  }
4481
- const hit = { ...cached };
4482
- if (request.attemptId) {
4483
- hit.attemptId = request.attemptId;
4484
- } else {
4485
- delete hit.attemptId;
4486
- }
4487
- return hit;
4484
+ return sharedVerdict(cached, request);
4488
4485
  }
4489
4486
  }
4487
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4488
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4489
+ const pending = inflightVerifies.get(key);
4490
+ if (pending) return sharedVerdict(await pending, request);
4491
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4492
+ inflightVerifies.set(key, flight);
4493
+ try {
4494
+ return await flight;
4495
+ } finally {
4496
+ inflightVerifies.delete(key);
4497
+ }
4498
+ }
4499
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4500
+ }
4501
+ var inflightVerifies = /* @__PURE__ */ new Map();
4502
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4503
+ function sharedVerdict(source, request) {
4504
+ const hit = { ...source };
4505
+ if (request.attemptId) {
4506
+ hit.attemptId = request.attemptId;
4507
+ } else {
4508
+ delete hit.attemptId;
4509
+ }
4510
+ sharedVerdicts.add(hit);
4511
+ return hit;
4512
+ }
4513
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4490
4514
  const enrichedRequest = { ...request };
4491
4515
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4492
4516
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4565,7 +4589,9 @@ async function verify(config, request, options) {
4565
4589
  fulfilment: apiResponse.fulfilment,
4566
4590
  mandates: apiResponse.mandates,
4567
4591
  kyaToken: apiResponse.kyaToken,
4568
- aep: apiResponse.aep
4592
+ aep: apiResponse.aep,
4593
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4594
+ warnings: apiResponse.warnings
4569
4595
  };
4570
4596
  return result2;
4571
4597
  }
@@ -4633,7 +4659,9 @@ async function verify(config, request, options) {
4633
4659
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4634
4660
  mandates: apiResponse.mandates,
4635
4661
  kyaToken: apiResponse.kyaToken,
4636
- aep: apiResponse.aep
4662
+ aep: apiResponse.aep,
4663
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4664
+ warnings: apiResponse.warnings
4637
4665
  };
4638
4666
  if (result.recommendation === "deny") {
4639
4667
  result.policyAllowed = false;
@@ -4659,8 +4687,18 @@ async function verify(config, request, options) {
4659
4687
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4660
4688
  }
4661
4689
  }
4690
+ notifyVerificationListeners(request, result);
4662
4691
  return result;
4663
4692
  }
4693
+ var verificationListeners = /* @__PURE__ */ new Set();
4694
+ function notifyVerificationListeners(request, result) {
4695
+ for (const listener of verificationListeners) {
4696
+ try {
4697
+ listener(result, request);
4698
+ } catch {
4699
+ }
4700
+ }
4701
+ }
4664
4702
 
4665
4703
  // src/adapters/stepup-poll.ts
4666
4704
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;