@adcp/sdk 16.0.0-beta.7 → 16.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/AGENTS.md +3 -3
  2. package/README.md +20 -0
  3. package/bin/adcp.js +10 -13
  4. package/dist/lib/conformance/index.d.mts +2 -0
  5. package/dist/lib/conformance/index.d.ts +2 -0
  6. package/dist/lib/conformance/index.js +3 -0
  7. package/dist/lib/conformance/index.mjs +2 -0
  8. package/dist/lib/conformance/property-lists.d.mts +14 -0
  9. package/dist/lib/conformance/property-lists.d.ts +14 -0
  10. package/dist/lib/conformance/property-lists.js +45 -0
  11. package/dist/lib/conformance/property-lists.mjs +21 -0
  12. package/dist/lib/conformance/runConformance.js +20 -1
  13. package/dist/lib/conformance/runConformance.mjs +20 -1
  14. package/dist/lib/conformance/types.d.mts +3 -0
  15. package/dist/lib/conformance/types.d.ts +3 -0
  16. package/dist/lib/core/AgentClient.d.mts +8 -5
  17. package/dist/lib/core/AgentClient.d.ts +8 -5
  18. package/dist/lib/core/AgentClient.js +9 -4
  19. package/dist/lib/core/AgentClient.mjs +9 -4
  20. package/dist/lib/core/SingleAgentClient.d.mts +32 -115
  21. package/dist/lib/core/SingleAgentClient.d.ts +32 -115
  22. package/dist/lib/core/SingleAgentClient.js +379 -273
  23. package/dist/lib/core/SingleAgentClient.mjs +387 -275
  24. package/dist/lib/core/TaskExecutor.d.mts +1 -16
  25. package/dist/lib/core/TaskExecutor.d.ts +1 -16
  26. package/dist/lib/core/TaskExecutor.js +34 -51
  27. package/dist/lib/core/TaskExecutor.mjs +12 -29
  28. package/dist/lib/core/product-cache.d.mts +3 -1
  29. package/dist/lib/core/product-cache.d.ts +3 -1
  30. package/dist/lib/core/product-cache.js +2 -1
  31. package/dist/lib/core/product-cache.mjs +2 -1
  32. package/dist/lib/errors/index.d.mts +2 -8
  33. package/dist/lib/errors/index.d.ts +2 -8
  34. package/dist/lib/errors/index.js +4 -4
  35. package/dist/lib/errors/index.mjs +4 -4
  36. package/dist/lib/identifiers.d.mts +53 -0
  37. package/dist/lib/identifiers.d.ts +53 -0
  38. package/dist/lib/identifiers.js +212 -0
  39. package/dist/lib/identifiers.mjs +163 -0
  40. package/dist/lib/index.d.mts +7 -5
  41. package/dist/lib/index.d.ts +7 -5
  42. package/dist/lib/index.js +2 -14
  43. package/dist/lib/index.mjs +1 -14
  44. package/dist/lib/media-buy/compatibility.d.mts +1 -1
  45. package/dist/lib/media-buy/compatibility.d.ts +1 -1
  46. package/dist/lib/media-buy/compatibility.js +26 -45
  47. package/dist/lib/media-buy/compatibility.mjs +26 -45
  48. package/dist/lib/media-buy/index.d.mts +1 -1
  49. package/dist/lib/media-buy/index.d.ts +1 -1
  50. package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
  51. package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
  52. package/dist/lib/media-buy/property-policy.d.mts +15 -1
  53. package/dist/lib/media-buy/property-policy.d.ts +15 -1
  54. package/dist/lib/media-buy/property-policy.js +135 -3
  55. package/dist/lib/media-buy/property-policy.mjs +134 -3
  56. package/dist/lib/protocols/index.js +14 -22
  57. package/dist/lib/protocols/index.mjs +5 -13
  58. package/dist/lib/registry/index.d.mts +12 -0
  59. package/dist/lib/registry/index.d.ts +12 -0
  60. package/dist/lib/registry/index.js +159 -5
  61. package/dist/lib/registry/index.mjs +156 -4
  62. package/dist/lib/registry/types.d.mts +26 -2
  63. package/dist/lib/registry/types.d.ts +26 -2
  64. package/dist/lib/registry/types.generated.d.mts +51 -11
  65. package/dist/lib/registry/types.generated.d.ts +51 -11
  66. package/dist/lib/reporting/source/conformance.d.mts +8 -8
  67. package/dist/lib/reporting/source/conformance.d.ts +8 -8
  68. package/dist/lib/reporting/source/manifest.d.mts +27 -27
  69. package/dist/lib/reporting/source/manifest.d.ts +27 -27
  70. package/dist/lib/server/create-adcp-server.js +6 -0
  71. package/dist/lib/server/create-adcp-server.mjs +6 -0
  72. package/dist/lib/server/decisioning/specialisms/lists.d.mts +4 -4
  73. package/dist/lib/server/decisioning/specialisms/lists.d.ts +4 -4
  74. package/dist/lib/server/index.d.mts +3 -0
  75. package/dist/lib/server/index.d.ts +3 -0
  76. package/dist/lib/server/index.js +8 -1
  77. package/dist/lib/server/index.mjs +4 -0
  78. package/dist/lib/server/property-lists.d.mts +36 -0
  79. package/dist/lib/server/property-lists.d.ts +36 -0
  80. package/dist/lib/server/property-lists.js +154 -0
  81. package/dist/lib/server/property-lists.mjs +129 -0
  82. package/dist/lib/server/targeting-helpers.d.mts +2 -0
  83. package/dist/lib/server/targeting-helpers.d.ts +2 -0
  84. package/dist/lib/server/targeting-helpers.js +28 -1
  85. package/dist/lib/server/targeting-helpers.mjs +18 -1
  86. package/dist/lib/signing/parser.js +2 -2
  87. package/dist/lib/signing/parser.mjs +2 -2
  88. package/dist/lib/signing/server.d.mts +1 -1
  89. package/dist/lib/signing/server.d.ts +1 -1
  90. package/dist/lib/signing/server.mjs +5 -1
  91. package/dist/lib/signing/webhook-verifier.d.mts +11 -0
  92. package/dist/lib/signing/webhook-verifier.d.ts +11 -0
  93. package/dist/lib/signing/webhook-verifier.js +11 -3
  94. package/dist/lib/signing/webhook-verifier.mjs +11 -3
  95. package/dist/lib/supply-path/verify.js +12 -2
  96. package/dist/lib/supply-path/verify.mjs +2 -2
  97. package/dist/lib/testing/compliance/comply.js +0 -8
  98. package/dist/lib/testing/compliance/comply.mjs +0 -8
  99. package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
  100. package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
  101. package/dist/lib/testing/index.d.mts +2 -0
  102. package/dist/lib/testing/index.d.ts +2 -0
  103. package/dist/lib/testing/index.js +5 -0
  104. package/dist/lib/testing/index.mjs +3 -0
  105. package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
  106. package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
  107. package/dist/lib/testing/scenarios/capabilities.js +8 -41
  108. package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
  109. package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
  110. package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
  111. package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
  112. package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
  113. package/dist/lib/testing/storyboard/index.d.mts +2 -0
  114. package/dist/lib/testing/storyboard/index.d.ts +2 -0
  115. package/dist/lib/testing/storyboard/index.js +5 -0
  116. package/dist/lib/testing/storyboard/index.mjs +3 -0
  117. package/dist/lib/testing/storyboard/loader.js +12 -0
  118. package/dist/lib/testing/storyboard/loader.mjs +12 -0
  119. package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
  120. package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
  121. package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
  122. package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
  123. package/dist/lib/testing/storyboard/runner.js +318 -58
  124. package/dist/lib/testing/storyboard/runner.mjs +322 -58
  125. package/dist/lib/testing/storyboard/types.d.mts +38 -16
  126. package/dist/lib/testing/storyboard/types.d.ts +38 -16
  127. package/dist/lib/testing/storyboard/types.js +1 -0
  128. package/dist/lib/testing/storyboard/types.mjs +1 -0
  129. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  130. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  131. package/dist/lib/testing/storyboard/validations.js +64 -0
  132. package/dist/lib/testing/storyboard/validations.mjs +67 -1
  133. package/dist/lib/testing/types.d.mts +15 -1
  134. package/dist/lib/testing/types.d.ts +15 -1
  135. package/dist/lib/types/schemas.generated.d.ts +65 -65
  136. package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
  137. package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
  138. package/dist/lib/utils/adcp-version-config.js +6 -0
  139. package/dist/lib/utils/adcp-version-config.mjs +6 -0
  140. package/dist/lib/utils/capabilities.d.mts +7 -9
  141. package/dist/lib/utils/capabilities.d.ts +7 -9
  142. package/dist/lib/utils/capabilities.js +14 -28
  143. package/dist/lib/utils/capabilities.mjs +14 -27
  144. package/dist/lib/utils/creative-adapter.d.mts +15 -113
  145. package/dist/lib/utils/creative-adapter.d.ts +15 -113
  146. package/dist/lib/utils/creative-adapter.js +7 -106
  147. package/dist/lib/utils/creative-adapter.mjs +7 -102
  148. package/dist/lib/utils/format-renders.d.mts +20 -80
  149. package/dist/lib/utils/format-renders.d.ts +20 -80
  150. package/dist/lib/utils/format-renders.js +7 -67
  151. package/dist/lib/utils/format-renders.mjs +7 -66
  152. package/dist/lib/utils/index.d.mts +1 -2
  153. package/dist/lib/utils/index.d.ts +1 -2
  154. package/dist/lib/utils/index.js +0 -7
  155. package/dist/lib/utils/index.mjs +0 -6
  156. package/dist/lib/utils/preview-normalizer.d.mts +31 -80
  157. package/dist/lib/utils/preview-normalizer.d.ts +31 -80
  158. package/dist/lib/utils/preview-normalizer.js +5 -50
  159. package/dist/lib/utils/preview-normalizer.mjs +5 -49
  160. package/dist/lib/utils/pricing-adapter.d.mts +2 -36
  161. package/dist/lib/utils/pricing-adapter.d.ts +2 -36
  162. package/dist/lib/utils/pricing-adapter.js +0 -105
  163. package/dist/lib/utils/pricing-adapter.mjs +0 -100
  164. package/dist/lib/utils/request-normalizer.d.mts +1 -2
  165. package/dist/lib/utils/request-normalizer.d.ts +1 -2
  166. package/dist/lib/v2/projection/creative-delivery.d.mts +2 -0
  167. package/dist/lib/v2/projection/creative-delivery.d.ts +2 -0
  168. package/dist/lib/v2/projection/creative-delivery.js +7 -0
  169. package/dist/lib/v2/projection/creative-delivery.mjs +6 -0
  170. package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
  171. package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
  172. package/dist/lib/v2/projection/legacy-metadata.js +41 -1
  173. package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
  174. package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
  175. package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
  176. package/dist/lib/v2/projection/v1-to-v2.js +13 -0
  177. package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
  178. package/dist/lib/validation/client-hooks.d.mts +1 -4
  179. package/dist/lib/validation/client-hooks.d.ts +1 -4
  180. package/dist/lib/validation/get-products-request.d.mts +1 -1
  181. package/dist/lib/validation/get-products-request.d.ts +1 -1
  182. package/dist/lib/validation/schema-loader.js +6 -0
  183. package/dist/lib/validation/schema-loader.mjs +6 -0
  184. package/dist/lib/validation/schema-validator.js +1 -26
  185. package/dist/lib/validation/schema-validator.mjs +1 -26
  186. package/dist/lib/version.d.mts +5 -5
  187. package/dist/lib/version.d.ts +5 -5
  188. package/dist/lib/version.js +3 -5
  189. package/dist/lib/version.mjs +3 -5
  190. package/docs/TYPE-SUMMARY.md +2 -2
  191. package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
  192. package/docs/guides/CONFORMANCE.md +25 -0
  193. package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
  194. package/docs/guides/CREATIVE-DELIVERY.md +45 -6
  195. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
  196. package/docs/guides/PROPERTY-LISTS.md +264 -0
  197. package/docs/guides/SIGNING-GUIDE.md +25 -0
  198. package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
  199. package/docs/llms.txt +2 -2
  200. package/docs/migration-13-to-14.md +20 -16
  201. package/docs/migration-14.x-rc-worksheet.md +5 -5
  202. package/docs/migration-4.x-to-5.x.md +12 -7
  203. package/docs/migration-drop-adcp-2.md +25 -0
  204. package/package.json +3 -18
  205. package/skills/call-adcp-agent/SKILL.md +23 -25
  206. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
  207. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
  208. package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
  209. package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
  210. package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
  211. package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
  212. package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
  213. package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
  214. package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
  215. package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
  216. package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
  217. package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
  218. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
  219. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
  220. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
  221. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
  222. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
  223. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
  224. package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
  225. package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
  226. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
  227. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
  228. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
  229. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
  230. package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
  231. package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
  232. package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
  233. package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
  234. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
  235. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
  236. package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
  237. package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
  238. package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
  239. package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
  240. package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
  241. package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
  242. package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
  243. package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
  244. package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
  245. package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
  246. package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
  247. package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
  248. package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
  249. package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
  250. package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
  251. package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
  252. package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
  253. package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
  254. package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
  255. package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
  256. package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
  257. package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
  258. package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
  259. package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
  260. package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
  261. package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
  262. package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
  263. package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
  264. package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
  265. package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
  266. package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
  267. package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
  268. package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
  269. package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
  270. package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
  271. package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
  272. package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
  273. package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
  274. package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
  275. package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
  276. package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
  277. package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
  278. package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
  279. package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
  280. package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
  281. package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
  282. package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
  283. package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
  284. package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
  285. package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
  286. package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
  287. package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
  288. package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
  289. package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
  290. package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
  291. package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
  292. package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
  293. package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
  294. package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
  295. package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
  296. package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
  297. package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
  298. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
  299. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
  300. package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
  301. package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
  302. package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
  303. package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
  304. package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
  305. package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
  306. package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
  307. package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
  308. package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
  309. package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
  310. package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
  311. package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
  312. package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
  313. package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
  314. package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
  315. package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
  316. package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
  317. package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
  318. package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
  319. package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
  320. package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
  321. package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
  322. package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
  323. package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
  324. package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
  325. package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
  326. package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
  327. package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
  328. package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
  329. package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
  330. package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
  331. package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
  332. package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
  333. package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
  334. package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
  335. package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
  336. package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
  337. package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
  338. package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
  339. package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
  340. package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
  341. package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
  342. package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
  343. package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
  344. package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
  345. package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
  346. package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
  347. package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
  348. package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
  349. package/dist/lib/schemas-data/v2.5/index.json +0 -604
  350. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
  351. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
  352. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
  353. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
  354. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
  355. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
  356. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
  357. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
  358. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
  359. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
  360. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
  361. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
  362. package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
  363. package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
  364. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
  365. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
  366. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
  367. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
  368. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
  369. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
  370. package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
  371. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
  372. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
  373. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
  374. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
  375. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
  376. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
  377. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
  378. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
  379. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
  380. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
  381. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
  382. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
  383. package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
  384. package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
  385. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
  386. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
  387. package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
  388. package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
  389. package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
  390. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
  391. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
  392. package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
  393. package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
  394. package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
  395. package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
  396. package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
  397. package/dist/lib/types/v2-5/index.d.mts +0 -1
  398. package/dist/lib/types/v2-5/index.d.ts +0 -1
  399. package/dist/lib/types/v2-5/index.js +0 -22
  400. package/dist/lib/types/v2-5/index.mjs +0 -1
  401. package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
  402. package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
  403. package/dist/lib/types/v2-5/tools.generated.js +0 -16
  404. package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
  405. package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
  406. package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
  407. package/dist/lib/utils/sync-creatives-adapter.js +0 -83
  408. package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
package/dist/lib/index.js CHANGED
@@ -221,9 +221,6 @@ __export(index_exports, {
221
221
  WebhookDispatchError: () => import_SingleAgentClient.WebhookDispatchError,
222
222
  WholesaleFeedWebhookNotificationError: () => import_webhook_notification.WholesaleFeedWebhookNotificationError,
223
223
  activationKey: () => import_activation_key_builders.activationKey,
224
- adaptCreateMediaBuyRequestForV2: () => import_creative_adapter.adaptCreateMediaBuyRequestForV2,
225
- adaptPackageRequestForV2: () => import_creative_adapter.adaptPackageRequestForV2,
226
- adaptUpdateMediaBuyRequestForV2: () => import_creative_adapter.adaptUpdateMediaBuyRequestForV2,
227
224
  adcpError: () => import_server.adcpError,
228
225
  adcpErrorToTypedError: () => import_errors.adcpErrorToTypedError,
229
226
  addSpanAttributes: () => import_observability.addSpanAttributes,
@@ -261,7 +258,6 @@ __export(index_exports, {
261
258
  buildGovernanceProposedCommitment: () => import_governance.buildGovernanceProposedCommitment,
262
259
  buildHumanOverride: () => import_governance.buildHumanOverride,
263
260
  buildHumanReviewPlan: () => import_governance.buildHumanReviewPlan,
264
- buildSyntheticCapabilities: () => import_capabilities.buildSyntheticCapabilities,
265
261
  buildSyntheticV3Capabilities: () => import_capabilities.buildSyntheticV3Capabilities,
266
262
  bundleSupportsAdcpVersionField: () => import_protocols.bundleSupportsAdcpVersionField,
267
263
  callA2ATool: () => import_protocols.callA2ATool,
@@ -698,9 +694,6 @@ __export(index_exports, {
698
694
  urlRender: () => import_render_builders.urlRender,
699
695
  useIdempotencyKey: () => import_idempotency.useIdempotencyKey,
700
696
  usesDeprecatedAssetsField: () => import_format_assets.usesDeprecatedAssetsField,
701
- usesV2CreativeIds: () => import_creative_adapter.usesV2CreativeIds,
702
- usesV2Dimensions: () => import_format_renders.usesV2Dimensions,
703
- usesV2RenderFields: () => import_preview_normalizer.usesV2RenderFields,
704
697
  usesV3CreativeAssignments: () => import_creative_adapter.usesV3CreativeAssignments,
705
698
  usesV3RenderFields: () => import_preview_normalizer.usesV3RenderFields,
706
699
  usesV3Renders: () => import_format_renders.usesV3Renders,
@@ -735,6 +728,7 @@ __export(index_exports, {
735
728
  withSpan: () => import_observability.withSpan
736
729
  });
737
730
  module.exports = __toCommonJS(index_exports);
731
+ __reExport(index_exports, require('./identifiers.js'), module.exports);
738
732
  var import_registry = require('./registry/index.js');
739
733
  var import_registry2 = require('./registry/index.js');
740
734
  var import_brand = require('./brand/index.js');
@@ -1071,9 +1065,6 @@ function createAdCPClientFromEnv() {
1071
1065
  WebhookDispatchError,
1072
1066
  WholesaleFeedWebhookNotificationError,
1073
1067
  activationKey,
1074
- adaptCreateMediaBuyRequestForV2,
1075
- adaptPackageRequestForV2,
1076
- adaptUpdateMediaBuyRequestForV2,
1077
1068
  adcpError,
1078
1069
  adcpErrorToTypedError,
1079
1070
  addSpanAttributes,
@@ -1111,7 +1102,6 @@ function createAdCPClientFromEnv() {
1111
1102
  buildGovernanceProposedCommitment,
1112
1103
  buildHumanOverride,
1113
1104
  buildHumanReviewPlan,
1114
- buildSyntheticCapabilities,
1115
1105
  buildSyntheticV3Capabilities,
1116
1106
  bundleSupportsAdcpVersionField,
1117
1107
  callA2ATool,
@@ -1548,9 +1538,6 @@ function createAdCPClientFromEnv() {
1548
1538
  urlRender,
1549
1539
  useIdempotencyKey,
1550
1540
  usesDeprecatedAssetsField,
1551
- usesV2CreativeIds,
1552
- usesV2Dimensions,
1553
- usesV2RenderFields,
1554
1541
  usesV3CreativeAssignments,
1555
1542
  usesV3RenderFields,
1556
1543
  usesV3Renders,
@@ -1583,6 +1570,7 @@ function createAdCPClientFromEnv() {
1583
1570
  withAdditiveCanonicalFormatOptions,
1584
1571
  withMCPConnectionScope,
1585
1572
  withSpan,
1573
+ ...require('./identifiers.js'),
1586
1574
  ...require('./principal/index.js'),
1587
1575
  ...require('./handlers/types.js'),
1588
1576
  ...require('./negotiation/index.js'),
@@ -1,3 +1,4 @@
1
+ export * from "./identifiers.mjs";
1
2
  import {
2
3
  RegistryClient,
3
4
  RegistryRequestError,
@@ -617,7 +618,6 @@ import {
617
618
  windowUpdateMediaBuyDeliveryNotification
618
619
  } from "./utils/media-buy-delivery-notification-builders.mjs";
619
620
  import {
620
- buildSyntheticCapabilities,
621
621
  buildSyntheticV3Capabilities,
622
622
  parseCapabilitiesResponse,
623
623
  supportsV3,
@@ -644,12 +644,8 @@ import {
644
644
  } from "./utils/capabilities.mjs";
645
645
  import { inlineCreativesForPackages, inlineCreativesForPackagesLegacy } from "./utils/creative-delivery.mjs";
646
646
  import {
647
- adaptPackageRequestForV2,
648
- adaptCreateMediaBuyRequestForV2,
649
- adaptUpdateMediaBuyRequestForV2,
650
647
  normalizePackageResponse,
651
648
  normalizeMediaBuyResponse,
652
- usesV2CreativeIds,
653
649
  usesV3CreativeAssignments,
654
650
  getCreativeIds,
655
651
  getCreativeAssignments
@@ -661,7 +657,6 @@ import {
661
657
  getPrimaryRender,
662
658
  getCompanionRenders,
663
659
  isMultiRenderFormat,
664
- usesV2Dimensions,
665
660
  usesV3Renders,
666
661
  getFormatDimensions
667
662
  } from "./utils/format-renders.mjs";
@@ -669,7 +664,6 @@ import {
669
664
  normalizePreviewRender,
670
665
  normalizePreview,
671
666
  normalizePreviewCreativeResponse,
672
- usesV2RenderFields,
673
667
  usesV3RenderFields,
674
668
  getRenderId,
675
669
  getRenderRole,
@@ -1033,9 +1027,6 @@ export {
1033
1027
  WebhookDispatchError,
1034
1028
  WholesaleFeedWebhookNotificationError,
1035
1029
  activationKey,
1036
- adaptCreateMediaBuyRequestForV2,
1037
- adaptPackageRequestForV2,
1038
- adaptUpdateMediaBuyRequestForV2,
1039
1030
  adcpError,
1040
1031
  adcpErrorToTypedError,
1041
1032
  addSpanAttributes,
@@ -1073,7 +1064,6 @@ export {
1073
1064
  buildGovernanceProposedCommitment,
1074
1065
  buildHumanOverride,
1075
1066
  buildHumanReviewPlan,
1076
- buildSyntheticCapabilities,
1077
1067
  buildSyntheticV3Capabilities,
1078
1068
  bundleSupportsAdcpVersionField,
1079
1069
  callA2ATool,
@@ -1510,9 +1500,6 @@ export {
1510
1500
  urlRender,
1511
1501
  useIdempotencyKey,
1512
1502
  usesDeprecatedAssetsField,
1513
- usesV2CreativeIds,
1514
- usesV2Dimensions,
1515
- usesV2RenderFields,
1516
1503
  usesV3CreativeAssignments,
1517
1504
  usesV3RenderFields,
1518
1505
  usesV3Renders,
@@ -209,7 +209,7 @@ export interface MediaBuyLifecycleCoordinatorOptions {
209
209
  * Stable, non-secret identity for the authenticated seller/account session.
210
210
  * Persist and reuse it when a coordinator is rehydrated. It is required
211
211
  * whenever `establishedProposalStore` is configured, and for established
212
- * 2.5, 3.0, or 3.1 sellers that provide no server context ID.
212
+ * 3.0 or 3.1 sellers that provide no server context ID.
213
213
  */
214
214
  legacyPurchaseSellerSessionScope?: string;
215
215
  /** Durable storage for tokenless-catalog and products-only legacy purchase continuations. */
@@ -209,7 +209,7 @@ export interface MediaBuyLifecycleCoordinatorOptions {
209
209
  * Stable, non-secret identity for the authenticated seller/account session.
210
210
  * Persist and reuse it when a coordinator is rehydrated. It is required
211
211
  * whenever `establishedProposalStore` is configured, and for established
212
- * 2.5, 3.0, or 3.1 sellers that provide no server context ID.
212
+ * 3.0 or 3.1 sellers that provide no server context ID.
213
213
  */
214
214
  legacyPurchaseSellerSessionScope?: string;
215
215
  /** Durable storage for tokenless-catalog and products-only legacy purchase continuations. */
@@ -167,7 +167,7 @@ const CONTROL_MEDIA_BUY_FIELDS = /* @__PURE__ */ new Set([
167
167
  "revision",
168
168
  "total_budget"
169
169
  ]);
170
- const V25_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
170
+ const V30_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
171
171
  "budget_range",
172
172
  "channels",
173
173
  "countries",
@@ -176,10 +176,7 @@ const V25_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
176
176
  "is_fixed_price",
177
177
  "min_exposures",
178
178
  "standard_formats_only",
179
- "start_date"
180
- ]);
181
- const V30_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
182
- ...V25_OFFER_FILTER_FIELDS,
179
+ "start_date",
183
180
  "exclusivity",
184
181
  "required_performance_standards",
185
182
  "trusted_match"
@@ -207,15 +204,6 @@ const V30_PURCHASE_FIELDS = /* @__PURE__ */ new Set([
207
204
  "start_time",
208
205
  "targeting_overlay"
209
206
  ]);
210
- const V25_PURCHASE_FIELDS = /* @__PURE__ */ new Set([
211
- "budget",
212
- "ext",
213
- "impressions",
214
- "pacing",
215
- "pricing_option_id",
216
- "product_id",
217
- "targeting_overlay"
218
- ]);
219
207
  const V31_PURCHASE_FIELDS = /* @__PURE__ */ new Set([...V30_PURCHASE_FIELDS, "format_option_refs"]);
220
208
  const V32_PURCHASE_FIELDS = /* @__PURE__ */ new Set([
221
209
  ...V31_PURCHASE_FIELDS,
@@ -293,17 +281,6 @@ const V30_AVAILABLE_METRICS = /* @__PURE__ */ new Set([
293
281
  "dooh_metrics",
294
282
  "cost_per_click"
295
283
  ]);
296
- const V25_AVAILABLE_METRICS = /* @__PURE__ */ new Set([
297
- "impressions",
298
- "spend",
299
- "clicks",
300
- "ctr",
301
- "video_completions",
302
- "completion_rate",
303
- "conversions",
304
- "viewability",
305
- "engagement_rate"
306
- ]);
307
284
  const V31_AVAILABLE_METRICS = /* @__PURE__ */ new Set([
308
285
  "impressions",
309
286
  "spend",
@@ -576,8 +553,17 @@ function isCompactRelease(value) {
576
553
  return release !== void 0 && (release.major > 3 || release.major === 3 && release.minor >= 2);
577
554
  }
578
555
  function negotiatedVersion(capabilities, clientVersion) {
579
- if (capabilities.version === "v2") return "2.5";
556
+ if (capabilities.version === "v2" || !capabilities.majorVersions.includes(3)) {
557
+ throw new import_errors.ConfigurationError(
558
+ "AdCP 2 reached end of life on 2026-08-01. Media-buy lifecycle negotiation requires AdCP 3."
559
+ );
560
+ }
580
561
  if (capabilities.servedVersion && parseRelease(capabilities.servedVersion)) {
562
+ if (parseRelease(capabilities.servedVersion).major < 3) {
563
+ throw new import_errors.ConfigurationError(
564
+ "The seller served an unsupported AdCP version. Media-buy lifecycle negotiation requires AdCP 3."
565
+ );
566
+ }
581
567
  if (compareRelease(capabilities.servedVersion, clientVersion) > 0) {
582
568
  const displayedServedVersion = capabilities.servedVersion.slice(0, 64);
583
569
  throw new import_errors.ConfigurationError(
@@ -586,7 +572,10 @@ function negotiatedVersion(capabilities, clientVersion) {
586
572
  }
587
573
  return capabilities.servedVersion;
588
574
  }
589
- const advertisedVersions = capabilities.supportedVersions?.filter((version) => parseRelease(version) !== void 0);
575
+ const advertisedVersions = capabilities.supportedVersions?.filter((version) => {
576
+ const release = parseRelease(version);
577
+ return release !== void 0 && release.major >= 3;
578
+ });
590
579
  const candidates = advertisedVersions?.filter(
591
580
  (version) => parseRelease(version) !== void 0 && compareRelease(version, clientVersion) <= 0
592
581
  );
@@ -1863,7 +1852,7 @@ class MediaBuyLifecycleCoordinator {
1863
1852
  }
1864
1853
  assertLegacyMetrics(operation, value, path) {
1865
1854
  if (value === void 0 || isCompactRelease(this.negotiated_version)) return;
1866
- const supported = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_AVAILABLE_METRICS : compareRelease(this.negotiated_version, "3.0") >= 0 ? V30_AVAILABLE_METRICS : V25_AVAILABLE_METRICS;
1855
+ const supported = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_AVAILABLE_METRICS : V30_AVAILABLE_METRICS;
1867
1856
  const unsupported = array(value).filter((metric) => typeof metric !== "string" || !supported.has(metric));
1868
1857
  if (unsupported.length === 0) return;
1869
1858
  throw this.unsupported(
@@ -1876,7 +1865,7 @@ class MediaBuyLifecycleCoordinator {
1876
1865
  const offerFilters = record(value);
1877
1866
  this.assertLegacyOfferFilterShapes(operation, offerFilters);
1878
1867
  this.assertLegacyMetrics(operation, offerFilters.required_metrics, "criteria.offer_filters.required_metrics");
1879
- const legacyOfferFilterFields = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_OFFER_FILTER_FIELDS : compareRelease(this.negotiated_version, "3.0") >= 0 ? V30_OFFER_FILTER_FIELDS : V25_OFFER_FILTER_FIELDS;
1868
+ const legacyOfferFilterFields = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_OFFER_FILTER_FIELDS : V30_OFFER_FILTER_FIELDS;
1880
1869
  const unsupportedFields = Object.keys(offerFilters).filter((field) => !legacyOfferFilterFields.has(field));
1881
1870
  if (unsupportedFields.length > 0) {
1882
1871
  const paths = unsupportedFields.map((field) => `criteria.offer_filters.${field}`);
@@ -1924,13 +1913,13 @@ class MediaBuyLifecycleCoordinator {
1924
1913
  legacyPurchaseSourceVersion() {
1925
1914
  if (compareRelease(this.negotiated_version, "3.1") >= 0) return "3.1";
1926
1915
  if (compareRelease(this.negotiated_version, "3.0") >= 0) return "3.0";
1927
- return "2.5";
1916
+ throw new import_errors.ConfigurationError("Legacy purchase continuations require AdCP 3.0 or 3.1.");
1928
1917
  }
1929
1918
  legacyPurchaseLosses(sourceVersion) {
1930
1919
  return [
1931
1920
  "feed_version_not_atomic",
1932
1921
  "pricing_version_not_atomic",
1933
- ...sourceVersion === "2.5" || this.idempotencyReplayTtlMs === void 0 ? ["mutation_idempotency_not_guaranteed"] : []
1922
+ ...this.idempotencyReplayTtlMs === void 0 ? ["mutation_idempotency_not_guaranteed"] : []
1934
1923
  ];
1935
1924
  }
1936
1925
  legacyWireTaskOptions(sourceVersion = this.negotiated_version) {
@@ -4202,17 +4191,13 @@ class MediaBuyLifecycleCoordinator {
4202
4191
  "Every legacy_create_request package pricing_option_id must match an option observed for its selected product."
4203
4192
  );
4204
4193
  }
4205
- if (continuation.sourceAdcpVersion !== "2.5" && this.accountScope(legacyRequest.account) !== accountScope) {
4194
+ if (this.accountScope(legacyRequest.account) !== accountScope) {
4206
4195
  throw new LegacyPurchaseContinuationError(
4207
4196
  "binding_mismatch",
4208
4197
  "legacy_create_request.account must match the continuation account."
4209
4198
  );
4210
4199
  }
4211
- const validation = (0, import_schema_validator2.validateRequest)(
4212
- "create_media_buy",
4213
- legacyRequest,
4214
- continuation.sourceAdcpVersion === "2.5" ? "v2.5" : continuation.sourceAdcpVersion
4215
- );
4200
+ const validation = (0, import_schema_validator2.validateRequest)("create_media_buy", legacyRequest, continuation.sourceAdcpVersion);
4216
4201
  if (!validation.valid) {
4217
4202
  throw new LegacyPurchaseContinuationError(
4218
4203
  "request_invalid",
@@ -4266,7 +4251,7 @@ class MediaBuyLifecycleCoordinator {
4266
4251
  "The final seller payload pricing options must match the observed product snapshot."
4267
4252
  );
4268
4253
  }
4269
- if (continuation.sourceAdcpVersion !== "2.5" && this.accountScope(finalRequest.account) !== accountScope) {
4254
+ if (this.accountScope(finalRequest.account) !== accountScope) {
4270
4255
  throw new LegacyPurchaseContinuationError(
4271
4256
  "binding_mismatch",
4272
4257
  "The final seller payload account must match the continuation account."
@@ -5035,11 +5020,7 @@ class MediaBuyLifecycleCoordinator {
5035
5020
  if (result.data === void 0) {
5036
5021
  throw this.legacyPurchaseAmbiguousError("The seller reported completion without a create_media_buy result.");
5037
5022
  }
5038
- const validation = (0, import_schema_validator.validateResponse)(
5039
- "create_media_buy",
5040
- result.data,
5041
- sourceVersion === "2.5" ? "v2.5" : sourceVersion
5042
- );
5023
+ const validation = (0, import_schema_validator.validateResponse)("create_media_buy", result.data, sourceVersion);
5043
5024
  if (!validation.valid) {
5044
5025
  throw this.legacyPurchaseAmbiguousError(
5045
5026
  `The seller returned an invalid terminal create_media_buy result: ${(0, import_schema_validator.formatIssues)(validation.issues)}`
@@ -7018,7 +6999,7 @@ class MediaBuyLifecycleCoordinator {
7018
6999
  if (purchases.length === 0) {
7019
7000
  throw this.unsupported("buyProducts", "purchases", "Legacy create_media_buy requires at least one purchase.");
7020
7001
  }
7021
- const packageFields = isCompactRelease(this.negotiated_version) ? V32_PURCHASE_FIELDS : compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_PURCHASE_FIELDS : compareRelease(this.negotiated_version, "3.0") >= 0 ? V30_PURCHASE_FIELDS : V25_PURCHASE_FIELDS;
7002
+ const packageFields = isCompactRelease(this.negotiated_version) ? V32_PURCHASE_FIELDS : compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_PURCHASE_FIELDS : V30_PURCHASE_FIELDS;
7022
7003
  const packages = purchases.map((value, index) => {
7023
7004
  const purchase = record(value);
7024
7005
  const unsupportedFields = Object.keys(purchase).filter((key) => !packageFields.has(key));
@@ -7865,7 +7846,7 @@ class MediaBuyLifecycleCoordinator {
7865
7846
  lifecycle,
7866
7847
  ["update_media_buy"],
7867
7848
  losses,
7868
- losses.length ? ["The v2.5 update cannot atomically enforce the compact revision token."] : []
7849
+ losses.length ? ["The established update cannot atomically enforce the compact revision token."] : []
7869
7850
  ),
7870
7851
  (data) => data
7871
7852
  );
@@ -160,7 +160,7 @@ const CONTROL_MEDIA_BUY_FIELDS = /* @__PURE__ */ new Set([
160
160
  "revision",
161
161
  "total_budget"
162
162
  ]);
163
- const V25_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
163
+ const V30_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
164
164
  "budget_range",
165
165
  "channels",
166
166
  "countries",
@@ -169,10 +169,7 @@ const V25_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
169
169
  "is_fixed_price",
170
170
  "min_exposures",
171
171
  "standard_formats_only",
172
- "start_date"
173
- ]);
174
- const V30_OFFER_FILTER_FIELDS = /* @__PURE__ */ new Set([
175
- ...V25_OFFER_FILTER_FIELDS,
172
+ "start_date",
176
173
  "exclusivity",
177
174
  "required_performance_standards",
178
175
  "trusted_match"
@@ -200,15 +197,6 @@ const V30_PURCHASE_FIELDS = /* @__PURE__ */ new Set([
200
197
  "start_time",
201
198
  "targeting_overlay"
202
199
  ]);
203
- const V25_PURCHASE_FIELDS = /* @__PURE__ */ new Set([
204
- "budget",
205
- "ext",
206
- "impressions",
207
- "pacing",
208
- "pricing_option_id",
209
- "product_id",
210
- "targeting_overlay"
211
- ]);
212
200
  const V31_PURCHASE_FIELDS = /* @__PURE__ */ new Set([...V30_PURCHASE_FIELDS, "format_option_refs"]);
213
201
  const V32_PURCHASE_FIELDS = /* @__PURE__ */ new Set([
214
202
  ...V31_PURCHASE_FIELDS,
@@ -286,17 +274,6 @@ const V30_AVAILABLE_METRICS = /* @__PURE__ */ new Set([
286
274
  "dooh_metrics",
287
275
  "cost_per_click"
288
276
  ]);
289
- const V25_AVAILABLE_METRICS = /* @__PURE__ */ new Set([
290
- "impressions",
291
- "spend",
292
- "clicks",
293
- "ctr",
294
- "video_completions",
295
- "completion_rate",
296
- "conversions",
297
- "viewability",
298
- "engagement_rate"
299
- ]);
300
277
  const V31_AVAILABLE_METRICS = /* @__PURE__ */ new Set([
301
278
  "impressions",
302
279
  "spend",
@@ -569,8 +546,17 @@ function isCompactRelease(value) {
569
546
  return release !== void 0 && (release.major > 3 || release.major === 3 && release.minor >= 2);
570
547
  }
571
548
  function negotiatedVersion(capabilities, clientVersion) {
572
- if (capabilities.version === "v2") return "2.5";
549
+ if (capabilities.version === "v2" || !capabilities.majorVersions.includes(3)) {
550
+ throw new ConfigurationError(
551
+ "AdCP 2 reached end of life on 2026-08-01. Media-buy lifecycle negotiation requires AdCP 3."
552
+ );
553
+ }
573
554
  if (capabilities.servedVersion && parseRelease(capabilities.servedVersion)) {
555
+ if (parseRelease(capabilities.servedVersion).major < 3) {
556
+ throw new ConfigurationError(
557
+ "The seller served an unsupported AdCP version. Media-buy lifecycle negotiation requires AdCP 3."
558
+ );
559
+ }
574
560
  if (compareRelease(capabilities.servedVersion, clientVersion) > 0) {
575
561
  const displayedServedVersion = capabilities.servedVersion.slice(0, 64);
576
562
  throw new ConfigurationError(
@@ -579,7 +565,10 @@ function negotiatedVersion(capabilities, clientVersion) {
579
565
  }
580
566
  return capabilities.servedVersion;
581
567
  }
582
- const advertisedVersions = capabilities.supportedVersions?.filter((version) => parseRelease(version) !== void 0);
568
+ const advertisedVersions = capabilities.supportedVersions?.filter((version) => {
569
+ const release = parseRelease(version);
570
+ return release !== void 0 && release.major >= 3;
571
+ });
583
572
  const candidates = advertisedVersions?.filter(
584
573
  (version) => parseRelease(version) !== void 0 && compareRelease(version, clientVersion) <= 0
585
574
  );
@@ -1856,7 +1845,7 @@ class MediaBuyLifecycleCoordinator {
1856
1845
  }
1857
1846
  assertLegacyMetrics(operation, value, path) {
1858
1847
  if (value === void 0 || isCompactRelease(this.negotiated_version)) return;
1859
- const supported = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_AVAILABLE_METRICS : compareRelease(this.negotiated_version, "3.0") >= 0 ? V30_AVAILABLE_METRICS : V25_AVAILABLE_METRICS;
1848
+ const supported = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_AVAILABLE_METRICS : V30_AVAILABLE_METRICS;
1860
1849
  const unsupported = array(value).filter((metric) => typeof metric !== "string" || !supported.has(metric));
1861
1850
  if (unsupported.length === 0) return;
1862
1851
  throw this.unsupported(
@@ -1869,7 +1858,7 @@ class MediaBuyLifecycleCoordinator {
1869
1858
  const offerFilters = record(value);
1870
1859
  this.assertLegacyOfferFilterShapes(operation, offerFilters);
1871
1860
  this.assertLegacyMetrics(operation, offerFilters.required_metrics, "criteria.offer_filters.required_metrics");
1872
- const legacyOfferFilterFields = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_OFFER_FILTER_FIELDS : compareRelease(this.negotiated_version, "3.0") >= 0 ? V30_OFFER_FILTER_FIELDS : V25_OFFER_FILTER_FIELDS;
1861
+ const legacyOfferFilterFields = compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_OFFER_FILTER_FIELDS : V30_OFFER_FILTER_FIELDS;
1873
1862
  const unsupportedFields = Object.keys(offerFilters).filter((field) => !legacyOfferFilterFields.has(field));
1874
1863
  if (unsupportedFields.length > 0) {
1875
1864
  const paths = unsupportedFields.map((field) => `criteria.offer_filters.${field}`);
@@ -1917,13 +1906,13 @@ class MediaBuyLifecycleCoordinator {
1917
1906
  legacyPurchaseSourceVersion() {
1918
1907
  if (compareRelease(this.negotiated_version, "3.1") >= 0) return "3.1";
1919
1908
  if (compareRelease(this.negotiated_version, "3.0") >= 0) return "3.0";
1920
- return "2.5";
1909
+ throw new ConfigurationError("Legacy purchase continuations require AdCP 3.0 or 3.1.");
1921
1910
  }
1922
1911
  legacyPurchaseLosses(sourceVersion) {
1923
1912
  return [
1924
1913
  "feed_version_not_atomic",
1925
1914
  "pricing_version_not_atomic",
1926
- ...sourceVersion === "2.5" || this.idempotencyReplayTtlMs === void 0 ? ["mutation_idempotency_not_guaranteed"] : []
1915
+ ...this.idempotencyReplayTtlMs === void 0 ? ["mutation_idempotency_not_guaranteed"] : []
1927
1916
  ];
1928
1917
  }
1929
1918
  legacyWireTaskOptions(sourceVersion = this.negotiated_version) {
@@ -4195,17 +4184,13 @@ class MediaBuyLifecycleCoordinator {
4195
4184
  "Every legacy_create_request package pricing_option_id must match an option observed for its selected product."
4196
4185
  );
4197
4186
  }
4198
- if (continuation.sourceAdcpVersion !== "2.5" && this.accountScope(legacyRequest.account) !== accountScope) {
4187
+ if (this.accountScope(legacyRequest.account) !== accountScope) {
4199
4188
  throw new LegacyPurchaseContinuationError(
4200
4189
  "binding_mismatch",
4201
4190
  "legacy_create_request.account must match the continuation account."
4202
4191
  );
4203
4192
  }
4204
- const validation = validateRequest(
4205
- "create_media_buy",
4206
- legacyRequest,
4207
- continuation.sourceAdcpVersion === "2.5" ? "v2.5" : continuation.sourceAdcpVersion
4208
- );
4193
+ const validation = validateRequest("create_media_buy", legacyRequest, continuation.sourceAdcpVersion);
4209
4194
  if (!validation.valid) {
4210
4195
  throw new LegacyPurchaseContinuationError(
4211
4196
  "request_invalid",
@@ -4259,7 +4244,7 @@ class MediaBuyLifecycleCoordinator {
4259
4244
  "The final seller payload pricing options must match the observed product snapshot."
4260
4245
  );
4261
4246
  }
4262
- if (continuation.sourceAdcpVersion !== "2.5" && this.accountScope(finalRequest.account) !== accountScope) {
4247
+ if (this.accountScope(finalRequest.account) !== accountScope) {
4263
4248
  throw new LegacyPurchaseContinuationError(
4264
4249
  "binding_mismatch",
4265
4250
  "The final seller payload account must match the continuation account."
@@ -5028,11 +5013,7 @@ class MediaBuyLifecycleCoordinator {
5028
5013
  if (result.data === void 0) {
5029
5014
  throw this.legacyPurchaseAmbiguousError("The seller reported completion without a create_media_buy result.");
5030
5015
  }
5031
- const validation = validateResponse(
5032
- "create_media_buy",
5033
- result.data,
5034
- sourceVersion === "2.5" ? "v2.5" : sourceVersion
5035
- );
5016
+ const validation = validateResponse("create_media_buy", result.data, sourceVersion);
5036
5017
  if (!validation.valid) {
5037
5018
  throw this.legacyPurchaseAmbiguousError(
5038
5019
  `The seller returned an invalid terminal create_media_buy result: ${formatIssues(validation.issues)}`
@@ -7011,7 +6992,7 @@ class MediaBuyLifecycleCoordinator {
7011
6992
  if (purchases.length === 0) {
7012
6993
  throw this.unsupported("buyProducts", "purchases", "Legacy create_media_buy requires at least one purchase.");
7013
6994
  }
7014
- const packageFields = isCompactRelease(this.negotiated_version) ? V32_PURCHASE_FIELDS : compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_PURCHASE_FIELDS : compareRelease(this.negotiated_version, "3.0") >= 0 ? V30_PURCHASE_FIELDS : V25_PURCHASE_FIELDS;
6995
+ const packageFields = isCompactRelease(this.negotiated_version) ? V32_PURCHASE_FIELDS : compareRelease(this.negotiated_version, "3.1") >= 0 ? V31_PURCHASE_FIELDS : V30_PURCHASE_FIELDS;
7015
6996
  const packages = purchases.map((value, index) => {
7016
6997
  const purchase = record(value);
7017
6998
  const unsupportedFields = Object.keys(purchase).filter((key) => !packageFields.has(key));
@@ -7858,7 +7839,7 @@ class MediaBuyLifecycleCoordinator {
7858
7839
  lifecycle,
7859
7840
  ["update_media_buy"],
7860
7841
  losses,
7861
- losses.length ? ["The v2.5 update cannot atomically enforce the compact revision token."] : []
7842
+ losses.length ? ["The established update cannot atomically enforce the compact revision token."] : []
7862
7843
  ),
7863
7844
  (data) => data
7864
7845
  );
@@ -4,7 +4,7 @@ export { LEGACY_COARSE_ACTIONS } from './types.mjs';
4
4
  export type { LiveMediaBuyAction } from './action-types.mjs';
5
5
  export type { AvailableActionsResult, AvailableActionsSource } from './available-actions.mjs';
6
6
  export { findAvailableAction, getAvailableActions, getRollupParent, __resetValidActionsWarningForTests, } from './available-actions.mjs';
7
- export type { BuyerPropertyPolicy, NormalizedPolicyDomain, ProductPolicyProductLike, ProductPropertyPolicyDiagnostic, ProductPropertyPolicyDiagnosticCode, ProductPropertyPolicyDiagnosticSeverity, ProductPropertyPolicyMode, ProductPropertyPolicySelectorBehavior, ProductPropertyPolicyValidationResult, ValidateProductsAgainstPropertyPolicyOptions, } from './property-policy.mjs';
7
+ export type { BuyerPropertyPolicy, NormalizedPolicyDomain, ProductPolicyProductLike, ProductPolicyResolvedProperty, ProductPropertyPolicyIdentifier, ProductPropertyPolicyDiagnostic, ProductPropertyPolicyDiagnosticCode, ProductPropertyPolicyDiagnosticSeverity, ProductPropertyPolicyMode, ProductPropertyPolicySelectorBehavior, ProductPropertyPolicyValidationResult, ValidateProductsAgainstPropertyPolicyOptions, } from './property-policy.mjs';
8
8
  export { ProductPropertyPolicyError, normalizeDomainForPropertyPolicy, validateProductsAgainstPropertyPolicy, } from './property-policy.mjs';
9
9
  export type { DecomposedUpdateMediaBuy, DecomposedUpdateMediaBuyMutation, MediaBuyMutationDirection, MediaBuyMutationScope, ModeMismatchRecovery, PreflightAllowed, PreflightDenial, PreflightDenied, PreflightResult, ResolvedAction, } from './preflight.mjs';
10
10
  export { canAddPackages, canCancel, canDecreaseBudget, canExtendFlight, canIncreaseBudget, canPause, canReallocateBudget, canRemoveCreative, canRemovePackages, canReplaceCreative, canResume, canShortenFlight, canUpdateCreativeAssignments, canUpdateFlightDates, canUpdateFrequencyCaps, canUpdatePacing, canUpdateTargeting, decomposeUpdateMediaBuy, getActionForMutation, preflightUpdateMediaBuy, recoveryForModeMismatch, } from './preflight.mjs';
@@ -4,7 +4,7 @@ export { LEGACY_COARSE_ACTIONS } from './types';
4
4
  export type { LiveMediaBuyAction } from './action-types';
5
5
  export type { AvailableActionsResult, AvailableActionsSource } from './available-actions';
6
6
  export { findAvailableAction, getAvailableActions, getRollupParent, __resetValidActionsWarningForTests, } from './available-actions';
7
- export type { BuyerPropertyPolicy, NormalizedPolicyDomain, ProductPolicyProductLike, ProductPropertyPolicyDiagnostic, ProductPropertyPolicyDiagnosticCode, ProductPropertyPolicyDiagnosticSeverity, ProductPropertyPolicyMode, ProductPropertyPolicySelectorBehavior, ProductPropertyPolicyValidationResult, ValidateProductsAgainstPropertyPolicyOptions, } from './property-policy';
7
+ export type { BuyerPropertyPolicy, NormalizedPolicyDomain, ProductPolicyProductLike, ProductPolicyResolvedProperty, ProductPropertyPolicyIdentifier, ProductPropertyPolicyDiagnostic, ProductPropertyPolicyDiagnosticCode, ProductPropertyPolicyDiagnosticSeverity, ProductPropertyPolicyMode, ProductPropertyPolicySelectorBehavior, ProductPropertyPolicyValidationResult, ValidateProductsAgainstPropertyPolicyOptions, } from './property-policy';
8
8
  export { ProductPropertyPolicyError, normalizeDomainForPropertyPolicy, validateProductsAgainstPropertyPolicy, } from './property-policy';
9
9
  export type { DecomposedUpdateMediaBuy, DecomposedUpdateMediaBuyMutation, MediaBuyMutationDirection, MediaBuyMutationScope, ModeMismatchRecovery, PreflightAllowed, PreflightDenial, PreflightDenied, PreflightResult, ResolvedAction, } from './preflight';
10
10
  export { canAddPackages, canCancel, canDecreaseBudget, canExtendFlight, canIncreaseBudget, canPause, canReallocateBudget, canRemoveCreative, canRemovePackages, canReplaceCreative, canResume, canShortenFlight, canUpdateCreativeAssignments, canUpdateFlightDates, canUpdateFrequencyCaps, canUpdatePacing, canUpdateTargeting, decomposeUpdateMediaBuy, getActionForMutation, preflightUpdateMediaBuy, recoveryForModeMismatch, } from './preflight';
@@ -3,7 +3,7 @@ import type { CompatibilityPurchaseCoordinatorInput } from '../types/core.genera
3
3
  import type { CreateMediaBuyResponse } from '../types/tools.generated.mjs';
4
4
  /** Minimum crash-recovery horizon after an SDK-owned publication is acknowledged. */
5
5
  export declare const LEGACY_PURCHASE_PUBLICATION_PROOF_RETENTION_MS: number;
6
- export type LegacyPurchaseSourceVersion = '2.5' | '3.0' | '3.1';
6
+ export type LegacyPurchaseSourceVersion = '3.0' | '3.1';
7
7
  export type LegacyPurchaseLoss = 'feed_version_not_atomic' | 'pricing_version_not_atomic' | 'mutation_idempotency_not_guaranteed';
8
8
  export type LegacyPurchaseTerminalResult = TaskResultCompleted<CreateMediaBuyResponse> | TaskResultFailure<CreateMediaBuyResponse>;
9
9
  export interface LegacyPurchasePendingSettlement {
@@ -39,7 +39,7 @@ export interface LegacyPurchaseClaim {
39
39
  claimedAt: string;
40
40
  replayExpiresAt: string;
41
41
  selectedProductIds: string[];
42
- /** Source-version mutation key (`idempotency_key`, or v2.5 `buyer_ref`). */
42
+ /** Source-version mutation idempotency key. */
43
43
  sourceMutationKey?: string;
44
44
  /** Seller task handle retained after a submitted response. */
45
45
  sellerTaskId?: string;
@@ -3,7 +3,7 @@ import type { CompatibilityPurchaseCoordinatorInput } from '../types/core.genera
3
3
  import type { CreateMediaBuyResponse } from '../types/tools.generated';
4
4
  /** Minimum crash-recovery horizon after an SDK-owned publication is acknowledged. */
5
5
  export declare const LEGACY_PURCHASE_PUBLICATION_PROOF_RETENTION_MS: number;
6
- export type LegacyPurchaseSourceVersion = '2.5' | '3.0' | '3.1';
6
+ export type LegacyPurchaseSourceVersion = '3.0' | '3.1';
7
7
  export type LegacyPurchaseLoss = 'feed_version_not_atomic' | 'pricing_version_not_atomic' | 'mutation_idempotency_not_guaranteed';
8
8
  export type LegacyPurchaseTerminalResult = TaskResultCompleted<CreateMediaBuyResponse> | TaskResultFailure<CreateMediaBuyResponse>;
9
9
  export interface LegacyPurchasePendingSettlement {
@@ -39,7 +39,7 @@ export interface LegacyPurchaseClaim {
39
39
  claimedAt: string;
40
40
  replayExpiresAt: string;
41
41
  selectedProductIds: string[];
42
- /** Source-version mutation key (`idempotency_key`, or v2.5 `buyer_ref`). */
42
+ /** Source-version mutation idempotency key. */
43
43
  sourceMutationKey?: string;
44
44
  /** Seller task handle retained after a submitted response. */
45
45
  sellerTaskId?: string;
@@ -1,3 +1,4 @@
1
+ export declare function isSupportedPropertyIdentifierType(type: string): boolean;
1
2
  export type ProductPropertyPolicyMode = 'audit' | 'filter' | 'reject_response';
2
3
  export type ProductPropertyPolicySelectorBehavior = 'allow' | 'flag' | 'reject';
3
4
  export interface BuyerPropertyPolicy {
@@ -10,6 +11,13 @@ export interface BuyerPropertyPolicy {
10
11
  * `*.example.com` matches subdomains only).
11
12
  */
12
13
  allowedPropertyIdentifiers?: readonly ProductPropertyPolicyIdentifier[];
14
+ /**
15
+ * Complete publisher catalogs, keyed by canonical publisher domain. Enables
16
+ * app/CTV identifier matching for all/by_id/by_tag selectors. Omitted keys
17
+ * mean unresolved metadata; an empty array means a known empty catalog.
18
+ * Property IDs remain publisher-scoped and are never treated as app IDs.
19
+ */
20
+ publisherProperties?: Readonly<Record<string, readonly ProductPolicyResolvedProperty[] | undefined>>;
13
21
  /**
14
22
  * Require products to match the allowed domain/identifier set even when that
15
23
  * set is empty. Used when a request property_list resolves successfully to
@@ -56,7 +64,12 @@ export interface ProductPropertyPolicyIdentifier {
56
64
  type: string;
57
65
  value: string;
58
66
  }
59
- export type ProductPropertyPolicyDiagnosticCode = 'outside_property_list' | 'excluded_domain' | 'excluded_property_id' | 'missing_publisher_properties' | 'unresolved_tag_selector' | 'unknown_selector' | 'malformed_publisher_domain';
67
+ export interface ProductPolicyResolvedProperty {
68
+ property_id?: string;
69
+ identifiers: readonly ProductPropertyPolicyIdentifier[];
70
+ tags?: readonly string[];
71
+ }
72
+ export type ProductPropertyPolicyDiagnosticCode = 'outside_property_list' | 'excluded_domain' | 'excluded_property_id' | 'missing_publisher_properties' | 'unresolved_tag_selector' | 'unknown_selector' | 'malformed_publisher_domain' | 'unresolved_property_identifiers' | 'excluded_resolved_property';
60
73
  export type ProductPropertyPolicyDiagnosticSeverity = 'rejected' | 'flagged';
61
74
  export interface ProductPropertyPolicyDiagnostic {
62
75
  code: ProductPropertyPolicyDiagnosticCode;
@@ -75,6 +88,7 @@ export interface ProductPropertyPolicyDiagnostic {
75
88
  matched_excluded_domain?: string;
76
89
  property_ids?: string[];
77
90
  matched_property_ids?: string[];
91
+ identifier_types?: string[];
78
92
  }
79
93
  export interface ProductPropertyPolicyValidationResult<TProduct extends ProductPolicyProductLike> {
80
94
  mode: ProductPropertyPolicyMode;
@@ -1,3 +1,4 @@
1
+ export declare function isSupportedPropertyIdentifierType(type: string): boolean;
1
2
  export type ProductPropertyPolicyMode = 'audit' | 'filter' | 'reject_response';
2
3
  export type ProductPropertyPolicySelectorBehavior = 'allow' | 'flag' | 'reject';
3
4
  export interface BuyerPropertyPolicy {
@@ -10,6 +11,13 @@ export interface BuyerPropertyPolicy {
10
11
  * `*.example.com` matches subdomains only).
11
12
  */
12
13
  allowedPropertyIdentifiers?: readonly ProductPropertyPolicyIdentifier[];
14
+ /**
15
+ * Complete publisher catalogs, keyed by canonical publisher domain. Enables
16
+ * app/CTV identifier matching for all/by_id/by_tag selectors. Omitted keys
17
+ * mean unresolved metadata; an empty array means a known empty catalog.
18
+ * Property IDs remain publisher-scoped and are never treated as app IDs.
19
+ */
20
+ publisherProperties?: Readonly<Record<string, readonly ProductPolicyResolvedProperty[] | undefined>>;
13
21
  /**
14
22
  * Require products to match the allowed domain/identifier set even when that
15
23
  * set is empty. Used when a request property_list resolves successfully to
@@ -56,7 +64,12 @@ export interface ProductPropertyPolicyIdentifier {
56
64
  type: string;
57
65
  value: string;
58
66
  }
59
- export type ProductPropertyPolicyDiagnosticCode = 'outside_property_list' | 'excluded_domain' | 'excluded_property_id' | 'missing_publisher_properties' | 'unresolved_tag_selector' | 'unknown_selector' | 'malformed_publisher_domain';
67
+ export interface ProductPolicyResolvedProperty {
68
+ property_id?: string;
69
+ identifiers: readonly ProductPropertyPolicyIdentifier[];
70
+ tags?: readonly string[];
71
+ }
72
+ export type ProductPropertyPolicyDiagnosticCode = 'outside_property_list' | 'excluded_domain' | 'excluded_property_id' | 'missing_publisher_properties' | 'unresolved_tag_selector' | 'unknown_selector' | 'malformed_publisher_domain' | 'unresolved_property_identifiers' | 'excluded_resolved_property';
60
73
  export type ProductPropertyPolicyDiagnosticSeverity = 'rejected' | 'flagged';
61
74
  export interface ProductPropertyPolicyDiagnostic {
62
75
  code: ProductPropertyPolicyDiagnosticCode;
@@ -75,6 +88,7 @@ export interface ProductPropertyPolicyDiagnostic {
75
88
  matched_excluded_domain?: string;
76
89
  property_ids?: string[];
77
90
  matched_property_ids?: string[];
91
+ identifier_types?: string[];
78
92
  }
79
93
  export interface ProductPropertyPolicyValidationResult<TProduct extends ProductPolicyProductLike> {
80
94
  mode: ProductPropertyPolicyMode;