@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
@@ -3969,7 +3969,7 @@ function getTrustLevel(score) {
3969
3969
  }
3970
3970
 
3971
3971
  // src/version.ts
3972
- var SDK_VERSION = "5.19.0";
3972
+ var SDK_VERSION = "5.21.0";
3973
3973
 
3974
3974
  // src/http.ts
3975
3975
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4287,6 +4287,9 @@ async function callVerifyAccessAPI(config, request) {
4287
4287
  if (requestData.enableRuntimeChallenge)
4288
4288
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4289
4289
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4290
+ if (config.actingProof?.connectorToken) {
4291
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4292
+ }
4290
4293
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4291
4294
  if (requestData.createSession) body.createSession = requestData.createSession;
4292
4295
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4454,22 +4457,43 @@ async function verify(config, request, options) {
4454
4457
  "[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."
4455
4458
  );
4456
4459
  }
4457
- const uncacheable = Boolean(request.commerceArtifacts);
4460
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4458
4461
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4459
4462
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4460
4463
  if (cached) {
4461
4464
  if (mergedConfig.debug) {
4462
4465
  console.log("[VerificationGateway] Returning cached result");
4463
4466
  }
4464
- const hit = { ...cached };
4465
- if (request.attemptId) {
4466
- hit.attemptId = request.attemptId;
4467
- } else {
4468
- delete hit.attemptId;
4469
- }
4470
- return hit;
4467
+ return sharedVerdict(cached, request);
4471
4468
  }
4472
4469
  }
4470
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4471
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4472
+ const pending = inflightVerifies.get(key);
4473
+ if (pending) return sharedVerdict(await pending, request);
4474
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4475
+ inflightVerifies.set(key, flight);
4476
+ try {
4477
+ return await flight;
4478
+ } finally {
4479
+ inflightVerifies.delete(key);
4480
+ }
4481
+ }
4482
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4483
+ }
4484
+ var inflightVerifies = /* @__PURE__ */ new Map();
4485
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4486
+ function sharedVerdict(source, request) {
4487
+ const hit = { ...source };
4488
+ if (request.attemptId) {
4489
+ hit.attemptId = request.attemptId;
4490
+ } else {
4491
+ delete hit.attemptId;
4492
+ }
4493
+ sharedVerdicts.add(hit);
4494
+ return hit;
4495
+ }
4496
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4473
4497
  const enrichedRequest = { ...request };
4474
4498
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4475
4499
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4548,7 +4572,9 @@ async function verify(config, request, options) {
4548
4572
  fulfilment: apiResponse.fulfilment,
4549
4573
  mandates: apiResponse.mandates,
4550
4574
  kyaToken: apiResponse.kyaToken,
4551
- aep: apiResponse.aep
4575
+ aep: apiResponse.aep,
4576
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4577
+ warnings: apiResponse.warnings
4552
4578
  };
4553
4579
  return result2;
4554
4580
  }
@@ -4616,7 +4642,9 @@ async function verify(config, request, options) {
4616
4642
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4617
4643
  mandates: apiResponse.mandates,
4618
4644
  kyaToken: apiResponse.kyaToken,
4619
- aep: apiResponse.aep
4645
+ aep: apiResponse.aep,
4646
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4647
+ warnings: apiResponse.warnings
4620
4648
  };
4621
4649
  if (result.recommendation === "deny") {
4622
4650
  result.policyAllowed = false;
@@ -4642,8 +4670,18 @@ async function verify(config, request, options) {
4642
4670
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4643
4671
  }
4644
4672
  }
4673
+ notifyVerificationListeners(request, result);
4645
4674
  return result;
4646
4675
  }
4676
+ var verificationListeners = /* @__PURE__ */ new Set();
4677
+ function notifyVerificationListeners(request, result) {
4678
+ for (const listener of verificationListeners) {
4679
+ try {
4680
+ listener(result, request);
4681
+ } catch {
4682
+ }
4683
+ }
4684
+ }
4647
4685
 
4648
4686
  // src/adapters/stepup-poll.ts
4649
4687
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
@@ -5025,7 +5063,7 @@ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
5025
5063
  // src/gateway/modes/online.ts
5026
5064
  function toGatewayConfig(config) {
5027
5065
  return {
5028
- apiBaseUrl: config.apiBaseUrl || "https://api.astrasync.ai",
5066
+ apiBaseUrl: config.apiBaseUrl || "https://astrasync.ai/api",
5029
5067
  apiKey: config.apiKey,
5030
5068
  minTrustScore: config.minTrustScore,
5031
5069
  minTrustScoreForFull: config.minTrustScoreForFull,