@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
@@ -3994,7 +3994,7 @@ function getTrustLevel(score) {
3994
3994
  }
3995
3995
 
3996
3996
  // src/version.ts
3997
- var SDK_VERSION = "5.19.0";
3997
+ var SDK_VERSION = "5.20.0";
3998
3998
 
3999
3999
  // src/http.ts
4000
4000
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4312,6 +4312,9 @@ async function callVerifyAccessAPI(config, request) {
4312
4312
  if (requestData.enableRuntimeChallenge)
4313
4313
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4314
4314
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4315
+ if (config.actingProof?.connectorToken) {
4316
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4317
+ }
4315
4318
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4316
4319
  if (requestData.createSession) body.createSession = requestData.createSession;
4317
4320
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4479,22 +4482,43 @@ async function verify(config, request, options) {
4479
4482
  "[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."
4480
4483
  );
4481
4484
  }
4482
- const uncacheable = Boolean(request.commerceArtifacts);
4485
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4483
4486
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4484
4487
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4485
4488
  if (cached) {
4486
4489
  if (mergedConfig.debug) {
4487
4490
  console.log("[VerificationGateway] Returning cached result");
4488
4491
  }
4489
- const hit = { ...cached };
4490
- if (request.attemptId) {
4491
- hit.attemptId = request.attemptId;
4492
- } else {
4493
- delete hit.attemptId;
4494
- }
4495
- return hit;
4492
+ return sharedVerdict(cached, request);
4496
4493
  }
4497
4494
  }
4495
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4496
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4497
+ const pending = inflightVerifies.get(key);
4498
+ if (pending) return sharedVerdict(await pending, request);
4499
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4500
+ inflightVerifies.set(key, flight);
4501
+ try {
4502
+ return await flight;
4503
+ } finally {
4504
+ inflightVerifies.delete(key);
4505
+ }
4506
+ }
4507
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4508
+ }
4509
+ var inflightVerifies = /* @__PURE__ */ new Map();
4510
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4511
+ function sharedVerdict(source, request) {
4512
+ const hit = { ...source };
4513
+ if (request.attemptId) {
4514
+ hit.attemptId = request.attemptId;
4515
+ } else {
4516
+ delete hit.attemptId;
4517
+ }
4518
+ sharedVerdicts.add(hit);
4519
+ return hit;
4520
+ }
4521
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4498
4522
  const enrichedRequest = { ...request };
4499
4523
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4500
4524
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4573,7 +4597,9 @@ async function verify(config, request, options) {
4573
4597
  fulfilment: apiResponse.fulfilment,
4574
4598
  mandates: apiResponse.mandates,
4575
4599
  kyaToken: apiResponse.kyaToken,
4576
- aep: apiResponse.aep
4600
+ aep: apiResponse.aep,
4601
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4602
+ warnings: apiResponse.warnings
4577
4603
  };
4578
4604
  return result2;
4579
4605
  }
@@ -4641,7 +4667,9 @@ async function verify(config, request, options) {
4641
4667
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4642
4668
  mandates: apiResponse.mandates,
4643
4669
  kyaToken: apiResponse.kyaToken,
4644
- aep: apiResponse.aep
4670
+ aep: apiResponse.aep,
4671
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4672
+ warnings: apiResponse.warnings
4645
4673
  };
4646
4674
  if (result.recommendation === "deny") {
4647
4675
  result.policyAllowed = false;
@@ -4667,8 +4695,18 @@ async function verify(config, request, options) {
4667
4695
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4668
4696
  }
4669
4697
  }
4698
+ notifyVerificationListeners(request, result);
4670
4699
  return result;
4671
4700
  }
4701
+ var verificationListeners = /* @__PURE__ */ new Set();
4702
+ function notifyVerificationListeners(request, result) {
4703
+ for (const listener of verificationListeners) {
4704
+ try {
4705
+ listener(result, request);
4706
+ } catch {
4707
+ }
4708
+ }
4709
+ }
4672
4710
 
4673
4711
  // src/adapters/stepup-poll.ts
4674
4712
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;