@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
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var SDK_VERSION = "5.19.0";
2
+ var SDK_VERSION = "5.21.0";
3
3
 
4
4
  // src/http.ts
5
5
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -704,6 +704,9 @@ async function callVerifyAccessAPI(config, request) {
704
704
  if (requestData.enableRuntimeChallenge)
705
705
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
706
706
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
707
+ if (config.actingProof?.connectorToken) {
708
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
709
+ }
707
710
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
708
711
  if (requestData.createSession) body.createSession = requestData.createSession;
709
712
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -871,22 +874,43 @@ async function verify(config, request, options) {
871
874
  "[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."
872
875
  );
873
876
  }
874
- const uncacheable = Boolean(request.commerceArtifacts);
877
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
875
878
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
876
879
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
877
880
  if (cached) {
878
881
  if (mergedConfig.debug) {
879
882
  console.log("[VerificationGateway] Returning cached result");
880
883
  }
881
- const hit = { ...cached };
882
- if (request.attemptId) {
883
- hit.attemptId = request.attemptId;
884
- } else {
885
- delete hit.attemptId;
886
- }
887
- return hit;
884
+ return sharedVerdict(cached, request);
885
+ }
886
+ }
887
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
888
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
889
+ const pending = inflightVerifies.get(key);
890
+ if (pending) return sharedVerdict(await pending, request);
891
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
892
+ inflightVerifies.set(key, flight);
893
+ try {
894
+ return await flight;
895
+ } finally {
896
+ inflightVerifies.delete(key);
888
897
  }
889
898
  }
899
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
900
+ }
901
+ var inflightVerifies = /* @__PURE__ */ new Map();
902
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
903
+ function sharedVerdict(source, request) {
904
+ const hit = { ...source };
905
+ if (request.attemptId) {
906
+ hit.attemptId = request.attemptId;
907
+ } else {
908
+ delete hit.attemptId;
909
+ }
910
+ sharedVerdicts.add(hit);
911
+ return hit;
912
+ }
913
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
890
914
  const enrichedRequest = { ...request };
891
915
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
892
916
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -965,7 +989,9 @@ async function verify(config, request, options) {
965
989
  fulfilment: apiResponse.fulfilment,
966
990
  mandates: apiResponse.mandates,
967
991
  kyaToken: apiResponse.kyaToken,
968
- aep: apiResponse.aep
992
+ aep: apiResponse.aep,
993
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
994
+ warnings: apiResponse.warnings
969
995
  };
970
996
  return result2;
971
997
  }
@@ -1033,7 +1059,9 @@ async function verify(config, request, options) {
1033
1059
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
1034
1060
  mandates: apiResponse.mandates,
1035
1061
  kyaToken: apiResponse.kyaToken,
1036
- aep: apiResponse.aep
1062
+ aep: apiResponse.aep,
1063
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
1064
+ warnings: apiResponse.warnings
1037
1065
  };
1038
1066
  if (result.recommendation === "deny") {
1039
1067
  result.policyAllowed = false;
@@ -1059,8 +1087,18 @@ async function verify(config, request, options) {
1059
1087
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
1060
1088
  }
1061
1089
  }
1090
+ notifyVerificationListeners(request, result);
1062
1091
  return result;
1063
1092
  }
1093
+ var verificationListeners = /* @__PURE__ */ new Set();
1094
+ function notifyVerificationListeners(request, result) {
1095
+ for (const listener of verificationListeners) {
1096
+ try {
1097
+ listener(result, request);
1098
+ } catch {
1099
+ }
1100
+ }
1101
+ }
1064
1102
 
1065
1103
  // src/edge-core/request.ts
1066
1104
  function headerValue(req, name) {