@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
@@ -4006,7 +4006,7 @@ function getTrustLevel(score) {
4006
4006
  }
4007
4007
 
4008
4008
  // src/version.ts
4009
- var SDK_VERSION = "5.19.0";
4009
+ var SDK_VERSION = "5.21.0";
4010
4010
 
4011
4011
  // src/http.ts
4012
4012
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4324,6 +4324,9 @@ async function callVerifyAccessAPI(config, request) {
4324
4324
  if (requestData.enableRuntimeChallenge)
4325
4325
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4326
4326
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4327
+ if (config.actingProof?.connectorToken) {
4328
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4329
+ }
4327
4330
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4328
4331
  if (requestData.createSession) body.createSession = requestData.createSession;
4329
4332
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4491,22 +4494,43 @@ async function verify(config, request, options) {
4491
4494
  "[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."
4492
4495
  );
4493
4496
  }
4494
- const uncacheable = Boolean(request.commerceArtifacts);
4497
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4495
4498
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4496
4499
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4497
4500
  if (cached) {
4498
4501
  if (mergedConfig.debug) {
4499
4502
  console.log("[VerificationGateway] Returning cached result");
4500
4503
  }
4501
- const hit = { ...cached };
4502
- if (request.attemptId) {
4503
- hit.attemptId = request.attemptId;
4504
- } else {
4505
- delete hit.attemptId;
4506
- }
4507
- return hit;
4504
+ return sharedVerdict(cached, request);
4508
4505
  }
4509
4506
  }
4507
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4508
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4509
+ const pending = inflightVerifies.get(key);
4510
+ if (pending) return sharedVerdict(await pending, request);
4511
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4512
+ inflightVerifies.set(key, flight);
4513
+ try {
4514
+ return await flight;
4515
+ } finally {
4516
+ inflightVerifies.delete(key);
4517
+ }
4518
+ }
4519
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4520
+ }
4521
+ var inflightVerifies = /* @__PURE__ */ new Map();
4522
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4523
+ function sharedVerdict(source, request) {
4524
+ const hit = { ...source };
4525
+ if (request.attemptId) {
4526
+ hit.attemptId = request.attemptId;
4527
+ } else {
4528
+ delete hit.attemptId;
4529
+ }
4530
+ sharedVerdicts.add(hit);
4531
+ return hit;
4532
+ }
4533
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4510
4534
  const enrichedRequest = { ...request };
4511
4535
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4512
4536
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4585,7 +4609,9 @@ async function verify(config, request, options) {
4585
4609
  fulfilment: apiResponse.fulfilment,
4586
4610
  mandates: apiResponse.mandates,
4587
4611
  kyaToken: apiResponse.kyaToken,
4588
- aep: apiResponse.aep
4612
+ aep: apiResponse.aep,
4613
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4614
+ warnings: apiResponse.warnings
4589
4615
  };
4590
4616
  return result2;
4591
4617
  }
@@ -4653,7 +4679,9 @@ async function verify(config, request, options) {
4653
4679
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4654
4680
  mandates: apiResponse.mandates,
4655
4681
  kyaToken: apiResponse.kyaToken,
4656
- aep: apiResponse.aep
4682
+ aep: apiResponse.aep,
4683
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4684
+ warnings: apiResponse.warnings
4657
4685
  };
4658
4686
  if (result.recommendation === "deny") {
4659
4687
  result.policyAllowed = false;
@@ -4679,8 +4707,18 @@ async function verify(config, request, options) {
4679
4707
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4680
4708
  }
4681
4709
  }
4710
+ notifyVerificationListeners(request, result);
4682
4711
  return result;
4683
4712
  }
4713
+ var verificationListeners = /* @__PURE__ */ new Set();
4714
+ function notifyVerificationListeners(request, result) {
4715
+ for (const listener of verificationListeners) {
4716
+ try {
4717
+ listener(result, request);
4718
+ } catch {
4719
+ }
4720
+ }
4721
+ }
4684
4722
 
4685
4723
  // src/adapters/stepup-poll.ts
4686
4724
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
@@ -5062,7 +5100,7 @@ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
5062
5100
  // src/gateway/modes/online.ts
5063
5101
  function toGatewayConfig(config) {
5064
5102
  return {
5065
- apiBaseUrl: config.apiBaseUrl || "https://api.astrasync.ai",
5103
+ apiBaseUrl: config.apiBaseUrl || "https://astrasync.ai/api",
5066
5104
  apiKey: config.apiKey,
5067
5105
  minTrustScore: config.minTrustScore,
5068
5106
  minTrustScoreForFull: config.minTrustScoreForFull,