@adcp/sdk 6.9.0 → 6.10.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 (233) hide show
  1. package/bin/adcp.js +285 -5
  2. package/compliance/cache/3.0.6.previous/domains/brand/index.yaml +163 -0
  3. package/compliance/cache/3.0.6.previous/domains/creative/index.yaml +412 -0
  4. package/compliance/cache/3.0.6.previous/domains/governance/index.yaml +683 -0
  5. package/compliance/cache/3.0.6.previous/domains/media-buy/creative-reception.yaml +247 -0
  6. package/compliance/cache/3.0.6.previous/domains/media-buy/index.yaml +769 -0
  7. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
  8. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
  9. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
  10. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_approved.yaml +211 -0
  11. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
  12. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied.yaml +192 -0
  13. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
  14. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
  15. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
  16. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
  17. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
  18. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
  19. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
  20. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
  21. package/compliance/cache/3.0.6.previous/domains/media-buy/state-machine.yaml +442 -0
  22. package/compliance/cache/3.0.6.previous/domains/signals/index.yaml +266 -0
  23. package/compliance/cache/3.0.6.previous/domains/sponsored-intelligence/index.yaml +256 -0
  24. package/compliance/cache/3.0.6.previous/index.json +324 -0
  25. package/compliance/cache/3.0.6.previous/protocols/brand/index.yaml +163 -0
  26. package/compliance/cache/3.0.6.previous/protocols/creative/index.yaml +412 -0
  27. package/compliance/cache/3.0.6.previous/protocols/governance/index.yaml +683 -0
  28. package/compliance/cache/3.0.6.previous/protocols/media-buy/creative-reception.yaml +247 -0
  29. package/compliance/cache/3.0.6.previous/protocols/media-buy/index.yaml +769 -0
  30. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
  31. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
  32. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
  33. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
  34. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
  35. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
  36. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
  37. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
  38. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
  39. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
  40. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
  41. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
  42. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
  43. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
  44. package/compliance/cache/3.0.6.previous/protocols/media-buy/state-machine.yaml +442 -0
  45. package/compliance/cache/3.0.6.previous/protocols/signals/index.yaml +266 -0
  46. package/compliance/cache/3.0.6.previous/protocols/sponsored-intelligence/index.yaml +256 -0
  47. package/compliance/cache/3.0.6.previous/specialisms/audience-sync/index.yaml +280 -0
  48. package/compliance/cache/3.0.6.previous/specialisms/brand-rights/index.yaml +350 -0
  49. package/compliance/cache/3.0.6.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
  50. package/compliance/cache/3.0.6.previous/specialisms/collection-lists/index.yaml +359 -0
  51. package/compliance/cache/3.0.6.previous/specialisms/content-standards/index.yaml +572 -0
  52. package/compliance/cache/3.0.6.previous/specialisms/creative-ad-server/index.yaml +383 -0
  53. package/compliance/cache/3.0.6.previous/specialisms/creative-generative/generative-seller.yaml +758 -0
  54. package/compliance/cache/3.0.6.previous/specialisms/creative-generative/index.yaml +746 -0
  55. package/compliance/cache/3.0.6.previous/specialisms/creative-template/index.yaml +413 -0
  56. package/compliance/cache/3.0.6.previous/specialisms/governance-aware-seller/index.yaml +136 -0
  57. package/compliance/cache/3.0.6.previous/specialisms/governance-delivery-monitor/index.yaml +441 -0
  58. package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
  59. package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/index.yaml +330 -0
  60. package/compliance/cache/3.0.6.previous/specialisms/property-lists/index.yaml +482 -0
  61. package/compliance/cache/3.0.6.previous/specialisms/sales-broadcast-tv/index.yaml +689 -0
  62. package/compliance/cache/3.0.6.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
  63. package/compliance/cache/3.0.6.previous/specialisms/sales-guaranteed/index.yaml +504 -0
  64. package/compliance/cache/3.0.6.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
  65. package/compliance/cache/3.0.6.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
  66. package/compliance/cache/3.0.6.previous/specialisms/sales-social/index.yaml +584 -0
  67. package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/index.yaml +415 -0
  68. package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
  69. package/compliance/cache/3.0.6.previous/specialisms/signal-owned/index.yaml +316 -0
  70. package/compliance/cache/3.0.6.previous/test-kits/acme-outdoor.yaml +210 -0
  71. package/compliance/cache/3.0.6.previous/test-kits/bistro-oranje.yaml +126 -0
  72. package/compliance/cache/3.0.6.previous/test-kits/nova-motors.yaml +262 -0
  73. package/compliance/cache/3.0.6.previous/test-kits/osei-natural.yaml +126 -0
  74. package/compliance/cache/3.0.6.previous/test-kits/signed-requests-runner.yaml +155 -0
  75. package/compliance/cache/3.0.6.previous/test-kits/substitution-observer-runner.yaml +690 -0
  76. package/compliance/cache/3.0.6.previous/test-kits/summit-foods.yaml +125 -0
  77. package/compliance/cache/3.0.6.previous/test-kits/webhook-receiver-runner.yaml +265 -0
  78. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
  79. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
  80. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
  81. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
  82. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
  83. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
  84. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
  85. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
  86. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
  87. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
  88. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
  89. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/README.md +219 -0
  90. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/canonicalization.json +241 -0
  91. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/keys.json +60 -0
  92. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
  93. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
  94. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
  95. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
  96. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
  97. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
  98. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
  99. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
  100. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
  101. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
  102. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
  103. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
  104. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
  105. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
  106. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
  107. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
  108. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
  109. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
  110. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
  111. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
  112. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
  113. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
  114. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
  115. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
  116. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
  117. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
  118. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
  119. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
  120. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
  121. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
  122. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
  123. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
  124. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
  125. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
  126. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
  127. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
  128. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
  129. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
  130. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
  131. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/README.md +211 -0
  132. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/keys.json +61 -0
  133. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
  134. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
  135. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
  136. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
  137. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
  138. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
  139. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
  140. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
  141. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
  142. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
  143. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
  144. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
  145. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
  146. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
  147. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
  148. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
  149. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
  150. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
  151. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
  152. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
  153. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
  154. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
  155. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
  156. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
  157. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
  158. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
  159. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
  160. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
  161. package/compliance/cache/3.0.6.previous/universal/capability-discovery.yaml +125 -0
  162. package/compliance/cache/3.0.6.previous/universal/collection-lists-pagination-integrity.yaml +306 -0
  163. package/compliance/cache/3.0.6.previous/universal/content-standards-pagination-integrity.yaml +326 -0
  164. package/compliance/cache/3.0.6.previous/universal/deterministic-testing.yaml +1343 -0
  165. package/compliance/cache/3.0.6.previous/universal/error-compliance.yaml +474 -0
  166. package/compliance/cache/3.0.6.previous/universal/fictional-entities.yaml +307 -0
  167. package/compliance/cache/3.0.6.previous/universal/get-media-buys-pagination-integrity.yaml +160 -0
  168. package/compliance/cache/3.0.6.previous/universal/get-signals-pagination-integrity.yaml +211 -0
  169. package/compliance/cache/3.0.6.previous/universal/idempotency.yaml +593 -0
  170. package/compliance/cache/3.0.6.previous/universal/pagination-integrity-creative-formats.yaml +258 -0
  171. package/compliance/cache/3.0.6.previous/universal/pagination-integrity-list-accounts.yaml +262 -0
  172. package/compliance/cache/3.0.6.previous/universal/pagination-integrity.yaml +263 -0
  173. package/compliance/cache/3.0.6.previous/universal/property-lists-pagination-integrity.yaml +307 -0
  174. package/compliance/cache/3.0.6.previous/universal/runner-output-contract.yaml +358 -0
  175. package/compliance/cache/3.0.6.previous/universal/schema-validation.yaml +526 -0
  176. package/compliance/cache/3.0.6.previous/universal/security.yaml +431 -0
  177. package/compliance/cache/3.0.6.previous/universal/signed-requests.yaml +205 -0
  178. package/compliance/cache/3.0.6.previous/universal/storyboard-schema.yaml +1176 -0
  179. package/compliance/cache/3.0.6.previous/universal/v3-envelope-integrity.yaml +106 -0
  180. package/compliance/cache/3.0.6.previous/universal/webhook-emission.yaml +337 -0
  181. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  182. package/dist/lib/server/create-adcp-server.d.ts +33 -0
  183. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  184. package/dist/lib/server/create-adcp-server.js +127 -1
  185. package/dist/lib/server/create-adcp-server.js.map +1 -1
  186. package/dist/lib/server/credential-policy.d.ts +221 -0
  187. package/dist/lib/server/credential-policy.d.ts.map +1 -0
  188. package/dist/lib/server/credential-policy.js +260 -0
  189. package/dist/lib/server/credential-policy.js.map +1 -0
  190. package/dist/lib/server/dynamic-registry.d.ts +219 -0
  191. package/dist/lib/server/dynamic-registry.d.ts.map +1 -0
  192. package/dist/lib/server/dynamic-registry.js +245 -0
  193. package/dist/lib/server/dynamic-registry.js.map +1 -0
  194. package/dist/lib/server/index.d.ts +8 -0
  195. package/dist/lib/server/index.d.ts.map +1 -1
  196. package/dist/lib/server/index.js +15 -4
  197. package/dist/lib/server/index.js.map +1 -1
  198. package/dist/lib/server/operational-platform.d.ts +239 -0
  199. package/dist/lib/server/operational-platform.d.ts.map +1 -0
  200. package/dist/lib/server/operational-platform.js +94 -0
  201. package/dist/lib/server/operational-platform.js.map +1 -0
  202. package/dist/lib/server/wire-safe.d.ts +211 -0
  203. package/dist/lib/server/wire-safe.d.ts.map +1 -0
  204. package/dist/lib/server/wire-safe.js +231 -0
  205. package/dist/lib/server/wire-safe.js.map +1 -0
  206. package/dist/lib/server/wire-spec-fields.generated.d.ts +168 -0
  207. package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -0
  208. package/dist/lib/server/wire-spec-fields.generated.js +172 -0
  209. package/dist/lib/server/wire-spec-fields.generated.js.map +1 -0
  210. package/dist/lib/testing/compliance/index.d.ts +2 -0
  211. package/dist/lib/testing/compliance/index.d.ts.map +1 -1
  212. package/dist/lib/testing/compliance/index.js +6 -1
  213. package/dist/lib/testing/compliance/index.js.map +1 -1
  214. package/dist/lib/testing/compliance/summary.d.ts +77 -0
  215. package/dist/lib/testing/compliance/summary.d.ts.map +1 -0
  216. package/dist/lib/testing/compliance/summary.js +176 -0
  217. package/dist/lib/testing/compliance/summary.js.map +1 -0
  218. package/dist/lib/testing/storyboard/compliance.d.ts +26 -0
  219. package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
  220. package/dist/lib/testing/storyboard/compliance.js +51 -0
  221. package/dist/lib/testing/storyboard/compliance.js.map +1 -1
  222. package/dist/lib/testing/storyboard/index.d.ts +2 -2
  223. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  224. package/dist/lib/testing/storyboard/index.js +4 -2
  225. package/dist/lib/testing/storyboard/index.js.map +1 -1
  226. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  227. package/dist/lib/testing/storyboard/runner.js +58 -5
  228. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  229. package/dist/lib/version.d.ts +3 -3
  230. package/dist/lib/version.d.ts.map +1 -1
  231. package/dist/lib/version.js +3 -3
  232. package/dist/lib/version.js.map +1 -1
  233. package/package.json +2 -2
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ /**
3
+ * Wire-spec field discipline at the operational fan-out boundary.
4
+ *
5
+ * `WireSafe<T>` is a branded type that signals "this object has been
6
+ * stripped to AdCP wire-spec fields and is safe to forward upstream."
7
+ * The brand is constructed only by {@link pickWireSpecFields} (or
8
+ * variants). Code that spreads a buyer request directly cannot satisfy
9
+ * the brand — `{ ...buyerReq, paused: true }` is `T`, not
10
+ * `WireSafe<T>`.
11
+ *
12
+ * The brand is the L2 of #1529: where L1 (`credentialPolicy`,
13
+ * `src/lib/server/credential-policy.ts`) catches credential-shaped
14
+ * keys at the buyer-facing dispatch boundary, L2 catches structural
15
+ * leakage at the operational dispatch boundary — storefront fan-out
16
+ * code that picks per-target args from a buyer request, where the
17
+ * scrub happens BEFORE the credential scan would have run on the
18
+ * upstream call.
19
+ *
20
+ * **The brand is opt-in at the type level.** `OperationalPlatform`
21
+ * methods accept plain `UpdateMediaBuyRequest` etc. (not branded —
22
+ * see #1530's interface), so adopters who don't use the helper
23
+ * aren't broken. Adopters who DO use the helper get the safety
24
+ * benefit at the picking site: assigning the result to a
25
+ * `WireSafe<UpdateMediaBuyRequest>` variable forces `pickWireSpecFields`
26
+ * to be the constructor; spreading the buyer request elsewhere fails
27
+ * to satisfy the brand.
28
+ *
29
+ * **Migration footgun:** `pickWireSpecFields` ALONE doesn't close
30
+ * the round-2 / round-3 vectors (nested `context.<x>_access_token`,
31
+ * nested `ext.<x>_access_token`). `ext` and `context` are wire-spec
32
+ * fields, so the helper preserves them whole. Storefronts that fan
33
+ * out MUST chain {@link scrubExtensions} after the pick — that helper
34
+ * filters ext/context to a caller-specified key allowlist AND
35
+ * recursively drops credential-shaped keys at any depth (using the
36
+ * L1 default pattern set or an adopter-supplied matcher). Calling
37
+ * `pickWireSpecFields` without `scrubExtensions` reopens the
38
+ * round-2/round-3 attack surface.
39
+ *
40
+ * @see docs/guides/CTX-METADATA-SAFETY.md
41
+ * @see scripts/generate-wire-spec-fields.ts — codegen for the
42
+ * allowlist constants this module reads.
43
+ *
44
+ * @public
45
+ */
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.WIRE_SPEC_FIELDS = void 0;
48
+ exports.pickWireSpecFields = pickWireSpecFields;
49
+ exports.scrubExtensions = scrubExtensions;
50
+ const credential_policy_1 = require("./credential-policy");
51
+ const wire_spec_fields_generated_1 = require("./wire-spec-fields.generated");
52
+ Object.defineProperty(exports, "WIRE_SPEC_FIELDS", { enumerable: true, get: function () { return wire_spec_fields_generated_1.WIRE_SPEC_FIELDS; } });
53
+ /**
54
+ * Strip a buyer request to the wire-spec fields defined for
55
+ * `schemaName` and return the result branded `WireSafe<T>`. The
56
+ * canonical constructor of {@link WireSafe}.
57
+ *
58
+ * Drops every property NOT in the schema's `properties` allowlist,
59
+ * including buyer-supplied unknown keys (`<platform>_access_token`,
60
+ * `account: { brand: 'attacker.com' }`-style identity-pivot fields,
61
+ * arbitrary attacker payload). The allowlist comes from codegen — the
62
+ * AdCP request schema IS the allowlist; drift is structurally
63
+ * impossible.
64
+ *
65
+ * **Top-level only.** `ext` and `context` are wire-spec fields and
66
+ * are preserved verbatim by this helper. Storefronts MUST chain
67
+ * {@link scrubExtensions} to drop nested credentials in those
68
+ * envelopes. See the module-level migration footgun warning.
69
+ *
70
+ * Storefronts call this once per upstream target during fan-out:
71
+ *
72
+ * ```ts
73
+ * const safe = pickWireSpecFields(buyerReq, 'UpdateMediaBuyRequest');
74
+ * for (const target of targets) {
75
+ * const perTarget = scrubExtensions(safe, { ... });
76
+ * await operational.updateMediaBuy(ctxFor(target), perTarget);
77
+ * }
78
+ * ```
79
+ *
80
+ * Pollers that construct requests from stored state typically don't
81
+ * need this — their inputs aren't buyer-controlled. They can opt in
82
+ * for symmetric type safety with `as WireSafe<T>` if their type
83
+ * system encourages it, or call this helper anyway (the strip is a
84
+ * no-op when input is already wire-spec only).
85
+ *
86
+ * @param request - Buyer-supplied (or otherwise untrusted) input.
87
+ * @param schemaName - PascalCase request type name from
88
+ * {@link WIRE_SPEC_FIELDS}. TypeScript narrows the return type to
89
+ * `WireSafe<RequestType>` based on this — so
90
+ * `pickWireSpecFields(req, 'UpdateMediaBuyRequest')` returns
91
+ * `WireSafe<UpdateMediaBuyRequest>`.
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * import { pickWireSpecFields } from '@adcp/sdk/server';
96
+ *
97
+ * // Buyer sends:
98
+ * // { media_buy_id: 'mb_1', paused: true, snap_access_token: 'attacker' }
99
+ * const safe = pickWireSpecFields(buyerReq, 'UpdateMediaBuyRequest');
100
+ * // safe: WireSafe<UpdateMediaBuyRequest>
101
+ * // value: { media_buy_id: 'mb_1', paused: true } — credential dropped
102
+ * ```
103
+ */
104
+ function pickWireSpecFields(request, schemaName) {
105
+ const allowlist = wire_spec_fields_generated_1.WIRE_SPEC_FIELDS[schemaName].fields;
106
+ const out = {};
107
+ if (request === null || typeof request !== 'object') {
108
+ // Defensive: caller passed something that isn't a request object.
109
+ // Return an empty WireSafe — the upstream call will reject on
110
+ // missing required fields (e.g. `idempotency_key`), which is the
111
+ // right error class to surface (it's adopter-side, not buyer-side).
112
+ return out;
113
+ }
114
+ const source = request;
115
+ // Indexed loop instead of for-of: avoids Array.prototype[Symbol.iterator]
116
+ // dispatch, which a supply-chain dep could poison to inject extra field
117
+ // names into the iteration at call time (freeze of the array object does
118
+ // not prevent iterator-protocol interception).
119
+ const len = allowlist.length;
120
+ for (let i = 0; i < len; i++) {
121
+ const field = allowlist[i]; // non-null: i is bounds-checked by len
122
+ if (Object.prototype.hasOwnProperty.call(source, field)) {
123
+ out[field] = source[field];
124
+ }
125
+ }
126
+ return out;
127
+ }
128
+ /**
129
+ * Implementation of {@link ScrubExtensionsOptions}. See JSDoc above.
130
+ */
131
+ function scrubExtensions(request, options) {
132
+ const out = { ...request };
133
+ const { allowedExtKeys, recursiveCredentialScan = true, credentialPatterns, inject } = options;
134
+ // Step 1: top-level allowlist filter. When `allowedExtKeys` is
135
+ // undefined we leave the top level alone (recursive scan and
136
+ // inject still run); when it's an empty set we drop both fields.
137
+ if (allowedExtKeys !== undefined) {
138
+ const sourceExt = (out.ext ?? {});
139
+ const sourceCtx = (out.context ?? {});
140
+ const filteredExt = {};
141
+ const filteredCtx = {};
142
+ for (const k of allowedExtKeys) {
143
+ if (Object.prototype.hasOwnProperty.call(sourceExt, k))
144
+ filteredExt[k] = sourceExt[k];
145
+ if (Object.prototype.hasOwnProperty.call(sourceCtx, k))
146
+ filteredCtx[k] = sourceCtx[k];
147
+ }
148
+ out.ext = filteredExt;
149
+ out.context = filteredCtx;
150
+ }
151
+ // Step 2: recursive credential-shape scan. Strategy depends on
152
+ // whether step 1 ran:
153
+ //
154
+ // - With `allowedExtKeys` set: top-level is already gated by
155
+ // the explicit allowlist. The adopter has affirmed those keys
156
+ // are legitimate (e.g. `scope3_api_key` allowlisted on a
157
+ // specific tool), so we DON'T second-guess them by name. The
158
+ // scan applies to depths 1+ — dropping nested credentials
159
+ // INSIDE allowlisted values (`partner: { token: '...' }`
160
+ // becomes `partner: {}`).
161
+ //
162
+ // - Without `allowedExtKeys`: no top-level gate; scan from
163
+ // depth 0 to drop credential-shaped keys at any depth. This
164
+ // is the path adopters take when they trust their own
165
+ // ext/context shapes but want belt-and-suspenders coverage.
166
+ if (recursiveCredentialScan) {
167
+ const fromDepth = allowedExtKeys !== undefined ? 1 : 0;
168
+ if (out.ext !== undefined && out.ext !== null && typeof out.ext === 'object') {
169
+ out.ext = stripNestedCredentials(out.ext, credentialPatterns, fromDepth);
170
+ }
171
+ if (out.context !== undefined && out.context !== null && typeof out.context === 'object') {
172
+ out.context = stripNestedCredentials(out.context, credentialPatterns, fromDepth);
173
+ }
174
+ }
175
+ // Step 3: adopter-controlled inject. Runs AFTER the scan so
176
+ // storefront-resolved credentials/IDs aren't accidentally dropped
177
+ // by the recursive scan (e.g. injected `managed_access_token` is
178
+ // intentional and belongs).
179
+ if (inject?.ext) {
180
+ out.ext = { ...out.ext, ...inject.ext };
181
+ }
182
+ if (inject?.context) {
183
+ out.context = { ...out.context, ...inject.context };
184
+ }
185
+ return out;
186
+ }
187
+ /**
188
+ * Recursively walk a value and drop keys matching the credential
189
+ * pattern set, starting from `fromDepth`. Used by `scrubExtensions`
190
+ * to close round-4 nesting.
191
+ *
192
+ * `fromDepth = 0` scans every depth including the top level — used
193
+ * when no `allowedExtKeys` is supplied.
194
+ * `fromDepth = 1` skips the top level — used when the top-level
195
+ * keys have already been gated by an explicit allowlist (the
196
+ * adopter affirmed them legitimate by name).
197
+ *
198
+ * Returns a NEW object/array tree — input is not mutated. Cycle-safe
199
+ * via `WeakSet`. Primitives pass through.
200
+ */
201
+ function stripNestedCredentials(value, patterns, fromDepth = 0) {
202
+ // Identify credential-shaped paths via the L1 scanner.
203
+ const hits = new Set((0, credential_policy_1.scanArgsForCredentials)(value, patterns));
204
+ if (hits.size === 0)
205
+ return value;
206
+ const seen = new WeakSet();
207
+ const walk = (node, path, depth) => {
208
+ if (node === null || typeof node !== 'object')
209
+ return node;
210
+ if (seen.has(node))
211
+ return node;
212
+ seen.add(node);
213
+ if (Array.isArray(node)) {
214
+ return node.map((item, i) => walk(item, [...path, String(i)], depth + 1));
215
+ }
216
+ const out = {};
217
+ for (const [key, child] of Object.entries(node)) {
218
+ const childPath = [...path, key];
219
+ // Only drop the key if we're AT or BEYOND `fromDepth`. Keys
220
+ // shallower than fromDepth pass through unchecked because
221
+ // they were already gated upstream.
222
+ if (depth >= fromDepth && hits.has(childPath.join('.'))) {
223
+ continue;
224
+ }
225
+ out[key] = walk(child, childPath, depth + 1);
226
+ }
227
+ return out;
228
+ };
229
+ return walk(value, [], 0);
230
+ }
231
+ //# sourceMappingURL=wire-safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-safe.js","sourceRoot":"","sources":["../../../src/lib/server/wire-safe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import type { AcquireRightsRequest, ActivateSignalRequest, BuildCreativeRequest, CalibrateContentRequest, CreateCollectionListRequest, CreateContentStandardsRequest, CreateMediaBuyRequest, CreatePropertyListRequest, DeleteCollectionListRequest, DeletePropertyListRequest, GetMediaBuyDeliveryRequest, LogEventRequest, ProvidePerformanceFeedbackRequest, ReportPlanOutcomeRequest, ReportUsageRequest, SIInitiateSessionRequest, SISendMessageRequest, SyncAccountsRequest, SyncAudiencesRequest, SyncCatalogsRequest, SyncCreativesRequest, SyncEventSourcesRequest, SyncGovernanceRequest, SyncPlansRequest, UpdateCollectionListRequest, UpdateContentStandardsRequest, UpdateMediaBuyRequest, UpdatePropertyListRequest, UpdateRightsRequest } from '../types';
2
+ /**
3
+ * Wire-spec field allowlists per request type. The `fields` values
4
+ * are exact top-level property names from the AdCP request JSON
5
+ * schemas; `pickWireSpecFields(req, schemaName)` uses them to strip
6
+ * buyer-controlled args to schema-spec fields at the operational
7
+ * fan-out boundary. Drift between this map and the schemas is
8
+ * impossible by construction — both are emitted from the same
9
+ * codegen pass.
10
+ *
11
+ * The `__type` phantom is type-only (`null as unknown as T`) — it
12
+ * carries the wire-spec request shape so `pickWireSpecFields`'s
13
+ * return type narrows per `schemaName`. Runtime cost: one null
14
+ * property per entry.
15
+ *
16
+ * Arrays and entry objects are runtime-frozen via `Object.freeze`
17
+ * so a misbehaving dependency cannot widen the scrub via prototype
18
+ * pollution or shared-state mutation of the allowlist.
19
+ */
20
+ export declare const WIRE_SPEC_FIELDS: Readonly<{
21
+ /** schemas/cache/3.0.6/brand/acquire-rights-request.json */
22
+ readonly AcquireRightsRequest: Readonly<{
23
+ fields: readonly string[];
24
+ __type: AcquireRightsRequest;
25
+ }>;
26
+ /** schemas/cache/3.0.6/signals/activate-signal-request.json */
27
+ readonly ActivateSignalRequest: Readonly<{
28
+ fields: readonly string[];
29
+ __type: ActivateSignalRequest;
30
+ }>;
31
+ /** schemas/cache/3.0.6/media-buy/build-creative-request.json */
32
+ readonly BuildCreativeRequest: Readonly<{
33
+ fields: readonly string[];
34
+ __type: BuildCreativeRequest;
35
+ }>;
36
+ /** schemas/cache/3.0.6/content-standards/calibrate-content-request.json */
37
+ readonly CalibrateContentRequest: Readonly<{
38
+ fields: readonly string[];
39
+ __type: CalibrateContentRequest;
40
+ }>;
41
+ /** schemas/cache/3.0.6/collection/create-collection-list-request.json */
42
+ readonly CreateCollectionListRequest: Readonly<{
43
+ fields: readonly string[];
44
+ __type: CreateCollectionListRequest;
45
+ }>;
46
+ /** schemas/cache/3.0.6/content-standards/create-content-standards-request.json */
47
+ readonly CreateContentStandardsRequest: Readonly<{
48
+ fields: readonly string[];
49
+ __type: CreateContentStandardsRequest;
50
+ }>;
51
+ /** schemas/cache/3.0.6/media-buy/create-media-buy-request.json */
52
+ readonly CreateMediaBuyRequest: Readonly<{
53
+ fields: readonly string[];
54
+ __type: CreateMediaBuyRequest;
55
+ }>;
56
+ /** schemas/cache/3.0.6/property/create-property-list-request.json */
57
+ readonly CreatePropertyListRequest: Readonly<{
58
+ fields: readonly string[];
59
+ __type: CreatePropertyListRequest;
60
+ }>;
61
+ /** schemas/cache/3.0.6/collection/delete-collection-list-request.json */
62
+ readonly DeleteCollectionListRequest: Readonly<{
63
+ fields: readonly string[];
64
+ __type: DeleteCollectionListRequest;
65
+ }>;
66
+ /** schemas/cache/3.0.6/property/delete-property-list-request.json */
67
+ readonly DeletePropertyListRequest: Readonly<{
68
+ fields: readonly string[];
69
+ __type: DeletePropertyListRequest;
70
+ }>;
71
+ /** schemas/cache/3.0.6/media-buy/get-media-buy-delivery-request.json */
72
+ readonly GetMediaBuyDeliveryRequest: Readonly<{
73
+ fields: readonly string[];
74
+ __type: GetMediaBuyDeliveryRequest;
75
+ }>;
76
+ /** schemas/cache/3.0.6/media-buy/log-event-request.json */
77
+ readonly LogEventRequest: Readonly<{
78
+ fields: readonly string[];
79
+ __type: LogEventRequest;
80
+ }>;
81
+ /** schemas/cache/3.0.6/media-buy/provide-performance-feedback-request.json */
82
+ readonly ProvidePerformanceFeedbackRequest: Readonly<{
83
+ fields: readonly string[];
84
+ __type: ProvidePerformanceFeedbackRequest;
85
+ }>;
86
+ /** schemas/cache/3.0.6/governance/report-plan-outcome-request.json */
87
+ readonly ReportPlanOutcomeRequest: Readonly<{
88
+ fields: readonly string[];
89
+ __type: ReportPlanOutcomeRequest;
90
+ }>;
91
+ /** schemas/cache/3.0.6/account/report-usage-request.json */
92
+ readonly ReportUsageRequest: Readonly<{
93
+ fields: readonly string[];
94
+ __type: ReportUsageRequest;
95
+ }>;
96
+ /** schemas/cache/3.0.6/sponsored-intelligence/si-initiate-session-request.json */
97
+ readonly SIInitiateSessionRequest: Readonly<{
98
+ fields: readonly string[];
99
+ __type: SIInitiateSessionRequest;
100
+ }>;
101
+ /** schemas/cache/3.0.6/sponsored-intelligence/si-send-message-request.json */
102
+ readonly SISendMessageRequest: Readonly<{
103
+ fields: readonly string[];
104
+ __type: SISendMessageRequest;
105
+ }>;
106
+ /** schemas/cache/3.0.6/account/sync-accounts-request.json */
107
+ readonly SyncAccountsRequest: Readonly<{
108
+ fields: readonly string[];
109
+ __type: SyncAccountsRequest;
110
+ }>;
111
+ /** schemas/cache/3.0.6/media-buy/sync-audiences-request.json */
112
+ readonly SyncAudiencesRequest: Readonly<{
113
+ fields: readonly string[];
114
+ __type: SyncAudiencesRequest;
115
+ }>;
116
+ /** schemas/cache/3.0.6/media-buy/sync-catalogs-request.json */
117
+ readonly SyncCatalogsRequest: Readonly<{
118
+ fields: readonly string[];
119
+ __type: SyncCatalogsRequest;
120
+ }>;
121
+ /** schemas/cache/3.0.6/creative/sync-creatives-request.json */
122
+ readonly SyncCreativesRequest: Readonly<{
123
+ fields: readonly string[];
124
+ __type: SyncCreativesRequest;
125
+ }>;
126
+ /** schemas/cache/3.0.6/media-buy/sync-event-sources-request.json */
127
+ readonly SyncEventSourcesRequest: Readonly<{
128
+ fields: readonly string[];
129
+ __type: SyncEventSourcesRequest;
130
+ }>;
131
+ /** schemas/cache/3.0.6/account/sync-governance-request.json */
132
+ readonly SyncGovernanceRequest: Readonly<{
133
+ fields: readonly string[];
134
+ __type: SyncGovernanceRequest;
135
+ }>;
136
+ /** schemas/cache/3.0.6/governance/sync-plans-request.json */
137
+ readonly SyncPlansRequest: Readonly<{
138
+ fields: readonly string[];
139
+ __type: SyncPlansRequest;
140
+ }>;
141
+ /** schemas/cache/3.0.6/collection/update-collection-list-request.json */
142
+ readonly UpdateCollectionListRequest: Readonly<{
143
+ fields: readonly string[];
144
+ __type: UpdateCollectionListRequest;
145
+ }>;
146
+ /** schemas/cache/3.0.6/content-standards/update-content-standards-request.json */
147
+ readonly UpdateContentStandardsRequest: Readonly<{
148
+ fields: readonly string[];
149
+ __type: UpdateContentStandardsRequest;
150
+ }>;
151
+ /** schemas/cache/3.0.6/media-buy/update-media-buy-request.json */
152
+ readonly UpdateMediaBuyRequest: Readonly<{
153
+ fields: readonly string[];
154
+ __type: UpdateMediaBuyRequest;
155
+ }>;
156
+ /** schemas/cache/3.0.6/property/update-property-list-request.json */
157
+ readonly UpdatePropertyListRequest: Readonly<{
158
+ fields: readonly string[];
159
+ __type: UpdatePropertyListRequest;
160
+ }>;
161
+ /** schemas/cache/3.0.6/brand/update-rights-request.json */
162
+ readonly UpdateRightsRequest: Readonly<{
163
+ fields: readonly string[];
164
+ __type: UpdateRightsRequest;
165
+ }>;
166
+ }>;
167
+ export type WireSpecRequestName = keyof typeof WIRE_SPEC_FIELDS;
168
+ //# sourceMappingURL=wire-spec-fields.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-spec-fields.generated.d.ts","sourceRoot":"","sources":["../../../src/lib/server/wire-spec-fields.generated.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB;IAC3B,4DAA4D;;gBAE4H,SAAS,MAAM,EAAE;gBAC5K,oBAAoB;;IAEjD,+DAA+D;;gBAEsG,SAAS,MAAM,EAAE;gBACzJ,qBAAqB;;IAElD,gEAAgE;;gBAEsR,SAAS,MAAM,EAAE;gBAC1U,oBAAoB;;IAEjD,2EAA2E;;gBAEoC,SAAS,MAAM,EAAE;gBACnG,uBAAuB;;IAEpD,yEAAyE;;gBAEgF,SAAS,MAAM,EAAE;gBAC7I,2BAA2B;;IAExD,kFAAkF;;gBAEoE,SAAS,MAAM,EAAE;gBAC1I,6BAA6B;;IAE1D,kEAAkE;;gBAEgR,SAAS,MAAM,EAAE;gBACtU,qBAAqB;;IAElD,qEAAqE;;gBAEmF,SAAS,MAAM,EAAE;gBAC5I,yBAAyB;;IAEtD,yEAAyE;;gBAEgC,SAAS,MAAM,EAAE;gBAC7F,2BAA2B;;IAExD,qEAAqE;;gBAEoC,SAAS,MAAM,EAAE;gBAC7F,yBAAyB;;IAEtD,wEAAwE;;gBAE2I,SAAS,MAAM,EAAE;gBACvM,0BAA0B;;IAEvD,2DAA2D;;gBAEuE,SAAS,MAAM,EAAE;gBACtH,eAAe;;IAE5C,8EAA8E;;gBAE0H,SAAS,MAAM,EAAE;gBAC5L,iCAAiC;;IAE9D,sEAAsE;;gBAEwH,SAAS,MAAM,EAAE;gBAClL,wBAAwB;;IAErD,4DAA4D;;gBAEoD,SAAS,MAAM,EAAE;gBACpG,kBAAkB;;IAE/C,kFAAkF;;gBAE0G,SAAS,MAAM,EAAE;gBAChL,wBAAwB;;IAErD,8EAA8E;;gBAEgD,SAAS,MAAM,EAAE;gBAClH,oBAAoB;;IAEjD,6DAA6D;;gBAEyF,SAAS,MAAM,EAAE;gBAC1I,mBAAmB;;IAEhD,gEAAgE;;gBAE4D,SAAS,MAAM,EAAE;gBAChH,oBAAoB;;IAEjD,+DAA+D;;gBAEiI,SAAS,MAAM,EAAE;gBACpL,mBAAmB;;IAEhD,+DAA+D;;gBAEiJ,SAAS,MAAM,EAAE;gBACpM,oBAAoB;;IAEjD,oEAAoE;;gBAE4D,SAAS,MAAM,EAAE;gBACpH,uBAAuB;;IAEpD,+DAA+D;;gBAEiC,SAAS,MAAM,EAAE;gBACpF,qBAAqB;;IAElD,6DAA6D;;gBAEgC,SAAS,MAAM,EAAE;gBACjF,gBAAgB;;IAE7C,yEAAyE;;gBAEwG,SAAS,MAAM,EAAE;gBACrK,2BAA2B;;IAExD,kFAAkF;;gBAEmF,SAAS,MAAM,EAAE;gBACzJ,6BAA6B;;IAE1D,kEAAkE;;gBAEsN,SAAS,MAAM,EAAE;gBAC5Q,qBAAqB;;IAElD,qEAAqE;;gBAE2G,SAAS,MAAM,EAAE;gBACpK,yBAAyB;;IAEtD,2DAA2D;;gBAE0H,SAAS,MAAM,EAAE;gBACzK,mBAAmB;;EAEvC,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,gBAAgB,CAAC"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ // AUTO-GENERATED by scripts/generate-wire-spec-fields.ts. DO NOT EDIT.
3
+ // Source: schemas/cache/3.0.6/**/*-request.json
4
+ // Generated at: 2026-05-04T09:00:00.000Z
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WIRE_SPEC_FIELDS = void 0;
7
+ /**
8
+ * Wire-spec field allowlists per request type. The `fields` values
9
+ * are exact top-level property names from the AdCP request JSON
10
+ * schemas; `pickWireSpecFields(req, schemaName)` uses them to strip
11
+ * buyer-controlled args to schema-spec fields at the operational
12
+ * fan-out boundary. Drift between this map and the schemas is
13
+ * impossible by construction — both are emitted from the same
14
+ * codegen pass.
15
+ *
16
+ * The `__type` phantom is type-only (`null as unknown as T`) — it
17
+ * carries the wire-spec request shape so `pickWireSpecFields`'s
18
+ * return type narrows per `schemaName`. Runtime cost: one null
19
+ * property per entry.
20
+ *
21
+ * Arrays and entry objects are runtime-frozen via `Object.freeze`
22
+ * so a misbehaving dependency cannot widen the scrub via prototype
23
+ * pollution or shared-state mutation of the allowlist.
24
+ */
25
+ exports.WIRE_SPEC_FIELDS = Object.freeze({
26
+ /** schemas/cache/3.0.6/brand/acquire-rights-request.json */
27
+ AcquireRightsRequest: Object.freeze({
28
+ fields: Object.freeze(["adcp_major_version", "buyer", "campaign", "context", "ext", "idempotency_key", "pricing_option_id", "push_notification_config", "revocation_webhook", "rights_id"]),
29
+ __type: null,
30
+ }),
31
+ /** schemas/cache/3.0.6/signals/activate-signal-request.json */
32
+ ActivateSignalRequest: Object.freeze({
33
+ fields: Object.freeze(["account", "action", "adcp_major_version", "context", "destinations", "ext", "idempotency_key", "pricing_option_id", "signal_agent_segment_id"]),
34
+ __type: null,
35
+ }),
36
+ /** schemas/cache/3.0.6/media-buy/build-creative-request.json */
37
+ BuildCreativeRequest: Object.freeze({
38
+ fields: Object.freeze(["account", "adcp_major_version", "brand", "concept_id", "context", "creative_id", "creative_manifest", "ext", "idempotency_key", "include_preview", "item_limit", "macro_values", "media_buy_id", "message", "package_id", "preview_inputs", "preview_output_format", "preview_quality", "quality", "target_format_id", "target_format_ids"]),
39
+ __type: null,
40
+ }),
41
+ /** schemas/cache/3.0.6/content-standards/calibrate-content-request.json */
42
+ CalibrateContentRequest: Object.freeze({
43
+ fields: Object.freeze(["adcp_major_version", "artifact", "context", "ext", "idempotency_key", "standards_id"]),
44
+ __type: null,
45
+ }),
46
+ /** schemas/cache/3.0.6/collection/create-collection-list-request.json */
47
+ CreateCollectionListRequest: Object.freeze({
48
+ fields: Object.freeze(["account", "adcp_major_version", "base_collections", "brand", "context", "description", "ext", "filters", "idempotency_key", "name"]),
49
+ __type: null,
50
+ }),
51
+ /** schemas/cache/3.0.6/content-standards/create-content-standards-request.json */
52
+ CreateContentStandardsRequest: Object.freeze({
53
+ fields: Object.freeze(["adcp_major_version", "calibration_exemplars", "context", "ext", "idempotency_key", "policies", "registry_policy_ids", "scope"]),
54
+ __type: null,
55
+ }),
56
+ /** schemas/cache/3.0.6/media-buy/create-media-buy-request.json */
57
+ CreateMediaBuyRequest: Object.freeze({
58
+ fields: Object.freeze(["account", "adcp_major_version", "advertiser_industry", "agency_estimate_number", "artifact_webhook", "brand", "context", "end_time", "ext", "idempotency_key", "invoice_recipient", "io_acceptance", "packages", "plan_id", "po_number", "proposal_id", "push_notification_config", "reporting_webhook", "start_time", "total_budget"]),
59
+ __type: null,
60
+ }),
61
+ /** schemas/cache/3.0.6/property/create-property-list-request.json */
62
+ CreatePropertyListRequest: Object.freeze({
63
+ fields: Object.freeze(["account", "adcp_major_version", "base_properties", "brand", "context", "description", "ext", "filters", "idempotency_key", "name"]),
64
+ __type: null,
65
+ }),
66
+ /** schemas/cache/3.0.6/collection/delete-collection-list-request.json */
67
+ DeleteCollectionListRequest: Object.freeze({
68
+ fields: Object.freeze(["account", "adcp_major_version", "context", "ext", "idempotency_key", "list_id"]),
69
+ __type: null,
70
+ }),
71
+ /** schemas/cache/3.0.6/property/delete-property-list-request.json */
72
+ DeletePropertyListRequest: Object.freeze({
73
+ fields: Object.freeze(["account", "adcp_major_version", "context", "ext", "idempotency_key", "list_id"]),
74
+ __type: null,
75
+ }),
76
+ /** schemas/cache/3.0.6/media-buy/get-media-buy-delivery-request.json */
77
+ GetMediaBuyDeliveryRequest: Object.freeze({
78
+ fields: Object.freeze(["account", "adcp_major_version", "attribution_window", "context", "end_date", "ext", "include_package_daily_breakdown", "media_buy_ids", "reporting_dimensions", "start_date", "status_filter"]),
79
+ __type: null,
80
+ }),
81
+ /** schemas/cache/3.0.6/media-buy/log-event-request.json */
82
+ LogEventRequest: Object.freeze({
83
+ fields: Object.freeze(["adcp_major_version", "context", "event_source_id", "events", "ext", "idempotency_key", "test_event_code"]),
84
+ __type: null,
85
+ }),
86
+ /** schemas/cache/3.0.6/media-buy/provide-performance-feedback-request.json */
87
+ ProvidePerformanceFeedbackRequest: Object.freeze({
88
+ fields: Object.freeze(["adcp_major_version", "context", "creative_id", "ext", "feedback_source", "idempotency_key", "measurement_period", "media_buy_id", "metric_type", "package_id", "performance_index"]),
89
+ __type: null,
90
+ }),
91
+ /** schemas/cache/3.0.6/governance/report-plan-outcome-request.json */
92
+ ReportPlanOutcomeRequest: Object.freeze({
93
+ fields: Object.freeze(["adcp_major_version", "check_id", "context", "delivery", "error", "ext", "governance_context", "idempotency_key", "outcome", "plan_id", "purchase_type", "seller_response"]),
94
+ __type: null,
95
+ }),
96
+ /** schemas/cache/3.0.6/account/report-usage-request.json */
97
+ ReportUsageRequest: Object.freeze({
98
+ fields: Object.freeze(["adcp_major_version", "context", "ext", "idempotency_key", "reporting_period", "usage"]),
99
+ __type: null,
100
+ }),
101
+ /** schemas/cache/3.0.6/sponsored-intelligence/si-initiate-session-request.json */
102
+ SIInitiateSessionRequest: Object.freeze({
103
+ fields: Object.freeze(["adcp_major_version", "context", "ext", "idempotency_key", "identity", "intent", "media_buy_id", "offering_id", "offering_token", "placement", "supported_capabilities"]),
104
+ __type: null,
105
+ }),
106
+ /** schemas/cache/3.0.6/sponsored-intelligence/si-send-message-request.json */
107
+ SISendMessageRequest: Object.freeze({
108
+ fields: Object.freeze(["action_response", "adcp_major_version", "context", "ext", "idempotency_key", "message", "session_id"]),
109
+ __type: null,
110
+ }),
111
+ /** schemas/cache/3.0.6/account/sync-accounts-request.json */
112
+ SyncAccountsRequest: Object.freeze({
113
+ fields: Object.freeze(["accounts", "adcp_major_version", "context", "delete_missing", "dry_run", "ext", "idempotency_key", "push_notification_config"]),
114
+ __type: null,
115
+ }),
116
+ /** schemas/cache/3.0.6/media-buy/sync-audiences-request.json */
117
+ SyncAudiencesRequest: Object.freeze({
118
+ fields: Object.freeze(["account", "adcp_major_version", "audiences", "context", "delete_missing", "ext", "idempotency_key"]),
119
+ __type: null,
120
+ }),
121
+ /** schemas/cache/3.0.6/media-buy/sync-catalogs-request.json */
122
+ SyncCatalogsRequest: Object.freeze({
123
+ fields: Object.freeze(["account", "adcp_major_version", "catalog_ids", "catalogs", "context", "delete_missing", "dry_run", "ext", "idempotency_key", "push_notification_config", "validation_mode"]),
124
+ __type: null,
125
+ }),
126
+ /** schemas/cache/3.0.6/creative/sync-creatives-request.json */
127
+ SyncCreativesRequest: Object.freeze({
128
+ fields: Object.freeze(["account", "adcp_major_version", "assignments", "context", "creative_ids", "creatives", "delete_missing", "dry_run", "ext", "idempotency_key", "push_notification_config", "validation_mode"]),
129
+ __type: null,
130
+ }),
131
+ /** schemas/cache/3.0.6/media-buy/sync-event-sources-request.json */
132
+ SyncEventSourcesRequest: Object.freeze({
133
+ fields: Object.freeze(["account", "adcp_major_version", "context", "delete_missing", "event_sources", "ext", "idempotency_key"]),
134
+ __type: null,
135
+ }),
136
+ /** schemas/cache/3.0.6/account/sync-governance-request.json */
137
+ SyncGovernanceRequest: Object.freeze({
138
+ fields: Object.freeze(["accounts", "adcp_major_version", "context", "ext", "idempotency_key"]),
139
+ __type: null,
140
+ }),
141
+ /** schemas/cache/3.0.6/governance/sync-plans-request.json */
142
+ SyncPlansRequest: Object.freeze({
143
+ fields: Object.freeze(["adcp_major_version", "context", "ext", "idempotency_key", "plans"]),
144
+ __type: null,
145
+ }),
146
+ /** schemas/cache/3.0.6/collection/update-collection-list-request.json */
147
+ UpdateCollectionListRequest: Object.freeze({
148
+ fields: Object.freeze(["account", "adcp_major_version", "base_collections", "brand", "context", "description", "ext", "filters", "idempotency_key", "list_id", "name", "webhook_url"]),
149
+ __type: null,
150
+ }),
151
+ /** schemas/cache/3.0.6/content-standards/update-content-standards-request.json */
152
+ UpdateContentStandardsRequest: Object.freeze({
153
+ fields: Object.freeze(["adcp_major_version", "calibration_exemplars", "context", "ext", "idempotency_key", "policies", "registry_policy_ids", "scope", "standards_id"]),
154
+ __type: null,
155
+ }),
156
+ /** schemas/cache/3.0.6/media-buy/update-media-buy-request.json */
157
+ UpdateMediaBuyRequest: Object.freeze({
158
+ fields: Object.freeze(["account", "adcp_major_version", "canceled", "cancellation_reason", "context", "end_time", "ext", "idempotency_key", "invoice_recipient", "media_buy_id", "new_packages", "packages", "paused", "push_notification_config", "reporting_webhook", "revision", "start_time"]),
159
+ __type: null,
160
+ }),
161
+ /** schemas/cache/3.0.6/property/update-property-list-request.json */
162
+ UpdatePropertyListRequest: Object.freeze({
163
+ fields: Object.freeze(["account", "adcp_major_version", "base_properties", "brand", "context", "description", "ext", "filters", "idempotency_key", "list_id", "name", "webhook_url"]),
164
+ __type: null,
165
+ }),
166
+ /** schemas/cache/3.0.6/brand/update-rights-request.json */
167
+ UpdateRightsRequest: Object.freeze({
168
+ fields: Object.freeze(["adcp_major_version", "context", "end_date", "ext", "idempotency_key", "impression_cap", "paused", "pricing_option_id", "push_notification_config", "rights_id"]),
169
+ __type: null,
170
+ }),
171
+ });
172
+ //# sourceMappingURL=wire-spec-fields.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-spec-fields.generated.js","sourceRoot":"","sources":["../../../src/lib/server/wire-spec-fields.generated.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@
5
5
  */
6
6
  export { comply, computeOverallStatus, formatComplianceResults, formatComplianceResultsJSON } from './comply';
7
7
  export type { ComplyOptions } from './comply';
8
+ export { buildComplianceSummary, buildCrashSummary, formatComplianceSummaryText, formatComplianceSummaryMarkdown, } from './summary';
9
+ export type { ComplianceSummaryArtifact, ComplianceSummaryFailure, ComplianceSummaryFailureKind, BuildSummaryOptions, BuildCrashSummaryOptions, } from './summary';
8
10
  export { SAMPLE_BRIEFS, getBriefById, getBriefsByVertical } from './briefs';
9
11
  export type { ComplianceTrack, TrackResult, TrackStatus, OverallStatus, ComplianceFailure, ComplianceResult, ComplianceSummary, AdvisoryObservation, ObservationCategory, ObservationSeverity, SampleBrief, } from './types';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/compliance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAC9G,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5E,YAAY,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/compliance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAC9G,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5E,YAAY,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -5,12 +5,17 @@
5
5
  * comply → "Your agent works" (deterministic, per-track)
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.getBriefsByVertical = exports.getBriefById = exports.SAMPLE_BRIEFS = exports.formatComplianceResultsJSON = exports.formatComplianceResults = exports.computeOverallStatus = exports.comply = void 0;
8
+ exports.getBriefsByVertical = exports.getBriefById = exports.SAMPLE_BRIEFS = exports.formatComplianceSummaryMarkdown = exports.formatComplianceSummaryText = exports.buildCrashSummary = exports.buildComplianceSummary = exports.formatComplianceResultsJSON = exports.formatComplianceResults = exports.computeOverallStatus = exports.comply = void 0;
9
9
  var comply_1 = require("./comply");
10
10
  Object.defineProperty(exports, "comply", { enumerable: true, get: function () { return comply_1.comply; } });
11
11
  Object.defineProperty(exports, "computeOverallStatus", { enumerable: true, get: function () { return comply_1.computeOverallStatus; } });
12
12
  Object.defineProperty(exports, "formatComplianceResults", { enumerable: true, get: function () { return comply_1.formatComplianceResults; } });
13
13
  Object.defineProperty(exports, "formatComplianceResultsJSON", { enumerable: true, get: function () { return comply_1.formatComplianceResultsJSON; } });
14
+ var summary_1 = require("./summary");
15
+ Object.defineProperty(exports, "buildComplianceSummary", { enumerable: true, get: function () { return summary_1.buildComplianceSummary; } });
16
+ Object.defineProperty(exports, "buildCrashSummary", { enumerable: true, get: function () { return summary_1.buildCrashSummary; } });
17
+ Object.defineProperty(exports, "formatComplianceSummaryText", { enumerable: true, get: function () { return summary_1.formatComplianceSummaryText; } });
18
+ Object.defineProperty(exports, "formatComplianceSummaryMarkdown", { enumerable: true, get: function () { return summary_1.formatComplianceSummaryMarkdown; } });
14
19
  var briefs_1 = require("./briefs");
15
20
  Object.defineProperty(exports, "SAMPLE_BRIEFS", { enumerable: true, get: function () { return briefs_1.SAMPLE_BRIEFS; } });
16
21
  Object.defineProperty(exports, "getBriefById", { enumerable: true, get: function () { return briefs_1.getBriefById; } });