@adcp/sdk 16.5.0 → 16.6.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/adapters/version/3.0/brand-fields.d.mts +7 -1
- package/dist/lib/adapters/version/3.0/brand-fields.d.ts +7 -1
- package/dist/lib/adapters/version/3.0/brand-fields.js +139 -3
- package/dist/lib/adapters/version/3.0/brand-fields.mjs +136 -2
- package/dist/lib/adapters/version/3.0/index.js +6 -0
- package/dist/lib/adapters/version/3.0/index.mjs +7 -1
- package/dist/lib/adapters/version/3.1/bidding.js +1 -1
- package/dist/lib/adapters/version/3.1/bidding.mjs +1 -1
- package/dist/lib/adapters/version/types.d.mts +5 -0
- package/dist/lib/adapters/version/types.d.ts +5 -0
- package/dist/lib/canonical-references/index.js +2 -0
- package/dist/lib/canonical-references/index.mjs +2 -0
- package/dist/lib/client/account-changes.d.mts +3 -1
- package/dist/lib/client/account-changes.d.ts +3 -1
- package/dist/lib/client/account-changes.js +22 -2
- package/dist/lib/client/account-changes.mjs +22 -2
- package/dist/lib/conformance/oracle.js +3 -2
- package/dist/lib/conformance/oracle.mjs +3 -2
- package/dist/lib/core/AgentClient.d.mts +165 -1
- package/dist/lib/core/AgentClient.d.ts +165 -1
- package/dist/lib/core/AgentClient.js +446 -8
- package/dist/lib/core/AgentClient.mjs +446 -8
- package/dist/lib/core/ConversationTypes.d.mts +8 -0
- package/dist/lib/core/ConversationTypes.d.ts +8 -0
- package/dist/lib/core/ProtocolResponseParser.d.mts +1 -1
- package/dist/lib/core/ProtocolResponseParser.d.ts +1 -1
- package/dist/lib/core/ProtocolResponseParser.js +28 -18
- package/dist/lib/core/ProtocolResponseParser.mjs +11 -1
- package/dist/lib/core/ResponseValidator.js +1 -1
- package/dist/lib/core/ResponseValidator.mjs +1 -1
- package/dist/lib/core/SingleAgentClient.d.mts +116 -6
- package/dist/lib/core/SingleAgentClient.d.ts +116 -6
- package/dist/lib/core/SingleAgentClient.js +556 -84
- package/dist/lib/core/SingleAgentClient.mjs +545 -72
- package/dist/lib/core/TaskExecutor.d.mts +7 -0
- package/dist/lib/core/TaskExecutor.d.ts +7 -0
- package/dist/lib/core/TaskExecutor.js +23 -8
- package/dist/lib/core/TaskExecutor.mjs +23 -8
- package/dist/lib/core/task-status.d.mts +2 -0
- package/dist/lib/core/task-status.d.ts +2 -0
- package/dist/lib/core/task-status.js +11 -2
- package/dist/lib/core/task-status.mjs +9 -1
- package/dist/lib/errors/index.d.mts +22 -0
- package/dist/lib/errors/index.d.ts +22 -0
- package/dist/lib/errors/index.js +43 -0
- package/dist/lib/errors/index.mjs +42 -0
- package/dist/lib/identity-3.3/trust.d.mts +1 -4
- package/dist/lib/identity-3.3/trust.d.ts +1 -4
- package/dist/lib/identity-3.3/trust.js +34 -21
- package/dist/lib/identity-3.3/trust.mjs +34 -21
- package/dist/lib/identity-3.3/validation.js +5 -3
- package/dist/lib/identity-3.3/validation.mjs +6 -4
- package/dist/lib/index.d.mts +8 -54
- package/dist/lib/index.d.ts +8 -54
- package/dist/lib/index.js +15 -0
- package/dist/lib/index.mjs +11 -0
- package/dist/lib/media-buy/action-assessment.js +29 -3
- package/dist/lib/media-buy/action-assessment.mjs +32 -4
- package/dist/lib/media-buy/action-contracts.d.mts +3 -0
- package/dist/lib/media-buy/action-contracts.d.ts +3 -0
- package/dist/lib/media-buy/action-contracts.js +24 -1
- package/dist/lib/media-buy/action-contracts.mjs +22 -1
- package/dist/lib/media-buy/compatibility.js +6 -1
- package/dist/lib/media-buy/compatibility.mjs +6 -1
- package/dist/lib/media-buy/preflight.js +1 -1
- package/dist/lib/media-buy/preflight.mjs +3 -2
- package/dist/lib/media-buy/types.d.mts +6 -1
- package/dist/lib/media-buy/types.d.ts +6 -1
- package/dist/lib/protocols/mcp-modern.d.mts +2 -0
- package/dist/lib/protocols/mcp-modern.d.ts +2 -0
- package/dist/lib/protocols/mcp-modern.js +31 -5
- package/dist/lib/protocols/mcp-modern.mjs +31 -5
- package/dist/lib/protocols/mcp-scope.d.mts +6 -1
- package/dist/lib/protocols/mcp-scope.d.ts +6 -1
- package/dist/lib/protocols/mcp-scope.js +25 -3
- package/dist/lib/protocols/mcp-scope.mjs +24 -3
- package/dist/lib/protocols/mcp.js +12 -6
- package/dist/lib/protocols/mcp.mjs +13 -6
- package/dist/lib/reporting/inspection.js +1 -0
- package/dist/lib/reporting/inspection.mjs +1 -0
- package/dist/lib/schemas/browser.d.mts +2 -0
- package/dist/lib/schemas/browser.d.ts +2 -0
- package/dist/lib/schemas/browser.js +3 -0
- package/dist/lib/schemas/browser.mjs +2 -0
- package/dist/lib/schemas/index.d.mts +5 -2
- package/dist/lib/schemas/index.d.ts +5 -2
- package/dist/lib/schemas/index.js +5 -0
- package/dist/lib/schemas/index.mjs +4 -0
- package/dist/lib/server/account-response-identity.d.mts +17 -0
- package/dist/lib/server/account-response-identity.d.ts +17 -0
- package/dist/lib/server/account-response-identity.js +52 -0
- package/dist/lib/server/account-response-identity.mjs +28 -0
- package/dist/lib/server/account-sync-contract.js +1 -0
- package/dist/lib/server/account-sync-contract.mjs +1 -0
- package/dist/lib/server/create-adcp-server.js +32 -19
- package/dist/lib/server/create-adcp-server.mjs +36 -12
- package/dist/lib/server/decisioning/account.d.mts +13 -6
- package/dist/lib/server/decisioning/account.d.ts +13 -6
- package/dist/lib/server/decisioning/account.js +37 -15
- package/dist/lib/server/decisioning/account.mjs +37 -15
- package/dist/lib/server/decisioning/runtime/from-platform.d.mts +5 -5
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +5 -5
- package/dist/lib/server/decisioning/runtime/from-platform.js +6 -6
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +6 -6
- package/dist/lib/server/index.d.mts +1 -1
- package/dist/lib/server/index.d.ts +1 -1
- package/dist/lib/server/index.js +2 -0
- package/dist/lib/server/index.mjs +2 -0
- package/dist/lib/server/media-buy-action-resolver.d.mts +3 -0
- package/dist/lib/server/media-buy-action-resolver.d.ts +3 -0
- package/dist/lib/server/media-buy-action-resolver.js +32 -0
- package/dist/lib/server/media-buy-action-resolver.mjs +32 -0
- package/dist/lib/server/media-buy-store.d.mts +26 -12
- package/dist/lib/server/media-buy-store.d.ts +26 -12
- package/dist/lib/server/media-buy-store.js +69 -21
- package/dist/lib/server/media-buy-store.mjs +69 -21
- package/dist/lib/server/responses.js +9 -1
- package/dist/lib/server/responses.mjs +9 -1
- package/dist/lib/server/state-machine.d.mts +10 -11
- package/dist/lib/server/state-machine.d.ts +10 -11
- package/dist/lib/server/state-machine.js +20 -5
- package/dist/lib/server/state-machine.mjs +19 -5
- package/dist/lib/signing/agent-fetch.d.mts +1 -1
- package/dist/lib/signing/agent-fetch.d.ts +1 -1
- package/dist/lib/signing/agent-fetch.js +3 -3
- package/dist/lib/signing/agent-fetch.mjs +3 -3
- package/dist/lib/testing/client.d.mts +1 -0
- package/dist/lib/testing/client.d.ts +1 -0
- package/dist/lib/testing/client.js +6 -5
- package/dist/lib/testing/client.mjs +6 -5
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.js +60 -14
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.mjs +60 -14
- package/dist/lib/testing/storyboard/compliance.d.mts +2 -5
- package/dist/lib/testing/storyboard/compliance.d.ts +2 -5
- package/dist/lib/testing/storyboard/compliance.js +62 -13
- package/dist/lib/testing/storyboard/compliance.mjs +63 -14
- package/dist/lib/testing/storyboard/context.d.mts +13 -3
- package/dist/lib/testing/storyboard/context.d.ts +13 -3
- package/dist/lib/testing/storyboard/context.js +15 -10
- package/dist/lib/testing/storyboard/context.mjs +15 -10
- package/dist/lib/testing/storyboard/default-invariants.js +10 -8
- package/dist/lib/testing/storyboard/default-invariants.mjs +11 -9
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.mts +2 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts +2 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.js +11 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.mjs +10 -0
- package/dist/lib/testing/storyboard/runner.js +23 -10
- package/dist/lib/testing/storyboard/runner.mjs +23 -10
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +4 -1
- package/dist/lib/testing/storyboard/validations.mjs +4 -1
- package/dist/lib/testing/test-controller.js +3 -0
- package/dist/lib/testing/test-controller.mjs +3 -0
- package/dist/lib/types/asset-instances.d.mts +1 -1
- package/dist/lib/types/asset-instances.d.ts +1 -1
- package/dist/lib/types/index.d.mts +5 -0
- package/dist/lib/types/index.d.ts +5 -0
- package/dist/lib/types/index.js +6 -1
- package/dist/lib/types/index.mjs +4 -1
- package/dist/lib/types/inline-enums.generated.d.mts +30 -4
- package/dist/lib/types/inline-enums.generated.d.ts +30 -4
- package/dist/lib/types/inline-enums.generated.js +41 -2
- package/dist/lib/types/inline-enums.generated.mjs +28 -2
- package/dist/lib/types/media-buy-delivery-report.d.mts +4 -0
- package/dist/lib/types/media-buy-delivery-report.d.ts +4 -0
- package/dist/lib/types/media-buy-delivery-report.js +16 -0
- package/dist/lib/types/media-buy-delivery-report.mjs +0 -0
- package/dist/lib/types/schemas.generated.d.ts +20 -69
- package/dist/lib/types/schemas.generated.js +29 -46
- package/dist/lib/types/schemas.generated.mjs +29 -46
- package/dist/lib/types/targeting-keys.generated.d.mts +4 -0
- package/dist/lib/types/targeting-keys.generated.d.ts +4 -0
- package/dist/lib/types/targeting-keys.generated.js +105 -0
- package/dist/lib/types/targeting-keys.generated.mjs +80 -0
- package/dist/lib/utils/adcp-version-config.js +5 -2
- package/dist/lib/utils/adcp-version-config.mjs +5 -2
- package/dist/lib/utils/envelope-status-compat.d.mts +18 -1
- package/dist/lib/utils/envelope-status-compat.d.ts +18 -1
- package/dist/lib/utils/envelope-status-compat.js +11 -5
- package/dist/lib/utils/envelope-status-compat.mjs +11 -5
- package/dist/lib/utils/response-unwrapper.js +18 -10
- package/dist/lib/utils/response-unwrapper.mjs +18 -10
- package/dist/lib/v2/format-schema/resolver.js +1 -1
- package/dist/lib/v2/format-schema/resolver.mjs +1 -1
- package/dist/lib/v2/projection/creative-delivery.js +123 -30
- package/dist/lib/v2/projection/creative-delivery.mjs +127 -30
- package/dist/lib/v2/projection/index.d.mts +1 -0
- package/dist/lib/v2/projection/index.d.ts +1 -0
- package/dist/lib/v2/projection/index.js +3 -0
- package/dist/lib/v2/projection/index.mjs +2 -0
- package/dist/lib/v2/projection/legacy-metadata.d.mts +19 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +19 -0
- package/dist/lib/v2/projection/legacy-metadata.js +91 -0
- package/dist/lib/v2/projection/legacy-metadata.mjs +86 -0
- package/dist/lib/validation/compact-schema.d.mts +27 -0
- package/dist/lib/validation/compact-schema.d.ts +27 -0
- package/dist/lib/validation/compact-schema.js +276 -0
- package/dist/lib/validation/compact-schema.mjs +250 -0
- package/dist/lib/validation/media-buy-delivery-report.d.mts +8 -0
- package/dist/lib/validation/media-buy-delivery-report.d.ts +8 -0
- package/dist/lib/validation/media-buy-delivery-report.js +31 -0
- package/dist/lib/validation/media-buy-delivery-report.mjs +7 -0
- package/dist/lib/validation/schema-diagnostic-origins.d.mts +21 -0
- package/dist/lib/validation/schema-diagnostic-origins.d.ts +21 -0
- package/dist/lib/validation/schema-diagnostic-origins.js +193 -0
- package/dist/lib/validation/schema-diagnostic-origins.mjs +169 -0
- package/dist/lib/validation/schema-loader.js +86 -16
- package/dist/lib/validation/schema-loader.mjs +82 -16
- package/dist/lib/validation/schema-validator.d.mts +10 -19
- package/dist/lib/validation/schema-validator.d.ts +10 -19
- package/dist/lib/validation/schema-validator.js +136 -43
- package/dist/lib/validation/schema-validator.mjs +140 -44
- 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/dist/lib/webhooks/index.d.mts +3 -0
- package/dist/lib/webhooks/index.d.ts +3 -0
- package/dist/lib/webhooks/index.js +3 -0
- package/dist/lib/webhooks/index.mjs +2 -0
- package/dist/lib/webhooks/media-buy-delivery.d.mts +43 -0
- package/dist/lib/webhooks/media-buy-delivery.d.ts +43 -0
- package/dist/lib/webhooks/media-buy-delivery.js +119 -0
- package/dist/lib/webhooks/media-buy-delivery.mjs +94 -0
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/guides/BUILD-AN-AGENT.md +9 -1
- package/docs/guides/DELIVERY-WEBHOOK-PARSING.md +135 -0
- package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +15 -0
- package/docs/guides/TYPED-CLIENT-TOOLS.md +49 -0
- package/docs/llms.txt +3 -3
- package/docs/migration-14.x-rc-worksheet.md +4 -4
- package/docs/migration-6.6-to-6.7.md +14 -0
- package/docs/migration-account-change-feed.md +19 -0
- package/docs/releases/sdk-16.6-adoption-fixes.md +33 -0
- package/package.json +2 -2
|
@@ -59,14 +59,19 @@ function asRecord(value) {
|
|
|
59
59
|
function readMediaBuyStatus(record) {
|
|
60
60
|
return (0, import_media_buy_status.getAuthoritativeMediaBuyStatus)(record);
|
|
61
61
|
}
|
|
62
|
-
function readMediaBuyFields(data) {
|
|
62
|
+
function readMediaBuyFields(data, adcpVersion) {
|
|
63
63
|
const outer = asRecord(data);
|
|
64
64
|
const nested = asRecord(outer?.media_buy);
|
|
65
65
|
return {
|
|
66
66
|
mediaBuyId: nested?.media_buy_id ?? outer?.media_buy_id,
|
|
67
|
-
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(outer)
|
|
67
|
+
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(withRequestedVersion(outer, adcpVersion))
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
|
+
function withRequestedVersion(record, adcpVersion) {
|
|
71
|
+
if (!record || !adcpVersion) return record;
|
|
72
|
+
if (typeof record.adcp_version === "string" || typeof record.adcp_major_version === "number") return record;
|
|
73
|
+
return { ...record, adcp_version: adcpVersion };
|
|
74
|
+
}
|
|
70
75
|
function readProposalFields(proposal) {
|
|
71
76
|
if (!proposal) return {};
|
|
72
77
|
const extracted = {};
|
|
@@ -181,15 +186,15 @@ const CONTEXT_EXTRACTORS = {
|
|
|
181
186
|
control_media_buy(data) {
|
|
182
187
|
return readCompactMediaBuyFields(data);
|
|
183
188
|
},
|
|
184
|
-
create_media_buy(data) {
|
|
185
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
189
|
+
create_media_buy(data, adcpVersion) {
|
|
190
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
186
191
|
const extracted = {};
|
|
187
192
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
188
193
|
if (status) extracted.media_buy_status = status;
|
|
189
194
|
return extracted;
|
|
190
195
|
},
|
|
191
|
-
update_media_buy(data) {
|
|
192
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
196
|
+
update_media_buy(data, adcpVersion) {
|
|
197
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
193
198
|
const extracted = {};
|
|
194
199
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
195
200
|
if (status) extracted.media_buy_status = status;
|
|
@@ -381,11 +386,11 @@ const CONTEXT_EXTRACTORS = {
|
|
|
381
386
|
return extracted;
|
|
382
387
|
}
|
|
383
388
|
};
|
|
384
|
-
function extractContext(taskName, data) {
|
|
389
|
+
function extractContext(taskName, data, adcpVersion) {
|
|
385
390
|
const extractor = CONTEXT_EXTRACTORS[taskName];
|
|
386
391
|
if (!extractor) return {};
|
|
387
392
|
try {
|
|
388
|
-
return extractor(data);
|
|
393
|
+
return extractor(data, adcpVersion);
|
|
389
394
|
} catch {
|
|
390
395
|
return {};
|
|
391
396
|
}
|
|
@@ -482,8 +487,8 @@ function applyContextOutputs(data, outputs) {
|
|
|
482
487
|
}
|
|
483
488
|
return result;
|
|
484
489
|
}
|
|
485
|
-
function extractContextWithProvenance(taskName, data, stepId) {
|
|
486
|
-
const values = extractContext(taskName, data);
|
|
490
|
+
function extractContextWithProvenance(taskName, data, stepId, adcpVersion) {
|
|
491
|
+
const values = extractContext(taskName, data, adcpVersion);
|
|
487
492
|
const clearGroups = (() => {
|
|
488
493
|
const response = asRecord(data);
|
|
489
494
|
switch (taskName) {
|
|
@@ -26,14 +26,19 @@ function asRecord(value) {
|
|
|
26
26
|
function readMediaBuyStatus(record) {
|
|
27
27
|
return getAuthoritativeMediaBuyStatus(record);
|
|
28
28
|
}
|
|
29
|
-
function readMediaBuyFields(data) {
|
|
29
|
+
function readMediaBuyFields(data, adcpVersion) {
|
|
30
30
|
const outer = asRecord(data);
|
|
31
31
|
const nested = asRecord(outer?.media_buy);
|
|
32
32
|
return {
|
|
33
33
|
mediaBuyId: nested?.media_buy_id ?? outer?.media_buy_id,
|
|
34
|
-
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(outer)
|
|
34
|
+
status: readMediaBuyStatus(nested) ?? readMediaBuyStatus(withRequestedVersion(outer, adcpVersion))
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
function withRequestedVersion(record, adcpVersion) {
|
|
38
|
+
if (!record || !adcpVersion) return record;
|
|
39
|
+
if (typeof record.adcp_version === "string" || typeof record.adcp_major_version === "number") return record;
|
|
40
|
+
return { ...record, adcp_version: adcpVersion };
|
|
41
|
+
}
|
|
37
42
|
function readProposalFields(proposal) {
|
|
38
43
|
if (!proposal) return {};
|
|
39
44
|
const extracted = {};
|
|
@@ -148,15 +153,15 @@ const CONTEXT_EXTRACTORS = {
|
|
|
148
153
|
control_media_buy(data) {
|
|
149
154
|
return readCompactMediaBuyFields(data);
|
|
150
155
|
},
|
|
151
|
-
create_media_buy(data) {
|
|
152
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
156
|
+
create_media_buy(data, adcpVersion) {
|
|
157
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
153
158
|
const extracted = {};
|
|
154
159
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
155
160
|
if (status) extracted.media_buy_status = status;
|
|
156
161
|
return extracted;
|
|
157
162
|
},
|
|
158
|
-
update_media_buy(data) {
|
|
159
|
-
const { mediaBuyId, status } = readMediaBuyFields(data);
|
|
163
|
+
update_media_buy(data, adcpVersion) {
|
|
164
|
+
const { mediaBuyId, status } = readMediaBuyFields(data, adcpVersion);
|
|
160
165
|
const extracted = {};
|
|
161
166
|
if (mediaBuyId) extracted.media_buy_id = mediaBuyId;
|
|
162
167
|
if (status) extracted.media_buy_status = status;
|
|
@@ -348,11 +353,11 @@ const CONTEXT_EXTRACTORS = {
|
|
|
348
353
|
return extracted;
|
|
349
354
|
}
|
|
350
355
|
};
|
|
351
|
-
function extractContext(taskName, data) {
|
|
356
|
+
function extractContext(taskName, data, adcpVersion) {
|
|
352
357
|
const extractor = CONTEXT_EXTRACTORS[taskName];
|
|
353
358
|
if (!extractor) return {};
|
|
354
359
|
try {
|
|
355
|
-
return extractor(data);
|
|
360
|
+
return extractor(data, adcpVersion);
|
|
356
361
|
} catch {
|
|
357
362
|
return {};
|
|
358
363
|
}
|
|
@@ -449,8 +454,8 @@ function applyContextOutputs(data, outputs) {
|
|
|
449
454
|
}
|
|
450
455
|
return result;
|
|
451
456
|
}
|
|
452
|
-
function extractContextWithProvenance(taskName, data, stepId) {
|
|
453
|
-
const values = extractContext(taskName, data);
|
|
457
|
+
function extractContextWithProvenance(taskName, data, stepId, adcpVersion) {
|
|
458
|
+
const values = extractContext(taskName, data, adcpVersion);
|
|
454
459
|
const clearGroups = (() => {
|
|
455
460
|
const response = asRecord(data);
|
|
456
461
|
switch (taskName) {
|
|
@@ -332,10 +332,12 @@ function registerDefaultInvariants() {
|
|
|
332
332
|
function buildEnumSchemaUrl(enumFile) {
|
|
333
333
|
return `${SCHEMA_URL_BASE}/schemas/${import_version.ADCP_VERSION}/enums/${enumFile}`;
|
|
334
334
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
335
|
+
function mediaBuyTransitions(adcpVersion) {
|
|
336
|
+
return {
|
|
337
|
+
transitions: (0, import_state_machine.getMediaBuyTransitions)(adcpVersion),
|
|
338
|
+
enumFile: "media-buy-status.json"
|
|
339
|
+
};
|
|
340
|
+
}
|
|
339
341
|
const CREATIVE_ASSET_TRANSITIONS = {
|
|
340
342
|
transitions: import_state_machine.CREATIVE_ASSET_TRANSITIONS,
|
|
341
343
|
enumFile: "creative-status.json"
|
|
@@ -432,8 +434,8 @@ function registerDefaultInvariants() {
|
|
|
432
434
|
["update_media_buy", extractMediaBuy],
|
|
433
435
|
[
|
|
434
436
|
"get_media_buys",
|
|
435
|
-
(out, body) => {
|
|
436
|
-
for (const buy of asArray(body.media_buys)) if (isObject(buy)) pushMediaBuy(out, buy);
|
|
437
|
+
(out, body, version) => {
|
|
438
|
+
for (const buy of asArray(body.media_buys)) if (isObject(buy)) pushMediaBuy(out, buy, false, version);
|
|
437
439
|
}
|
|
438
440
|
],
|
|
439
441
|
["sync_creatives", extractCreatives],
|
|
@@ -462,7 +464,7 @@ function registerDefaultInvariants() {
|
|
|
462
464
|
const extract = statusExtractors.get(task);
|
|
463
465
|
if (!extract || task === "get_products" && asArray(body.proposals).length === 0) return void 0;
|
|
464
466
|
const observations = [];
|
|
465
|
-
extract(observations, body, adcpVersion);
|
|
467
|
+
extract(observations, body, asString(body.adcp_version) ?? adcpVersion);
|
|
466
468
|
return observations;
|
|
467
469
|
}
|
|
468
470
|
function pushMediaBuy(obs, record, enveloped = false, adcpVersion = import_version.ADCP_VERSION) {
|
|
@@ -473,7 +475,7 @@ function registerDefaultInvariants() {
|
|
|
473
475
|
resource_type: "media_buy",
|
|
474
476
|
resource_id: id,
|
|
475
477
|
status,
|
|
476
|
-
graph:
|
|
478
|
+
graph: mediaBuyTransitions(adcpVersion)
|
|
477
479
|
});
|
|
478
480
|
}
|
|
479
481
|
for (const pkg of asArray(record.packages)) {
|
|
@@ -4,7 +4,7 @@ import { STANDARD_ERROR_CODES } from "../../types/error-codes.mjs";
|
|
|
4
4
|
import { getAuthoritativeMediaBuyStatus } from "../../utils/media-buy-status.mjs";
|
|
5
5
|
import {
|
|
6
6
|
CREATIVE_ASSET_TRANSITIONS as CREATIVE_ASSET_TRANSITIONS_TYPED,
|
|
7
|
-
|
|
7
|
+
getMediaBuyTransitions
|
|
8
8
|
} from "../../server/state-machine.mjs";
|
|
9
9
|
import { registerAssertion } from "./assertions.mjs";
|
|
10
10
|
import { accountSyncContractAssertion } from "./account-sync-contract.mjs";
|
|
@@ -312,10 +312,12 @@ function registerDefaultInvariants() {
|
|
|
312
312
|
function buildEnumSchemaUrl(enumFile) {
|
|
313
313
|
return `${SCHEMA_URL_BASE}/schemas/${ADCP_VERSION}/enums/${enumFile}`;
|
|
314
314
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
315
|
+
function mediaBuyTransitions(adcpVersion) {
|
|
316
|
+
return {
|
|
317
|
+
transitions: getMediaBuyTransitions(adcpVersion),
|
|
318
|
+
enumFile: "media-buy-status.json"
|
|
319
|
+
};
|
|
320
|
+
}
|
|
319
321
|
const CREATIVE_ASSET_TRANSITIONS = {
|
|
320
322
|
transitions: CREATIVE_ASSET_TRANSITIONS_TYPED,
|
|
321
323
|
enumFile: "creative-status.json"
|
|
@@ -412,8 +414,8 @@ function registerDefaultInvariants() {
|
|
|
412
414
|
["update_media_buy", extractMediaBuy],
|
|
413
415
|
[
|
|
414
416
|
"get_media_buys",
|
|
415
|
-
(out, body) => {
|
|
416
|
-
for (const buy of asArray(body.media_buys)) if (isObject(buy)) pushMediaBuy(out, buy);
|
|
417
|
+
(out, body, version) => {
|
|
418
|
+
for (const buy of asArray(body.media_buys)) if (isObject(buy)) pushMediaBuy(out, buy, false, version);
|
|
417
419
|
}
|
|
418
420
|
],
|
|
419
421
|
["sync_creatives", extractCreatives],
|
|
@@ -442,7 +444,7 @@ function registerDefaultInvariants() {
|
|
|
442
444
|
const extract = statusExtractors.get(task);
|
|
443
445
|
if (!extract || task === "get_products" && asArray(body.proposals).length === 0) return void 0;
|
|
444
446
|
const observations = [];
|
|
445
|
-
extract(observations, body, adcpVersion);
|
|
447
|
+
extract(observations, body, asString(body.adcp_version) ?? adcpVersion);
|
|
446
448
|
return observations;
|
|
447
449
|
}
|
|
448
450
|
function pushMediaBuy(obs, record, enveloped = false, adcpVersion = ADCP_VERSION) {
|
|
@@ -453,7 +455,7 @@ function registerDefaultInvariants() {
|
|
|
453
455
|
resource_type: "media_buy",
|
|
454
456
|
resource_id: id,
|
|
455
457
|
status,
|
|
456
|
-
graph:
|
|
458
|
+
graph: mediaBuyTransitions(adcpVersion)
|
|
457
459
|
});
|
|
458
460
|
}
|
|
459
461
|
for (const pkg of asArray(record.packages)) {
|
|
@@ -34,6 +34,8 @@ export declare function signingProfileForAdcpVersion(version?: string): '3.2' |
|
|
|
34
34
|
export declare function loadRequestSigningVectors(options?: LoadVectorsOptions): LoadedVectors;
|
|
35
35
|
/** Load only the shared signing keyset, without requiring the grader vectors. */
|
|
36
36
|
export declare function loadRequestSigningKeys(options?: LoadVectorsOptions): TestKeyset;
|
|
37
|
+
/** Refresh only the signing fixtures belonging to a changed custom compliance root. */
|
|
38
|
+
export declare function invalidateRequestSigningVectorCache(complianceDir: string): void;
|
|
37
39
|
/** Test-only: clear the memoization cache so a fresh cache path is reread. */
|
|
38
40
|
export declare function __resetVectorCache(): void;
|
|
39
41
|
/** Where the A2A operation-resolution vectors came from. */
|
|
@@ -34,6 +34,8 @@ export declare function signingProfileForAdcpVersion(version?: string): '3.2' |
|
|
|
34
34
|
export declare function loadRequestSigningVectors(options?: LoadVectorsOptions): LoadedVectors;
|
|
35
35
|
/** Load only the shared signing keyset, without requiring the grader vectors. */
|
|
36
36
|
export declare function loadRequestSigningKeys(options?: LoadVectorsOptions): TestKeyset;
|
|
37
|
+
/** Refresh only the signing fixtures belonging to a changed custom compliance root. */
|
|
38
|
+
export declare function invalidateRequestSigningVectorCache(complianceDir: string): void;
|
|
37
39
|
/** Test-only: clear the memoization cache so a fresh cache path is reread. */
|
|
38
40
|
export declare function __resetVectorCache(): void;
|
|
39
41
|
/** Where the A2A operation-resolution vectors came from. */
|
|
@@ -22,6 +22,7 @@ __export(vector_loader_exports, {
|
|
|
22
22
|
A2A_VECTORS_UNAVAILABLE_MESSAGE: () => A2A_VECTORS_UNAVAILABLE_MESSAGE,
|
|
23
23
|
__resetVectorCache: () => __resetVectorCache,
|
|
24
24
|
findKey: () => findKey,
|
|
25
|
+
invalidateRequestSigningVectorCache: () => invalidateRequestSigningVectorCache,
|
|
25
26
|
loadA2aOperationResolutionVectors: () => loadA2aOperationResolutionVectors,
|
|
26
27
|
loadRequestSigningKeys: () => loadRequestSigningKeys,
|
|
27
28
|
loadRequestSigningVectors: () => loadRequestSigningVectors,
|
|
@@ -95,6 +96,15 @@ function loadRequestSigningKeys(options = {}) {
|
|
|
95
96
|
const cacheDir = (0, import_compliance.getComplianceCacheDir)(options);
|
|
96
97
|
return loadKeys((0, import_path.join)(cacheDir, "test-vectors", "request-signing", "keys.json"));
|
|
97
98
|
}
|
|
99
|
+
function invalidateRequestSigningVectorCache(complianceDir) {
|
|
100
|
+
const sourceDir = (0, import_path.resolve)(complianceDir, "test-vectors", "request-signing");
|
|
101
|
+
for (const key of VECTOR_CACHE.keys()) {
|
|
102
|
+
if ((0, import_path.resolve)(key) === sourceDir) VECTOR_CACHE.delete(key);
|
|
103
|
+
}
|
|
104
|
+
for (const key of A2A_VECTOR_CACHE.keys()) {
|
|
105
|
+
if ((0, import_path.resolve)(key) === (0, import_path.join)(sourceDir, "a2a")) A2A_VECTOR_CACHE.delete(key);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
98
108
|
function __resetVectorCache() {
|
|
99
109
|
VECTOR_CACHE.clear();
|
|
100
110
|
A2A_VECTOR_CACHE.clear();
|
|
@@ -384,6 +394,7 @@ function strArray(v, where) {
|
|
|
384
394
|
A2A_VECTORS_UNAVAILABLE_MESSAGE,
|
|
385
395
|
__resetVectorCache,
|
|
386
396
|
findKey,
|
|
397
|
+
invalidateRequestSigningVectorCache,
|
|
387
398
|
loadA2aOperationResolutionVectors,
|
|
388
399
|
loadRequestSigningKeys,
|
|
389
400
|
loadRequestSigningVectors,
|
|
@@ -69,6 +69,15 @@ function loadRequestSigningKeys(options = {}) {
|
|
|
69
69
|
const cacheDir = getComplianceCacheDir(options);
|
|
70
70
|
return loadKeys(join(cacheDir, "test-vectors", "request-signing", "keys.json"));
|
|
71
71
|
}
|
|
72
|
+
function invalidateRequestSigningVectorCache(complianceDir) {
|
|
73
|
+
const sourceDir = resolve(complianceDir, "test-vectors", "request-signing");
|
|
74
|
+
for (const key of VECTOR_CACHE.keys()) {
|
|
75
|
+
if (resolve(key) === sourceDir) VECTOR_CACHE.delete(key);
|
|
76
|
+
}
|
|
77
|
+
for (const key of A2A_VECTOR_CACHE.keys()) {
|
|
78
|
+
if (resolve(key) === join(sourceDir, "a2a")) A2A_VECTOR_CACHE.delete(key);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
72
81
|
function __resetVectorCache() {
|
|
73
82
|
VECTOR_CACHE.clear();
|
|
74
83
|
A2A_VECTOR_CACHE.clear();
|
|
@@ -357,6 +366,7 @@ export {
|
|
|
357
366
|
A2A_VECTORS_UNAVAILABLE_MESSAGE,
|
|
358
367
|
__resetVectorCache,
|
|
359
368
|
findKey,
|
|
369
|
+
invalidateRequestSigningVectorCache,
|
|
360
370
|
loadA2aOperationResolutionVectors,
|
|
361
371
|
loadRequestSigningKeys,
|
|
362
372
|
loadRequestSigningVectors,
|
|
@@ -684,7 +684,7 @@ function remapTaskCompletionOutputs(outputs) {
|
|
|
684
684
|
return o;
|
|
685
685
|
});
|
|
686
686
|
}
|
|
687
|
-
async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhookReceiver, originatingTaskName) {
|
|
687
|
+
async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhookReceiver, originatingTaskName, responseAdcpVersion) {
|
|
688
688
|
const hasTaskCompletionPath = outputs.some(
|
|
689
689
|
(o) => typeof o.path === "string" && o.path.startsWith(TASK_COMPLETION_PATH_PREFIX)
|
|
690
690
|
);
|
|
@@ -737,7 +737,10 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
737
737
|
if (winner.kind === "poll") {
|
|
738
738
|
const polled = winner.result;
|
|
739
739
|
if (polled.success === false) return { attempted: true, taskFailed: true };
|
|
740
|
-
return {
|
|
740
|
+
return {
|
|
741
|
+
attempted: true,
|
|
742
|
+
data: normalizeTaskCompletionData(polled.data, originatingTaskName, responseAdcpVersion)
|
|
743
|
+
};
|
|
741
744
|
}
|
|
742
745
|
const waitResult = winner.result;
|
|
743
746
|
if (waitResult.timed_out) {
|
|
@@ -745,7 +748,10 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
745
748
|
}
|
|
746
749
|
const webhookBody = waitResult.webhook.body;
|
|
747
750
|
if (webhookBody?.status === "completed") {
|
|
748
|
-
return {
|
|
751
|
+
return {
|
|
752
|
+
attempted: true,
|
|
753
|
+
data: normalizeTaskCompletionData(webhookBody.result, originatingTaskName, responseAdcpVersion)
|
|
754
|
+
};
|
|
749
755
|
}
|
|
750
756
|
return { attempted: true, taskFailed: true };
|
|
751
757
|
} catch {
|
|
@@ -754,18 +760,19 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
754
760
|
if (timer) clearTimeout(timer);
|
|
755
761
|
}
|
|
756
762
|
}
|
|
757
|
-
function normalizeTaskCompletionData(data, taskName) {
|
|
763
|
+
function normalizeTaskCompletionData(data, taskName, adcpVersion) {
|
|
758
764
|
if (data == null || typeof data !== "object" || Array.isArray(data)) return data;
|
|
759
765
|
const original = data;
|
|
760
|
-
const
|
|
766
|
+
const compatOptions = { toolName: taskName, adcpVersion };
|
|
767
|
+
const compat = (0, import_envelope_status_compat.injectLegacyEnvelopeStatus)(original, compatOptions);
|
|
761
768
|
if (!("status" in original) && "status" in compat) {
|
|
762
769
|
const { status: _status, ...rest } = compat;
|
|
763
|
-
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(rest,
|
|
770
|
+
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(rest, compatOptions);
|
|
764
771
|
}
|
|
765
772
|
if ((taskName === "create_media_buy" || taskName === "update_media_buy") && typeof original.status === "string" && compat.status === "completed" && typeof compat.media_buy_status === "string") {
|
|
766
|
-
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)({ ...compat, status: original.status },
|
|
773
|
+
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)({ ...compat, status: original.status }, compatOptions);
|
|
767
774
|
}
|
|
768
|
-
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(compat,
|
|
775
|
+
return (0, import_envelope_status_compat.normalizeLegacyMediaBuyStatusForReturn)(compat, compatOptions);
|
|
769
776
|
}
|
|
770
777
|
function readEnvIntOrDefault(value, fallback) {
|
|
771
778
|
if (!value) return fallback;
|
|
@@ -5841,7 +5848,12 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
5841
5848
|
};
|
|
5842
5849
|
const hasData = taskResult?.data !== void 0 && taskResult?.data !== null;
|
|
5843
5850
|
if (passed && hasData && taskResult && !(effectiveStep.task === "sync_accounts" && request.dry_run === true)) {
|
|
5844
|
-
const extracted = (0, import_context.extractContextWithProvenance)(
|
|
5851
|
+
const extracted = (0, import_context.extractContextWithProvenance)(
|
|
5852
|
+
effectiveStep.task,
|
|
5853
|
+
taskResult.data,
|
|
5854
|
+
step.id,
|
|
5855
|
+
options._serverAdcpVersion ?? options.adcpVersion
|
|
5856
|
+
);
|
|
5845
5857
|
const conventionUnset = [];
|
|
5846
5858
|
for (const group of extracted.clearGroups ?? []) {
|
|
5847
5859
|
if (group.when && !group.when.values.includes(updatedContext[group.when.key])) continue;
|
|
@@ -5872,7 +5884,8 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
5872
5884
|
step.context_outputs,
|
|
5873
5885
|
client,
|
|
5874
5886
|
runState.webhookReceiver,
|
|
5875
|
-
effectiveStep.task
|
|
5887
|
+
effectiveStep.task,
|
|
5888
|
+
options._serverAdcpVersion ?? options.adcpVersion
|
|
5876
5889
|
);
|
|
5877
5890
|
const extractionData = "data" in taskCompletionResolution ? taskCompletionResolution.data : hasData && taskResult ? taskResult.data : void 0;
|
|
5878
5891
|
const remappedOutputs = remapTaskCompletionOutputs(step.context_outputs);
|
|
@@ -726,7 +726,7 @@ function remapTaskCompletionOutputs(outputs) {
|
|
|
726
726
|
return o;
|
|
727
727
|
});
|
|
728
728
|
}
|
|
729
|
-
async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhookReceiver, originatingTaskName) {
|
|
729
|
+
async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhookReceiver, originatingTaskName, responseAdcpVersion) {
|
|
730
730
|
const hasTaskCompletionPath = outputs.some(
|
|
731
731
|
(o) => typeof o.path === "string" && o.path.startsWith(TASK_COMPLETION_PATH_PREFIX)
|
|
732
732
|
);
|
|
@@ -779,7 +779,10 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
779
779
|
if (winner.kind === "poll") {
|
|
780
780
|
const polled = winner.result;
|
|
781
781
|
if (polled.success === false) return { attempted: true, taskFailed: true };
|
|
782
|
-
return {
|
|
782
|
+
return {
|
|
783
|
+
attempted: true,
|
|
784
|
+
data: normalizeTaskCompletionData(polled.data, originatingTaskName, responseAdcpVersion)
|
|
785
|
+
};
|
|
783
786
|
}
|
|
784
787
|
const waitResult = winner.result;
|
|
785
788
|
if (waitResult.timed_out) {
|
|
@@ -787,7 +790,10 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
787
790
|
}
|
|
788
791
|
const webhookBody = waitResult.webhook.body;
|
|
789
792
|
if (webhookBody?.status === "completed") {
|
|
790
|
-
return {
|
|
793
|
+
return {
|
|
794
|
+
attempted: true,
|
|
795
|
+
data: normalizeTaskCompletionData(webhookBody.result, originatingTaskName, responseAdcpVersion)
|
|
796
|
+
};
|
|
791
797
|
}
|
|
792
798
|
return { attempted: true, taskFailed: true };
|
|
793
799
|
} catch {
|
|
@@ -796,18 +802,19 @@ async function resolveTaskCompletionOutputs(taskResult, outputs, client, webhook
|
|
|
796
802
|
if (timer) clearTimeout(timer);
|
|
797
803
|
}
|
|
798
804
|
}
|
|
799
|
-
function normalizeTaskCompletionData(data, taskName) {
|
|
805
|
+
function normalizeTaskCompletionData(data, taskName, adcpVersion) {
|
|
800
806
|
if (data == null || typeof data !== "object" || Array.isArray(data)) return data;
|
|
801
807
|
const original = data;
|
|
802
|
-
const
|
|
808
|
+
const compatOptions = { toolName: taskName, adcpVersion };
|
|
809
|
+
const compat = injectLegacyEnvelopeStatus(original, compatOptions);
|
|
803
810
|
if (!("status" in original) && "status" in compat) {
|
|
804
811
|
const { status: _status, ...rest } = compat;
|
|
805
|
-
return normalizeLegacyMediaBuyStatusForReturn(rest,
|
|
812
|
+
return normalizeLegacyMediaBuyStatusForReturn(rest, compatOptions);
|
|
806
813
|
}
|
|
807
814
|
if ((taskName === "create_media_buy" || taskName === "update_media_buy") && typeof original.status === "string" && compat.status === "completed" && typeof compat.media_buy_status === "string") {
|
|
808
|
-
return normalizeLegacyMediaBuyStatusForReturn({ ...compat, status: original.status },
|
|
815
|
+
return normalizeLegacyMediaBuyStatusForReturn({ ...compat, status: original.status }, compatOptions);
|
|
809
816
|
}
|
|
810
|
-
return normalizeLegacyMediaBuyStatusForReturn(compat,
|
|
817
|
+
return normalizeLegacyMediaBuyStatusForReturn(compat, compatOptions);
|
|
811
818
|
}
|
|
812
819
|
function readEnvIntOrDefault(value, fallback) {
|
|
813
820
|
if (!value) return fallback;
|
|
@@ -5883,7 +5890,12 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
5883
5890
|
};
|
|
5884
5891
|
const hasData = taskResult?.data !== void 0 && taskResult?.data !== null;
|
|
5885
5892
|
if (passed && hasData && taskResult && !(effectiveStep.task === "sync_accounts" && request.dry_run === true)) {
|
|
5886
|
-
const extracted = extractContextWithProvenance(
|
|
5893
|
+
const extracted = extractContextWithProvenance(
|
|
5894
|
+
effectiveStep.task,
|
|
5895
|
+
taskResult.data,
|
|
5896
|
+
step.id,
|
|
5897
|
+
options._serverAdcpVersion ?? options.adcpVersion
|
|
5898
|
+
);
|
|
5887
5899
|
const conventionUnset = [];
|
|
5888
5900
|
for (const group of extracted.clearGroups ?? []) {
|
|
5889
5901
|
if (group.when && !group.when.values.includes(updatedContext[group.when.key])) continue;
|
|
@@ -5914,7 +5926,8 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
5914
5926
|
step.context_outputs,
|
|
5915
5927
|
client,
|
|
5916
5928
|
runState.webhookReceiver,
|
|
5917
|
-
effectiveStep.task
|
|
5929
|
+
effectiveStep.task,
|
|
5930
|
+
options._serverAdcpVersion ?? options.adcpVersion
|
|
5918
5931
|
);
|
|
5919
5932
|
const extractionData = "data" in taskCompletionResolution ? taskCompletionResolution.data : hasData && taskResult ? taskResult.data : void 0;
|
|
5920
5933
|
const remappedOutputs = remapTaskCompletionOutputs(step.context_outputs);
|
|
@@ -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 = "16.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "16.6.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 = "16.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "16.6.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
|
/**
|
|
@@ -295,8 +295,11 @@ function validateResponseSchemaForVersion(validation, ctx, taskResult) {
|
|
|
295
295
|
return rest;
|
|
296
296
|
})();
|
|
297
297
|
const schema = import_response_schemas.TOOL_RESPONSE_SCHEMAS[taskName];
|
|
298
|
-
const dataForValidation = Array.isArray(dataWithoutMessage) ? dataWithoutMessage : (0, import_envelope_status_compat.injectLegacyEnvelopeStatus)(dataWithoutMessage, { toolName: taskName });
|
|
299
298
|
const responseAdcpVersion = ctx.responseAdcpVersion ?? ctx.adcpVersion;
|
|
299
|
+
const dataForValidation = Array.isArray(dataWithoutMessage) ? dataWithoutMessage : (0, import_envelope_status_compat.injectLegacyEnvelopeStatus)(dataWithoutMessage, {
|
|
300
|
+
toolName: taskName,
|
|
301
|
+
adcpVersion: responseAdcpVersion
|
|
302
|
+
});
|
|
300
303
|
const parseResult = schema?.safeParse(
|
|
301
304
|
(0, import_response_schemas.prepareResponseForSchemaValidation)(taskName, dataForValidation, responseAdcpVersion)
|
|
302
305
|
);
|
|
@@ -276,8 +276,11 @@ function validateResponseSchemaForVersion(validation, ctx, taskResult) {
|
|
|
276
276
|
return rest;
|
|
277
277
|
})();
|
|
278
278
|
const schema = TOOL_RESPONSE_SCHEMAS[taskName];
|
|
279
|
-
const dataForValidation = Array.isArray(dataWithoutMessage) ? dataWithoutMessage : injectLegacyEnvelopeStatus(dataWithoutMessage, { toolName: taskName });
|
|
280
279
|
const responseAdcpVersion = ctx.responseAdcpVersion ?? ctx.adcpVersion;
|
|
280
|
+
const dataForValidation = Array.isArray(dataWithoutMessage) ? dataWithoutMessage : injectLegacyEnvelopeStatus(dataWithoutMessage, {
|
|
281
|
+
toolName: taskName,
|
|
282
|
+
adcpVersion: responseAdcpVersion
|
|
283
|
+
});
|
|
281
284
|
const parseResult = schema?.safeParse(
|
|
282
285
|
prepareResponseForSchemaValidation(taskName, dataForValidation, responseAdcpVersion)
|
|
283
286
|
);
|
|
@@ -31,6 +31,7 @@ __export(test_controller_exports, {
|
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(test_controller_exports);
|
|
33
33
|
var import_client = require('./client.js');
|
|
34
|
+
var import_errors = require('../errors/index.js');
|
|
34
35
|
const TOOL_NAME = "comply_test_controller";
|
|
35
36
|
const DEFAULT_SANDBOX_ACCOUNT = { brand: { domain: "test.example" }, operator: "test.example", sandbox: true };
|
|
36
37
|
function buildAccount(options) {
|
|
@@ -84,6 +85,8 @@ async function detectController(client, profile, options) {
|
|
|
84
85
|
}
|
|
85
86
|
return { detected: false };
|
|
86
87
|
} catch (error) {
|
|
88
|
+
if (error instanceof import_errors.ProtocolFeatureUnsupportedError && error.adcpError.details?.feature === "adcp_version")
|
|
89
|
+
throw error;
|
|
87
90
|
(0, import_client.getLogger)().warn(
|
|
88
91
|
{ tool: TOOL_NAME, error: error instanceof Error ? error.message : String(error) },
|
|
89
92
|
"comply_test_controller list_scenarios failed \u2014 treating as unavailable"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getLogger, resolveAccount } from "./client.mjs";
|
|
2
|
+
import { ProtocolFeatureUnsupportedError } from "../errors/index.mjs";
|
|
2
3
|
const TOOL_NAME = "comply_test_controller";
|
|
3
4
|
const DEFAULT_SANDBOX_ACCOUNT = { brand: { domain: "test.example" }, operator: "test.example", sandbox: true };
|
|
4
5
|
function buildAccount(options) {
|
|
@@ -52,6 +53,8 @@ async function detectController(client, profile, options) {
|
|
|
52
53
|
}
|
|
53
54
|
return { detected: false };
|
|
54
55
|
} catch (error) {
|
|
56
|
+
if (error instanceof ProtocolFeatureUnsupportedError && error.adcpError.details?.feature === "adcp_version")
|
|
57
|
+
throw error;
|
|
55
58
|
getLogger().warn(
|
|
56
59
|
{ tool: TOOL_NAME, error: error instanceof Error ? error.message : String(error) },
|
|
57
60
|
"comply_test_controller list_scenarios failed \u2014 treating as unavailable"
|
|
@@ -31,4 +31,4 @@ export type AssetInstance = AssetVariant;
|
|
|
31
31
|
* switch-case helpers.
|
|
32
32
|
*/
|
|
33
33
|
export type AssetInstanceType = AssetInstance['asset_type'];
|
|
34
|
-
export type { ImageAsset, VideoAsset, AudioAsset, TextAsset, HTMLAsset, URLAsset, CSSAsset, JavaScriptAsset, MarkdownAsset, VASTAsset, DAASTAsset, BriefAsset, CatalogAsset, WebhookAsset, ZipAsset, PublishedPostAsset, CardAsset, PixelTrackerAsset, VASTTrackerAsset, DAASTTrackerAsset, DisplayTagAsset, };
|
|
34
|
+
export type { AssetVariant, ImageAsset, VideoAsset, AudioAsset, TextAsset, HTMLAsset, URLAsset, CSSAsset, JavaScriptAsset, MarkdownAsset, VASTAsset, DAASTAsset, BriefAsset, CatalogAsset, WebhookAsset, ZipAsset, PublishedPostAsset, CardAsset, PixelTrackerAsset, VASTTrackerAsset, DAASTTrackerAsset, DisplayTagAsset, };
|
|
@@ -31,4 +31,4 @@ export type AssetInstance = AssetVariant;
|
|
|
31
31
|
* switch-case helpers.
|
|
32
32
|
*/
|
|
33
33
|
export type AssetInstanceType = AssetInstance['asset_type'];
|
|
34
|
-
export type { ImageAsset, VideoAsset, AudioAsset, TextAsset, HTMLAsset, URLAsset, CSSAsset, JavaScriptAsset, MarkdownAsset, VASTAsset, DAASTAsset, BriefAsset, CatalogAsset, WebhookAsset, ZipAsset, PublishedPostAsset, CardAsset, PixelTrackerAsset, VASTTrackerAsset, DAASTTrackerAsset, DisplayTagAsset, };
|
|
34
|
+
export type { AssetVariant, ImageAsset, VideoAsset, AudioAsset, TextAsset, HTMLAsset, URLAsset, CSSAsset, JavaScriptAsset, MarkdownAsset, VASTAsset, DAASTAsset, BriefAsset, CatalogAsset, WebhookAsset, ZipAsset, PublishedPostAsset, CardAsset, PixelTrackerAsset, VASTTrackerAsset, DAASTTrackerAsset, DisplayTagAsset, };
|
|
@@ -50,3 +50,8 @@ export * from './enum-compat.mjs';
|
|
|
50
50
|
export * from './error-details.aliases.mjs';
|
|
51
51
|
export type { BrandJson, AdagentsJson } from './wellknown-schemas.generated.mjs';
|
|
52
52
|
export { BrandJsonSchema, AdagentsJsonSchema } from './wellknown-schemas.generated.mjs';
|
|
53
|
+
export type { SearchBrandsRequest, SearchBrandsResponse, ValidatePropertyDeliveryRequest, ValidatePropertyDeliveryResponse, VerifyBrandClaimRequest, VerifyBrandClaimResponse, VerifyBrandClaimsRequestBulk as VerifyBrandClaimsRequest, VerifyBrandClaimsResponseBulk as VerifyBrandClaimsResponse, } from './core.generated.mjs';
|
|
54
|
+
export type { ComplyTestControllerRequest, ComplyTestControllerResponse, GetPrincipalRequest, GetPrincipalResponse, GetTaskStatusRequest, GetTaskStatusResponse, ListTasksRequest, ListTasksResponse, ListTransformersRequest, ListTransformersResponse, ReportPlanAdjustmentRequest, ReportPlanAdjustmentResponse, SyncAgentNotificationConfigsRequest, SyncAgentNotificationConfigsResponse, SyncPrincipalRequest, SyncPrincipalResponse, ValidateInputRequest, ValidateInputResponse, } from './tools.generated.mjs';
|
|
55
|
+
export type { MediaBuyDeliveryReport } from './media-buy-delivery-report.mjs';
|
|
56
|
+
export type { MediaBuyDeliveryWebhookResult } from './core.generated.mjs';
|
|
57
|
+
export { TargetingOverlayKeys, TargetingOverlaySupportKeys } from './targeting-keys.generated.mjs';
|
|
@@ -50,3 +50,8 @@ export * from './enum-compat';
|
|
|
50
50
|
export * from './error-details.aliases';
|
|
51
51
|
export type { BrandJson, AdagentsJson } from './wellknown-schemas.generated';
|
|
52
52
|
export { BrandJsonSchema, AdagentsJsonSchema } from './wellknown-schemas.generated';
|
|
53
|
+
export type { SearchBrandsRequest, SearchBrandsResponse, ValidatePropertyDeliveryRequest, ValidatePropertyDeliveryResponse, VerifyBrandClaimRequest, VerifyBrandClaimResponse, VerifyBrandClaimsRequestBulk as VerifyBrandClaimsRequest, VerifyBrandClaimsResponseBulk as VerifyBrandClaimsResponse, } from './core.generated';
|
|
54
|
+
export type { ComplyTestControllerRequest, ComplyTestControllerResponse, GetPrincipalRequest, GetPrincipalResponse, GetTaskStatusRequest, GetTaskStatusResponse, ListTasksRequest, ListTasksResponse, ListTransformersRequest, ListTransformersResponse, ReportPlanAdjustmentRequest, ReportPlanAdjustmentResponse, SyncAgentNotificationConfigsRequest, SyncAgentNotificationConfigsResponse, SyncPrincipalRequest, SyncPrincipalResponse, ValidateInputRequest, ValidateInputResponse, } from './tools.generated';
|
|
55
|
+
export type { MediaBuyDeliveryReport } from './media-buy-delivery-report';
|
|
56
|
+
export type { MediaBuyDeliveryWebhookResult } from './core.generated';
|
|
57
|
+
export { TargetingOverlayKeys, TargetingOverlaySupportKeys } from './targeting-keys.generated';
|
package/dist/lib/types/index.js
CHANGED
|
@@ -20,7 +20,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
var types_exports = {};
|
|
21
21
|
__export(types_exports, {
|
|
22
22
|
AdagentsJsonSchema: () => import_wellknown_schemas.AdagentsJsonSchema,
|
|
23
|
-
BrandJsonSchema: () => import_wellknown_schemas.BrandJsonSchema
|
|
23
|
+
BrandJsonSchema: () => import_wellknown_schemas.BrandJsonSchema,
|
|
24
|
+
TargetingOverlayKeys: () => import_targeting_keys.TargetingOverlayKeys,
|
|
25
|
+
TargetingOverlaySupportKeys: () => import_targeting_keys.TargetingOverlaySupportKeys
|
|
24
26
|
});
|
|
25
27
|
module.exports = __toCommonJS(types_exports);
|
|
26
28
|
__reExport(types_exports, require('./adcp.js'), module.exports);
|
|
@@ -34,10 +36,13 @@ __reExport(types_exports, require('./inline-enums.aliases.js'), module.exports);
|
|
|
34
36
|
__reExport(types_exports, require('./enum-compat.js'), module.exports);
|
|
35
37
|
__reExport(types_exports, require('./error-details.aliases.js'), module.exports);
|
|
36
38
|
var import_wellknown_schemas = require('./wellknown-schemas.generated.js');
|
|
39
|
+
var import_targeting_keys = require('./targeting-keys.generated.js');
|
|
37
40
|
// Annotate the CommonJS export names for ESM import in node:
|
|
38
41
|
0 && (module.exports = {
|
|
39
42
|
AdagentsJsonSchema,
|
|
40
43
|
BrandJsonSchema,
|
|
44
|
+
TargetingOverlayKeys,
|
|
45
|
+
TargetingOverlaySupportKeys,
|
|
41
46
|
...require('./adcp.js'),
|
|
42
47
|
...require('./server-payload-aliases.js'),
|
|
43
48
|
...require('./format-asset-slots.js'),
|
package/dist/lib/types/index.mjs
CHANGED
|
@@ -9,7 +9,10 @@ export * from "./inline-enums.aliases.mjs";
|
|
|
9
9
|
export * from "./enum-compat.mjs";
|
|
10
10
|
export * from "./error-details.aliases.mjs";
|
|
11
11
|
import { BrandJsonSchema, AdagentsJsonSchema } from "./wellknown-schemas.generated.mjs";
|
|
12
|
+
import { TargetingOverlayKeys, TargetingOverlaySupportKeys } from "./targeting-keys.generated.mjs";
|
|
12
13
|
export {
|
|
13
14
|
AdagentsJsonSchema,
|
|
14
|
-
BrandJsonSchema
|
|
15
|
+
BrandJsonSchema,
|
|
16
|
+
TargetingOverlayKeys,
|
|
17
|
+
TargetingOverlaySupportKeys
|
|
15
18
|
};
|