@astrasyncai/verification-gateway 4.2.0 → 4.3.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/README.md +45 -21
- package/dist/adapter-interface/interface.d.mts +2 -2
- package/dist/adapter-interface/interface.d.ts +2 -2
- package/dist/adapters/express.d.mts +2 -2
- package/dist/adapters/express.d.ts +2 -2
- package/dist/adapters/express.js +56 -4
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +56 -4
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +38 -30
- package/dist/adapters/mcp.d.ts +38 -30
- package/dist/adapters/mcp.js +22 -5
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +22 -5
- package/dist/adapters/mcp.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 +54 -4
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +54 -4
- 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/agent/index.d.mts +2 -2
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +2 -2
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +2 -2
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +2 -2
- package/dist/bin/astrasync-codex-hook.js +2 -2
- package/dist/bin/astrasync-guard.js +2 -2
- package/dist/bin/astrasync.js +14 -4
- package/dist/browser/background.js +2 -2
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +2 -2
- package/dist/browser/background.mjs.map +1 -1
- package/dist/browser/browser-adapter.d.mts +2 -2
- package/dist/browser/browser-adapter.d.ts +2 -2
- package/dist/claude-code/claude-code-adapter.d.mts +2 -2
- package/dist/claude-code/claude-code-adapter.d.ts +2 -2
- package/dist/cli/index.d.mts +2 -2
- package/dist/cli/index.d.ts +2 -2
- package/dist/codex/index.d.mts +2 -2
- package/dist/codex/index.d.ts +2 -2
- package/dist/codex/index.js +2 -2
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +2 -2
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/cursor-adapter.d.mts +2 -2
- package/dist/cursor/cursor-adapter.d.ts +2 -2
- package/dist/cursor/extension.d.mts +2 -2
- package/dist/cursor/extension.d.ts +2 -2
- package/dist/cursor/extension.js +2 -2
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +2 -2
- 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-core/index.d.mts +1 -1
- package/dist/edge-core/index.d.ts +1 -1
- package/dist/edge-core/index.js +25 -5
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +25 -5
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/{express-D_4hTn5Z.d.mts → express-CR6F3njD.d.mts} +1 -1
- package/dist/{express-BVd1_3FE.d.ts → express-DaqL11tx.d.ts} +1 -1
- package/dist/gateway/gateway.d.mts +2 -2
- package/dist/gateway/gateway.d.ts +2 -2
- package/dist/gateway/gateway.js +2 -2
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +2 -2
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +2 -2
- package/dist/git-trigger/git-hooks.d.ts +2 -2
- package/dist/{index-B0YHu_SP.d.ts → index-B5Ts1WtM.d.ts} +3 -3
- package/dist/{index-T1aBoUcc.d.ts → index-BfIxCYIZ.d.ts} +1 -1
- package/dist/{index-BPEBlOsE.d.mts → index-Cub7lK-T.d.mts} +3 -3
- package/dist/{index-DQb5-_1X.d.mts → index-CwAh7Tln.d.mts} +1 -1
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +74 -35
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -32
- 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/metadata-capture.d.mts +18 -5
- package/dist/metadata-capture.d.ts +18 -5
- package/dist/metadata-capture.js +21 -4
- package/dist/metadata-capture.js.map +1 -1
- package/dist/metadata-capture.mjs +20 -4
- package/dist/metadata-capture.mjs.map +1 -1
- package/dist/{nextjs-w7RTbP1P.d.ts → nextjs-DL6uE1ye.d.ts} +1 -1
- package/dist/{nextjs-WyeVr2Kp.d.mts → nextjs-DlX6xwbU.d.mts} +1 -1
- package/dist/{sdk-CbTNIkAa.d.mts → sdk-Bbh9B_dw.d.mts} +1 -1
- package/dist/{sdk-QeX0Z8Ho.d.ts → sdk-C6SASmsh.d.ts} +1 -1
- package/dist/transport/index.d.mts +2 -2
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.js +5 -5
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +2 -2
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-r850cOt0.d.mts → types-C0zfSXMB.d.mts} +22 -0
- package/dist/{types-DqfPU5Bl.d.mts → types-C7Rb-w0d.d.mts} +1 -1
- package/dist/{types-sMxBT-nM.d.ts → types-DwSfO7Sb.d.ts} +22 -0
- package/dist/{types-BLUx92FJ.d.ts → types-nIh3HtuA.d.ts} +1 -1
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/verify.d.mts +1 -1
- package/dist/verify.d.ts +1 -1
- package/package.json +2 -4
package/dist/adapters/mcp.mjs
CHANGED
|
@@ -611,7 +611,9 @@ var SECRET_HEADER_NAMES = /* @__PURE__ */ new Set([
|
|
|
611
611
|
"x-astrasync-signature",
|
|
612
612
|
"x-astrasync-secret",
|
|
613
613
|
"x-hub-signature",
|
|
614
|
-
"x-hub-signature-256"
|
|
614
|
+
"x-hub-signature-256",
|
|
615
|
+
// Short-lived verify dedupe token — must never persist in stored metadata.
|
|
616
|
+
"x-astra-verified-hop"
|
|
615
617
|
]);
|
|
616
618
|
var SECRET_HEADER_PREFIXES = ["x-astrasync-", "kya-", "kya_"];
|
|
617
619
|
var CREDENTIAL_HEADER_NAMES = /* @__PURE__ */ new Set([
|
|
@@ -746,16 +748,25 @@ var CONNECTION_HEADER_SOURCES = [
|
|
|
746
748
|
["cf-ipcountry", "x-vercel-ip-country", "cloudfront-viewer-country", "fastly-geo-country"]
|
|
747
749
|
],
|
|
748
750
|
["region", ["x-vercel-ip-country-region", "cloudfront-viewer-country-region"]],
|
|
751
|
+
["countryRegionName", ["cloudfront-viewer-country-region-name"]],
|
|
749
752
|
["city", ["x-vercel-ip-city", "cloudfront-viewer-city"]],
|
|
750
753
|
["asn", ["cloudfront-viewer-asn"]],
|
|
751
754
|
["tlsVersion", ["cloudfront-viewer-tls"]],
|
|
752
755
|
["httpVersion", ["cloudfront-viewer-http-version"]],
|
|
756
|
+
["timeZone", ["x-vercel-ip-timezone", "cloudfront-viewer-time-zone"]],
|
|
757
|
+
["metroCode", ["cloudfront-viewer-metro-code"]],
|
|
753
758
|
// TLS fingerprints can only be computed where TLS terminates. When a CDN
|
|
754
759
|
// terminates TLS in front of the merchant, its fingerprint headers ARE the
|
|
755
760
|
// connection-layer truth — normalising them here is the permanent design.
|
|
756
|
-
|
|
757
|
-
|
|
761
|
+
// CloudFront delivers JA3/JA4 only via an origin request policy and only
|
|
762
|
+
// for HTTPS viewer connections.
|
|
763
|
+
["tlsFingerprint", ["cf-ja3-hash", "cloudfront-viewer-ja3-fingerprint"]],
|
|
764
|
+
["ja4", ["cf-ja4", "cloudfront-viewer-ja4-fingerprint"]],
|
|
765
|
+
// Header-structure fingerprint: browser/SDK-distinctive header ordering.
|
|
766
|
+
["headerOrder", ["cloudfront-viewer-header-order"]],
|
|
767
|
+
["headerCount", ["cloudfront-viewer-header-count"]]
|
|
758
768
|
];
|
|
769
|
+
var MAX_CONNECTION_VALUE_CHARS = 256;
|
|
759
770
|
function deriveConnectionFromHeaders(headers) {
|
|
760
771
|
if (!headers) return void 0;
|
|
761
772
|
const lower = {};
|
|
@@ -768,11 +779,15 @@ function deriveConnectionFromHeaders(headers) {
|
|
|
768
779
|
for (const source of sources) {
|
|
769
780
|
const value = lower[source]?.trim();
|
|
770
781
|
if (value) {
|
|
771
|
-
connection[key] = value;
|
|
782
|
+
connection[key] = value.slice(0, MAX_CONNECTION_VALUE_CHARS);
|
|
772
783
|
break;
|
|
773
784
|
}
|
|
774
785
|
}
|
|
775
786
|
}
|
|
787
|
+
if (!connection.ip) {
|
|
788
|
+
const addr = lower["cloudfront-viewer-address"]?.trim();
|
|
789
|
+
if (addr) connection.ip = addr.replace(/:\d+$/, "");
|
|
790
|
+
}
|
|
776
791
|
if (!connection.ip) {
|
|
777
792
|
const xff = lower["x-forwarded-for"];
|
|
778
793
|
const client = xff?.split(",")[0]?.trim();
|
|
@@ -871,7 +886,7 @@ async function awaitStepUpApproval(config, approval) {
|
|
|
871
886
|
return "timeout";
|
|
872
887
|
}
|
|
873
888
|
|
|
874
|
-
// src/
|
|
889
|
+
// src/verified-hop.ts
|
|
875
890
|
var MCP_VERIFIED_HOP_HEADER = "X-Astra-Verified-Hop";
|
|
876
891
|
var MCP_VERIFIED_HOP_MAX_AGE_MS = 6e4;
|
|
877
892
|
function serializeVerifiedHop(marker) {
|
|
@@ -898,6 +913,8 @@ function isVerifiedHopValidFor(marker, expectedAstraId, opts = {}) {
|
|
|
898
913
|
const now = opts.now ?? Date.now();
|
|
899
914
|
return now - marker.checkedAt <= maxAge && now >= marker.checkedAt;
|
|
900
915
|
}
|
|
916
|
+
|
|
917
|
+
// src/transport/mcp-server.ts
|
|
901
918
|
function parseMcpJsonRpc(body) {
|
|
902
919
|
if (!body || typeof body !== "object" || Array.isArray(body)) return null;
|
|
903
920
|
const obj = body;
|