@astrasyncai/verification-gateway 3.8.0 → 3.10.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 (114) hide show
  1. package/dist/adapter-interface/interface.d.mts +3 -2
  2. package/dist/adapter-interface/interface.d.ts +3 -2
  3. package/dist/adapters/express.d.mts +3 -2
  4. package/dist/adapters/express.d.ts +3 -2
  5. package/dist/adapters/express.js +152 -2
  6. package/dist/adapters/express.js.map +1 -1
  7. package/dist/adapters/express.mjs +152 -2
  8. package/dist/adapters/express.mjs.map +1 -1
  9. package/dist/adapters/http-pdlss.d.mts +81 -0
  10. package/dist/adapters/http-pdlss.d.ts +81 -0
  11. package/dist/adapters/http-pdlss.js +117 -0
  12. package/dist/adapters/http-pdlss.js.map +1 -0
  13. package/dist/adapters/http-pdlss.mjs +87 -0
  14. package/dist/adapters/http-pdlss.mjs.map +1 -0
  15. package/dist/adapters/mcp.d.mts +2 -1
  16. package/dist/adapters/mcp.d.ts +2 -1
  17. package/dist/adapters/mcp.js +2 -1
  18. package/dist/adapters/mcp.js.map +1 -1
  19. package/dist/adapters/mcp.mjs +2 -1
  20. package/dist/adapters/mcp.mjs.map +1 -1
  21. package/dist/adapters/nextjs.d.mts +3 -2
  22. package/dist/adapters/nextjs.d.ts +3 -2
  23. package/dist/adapters/nextjs.js +152 -2
  24. package/dist/adapters/nextjs.js.map +1 -1
  25. package/dist/adapters/nextjs.mjs +152 -2
  26. package/dist/adapters/nextjs.mjs.map +1 -1
  27. package/dist/adapters/sdk.d.mts +3 -2
  28. package/dist/adapters/sdk.d.ts +3 -2
  29. package/dist/adapters/sdk.js +2 -1
  30. package/dist/adapters/sdk.js.map +1 -1
  31. package/dist/adapters/sdk.mjs +2 -1
  32. package/dist/adapters/sdk.mjs.map +1 -1
  33. package/dist/agent/index.d.mts +3 -2
  34. package/dist/agent/index.d.ts +3 -2
  35. package/dist/bin/astrasync-claude-hook.js +17 -1
  36. package/dist/bin/astrasync-guard.js +17 -1
  37. package/dist/bin/astrasync.js +43 -1
  38. package/dist/browser/background.js +17 -1
  39. package/dist/browser/background.js.map +1 -1
  40. package/dist/browser/background.mjs +17 -1
  41. package/dist/browser/background.mjs.map +1 -1
  42. package/dist/browser/browser-adapter.d.mts +3 -2
  43. package/dist/browser/browser-adapter.d.ts +3 -2
  44. package/dist/claude-code/claude-code-adapter.d.mts +3 -2
  45. package/dist/claude-code/claude-code-adapter.d.ts +3 -2
  46. package/dist/cli/index.d.mts +3 -2
  47. package/dist/cli/index.d.ts +3 -2
  48. package/dist/cursor/cursor-adapter.d.mts +3 -2
  49. package/dist/cursor/cursor-adapter.d.ts +3 -2
  50. package/dist/cursor/extension.d.mts +3 -2
  51. package/dist/cursor/extension.d.ts +3 -2
  52. package/dist/cursor/extension.js +17 -1
  53. package/dist/cursor/extension.js.map +1 -1
  54. package/dist/cursor/extension.mjs +17 -1
  55. package/dist/cursor/extension.mjs.map +1 -1
  56. package/dist/edge-config.d.mts +131 -0
  57. package/dist/edge-config.d.ts +131 -0
  58. package/dist/edge-config.js +162 -0
  59. package/dist/edge-config.js.map +1 -0
  60. package/dist/edge-config.mjs +131 -0
  61. package/dist/edge-config.mjs.map +1 -0
  62. package/dist/{express-C8nJGi5P.d.ts → express-ClNtDhhc.d.ts} +1 -1
  63. package/dist/{express-Di_hnZZS.d.mts → express-DCXa1oqj.d.mts} +1 -1
  64. package/dist/gateway/gateway.d.mts +3 -2
  65. package/dist/gateway/gateway.d.ts +3 -2
  66. package/dist/gateway/gateway.js +17 -1
  67. package/dist/gateway/gateway.js.map +1 -1
  68. package/dist/gateway/gateway.mjs +17 -1
  69. package/dist/gateway/gateway.mjs.map +1 -1
  70. package/dist/git-trigger/git-hooks.d.mts +3 -2
  71. package/dist/git-trigger/git-hooks.d.ts +3 -2
  72. package/dist/{index-CXcvO9Au.d.mts → index-BrNKDmiR.d.mts} +1 -1
  73. package/dist/{index-CuCkjT7B.d.ts → index-CfHurO1P.d.ts} +1 -1
  74. package/dist/{index-CBQr4FGs.d.ts → index-D2ztkumS.d.ts} +1 -1
  75. package/dist/{index-DALAqct7.d.mts → index-Dr_XiN65.d.mts} +1 -1
  76. package/dist/index.d.mts +27 -82
  77. package/dist/index.d.ts +27 -82
  78. package/dist/index.js +435 -12
  79. package/dist/index.js.map +1 -1
  80. package/dist/index.mjs +417 -12
  81. package/dist/index.mjs.map +1 -1
  82. package/dist/local-evaluator/evaluator.d.mts +3 -2
  83. package/dist/local-evaluator/evaluator.d.ts +3 -2
  84. package/dist/metadata-capture.d.mts +87 -0
  85. package/dist/metadata-capture.d.ts +87 -0
  86. package/dist/metadata-capture.js +184 -0
  87. package/dist/metadata-capture.js.map +1 -0
  88. package/dist/metadata-capture.mjs +154 -0
  89. package/dist/metadata-capture.mjs.map +1 -0
  90. package/dist/{nextjs-IyXWW2KL.d.ts → nextjs-CEBVBsdi.d.ts} +1 -1
  91. package/dist/{nextjs-BMAe8ode.d.mts → nextjs-DcQIk6Zj.d.mts} +1 -1
  92. package/dist/platform-signatures.d.mts +97 -0
  93. package/dist/platform-signatures.d.ts +97 -0
  94. package/dist/platform-signatures.js +116 -0
  95. package/dist/platform-signatures.js.map +1 -0
  96. package/dist/platform-signatures.mjs +89 -0
  97. package/dist/platform-signatures.mjs.map +1 -0
  98. package/dist/{sdk-Cn4KcZ5G.d.mts → sdk-CZkbSOeO.d.mts} +1 -1
  99. package/dist/{sdk-ThdA_NtL.d.ts → sdk-H0JCLW2y.d.ts} +1 -1
  100. package/dist/transport/index.d.mts +3 -2
  101. package/dist/transport/index.d.ts +3 -2
  102. package/dist/{types-DedAJbNI.d.mts → types-9tns4wyl.d.ts} +88 -1
  103. package/dist/{types-CSFci5zD.d.mts → types-D0lCtFQ7.d.mts} +1 -1
  104. package/dist/{types-D1kyMiml.d.ts → types-YbiXYKx1.d.ts} +1 -1
  105. package/dist/{types-DedAJbNI.d.ts → types-sy3tq8lp.d.mts} +88 -1
  106. package/dist/ui/index.d.mts +2 -1
  107. package/dist/ui/index.d.ts +2 -1
  108. package/dist/verify.d.mts +151 -0
  109. package/dist/verify.d.ts +151 -0
  110. package/dist/verify.js +593 -0
  111. package/dist/verify.js.map +1 -0
  112. package/dist/verify.mjs +557 -0
  113. package/dist/verify.mjs.map +1 -0
  114. package/package.json +26 -1
@@ -1,3 +1,4 @@
1
1
  import 'next/server';
2
- import '../types-DedAJbNI.mjs';
3
- export { c as createMatcherConfig, a as createMiddleware } from '../nextjs-BMAe8ode.mjs';
2
+ import '../types-sy3tq8lp.mjs';
3
+ export { c as createMatcherConfig, a as createMiddleware } from '../nextjs-DcQIk6Zj.mjs';
4
+ import '../metadata-capture.mjs';
@@ -1,3 +1,4 @@
1
1
  import 'next/server';
2
- import '../types-DedAJbNI.js';
3
- export { c as createMatcherConfig, a as createMiddleware } from '../nextjs-IyXWW2KL.js';
2
+ import '../types-9tns4wyl.js';
3
+ export { c as createMatcherConfig, a as createMiddleware } from '../nextjs-CEBVBsdi.js';
4
+ import '../metadata-capture.js';
@@ -102,7 +102,7 @@ function getTrustLevel(score) {
102
102
  }
103
103
 
104
104
  // src/version.ts
105
- var SDK_VERSION = "3.7.1";
105
+ var SDK_VERSION = "3.10.0";
106
106
 
107
107
  // src/well-known.ts
108
108
  var CACHE_TTL_MS = 60 * 60 * 1e3;
@@ -297,6 +297,7 @@ async function callVerifyAccessAPI(config, request) {
297
297
  if (requestData.runtimeChallengeOptions)
298
298
  body.runtimeChallengeOptions = requestData.runtimeChallengeOptions;
299
299
  if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
300
+ if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
300
301
  body.sdkVersion = SDK_VERSION;
301
302
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
302
303
  const meta = {
@@ -636,6 +637,144 @@ function performCounterpartyPreCheck(routeConfig, astraCreds, purpose) {
636
637
  return failures;
637
638
  }
638
639
 
640
+ // src/metadata-capture.ts
641
+ var SECRET_HEADER_NAMES = /* @__PURE__ */ new Set([
642
+ "cookie",
643
+ "set-cookie",
644
+ "x-csrf-token",
645
+ "proxy-authorization",
646
+ "x-astrasync-signature",
647
+ "x-astrasync-secret",
648
+ "x-hub-signature",
649
+ "x-hub-signature-256"
650
+ ]);
651
+ var SECRET_HEADER_PREFIXES = ["x-astrasync-", "kya-", "kya_"];
652
+ var CREDENTIAL_HEADER_NAMES = /* @__PURE__ */ new Set([
653
+ "authorization",
654
+ "x-api-key",
655
+ "x-goog-api-key",
656
+ "api-key"
657
+ ]);
658
+ function isSignatureHeader(name) {
659
+ return name === "signature" || name.endsWith("-signature") || name.endsWith("-signature-256");
660
+ }
661
+ var PLATFORM_HEADER_NAMES = /* @__PURE__ */ new Set([
662
+ "openai-organization",
663
+ "openai-project",
664
+ "openai-version",
665
+ "openai-processing-ms",
666
+ "anthropic-version",
667
+ "anthropic-beta",
668
+ "x-goog-user-project",
669
+ "x-goog-api-client",
670
+ "user-agent",
671
+ "x-agent-card-url",
672
+ "x-agent-provider"
673
+ ]);
674
+ var PLATFORM_HEADER_PREFIXES = ["x-goog-", "x-stainless-", "x-anthropic-", "x-openai-"];
675
+ var KEY_FORMAT_PREFIXES = [
676
+ "sk-ant-api03",
677
+ "sk-ant-api",
678
+ "sk-ant",
679
+ "sk-proj",
680
+ "sk-svcacct",
681
+ "sk-or-v1",
682
+ "sk-or",
683
+ "sk-lf",
684
+ "sk-",
685
+ "gsk_",
686
+ "aiza",
687
+ "ya29",
688
+ "ghp_",
689
+ "gho_",
690
+ "github_pat_",
691
+ "xai-",
692
+ "pplx-",
693
+ "r8_",
694
+ "hf_",
695
+ "astra-",
696
+ "astrae-"
697
+ ];
698
+ var MAX_HEADERS = 64;
699
+ var MAX_HEADER_VALUE_BYTES = 1024;
700
+ var MAX_TOTAL_BYTES = 16 * 1024;
701
+ function byteLength(s) {
702
+ let bytes = 0;
703
+ for (let i = 0; i < s.length; i++) {
704
+ const code = s.charCodeAt(i);
705
+ if (code < 128) bytes += 1;
706
+ else if (code < 2048) bytes += 2;
707
+ else if (code >= 55296 && code <= 56319) {
708
+ bytes += 4;
709
+ i++;
710
+ } else bytes += 3;
711
+ }
712
+ return bytes;
713
+ }
714
+ function extractApiKeyFormat(rawValue) {
715
+ if (!rawValue) return void 0;
716
+ let value = rawValue.trim();
717
+ const spaceIdx = value.indexOf(" ");
718
+ if (spaceIdx > 0) {
719
+ const scheme = value.slice(0, spaceIdx).toLowerCase();
720
+ if (scheme === "bearer" || scheme === "basic" || scheme === "token") {
721
+ value = value.slice(spaceIdx + 1).trim();
722
+ }
723
+ }
724
+ const lower = value.toLowerCase();
725
+ for (const prefix of KEY_FORMAT_PREFIXES) {
726
+ if (lower.startsWith(prefix)) {
727
+ return prefix;
728
+ }
729
+ }
730
+ return void 0;
731
+ }
732
+ function isSecretHeader(name) {
733
+ if (SECRET_HEADER_NAMES.has(name)) return true;
734
+ if (SECRET_HEADER_PREFIXES.some((p) => name.startsWith(p))) return true;
735
+ if (isSignatureHeader(name)) return true;
736
+ return false;
737
+ }
738
+ function isPlatformHeader(name) {
739
+ if (PLATFORM_HEADER_NAMES.has(name)) return true;
740
+ return PLATFORM_HEADER_PREFIXES.some((p) => name.startsWith(p));
741
+ }
742
+ function sanitizeHeaders(raw) {
743
+ const headers = {};
744
+ const platformHeaders = {};
745
+ let apiKeyFormat;
746
+ let totalBytes = 0;
747
+ let count = 0;
748
+ if (!raw) return { headers };
749
+ for (const rawName of Object.keys(raw)) {
750
+ if (count >= MAX_HEADERS) break;
751
+ const name = rawName.toLowerCase();
752
+ const rawValue = raw[rawName];
753
+ if (rawValue === void 0) continue;
754
+ const joined = Array.isArray(rawValue) ? rawValue.join(", ") : String(rawValue);
755
+ if (CREDENTIAL_HEADER_NAMES.has(name)) {
756
+ const fmt = extractApiKeyFormat(joined);
757
+ if (fmt && !apiKeyFormat) apiKeyFormat = fmt;
758
+ continue;
759
+ }
760
+ if (isSecretHeader(name)) continue;
761
+ let value = joined;
762
+ if (byteLength(value) > MAX_HEADER_VALUE_BYTES) {
763
+ value = value.slice(0, MAX_HEADER_VALUE_BYTES);
764
+ }
765
+ const entryBytes = byteLength(name) + byteLength(value);
766
+ if (totalBytes + entryBytes > MAX_TOTAL_BYTES) continue;
767
+ totalBytes += entryBytes;
768
+ count++;
769
+ headers[name] = value;
770
+ if (isPlatformHeader(name)) platformHeaders[name] = value;
771
+ }
772
+ const result = { headers };
773
+ if (apiKeyFormat) result.apiKeyFormat = apiKeyFormat;
774
+ if (Object.keys(platformHeaders).length > 0) result.platformHeaders = platformHeaders;
775
+ return result;
776
+ }
777
+
639
778
  // src/adapters/http-pdlss.ts
640
779
  var HTTP_METHOD_ACTION_TABLE = {
641
780
  GET: "data.read",
@@ -1084,7 +1223,18 @@ function createMiddleware(options) {
1084
1223
  referer: request.headers.get("referer") || void 0,
1085
1224
  host: request.headers.get("host") || void 0,
1086
1225
  forwardedFor,
1087
- agentCardUrl: request.headers.get("x-astrasync-agent-card") || void 0
1226
+ agentCardUrl: request.headers.get("x-astrasync-agent-card") || void 0,
1227
+ // Workstream D — full sanitised header capture (Web Headers → plain map).
1228
+ observedMetadata: (() => {
1229
+ const { headers, apiKeyFormat, platformHeaders } = sanitizeHeaders(
1230
+ Object.fromEntries(request.headers.entries())
1231
+ );
1232
+ return {
1233
+ headers,
1234
+ ...apiKeyFormat && { apiKeyFormat },
1235
+ ...platformHeaders && { platformHeaders }
1236
+ };
1237
+ })()
1088
1238
  }
1089
1239
  };
1090
1240
  let result = await verify(config, verificationRequest);