@adcp/sdk 14.0.0-beta.29 → 14.0.0-beta.30
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/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/account.d.mts +14 -1
- package/dist/lib/server/decisioning/account.d.ts +14 -1
- package/dist/lib/server/decisioning/account.js +7 -0
- package/dist/lib/server/decisioning/account.mjs +7 -0
- package/dist/lib/server/decisioning/runtime/from-platform.js +8 -2
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +8 -2
- package/dist/lib/server/reporting-delivery-config.d.mts +16 -0
- package/dist/lib/server/reporting-delivery-config.d.ts +16 -0
- package/dist/lib/server/reporting-delivery-config.js +73 -0
- package/dist/lib/server/reporting-delivery-config.mjs +49 -0
- package/dist/lib/server/responses.js +10 -1
- package/dist/lib/server/responses.mjs +10 -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 +2 -2
- package/docs/llms.txt +2 -2
- package/package.json +1 -1
|
@@ -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-09-
|
|
7
|
+
"synced_at": "2026-09-03T04:08:27.356Z"
|
|
8
8
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
|
-
import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated.mjs';
|
|
19
|
+
import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ReportingDeliveryConfigurationState, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated.mjs';
|
|
20
20
|
import type { ServerPayload } from '../../types/server-payload.mjs';
|
|
21
21
|
import type { NotificationConfig } from '../../types/v3-1-beta/index.mjs';
|
|
22
22
|
import type { CursorPage } from './pagination.mjs';
|
|
@@ -143,6 +143,13 @@ export interface Account<TCtxMeta = Record<string, unknown>> {
|
|
|
143
143
|
* schema description for security constraints.
|
|
144
144
|
*/
|
|
145
145
|
reporting_bucket?: WireAccount['reporting_bucket'];
|
|
146
|
+
/**
|
|
147
|
+
* Resolved, caller-owned durable reporting delivery configurations. These
|
|
148
|
+
* are the secret-free state records returned after the seller validates a
|
|
149
|
+
* `sync_accounts` reporting delivery declaration; they are not a reporting
|
|
150
|
+
* ledger and do not grant access to a destination.
|
|
151
|
+
*/
|
|
152
|
+
reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
|
|
146
153
|
/**
|
|
147
154
|
* Account-level webhook subscriptions registered through `sync_accounts`.
|
|
148
155
|
* Beta 3 adds wholesale product/signal feed webhooks here. The framework
|
|
@@ -731,6 +738,12 @@ export interface SyncAccountsResultRow {
|
|
|
731
738
|
credit_limit?: WireAccount['credit_limit'];
|
|
732
739
|
/** Applied account-level webhook subscriptions; credentials are stripped on emit. */
|
|
733
740
|
notification_configs?: NotificationConfig[];
|
|
741
|
+
/**
|
|
742
|
+
* Resolved, secret-free durable reporting delivery configuration states.
|
|
743
|
+
* The seller returns these after validating the declaration, including for
|
|
744
|
+
* dry-run previews. This is state projection only, not ledger behavior.
|
|
745
|
+
*/
|
|
746
|
+
reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
|
|
734
747
|
/**
|
|
735
748
|
* Caller-specific authorization metadata for this synced account, including
|
|
736
749
|
* downstream grants such as advertiser-account access plus publisher
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
|
-
import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated';
|
|
19
|
+
import type { Account as WireAccount, AccountAuthorization, AccountScope, BillingParty, BrandReference, AccountReference, BusinessEntity, ExtensionObject, ListAccountChangesRequest, ListAccountChangesResponse, ListAccountsRequest, PaymentTerms, ReportingDeliveryConfigurationState, ListAccountsResponse, ReportUsageRequest, ReportUsageResponse, SyncAccountsResponse, SyncAccountsSuccess, SyncGovernanceRequest, SyncGovernanceResponse, SyncGovernanceSuccess, GetAccountFinancialsRequest, GetAccountFinancialsResponse, GetAccountFinancialsSuccess } from '../../types/tools.generated';
|
|
20
20
|
import type { ServerPayload } from '../../types/server-payload';
|
|
21
21
|
import type { NotificationConfig } from '../../types/v3-1-beta';
|
|
22
22
|
import type { CursorPage } from './pagination';
|
|
@@ -143,6 +143,13 @@ export interface Account<TCtxMeta = Record<string, unknown>> {
|
|
|
143
143
|
* schema description for security constraints.
|
|
144
144
|
*/
|
|
145
145
|
reporting_bucket?: WireAccount['reporting_bucket'];
|
|
146
|
+
/**
|
|
147
|
+
* Resolved, caller-owned durable reporting delivery configurations. These
|
|
148
|
+
* are the secret-free state records returned after the seller validates a
|
|
149
|
+
* `sync_accounts` reporting delivery declaration; they are not a reporting
|
|
150
|
+
* ledger and do not grant access to a destination.
|
|
151
|
+
*/
|
|
152
|
+
reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
|
|
146
153
|
/**
|
|
147
154
|
* Account-level webhook subscriptions registered through `sync_accounts`.
|
|
148
155
|
* Beta 3 adds wholesale product/signal feed webhooks here. The framework
|
|
@@ -731,6 +738,12 @@ export interface SyncAccountsResultRow {
|
|
|
731
738
|
credit_limit?: WireAccount['credit_limit'];
|
|
732
739
|
/** Applied account-level webhook subscriptions; credentials are stripped on emit. */
|
|
733
740
|
notification_configs?: NotificationConfig[];
|
|
741
|
+
/**
|
|
742
|
+
* Resolved, secret-free durable reporting delivery configuration states.
|
|
743
|
+
* The seller returns these after validating the declaration, including for
|
|
744
|
+
* dry-run previews. This is state projection only, not ledger behavior.
|
|
745
|
+
*/
|
|
746
|
+
reporting_delivery_configs?: ReportingDeliveryConfigurationState[];
|
|
734
747
|
/**
|
|
735
748
|
* Caller-specific authorization metadata for this synced account, including
|
|
736
749
|
* downstream grants such as advertiser-account access plus publisher
|
|
@@ -26,6 +26,7 @@ __export(account_exports, {
|
|
|
26
26
|
toWireSyncGovernanceRow: () => toWireSyncGovernanceRow
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(account_exports);
|
|
29
|
+
var import_reporting_delivery_config = require('../reporting-delivery-config.js');
|
|
29
30
|
const ACCOUNT_AUTHORIZATION_WIRE_KEYS = [
|
|
30
31
|
"allowed_tasks",
|
|
31
32
|
"field_scopes",
|
|
@@ -68,6 +69,9 @@ function toWireAccount(account) {
|
|
|
68
69
|
wire.governance_agents = [projectGovernanceAgent(account.governance_agents[0])];
|
|
69
70
|
}
|
|
70
71
|
if (account.reporting_bucket !== void 0) wire.reporting_bucket = account.reporting_bucket;
|
|
72
|
+
if (account.reporting_delivery_configs !== void 0) {
|
|
73
|
+
wire.reporting_delivery_configs = (0, import_reporting_delivery_config.projectReportingDeliveryConfigStates)(account.reporting_delivery_configs);
|
|
74
|
+
}
|
|
71
75
|
if (account.notification_configs !== void 0) {
|
|
72
76
|
wire.notification_configs = account.notification_configs.map(projectNotificationConfig);
|
|
73
77
|
}
|
|
@@ -113,6 +117,9 @@ function toWireSyncAccountRow(row) {
|
|
|
113
117
|
if (row.notification_configs !== void 0) {
|
|
114
118
|
wire.notification_configs = row.notification_configs.map(projectNotificationConfig);
|
|
115
119
|
}
|
|
120
|
+
if (row.reporting_delivery_configs !== void 0) {
|
|
121
|
+
wire.reporting_delivery_configs = (0, import_reporting_delivery_config.projectReportingDeliveryConfigStates)(row.reporting_delivery_configs);
|
|
122
|
+
}
|
|
116
123
|
if (row.authorization !== void 0) {
|
|
117
124
|
wire.authorization = projectAccountAuthorization(
|
|
118
125
|
row.authorization
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { projectReportingDeliveryConfigStates } from "../reporting-delivery-config.mjs";
|
|
1
2
|
const ACCOUNT_AUTHORIZATION_WIRE_KEYS = [
|
|
2
3
|
"allowed_tasks",
|
|
3
4
|
"field_scopes",
|
|
@@ -40,6 +41,9 @@ function toWireAccount(account) {
|
|
|
40
41
|
wire.governance_agents = [projectGovernanceAgent(account.governance_agents[0])];
|
|
41
42
|
}
|
|
42
43
|
if (account.reporting_bucket !== void 0) wire.reporting_bucket = account.reporting_bucket;
|
|
44
|
+
if (account.reporting_delivery_configs !== void 0) {
|
|
45
|
+
wire.reporting_delivery_configs = projectReportingDeliveryConfigStates(account.reporting_delivery_configs);
|
|
46
|
+
}
|
|
43
47
|
if (account.notification_configs !== void 0) {
|
|
44
48
|
wire.notification_configs = account.notification_configs.map(projectNotificationConfig);
|
|
45
49
|
}
|
|
@@ -85,6 +89,9 @@ function toWireSyncAccountRow(row) {
|
|
|
85
89
|
if (row.notification_configs !== void 0) {
|
|
86
90
|
wire.notification_configs = row.notification_configs.map(projectNotificationConfig);
|
|
87
91
|
}
|
|
92
|
+
if (row.reporting_delivery_configs !== void 0) {
|
|
93
|
+
wire.reporting_delivery_configs = projectReportingDeliveryConfigStates(row.reporting_delivery_configs);
|
|
94
|
+
}
|
|
88
95
|
if (row.authorization !== void 0) {
|
|
89
96
|
wire.authorization = projectAccountAuthorization(
|
|
90
97
|
row.authorization
|
|
@@ -4775,7 +4775,10 @@ function buildAccountHandlers(platform, ctxFor) {
|
|
|
4775
4775
|
);
|
|
4776
4776
|
}
|
|
4777
4777
|
if (policy.failedRows.size === 0) {
|
|
4778
|
-
return {
|
|
4778
|
+
return {
|
|
4779
|
+
...params.dry_run === true && { dry_run: true },
|
|
4780
|
+
accounts: rows.map(import_account.toWireSyncAccountRow)
|
|
4781
|
+
};
|
|
4779
4782
|
}
|
|
4780
4783
|
const combined = [];
|
|
4781
4784
|
let acceptedIndex = 0;
|
|
@@ -4789,7 +4792,10 @@ function buildAccountHandlers(platform, ctxFor) {
|
|
|
4789
4792
|
acceptedIndex += 1;
|
|
4790
4793
|
}
|
|
4791
4794
|
}
|
|
4792
|
-
return {
|
|
4795
|
+
return {
|
|
4796
|
+
...params.dry_run === true && { dry_run: true },
|
|
4797
|
+
accounts: combined.map(import_account.toWireSyncAccountRow)
|
|
4798
|
+
};
|
|
4793
4799
|
}
|
|
4794
4800
|
);
|
|
4795
4801
|
};
|
|
@@ -4798,7 +4798,10 @@ function buildAccountHandlers(platform, ctxFor) {
|
|
|
4798
4798
|
);
|
|
4799
4799
|
}
|
|
4800
4800
|
if (policy.failedRows.size === 0) {
|
|
4801
|
-
return {
|
|
4801
|
+
return {
|
|
4802
|
+
...params.dry_run === true && { dry_run: true },
|
|
4803
|
+
accounts: rows.map(toWireSyncAccountRow)
|
|
4804
|
+
};
|
|
4802
4805
|
}
|
|
4803
4806
|
const combined = [];
|
|
4804
4807
|
let acceptedIndex = 0;
|
|
@@ -4812,7 +4815,10 @@ function buildAccountHandlers(platform, ctxFor) {
|
|
|
4812
4815
|
acceptedIndex += 1;
|
|
4813
4816
|
}
|
|
4814
4817
|
}
|
|
4815
|
-
return {
|
|
4818
|
+
return {
|
|
4819
|
+
...params.dry_run === true && { dry_run: true },
|
|
4820
|
+
accounts: combined.map(toWireSyncAccountRow)
|
|
4821
|
+
};
|
|
4816
4822
|
}
|
|
4817
4823
|
);
|
|
4818
4824
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response-boundary projection for resolved reporting delivery configuration
|
|
3
|
+
* states. The protocol deliberately makes these records secret-free: they
|
|
4
|
+
* describe a seller's resolved delivery state, not the credentials used to
|
|
5
|
+
* reach the delivery destination.
|
|
6
|
+
*/
|
|
7
|
+
import type { ReportingDeliveryConfigurationState } from '../types/tools.generated.mjs';
|
|
8
|
+
/**
|
|
9
|
+
* Validate resolved reporting delivery states before placing them in a wire
|
|
10
|
+
* response. This remains necessary when an adopter disables whole-response
|
|
11
|
+
* validation in production. The raw protocol schema rejects unknown fields,
|
|
12
|
+
* including credentials accidentally retained by a handler or persistence
|
|
13
|
+
* model, so failing closed prevents those values from reaching a buyer or an
|
|
14
|
+
* idempotency/replay cache.
|
|
15
|
+
*/
|
|
16
|
+
export declare function projectReportingDeliveryConfigStates(states: readonly ReportingDeliveryConfigurationState[]): ReportingDeliveryConfigurationState[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response-boundary projection for resolved reporting delivery configuration
|
|
3
|
+
* states. The protocol deliberately makes these records secret-free: they
|
|
4
|
+
* describe a seller's resolved delivery state, not the credentials used to
|
|
5
|
+
* reach the delivery destination.
|
|
6
|
+
*/
|
|
7
|
+
import type { ReportingDeliveryConfigurationState } from '../types/tools.generated';
|
|
8
|
+
/**
|
|
9
|
+
* Validate resolved reporting delivery states before placing them in a wire
|
|
10
|
+
* response. This remains necessary when an adopter disables whole-response
|
|
11
|
+
* validation in production. The raw protocol schema rejects unknown fields,
|
|
12
|
+
* including credentials accidentally retained by a handler or persistence
|
|
13
|
+
* model, so failing closed prevents those values from reaching a buyer or an
|
|
14
|
+
* idempotency/replay cache.
|
|
15
|
+
*/
|
|
16
|
+
export declare function projectReportingDeliveryConfigStates(states: readonly ReportingDeliveryConfigurationState[]): ReportingDeliveryConfigurationState[];
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var reporting_delivery_config_exports = {};
|
|
20
|
+
__export(reporting_delivery_config_exports, {
|
|
21
|
+
projectReportingDeliveryConfigStates: () => projectReportingDeliveryConfigStates
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(reporting_delivery_config_exports);
|
|
24
|
+
var import_schema_loader = require('../validation/schema-loader.js');
|
|
25
|
+
const MAX_REPORTING_DELIVERY_CONFIGS = 16;
|
|
26
|
+
const CREDENTIAL_LIKE_URL_COMPONENT = /\b(?:access[_-]?token|api[_-]?key|assertion|authorization|bearer|code|credential|password|passwd|secret|session|signature|token|x-amz-credential|x-amz-security-token|x-amz-signature)\b/i;
|
|
27
|
+
function isCredentialLikeUrlComponent(value) {
|
|
28
|
+
try {
|
|
29
|
+
return CREDENTIAL_LIKE_URL_COMPONENT.test(decodeURIComponent(value));
|
|
30
|
+
} catch {
|
|
31
|
+
return CREDENTIAL_LIKE_URL_COMPONENT.test(value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function assertSafeSetupUrl(value) {
|
|
35
|
+
if (typeof value !== "string") return;
|
|
36
|
+
let url;
|
|
37
|
+
try {
|
|
38
|
+
url = new URL(value);
|
|
39
|
+
} catch {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (url.protocol !== "https:" || url.username || url.password) {
|
|
43
|
+
throw new Error("reporting_delivery_configs setup.url must not contain credentials");
|
|
44
|
+
}
|
|
45
|
+
for (const [key, queryValue] of url.searchParams) {
|
|
46
|
+
if (isCredentialLikeUrlComponent(key) || isCredentialLikeUrlComponent(queryValue)) {
|
|
47
|
+
throw new Error("reporting_delivery_configs setup.url must not contain credential-like query parameters");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (url.hash && isCredentialLikeUrlComponent(url.hash.slice(1))) {
|
|
51
|
+
throw new Error("reporting_delivery_configs setup.url must not contain credential-like fragments");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function projectReportingDeliveryConfigStates(states) {
|
|
55
|
+
if (!Array.isArray(states) || states.length > MAX_REPORTING_DELIVERY_CONFIGS) {
|
|
56
|
+
throw new Error(`reporting_delivery_configs must contain at most ${MAX_REPORTING_DELIVERY_CONFIGS} state records`);
|
|
57
|
+
}
|
|
58
|
+
const validateState = (0, import_schema_loader.getSchemaValidatorByRef)("core/reporting-delivery-config-state.json");
|
|
59
|
+
if (!validateState) {
|
|
60
|
+
throw new Error("Bundled schema core/reporting-delivery-config-state.json is unavailable");
|
|
61
|
+
}
|
|
62
|
+
for (const state of states) {
|
|
63
|
+
if (!validateState(state)) {
|
|
64
|
+
throw new Error("reporting_delivery_configs contains a state that is not a valid secret-free protocol record");
|
|
65
|
+
}
|
|
66
|
+
assertSafeSetupUrl(state.setup?.url);
|
|
67
|
+
}
|
|
68
|
+
return [...states];
|
|
69
|
+
}
|
|
70
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
71
|
+
0 && (module.exports = {
|
|
72
|
+
projectReportingDeliveryConfigStates
|
|
73
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { getSchemaValidatorByRef } from "../validation/schema-loader.mjs";
|
|
2
|
+
const MAX_REPORTING_DELIVERY_CONFIGS = 16;
|
|
3
|
+
const CREDENTIAL_LIKE_URL_COMPONENT = /\b(?:access[_-]?token|api[_-]?key|assertion|authorization|bearer|code|credential|password|passwd|secret|session|signature|token|x-amz-credential|x-amz-security-token|x-amz-signature)\b/i;
|
|
4
|
+
function isCredentialLikeUrlComponent(value) {
|
|
5
|
+
try {
|
|
6
|
+
return CREDENTIAL_LIKE_URL_COMPONENT.test(decodeURIComponent(value));
|
|
7
|
+
} catch {
|
|
8
|
+
return CREDENTIAL_LIKE_URL_COMPONENT.test(value);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function assertSafeSetupUrl(value) {
|
|
12
|
+
if (typeof value !== "string") return;
|
|
13
|
+
let url;
|
|
14
|
+
try {
|
|
15
|
+
url = new URL(value);
|
|
16
|
+
} catch {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (url.protocol !== "https:" || url.username || url.password) {
|
|
20
|
+
throw new Error("reporting_delivery_configs setup.url must not contain credentials");
|
|
21
|
+
}
|
|
22
|
+
for (const [key, queryValue] of url.searchParams) {
|
|
23
|
+
if (isCredentialLikeUrlComponent(key) || isCredentialLikeUrlComponent(queryValue)) {
|
|
24
|
+
throw new Error("reporting_delivery_configs setup.url must not contain credential-like query parameters");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (url.hash && isCredentialLikeUrlComponent(url.hash.slice(1))) {
|
|
28
|
+
throw new Error("reporting_delivery_configs setup.url must not contain credential-like fragments");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function projectReportingDeliveryConfigStates(states) {
|
|
32
|
+
if (!Array.isArray(states) || states.length > MAX_REPORTING_DELIVERY_CONFIGS) {
|
|
33
|
+
throw new Error(`reporting_delivery_configs must contain at most ${MAX_REPORTING_DELIVERY_CONFIGS} state records`);
|
|
34
|
+
}
|
|
35
|
+
const validateState = getSchemaValidatorByRef("core/reporting-delivery-config-state.json");
|
|
36
|
+
if (!validateState) {
|
|
37
|
+
throw new Error("Bundled schema core/reporting-delivery-config-state.json is unavailable");
|
|
38
|
+
}
|
|
39
|
+
for (const state of states) {
|
|
40
|
+
if (!validateState(state)) {
|
|
41
|
+
throw new Error("reporting_delivery_configs contains a state that is not a valid secret-free protocol record");
|
|
42
|
+
}
|
|
43
|
+
assertSafeSetupUrl(state.setup?.url);
|
|
44
|
+
}
|
|
45
|
+
return [...states];
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
projectReportingDeliveryConfigStates
|
|
49
|
+
};
|
|
@@ -59,6 +59,7 @@ __export(responses_exports, {
|
|
|
59
59
|
});
|
|
60
60
|
module.exports = __toCommonJS(responses_exports);
|
|
61
61
|
var import_media_buy_helpers = require('./media-buy-helpers.js');
|
|
62
|
+
var import_reporting_delivery_config = require('./reporting-delivery-config.js');
|
|
62
63
|
const explicitResponseSummaries = /* @__PURE__ */ new WeakMap();
|
|
63
64
|
function _getExplicitResponseSummary(response) {
|
|
64
65
|
return explicitResponseSummaries.get(response);
|
|
@@ -123,7 +124,15 @@ function stripBusinessEntityBank(row, key) {
|
|
|
123
124
|
return stripped;
|
|
124
125
|
}
|
|
125
126
|
function stripAccountWriteOnlyFields(account) {
|
|
126
|
-
|
|
127
|
+
const stripped = stripBusinessEntityBank(stripNotificationConfigSecrets(account), "billing_entity");
|
|
128
|
+
const reportingDeliveryConfigs = stripped.reporting_delivery_configs;
|
|
129
|
+
if (reportingDeliveryConfigs === void 0) return stripped;
|
|
130
|
+
return {
|
|
131
|
+
...stripped,
|
|
132
|
+
reporting_delivery_configs: (0, import_reporting_delivery_config.projectReportingDeliveryConfigStates)(
|
|
133
|
+
reportingDeliveryConfigs
|
|
134
|
+
)
|
|
135
|
+
};
|
|
127
136
|
}
|
|
128
137
|
function stripAccountsWriteOnlyFields(data) {
|
|
129
138
|
if (!Array.isArray(data.accounts)) return data;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { validActionsForStatus } from "./media-buy-helpers.mjs";
|
|
2
|
+
import { projectReportingDeliveryConfigStates } from "./reporting-delivery-config.mjs";
|
|
2
3
|
const explicitResponseSummaries = /* @__PURE__ */ new WeakMap();
|
|
3
4
|
function _getExplicitResponseSummary(response) {
|
|
4
5
|
return explicitResponseSummaries.get(response);
|
|
@@ -63,7 +64,15 @@ function stripBusinessEntityBank(row, key) {
|
|
|
63
64
|
return stripped;
|
|
64
65
|
}
|
|
65
66
|
function stripAccountWriteOnlyFields(account) {
|
|
66
|
-
|
|
67
|
+
const stripped = stripBusinessEntityBank(stripNotificationConfigSecrets(account), "billing_entity");
|
|
68
|
+
const reportingDeliveryConfigs = stripped.reporting_delivery_configs;
|
|
69
|
+
if (reportingDeliveryConfigs === void 0) return stripped;
|
|
70
|
+
return {
|
|
71
|
+
...stripped,
|
|
72
|
+
reporting_delivery_configs: projectReportingDeliveryConfigStates(
|
|
73
|
+
reportingDeliveryConfigs
|
|
74
|
+
)
|
|
75
|
+
};
|
|
67
76
|
}
|
|
68
77
|
function stripAccountsWriteOnlyFields(data) {
|
|
69
78
|
if (!Array.isArray(data.accounts)) return data;
|
|
@@ -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 = "14.0.0-beta.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-beta.30";
|
|
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 = "14.0.0-beta.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-beta.30";
|
|
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 = "14.0.0-beta.
|
|
4
|
+
export declare const LIBRARY_VERSION = "14.0.0-beta.30";
|
|
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: "14.0.0-beta.
|
|
36
|
+
readonly library: "14.0.0-beta.30";
|
|
37
37
|
readonly adcp: "3.2.0-beta.11";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0-beta.1", "3.0-beta.1", "3.0-beta", "3.0.0-beta.3", "3.0-beta.3", "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.2.0-beta.11", "3.2-beta.11"];
|
|
39
|
-
readonly generatedAt: "2026-09-
|
|
39
|
+
readonly generatedAt: "2026-09-03T03:53:17.027Z";
|
|
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 = "14.0.0-beta.
|
|
4
|
+
export declare const LIBRARY_VERSION = "14.0.0-beta.30";
|
|
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: "14.0.0-beta.
|
|
36
|
+
readonly library: "14.0.0-beta.30";
|
|
37
37
|
readonly adcp: "3.2.0-beta.11";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0-beta.1", "3.0-beta.1", "3.0-beta", "3.0.0-beta.3", "3.0-beta.3", "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.2.0-beta.11", "3.2-beta.11"];
|
|
39
|
-
readonly generatedAt: "2026-09-
|
|
39
|
+
readonly generatedAt: "2026-09-03T03:53:17.027Z";
|
|
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 = "14.0.0-beta.
|
|
34
|
+
const LIBRARY_VERSION = "14.0.0-beta.30";
|
|
35
35
|
const ADCP_VERSION = "3.2.0-beta.11";
|
|
36
36
|
const ADCP_MAJOR_VERSION = 3;
|
|
37
37
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -94,10 +94,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
94
94
|
"3.2-beta.11"
|
|
95
95
|
];
|
|
96
96
|
const VERSION_INFO = {
|
|
97
|
-
library: "14.0.0-beta.
|
|
97
|
+
library: "14.0.0-beta.30",
|
|
98
98
|
adcp: "3.2.0-beta.11",
|
|
99
99
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
100
|
-
generatedAt: "2026-09-
|
|
100
|
+
generatedAt: "2026-09-03T03:53:17.027Z"
|
|
101
101
|
};
|
|
102
102
|
function getAdcpVersion() {
|
|
103
103
|
return ADCP_VERSION;
|
package/dist/lib/version.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const LIBRARY_VERSION = "14.0.0-beta.
|
|
1
|
+
const LIBRARY_VERSION = "14.0.0-beta.30";
|
|
2
2
|
const ADCP_VERSION = "3.2.0-beta.11";
|
|
3
3
|
const ADCP_MAJOR_VERSION = 3;
|
|
4
4
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -61,10 +61,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
61
61
|
"3.2-beta.11"
|
|
62
62
|
];
|
|
63
63
|
const VERSION_INFO = {
|
|
64
|
-
library: "14.0.0-beta.
|
|
64
|
+
library: "14.0.0-beta.30",
|
|
65
65
|
adcp: "3.2.0-beta.11",
|
|
66
66
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
67
|
-
generatedAt: "2026-09-
|
|
67
|
+
generatedAt: "2026-09-03T03:53:17.027Z"
|
|
68
68
|
};
|
|
69
69
|
function getAdcpVersion() {
|
|
70
70
|
return ADCP_VERSION;
|
package/docs/TYPE-SUMMARY.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AdCP Type Summary
|
|
2
2
|
|
|
3
|
-
> Generated at: 2026-09-
|
|
4
|
-
> @adcp/sdk v14.0.0-beta.
|
|
3
|
+
> Generated at: 2026-09-03
|
|
4
|
+
> @adcp/sdk v14.0.0-beta.30
|
|
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
|
-
> Generated at: 2026-09-
|
|
4
|
-
> Library: @adcp/sdk v14.0.0-beta.
|
|
3
|
+
> Generated at: 2026-09-03
|
|
4
|
+
> Library: @adcp/sdk v14.0.0-beta.30
|
|
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.
|