@adcp/sdk 15.3.0 → 15.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/lib/reporting/ledger/handler.d.mts +6 -0
- package/dist/lib/reporting/ledger/handler.d.ts +6 -0
- package/dist/lib/reporting/ledger/handler.js +36 -7
- package/dist/lib/reporting/ledger/handler.mjs +35 -7
- package/dist/lib/reporting/ledger/index.d.mts +1 -0
- package/dist/lib/reporting/ledger/index.d.ts +1 -0
- package/dist/lib/reporting/ledger/index.js +3 -1
- package/dist/lib/reporting/ledger/index.mjs +1 -0
- package/dist/lib/reporting/ledger/lifecycle.js +3 -2
- package/dist/lib/reporting/ledger/lifecycle.mjs +3 -2
- package/dist/lib/reporting/ledger/managed-postgres.js +5 -5
- package/dist/lib/reporting/ledger/managed-postgres.mjs +5 -5
- package/dist/lib/reporting/ledger/postgres.d.mts +4 -1
- package/dist/lib/reporting/ledger/postgres.d.ts +4 -1
- package/dist/lib/reporting/ledger/postgres.js +38 -0
- package/dist/lib/reporting/ledger/postgres.mjs +38 -0
- package/dist/lib/reporting/ledger/producer.js +3 -2
- package/dist/lib/reporting/ledger/producer.mjs +3 -2
- package/dist/lib/reporting/ledger/revision-metadata.d.mts +17 -0
- package/dist/lib/reporting/ledger/revision-metadata.d.ts +17 -0
- package/dist/lib/reporting/ledger/revision-metadata.js +71 -0
- package/dist/lib/reporting/ledger/revision-metadata.mjs +44 -0
- package/dist/lib/reporting/ledger/row-encoding.d.mts +128 -0
- package/dist/lib/reporting/ledger/row-encoding.d.ts +128 -0
- package/dist/lib/reporting/ledger/row-encoding.js +355 -0
- package/dist/lib/reporting/ledger/row-encoding.mjs +315 -0
- package/dist/lib/reporting/ledger/types.d.mts +37 -0
- package/dist/lib/reporting/ledger/types.d.ts +37 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/signing/agent-resolver/fetch-helpers.js +1 -1
- package/dist/lib/signing/agent-resolver/fetch-helpers.mjs +1 -1
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.mjs +3 -3
- package/docs/TYPE-SUMMARY.md +1 -1
- package/docs/llms.txt +1 -1
- package/docs/migration-14.x-rc-worksheet.md +4 -4
- package/docs/recipes/verifying-inbound-webhooks.md +8 -0
- package/package.json +1 -1
|
@@ -198,6 +198,21 @@ export interface ReportingLedgerAdjustmentV1 {
|
|
|
198
198
|
}
|
|
199
199
|
export type ReportingLedgerRevisionSnapshotV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
200
200
|
export type ReportingLedgerRevisionMetadataV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
201
|
+
export type ReportingLedgerAdjustmentMetadataV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
|
+
export interface ReportingRevisionRowsReadV1 {
|
|
203
|
+
reporting_revision_id: string;
|
|
204
|
+
account_id: string;
|
|
205
|
+
/** Zero-based ordinal of the first row to return. */
|
|
206
|
+
offset: number;
|
|
207
|
+
/** Maximum rows to return; at least 1. */
|
|
208
|
+
limit: number;
|
|
209
|
+
signal?: AbortSignal;
|
|
210
|
+
}
|
|
211
|
+
export interface ReportingRevisionRowsPageV1 {
|
|
212
|
+
rows: Record<string, unknown>[];
|
|
213
|
+
/** Total rows in the revision. */
|
|
214
|
+
total: number;
|
|
215
|
+
}
|
|
201
216
|
export type ReportingLedgerAdjustmentSnapshotV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
217
|
export interface ReportingLedgerConsumerStatusV1 {
|
|
203
218
|
consumerStatusId: string;
|
|
@@ -761,12 +776,34 @@ export interface ReportingLedgerStore {
|
|
|
761
776
|
}>;
|
|
762
777
|
/** Returns an exact row-bearing revision only when it belongs to the resolved account. */
|
|
763
778
|
getRevision(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionV1 | null>;
|
|
779
|
+
/**
|
|
780
|
+
* Optional row-free counterpart of `getRevision`, scoped to the resolved
|
|
781
|
+
* account. Exact-read handlers prefer it so they never load every row to
|
|
782
|
+
* serve one page.
|
|
783
|
+
*/
|
|
784
|
+
getRevisionMetadata?(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionMetadataV1 | null>;
|
|
785
|
+
/**
|
|
786
|
+
* Optional: one page of a revision's rows in ordinal order, only when the
|
|
787
|
+
* revision belongs to the resolved account. `total` is the revision's row
|
|
788
|
+
* count. Stores that keep rows outside the revision document verify every
|
|
789
|
+
* row they return against the committed binding before returning it.
|
|
790
|
+
*/
|
|
791
|
+
readRevisionRows?(input: ReportingRevisionRowsReadV1): Promise<ReportingRevisionRowsPageV1 | null>;
|
|
764
792
|
listRevisions(reporting_obligation_id: string): Promise<ReportingLedgerRevisionV1[]>;
|
|
793
|
+
/**
|
|
794
|
+
* Optional: every retained revision for one obligation without
|
|
795
|
+
* materializing rows. The producer, lifecycle reconciler and status ingest
|
|
796
|
+
* prefer it and otherwise fall back to `listRevisions` with rows dropped.
|
|
797
|
+
* When `account_id` is supplied, only that account's revisions are returned.
|
|
798
|
+
*/
|
|
799
|
+
listRevisionMetadata?(reporting_obligation_id: string, account_id?: string): Promise<ReportingLedgerRevisionMetadataV1[]>;
|
|
765
800
|
commitAdjustment(adjustment: ReportingLedgerAdjustmentV1, lease: ReportingLedgerLeaseV1): Promise<{
|
|
766
801
|
inserted: boolean;
|
|
767
802
|
value: ReportingLedgerAdjustmentV1;
|
|
768
803
|
}>;
|
|
769
804
|
listAdjustments(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentV1[]>;
|
|
805
|
+
/** Optional row-free counterpart of `listAdjustments`, preferred when present. */
|
|
806
|
+
listAdjustmentMetadata?(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentMetadataV1[]>;
|
|
770
807
|
putConsumerStatus(status: ReportingLedgerConsumerStatusV1): Promise<{
|
|
771
808
|
inserted: boolean;
|
|
772
809
|
value: ReportingLedgerConsumerStatusV1;
|
|
@@ -198,6 +198,21 @@ export interface ReportingLedgerAdjustmentV1 {
|
|
|
198
198
|
}
|
|
199
199
|
export type ReportingLedgerRevisionSnapshotV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
200
200
|
export type ReportingLedgerRevisionMetadataV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
201
|
+
export type ReportingLedgerAdjustmentMetadataV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
|
+
export interface ReportingRevisionRowsReadV1 {
|
|
203
|
+
reporting_revision_id: string;
|
|
204
|
+
account_id: string;
|
|
205
|
+
/** Zero-based ordinal of the first row to return. */
|
|
206
|
+
offset: number;
|
|
207
|
+
/** Maximum rows to return; at least 1. */
|
|
208
|
+
limit: number;
|
|
209
|
+
signal?: AbortSignal;
|
|
210
|
+
}
|
|
211
|
+
export interface ReportingRevisionRowsPageV1 {
|
|
212
|
+
rows: Record<string, unknown>[];
|
|
213
|
+
/** Total rows in the revision. */
|
|
214
|
+
total: number;
|
|
215
|
+
}
|
|
201
216
|
export type ReportingLedgerAdjustmentSnapshotV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
217
|
export interface ReportingLedgerConsumerStatusV1 {
|
|
203
218
|
consumerStatusId: string;
|
|
@@ -761,12 +776,34 @@ export interface ReportingLedgerStore {
|
|
|
761
776
|
}>;
|
|
762
777
|
/** Returns an exact row-bearing revision only when it belongs to the resolved account. */
|
|
763
778
|
getRevision(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionV1 | null>;
|
|
779
|
+
/**
|
|
780
|
+
* Optional row-free counterpart of `getRevision`, scoped to the resolved
|
|
781
|
+
* account. Exact-read handlers prefer it so they never load every row to
|
|
782
|
+
* serve one page.
|
|
783
|
+
*/
|
|
784
|
+
getRevisionMetadata?(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionMetadataV1 | null>;
|
|
785
|
+
/**
|
|
786
|
+
* Optional: one page of a revision's rows in ordinal order, only when the
|
|
787
|
+
* revision belongs to the resolved account. `total` is the revision's row
|
|
788
|
+
* count. Stores that keep rows outside the revision document verify every
|
|
789
|
+
* row they return against the committed binding before returning it.
|
|
790
|
+
*/
|
|
791
|
+
readRevisionRows?(input: ReportingRevisionRowsReadV1): Promise<ReportingRevisionRowsPageV1 | null>;
|
|
764
792
|
listRevisions(reporting_obligation_id: string): Promise<ReportingLedgerRevisionV1[]>;
|
|
793
|
+
/**
|
|
794
|
+
* Optional: every retained revision for one obligation without
|
|
795
|
+
* materializing rows. The producer, lifecycle reconciler and status ingest
|
|
796
|
+
* prefer it and otherwise fall back to `listRevisions` with rows dropped.
|
|
797
|
+
* When `account_id` is supplied, only that account's revisions are returned.
|
|
798
|
+
*/
|
|
799
|
+
listRevisionMetadata?(reporting_obligation_id: string, account_id?: string): Promise<ReportingLedgerRevisionMetadataV1[]>;
|
|
765
800
|
commitAdjustment(adjustment: ReportingLedgerAdjustmentV1, lease: ReportingLedgerLeaseV1): Promise<{
|
|
766
801
|
inserted: boolean;
|
|
767
802
|
value: ReportingLedgerAdjustmentV1;
|
|
768
803
|
}>;
|
|
769
804
|
listAdjustments(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentV1[]>;
|
|
805
|
+
/** Optional row-free counterpart of `listAdjustments`, preferred when present. */
|
|
806
|
+
listAdjustmentMetadata?(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentMetadataV1[]>;
|
|
770
807
|
putConsumerStatus(status: ReportingLedgerConsumerStatusV1): Promise<{
|
|
771
808
|
inserted: boolean;
|
|
772
809
|
value: ReportingLedgerConsumerStatusV1;
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
"source_sha": "4e553ad955f83b49c7d221ab5c3ff78237ad02e3",
|
|
5
5
|
"source_tarball_sha256": "580656d6466ef9f0d1119985e6726c2efea718dc671e2ad30957fcb2fd54af0f",
|
|
6
6
|
"upstream_adcp_version": "2.5.3",
|
|
7
|
-
"synced_at": "2026-10-
|
|
7
|
+
"synced_at": "2026-10-08T19:53:54.089Z"
|
|
8
8
|
}
|
|
@@ -118,7 +118,7 @@ function classifyDiscoveryFailure(error) {
|
|
|
118
118
|
return { dns_error: "fetch_failed" };
|
|
119
119
|
}
|
|
120
120
|
function isPermanentDiscoveryFailure(detail) {
|
|
121
|
-
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500;
|
|
121
|
+
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500 && detail.http_status !== 408 && detail.http_status !== 429;
|
|
122
122
|
}
|
|
123
123
|
// Annotate the CommonJS export names for ESM import in node:
|
|
124
124
|
0 && (module.exports = {
|
|
@@ -91,7 +91,7 @@ function classifyDiscoveryFailure(error) {
|
|
|
91
91
|
return { dns_error: "fetch_failed" };
|
|
92
92
|
}
|
|
93
93
|
function isPermanentDiscoveryFailure(detail) {
|
|
94
|
-
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500;
|
|
94
|
+
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500 && detail.http_status !== 408 && detail.http_status !== 429;
|
|
95
95
|
}
|
|
96
96
|
export {
|
|
97
97
|
DEFAULT_CONNECT_TIMEOUT_MS,
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "15.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "15.4.0";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "15.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "15.4.0";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
package/dist/lib/version.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "15.
|
|
4
|
+
export declare const LIBRARY_VERSION = "15.4.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "15.
|
|
36
|
+
readonly library: "15.4.0";
|
|
37
37
|
readonly adcp: "3.2.3";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2", "3.2.2", "3.2.3"];
|
|
39
|
-
readonly generatedAt: "2026-10-
|
|
39
|
+
readonly generatedAt: "2026-10-08T17:53:59.048Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "15.
|
|
4
|
+
export declare const LIBRARY_VERSION = "15.4.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "15.
|
|
36
|
+
readonly library: "15.4.0";
|
|
37
37
|
readonly adcp: "3.2.3";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2", "3.2.2", "3.2.3"];
|
|
39
|
-
readonly generatedAt: "2026-10-
|
|
39
|
+
readonly generatedAt: "2026-10-08T17:53:59.048Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.js
CHANGED
|
@@ -31,7 +31,7 @@ __export(version_exports, {
|
|
|
31
31
|
toReleasePrecisionVersion: () => toReleasePrecisionVersion
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(version_exports);
|
|
34
|
-
const LIBRARY_VERSION = "15.
|
|
34
|
+
const LIBRARY_VERSION = "15.4.0";
|
|
35
35
|
const ADCP_VERSION = "3.2.3";
|
|
36
36
|
const ADCP_MAJOR_VERSION = 3;
|
|
37
37
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -97,10 +97,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
97
97
|
"3.2.3"
|
|
98
98
|
];
|
|
99
99
|
const VERSION_INFO = {
|
|
100
|
-
library: "15.
|
|
100
|
+
library: "15.4.0",
|
|
101
101
|
adcp: "3.2.3",
|
|
102
102
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
103
|
-
generatedAt: "2026-10-
|
|
103
|
+
generatedAt: "2026-10-08T17:53:59.048Z"
|
|
104
104
|
};
|
|
105
105
|
function getAdcpVersion() {
|
|
106
106
|
return ADCP_VERSION;
|
package/dist/lib/version.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const LIBRARY_VERSION = "15.
|
|
1
|
+
const LIBRARY_VERSION = "15.4.0";
|
|
2
2
|
const ADCP_VERSION = "3.2.3";
|
|
3
3
|
const ADCP_MAJOR_VERSION = 3;
|
|
4
4
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -64,10 +64,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
64
64
|
"3.2.3"
|
|
65
65
|
];
|
|
66
66
|
const VERSION_INFO = {
|
|
67
|
-
library: "15.
|
|
67
|
+
library: "15.4.0",
|
|
68
68
|
adcp: "3.2.3",
|
|
69
69
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
70
|
-
generatedAt: "2026-10-
|
|
70
|
+
generatedAt: "2026-10-08T17:53:59.048Z"
|
|
71
71
|
};
|
|
72
72
|
function getAdcpVersion() {
|
|
73
73
|
return ADCP_VERSION;
|
package/docs/TYPE-SUMMARY.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AdCP Type Summary
|
|
2
2
|
|
|
3
3
|
> Generated at: 2026-10-08
|
|
4
|
-
> @adcp/sdk v15.
|
|
4
|
+
> @adcp/sdk v15.4.0
|
|
5
5
|
|
|
6
6
|
Curated reference of the types that matter for using the AdCP client. For full generated types see `src/lib/types/tools.generated.ts` and `src/lib/types/core.generated.ts`.
|
|
7
7
|
|
package/docs/llms.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Ad Context Protocol (AdCP)
|
|
2
2
|
|
|
3
3
|
> Generated at: 2026-10-08
|
|
4
|
-
> Library: @adcp/sdk v15.
|
|
4
|
+
> Library: @adcp/sdk v15.4.0
|
|
5
5
|
> AdCP major version: 3
|
|
6
6
|
> Canonical URL: https://adcontextprotocol.github.io/adcp-client/llms.txt
|
|
7
7
|
> Note: the `Library` stamp reflects the package.json version at doc-generation time. The narrative below describes the surface that lands on the next-published minor — including any 6.7 helpers documented here ahead of the release tag.
|
|
@@ -11,8 +11,8 @@ below as the publication/deployment gate.
|
|
|
11
11
|
|
|
12
12
|
| Fact | Value |
|
|
13
13
|
| --- | --- |
|
|
14
|
-
| Exact npm package | `@adcp/sdk@15.
|
|
15
|
-
| npm integrity | registry-derived after publication; run `npm view @adcp/sdk@15.
|
|
14
|
+
| Exact npm package | `@adcp/sdk@15.4.0` |
|
|
15
|
+
| npm integrity | registry-derived after publication; run `npm view @adcp/sdk@15.4.0 dist.integrity` |
|
|
16
16
|
| Node.js runtime | `^20.19.0 || >=22.12.0` |
|
|
17
17
|
| Default AdCP wire release | `3.2.3` |
|
|
18
18
|
| Maintained wire releases | `v2.5`, `v2.6`, `v3`, `3.0.0`, `3.0`, `3.0.1`, `3.0.2`, `3.0.3`, `3.0.4`, `3.0.5`, `3.0.6`, `3.0.7`, `3.0.8`, `3.0.9`, `3.0.10`, `3.0.11`, `3.0.12`, `3.0.13`, `3.0.14`, `3.0.15`, `3.0.16`, `3.0.17`, `3.0.18`, `3.0.19`, `3.0.20`, `3.0.21`, `3.0.22`, `3.0.23`, `3.0.24`, `3.0.25`, `3.1.0`, `3.1`, `3.1.1`, `3.1.2`, `3.1.3`, `3.1.4`, `3.1.5`, `3.1.6`, `3.1.7`, `3.1.8`, `3.1.9`, `3.1.10`, `3.1.11`, `3.1.12`, `3.1.13`, `3.1.14`, `3.1.15`, `3.1.16`, `3.1.17`, `3.1.18`, `3.1.19`, `3.1.20`, `3.1.21`, `3.1.22`, `3.1.23`, `3.1.24`, `3.2.1`, `3.2`, `3.2.2`, `3.2.3` |
|
|
@@ -21,8 +21,8 @@ below as the publication/deployment gate.
|
|
|
21
21
|
Install exact production inputs rather than a moving range or dist-tag:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
npm install --save-exact '@adcp/sdk@15.
|
|
25
|
-
npm view '@adcp/sdk@15.
|
|
24
|
+
npm install --save-exact '@adcp/sdk@15.4.0'
|
|
25
|
+
npm view '@adcp/sdk@15.4.0' dist.integrity
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
### Required and optional peers
|
|
@@ -372,6 +372,14 @@ await processWebhook(sender, payload);
|
|
|
372
372
|
|
|
373
373
|
## Failure Responses
|
|
374
374
|
|
|
375
|
+
Use `WebhookSignatureError.retryable` when deciding whether a failed RFC 9421
|
|
376
|
+
verification can be retried. Capabilities or brand.json discovery failures with
|
|
377
|
+
HTTP 408, 429, or 5xx are retryable, as are DNS failures, timeouts, and connection
|
|
378
|
+
resets. Other HTTP 4xx and SSRF policy refusals remain terminal; a temporary
|
|
379
|
+
discovery failure still requires successful signature verification before
|
|
380
|
+
processing the webhook.
|
|
381
|
+
Retry transient failures with backoff.
|
|
382
|
+
|
|
375
383
|
Use `401` for signature failures. Do not include resolved private IPs, raw
|
|
376
384
|
signature bases, JWKS bodies, secrets, or raw payload bytes in the response.
|
|
377
385
|
Log correlation IDs and typed error codes; keep detailed material in a secure
|