@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
- import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-CfBpm3w5.mjs';
2
- import '../types-BfILnheI.mjs';
1
+ import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-Djpz-L0w.mjs';
2
+ import '../types-CU17R4Nr.mjs';
3
3
 
4
4
  /**
5
5
  * Hybrid Mode — Local evaluation for speed, async API sync for trust scoring.
@@ -1,5 +1,5 @@
1
- import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-BRz2U0Pn.js';
2
- import '../types-BfILnheI.js';
1
+ import { a as AstraSyncGatewayConfig, P as PDLSSContext, V as VerificationDecision } from '../types-B_HLhZ9n.js';
2
+ import '../types-CU17R4Nr.js';
3
3
 
4
4
  /**
5
5
  * Hybrid Mode — Local evaluation for speed, async API sync for trust scoring.
@@ -3748,7 +3748,7 @@ function getTrustLevel(score) {
3748
3748
  }
3749
3749
 
3750
3750
  // src/version.ts
3751
- var SDK_VERSION = "5.19.0";
3751
+ var SDK_VERSION = "5.21.0";
3752
3752
 
3753
3753
  // src/http.ts
3754
3754
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4066,6 +4066,9 @@ async function callVerifyAccessAPI(config, request) {
4066
4066
  if (requestData.enableRuntimeChallenge)
4067
4067
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4068
4068
  if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4069
+ if (config.actingProof?.connectorToken) {
4070
+ body.actingProof = { connectorToken: config.actingProof.connectorToken };
4071
+ }
4069
4072
  if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
4070
4073
  if (requestData.createSession) body.createSession = requestData.createSession;
4071
4074
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
@@ -4233,22 +4236,43 @@ async function verify(config, request, options) {
4233
4236
  "[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."
4234
4237
  );
4235
4238
  }
4236
- const uncacheable = Boolean(request.commerceArtifacts);
4239
+ const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
4237
4240
  if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4238
4241
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4239
4242
  if (cached) {
4240
4243
  if (mergedConfig.debug) {
4241
4244
  console.log("[VerificationGateway] Returning cached result");
4242
4245
  }
4243
- const hit = { ...cached };
4244
- if (request.attemptId) {
4245
- hit.attemptId = request.attemptId;
4246
- } else {
4247
- delete hit.attemptId;
4248
- }
4249
- return hit;
4246
+ return sharedVerdict(cached, request);
4250
4247
  }
4251
4248
  }
4249
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4250
+ const key = getCacheKey(request, mergedConfig.counterpartyId);
4251
+ const pending = inflightVerifies.get(key);
4252
+ if (pending) return sharedVerdict(await pending, request);
4253
+ const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
4254
+ inflightVerifies.set(key, flight);
4255
+ try {
4256
+ return await flight;
4257
+ } finally {
4258
+ inflightVerifies.delete(key);
4259
+ }
4260
+ }
4261
+ return verifyViaApi(mergedConfig, request, urls, uncacheable);
4262
+ }
4263
+ var inflightVerifies = /* @__PURE__ */ new Map();
4264
+ var sharedVerdicts = /* @__PURE__ */ new WeakSet();
4265
+ function sharedVerdict(source, request) {
4266
+ const hit = { ...source };
4267
+ if (request.attemptId) {
4268
+ hit.attemptId = request.attemptId;
4269
+ } else {
4270
+ delete hit.attemptId;
4271
+ }
4272
+ sharedVerdicts.add(hit);
4273
+ return hit;
4274
+ }
4275
+ async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
4252
4276
  const enrichedRequest = { ...request };
4253
4277
  if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
4254
4278
  enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
@@ -4327,7 +4351,9 @@ async function verify(config, request, options) {
4327
4351
  fulfilment: apiResponse.fulfilment,
4328
4352
  mandates: apiResponse.mandates,
4329
4353
  kyaToken: apiResponse.kyaToken,
4330
- aep: apiResponse.aep
4354
+ aep: apiResponse.aep,
4355
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4356
+ warnings: apiResponse.warnings
4331
4357
  };
4332
4358
  return result2;
4333
4359
  }
@@ -4395,7 +4421,9 @@ async function verify(config, request, options) {
4395
4421
  // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4396
4422
  mandates: apiResponse.mandates,
4397
4423
  kyaToken: apiResponse.kyaToken,
4398
- aep: apiResponse.aep
4424
+ aep: apiResponse.aep,
4425
+ // 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
4426
+ warnings: apiResponse.warnings
4399
4427
  };
4400
4428
  if (result.recommendation === "deny") {
4401
4429
  result.policyAllowed = false;
@@ -4421,8 +4449,18 @@ async function verify(config, request, options) {
4421
4449
  cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4422
4450
  }
4423
4451
  }
4452
+ notifyVerificationListeners(request, result);
4424
4453
  return result;
4425
4454
  }
4455
+ var verificationListeners = /* @__PURE__ */ new Set();
4456
+ function notifyVerificationListeners(request, result) {
4457
+ for (const listener of verificationListeners) {
4458
+ try {
4459
+ listener(result, request);
4460
+ } catch {
4461
+ }
4462
+ }
4463
+ }
4426
4464
 
4427
4465
  // src/adapters/stepup-poll.ts
4428
4466
  var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
@@ -4791,7 +4829,7 @@ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
4791
4829
  // src/gateway/modes/online.ts
4792
4830
  function toGatewayConfig(config) {
4793
4831
  return {
4794
- apiBaseUrl: config.apiBaseUrl || "https://api.astrasync.ai",
4832
+ apiBaseUrl: config.apiBaseUrl || "https://astrasync.ai/api",
4795
4833
  apiKey: config.apiKey,
4796
4834
  minTrustScore: config.minTrustScore,
4797
4835
  minTrustScoreForFull: config.minTrustScoreForFull,