@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
@@ -3722,7 +3722,7 @@ function getTrustLevel(score) {
3722
3722
  }
3723
3723
 
3724
3724
  // src/version.ts
3725
- var SDK_VERSION = "5.19.0";
3725
+ var SDK_VERSION = "5.20.0";
3726
3726
 
3727
3727
  // src/http.ts
3728
3728
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4040,6 +4040,9 @@ async function callVerifyAccessAPI(config, request) {
4040
4040
  if (requestData.enableRuntimeChallenge)
4041
4041
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4042
4042
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4043
+ if (config.actingProof?.connectorToken) {
4044
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4045
+ }
4043
4046
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4044
4047
  if (requestData.createSession) body.createSession = requestData.createSession;
4045
4048
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4207,22 +4210,43 @@ async function verify(config, request, options) {
4207
4210
  "[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."
4208
4211
  );
4209
4212
  }
4210
- const uncacheable = Boolean(request.commerceArtifacts);
4213
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4211
4214
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4212
4215
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4213
4216
  if (cached) {
4214
4217
  if (mergedConfig.debug) {
4215
4218
  console.log("[VerificationGateway] Returning cached result");
4216
4219
  }
4217
- const hit = { ...cached };
4218
- if (request.attemptId) {
4219
- hit.attemptId = request.attemptId;
4220
- } else {
4221
- delete hit.attemptId;
4222
- }
4223
- return hit;
4220
+ return sharedVerdict(cached, request);
4224
4221
  }
4225
4222
  }
4223
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4224
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4225
+ const pending = inflightVerifies.get(key);
4226
+ if (pending) return sharedVerdict(await pending, request);
4227
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4228
+ inflightVerifies.set(key, flight);
4229
+ try {
4230
+ return await flight;
4231
+ } finally {
4232
+ inflightVerifies.delete(key);
4233
+ }
4234
+ }
4235
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4236
+ }
4237
+ var inflightVerifies = /* @__PURE__ */ new Map();
4238
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4239
+ function sharedVerdict(source, request) {
4240
+ const hit = { ...source };
4241
+ if (request.attemptId) {
4242
+ hit.attemptId = request.attemptId;
4243
+ } else {
4244
+ delete hit.attemptId;
4245
+ }
4246
+ sharedVerdicts.add(hit);
4247
+ return hit;
4248
+ }
4249
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4226
4250
  const enrichedRequest = { ...request };
4227
4251
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4228
4252
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4301,7 +4325,9 @@ async function verify(config, request, options) {
4301
4325
  fulfilment: apiResponse.fulfilment,
4302
4326
  mandates: apiResponse.mandates,
4303
4327
  kyaToken: apiResponse.kyaToken,
4304
- aep: apiResponse.aep
4328
+ aep: apiResponse.aep,
4329
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4330
+ warnings: apiResponse.warnings
4305
4331
  };
4306
4332
  return result2;
4307
4333
  }
@@ -4369,7 +4395,9 @@ async function verify(config, request, options) {
4369
4395
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4370
4396
  mandates: apiResponse.mandates,
4371
4397
  kyaToken: apiResponse.kyaToken,
4372
- aep: apiResponse.aep
4398
+ aep: apiResponse.aep,
4399
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4400
+ warnings: apiResponse.warnings
4373
4401
  };
4374
4402
  if (result.recommendation === "deny") {
4375
4403
  result.policyAllowed = false;
@@ -4395,8 +4423,18 @@ async function verify(config, request, options) {
4395
4423
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4396
4424
  }
4397
4425
  }
4426
+ notifyVerificationListeners(request, result);
4398
4427
  return result;
4399
4428
  }
4429
+ var verificationListeners = /* @__PURE__ */ new Set();
4430
+ function notifyVerificationListeners(request, result) {
4431
+ for (const listener of verificationListeners) {
4432
+ try {
4433
+ listener(result, request);
4434
+ } catch {
4435
+ }
4436
+ }
4437
+ }
4400
4438
 
4401
4439
  // src/adapters/stepup-poll.ts
4402
4440
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;