@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.
- package/CHANGELOG.md +83 -0
- package/README.md +51 -2
- package/dist/adapter-interface/interface.d.mts +2 -2
- package/dist/adapter-interface/interface.d.ts +2 -2
- package/dist/adapters/express.d.mts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.js +65 -16
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +65 -16
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +23 -1
- package/dist/adapters/mcp.d.ts +23 -1
- package/dist/adapters/mcp.js +91 -16
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +91 -16
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +1 -1
- package/dist/adapters/nextjs.d.ts +1 -1
- package/dist/adapters/nextjs.js +57 -11
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +57 -11
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +58 -2
- package/dist/adapters/sdk.d.ts +58 -2
- package/dist/adapters/sdk.js +124 -11
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +124 -11
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.d.mts +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +1 -1
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +49 -11
- package/dist/bin/astrasync-codex-hook.js +49 -11
- package/dist/bin/astrasync-guard.js +49 -11
- package/dist/bin/astrasync.js +51 -12
- package/dist/browser/background.js +49 -11
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +49 -11
- package/dist/browser/background.mjs.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/codex/index.js +49 -11
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +49 -11
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +49 -11
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +49 -11
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.d.mts +1 -1
- package/dist/edge-config.d.ts +1 -1
- package/dist/edge-config.js +1 -1
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +1 -1
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.d.mts +1 -1
- package/dist/edge-core/index.d.ts +1 -1
- package/dist/edge-core/index.js +49 -11
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +49 -11
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.d.mts +2 -2
- package/dist/gateway/gateway.d.ts +2 -2
- package/dist/gateway/gateway.js +49 -11
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +49 -11
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +1 -1
- package/dist/git-trigger/git-hooks.d.ts +1 -1
- package/dist/index.d.mts +168 -8
- package/dist/index.d.ts +168 -8
- package/dist/index.js +229 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +226 -31
- package/dist/index.mjs.map +1 -1
- package/dist/local-evaluator/evaluator.d.mts +2 -2
- package/dist/local-evaluator/evaluator.d.ts +2 -2
- package/dist/registration/index.d.mts +11 -2
- package/dist/registration/index.d.ts +11 -2
- package/dist/registration/index.js +1 -1
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +1 -1
- package/dist/registration/index.mjs.map +1 -1
- package/dist/transport/index.d.mts +1 -1
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +1 -1
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +1 -1
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-BRz2U0Pn.d.ts → types-B_HLhZ9n.d.ts} +1 -1
- package/dist/{types-BfILnheI.d.mts → types-CU17R4Nr.d.mts} +11 -0
- package/dist/{types-BfILnheI.d.ts → types-CU17R4Nr.d.ts} +11 -0
- package/dist/{types-DqWPkiYl.d.mts → types-CxjqmPl-.d.mts} +25 -1
- package/dist/{types-DqWPkiYl.d.ts → types-CxjqmPl-.d.ts} +25 -1
- package/dist/{types-BoGjyon0.d.mts → types-D37aSQ9c.d.mts} +25 -1
- package/dist/{types-CfBpm3w5.d.mts → types-Djpz-L0w.d.mts} +1 -1
- package/dist/{types-eWyZuz-3.d.ts → types-Dn8tXnei.d.ts} +25 -1
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/verify.d.mts +28 -3
- package/dist/verify.d.ts +28 -3
- package/dist/verify.js +71 -11
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +69 -11
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
package/dist/adapters/nextjs.mjs
CHANGED
|
@@ -434,7 +434,7 @@ function routePolicyOf(route) {
|
|
|
434
434
|
}
|
|
435
435
|
|
|
436
436
|
// src/version.ts
|
|
437
|
-
var SDK_VERSION = "5.
|
|
437
|
+
var SDK_VERSION = "5.20.0";
|
|
438
438
|
|
|
439
439
|
// src/http.ts
|
|
440
440
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -897,6 +897,9 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
897
897
|
if (requestData.enableRuntimeChallenge)
|
|
898
898
|
body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
|
|
899
899
|
if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
|
|
900
|
+
if (config.actingProof?.connectorToken) {
|
|
901
|
+
body.actingProof = { connectorToken: config.actingProof.connectorToken };
|
|
902
|
+
}
|
|
900
903
|
if (requestData.approvalHeldByRoute) body.approvalHeldByRoute = true;
|
|
901
904
|
if (requestData.createSession) body.createSession = requestData.createSession;
|
|
902
905
|
if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
|
|
@@ -1064,22 +1067,43 @@ async function verify(config, request, options) {
|
|
|
1064
1067
|
"[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."
|
|
1065
1068
|
);
|
|
1066
1069
|
}
|
|
1067
|
-
const uncacheable = Boolean(request.commerceArtifacts);
|
|
1070
|
+
const uncacheable = Boolean(request.commerceArtifacts) || Boolean(mergedConfig.actingProof);
|
|
1068
1071
|
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
1069
1072
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
1070
1073
|
if (cached) {
|
|
1071
1074
|
if (mergedConfig.debug) {
|
|
1072
1075
|
console.log("[VerificationGateway] Returning cached result");
|
|
1073
1076
|
}
|
|
1074
|
-
|
|
1075
|
-
if (request.attemptId) {
|
|
1076
|
-
hit.attemptId = request.attemptId;
|
|
1077
|
-
} else {
|
|
1078
|
-
delete hit.attemptId;
|
|
1079
|
-
}
|
|
1080
|
-
return hit;
|
|
1077
|
+
return sharedVerdict(cached, request);
|
|
1081
1078
|
}
|
|
1082
1079
|
}
|
|
1080
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
1081
|
+
const key = getCacheKey(request, mergedConfig.counterpartyId);
|
|
1082
|
+
const pending = inflightVerifies.get(key);
|
|
1083
|
+
if (pending) return sharedVerdict(await pending, request);
|
|
1084
|
+
const flight = verifyViaApi(mergedConfig, request, urls, uncacheable);
|
|
1085
|
+
inflightVerifies.set(key, flight);
|
|
1086
|
+
try {
|
|
1087
|
+
return await flight;
|
|
1088
|
+
} finally {
|
|
1089
|
+
inflightVerifies.delete(key);
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
return verifyViaApi(mergedConfig, request, urls, uncacheable);
|
|
1093
|
+
}
|
|
1094
|
+
var inflightVerifies = /* @__PURE__ */ new Map();
|
|
1095
|
+
var sharedVerdicts = /* @__PURE__ */ new WeakSet();
|
|
1096
|
+
function sharedVerdict(source, request) {
|
|
1097
|
+
const hit = { ...source };
|
|
1098
|
+
if (request.attemptId) {
|
|
1099
|
+
hit.attemptId = request.attemptId;
|
|
1100
|
+
} else {
|
|
1101
|
+
delete hit.attemptId;
|
|
1102
|
+
}
|
|
1103
|
+
sharedVerdicts.add(hit);
|
|
1104
|
+
return hit;
|
|
1105
|
+
}
|
|
1106
|
+
async function verifyViaApi(mergedConfig, request, urls, uncacheable) {
|
|
1083
1107
|
const enrichedRequest = { ...request };
|
|
1084
1108
|
if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
|
|
1085
1109
|
enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
|
|
@@ -1158,7 +1182,9 @@ async function verify(config, request, options) {
|
|
|
1158
1182
|
fulfilment: apiResponse.fulfilment,
|
|
1159
1183
|
mandates: apiResponse.mandates,
|
|
1160
1184
|
kyaToken: apiResponse.kyaToken,
|
|
1161
|
-
aep: apiResponse.aep
|
|
1185
|
+
aep: apiResponse.aep,
|
|
1186
|
+
// 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
|
|
1187
|
+
warnings: apiResponse.warnings
|
|
1162
1188
|
};
|
|
1163
1189
|
return result2;
|
|
1164
1190
|
}
|
|
@@ -1226,7 +1252,9 @@ async function verify(config, request, options) {
|
|
|
1226
1252
|
// 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
|
|
1227
1253
|
mandates: apiResponse.mandates,
|
|
1228
1254
|
kyaToken: apiResponse.kyaToken,
|
|
1229
|
-
aep: apiResponse.aep
|
|
1255
|
+
aep: apiResponse.aep,
|
|
1256
|
+
// 5.20.0 (round 29.1): non-fatal integration warnings (e.g. events_url_missing).
|
|
1257
|
+
warnings: apiResponse.warnings
|
|
1230
1258
|
};
|
|
1231
1259
|
if (result.recommendation === "deny") {
|
|
1232
1260
|
result.policyAllowed = false;
|
|
@@ -1252,8 +1280,18 @@ async function verify(config, request, options) {
|
|
|
1252
1280
|
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
1253
1281
|
}
|
|
1254
1282
|
}
|
|
1283
|
+
notifyVerificationListeners(request, result);
|
|
1255
1284
|
return result;
|
|
1256
1285
|
}
|
|
1286
|
+
var verificationListeners = /* @__PURE__ */ new Set();
|
|
1287
|
+
function notifyVerificationListeners(request, result) {
|
|
1288
|
+
for (const listener of verificationListeners) {
|
|
1289
|
+
try {
|
|
1290
|
+
listener(result, request);
|
|
1291
|
+
} catch {
|
|
1292
|
+
}
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1257
1295
|
var refusedPolicyReads = /* @__PURE__ */ new Set();
|
|
1258
1296
|
async function fetchRoutes(config, counterpartyId, options = {}) {
|
|
1259
1297
|
if (!counterpartyId) return null;
|
|
@@ -1263,6 +1301,7 @@ async function fetchRoutes(config, counterpartyId, options = {}) {
|
|
|
1263
1301
|
headers["X-API-Key"] = config.apiKey;
|
|
1264
1302
|
}
|
|
1265
1303
|
try {
|
|
1304
|
+
headers["X-AstraSync-SDK-Version"] = SDK_VERSION;
|
|
1266
1305
|
const response = await sdkFetch(
|
|
1267
1306
|
`${config.apiBaseUrl}/endpoints/${encodeURIComponent(counterpartyId)}/routes` + (options.codeGates?.length ? `?codeGates=${options.codeGates.map(encodeURIComponent).join(",")}` : ""),
|
|
1268
1307
|
{ method: "GET", headers }
|
|
@@ -1277,6 +1316,13 @@ async function fetchRoutes(config, counterpartyId, options = {}) {
|
|
|
1277
1316
|
return null;
|
|
1278
1317
|
}
|
|
1279
1318
|
const body = await response.json();
|
|
1319
|
+
const type = body.data?.counterpartyType;
|
|
1320
|
+
if (typeof type === "string" && options.onEndpointType) {
|
|
1321
|
+
try {
|
|
1322
|
+
options.onEndpointType(type);
|
|
1323
|
+
} catch {
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1280
1326
|
return body.data?.routes ?? [];
|
|
1281
1327
|
} catch {
|
|
1282
1328
|
return null;
|