@astrasyncai/verification-gateway 4.3.0 → 4.4.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/adapters/express.js +91 -19
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +91 -19
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.js +52 -13
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +52 -13
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.js +89 -17
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +89 -17
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.js +24 -6
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +24 -6
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.js +24 -3
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +24 -3
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +22 -4
- package/dist/bin/astrasync-codex-hook.js +22 -4
- package/dist/bin/astrasync-guard.js +26 -8
- package/dist/bin/astrasync.js +66 -23
- package/dist/browser/background.js +22 -4
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +22 -4
- package/dist/browser/background.mjs.map +1 -1
- package/dist/cli/index.js +23 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +23 -2
- package/dist/cli/index.mjs.map +1 -1
- package/dist/codex/index.js +22 -4
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +22 -4
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +22 -4
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +22 -4
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.js +24 -1
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +22 -1
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.js +96 -11
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +96 -11
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +22 -4
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +22 -4
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/index.d.mts +51 -2
- package/dist/index.d.ts +51 -2
- package/dist/index.js +151 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +147 -26
- package/dist/index.mjs.map +1 -1
- package/dist/metadata-capture.d.mts +17 -0
- package/dist/metadata-capture.d.ts +17 -0
- package/dist/metadata-capture.js +25 -4
- package/dist/metadata-capture.js.map +1 -1
- package/dist/metadata-capture.mjs +25 -4
- package/dist/metadata-capture.mjs.map +1 -1
- package/dist/platform-signatures.d.mts +18 -1
- package/dist/platform-signatures.d.ts +18 -1
- package/dist/platform-signatures.js +35 -2
- package/dist/platform-signatures.js.map +1 -1
- package/dist/platform-signatures.mjs +35 -2
- package/dist/platform-signatures.mjs.map +1 -1
- package/dist/registration/index.js +25 -4
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +25 -4
- package/dist/registration/index.mjs.map +1 -1
- package/dist/transport/index.js +22 -1
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +22 -1
- package/dist/transport/index.mjs.map +1 -1
- package/dist/verify.js +29 -11
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +29 -11
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
package/dist/adapters/mcp.mjs
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
// src/version.ts
|
|
2
|
+
var SDK_VERSION = "4.4.0";
|
|
3
|
+
|
|
4
|
+
// src/http.ts
|
|
5
|
+
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
6
|
+
function withUserAgent(initHeaders) {
|
|
7
|
+
if (!initHeaders) return { "user-agent": SDK_USER_AGENT };
|
|
8
|
+
if (initHeaders instanceof Headers) {
|
|
9
|
+
const copy = new Headers(initHeaders);
|
|
10
|
+
if (!copy.has("user-agent")) copy.set("user-agent", SDK_USER_AGENT);
|
|
11
|
+
return copy;
|
|
12
|
+
}
|
|
13
|
+
if (Array.isArray(initHeaders)) {
|
|
14
|
+
const has2 = initHeaders.some(([name]) => name.toLowerCase() === "user-agent");
|
|
15
|
+
return has2 ? initHeaders : [...initHeaders, ["user-agent", SDK_USER_AGENT]];
|
|
16
|
+
}
|
|
17
|
+
const has = Object.keys(initHeaders).some((name) => name.toLowerCase() === "user-agent");
|
|
18
|
+
return has ? initHeaders : { "user-agent": SDK_USER_AGENT, ...initHeaders };
|
|
19
|
+
}
|
|
20
|
+
var sdkFetch = (input, init) => fetch(input, { ...init, headers: withUserAgent(init?.headers) });
|
|
21
|
+
|
|
1
22
|
// src/access-levels.ts
|
|
2
23
|
function getTrustLevel(score) {
|
|
3
24
|
if (score >= 80) return "PLATINUM";
|
|
@@ -6,9 +27,6 @@ function getTrustLevel(score) {
|
|
|
6
27
|
return "BRONZE";
|
|
7
28
|
}
|
|
8
29
|
|
|
9
|
-
// src/version.ts
|
|
10
|
-
var SDK_VERSION = "4.1.0";
|
|
11
|
-
|
|
12
30
|
// src/well-known.ts
|
|
13
31
|
var CACHE_TTL_MS = 60 * 60 * 1e3;
|
|
14
32
|
var cache = /* @__PURE__ */ new Map();
|
|
@@ -19,7 +37,7 @@ function wellKnownUrl(apiBaseUrl) {
|
|
|
19
37
|
}
|
|
20
38
|
async function fetchWellKnown(apiBaseUrl) {
|
|
21
39
|
const url = wellKnownUrl(apiBaseUrl);
|
|
22
|
-
const response = await
|
|
40
|
+
const response = await sdkFetch(url, {
|
|
23
41
|
method: "GET",
|
|
24
42
|
headers: { Accept: "application/json" },
|
|
25
43
|
signal: AbortSignal.timeout(5e3)
|
|
@@ -89,7 +107,7 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
|
|
|
89
107
|
initCheckPerformed = true;
|
|
90
108
|
try {
|
|
91
109
|
const probeUrl = `${apiBaseUrl}/agents/verify-access`;
|
|
92
|
-
const response = await
|
|
110
|
+
const response = await sdkFetch(probeUrl, { method: "HEAD" });
|
|
93
111
|
const contentType = response.headers.get("content-type") ?? "";
|
|
94
112
|
if (contentType.startsWith("text/html")) {
|
|
95
113
|
const message = `[VerificationGateway] apiBaseUrl '${apiBaseUrl}' returned HTML (content-type: ${contentType}). This usually means apiBaseUrl is pointing at a marketing site instead of the API. Expected: 'https://astrasync.ai/api' (prod) or 'https://staging.astrasync.ai/api' (staging).`;
|
|
@@ -103,7 +121,7 @@ async function performInitCheck(apiBaseUrl, debug, strictInit, apiKey) {
|
|
|
103
121
|
);
|
|
104
122
|
}
|
|
105
123
|
if (apiKey) {
|
|
106
|
-
const selfCheck = await
|
|
124
|
+
const selfCheck = await sdkFetch(`${apiBaseUrl}/agents/verify-access/self-check`, {
|
|
107
125
|
headers: { Authorization: `Bearer ${apiKey}` }
|
|
108
126
|
});
|
|
109
127
|
if (selfCheck.status === 401) {
|
|
@@ -350,7 +368,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
350
368
|
headers["X-API-Key"] = config.apiKey;
|
|
351
369
|
}
|
|
352
370
|
try {
|
|
353
|
-
const response = await
|
|
371
|
+
const response = await sdkFetch(`${config.apiBaseUrl}/agents/verify-access`, {
|
|
354
372
|
method: "POST",
|
|
355
373
|
headers,
|
|
356
374
|
body: JSON.stringify(body),
|
|
@@ -593,7 +611,7 @@ async function recordDecision(config, sessionId, decision, reason) {
|
|
|
593
611
|
headers["Authorization"] = `Bearer ${config.apiKey}`;
|
|
594
612
|
headers["X-API-Key"] = config.apiKey;
|
|
595
613
|
}
|
|
596
|
-
await
|
|
614
|
+
await sdkFetch(`${config.apiBaseUrl}/agents/verify-access/${sessionId}/decision`, {
|
|
597
615
|
method: "POST",
|
|
598
616
|
headers,
|
|
599
617
|
body: JSON.stringify({ decision, reason })
|
|
@@ -638,7 +656,13 @@ var PLATFORM_HEADER_NAMES = /* @__PURE__ */ new Set([
|
|
|
638
656
|
"x-agent-card-url",
|
|
639
657
|
"x-agent-provider"
|
|
640
658
|
]);
|
|
641
|
-
var PLATFORM_HEADER_PREFIXES = [
|
|
659
|
+
var PLATFORM_HEADER_PREFIXES = [
|
|
660
|
+
"x-goog-",
|
|
661
|
+
"x-stainless-",
|
|
662
|
+
"x-anthropic-",
|
|
663
|
+
"x-openai-",
|
|
664
|
+
"sec-ch-"
|
|
665
|
+
];
|
|
642
666
|
var KEY_FORMAT_PREFIXES = [
|
|
643
667
|
"sk-ant-api03",
|
|
644
668
|
"sk-ant-api",
|
|
@@ -710,6 +734,7 @@ function sanitizeHeaders(raw) {
|
|
|
710
734
|
const headers = {};
|
|
711
735
|
const platformHeaders = {};
|
|
712
736
|
let apiKeyFormat;
|
|
737
|
+
let cookieCount;
|
|
713
738
|
let totalBytes = 0;
|
|
714
739
|
let count = 0;
|
|
715
740
|
if (!raw) return { headers };
|
|
@@ -724,6 +749,9 @@ function sanitizeHeaders(raw) {
|
|
|
724
749
|
if (fmt && !apiKeyFormat) apiKeyFormat = fmt;
|
|
725
750
|
continue;
|
|
726
751
|
}
|
|
752
|
+
if (name === "cookie") {
|
|
753
|
+
cookieCount = joined.split(";").filter((s) => s.trim().length > 0).length;
|
|
754
|
+
}
|
|
727
755
|
if (isSecretHeader(name)) continue;
|
|
728
756
|
let value = joined;
|
|
729
757
|
if (byteLength(value) > MAX_HEADER_VALUE_BYTES) {
|
|
@@ -739,6 +767,7 @@ function sanitizeHeaders(raw) {
|
|
|
739
767
|
const result = { headers };
|
|
740
768
|
if (apiKeyFormat) result.apiKeyFormat = apiKeyFormat;
|
|
741
769
|
if (Object.keys(platformHeaders).length > 0) result.platformHeaders = platformHeaders;
|
|
770
|
+
if (cookieCount !== void 0) result.cookieCount = cookieCount;
|
|
742
771
|
return result;
|
|
743
772
|
}
|
|
744
773
|
var CONNECTION_HEADER_SOURCES = [
|
|
@@ -750,6 +779,9 @@ var CONNECTION_HEADER_SOURCES = [
|
|
|
750
779
|
["region", ["x-vercel-ip-country-region", "cloudfront-viewer-country-region"]],
|
|
751
780
|
["countryRegionName", ["cloudfront-viewer-country-region-name"]],
|
|
752
781
|
["city", ["x-vercel-ip-city", "cloudfront-viewer-city"]],
|
|
782
|
+
["latitude", ["x-vercel-ip-latitude", "cloudfront-viewer-latitude"]],
|
|
783
|
+
["longitude", ["x-vercel-ip-longitude", "cloudfront-viewer-longitude"]],
|
|
784
|
+
["postalCode", ["x-vercel-ip-postal-code", "cloudfront-viewer-postal-code"]],
|
|
753
785
|
["asn", ["cloudfront-viewer-asn"]],
|
|
754
786
|
["tlsVersion", ["cloudfront-viewer-tls"]],
|
|
755
787
|
["httpVersion", ["cloudfront-viewer-http-version"]],
|
|
@@ -784,19 +816,25 @@ function deriveConnectionFromHeaders(headers) {
|
|
|
784
816
|
}
|
|
785
817
|
}
|
|
786
818
|
}
|
|
787
|
-
|
|
819
|
+
{
|
|
788
820
|
const addr = lower["cloudfront-viewer-address"]?.trim();
|
|
789
|
-
|
|
821
|
+
const portMatch = addr?.match(/:(\d+)$/);
|
|
822
|
+
if (portMatch) connection.sourcePort = portMatch[1];
|
|
823
|
+
if (!connection.ip && addr) connection.ip = addr.replace(/:\d+$/, "");
|
|
790
824
|
}
|
|
791
825
|
if (!connection.ip) {
|
|
792
826
|
const xff = lower["x-forwarded-for"];
|
|
793
827
|
const client = xff?.split(",")[0]?.trim();
|
|
794
828
|
if (client) connection.ip = client;
|
|
795
829
|
}
|
|
830
|
+
if (!connection.tlsCipher) {
|
|
831
|
+
const cipher = connection.tlsVersion?.split(":")[1];
|
|
832
|
+
if (cipher) connection.tlsCipher = cipher;
|
|
833
|
+
}
|
|
796
834
|
return Object.keys(connection).length > 0 ? connection : void 0;
|
|
797
835
|
}
|
|
798
836
|
function buildSdkObservedMetadata(rawHeaders) {
|
|
799
|
-
const { headers, apiKeyFormat, platformHeaders } = sanitizeHeaders(rawHeaders);
|
|
837
|
+
const { headers, apiKeyFormat, platformHeaders, cookieCount } = sanitizeHeaders(rawHeaders);
|
|
800
838
|
const flat = {};
|
|
801
839
|
if (rawHeaders) {
|
|
802
840
|
for (const name of Object.keys(rawHeaders)) {
|
|
@@ -811,6 +849,7 @@ function buildSdkObservedMetadata(rawHeaders) {
|
|
|
811
849
|
...apiKeyFormat && { apiKeyFormat },
|
|
812
850
|
...platformHeaders && { platformHeaders },
|
|
813
851
|
...connection && { connection },
|
|
852
|
+
...cookieCount !== void 0 && { cookieCount },
|
|
814
853
|
schemaVersion: CAPTURE_SCHEMA_VERSION
|
|
815
854
|
};
|
|
816
855
|
}
|
|
@@ -842,7 +881,7 @@ function resolvePollUrl(config, pollUrl) {
|
|
|
842
881
|
async function pollStepUpStatus(config, approval) {
|
|
843
882
|
if (!approval.pollUrl) return null;
|
|
844
883
|
try {
|
|
845
|
-
const res = await
|
|
884
|
+
const res = await sdkFetch(resolvePollUrl(config, approval.pollUrl), {
|
|
846
885
|
method: "GET",
|
|
847
886
|
signal: AbortSignal.timeout(POLL_REQUEST_TIMEOUT_MS)
|
|
848
887
|
});
|