@adcp/sdk 16.0.0-beta.8 → 16.0.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.
Files changed (371) hide show
  1. package/AGENTS.md +3 -3
  2. package/README.md +5 -2
  3. package/bin/adcp.js +10 -13
  4. package/dist/lib/core/AgentClient.d.mts +8 -5
  5. package/dist/lib/core/AgentClient.d.ts +8 -5
  6. package/dist/lib/core/AgentClient.js +9 -4
  7. package/dist/lib/core/AgentClient.mjs +9 -4
  8. package/dist/lib/core/SingleAgentClient.d.mts +19 -112
  9. package/dist/lib/core/SingleAgentClient.d.ts +19 -112
  10. package/dist/lib/core/SingleAgentClient.js +270 -252
  11. package/dist/lib/core/SingleAgentClient.mjs +275 -253
  12. package/dist/lib/core/TaskExecutor.d.mts +1 -16
  13. package/dist/lib/core/TaskExecutor.d.ts +1 -16
  14. package/dist/lib/core/TaskExecutor.js +34 -51
  15. package/dist/lib/core/TaskExecutor.mjs +12 -29
  16. package/dist/lib/core/product-cache.d.mts +3 -1
  17. package/dist/lib/core/product-cache.d.ts +3 -1
  18. package/dist/lib/core/product-cache.js +2 -1
  19. package/dist/lib/core/product-cache.mjs +2 -1
  20. package/dist/lib/errors/index.d.mts +2 -8
  21. package/dist/lib/errors/index.d.ts +2 -8
  22. package/dist/lib/errors/index.js +4 -4
  23. package/dist/lib/errors/index.mjs +4 -4
  24. package/dist/lib/identity-3.3/revocation.js +6 -7
  25. package/dist/lib/identity-3.3/revocation.mjs +6 -7
  26. package/dist/lib/index.d.mts +4 -4
  27. package/dist/lib/index.d.ts +4 -4
  28. package/dist/lib/index.js +0 -14
  29. package/dist/lib/index.mjs +0 -14
  30. package/dist/lib/media-buy/compatibility.d.mts +1 -1
  31. package/dist/lib/media-buy/compatibility.d.ts +1 -1
  32. package/dist/lib/media-buy/compatibility.js +26 -45
  33. package/dist/lib/media-buy/compatibility.mjs +26 -45
  34. package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
  35. package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
  36. package/dist/lib/protocols/index.js +14 -22
  37. package/dist/lib/protocols/index.mjs +5 -13
  38. package/dist/lib/registry/types.d.mts +3 -2
  39. package/dist/lib/registry/types.d.ts +3 -2
  40. package/dist/lib/registry/types.generated.d.mts +51 -11
  41. package/dist/lib/registry/types.generated.d.ts +51 -11
  42. package/dist/lib/reporting/source/conformance.d.mts +8 -8
  43. package/dist/lib/reporting/source/conformance.d.ts +8 -8
  44. package/dist/lib/reporting/source/manifest.d.mts +27 -27
  45. package/dist/lib/reporting/source/manifest.d.ts +27 -27
  46. package/dist/lib/server/create-adcp-server.js +7 -1
  47. package/dist/lib/server/create-adcp-server.mjs +7 -1
  48. package/dist/lib/signing/crypto.d.mts +1 -1
  49. package/dist/lib/signing/crypto.d.ts +1 -1
  50. package/dist/lib/signing/crypto.js +2 -45
  51. package/dist/lib/signing/crypto.mjs +2 -46
  52. package/dist/lib/signing/web-bot-auth.d.mts +18 -10
  53. package/dist/lib/signing/web-bot-auth.d.ts +18 -10
  54. package/dist/lib/signing/web-bot-auth.js +29 -24
  55. package/dist/lib/signing/web-bot-auth.mjs +29 -24
  56. package/dist/lib/testing/compliance/comply.js +0 -8
  57. package/dist/lib/testing/compliance/comply.mjs +0 -8
  58. package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
  59. package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
  60. package/dist/lib/testing/index.d.mts +2 -0
  61. package/dist/lib/testing/index.d.ts +2 -0
  62. package/dist/lib/testing/index.js +5 -0
  63. package/dist/lib/testing/index.mjs +3 -0
  64. package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
  65. package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
  66. package/dist/lib/testing/scenarios/capabilities.js +8 -41
  67. package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
  68. package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
  69. package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
  70. package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
  71. package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
  72. package/dist/lib/testing/storyboard/index.d.mts +2 -0
  73. package/dist/lib/testing/storyboard/index.d.ts +2 -0
  74. package/dist/lib/testing/storyboard/index.js +5 -0
  75. package/dist/lib/testing/storyboard/index.mjs +3 -0
  76. package/dist/lib/testing/storyboard/loader.js +12 -0
  77. package/dist/lib/testing/storyboard/loader.mjs +12 -0
  78. package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
  79. package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
  80. package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
  81. package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
  82. package/dist/lib/testing/storyboard/runner.js +318 -58
  83. package/dist/lib/testing/storyboard/runner.mjs +322 -58
  84. package/dist/lib/testing/storyboard/types.d.mts +38 -16
  85. package/dist/lib/testing/storyboard/types.d.ts +38 -16
  86. package/dist/lib/testing/storyboard/types.js +1 -0
  87. package/dist/lib/testing/storyboard/types.mjs +1 -0
  88. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  89. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  90. package/dist/lib/testing/storyboard/validations.js +64 -0
  91. package/dist/lib/testing/storyboard/validations.mjs +67 -1
  92. package/dist/lib/testing/types.d.mts +15 -1
  93. package/dist/lib/testing/types.d.ts +15 -1
  94. package/dist/lib/types/schemas.generated.d.ts +65 -65
  95. package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
  96. package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
  97. package/dist/lib/utils/adcp-version-config.js +6 -0
  98. package/dist/lib/utils/adcp-version-config.mjs +6 -0
  99. package/dist/lib/utils/capabilities.d.mts +7 -9
  100. package/dist/lib/utils/capabilities.d.ts +7 -9
  101. package/dist/lib/utils/capabilities.js +14 -28
  102. package/dist/lib/utils/capabilities.mjs +14 -27
  103. package/dist/lib/utils/creative-adapter.d.mts +15 -113
  104. package/dist/lib/utils/creative-adapter.d.ts +15 -113
  105. package/dist/lib/utils/creative-adapter.js +7 -106
  106. package/dist/lib/utils/creative-adapter.mjs +7 -102
  107. package/dist/lib/utils/format-renders.d.mts +20 -80
  108. package/dist/lib/utils/format-renders.d.ts +20 -80
  109. package/dist/lib/utils/format-renders.js +7 -67
  110. package/dist/lib/utils/format-renders.mjs +7 -66
  111. package/dist/lib/utils/index.d.mts +1 -2
  112. package/dist/lib/utils/index.d.ts +1 -2
  113. package/dist/lib/utils/index.js +0 -7
  114. package/dist/lib/utils/index.mjs +0 -6
  115. package/dist/lib/utils/preview-normalizer.d.mts +31 -80
  116. package/dist/lib/utils/preview-normalizer.d.ts +31 -80
  117. package/dist/lib/utils/preview-normalizer.js +5 -50
  118. package/dist/lib/utils/preview-normalizer.mjs +5 -49
  119. package/dist/lib/utils/pricing-adapter.d.mts +2 -36
  120. package/dist/lib/utils/pricing-adapter.d.ts +2 -36
  121. package/dist/lib/utils/pricing-adapter.js +0 -105
  122. package/dist/lib/utils/pricing-adapter.mjs +0 -100
  123. package/dist/lib/utils/request-normalizer.d.mts +1 -2
  124. package/dist/lib/utils/request-normalizer.d.ts +1 -2
  125. package/dist/lib/v2/projection/catalog.d.mts +4 -0
  126. package/dist/lib/v2/projection/catalog.d.ts +4 -0
  127. package/dist/lib/v2/projection/creative-delivery.d.mts +17 -9
  128. package/dist/lib/v2/projection/creative-delivery.d.ts +17 -9
  129. package/dist/lib/v2/projection/creative-delivery.js +78 -10
  130. package/dist/lib/v2/projection/creative-delivery.mjs +77 -10
  131. package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
  132. package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
  133. package/dist/lib/v2/projection/legacy-metadata.js +41 -1
  134. package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
  135. package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
  136. package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
  137. package/dist/lib/v2/projection/v1-to-v2.js +13 -0
  138. package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
  139. package/dist/lib/validation/client-hooks.d.mts +1 -4
  140. package/dist/lib/validation/client-hooks.d.ts +1 -4
  141. package/dist/lib/validation/get-products-request.d.mts +1 -1
  142. package/dist/lib/validation/get-products-request.d.ts +1 -1
  143. package/dist/lib/validation/schema-loader.js +6 -0
  144. package/dist/lib/validation/schema-loader.mjs +6 -0
  145. package/dist/lib/validation/schema-validator.js +1 -26
  146. package/dist/lib/validation/schema-validator.mjs +1 -26
  147. package/dist/lib/version.d.mts +5 -5
  148. package/dist/lib/version.d.ts +5 -5
  149. package/dist/lib/version.js +3 -5
  150. package/dist/lib/version.mjs +3 -5
  151. package/docs/TYPE-SUMMARY.md +2 -2
  152. package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
  153. package/docs/guides/CONFORMANCE.md +25 -0
  154. package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
  155. package/docs/guides/CREATIVE-DELIVERY.md +63 -7
  156. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
  157. package/docs/guides/REPORTING-STABILITY.md +7 -7
  158. package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
  159. package/docs/llms.txt +3 -3
  160. package/docs/migration-13-to-14.md +20 -16
  161. package/docs/migration-14.x-rc-worksheet.md +5 -5
  162. package/docs/migration-4.x-to-5.x.md +12 -7
  163. package/docs/migration-agent-identity-3.3.md +44 -19
  164. package/docs/migration-drop-adcp-2.md +25 -0
  165. package/docs/migration-reporting-storage-package.md +3 -3
  166. package/docs/releases/16.0.0.md +20 -0
  167. package/package.json +3 -18
  168. package/skills/call-adcp-agent/SKILL.md +23 -25
  169. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
  170. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
  171. package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
  172. package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
  173. package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
  174. package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
  175. package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
  176. package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
  177. package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
  178. package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
  179. package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
  180. package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
  181. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
  182. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
  183. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
  184. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
  185. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
  186. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
  187. package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
  188. package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
  189. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
  190. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
  191. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
  192. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
  193. package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
  194. package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
  195. package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
  196. package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
  197. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
  198. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
  199. package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
  200. package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
  201. package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
  202. package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
  203. package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
  204. package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
  205. package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
  206. package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
  207. package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
  208. package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
  209. package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
  210. package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
  211. package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
  212. package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
  213. package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
  214. package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
  215. package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
  216. package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
  217. package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
  218. package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
  219. package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
  220. package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
  221. package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
  222. package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
  223. package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
  224. package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
  225. package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
  226. package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
  227. package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
  228. package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
  229. package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
  230. package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
  231. package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
  232. package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
  233. package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
  234. package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
  235. package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
  236. package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
  237. package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
  238. package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
  239. package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
  240. package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
  241. package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
  242. package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
  243. package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
  244. package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
  245. package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
  246. package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
  247. package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
  248. package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
  249. package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
  250. package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
  251. package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
  252. package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
  253. package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
  254. package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
  255. package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
  256. package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
  257. package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
  258. package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
  259. package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
  260. package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
  261. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
  262. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
  263. package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
  264. package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
  265. package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
  266. package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
  267. package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
  268. package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
  269. package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
  270. package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
  271. package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
  272. package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
  273. package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
  274. package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
  275. package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
  276. package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
  277. package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
  278. package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
  279. package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
  280. package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
  281. package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
  282. package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
  283. package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
  284. package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
  285. package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
  286. package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
  287. package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
  288. package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
  289. package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
  290. package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
  291. package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
  292. package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
  293. package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
  294. package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
  295. package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
  296. package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
  297. package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
  298. package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
  299. package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
  300. package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
  301. package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
  302. package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
  303. package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
  304. package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
  305. package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
  306. package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
  307. package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
  308. package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
  309. package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
  310. package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
  311. package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
  312. package/dist/lib/schemas-data/v2.5/index.json +0 -604
  313. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
  314. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
  315. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
  316. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
  317. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
  318. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
  319. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
  320. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
  321. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
  322. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
  323. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
  324. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
  325. package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
  326. package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
  327. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
  328. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
  329. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
  330. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
  331. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
  332. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
  333. package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
  334. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
  335. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
  336. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
  337. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
  338. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
  339. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
  340. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
  341. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
  342. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
  343. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
  344. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
  345. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
  346. package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
  347. package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
  348. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
  349. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
  350. package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
  351. package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
  352. package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
  353. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
  354. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
  355. package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
  356. package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
  357. package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
  358. package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
  359. package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
  360. package/dist/lib/types/v2-5/index.d.mts +0 -1
  361. package/dist/lib/types/v2-5/index.d.ts +0 -1
  362. package/dist/lib/types/v2-5/index.js +0 -22
  363. package/dist/lib/types/v2-5/index.mjs +0 -1
  364. package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
  365. package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
  366. package/dist/lib/types/v2-5/tools.generated.js +0 -16
  367. package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
  368. package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
  369. package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
  370. package/dist/lib/utils/sync-creatives-adapter.js +0 -83
  371. package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
@@ -12,9 +12,21 @@ type DeclarationWithMetadata = CanonicalFormatDeclaration;
12
12
  export type PackageSelectionMetadata = {
13
13
  format_option_refs?: readonly unknown[];
14
14
  };
15
+ export interface SellerFormatEvidence {
16
+ scopeKey: string;
17
+ accountScope: string;
18
+ productId: string;
19
+ expiresAt: number;
20
+ }
21
+ /** Positive evidence is client/account-bound and cannot survive a JSON round trip on its own. */
22
+ export declare function rememberSellerFormatEvidence(declaration: object, evidence: SellerFormatEvidence): void;
23
+ export declare function sellerFormatEvidence(declaration: object): SellerFormatEvidence | undefined;
15
24
  /** Keep seller-origin evidence private while canonical products pass through the cache. */
16
25
  export declare function rememberSellerDeclaredFormatOption(declaration: object, declared: boolean): void;
17
26
  export declare function sellerDeclaredFormatOption(declaration: object): boolean | undefined;
27
+ /** A pure legacy projection cannot establish what the original seller advertised. */
28
+ export declare function rememberSynthesizedFormatOption(declaration: object): void;
29
+ export declare function isSynthesizedFormatOption(declaration: object): boolean;
18
30
  export declare function concealLegacyFormatRefs(declaration: ProductFormatDeclaration | V2ProductFormatDeclaration | CanonicalFormatDeclaration): DeclarationWithMetadata;
19
31
  export declare function legacyFormatRefsForDeclaration(value: unknown): readonly V1FormatId[];
20
32
  export declare function selectedFormatOptions(value: unknown): readonly DeclarationWithMetadata[];
@@ -12,9 +12,21 @@ type DeclarationWithMetadata = CanonicalFormatDeclaration;
12
12
  export type PackageSelectionMetadata = {
13
13
  format_option_refs?: readonly unknown[];
14
14
  };
15
+ export interface SellerFormatEvidence {
16
+ scopeKey: string;
17
+ accountScope: string;
18
+ productId: string;
19
+ expiresAt: number;
20
+ }
21
+ /** Positive evidence is client/account-bound and cannot survive a JSON round trip on its own. */
22
+ export declare function rememberSellerFormatEvidence(declaration: object, evidence: SellerFormatEvidence): void;
23
+ export declare function sellerFormatEvidence(declaration: object): SellerFormatEvidence | undefined;
15
24
  /** Keep seller-origin evidence private while canonical products pass through the cache. */
16
25
  export declare function rememberSellerDeclaredFormatOption(declaration: object, declared: boolean): void;
17
26
  export declare function sellerDeclaredFormatOption(declaration: object): boolean | undefined;
27
+ /** A pure legacy projection cannot establish what the original seller advertised. */
28
+ export declare function rememberSynthesizedFormatOption(declaration: object): void;
29
+ export declare function isSynthesizedFormatOption(declaration: object): boolean;
18
30
  export declare function concealLegacyFormatRefs(declaration: ProductFormatDeclaration | V2ProductFormatDeclaration | CanonicalFormatDeclaration): DeclarationWithMetadata;
19
31
  export declare function legacyFormatRefsForDeclaration(value: unknown): readonly V1FormatId[];
20
32
  export declare function selectedFormatOptions(value: unknown): readonly DeclarationWithMetadata[];
@@ -20,22 +20,52 @@ var legacy_metadata_exports = {};
20
20
  __export(legacy_metadata_exports, {
21
21
  concealLegacyFormatRefs: () => concealLegacyFormatRefs,
22
22
  concealSelectedFormatOptions: () => concealSelectedFormatOptions,
23
+ isSynthesizedFormatOption: () => isSynthesizedFormatOption,
23
24
  legacyFormatRefsForDeclaration: () => legacyFormatRefsForDeclaration,
24
25
  rememberSellerDeclaredFormatOption: () => rememberSellerDeclaredFormatOption,
26
+ rememberSellerFormatEvidence: () => rememberSellerFormatEvidence,
27
+ rememberSynthesizedFormatOption: () => rememberSynthesizedFormatOption,
25
28
  selectedFormatOptions: () => selectedFormatOptions,
26
29
  sellerDeclaredFormatOption: () => sellerDeclaredFormatOption,
30
+ sellerFormatEvidence: () => sellerFormatEvidence,
27
31
  structuredCloneWithLegacyCreativeMetadata: () => structuredCloneWithLegacyCreativeMetadata,
28
32
  transferLegacyCreativeMetadata: () => transferLegacyCreativeMetadata
29
33
  });
30
34
  module.exports = __toCommonJS(legacy_metadata_exports);
35
+ var import_jcs = require('../../utils/jcs.js');
31
36
  const legacyRefsByDeclaration = /* @__PURE__ */ new WeakMap();
32
37
  const selectedOptionsByRefs = /* @__PURE__ */ new WeakMap();
33
38
  const sellerDeclaredByDeclaration = /* @__PURE__ */ new WeakMap();
39
+ const sellerEvidenceByDeclaration = /* @__PURE__ */ new WeakMap();
40
+ function rememberSellerFormatEvidence(declaration, evidence) {
41
+ try {
42
+ sellerEvidenceByDeclaration.set(
43
+ declaration,
44
+ Object.freeze({ ...evidence, fingerprint: (0, import_jcs.canonicalize)(declaration) })
45
+ );
46
+ } catch {
47
+ }
48
+ }
49
+ function sellerFormatEvidence(declaration) {
50
+ const evidence = sellerEvidenceByDeclaration.get(declaration);
51
+ try {
52
+ return evidence?.fingerprint === (0, import_jcs.canonicalize)(declaration) ? evidence : void 0;
53
+ } catch {
54
+ return void 0;
55
+ }
56
+ }
34
57
  function rememberSellerDeclaredFormatOption(declaration, declared) {
35
58
  sellerDeclaredByDeclaration.set(declaration, declared);
36
59
  }
37
60
  function sellerDeclaredFormatOption(declaration) {
38
- return sellerDeclaredByDeclaration.get(declaration);
61
+ const origin = sellerDeclaredByDeclaration.get(declaration);
62
+ return typeof origin === "boolean" ? origin : void 0;
63
+ }
64
+ function rememberSynthesizedFormatOption(declaration) {
65
+ sellerDeclaredByDeclaration.set(declaration, "synthesized");
66
+ }
67
+ function isSynthesizedFormatOption(declaration) {
68
+ return sellerDeclaredByDeclaration.get(declaration) === "synthesized";
39
69
  }
40
70
  function concealLegacyFormatRefs(declaration) {
41
71
  const { v1_format_ref: refs, ...canonical } = declaration;
@@ -43,6 +73,8 @@ function concealLegacyFormatRefs(declaration) {
43
73
  const refsToConceal = Array.isArray(existingHidden) && existingHidden.length > 0 ? existingHidden : refs;
44
74
  const declared = sellerDeclaredByDeclaration.get(declaration);
45
75
  if (declared !== void 0) sellerDeclaredByDeclaration.set(canonical, declared);
76
+ const evidence = sellerEvidenceByDeclaration.get(declaration);
77
+ if (evidence) sellerEvidenceByDeclaration.set(canonical, evidence);
46
78
  if (Array.isArray(refsToConceal) && refsToConceal.length > 0) {
47
79
  legacyRefsByDeclaration.set(
48
80
  canonical,
@@ -75,6 +107,8 @@ function transferLegacyCreativeMetadata(source, target) {
75
107
  if (selected) selectedOptionsByRefs.set(target, selected);
76
108
  const declared = sellerDeclaredByDeclaration.get(source);
77
109
  if (declared !== void 0) sellerDeclaredByDeclaration.set(target, declared);
110
+ const evidence = sellerEvidenceByDeclaration.get(source);
111
+ if (evidence) sellerEvidenceByDeclaration.set(target, evidence);
78
112
  }
79
113
  function structuredCloneWithLegacyCreativeMetadata(value) {
80
114
  const clone = structuredClone(value);
@@ -82,6 +116,8 @@ function structuredCloneWithLegacyCreativeMetadata(value) {
82
116
  const snapshotMetadata = (source, target) => {
83
117
  const declared = sellerDeclaredByDeclaration.get(source);
84
118
  if (declared !== void 0) sellerDeclaredByDeclaration.set(target, declared);
119
+ const evidence = sellerEvidenceByDeclaration.get(source);
120
+ if (evidence) sellerEvidenceByDeclaration.set(target, evidence);
85
121
  const refs = legacyRefsByDeclaration.get(source);
86
122
  if (refs) legacyRefsByDeclaration.set(target, structuredClone(refs));
87
123
  const selected = selectedOptionsByRefs.get(source);
@@ -119,10 +155,14 @@ function structuredCloneWithLegacyCreativeMetadata(value) {
119
155
  0 && (module.exports = {
120
156
  concealLegacyFormatRefs,
121
157
  concealSelectedFormatOptions,
158
+ isSynthesizedFormatOption,
122
159
  legacyFormatRefsForDeclaration,
123
160
  rememberSellerDeclaredFormatOption,
161
+ rememberSellerFormatEvidence,
162
+ rememberSynthesizedFormatOption,
124
163
  selectedFormatOptions,
125
164
  sellerDeclaredFormatOption,
165
+ sellerFormatEvidence,
126
166
  structuredCloneWithLegacyCreativeMetadata,
127
167
  transferLegacyCreativeMetadata
128
168
  });
@@ -1,11 +1,37 @@
1
+ import { canonicalize } from "../../utils/jcs.mjs";
1
2
  const legacyRefsByDeclaration = /* @__PURE__ */ new WeakMap();
2
3
  const selectedOptionsByRefs = /* @__PURE__ */ new WeakMap();
3
4
  const sellerDeclaredByDeclaration = /* @__PURE__ */ new WeakMap();
5
+ const sellerEvidenceByDeclaration = /* @__PURE__ */ new WeakMap();
6
+ function rememberSellerFormatEvidence(declaration, evidence) {
7
+ try {
8
+ sellerEvidenceByDeclaration.set(
9
+ declaration,
10
+ Object.freeze({ ...evidence, fingerprint: canonicalize(declaration) })
11
+ );
12
+ } catch {
13
+ }
14
+ }
15
+ function sellerFormatEvidence(declaration) {
16
+ const evidence = sellerEvidenceByDeclaration.get(declaration);
17
+ try {
18
+ return evidence?.fingerprint === canonicalize(declaration) ? evidence : void 0;
19
+ } catch {
20
+ return void 0;
21
+ }
22
+ }
4
23
  function rememberSellerDeclaredFormatOption(declaration, declared) {
5
24
  sellerDeclaredByDeclaration.set(declaration, declared);
6
25
  }
7
26
  function sellerDeclaredFormatOption(declaration) {
8
- return sellerDeclaredByDeclaration.get(declaration);
27
+ const origin = sellerDeclaredByDeclaration.get(declaration);
28
+ return typeof origin === "boolean" ? origin : void 0;
29
+ }
30
+ function rememberSynthesizedFormatOption(declaration) {
31
+ sellerDeclaredByDeclaration.set(declaration, "synthesized");
32
+ }
33
+ function isSynthesizedFormatOption(declaration) {
34
+ return sellerDeclaredByDeclaration.get(declaration) === "synthesized";
9
35
  }
10
36
  function concealLegacyFormatRefs(declaration) {
11
37
  const { v1_format_ref: refs, ...canonical } = declaration;
@@ -13,6 +39,8 @@ function concealLegacyFormatRefs(declaration) {
13
39
  const refsToConceal = Array.isArray(existingHidden) && existingHidden.length > 0 ? existingHidden : refs;
14
40
  const declared = sellerDeclaredByDeclaration.get(declaration);
15
41
  if (declared !== void 0) sellerDeclaredByDeclaration.set(canonical, declared);
42
+ const evidence = sellerEvidenceByDeclaration.get(declaration);
43
+ if (evidence) sellerEvidenceByDeclaration.set(canonical, evidence);
16
44
  if (Array.isArray(refsToConceal) && refsToConceal.length > 0) {
17
45
  legacyRefsByDeclaration.set(
18
46
  canonical,
@@ -45,6 +73,8 @@ function transferLegacyCreativeMetadata(source, target) {
45
73
  if (selected) selectedOptionsByRefs.set(target, selected);
46
74
  const declared = sellerDeclaredByDeclaration.get(source);
47
75
  if (declared !== void 0) sellerDeclaredByDeclaration.set(target, declared);
76
+ const evidence = sellerEvidenceByDeclaration.get(source);
77
+ if (evidence) sellerEvidenceByDeclaration.set(target, evidence);
48
78
  }
49
79
  function structuredCloneWithLegacyCreativeMetadata(value) {
50
80
  const clone = structuredClone(value);
@@ -52,6 +82,8 @@ function structuredCloneWithLegacyCreativeMetadata(value) {
52
82
  const snapshotMetadata = (source, target) => {
53
83
  const declared = sellerDeclaredByDeclaration.get(source);
54
84
  if (declared !== void 0) sellerDeclaredByDeclaration.set(target, declared);
85
+ const evidence = sellerEvidenceByDeclaration.get(source);
86
+ if (evidence) sellerEvidenceByDeclaration.set(target, evidence);
55
87
  const refs = legacyRefsByDeclaration.get(source);
56
88
  if (refs) legacyRefsByDeclaration.set(target, structuredClone(refs));
57
89
  const selected = selectedOptionsByRefs.get(source);
@@ -88,10 +120,14 @@ function structuredCloneWithLegacyCreativeMetadata(value) {
88
120
  export {
89
121
  concealLegacyFormatRefs,
90
122
  concealSelectedFormatOptions,
123
+ isSynthesizedFormatOption,
91
124
  legacyFormatRefsForDeclaration,
92
125
  rememberSellerDeclaredFormatOption,
126
+ rememberSellerFormatEvidence,
127
+ rememberSynthesizedFormatOption,
93
128
  selectedFormatOptions,
94
129
  sellerDeclaredFormatOption,
130
+ sellerFormatEvidence,
95
131
  structuredCloneWithLegacyCreativeMetadata,
96
132
  transferLegacyCreativeMetadata
97
133
  };
@@ -12,7 +12,7 @@ export type NormalizedLegacyProduct<TProduct extends LegacyProductNormalizationI
12
12
  forecast?: Record<string, unknown>;
13
13
  };
14
14
  /**
15
- * Apply the SDK's complete v2.5 `get_products` compatibility normalization
15
+ * Apply the SDK's established `get_products` field normalization
16
16
  * before projecting a response recovered through a custom `tasks_get` flow.
17
17
  */
18
18
  export declare function normalizeLegacyGetProductsResponse<TProduct extends LegacyProductNormalizationInput, TResponse extends object & {
@@ -12,7 +12,7 @@ export type NormalizedLegacyProduct<TProduct extends LegacyProductNormalizationI
12
12
  forecast?: Record<string, unknown>;
13
13
  };
14
14
  /**
15
- * Apply the SDK's complete v2.5 `get_products` compatibility normalization
15
+ * Apply the SDK's established `get_products` field normalization
16
16
  * before projecting a response recovered through a custom `tasks_get` flow.
17
17
  */
18
18
  export declare function normalizeLegacyGetProductsResponse<TProduct extends LegacyProductNormalizationInput, TResponse extends object & {
@@ -339,6 +339,7 @@ function projectV1ProductToV2(v1, options) {
339
339
  ...rest,
340
340
  format_options
341
341
  };
342
+ for (const declaration of format_options) (0, import_legacy_metadata.rememberSynthesizedFormatOption)(declaration);
342
343
  return { v2: v2Product, diagnostics, legacyRoutes: (0, import_legacy_routes.legacyRoutesForProduct)(v1.product_id, format_options) };
343
344
  }
344
345
  function canonicalDeclarationFromBareId(id, options) {
@@ -400,6 +401,18 @@ function compatible(option, ref) {
400
401
  )) {
401
402
  return false;
402
403
  }
404
+ for (const dimension of ["width", "height"]) {
405
+ const actual = constraints[dimension];
406
+ const min = params[`min_${dimension}`];
407
+ const max = params[`max_${dimension}`];
408
+ if (typeof actual === "number" && (typeof min === "number" && actual < min || typeof max === "number" && actual > max))
409
+ return false;
410
+ }
411
+ const duration = constraints.duration_ms_exact;
412
+ if (typeof duration === "number" && typeof params.duration_ms_exact !== "number" && Array.isArray(params.duration_ms_range)) {
413
+ const [min, max] = params.duration_ms_range;
414
+ if (typeof min === "number" && duration < min || typeof max === "number" && duration > max) return false;
415
+ }
403
416
  if (Array.isArray(params.sizes) && params.sizes.length > 0) {
404
417
  return params.sizes.some((value) => {
405
418
  const size = record(value);
@@ -15,6 +15,7 @@ import { legacyRoutesForProduct } from "./legacy-routes.mjs";
15
15
  import {
16
16
  concealLegacyFormatRefs,
17
17
  legacyFormatRefsForDeclaration,
18
+ rememberSynthesizedFormatOption,
18
19
  transferLegacyCreativeMetadata
19
20
  } from "./legacy-metadata.mjs";
20
21
  const SDK_ID = `@adcp/sdk@${LIBRARY_VERSION}`;
@@ -321,6 +322,7 @@ function projectV1ProductToV2(v1, options) {
321
322
  ...rest,
322
323
  format_options
323
324
  };
325
+ for (const declaration of format_options) rememberSynthesizedFormatOption(declaration);
324
326
  return { v2: v2Product, diagnostics, legacyRoutes: legacyRoutesForProduct(v1.product_id, format_options) };
325
327
  }
326
328
  function canonicalDeclarationFromBareId(id, options) {
@@ -382,6 +384,18 @@ function compatible(option, ref) {
382
384
  )) {
383
385
  return false;
384
386
  }
387
+ for (const dimension of ["width", "height"]) {
388
+ const actual = constraints[dimension];
389
+ const min = params[`min_${dimension}`];
390
+ const max = params[`max_${dimension}`];
391
+ if (typeof actual === "number" && (typeof min === "number" && actual < min || typeof max === "number" && actual > max))
392
+ return false;
393
+ }
394
+ const duration = constraints.duration_ms_exact;
395
+ if (typeof duration === "number" && typeof params.duration_ms_exact !== "number" && Array.isArray(params.duration_ms_range)) {
396
+ const [min, max] = params.duration_ms_range;
397
+ if (typeof min === "number" && duration < min || typeof max === "number" && duration > max) return false;
398
+ }
385
399
  if (Array.isArray(params.sizes) && params.sizes.length > 0) {
386
400
  return params.sizes.some((value) => {
387
401
  const size = record(value);
@@ -16,10 +16,7 @@ export interface ValidationHookConfig {
16
16
  *
17
17
  * Both default to `warn` everywhere — buyers get drift surfaced through
18
18
  * `result.debug_logs` without losing the response payload to a strict
19
- * rejection. v2.5 sellers in particular ship enough legacy drift
20
- * (envelope nulls, optional-required fields, enum mismatches) that
21
- * strict-by-default leaves callers staring at "0 products" with no
22
- * useful signal. Buyers and harnesses that want hard-stop behavior
19
+ * rejection. Buyers and harnesses that want hard-stop behavior
23
20
  * (conformance suites, third-party validators) opt into strict via
24
21
  * `validation: { responses: 'strict' }` — explicit config always wins.
25
22
  *
@@ -16,10 +16,7 @@ export interface ValidationHookConfig {
16
16
  *
17
17
  * Both default to `warn` everywhere — buyers get drift surfaced through
18
18
  * `result.debug_logs` without losing the response payload to a strict
19
- * rejection. v2.5 sellers in particular ship enough legacy drift
20
- * (envelope nulls, optional-required fields, enum mismatches) that
21
- * strict-by-default leaves callers staring at "0 products" with no
22
- * useful signal. Buyers and harnesses that want hard-stop behavior
19
+ * rejection. Buyers and harnesses that want hard-stop behavior
23
20
  * (conformance suites, third-party validators) opt into strict via
24
21
  * `validation: { responses: 'strict' }` — explicit config always wins.
25
22
  *
@@ -107,7 +107,7 @@ export declare const LegacyGetProductsRequestSchema: z.ZodObject<{
107
107
  required_overlay_support: z.ZodOptional<z.ZodType<import("../types/core.generated.mjs").TargetingOverlayRequirements, import("../types/core.generated.mjs").TargetingOverlayRequirements, z.core.$ZodTypeInternals<import("../types/core.generated.mjs").TargetingOverlayRequirements, import("../types/core.generated.mjs").TargetingOverlayRequirements>>>;
108
108
  required_media_buy_support: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements, import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements, import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements>>>;
109
109
  property_list: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").PropertyListReference, import("../types/tools.generated.mjs").PropertyListReference, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").PropertyListReference, import("../types/tools.generated.mjs").PropertyListReference>>>;
110
- fields: z.ZodOptional<z.ZodType<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], z.core.$ZodTypeInternals<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[]>>>;
110
+ fields: z.ZodOptional<z.ZodType<("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], z.core.$ZodTypeInternals<("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[]>>>;
111
111
  time_budget: z.ZodOptional<z.ZodType<import("../index.mjs").Duration, import("../index.mjs").Duration, z.core.$ZodTypeInternals<import("../index.mjs").Duration, import("../index.mjs").Duration>>>;
112
112
  push_notification_config: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").PushNotificationConfig, import("../types/tools.generated.mjs").PushNotificationConfig, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").PushNotificationConfig, import("../types/tools.generated.mjs").PushNotificationConfig>>>;
113
113
  pagination: z.ZodOptional<z.ZodType<import("../index.mjs").PaginationRequest, import("../index.mjs").PaginationRequest, z.core.$ZodTypeInternals<import("../index.mjs").PaginationRequest, import("../index.mjs").PaginationRequest>>>;
@@ -107,7 +107,7 @@ export declare const LegacyGetProductsRequestSchema: z.ZodObject<{
107
107
  required_overlay_support: z.ZodOptional<z.ZodType<import("../types/core.generated").TargetingOverlayRequirements, import("../types/core.generated").TargetingOverlayRequirements, z.core.$ZodTypeInternals<import("../types/core.generated").TargetingOverlayRequirements, import("../types/core.generated").TargetingOverlayRequirements>>>;
108
108
  required_media_buy_support: z.ZodOptional<z.ZodType<import("../types/tools.generated").ProductMediaBuySupportRequirements, import("../types/tools.generated").ProductMediaBuySupportRequirements, z.core.$ZodTypeInternals<import("../types/tools.generated").ProductMediaBuySupportRequirements, import("../types/tools.generated").ProductMediaBuySupportRequirements>>>;
109
109
  property_list: z.ZodOptional<z.ZodType<import("../types/tools.generated").PropertyListReference, import("../types/tools.generated").PropertyListReference, z.core.$ZodTypeInternals<import("../types/tools.generated").PropertyListReference, import("../types/tools.generated").PropertyListReference>>>;
110
- fields: z.ZodOptional<z.ZodType<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], z.core.$ZodTypeInternals<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[]>>>;
110
+ fields: z.ZodOptional<z.ZodType<("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], z.core.$ZodTypeInternals<("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "audience_evidence" | "identity" | "forecast" | "description" | "publisher_properties" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[]>>>;
111
111
  time_budget: z.ZodOptional<z.ZodType<import("..").Duration, import("..").Duration, z.core.$ZodTypeInternals<import("..").Duration, import("..").Duration>>>;
112
112
  push_notification_config: z.ZodOptional<z.ZodType<import("../types/tools.generated").PushNotificationConfig, import("../types/tools.generated").PushNotificationConfig, z.core.$ZodTypeInternals<import("../types/tools.generated").PushNotificationConfig, import("../types/tools.generated").PushNotificationConfig>>>;
113
113
  pagination: z.ZodOptional<z.ZodType<import("..").PaginationRequest, import("..").PaginationRequest, z.core.$ZodTypeInternals<import("..").PaginationRequest, import("..").PaginationRequest>>>;
@@ -80,6 +80,12 @@ function isRuntimeSchemaDirectory(name) {
80
80
  return name !== "bundled" && !TRANSPORT_PROJECTION_DIRECTORIES.has(name);
81
81
  }
82
82
  function resolveBundleKey(version) {
83
+ if (/^v?2(?:\.|$)/.test(version)) {
84
+ throw new import_errors.ConfigurationError(
85
+ "AdCP 2 reached end of life on 2026-08-01; only AdCP 3 schema bundles are supported.",
86
+ "adcpVersion"
87
+ );
88
+ }
83
89
  const minorOnly = version.match(/^(\d+)\.(\d+)$/);
84
90
  if (minorOnly) return `${minorOnly[1]}.${minorOnly[2]}`;
85
91
  const releasePrecisionPre = version.match(/^(\d+)\.(\d+)-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*$/);
@@ -24,6 +24,12 @@ function isRuntimeSchemaDirectory(name) {
24
24
  return name !== "bundled" && !TRANSPORT_PROJECTION_DIRECTORIES.has(name);
25
25
  }
26
26
  function resolveBundleKey(version) {
27
+ if (/^v?2(?:\.|$)/.test(version)) {
28
+ throw new ConfigurationError(
29
+ "AdCP 2 reached end of life on 2026-08-01; only AdCP 3 schema bundles are supported.",
30
+ "adcpVersion"
31
+ );
32
+ }
27
33
  const minorOnly = version.match(/^(\d+)\.(\d+)$/);
28
34
  if (minorOnly) return `${minorOnly[1]}.${minorOnly[2]}`;
29
35
  const releasePrecisionPre = version.match(/^(\d+)\.(\d+)-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*$/);
@@ -26,7 +26,6 @@ __export(schema_validator_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(schema_validator_exports);
28
28
  var import_schema_loader = require('./schema-loader.js');
29
- var import_version = require('../version.js');
30
29
  var import_hints = require('./hints.js');
31
30
  var import_envelope_status_compat = require('../utils/envelope-status-compat.js');
32
31
  var import_diagnostic_limits = require('./diagnostic-limits.js');
@@ -310,29 +309,6 @@ function validateRequest(toolName, payload, version) {
310
309
  ...rootSchemaId && { schemaId: rootSchemaId }
311
310
  };
312
311
  }
313
- function stripEnvelopeNulls(payload, schema) {
314
- if (payload == null || typeof payload !== "object" || Array.isArray(payload)) return payload;
315
- const s = schema;
316
- if (!s) return payload;
317
- const properties = s.properties;
318
- if (!properties) return payload;
319
- const required = new Set(Array.isArray(s.required) ? s.required : []);
320
- const payloadObj = payload;
321
- let cloned = null;
322
- for (const [key, value] of Object.entries(payloadObj)) {
323
- if (value !== null) continue;
324
- if (required.has(key)) continue;
325
- const propSchema = properties[key];
326
- if (!propSchema) continue;
327
- const type = propSchema.type;
328
- const isNullable = type === "null" || Array.isArray(type) && type.includes("null");
329
- if (!isNullable) {
330
- if (!cloned) cloned = { ...payloadObj };
331
- delete cloned[key];
332
- }
333
- }
334
- return cloned ?? payload;
335
- }
336
312
  function selectResponseVariant(payload) {
337
313
  if (payload && typeof payload === "object" && "status" in payload) {
338
314
  const status = payload.status;
@@ -349,8 +325,7 @@ function validateResponse(toolName, payload, version) {
349
325
  const effective = validator ?? (variant !== "sync" ? (0, import_schema_loader.getValidator)(toolName, "sync", version) : void 0);
350
326
  if (!effective) return OK;
351
327
  const rootSchema = effective.schema;
352
- const isV2Bundle = version != null && (0, import_version.parseAdcpMajorVersion)(version) === 2;
353
- const normalizedPayload = isV2Bundle ? stripEnvelopeNulls(compatPayload, rootSchema) : compatPayload;
328
+ const normalizedPayload = compatPayload;
354
329
  const valid = effective(normalizedPayload);
355
330
  const usedVariant = validator ? variant : "sync";
356
331
  const variantFallback = !validator && variant !== "sync";
@@ -1,5 +1,4 @@
1
1
  import { getValidator, getRegisteredSchemaIds } from "./schema-loader.mjs";
2
- import { parseAdcpMajorVersion } from "../version.mjs";
3
2
  import { findHint } from "./hints.mjs";
4
3
  import { injectLegacyEnvelopeStatus } from "../utils/envelope-status-compat.mjs";
5
4
  import { boundValidationIssues } from "./diagnostic-limits.mjs";
@@ -283,29 +282,6 @@ function validateRequest(toolName, payload, version) {
283
282
  ...rootSchemaId && { schemaId: rootSchemaId }
284
283
  };
285
284
  }
286
- function stripEnvelopeNulls(payload, schema) {
287
- if (payload == null || typeof payload !== "object" || Array.isArray(payload)) return payload;
288
- const s = schema;
289
- if (!s) return payload;
290
- const properties = s.properties;
291
- if (!properties) return payload;
292
- const required = new Set(Array.isArray(s.required) ? s.required : []);
293
- const payloadObj = payload;
294
- let cloned = null;
295
- for (const [key, value] of Object.entries(payloadObj)) {
296
- if (value !== null) continue;
297
- if (required.has(key)) continue;
298
- const propSchema = properties[key];
299
- if (!propSchema) continue;
300
- const type = propSchema.type;
301
- const isNullable = type === "null" || Array.isArray(type) && type.includes("null");
302
- if (!isNullable) {
303
- if (!cloned) cloned = { ...payloadObj };
304
- delete cloned[key];
305
- }
306
- }
307
- return cloned ?? payload;
308
- }
309
285
  function selectResponseVariant(payload) {
310
286
  if (payload && typeof payload === "object" && "status" in payload) {
311
287
  const status = payload.status;
@@ -322,8 +298,7 @@ function validateResponse(toolName, payload, version) {
322
298
  const effective = validator ?? (variant !== "sync" ? getValidator(toolName, "sync", version) : void 0);
323
299
  if (!effective) return OK;
324
300
  const rootSchema = effective.schema;
325
- const isV2Bundle = version != null && parseAdcpMajorVersion(version) === 2;
326
- const normalizedPayload = isV2Bundle ? stripEnvelopeNulls(compatPayload, rootSchema) : compatPayload;
301
+ const normalizedPayload = compatPayload;
327
302
  const valid = effective(normalizedPayload);
328
303
  const usedVariant = validator ? variant : "sync";
329
304
  const variantFallback = !validator && variant !== "sync";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AdCP SDK library version
3
3
  */
4
- export declare const LIBRARY_VERSION = "16.0.0-beta.8";
4
+ export declare const LIBRARY_VERSION = "16.0.0";
5
5
  /**
6
6
  * AdCP specification version this library is built for
7
7
  */
@@ -19,7 +19,7 @@ export declare const ADCP_MAJOR_VERSION = 3;
19
19
  * this list by hand; bumping the AdCP pin via `npm run sync-version`
20
20
  * extends it.
21
21
  */
22
- export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
22
+ export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
23
23
  /**
24
24
  * String literal union of every AdCP version the SDK formally supports.
25
25
  *
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
33
33
  * Full version information
34
34
  */
35
35
  export declare const VERSION_INFO: {
36
- readonly library: "16.0.0-beta.8";
36
+ readonly library: "16.0.0";
37
37
  readonly adcp: "3.2.5";
38
- readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
39
- readonly generatedAt: "2026-10-18T01:21:23.594Z";
38
+ readonly compatibleVersions: readonly ["v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
39
+ readonly generatedAt: "2026-10-19T23:27:30.750Z";
40
40
  };
41
41
  /**
42
42
  * Get the AdCP specification version this library is built for
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AdCP SDK library version
3
3
  */
4
- export declare const LIBRARY_VERSION = "16.0.0-beta.8";
4
+ export declare const LIBRARY_VERSION = "16.0.0";
5
5
  /**
6
6
  * AdCP specification version this library is built for
7
7
  */
@@ -19,7 +19,7 @@ export declare const ADCP_MAJOR_VERSION = 3;
19
19
  * this list by hand; bumping the AdCP pin via `npm run sync-version`
20
20
  * extends it.
21
21
  */
22
- export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
22
+ export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
23
23
  /**
24
24
  * String literal union of every AdCP version the SDK formally supports.
25
25
  *
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
33
33
  * Full version information
34
34
  */
35
35
  export declare const VERSION_INFO: {
36
- readonly library: "16.0.0-beta.8";
36
+ readonly library: "16.0.0";
37
37
  readonly adcp: "3.2.5";
38
- readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
39
- readonly generatedAt: "2026-10-18T01:21:23.594Z";
38
+ readonly compatibleVersions: readonly ["v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.1.25", "3.1.26", "3.1.27", "3.1.28", "3.1.29", "3.2.1", "3.2", "3.2.2", "3.2.3", "3.2.4", "3.2.5"];
39
+ readonly generatedAt: "2026-10-19T23:27:30.750Z";
40
40
  };
41
41
  /**
42
42
  * Get the AdCP specification version this library is built for