@astrasyncai/verification-gateway 5.13.0 → 5.15.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 +27 -17
- package/dist/adapters/express.d.mts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.js +504 -249
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +504 -249
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +1 -1
- package/dist/adapters/mcp.d.ts +1 -1
- package/dist/adapters/mcp.js +20 -6
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +20 -6
- 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 +487 -248
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +487 -248
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +18 -10
- package/dist/adapters/sdk.d.ts +18 -10
- package/dist/adapters/sdk.js +80 -23
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +80 -23
- package/dist/adapters/sdk.mjs.map +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 +82 -20
- package/dist/bin/astrasync-codex-hook.js +82 -20
- package/dist/bin/astrasync-guard.js +82 -20
- package/dist/bin/astrasync.js +316 -43
- package/dist/browser/background.js +77 -15
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +87 -15
- 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 +82 -20
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +92 -20
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +82 -20
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +92 -20
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.d.mts +31 -2
- package/dist/edge-config.d.ts +31 -2
- package/dist/edge-config.js +35 -5
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +32 -4
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.d.mts +43 -6
- package/dist/edge-core/index.d.ts +43 -6
- package/dist/edge-core/index.js +120 -19
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +118 -19
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +77 -15
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +87 -15
- 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 +1314 -34
- package/dist/index.d.ts +1314 -34
- package/dist/index.js +5143 -2621
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5090 -2623
- package/dist/index.mjs.map +1 -1
- package/dist/registration/index.d.mts +28 -2
- package/dist/registration/index.d.ts +28 -2
- package/dist/registration/index.js +18 -3
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +15 -2
- package/dist/registration/index.mjs.map +1 -1
- package/dist/transport/index.d.mts +7 -5
- package/dist/transport/index.d.ts +7 -5
- package/dist/transport/index.js +61 -5
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +67 -11
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-C_b4QTyO.d.ts → types-DtJjlW4O.d.ts} +104 -10
- package/dist/{types-BCkwBA84.d.mts → types-Dxf9DBpr.d.mts} +106 -12
- package/dist/{types-BCkwBA84.d.ts → types-Dxf9DBpr.d.ts} +106 -12
- package/dist/{types-DlshIIR-.d.mts → types-Eg6VoBNH.d.mts} +104 -10
- 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/dist/verify.js +20 -6
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +20 -6
- package/dist/verify.mjs.map +1 -1
- package/package.json +1 -1
package/dist/gateway/gateway.js
CHANGED
|
@@ -3748,7 +3748,7 @@ function getTrustLevel(score) {
|
|
|
3748
3748
|
}
|
|
3749
3749
|
|
|
3750
3750
|
// src/version.ts
|
|
3751
|
-
var SDK_VERSION = "5.
|
|
3751
|
+
var SDK_VERSION = "5.15.0";
|
|
3752
3752
|
|
|
3753
3753
|
// src/http.ts
|
|
3754
3754
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -4067,6 +4067,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
4067
4067
|
if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
|
|
4068
4068
|
if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
|
|
4069
4069
|
if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
|
|
4070
|
+
if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
|
|
4070
4071
|
if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
|
|
4071
4072
|
if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
|
|
4072
4073
|
if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
|
|
@@ -4217,7 +4218,8 @@ async function verify(config, request, options) {
|
|
|
4217
4218
|
"[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."
|
|
4218
4219
|
);
|
|
4219
4220
|
}
|
|
4220
|
-
|
|
4221
|
+
const uncacheable = Boolean(request.commerceArtifacts);
|
|
4222
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
|
|
4221
4223
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
4222
4224
|
if (cached) {
|
|
4223
4225
|
if (mergedConfig.debug) {
|
|
@@ -4298,7 +4300,10 @@ async function verify(config, request, options) {
|
|
|
4298
4300
|
// MERCHANT caller only (bridge callers strip it before the agent plane).
|
|
4299
4301
|
settlementToken: apiResponse.settlementToken,
|
|
4300
4302
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4301
|
-
fulfilment: apiResponse.fulfilment
|
|
4303
|
+
fulfilment: apiResponse.fulfilment,
|
|
4304
|
+
mandates: apiResponse.mandates,
|
|
4305
|
+
kyaToken: apiResponse.kyaToken,
|
|
4306
|
+
aep: apiResponse.aep
|
|
4302
4307
|
};
|
|
4303
4308
|
return result2;
|
|
4304
4309
|
}
|
|
@@ -4308,7 +4313,10 @@ async function verify(config, request, options) {
|
|
|
4308
4313
|
trustScore: apiResponse.agent.trustScore,
|
|
4309
4314
|
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
4310
4315
|
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
4311
|
-
status: apiResponse.agent.agentStatus
|
|
4316
|
+
status: apiResponse.agent.agentStatus,
|
|
4317
|
+
...apiResponse.agent.protocolIdentities && {
|
|
4318
|
+
protocolIdentities: apiResponse.agent.protocolIdentities
|
|
4319
|
+
}
|
|
4312
4320
|
} : void 0;
|
|
4313
4321
|
const developer = apiResponse.developer ? {
|
|
4314
4322
|
astradId: apiResponse.developer.kyaOwnerId,
|
|
@@ -4359,7 +4367,11 @@ async function verify(config, request, options) {
|
|
|
4359
4367
|
settlementOutcome: apiResponse.settlementOutcome,
|
|
4360
4368
|
settlementToken: apiResponse.settlementToken,
|
|
4361
4369
|
// 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
|
|
4362
|
-
fulfilment: apiResponse.fulfilment
|
|
4370
|
+
fulfilment: apiResponse.fulfilment,
|
|
4371
|
+
// 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
|
|
4372
|
+
mandates: apiResponse.mandates,
|
|
4373
|
+
kyaToken: apiResponse.kyaToken,
|
|
4374
|
+
aep: apiResponse.aep
|
|
4363
4375
|
};
|
|
4364
4376
|
if (result.recommendation === "deny") {
|
|
4365
4377
|
result.policyAllowed = false;
|
|
@@ -4379,7 +4391,9 @@ async function verify(config, request, options) {
|
|
|
4379
4391
|
}
|
|
4380
4392
|
const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
|
|
4381
4393
|
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
|
|
4382
|
-
|
|
4394
|
+
if (!uncacheable) {
|
|
4395
|
+
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
4396
|
+
}
|
|
4383
4397
|
}
|
|
4384
4398
|
return result;
|
|
4385
4399
|
}
|
|
@@ -4390,6 +4404,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
|
4390
4404
|
// src/metadata-capture.ts
|
|
4391
4405
|
var MAX_TOTAL_BYTES = 16 * 1024;
|
|
4392
4406
|
|
|
4407
|
+
// src/adapters/commerce-detect.ts
|
|
4408
|
+
var MAX_BODY_BYTES = 64 * 1024;
|
|
4409
|
+
|
|
4393
4410
|
// src/edge-config.ts
|
|
4394
4411
|
var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
4395
4412
|
version: 1,
|
|
@@ -4418,6 +4435,11 @@ async function withBudget(promise, ms) {
|
|
|
4418
4435
|
if (timer) clearTimeout(timer);
|
|
4419
4436
|
}
|
|
4420
4437
|
}
|
|
4438
|
+
var CONTAINER_ID = (() => {
|
|
4439
|
+
const c = globalThis.crypto;
|
|
4440
|
+
if (c?.randomUUID) return c.randomUUID();
|
|
4441
|
+
return `c-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 12)}`;
|
|
4442
|
+
})();
|
|
4421
4443
|
var destKeyOf = (d) => `${d.apiBaseUrl}\0${d.apiKey ?? ""}\0${d.counterparty}\0${d.adapter ?? ""}`;
|
|
4422
4444
|
var BeaconBuffer = class {
|
|
4423
4445
|
constructor(options = {}) {
|
|
@@ -4425,6 +4447,7 @@ var BeaconBuffer = class {
|
|
|
4425
4447
|
this.droppedSinceLast = 0;
|
|
4426
4448
|
this.droppedTotal = 0;
|
|
4427
4449
|
this.deliveredTotal = 0;
|
|
4450
|
+
this.enqueuedTotal = 0;
|
|
4428
4451
|
this.backoffUntil = 0;
|
|
4429
4452
|
this.collapse = /* @__PURE__ */ new Map();
|
|
4430
4453
|
/** Keys the backend answered 401 for — later batches go unauthenticated. */
|
|
@@ -4437,13 +4460,16 @@ var BeaconBuffer = class {
|
|
|
4437
4460
|
collapseMaxKeys: options.collapseMaxKeys ?? 1e3,
|
|
4438
4461
|
requestTimeoutMs: options.requestTimeoutMs ?? 1e4,
|
|
4439
4462
|
retryBackoffMs: options.retryBackoffMs ?? 1e3,
|
|
4463
|
+
holdRepeats: options.holdRepeats ?? false,
|
|
4464
|
+
containerId: options.containerId ?? CONTAINER_ID,
|
|
4440
4465
|
now: options.now ?? Date.now
|
|
4441
4466
|
};
|
|
4442
4467
|
}
|
|
4443
4468
|
/**
|
|
4444
4469
|
* Queue one beacon. With a `collapseKey`, a repeat inside the window is
|
|
4445
|
-
* merged into
|
|
4446
|
-
*
|
|
4470
|
+
* merged into this key's item while that item is still queued (not yet in
|
|
4471
|
+
* flight). Once it has left, the repeat becomes a new item, sendable on
|
|
4472
|
+
* this flush — nothing waits for a later invocation (round 27.6).
|
|
4447
4473
|
*/
|
|
4448
4474
|
enqueue(dest, item, collapseKey) {
|
|
4449
4475
|
const now = this.opts.now();
|
|
@@ -4456,12 +4482,15 @@ var BeaconBuffer = class {
|
|
|
4456
4482
|
return;
|
|
4457
4483
|
}
|
|
4458
4484
|
}
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4485
|
+
if (this.opts.holdRepeats) {
|
|
4486
|
+
entry.held = this.push(
|
|
4487
|
+
dest,
|
|
4488
|
+
{ ...item, repeatCount: 1 },
|
|
4489
|
+
entry.firstSeenAt + this.opts.collapseWindowMs
|
|
4490
|
+
);
|
|
4491
|
+
return;
|
|
4492
|
+
}
|
|
4493
|
+
entry.first = this.push(dest, { ...item, repeatCount: 1 }, now);
|
|
4465
4494
|
return;
|
|
4466
4495
|
}
|
|
4467
4496
|
this.collapse.delete(collapseKey);
|
|
@@ -4497,6 +4526,7 @@ var BeaconBuffer = class {
|
|
|
4497
4526
|
droppedSinceLast: this.droppedSinceLast,
|
|
4498
4527
|
droppedTotal: this.droppedTotal,
|
|
4499
4528
|
deliveredTotal: this.deliveredTotal,
|
|
4529
|
+
enqueuedTotal: this.enqueuedTotal,
|
|
4500
4530
|
flushing: this.inFlight !== void 0
|
|
4501
4531
|
};
|
|
4502
4532
|
}
|
|
@@ -4511,6 +4541,7 @@ var BeaconBuffer = class {
|
|
|
4511
4541
|
inFlight: false
|
|
4512
4542
|
};
|
|
4513
4543
|
this.queue.push(entry);
|
|
4544
|
+
this.enqueuedTotal += 1;
|
|
4514
4545
|
return entry;
|
|
4515
4546
|
}
|
|
4516
4547
|
dropOldest() {
|
|
@@ -4556,7 +4587,11 @@ var BeaconBuffer = class {
|
|
|
4556
4587
|
droppedSinceLast: reportedDropped,
|
|
4557
4588
|
queueDepth: this.queue.length,
|
|
4558
4589
|
adapter: dest.adapter ?? "edge-core",
|
|
4559
|
-
version: SDK_VERSION
|
|
4590
|
+
version: SDK_VERSION,
|
|
4591
|
+
containerId: this.opts.containerId,
|
|
4592
|
+
enqueuedTotal: this.enqueuedTotal,
|
|
4593
|
+
deliveredTotal: this.deliveredTotal,
|
|
4594
|
+
droppedTotal: this.droppedTotal
|
|
4560
4595
|
};
|
|
4561
4596
|
const controller = typeof AbortController !== "undefined" ? new AbortController() : void 0;
|
|
4562
4597
|
const response = await withBudget(
|
|
@@ -4681,6 +4716,33 @@ var import_node_crypto4 = require("crypto");
|
|
|
4681
4716
|
// src/transport/registry/visa.ts
|
|
4682
4717
|
var import_jose = require("jose");
|
|
4683
4718
|
|
|
4719
|
+
// src/ucp/profile.ts
|
|
4720
|
+
var UCP_VERSION = "2026-08-25";
|
|
4721
|
+
var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
|
|
4722
|
+
var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
|
|
4723
|
+
|
|
4724
|
+
// src/ucp/signatures.ts
|
|
4725
|
+
var import_http_message_signatures3 = require("http-message-signatures");
|
|
4726
|
+
|
|
4727
|
+
// src/http-signatures/sign.ts
|
|
4728
|
+
var import_http_message_signatures2 = require("http-message-signatures");
|
|
4729
|
+
|
|
4730
|
+
// src/ucp/checkout-kit.ts
|
|
4731
|
+
var import_jose3 = require("jose");
|
|
4732
|
+
|
|
4733
|
+
// src/mandates/sd-jwt.ts
|
|
4734
|
+
var import_jose2 = require("jose");
|
|
4735
|
+
|
|
4736
|
+
// src/idempotency/index.ts
|
|
4737
|
+
var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
4738
|
+
|
|
4739
|
+
// src/payments/kyapay.ts
|
|
4740
|
+
var import_jose4 = require("jose");
|
|
4741
|
+
|
|
4742
|
+
// src/aep/core.ts
|
|
4743
|
+
var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
|
|
4744
|
+
var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
4745
|
+
|
|
4684
4746
|
// src/gateway/modes/online.ts
|
|
4685
4747
|
function toGatewayConfig(config) {
|
|
4686
4748
|
return {
|