@astrasyncai/verification-gateway 1.0.0 → 2.0.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/dist/adapter-interface/interface.d.mts +71 -0
- package/dist/adapter-interface/interface.d.ts +71 -0
- package/dist/adapter-interface/interface.js +36 -0
- package/dist/adapter-interface/interface.js.map +1 -0
- package/dist/adapter-interface/interface.mjs +10 -0
- package/dist/adapter-interface/interface.mjs.map +1 -0
- package/dist/adapter-interface/purpose-mapping.d.mts +28 -0
- package/dist/adapter-interface/purpose-mapping.d.ts +28 -0
- package/dist/adapter-interface/purpose-mapping.js +117 -0
- package/dist/adapter-interface/purpose-mapping.js.map +1 -0
- package/dist/adapter-interface/purpose-mapping.mjs +89 -0
- package/dist/adapter-interface/purpose-mapping.mjs.map +1 -0
- package/dist/adapters/express.d.mts +2 -2
- package/dist/adapters/express.d.ts +2 -2
- package/dist/adapters/express.js +46 -9
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +46 -9
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +2 -2
- package/dist/adapters/nextjs.d.ts +2 -2
- package/dist/adapters/nextjs.js +19 -9
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +19 -9
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +2 -2
- package/dist/adapters/sdk.d.ts +2 -2
- package/dist/adapters/sdk.js +20 -4
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +20 -4
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.d.mts +2 -0
- package/dist/agent/index.d.ts +2 -0
- package/dist/agent/index.js +354 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/index.mjs +323 -0
- package/dist/agent/index.mjs.map +1 -0
- package/dist/browser/browser-adapter.d.mts +106 -0
- package/dist/browser/browser-adapter.d.ts +106 -0
- package/dist/browser/browser-adapter.js +286 -0
- package/dist/browser/browser-adapter.js.map +1 -0
- package/dist/browser/browser-adapter.mjs +259 -0
- package/dist/browser/browser-adapter.mjs.map +1 -0
- package/dist/cli/index.d.mts +241 -0
- package/dist/cli/index.d.ts +241 -0
- package/dist/cli/index.js +3734 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.mjs +3688 -0
- package/dist/cli/index.mjs.map +1 -0
- package/dist/cursor/cursor-adapter.d.mts +92 -0
- package/dist/cursor/cursor-adapter.d.ts +92 -0
- package/dist/cursor/cursor-adapter.js +273 -0
- package/dist/cursor/cursor-adapter.js.map +1 -0
- package/dist/cursor/cursor-adapter.mjs +246 -0
- package/dist/cursor/cursor-adapter.mjs.map +1 -0
- package/dist/{express-DUDYpvNZ.d.mts → express-Cp4eg77F.d.mts} +1 -1
- package/dist/{express-BhD3mWsL.d.ts → express-DIEyq1Tz.d.ts} +1 -1
- package/dist/gateway/gateway.d.mts +70 -0
- package/dist/gateway/gateway.d.ts +70 -0
- package/dist/gateway/gateway.js +3726 -0
- package/dist/gateway/gateway.js.map +1 -0
- package/dist/gateway/gateway.mjs +3706 -0
- package/dist/gateway/gateway.mjs.map +1 -0
- package/dist/git-trigger/git-hooks.d.mts +69 -0
- package/dist/git-trigger/git-hooks.d.ts +69 -0
- package/dist/git-trigger/git-hooks.js +244 -0
- package/dist/git-trigger/git-hooks.js.map +1 -0
- package/dist/git-trigger/git-hooks.mjs +221 -0
- package/dist/git-trigger/git-hooks.mjs.map +1 -0
- package/dist/index-BhTbGU-o.d.mts +206 -0
- package/dist/index-Bhfxq9xI.d.ts +206 -0
- package/dist/index-CNkmHmpi.d.ts +89 -0
- package/dist/index-CoLebmwv.d.mts +89 -0
- package/dist/index.d.mts +8 -295
- package/dist/index.d.ts +8 -295
- package/dist/index.js +60 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +60 -21
- package/dist/index.mjs.map +1 -1
- package/dist/local-evaluator/evaluator.d.mts +55 -0
- package/dist/local-evaluator/evaluator.d.ts +55 -0
- package/dist/local-evaluator/evaluator.js +272 -0
- package/dist/local-evaluator/evaluator.js.map +1 -0
- package/dist/local-evaluator/evaluator.mjs +244 -0
- package/dist/local-evaluator/evaluator.mjs.map +1 -0
- package/dist/{nextjs-C9FPOjSh.d.ts → nextjs-Cag7libc.d.ts} +1 -1
- package/dist/{nextjs-BtqyLSVQ.d.mts → nextjs-_C_FcJY5.d.mts} +1 -1
- package/dist/{sdk-BkVigGjF.d.ts → sdk-CMPDFUjo.d.ts} +3 -1
- package/dist/{sdk-xCbZgeZx.d.mts → sdk-DAJahT3p.d.mts} +3 -1
- package/dist/transport/index.d.mts +2 -0
- package/dist/transport/index.d.ts +2 -0
- package/dist/transport/index.js +211 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/index.mjs +176 -0
- package/dist/transport/index.mjs.map +1 -0
- package/dist/{types-CS6v75-d.d.mts → types-Bf8pML07.d.mts} +9 -1
- package/dist/{types-CS6v75-d.d.ts → types-Bf8pML07.d.ts} +9 -1
- package/dist/types-BvpGdsv1.d.mts +153 -0
- package/dist/types-Ce2mFJkO.d.ts +153 -0
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +46 -1
package/dist/index.mjs
CHANGED
|
@@ -229,6 +229,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
229
229
|
if (requestData.enableRuntimeChallenge) body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
|
|
230
230
|
if (requestData.createSession) body.createSession = requestData.createSession;
|
|
231
231
|
if (requestData.counterpartyType) body.counterpartyType = requestData.counterpartyType;
|
|
232
|
+
if (requestData.counterpartyUrl) body.counterpartyUrl = requestData.counterpartyUrl;
|
|
232
233
|
if (requestData.runtimeChallengeOptions) body.runtimeChallengeOptions = requestData.runtimeChallengeOptions;
|
|
233
234
|
const headers = {
|
|
234
235
|
"Content-Type": "application/json",
|
|
@@ -276,10 +277,17 @@ async function verify(config, request) {
|
|
|
276
277
|
return cached;
|
|
277
278
|
}
|
|
278
279
|
}
|
|
280
|
+
const enrichedRequest = { ...request };
|
|
281
|
+
if (!enrichedRequest.counterpartyUrl && mergedConfig.counterpartyUrl) {
|
|
282
|
+
enrichedRequest.counterpartyUrl = mergedConfig.counterpartyUrl;
|
|
283
|
+
}
|
|
284
|
+
if (!enrichedRequest.counterpartyType && mergedConfig.counterpartyType) {
|
|
285
|
+
enrichedRequest.counterpartyType = mergedConfig.counterpartyType;
|
|
286
|
+
}
|
|
279
287
|
if (mergedConfig.debug) {
|
|
280
288
|
console.log("[VerificationGateway] Calling verify-access API");
|
|
281
289
|
}
|
|
282
|
-
const apiResponse = await callVerifyAccessAPI(mergedConfig,
|
|
290
|
+
const apiResponse = await callVerifyAccessAPI(mergedConfig, enrichedRequest);
|
|
283
291
|
if (!apiResponse.success) {
|
|
284
292
|
return createGuidanceResponse(mergedConfig, apiResponse.error);
|
|
285
293
|
}
|
|
@@ -295,7 +303,11 @@ async function verify(config, request) {
|
|
|
295
303
|
registrationUrl: `${mergedConfig.apiBaseUrl?.replace("/api", "")}/register`,
|
|
296
304
|
documentationUrl: `${mergedConfig.apiBaseUrl?.replace("/api", "")}/docs/pdlss`
|
|
297
305
|
},
|
|
298
|
-
verifiedAt: /* @__PURE__ */ new Date()
|
|
306
|
+
verifiedAt: /* @__PURE__ */ new Date(),
|
|
307
|
+
// Extract sessionId so decisions can be recorded for denials too
|
|
308
|
+
sessionId: apiResponse.sessionId,
|
|
309
|
+
recommendation: apiResponse.recommendation,
|
|
310
|
+
recommendationReasons: apiResponse.recommendationReasons
|
|
299
311
|
};
|
|
300
312
|
return result2;
|
|
301
313
|
}
|
|
@@ -379,6 +391,16 @@ async function verify(config, request) {
|
|
|
379
391
|
}
|
|
380
392
|
return result;
|
|
381
393
|
}
|
|
394
|
+
async function recordDecision(config, sessionId, decision, reason) {
|
|
395
|
+
const headers = { "Content-Type": "application/json" };
|
|
396
|
+
if (config.apiKey) headers["X-API-Key"] = config.apiKey;
|
|
397
|
+
await fetch(`${config.apiBaseUrl}/agents/verify-access/${sessionId}/decision`, {
|
|
398
|
+
method: "POST",
|
|
399
|
+
headers,
|
|
400
|
+
body: JSON.stringify({ decision, reason })
|
|
401
|
+
}).catch(() => {
|
|
402
|
+
});
|
|
403
|
+
}
|
|
382
404
|
async function quickVerify(config, credentials) {
|
|
383
405
|
const result = await verify(config, {
|
|
384
406
|
credentials,
|
|
@@ -523,6 +545,7 @@ function createMiddleware(options) {
|
|
|
523
545
|
extractPurpose: customExtractPurpose,
|
|
524
546
|
skipPaths = [],
|
|
525
547
|
onDenied = defaultOnDenied,
|
|
548
|
+
recordDecisions,
|
|
526
549
|
...config
|
|
527
550
|
} = options;
|
|
528
551
|
return async (req, res, next) => {
|
|
@@ -556,16 +579,26 @@ function createMiddleware(options) {
|
|
|
556
579
|
return;
|
|
557
580
|
}
|
|
558
581
|
const purpose = customExtractPurpose ? customExtractPurpose(req) : defaultExtractPurpose(req);
|
|
582
|
+
const counterpartyUrl = config.counterpartyUrl || `${req.protocol}://${req.get("host")}`;
|
|
583
|
+
const shouldRecordDecisions = recordDecisions !== false;
|
|
559
584
|
const result = await verify(config, {
|
|
560
585
|
credentials,
|
|
561
586
|
purpose,
|
|
562
587
|
action: req.method.toLowerCase(),
|
|
563
588
|
resource: req.path,
|
|
564
589
|
clientIp: req.ip,
|
|
565
|
-
userAgent: req.headers["user-agent"]
|
|
590
|
+
userAgent: req.headers["user-agent"],
|
|
591
|
+
createSession: shouldRecordDecisions,
|
|
592
|
+
counterpartyUrl,
|
|
593
|
+
counterpartyType: config.counterpartyType || "api"
|
|
566
594
|
});
|
|
567
595
|
req.agentVerification = result;
|
|
596
|
+
const sessionId = result.sessionId;
|
|
568
597
|
if (!hasMinimumAccess(result.accessLevel, routeConfig.minAccessLevel)) {
|
|
598
|
+
if (shouldRecordDecisions && sessionId) {
|
|
599
|
+
recordDecision(config, sessionId, "denied", result.denialReasons?.[0]).catch(() => {
|
|
600
|
+
});
|
|
601
|
+
}
|
|
569
602
|
onDenied(result, req, res);
|
|
570
603
|
return;
|
|
571
604
|
}
|
|
@@ -574,10 +607,18 @@ function createMiddleware(options) {
|
|
|
574
607
|
result.denialReasons = [
|
|
575
608
|
`Trust score ${result.agent.trustScore} is below required ${routeConfig.minTrustScore}`
|
|
576
609
|
];
|
|
610
|
+
if (shouldRecordDecisions && sessionId) {
|
|
611
|
+
recordDecision(config, sessionId, "denied", result.denialReasons[0]).catch(() => {
|
|
612
|
+
});
|
|
613
|
+
}
|
|
577
614
|
onDenied(result, req, res);
|
|
578
615
|
return;
|
|
579
616
|
}
|
|
580
617
|
}
|
|
618
|
+
if (shouldRecordDecisions && sessionId) {
|
|
619
|
+
recordDecision(config, sessionId, "granted").catch(() => {
|
|
620
|
+
});
|
|
621
|
+
}
|
|
581
622
|
next();
|
|
582
623
|
} catch (error) {
|
|
583
624
|
console.error("[VerificationGateway] Middleware error:", error);
|
|
@@ -588,17 +629,13 @@ function createMiddleware(options) {
|
|
|
588
629
|
function requireAccess(minAccessLevel, options) {
|
|
589
630
|
return createMiddleware({
|
|
590
631
|
...options,
|
|
591
|
-
routes: [
|
|
592
|
-
{ pattern: "*", method: "*", minAccessLevel }
|
|
593
|
-
]
|
|
632
|
+
routes: [{ pattern: "*", method: "*", minAccessLevel }]
|
|
594
633
|
});
|
|
595
634
|
}
|
|
596
635
|
function verifyOnly(options) {
|
|
597
636
|
return createMiddleware({
|
|
598
637
|
...options,
|
|
599
|
-
routes: [
|
|
600
|
-
{ pattern: "*", method: "*", minAccessLevel: "none" }
|
|
601
|
-
]
|
|
638
|
+
routes: [{ pattern: "*", method: "*", minAccessLevel: "none" }]
|
|
602
639
|
});
|
|
603
640
|
}
|
|
604
641
|
|
|
@@ -810,12 +847,7 @@ function generateCommerceShieldHtml(result, options) {
|
|
|
810
847
|
`.trim();
|
|
811
848
|
}
|
|
812
849
|
function createMiddleware2(options) {
|
|
813
|
-
const {
|
|
814
|
-
routes = [],
|
|
815
|
-
skipPaths = [],
|
|
816
|
-
showCommerceShield = true,
|
|
817
|
-
...config
|
|
818
|
-
} = options;
|
|
850
|
+
const { routes = [], skipPaths = [], showCommerceShield = true, ...config } = options;
|
|
819
851
|
return async function middleware(request) {
|
|
820
852
|
const { NextResponse } = await import("next/server");
|
|
821
853
|
const pathname = request.nextUrl.pathname;
|
|
@@ -868,6 +900,7 @@ function createMiddleware2(options) {
|
|
|
868
900
|
const registerUrl = result2.guidance?.registrationUrl || "/register";
|
|
869
901
|
return NextResponse.redirect(new URL(registerUrl, request.url));
|
|
870
902
|
}
|
|
903
|
+
const counterpartyUrl = config.counterpartyUrl || request.nextUrl.origin;
|
|
871
904
|
const purpose = request.headers.get("x-purpose") || inferPurpose(request.method);
|
|
872
905
|
const result = await verify(config, {
|
|
873
906
|
credentials,
|
|
@@ -875,7 +908,9 @@ function createMiddleware2(options) {
|
|
|
875
908
|
action: request.method.toLowerCase(),
|
|
876
909
|
resource: pathname,
|
|
877
910
|
clientIp: request.headers.get("x-forwarded-for")?.split(",")[0]?.trim() || void 0,
|
|
878
|
-
userAgent: request.headers.get("user-agent") || void 0
|
|
911
|
+
userAgent: request.headers.get("user-agent") || void 0,
|
|
912
|
+
counterpartyUrl,
|
|
913
|
+
counterpartyType: config.counterpartyType || "website"
|
|
879
914
|
});
|
|
880
915
|
if (!hasMinimumAccess(result.accessLevel, routeConfig.minAccessLevel)) {
|
|
881
916
|
if (pathname.startsWith("/api/")) {
|
|
@@ -938,7 +973,9 @@ var VerificationGatewayClient = class {
|
|
|
938
973
|
minTrustScoreForFull: options.minTrustScoreForFull,
|
|
939
974
|
cacheTtl: options.cacheTtl,
|
|
940
975
|
debug: options.debug,
|
|
941
|
-
customHeaders: options.customHeaders
|
|
976
|
+
customHeaders: options.customHeaders,
|
|
977
|
+
counterpartyUrl: options.counterpartyUrl,
|
|
978
|
+
counterpartyType: options.counterpartyType
|
|
942
979
|
};
|
|
943
980
|
this.timeout = options.timeout || 1e4;
|
|
944
981
|
this.retryConfig = options.retry || { maxRetries: 3, backoffMs: 1e3 };
|
|
@@ -964,7 +1001,9 @@ var VerificationGatewayClient = class {
|
|
|
964
1001
|
currency: options.currency,
|
|
965
1002
|
isSubAgentRequest: options.isSubAgentRequest,
|
|
966
1003
|
parentAgentId: options.parentAgentId,
|
|
967
|
-
subAgentDepth: options.subAgentDepth
|
|
1004
|
+
subAgentDepth: options.subAgentDepth,
|
|
1005
|
+
counterpartyUrl: options.counterpartyUrl,
|
|
1006
|
+
counterpartyType: options.counterpartyType
|
|
968
1007
|
})
|
|
969
1008
|
);
|
|
970
1009
|
}
|
|
@@ -1173,7 +1212,7 @@ __export(agent_exports, {
|
|
|
1173
1212
|
ChallengeHandler: () => ChallengeHandler,
|
|
1174
1213
|
formatPDLSSForTransport: () => formatPDLSSForTransport,
|
|
1175
1214
|
parsePDLSSFromTransport: () => parsePDLSSFromTransport,
|
|
1176
|
-
recordDecision: () =>
|
|
1215
|
+
recordDecision: () => recordDecision2
|
|
1177
1216
|
});
|
|
1178
1217
|
|
|
1179
1218
|
// src/agent/client.ts
|
|
@@ -1385,7 +1424,7 @@ function parsePDLSSFromTransport(transport) {
|
|
|
1385
1424
|
}
|
|
1386
1425
|
|
|
1387
1426
|
// src/agent/decision-client.ts
|
|
1388
|
-
async function
|
|
1427
|
+
async function recordDecision2(config, params) {
|
|
1389
1428
|
const { sessionId, ...body } = params;
|
|
1390
1429
|
const baseUrl = config.apiBaseUrl.replace(/\/$/, "");
|
|
1391
1430
|
const url = `${baseUrl}/agents/verify-access/${encodeURIComponent(sessionId)}/decision`;
|
|
@@ -1438,7 +1477,7 @@ export {
|
|
|
1438
1477
|
hasMinimumAccess,
|
|
1439
1478
|
nextjs_exports as nextjs,
|
|
1440
1479
|
quickVerify,
|
|
1441
|
-
recordDecision,
|
|
1480
|
+
recordDecision2 as recordDecision,
|
|
1442
1481
|
sdk_exports as sdk,
|
|
1443
1482
|
transport_exports as transport,
|
|
1444
1483
|
verify
|