@adcp/sdk 14.0.0-rc.49 → 14.0.0-rc.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/adcp-grade.js +10 -0
- package/compliance/cache/{3.1.18/protocols → 3.1.24/domains}/creative/scenarios/billing_out_of_band.yaml +0 -1
- package/compliance/cache/{3.1.18/protocols → 3.1.24/domains}/creative/scenarios/canonical_supported_formats.yaml +0 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/creative/scenarios/evaluator_auth.yaml +0 -1
- package/compliance/cache/{3.1.18/protocols → 3.1.24/domains}/media-buy/index.yaml +20 -65
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +5 -1
- package/compliance/cache/{3.1.18/protocols → 3.1.24/domains}/media-buy/scenarios/dependency_impairment.yaml +14 -13
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +14 -13
- package/compliance/cache/{3.1.18/protocols → 3.1.24/domains}/media-buy/scenarios/governance_approved.yaml +16 -0
- package/compliance/cache/{3.1.18/protocols → 3.1.24/domains}/media-buy/scenarios/governance_conditions.yaml +16 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +7 -73
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +12 -7
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/provenance_audit_observation.yaml +3 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/provenance_enforcement.yaml +5 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +2 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/refine_products.yaml +5 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/index.json +3 -7
- package/compliance/cache/{3.1.18/domains → 3.1.24/protocols}/creative/scenarios/billing_out_of_band.yaml +0 -1
- package/compliance/cache/{3.1.18/domains → 3.1.24/protocols}/creative/scenarios/canonical_supported_formats.yaml +0 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/creative/scenarios/evaluator_auth.yaml +0 -1
- package/compliance/cache/{3.1.18/domains → 3.1.24/protocols}/media-buy/index.yaml +20 -65
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +5 -1
- package/compliance/cache/{3.1.18/domains → 3.1.24/protocols}/media-buy/scenarios/dependency_impairment.yaml +14 -13
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +14 -13
- package/compliance/cache/{3.1.18/domains → 3.1.24/protocols}/media-buy/scenarios/governance_approved.yaml +16 -0
- package/compliance/cache/{3.1.18/domains → 3.1.24/protocols}/media-buy/scenarios/governance_conditions.yaml +16 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +7 -73
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +12 -7
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +3 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/provenance_enforcement.yaml +5 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +2 -0
- package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/refine_products.yaml +5 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/creative-generative/generative-seller.yaml +11 -59
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/creative-generative/index.yaml +7 -7
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sales-broadcast-tv/index.yaml +21 -55
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sales-catalog-driven/index.yaml +19 -58
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sales-guaranteed/index.yaml +11 -55
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sales-non-guaranteed/index.yaml +14 -53
- package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sales-proposal-mode/index.yaml +5 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/billing-gate-dispatch.yaml +0 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/canonical-format-validate-input.yaml +0 -1
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/error-compliance-signals.yaml +2 -2
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/error-compliance.yaml +2 -2
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/get-products-pagination-integrity.yaml +6 -6
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/pagination-integrity-creative-formats.yaml +2 -2
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/read-tool-idempotency.yaml +30 -125
- package/compliance/cache/{3.1.18 → 3.1.24}/universal/storyboard-schema.yaml +11 -3
- package/dist/lib/schemas-data/3.1/a2ui/bound-value.json +1 -1
- package/dist/lib/schemas-data/3.1/a2ui/component.json +1 -1
- package/dist/lib/schemas-data/3.1/a2ui/si-catalog.json +25 -25
- package/dist/lib/schemas-data/3.1/a2ui/surface.json +2 -2
- package/dist/lib/schemas-data/3.1/a2ui/user-action.json +1 -1
- package/dist/lib/schemas-data/3.1/aao/agent-publishers.json +1 -1
- package/dist/lib/schemas-data/3.1/account/get-account-financials-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/get-account-financials-response.json +12 -12
- package/dist/lib/schemas-data/3.1/account/list-accounts-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/list-accounts-response.json +8 -8
- package/dist/lib/schemas-data/3.1/account/report-usage-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/report-usage-response.json +6 -6
- package/dist/lib/schemas-data/3.1/account/sync-accounts-request.json +12 -12
- package/dist/lib/schemas-data/3.1/account/sync-accounts-response.json +16 -16
- package/dist/lib/schemas-data/3.1/account/sync-governance-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/sync-governance-response.json +10 -10
- package/dist/lib/schemas-data/3.1/adagents.json +29 -29
- package/dist/lib/schemas-data/3.1/brand/acquire-rights-request.json +10 -10
- package/dist/lib/schemas-data/3.1/brand/acquire-rights-response.json +16 -16
- package/dist/lib/schemas-data/3.1/brand/creative-approval-request.json +5 -5
- package/dist/lib/schemas-data/3.1/brand/creative-approval-response.json +12 -12
- package/dist/lib/schemas-data/3.1/brand/get-brand-identity-request.json +4 -4
- package/dist/lib/schemas-data/3.1/brand/get-brand-identity-response.json +10 -10
- package/dist/lib/schemas-data/3.1/brand/get-rights-request.json +8 -8
- package/dist/lib/schemas-data/3.1/brand/get-rights-response.json +11 -11
- package/dist/lib/schemas-data/3.1/brand/revocation-notification.json +4 -4
- package/dist/lib/schemas-data/3.1/brand/rights-pricing-option.json +5 -5
- package/dist/lib/schemas-data/3.1/brand/rights-terms.json +3 -3
- package/dist/lib/schemas-data/3.1/brand/search-brands-request.json +6 -6
- package/dist/lib/schemas-data/3.1/brand/search-brands-response.json +11 -11
- package/dist/lib/schemas-data/3.1/brand/update-rights-request.json +6 -6
- package/dist/lib/schemas-data/3.1/brand/update-rights-response.json +11 -11
- package/dist/lib/schemas-data/3.1/brand/verification-status.json +1 -1
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-request.json +2 -2
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-response.json +13 -13
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-request.json +2 -2
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-response.json +13 -13
- package/dist/lib/schemas-data/3.1/brand.json +21 -21
- package/dist/lib/schemas-data/3.1/bundled.schemas.br +0 -0
- package/dist/lib/schemas-data/3.1/collection/base-collection-source.json +3 -3
- package/dist/lib/schemas-data/3.1/collection/collection-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.1/collection/collection-list-filters.json +7 -7
- package/dist/lib/schemas-data/3.1/collection/collection-list.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/create-collection-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/collection/create-collection-list-response.json +7 -7
- package/dist/lib/schemas-data/3.1/collection/delete-collection-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/delete-collection-list-response.json +6 -6
- package/dist/lib/schemas-data/3.1/collection/get-collection-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/get-collection-list-response.json +12 -12
- package/dist/lib/schemas-data/3.1/collection/list-collection-lists-request.json +6 -6
- package/dist/lib/schemas-data/3.1/collection/list-collection-lists-response.json +7 -7
- package/dist/lib/schemas-data/3.1/collection/update-collection-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/collection/update-collection-list-response.json +7 -7
- package/dist/lib/schemas-data/3.1/content-standards/artifact-webhook-payload.json +3 -3
- package/dist/lib/schemas-data/3.1/content-standards/artifact.json +7 -7
- package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-request.json +5 -5
- package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-response.json +10 -10
- package/dist/lib/schemas-data/3.1/content-standards/content-standards.json +7 -7
- package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-request.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-request.json +4 -4
- package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-response.json +9 -9
- package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-request.json +5 -5
- package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-response.json +10 -10
- package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-request.json +6 -6
- package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-response.json +10 -10
- package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-request.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-response.json +10 -10
- package/dist/lib/schemas-data/3.1/core/account-authorization.json +1 -1
- package/dist/lib/schemas-data/3.1/core/account-ref.json +2 -2
- package/dist/lib/schemas-data/3.1/core/account-with-authorization.json +3 -3
- package/dist/lib/schemas-data/3.1/core/account.json +10 -10
- package/dist/lib/schemas-data/3.1/core/activation-key.json +1 -1
- package/dist/lib/schemas-data/3.1/core/ad-inventory-config.json +1 -1
- package/dist/lib/schemas-data/3.1/core/agent-encryption-key.json +1 -1
- package/dist/lib/schemas-data/3.1/core/agent-signing-key.json +1 -1
- package/dist/lib/schemas-data/3.1/core/app-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/asset-group-vocabulary.json +1 -1
- package/dist/lib/schemas-data/3.1/core/assets/asset-union.json +21 -21
- package/dist/lib/schemas-data/3.1/core/assets/audio-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/brief-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/card-asset.json +6 -6
- package/dist/lib/schemas-data/3.1/core/assets/catalog-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/css-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/daast-asset.json +4 -4
- package/dist/lib/schemas-data/3.1/core/assets/daast-tracker-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/html-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/image-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/javascript-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/markdown-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/pixel-tracker-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/published-post-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/text-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/url-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/vast-asset.json +4 -4
- package/dist/lib/schemas-data/3.1/core/assets/vast-tracker-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/video-asset.json +7 -7
- package/dist/lib/schemas-data/3.1/core/assets/webhook-asset.json +7 -7
- package/dist/lib/schemas-data/3.1/core/assets/zip-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/async-response-data.json +29 -29
- package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/attribution-window.json +4 -4
- package/dist/lib/schemas-data/3.1/core/audience-member.json +3 -3
- package/dist/lib/schemas-data/3.1/core/audience-selector.json +7 -7
- package/dist/lib/schemas-data/3.1/core/authorized-agent-base.json +3 -3
- package/dist/lib/schemas-data/3.1/core/brand-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/brand-ref.json +3 -3
- package/dist/lib/schemas-data/3.1/core/business-entity.json +2 -2
- package/dist/lib/schemas-data/3.1/core/cancellation-policy.json +2 -2
- package/dist/lib/schemas-data/3.1/core/canonical-format-kind.json +1 -1
- package/dist/lib/schemas-data/3.1/core/canonical-projection-ref.json +3 -3
- package/dist/lib/schemas-data/3.1/core/canonical-projection-slot-override.json +1 -1
- package/dist/lib/schemas-data/3.1/core/catalog-field-mapping.json +2 -2
- package/dist/lib/schemas-data/3.1/core/catalog-item-delivery-metrics.json +3 -3
- package/dist/lib/schemas-data/3.1/core/catalog.json +7 -7
- package/dist/lib/schemas-data/3.1/core/catchment.json +5 -5
- package/dist/lib/schemas-data/3.1/core/collection-distribution.json +2 -2
- package/dist/lib/schemas-data/3.1/core/collection-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/collection-selector.json +1 -1
- package/dist/lib/schemas-data/3.1/core/collection.json +13 -13
- package/dist/lib/schemas-data/3.1/core/committed-metric.json +9 -9
- package/dist/lib/schemas-data/3.1/core/content-rating.json +2 -2
- package/dist/lib/schemas-data/3.1/core/context.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-asset.json +10 -10
- package/dist/lib/schemas-data/3.1/core/creative-assignment.json +2 -2
- package/dist/lib/schemas-data/3.1/core/creative-brief.json +4 -4
- package/dist/lib/schemas-data/3.1/core/creative-consumption.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-delivery-metrics.json +2 -2
- package/dist/lib/schemas-data/3.1/core/creative-filters.json +5 -5
- package/dist/lib/schemas-data/3.1/core/creative-item.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-manifest.json +11 -11
- package/dist/lib/schemas-data/3.1/core/creative-policy.json +3 -3
- package/dist/lib/schemas-data/3.1/core/creative-variable.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-variant.json +5 -5
- package/dist/lib/schemas-data/3.1/core/data-provider-signal-selector.json +1 -1
- package/dist/lib/schemas-data/3.1/core/date-range.json +1 -1
- package/dist/lib/schemas-data/3.1/core/datetime-range.json +1 -1
- package/dist/lib/schemas-data/3.1/core/daypart-target.json +2 -2
- package/dist/lib/schemas-data/3.1/core/deadline-policy.json +1 -1
- package/dist/lib/schemas-data/3.1/core/delivery-forecast.json +7 -7
- package/dist/lib/schemas-data/3.1/core/delivery-metric-aggregate.json +9 -9
- package/dist/lib/schemas-data/3.1/core/delivery-metrics.json +8 -8
- package/dist/lib/schemas-data/3.1/core/deployment.json +3 -3
- package/dist/lib/schemas-data/3.1/core/destination-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/destination.json +1 -1
- package/dist/lib/schemas-data/3.1/core/diagnostic-issue.json +1 -1
- package/dist/lib/schemas-data/3.1/core/downstream-connection-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/core/duration.json +1 -1
- package/dist/lib/schemas-data/3.1/core/education-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/error.json +1 -1
- package/dist/lib/schemas-data/3.1/core/evaluator-spec.json +5 -5
- package/dist/lib/schemas-data/3.1/core/event-custom-data.json +2 -2
- package/dist/lib/schemas-data/3.1/core/event-source-health.json +3 -3
- package/dist/lib/schemas-data/3.1/core/event-surface.json +2 -2
- package/dist/lib/schemas-data/3.1/core/event.json +8 -8
- package/dist/lib/schemas-data/3.1/core/ext.json +1 -1
- package/dist/lib/schemas-data/3.1/core/feature-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/core/flight-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-audience.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-platform.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-type.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-geo.json +5 -5
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-placement.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-signal.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-point-dimensions.json +7 -7
- package/dist/lib/schemas-data/3.1/core/forecast-point.json +27 -27
- package/dist/lib/schemas-data/3.1/core/forecast-range.json +1 -1
- package/dist/lib/schemas-data/3.1/core/forecast-vendor-metric-value.json +5 -5
- package/dist/lib/schemas-data/3.1/core/format-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/format-option-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/format-shape-vocabulary.json +1 -1
- package/dist/lib/schemas-data/3.1/core/format.json +251 -44
- package/dist/lib/schemas-data/3.1/core/frequency-cap.json +4 -4
- package/dist/lib/schemas-data/3.1/core/generation-credential.json +3 -3
- package/dist/lib/schemas-data/3.1/core/geo-breakdown-support.json +3 -3
- package/dist/lib/schemas-data/3.1/core/geo-delivery-metrics.json +6 -6
- package/dist/lib/schemas-data/3.1/core/hotel-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/identifier.json +2 -2
- package/dist/lib/schemas-data/3.1/core/impairment.json +3 -3
- package/dist/lib/schemas-data/3.1/core/industry-identifier.json +2 -2
- package/dist/lib/schemas-data/3.1/core/insertion-order.json +1 -1
- package/dist/lib/schemas-data/3.1/core/installment-deadlines.json +2 -2
- package/dist/lib/schemas-data/3.1/core/installment.json +9 -9
- package/dist/lib/schemas-data/3.1/core/job-item.json +3 -3
- package/dist/lib/schemas-data/3.1/core/keyword-delivery-metrics.json +3 -3
- package/dist/lib/schemas-data/3.1/core/limited-series.json +1 -1
- package/dist/lib/schemas-data/3.1/core/material-deadline.json +1 -1
- package/dist/lib/schemas-data/3.1/core/mcp-webhook-payload.json +5 -5
- package/dist/lib/schemas-data/3.1/core/measurement-readiness.json +5 -5
- package/dist/lib/schemas-data/3.1/core/measurement-terms.json +3 -3
- package/dist/lib/schemas-data/3.1/core/measurement-window.json +1 -1
- package/dist/lib/schemas-data/3.1/core/media-buy-available-action.json +4 -4
- package/dist/lib/schemas-data/3.1/core/media-buy-features.json +1 -1
- package/dist/lib/schemas-data/3.1/core/media-buy.json +10 -10
- package/dist/lib/schemas-data/3.1/core/missing-metric.json +9 -9
- package/dist/lib/schemas-data/3.1/core/notification-config.json +4 -4
- package/dist/lib/schemas-data/3.1/core/offering-asset-group.json +16 -16
- package/dist/lib/schemas-data/3.1/core/offering.json +5 -5
- package/dist/lib/schemas-data/3.1/core/optimization-goal.json +7 -7
- package/dist/lib/schemas-data/3.1/core/outcome-measurement.json +2 -2
- package/dist/lib/schemas-data/3.1/core/overlay.json +1 -1
- package/dist/lib/schemas-data/3.1/core/package-signal-targeting-group.json +2 -2
- package/dist/lib/schemas-data/3.1/core/package-signal-targeting-groups.json +2 -2
- package/dist/lib/schemas-data/3.1/core/package-signal-targeting.json +3 -3
- package/dist/lib/schemas-data/3.1/core/package.json +17 -17
- package/dist/lib/schemas-data/3.1/core/pagination-request.json +1 -1
- package/dist/lib/schemas-data/3.1/core/pagination-response.json +1 -1
- package/dist/lib/schemas-data/3.1/core/performance-feedback.json +12 -12
- package/dist/lib/schemas-data/3.1/core/performance-standard.json +4 -4
- package/dist/lib/schemas-data/3.1/core/placement-definition.json +10 -10
- package/dist/lib/schemas-data/3.1/core/placement-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/placement.json +7 -7
- package/dist/lib/schemas-data/3.1/core/planned-delivery.json +5 -5
- package/dist/lib/schemas-data/3.1/core/platform-extension-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/postal-area-support.json +2 -2
- package/dist/lib/schemas-data/3.1/core/postal-area.json +4 -4
- package/dist/lib/schemas-data/3.1/core/postal-country-system.json +2 -2
- package/dist/lib/schemas-data/3.1/core/price.json +1 -1
- package/dist/lib/schemas-data/3.1/core/pricing-option.json +10 -10
- package/dist/lib/schemas-data/3.1/core/product-allocation.json +4 -4
- package/dist/lib/schemas-data/3.1/core/product-allowed-action.json +5 -5
- package/dist/lib/schemas-data/3.1/core/product-filters.json +27 -27
- package/dist/lib/schemas-data/3.1/core/product-format-declaration.json +16 -16
- package/dist/lib/schemas-data/3.1/core/product-signal-targeting-option.json +3 -3
- package/dist/lib/schemas-data/3.1/core/product.json +40 -40
- package/dist/lib/schemas-data/3.1/core/property-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/property-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/property-tag.json +1 -1
- package/dist/lib/schemas-data/3.1/core/property.json +6 -6
- package/dist/lib/schemas-data/3.1/core/proposal.json +6 -6
- package/dist/lib/schemas-data/3.1/core/protocol-envelope.json +6 -6
- package/dist/lib/schemas-data/3.1/core/provenance.json +9 -9
- package/dist/lib/schemas-data/3.1/core/publisher-property-selector.json +3 -3
- package/dist/lib/schemas-data/3.1/core/push-notification-config.json +2 -2
- package/dist/lib/schemas-data/3.1/core/real-estate-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/reference-asset.json +1 -1
- package/dist/lib/schemas-data/3.1/core/registry-event.json +14 -14
- package/dist/lib/schemas-data/3.1/core/registry-feed-response.json +2 -2
- package/dist/lib/schemas-data/3.1/core/reporting-capabilities.json +8 -8
- package/dist/lib/schemas-data/3.1/core/reporting-webhook.json +3 -3
- package/dist/lib/schemas-data/3.1/core/requirements/asset-requirements.json +13 -13
- package/dist/lib/schemas-data/3.1/core/requirements/audio-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/catalog-field-binding.json +4 -4
- package/dist/lib/schemas-data/3.1/core/requirements/catalog-requirements.json +5 -5
- package/dist/lib/schemas-data/3.1/core/requirements/css-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/daast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/html-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/image-asset-requirements.json +2 -2
- package/dist/lib/schemas-data/3.1/core/requirements/javascript-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/markdown-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/offering-asset-constraint.json +4 -4
- package/dist/lib/schemas-data/3.1/core/requirements/text-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/url-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/vast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/video-asset-requirements.json +6 -6
- package/dist/lib/schemas-data/3.1/core/requirements/webhook-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/response-payload-jws-envelope.json +1 -1
- package/dist/lib/schemas-data/3.1/core/response.json +1 -1
- package/dist/lib/schemas-data/3.1/core/rights-constraint.json +4 -4
- package/dist/lib/schemas-data/3.1/core/seller-agent-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-coverage-forecast.json +5 -5
- package/dist/lib/schemas-data/3.1/core/signal-definition-enrichment.json +4 -4
- package/dist/lib/schemas-data/3.1/core/signal-definition.json +5 -5
- package/dist/lib/schemas-data/3.1/core/signal-filters.json +3 -3
- package/dist/lib/schemas-data/3.1/core/signal-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-listing.json +4 -4
- package/dist/lib/schemas-data/3.1/core/signal-modeling-disclosure.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.1/core/signal-pricing.json +6 -6
- package/dist/lib/schemas-data/3.1/core/signal-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-selection-group-rule.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-targeting-expression.json +4 -4
- package/dist/lib/schemas-data/3.1/core/signal-targeting-rules.json +2 -2
- package/dist/lib/schemas-data/3.1/core/signal-targeting.json +7 -7
- package/dist/lib/schemas-data/3.1/core/sla-window.json +1 -1
- package/dist/lib/schemas-data/3.1/core/special.json +2 -2
- package/dist/lib/schemas-data/3.1/core/start-timing.json +1 -1
- package/dist/lib/schemas-data/3.1/core/store-item.json +3 -3
- package/dist/lib/schemas-data/3.1/core/talent.json +2 -2
- package/dist/lib/schemas-data/3.1/core/targeting.json +22 -22
- package/dist/lib/schemas-data/3.1/core/tasks-get-request.json +5 -5
- package/dist/lib/schemas-data/3.1/core/tasks-get-response.json +10 -10
- package/dist/lib/schemas-data/3.1/core/tasks-list-request.json +13 -13
- package/dist/lib/schemas-data/3.1/core/tasks-list-response.json +8 -8
- package/dist/lib/schemas-data/3.1/core/transformer-param.json +1 -1
- package/dist/lib/schemas-data/3.1/core/transformer.json +5 -5
- package/dist/lib/schemas-data/3.1/core/truncation-sentinel.json +1 -1
- package/dist/lib/schemas-data/3.1/core/user-match.json +3 -3
- package/dist/lib/schemas-data/3.1/core/vehicle-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/vendor-metric-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization-supported-metric.json +3 -3
- package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization.json +2 -2
- package/dist/lib/schemas-data/3.1/core/vendor-metric-value.json +3 -3
- package/dist/lib/schemas-data/3.1/core/vendor-pricing-option.json +3 -3
- package/dist/lib/schemas-data/3.1/core/version-envelope.json +1 -1
- package/dist/lib/schemas-data/3.1/core/webhook-activity-record.json +3 -3
- package/dist/lib/schemas-data/3.1/core/webhook-challenge-response.json +1 -1
- package/dist/lib/schemas-data/3.1/core/webhook-challenge.json +2 -2
- package/dist/lib/schemas-data/3.1/core/wholesale-feed-event.json +17 -17
- package/dist/lib/schemas-data/3.1/core/wholesale-feed-webhook.json +3 -3
- package/dist/lib/schemas-data/3.1/core/x-entity-types.json +1 -1
- package/dist/lib/schemas-data/3.1/creative/asset-types/index.json +6 -6
- package/dist/lib/schemas-data/3.1/creative/audit-observation.json +2 -2
- package/dist/lib/schemas-data/3.1/creative/creative-feature-result.json +2 -2
- package/dist/lib/schemas-data/3.1/creative/creative-purged-webhook.json +3 -3
- package/dist/lib/schemas-data/3.1/creative/creative-status-changed-webhook.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-request.json +6 -6
- package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-response.json +9 -9
- package/dist/lib/schemas-data/3.1/creative/get-creative-features-request.json +6 -6
- package/dist/lib/schemas-data/3.1/creative/get-creative-features-response.json +11 -11
- package/dist/lib/schemas-data/3.1/creative/list-creative-formats-request.json +13 -13
- package/dist/lib/schemas-data/3.1/creative/list-creative-formats-response.json +9 -9
- package/dist/lib/schemas-data/3.1/creative/list-creatives-request.json +9 -9
- package/dist/lib/schemas-data/3.1/creative/list-creatives-response.json +21 -21
- package/dist/lib/schemas-data/3.1/creative/list-transformers-request.json +8 -8
- package/dist/lib/schemas-data/3.1/creative/list-transformers-response.json +8 -8
- package/dist/lib/schemas-data/3.1/creative/preview-creative-request.json +12 -12
- package/dist/lib/schemas-data/3.1/creative/preview-creative-response.json +14 -14
- package/dist/lib/schemas-data/3.1/creative/preview-render.json +1 -1
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-request.json +8 -8
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-response.json +15 -15
- package/dist/lib/schemas-data/3.1/creative/validate-input-request.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/validate-input-response.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/validate-input-result.json +1 -1
- package/dist/lib/schemas-data/3.1/creative/video-brief.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/account-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/account-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/action-not-allowed-reason.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/action-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/adcp-protocol.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/adjustment-kind.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/advertiser-industry.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/age-verification-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/assessment-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/asset-content-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/attestation-claim.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/attribution-methodology.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/attribution-model.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audience-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audience-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audio-channel-layout.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audio-distribution-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/auth-scheme.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/available-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/billing-party.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/binary-verdict.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/brand-agent-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/c2pa-watermark-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/canceled-by.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/catalog-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/catalog-item-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/channels.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/cloud-storage-protocol.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/co-branding-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-cadence.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-kind.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-relationship.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/completion-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/consent-basis.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/content-id-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/content-rating-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-agent-capability.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-approval-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-event-reason-code.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-quality.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-selection-strategy.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-sort-field.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/daast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/daast-version.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/day-of-week.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/delegation-authority.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/delivery-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/demographic-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/derivative-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/device-platform.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/device-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/digital-source-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/dimension-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/disclosure-persistence.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/disclosure-position.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/distance-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/distribution-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/embedded-provenance-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/error-code.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/error-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/escalation-severity.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/event-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/exclusivity.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/feature-check-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/feed-format.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/feedback-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/forecast-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/forecast-range-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/forecastable-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/format-id-parameter.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/frame-rate-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/frequency-cap-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/genre-taxonomy.json +3 -3
- package/dist/lib/schemas-data/3.1/enums/geo-level.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/gop-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-decision.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-domain.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-phase.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/history-entry-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/http-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/impairment-offline-state.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/impairment-reason-code.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/installment-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/javascript-module-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/landing-page-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/legacy-postal-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/lift-dimension.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/logo-slot.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/makegood-remedy.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/markdown-flavor.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/match-id-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/match-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-action-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-health.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-valid-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/metric-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/metric-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/metro-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/moov-atom-position.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/notification-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/offering-availability-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/outcome-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/pacing.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/payment-terms.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/performance-standard-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/policy-category.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/policy-enforcement.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/postal-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/preview-output-format.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/pricing-model.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/production-quality.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/property-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/proposal-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/publisher-identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/purchase-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/reach-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/reporting-frequency.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/response-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/restricted-attribute.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/right-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/right-use.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/rights-billing-period.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/scan-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/si-session-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/signal-catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/signal-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/signal-value-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/snapshot-unavailable-reason.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/social-placement-surface.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/sort-direction.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/sort-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/special-category.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/specialism.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/sponsored-placement-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/talent-role.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/task-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/task-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/transport-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/travel-time-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/uid-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/universal-macro.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/update-frequency.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/url-asset-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/validation-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/vast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/vast-version.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/video-placement-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/viewability-standard.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/watermark-media-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/wcag-level.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/webhook-response-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/webhook-security-method.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/account-setup-required.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/action-not-allowed.json +4 -4
- package/dist/lib/schemas-data/3.1/error-details/agent-permission-denied.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/audience-too-small.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/authorization-required.json +3 -3
- package/dist/lib/schemas-data/3.1/error-details/billing-not-permitted-for-agent.json +3 -3
- package/dist/lib/schemas-data/3.1/error-details/billing-not-supported.json +2 -2
- package/dist/lib/schemas-data/3.1/error-details/budget-too-low.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/conflict.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/creative-rejected.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/policy-violation.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/rate-limited.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/stale-response.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/vendor-error-codes.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/version-unsupported.json +2 -2
- package/dist/lib/schemas-data/3.1/extensions/extension-meta.json +1 -1
- package/dist/lib/schemas-data/3.1/extensions/index.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/_base.json +5 -5
- package/dist/lib/schemas-data/3.1/formats/canonical/agent_placement.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/audio_daast.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/audio_hosted.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/display_tag.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/html5.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/image.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/image_carousel.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/native_in_feed.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/responsive_creative.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/sponsored_placement.json +3 -3
- package/dist/lib/schemas-data/3.1/formats/canonical/video_hosted.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/video_vast.json +2 -2
- package/dist/lib/schemas-data/3.1/governance/attribute-definition.json +1 -1
- package/dist/lib/schemas-data/3.1/governance/audience-constraints.json +3 -3
- package/dist/lib/schemas-data/3.1/governance/check-governance-request.json +8 -8
- package/dist/lib/schemas-data/3.1/governance/check-governance-response.json +7 -7
- package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-request.json +5 -5
- package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-response.json +11 -11
- package/dist/lib/schemas-data/3.1/governance/policy-category-definition.json +2 -2
- package/dist/lib/schemas-data/3.1/governance/policy-entry.json +6 -6
- package/dist/lib/schemas-data/3.1/governance/policy-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-request.json +7 -7
- package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-response.json +6 -6
- package/dist/lib/schemas-data/3.1/governance/sync-plans-request.json +14 -14
- package/dist/lib/schemas-data/3.1/governance/sync-plans-response.json +7 -7
- package/dist/lib/schemas-data/3.1/index.json +443 -443
- package/dist/lib/schemas-data/3.1/manifest.json +7 -11
- package/dist/lib/schemas-data/3.1/manifest.schema.json +1 -1
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-request.json +16 -16
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-response.json +35 -35
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-request.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-response.json +19 -19
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-request.json +23 -23
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-response.json +27 -27
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-response.json +30 -30
- package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/get-products-request.json +20 -13
- package/dist/lib/schemas-data/3.1/media-buy/get-products-response.json +10 -10
- package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-request.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-response.json +9 -9
- package/dist/lib/schemas-data/3.1/media-buy/log-event-request.json +5 -5
- package/dist/lib/schemas-data/3.1/media-buy/log-event-response.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/media-buy-delivery-webhook-result.json +9 -9
- package/dist/lib/schemas-data/3.1/media-buy/package-request.json +23 -23
- package/dist/lib/schemas-data/3.1/media-buy/package-update.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-request.json +7 -7
- package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-response.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-response.json +14 -14
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-response.json +14 -14
- package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-response.json +14 -14
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-request.json +11 -11
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-response.json +17 -17
- package/dist/lib/schemas-data/3.1/pricing-options/cpa-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpc-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpcv-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpm-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpp-option.json +5 -5
- package/dist/lib/schemas-data/3.1/pricing-options/cpv-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/flat-rate-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/price-breakdown.json +2 -2
- package/dist/lib/schemas-data/3.1/pricing-options/price-guidance.json +1 -1
- package/dist/lib/schemas-data/3.1/pricing-options/time-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/vcpm-option.json +4 -4
- package/dist/lib/schemas-data/3.1/property/authorization-result.json +1 -1
- package/dist/lib/schemas-data/3.1/property/base-property-source.json +4 -4
- package/dist/lib/schemas-data/3.1/property/create-property-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/property/create-property-list-response.json +7 -7
- package/dist/lib/schemas-data/3.1/property/delete-property-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/property/delete-property-list-response.json +6 -6
- package/dist/lib/schemas-data/3.1/property/delivery-record.json +3 -3
- package/dist/lib/schemas-data/3.1/property/get-property-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/property/get-property-list-response.json +9 -9
- package/dist/lib/schemas-data/3.1/property/list-property-lists-request.json +6 -6
- package/dist/lib/schemas-data/3.1/property/list-property-lists-response.json +7 -7
- package/dist/lib/schemas-data/3.1/property/property-error.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-feature-definition.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-feature-result.json +4 -4
- package/dist/lib/schemas-data/3.1/property/property-feature-value.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-feature.json +1 -1
- package/dist/lib/schemas-data/3.1/property/property-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-list-filters.json +5 -5
- package/dist/lib/schemas-data/3.1/property/property-list.json +6 -6
- package/dist/lib/schemas-data/3.1/property/update-property-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/property/update-property-list-response.json +7 -7
- package/dist/lib/schemas-data/3.1/property/validate-property-delivery-request.json +6 -6
- package/dist/lib/schemas-data/3.1/property/validate-property-delivery-response.json +6 -6
- package/dist/lib/schemas-data/3.1/property/validation-result.json +5 -5
- package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-request.json +4 -4
- package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-response.json +34 -34
- package/dist/lib/schemas-data/3.1/protocol/get-task-status-request.json +5 -5
- package/dist/lib/schemas-data/3.1/protocol/get-task-status-response.json +10 -10
- package/dist/lib/schemas-data/3.1/protocol/list-tasks-request.json +13 -13
- package/dist/lib/schemas-data/3.1/protocol/list-tasks-response.json +8 -8
- package/dist/lib/schemas-data/3.1/registries/v1-canonical-mapping.json +2 -2
- package/dist/lib/schemas-data/3.1/signals/activate-signal-request.json +6 -6
- package/dist/lib/schemas-data/3.1/signals/activate-signal-response.json +9 -9
- package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/signals/get-signals-request.json +11 -11
- package/dist/lib/schemas-data/3.1/signals/get-signals-response.json +17 -17
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-capabilities.json +1 -1
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-context-use.json +1 -1
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-request.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-response.json +9 -9
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-identity.json +1 -1
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-request.json +7 -7
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-response.json +10 -10
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-request.json +5 -5
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-response.json +10 -10
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context-receipt.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-request.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-response.json +7 -7
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-ui-element.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/available-package.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/context-match-request.json +10 -10
- package/dist/lib/schemas-data/3.1/trusted-match/context-match-response.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/error.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/identity-match-request.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/identity-match-response.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/offer-price.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/offer.json +5 -5
- package/dist/lib/schemas-data/3.1/trusted-match/provider-identity-match-response.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/provider-registration.json +2 -2
- package/dist/lib/schemas-data/3.1/trusted-match/publisher-tmpx-config.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/tmpx-chunk.json +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +21 -3
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +21 -3
- package/dist/lib/server/serve.js +2 -0
- package/dist/lib/server/serve.mjs +2 -0
- package/dist/lib/testing/storyboard/request-builder.js +33 -4
- package/dist/lib/testing/storyboard/request-builder.mjs +33 -4
- package/dist/lib/testing/storyboard/request-signing/builder.js +62 -7
- package/dist/lib/testing/storyboard/request-signing/builder.mjs +63 -7
- package/dist/lib/testing/storyboard/request-signing/grader.d.mts +7 -4
- package/dist/lib/testing/storyboard/request-signing/grader.d.ts +7 -4
- package/dist/lib/testing/storyboard/request-signing/grader.js +27 -11
- package/dist/lib/testing/storyboard/request-signing/grader.mjs +29 -12
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +4 -1
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +5 -2
- package/dist/lib/testing/storyboard/request-signing/synthesize.d.mts +2 -0
- package/dist/lib/testing/storyboard/request-signing/synthesize.d.ts +2 -0
- package/dist/lib/testing/storyboard/request-signing/synthesize.js +6 -2
- package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +11 -3
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.mts +3 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts +3 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.js +17 -2
- package/dist/lib/testing/storyboard/request-signing/vector-loader.mjs +14 -1
- package/dist/lib/testing/storyboard/runner.js +46 -11
- package/dist/lib/testing/storyboard/runner.mjs +46 -11
- package/dist/lib/testing/storyboard/seeding.d.mts +2 -2
- package/dist/lib/testing/storyboard/seeding.d.ts +2 -2
- package/dist/lib/testing/storyboard/seeding.js +107 -12
- package/dist/lib/testing/storyboard/seeding.mjs +107 -12
- package/dist/lib/testing/storyboard/types.d.mts +5 -1
- package/dist/lib/testing/storyboard/types.d.ts +5 -1
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/types/core.generated.d.mts +21 -20
- package/dist/lib/types/core.generated.d.ts +21 -20
- package/dist/lib/types/schemas.generated.d.ts +131 -131
- package/dist/lib/types/schemas.generated.js +64 -64
- package/dist/lib/types/schemas.generated.mjs +64 -64
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +9 -3
- package/dist/lib/version.mjs +9 -3
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/guides/BUYER-QUICKSTART-3.2.md +1 -1
- package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -2
- package/docs/guides/VALIDATE-YOUR-AGENT.md +10 -1
- package/docs/llms.txt +2 -2
- package/docs/migration-12-to-14.md +1 -1
- package/docs/migration-13-to-14.md +5 -5
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/package.json +3 -3
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/creative/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/creative/scenarios/native_in_feed.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/available_actions.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/dependency_impairment_audience.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/signals/scenarios/get_signals_async.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/creative/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/creative-template/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/creative-transformers/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/specialisms/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/billing-gate-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/distributed-brand-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/parallel-dispatch-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/rate-limit-trip-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/single-side-trust-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-kits/webhook-receiver-runner.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/catalog-macro-substitution.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-receiver-envelope.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/idempotency.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/notification-config-event-scope.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/notification-config-lifecycle.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/notification-config-rejections.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/schema-validation-signals.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/schema-validation.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/security.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/signed-requests.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/stale-response-advisory.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/v3-envelope-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/version-negotiation.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/webhook-emission.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/webhook-receiver-envelope.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/wholesale-feed-product-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/wholesale-feed-products.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.18 → 3.1.24}/universal/wholesale-feed-signals.yaml +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createPrivateKey, randomBytes, randomUUID, sign as nodeSign } from "crypto";
|
|
2
2
|
import {
|
|
3
3
|
buildSignatureBase,
|
|
4
|
+
computeContentDigest,
|
|
4
5
|
finalizeRequestSignature,
|
|
5
6
|
formatSignatureParams,
|
|
6
7
|
prepareRequestSignature,
|
|
@@ -174,8 +175,44 @@ const MUTATIONS = {
|
|
|
174
175
|
// transport-ungradable by the live probe because no HTTP client can route
|
|
175
176
|
// to that intentionally invalid host spelling.
|
|
176
177
|
"profile-3.2/negative/001-base64url-sf-binary": (vector, _keys, options) => passthrough(vector, options),
|
|
177
|
-
"profile-3.2/negative/002-multiple-trailing-dots": (vector, _keys, options) => passthrough(vector, options)
|
|
178
|
+
"profile-3.2/negative/002-multiple-trailing-dots": (vector, _keys, options) => passthrough(vector, options),
|
|
179
|
+
"profile-3.2/negative/002-wrong-tag": delegateToRoot("002-wrong-tag"),
|
|
180
|
+
"profile-3.2/negative/003-expired-signature": delegateToRoot("003-expired-signature"),
|
|
181
|
+
"profile-3.2/negative/004-window-too-long": delegateToRoot("004-window-too-long"),
|
|
182
|
+
"profile-3.2/negative/005-alg-not-allowed": delegateToRoot("005-alg-not-allowed"),
|
|
183
|
+
"profile-3.2/negative/006-missing-covered-component": (vector, keys, options) => signWithComponents(
|
|
184
|
+
signerKeyFor(vector, keys),
|
|
185
|
+
vector,
|
|
186
|
+
options,
|
|
187
|
+
["@method", "@target-uri", "content-type", "content-digest"],
|
|
188
|
+
true
|
|
189
|
+
),
|
|
190
|
+
"profile-3.2/negative/007-missing-content-digest": delegateToRoot("007-missing-content-digest"),
|
|
191
|
+
"profile-3.2/negative/008-unknown-keyid": delegateToRoot("008-unknown-keyid"),
|
|
192
|
+
"profile-3.2/negative/009-key-ops-missing-verify": delegateToRoot("009-key-ops-missing-verify"),
|
|
193
|
+
"profile-3.2/negative/010-content-digest-mismatch": delegateToRoot("010-content-digest-mismatch"),
|
|
194
|
+
"profile-3.2/negative/012-missing-expires-param": delegateToRoot("012-missing-expires-param"),
|
|
195
|
+
"profile-3.2/negative/013-expires-le-created": delegateToRoot("013-expires-le-created"),
|
|
196
|
+
"profile-3.2/negative/014-missing-nonce-param": delegateToRoot("014-missing-nonce-param"),
|
|
197
|
+
"profile-3.2/negative/015-signature-invalid": (vector, keys, options) => {
|
|
198
|
+
const signed = sign(signerKeyFor(vector, keys), vector, options);
|
|
199
|
+
return {
|
|
200
|
+
...signed,
|
|
201
|
+
headers: { ...signed.headers, Signature: `sig1=:${Buffer.alloc(64).toString("base64")}:` }
|
|
202
|
+
};
|
|
203
|
+
},
|
|
204
|
+
"profile-3.2/negative/016-replayed-nonce": delegateToRoot("016-replayed-nonce"),
|
|
205
|
+
"profile-3.2/negative/017-key-revoked": delegateToRoot("017-key-revoked"),
|
|
206
|
+
"profile-3.2/negative/020-rate-abuse": delegateToRoot("020-rate-abuse"),
|
|
207
|
+
"profile-3.2/negative/025-jwk-alg-crv-mismatch": delegateToRoot("025-jwk-alg-crv-mismatch")
|
|
178
208
|
};
|
|
209
|
+
function delegateToRoot(rootId) {
|
|
210
|
+
return (vector, keys, options) => {
|
|
211
|
+
const mutation = MUTATIONS[rootId];
|
|
212
|
+
if (!mutation) throw new Error(`Missing root request-signing mutation "${rootId}"`);
|
|
213
|
+
return mutation(vector, keys, options);
|
|
214
|
+
};
|
|
215
|
+
}
|
|
179
216
|
function passthrough(vector, options) {
|
|
180
217
|
const shaped = applyTransport(vector, options);
|
|
181
218
|
return {
|
|
@@ -199,6 +236,12 @@ function protocolMethodPassthrough(vector, options) {
|
|
|
199
236
|
body: vector.request.body
|
|
200
237
|
};
|
|
201
238
|
}
|
|
239
|
+
function binaryEncoding(vector) {
|
|
240
|
+
return requestSigningEncodingForVersion(vector.signing_profile_version) === "rfc8941-base64" ? "base64" : "base64url";
|
|
241
|
+
}
|
|
242
|
+
function canonicalizationProfile(vector) {
|
|
243
|
+
return binaryEncoding(vector) === "base64" ? "3.2" : "legacy";
|
|
244
|
+
}
|
|
202
245
|
function sign(key, vector, args) {
|
|
203
246
|
const shaped = applyTransport(vector, args);
|
|
204
247
|
const request = {
|
|
@@ -211,7 +254,7 @@ function sign(key, vector, args) {
|
|
|
211
254
|
request,
|
|
212
255
|
{ keyid: key.keyid, alg: key.alg },
|
|
213
256
|
{
|
|
214
|
-
coverContentDigest: args.coverContentDigest ===
|
|
257
|
+
coverContentDigest: args.coverContentDigest ?? vector.verifier_capability.covers_content_digest === "required",
|
|
215
258
|
now: args.now !== void 0 ? () => args.now : void 0,
|
|
216
259
|
nonce: args.nonce,
|
|
217
260
|
windowSeconds: args.windowSeconds,
|
|
@@ -309,6 +352,7 @@ function wrapMcpEnvelope(operation, rawBody, idOverride) {
|
|
|
309
352
|
}
|
|
310
353
|
function signWithParamOverride(key, vector, options, override) {
|
|
311
354
|
const shaped = applyTransport(vector, options);
|
|
355
|
+
if (vector.verifier_capability.covers_content_digest === "required") refreshContentDigest(shaped, vector);
|
|
312
356
|
const url = shaped.url;
|
|
313
357
|
const request = {
|
|
314
358
|
method: shaped.method,
|
|
@@ -318,6 +362,9 @@ function signWithParamOverride(key, vector, options, override) {
|
|
|
318
362
|
};
|
|
319
363
|
const hasBody = (request.body ?? "").length > 0;
|
|
320
364
|
const components = hasBody ? ["@method", "@target-uri", "@authority", "content-type"] : ["@method", "@target-uri", "@authority"];
|
|
365
|
+
if (hasBody && vector.verifier_capability.covers_content_digest === "required") {
|
|
366
|
+
components.push("content-digest");
|
|
367
|
+
}
|
|
321
368
|
const now = nowSeconds(options);
|
|
322
369
|
const windowSeconds = options.windowSeconds ?? 300;
|
|
323
370
|
const params = {
|
|
@@ -329,7 +376,7 @@ function signWithParamOverride(key, vector, options, override) {
|
|
|
329
376
|
tag: override.tag ?? REQUEST_SIGNING_TAG
|
|
330
377
|
};
|
|
331
378
|
const paramsString = formatParamsWithOmissions(components, params, override);
|
|
332
|
-
const base = buildSignatureBase(components, request, params, paramsString);
|
|
379
|
+
const base = buildSignatureBase(components, request, params, paramsString, canonicalizationProfile(vector));
|
|
333
380
|
const signature = produceSignature(key, Buffer.from(base, "utf8"));
|
|
334
381
|
return {
|
|
335
382
|
method: shaped.method,
|
|
@@ -337,13 +384,14 @@ function signWithParamOverride(key, vector, options, override) {
|
|
|
337
384
|
headers: {
|
|
338
385
|
...shaped.headers,
|
|
339
386
|
"Signature-Input": `sig1=${paramsString}`,
|
|
340
|
-
Signature: `sig1=:${Buffer.from(signature).toString(
|
|
387
|
+
Signature: `sig1=:${Buffer.from(signature).toString(binaryEncoding(vector))}:`
|
|
341
388
|
},
|
|
342
389
|
body: shaped.body
|
|
343
390
|
};
|
|
344
391
|
}
|
|
345
|
-
function signWithComponents(key, vector, options, components) {
|
|
392
|
+
function signWithComponents(key, vector, options, components, refreshDigest = false) {
|
|
346
393
|
const shaped = applyTransport(vector, options);
|
|
394
|
+
if (refreshDigest) refreshContentDigest(shaped, vector);
|
|
347
395
|
const url = shaped.url;
|
|
348
396
|
const request = {
|
|
349
397
|
method: shaped.method,
|
|
@@ -362,7 +410,7 @@ function signWithComponents(key, vector, options, components) {
|
|
|
362
410
|
tag: REQUEST_SIGNING_TAG
|
|
363
411
|
};
|
|
364
412
|
const paramsString = formatSignatureParams(components, params);
|
|
365
|
-
const base = buildSignatureBase(components, request, params, paramsString);
|
|
413
|
+
const base = buildSignatureBase(components, request, params, paramsString, canonicalizationProfile(vector));
|
|
366
414
|
const signature = produceSignature(key, Buffer.from(base, "utf8"));
|
|
367
415
|
return {
|
|
368
416
|
method: shaped.method,
|
|
@@ -370,11 +418,19 @@ function signWithComponents(key, vector, options, components) {
|
|
|
370
418
|
headers: {
|
|
371
419
|
...shaped.headers,
|
|
372
420
|
"Signature-Input": `sig1=${paramsString}`,
|
|
373
|
-
Signature: `sig1=:${Buffer.from(signature).toString(
|
|
421
|
+
Signature: `sig1=:${Buffer.from(signature).toString(binaryEncoding(vector))}:`
|
|
374
422
|
},
|
|
375
423
|
body: shaped.body
|
|
376
424
|
};
|
|
377
425
|
}
|
|
426
|
+
function refreshContentDigest(shaped, vector) {
|
|
427
|
+
shaped.headers = mergeHeadersCaseInsensitively(shaped.headers, {
|
|
428
|
+
"Content-Digest": computeContentDigest(
|
|
429
|
+
shaped.body ?? "",
|
|
430
|
+
requestSigningEncodingForVersion(vector.signing_profile_version)
|
|
431
|
+
)
|
|
432
|
+
});
|
|
433
|
+
}
|
|
378
434
|
function formatParamsWithOmissions(components, params, override) {
|
|
379
435
|
const componentList = components.map((c) => `"${c}"`).join(" ");
|
|
380
436
|
const pairs = [];
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type LoadVectorsOptions } from './vector-loader.mjs';
|
|
2
2
|
import type { NegativeVector, PositiveVector, VerifierCapabilityFixture } from './types.mjs';
|
|
3
3
|
export interface GradeOptions extends LoadVectorsOptions {
|
|
4
|
+
/** Grade only authored 3.2 profile vectors. Omit for the legacy root corpus. */
|
|
5
|
+
signingProfileVersion?: '3.2';
|
|
4
6
|
/** Allow http:// and private-IP destinations. Off by default (match fetchProbe). */
|
|
5
7
|
allowPrivateIp?: boolean;
|
|
6
8
|
/** Skip the rate-abuse vector (it sends 100+ requests; slow). Defaults to false. */
|
|
@@ -30,7 +32,8 @@ export interface GradeOptions extends LoadVectorsOptions {
|
|
|
30
32
|
* each vector's `Signature-Input` and auto-skips vectors whose actual
|
|
31
33
|
* signed components are structurally incompatible with the agent's
|
|
32
34
|
* policy (uncovered `content-digest` against a `'required'` verifier,
|
|
33
|
-
* or covered `content-digest` against a `'forbidden'` verifier).
|
|
35
|
+
* or covered `content-digest` against a `'forbidden'` verifier). A vector
|
|
36
|
+
* expecting that exact policy refusal remains gradable.
|
|
34
37
|
*
|
|
35
38
|
* Without this option, every vector runs and cap-profile mismatches
|
|
36
39
|
* produce failed vectors that the operator has to manually translate
|
|
@@ -69,11 +72,11 @@ export interface GradeOptions extends LoadVectorsOptions {
|
|
|
69
72
|
* - Vectors whose actual `Signature-Input` covers `content-digest`
|
|
70
73
|
* against a `'forbidden'` agent (rejected with
|
|
71
74
|
* `request_signature_components_unexpected` before the intended
|
|
72
|
-
* error path).
|
|
75
|
+
* error path, unless that is the vector's expected error).
|
|
73
76
|
* - Vectors whose actual `Signature-Input` does not cover
|
|
74
77
|
* `content-digest` against a `'required'` agent (rejected with
|
|
75
78
|
* `request_signature_components_incomplete` before the intended
|
|
76
|
-
* error path).
|
|
79
|
+
* error path, unless that is the vector's expected error).
|
|
77
80
|
*
|
|
78
81
|
* Skipped vectors use `skip_reason: 'capability_profile_mismatch'`.
|
|
79
82
|
*
|
|
@@ -201,7 +204,7 @@ export interface GradeReport {
|
|
|
201
204
|
total_duration_ms: number;
|
|
202
205
|
}
|
|
203
206
|
/**
|
|
204
|
-
* Grade an agent's RFC 9421 verifier against the
|
|
207
|
+
* Grade an agent's RFC 9421 verifier against the selected conformance vectors.
|
|
205
208
|
*
|
|
206
209
|
* Preconditions the caller owns:
|
|
207
210
|
* - Agent advertises `request_signing.supported: true` in `get_adcp_capabilities`.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type LoadVectorsOptions } from './vector-loader';
|
|
2
2
|
import type { NegativeVector, PositiveVector, VerifierCapabilityFixture } from './types';
|
|
3
3
|
export interface GradeOptions extends LoadVectorsOptions {
|
|
4
|
+
/** Grade only authored 3.2 profile vectors. Omit for the legacy root corpus. */
|
|
5
|
+
signingProfileVersion?: '3.2';
|
|
4
6
|
/** Allow http:// and private-IP destinations. Off by default (match fetchProbe). */
|
|
5
7
|
allowPrivateIp?: boolean;
|
|
6
8
|
/** Skip the rate-abuse vector (it sends 100+ requests; slow). Defaults to false. */
|
|
@@ -30,7 +32,8 @@ export interface GradeOptions extends LoadVectorsOptions {
|
|
|
30
32
|
* each vector's `Signature-Input` and auto-skips vectors whose actual
|
|
31
33
|
* signed components are structurally incompatible with the agent's
|
|
32
34
|
* policy (uncovered `content-digest` against a `'required'` verifier,
|
|
33
|
-
* or covered `content-digest` against a `'forbidden'` verifier).
|
|
35
|
+
* or covered `content-digest` against a `'forbidden'` verifier). A vector
|
|
36
|
+
* expecting that exact policy refusal remains gradable.
|
|
34
37
|
*
|
|
35
38
|
* Without this option, every vector runs and cap-profile mismatches
|
|
36
39
|
* produce failed vectors that the operator has to manually translate
|
|
@@ -69,11 +72,11 @@ export interface GradeOptions extends LoadVectorsOptions {
|
|
|
69
72
|
* - Vectors whose actual `Signature-Input` covers `content-digest`
|
|
70
73
|
* against a `'forbidden'` agent (rejected with
|
|
71
74
|
* `request_signature_components_unexpected` before the intended
|
|
72
|
-
* error path).
|
|
75
|
+
* error path, unless that is the vector's expected error).
|
|
73
76
|
* - Vectors whose actual `Signature-Input` does not cover
|
|
74
77
|
* `content-digest` against a `'required'` agent (rejected with
|
|
75
78
|
* `request_signature_components_incomplete` before the intended
|
|
76
|
-
* error path).
|
|
79
|
+
* error path, unless that is the vector's expected error).
|
|
77
80
|
*
|
|
78
81
|
* Skipped vectors use `skip_reason: 'capability_profile_mismatch'`.
|
|
79
82
|
*
|
|
@@ -201,7 +204,7 @@ export interface GradeReport {
|
|
|
201
204
|
total_duration_ms: number;
|
|
202
205
|
}
|
|
203
206
|
/**
|
|
204
|
-
* Grade an agent's RFC 9421 verifier against the
|
|
207
|
+
* Grade an agent's RFC 9421 verifier against the selected conformance vectors.
|
|
205
208
|
*
|
|
206
209
|
* Preconditions the caller owns:
|
|
207
210
|
* - Agent advertises `request_signing.supported: true` in `get_adcp_capabilities`.
|
|
@@ -36,9 +36,10 @@ var import_parser = require('../../../signing/parser.js');
|
|
|
36
36
|
async function gradeRequestSigning(agentUrl, options = {}) {
|
|
37
37
|
const start = Date.now();
|
|
38
38
|
const loaded = (0, import_vector_loader.loadRequestSigningVectors)(options);
|
|
39
|
+
const selected = (0, import_vector_loader.selectRequestSigningVectors)(loaded, options.signingProfileVersion);
|
|
39
40
|
const contract = (0, import_test_kit.loadSignedRequestsRunnerContract)(options);
|
|
40
41
|
const transport = options.transport ?? "mcp";
|
|
41
|
-
const hasRunnableNetworkVector =
|
|
42
|
+
const hasRunnableNetworkVector = selected.positive.some((vector) => !preflightSkip(vector, "positive", contract, options)) || selected.negative.some((vector) => !vector.jwks_override && !preflightSkip(vector, "negative", contract, options));
|
|
42
43
|
let mcpSessionId = options.mcpSessionId;
|
|
43
44
|
let mcpProtocolVersion = options.mcpProtocolVersion;
|
|
44
45
|
if (transport === "mcp" && hasRunnableNetworkVector && mcpSessionId === void 0) {
|
|
@@ -63,7 +64,7 @@ async function gradeRequestSigning(agentUrl, options = {}) {
|
|
|
63
64
|
mcpProtocolVersion: transport === "mcp" ? mcpProtocolVersion : void 0
|
|
64
65
|
};
|
|
65
66
|
const positive = [];
|
|
66
|
-
for (const vector of
|
|
67
|
+
for (const vector of selected.positive) {
|
|
67
68
|
const skip = preflightSkip(vector, "positive", contract, options);
|
|
68
69
|
if (skip) {
|
|
69
70
|
positive.push(skip);
|
|
@@ -75,7 +76,7 @@ async function gradeRequestSigning(agentUrl, options = {}) {
|
|
|
75
76
|
positive.push(withA2aProbeUrl(gradePositive(vector, probed), buildOpts));
|
|
76
77
|
}
|
|
77
78
|
const negative = [];
|
|
78
|
-
for (const vector of
|
|
79
|
+
for (const vector of selected.negative) {
|
|
79
80
|
const skip = preflightSkip(vector, "negative", contract, options);
|
|
80
81
|
if (skip) {
|
|
81
82
|
negative.push(skip);
|
|
@@ -116,7 +117,15 @@ const MCP_FLATTENED_VECTORS = /* @__PURE__ */ new Set([
|
|
|
116
117
|
"009-percent-encoded-unreserved-decoded",
|
|
117
118
|
"010-percent-encoded-slash-preserved",
|
|
118
119
|
"011-ipv6-authority",
|
|
119
|
-
"012-ipv6-authority-default-port-stripped"
|
|
120
|
+
"012-ipv6-authority-default-port-stripped",
|
|
121
|
+
"profile-3.2/positive/005-default-port-stripped",
|
|
122
|
+
"profile-3.2/positive/006-dot-segment-path",
|
|
123
|
+
"profile-3.2/positive/007-query-byte-preserved",
|
|
124
|
+
"profile-3.2/positive/008-percent-encoded-path",
|
|
125
|
+
"profile-3.2/positive/009-percent-encoded-unreserved-decoded",
|
|
126
|
+
"profile-3.2/positive/010-percent-encoded-slash-preserved",
|
|
127
|
+
"profile-3.2/positive/011-ipv6-authority",
|
|
128
|
+
"profile-3.2/positive/012-ipv6-authority-default-port-stripped"
|
|
120
129
|
]);
|
|
121
130
|
const TRANSPORT_UNGRADABLE = {
|
|
122
131
|
// fetch() and the Node URL parser normalize U-labels to A-labels before
|
|
@@ -264,9 +273,10 @@ function parseJsonRpcEnvelope(body) {
|
|
|
264
273
|
}
|
|
265
274
|
async function gradeOneVector(vectorId, kind, agentUrl, options = {}) {
|
|
266
275
|
const loaded = (0, import_vector_loader.loadRequestSigningVectors)(options);
|
|
276
|
+
const selected = (0, import_vector_loader.selectRequestSigningVectors)(loaded, options.signingProfileVersion);
|
|
267
277
|
const contract = (0, import_test_kit.loadSignedRequestsRunnerContract)(options);
|
|
268
278
|
const transport = options.transport ?? "mcp";
|
|
269
|
-
const vector = kind === "positive" ?
|
|
279
|
+
const vector = kind === "positive" ? selected.positive.find((v) => v.id === vectorId) : selected.negative.find((v) => v.id === vectorId);
|
|
270
280
|
if (!vector) throw new Error(`Unknown ${kind} vector "${vectorId}"`);
|
|
271
281
|
const skip = preflightSkip(vector, kind, contract, options);
|
|
272
282
|
if (skip) return skip;
|
|
@@ -524,24 +534,30 @@ function buildPositiveRequestFromNegative(vector, loaded, options) {
|
|
|
524
534
|
function negativeAcceptedErrorCode(vector, probe) {
|
|
525
535
|
return probe.status === 401 && probe.wwwAuthenticateErrorCode === vector.expected_error_code;
|
|
526
536
|
}
|
|
527
|
-
function
|
|
537
|
+
function vectorCoveredComponents(vector) {
|
|
528
538
|
const headers = vector.request.headers;
|
|
529
539
|
const sigInput = headers["Signature-Input"] ?? headers["signature-input"];
|
|
530
540
|
if (!sigInput) return void 0;
|
|
531
541
|
try {
|
|
532
542
|
const parsed = (0, import_parser.parseSignatureInput)(sigInput);
|
|
533
|
-
return parsed.components
|
|
543
|
+
return parsed.components;
|
|
534
544
|
} catch {
|
|
535
545
|
return void 0;
|
|
536
546
|
}
|
|
537
547
|
}
|
|
538
548
|
function contentDigestStructuralMismatch(vector, agentCoversContentDigest) {
|
|
539
|
-
const
|
|
540
|
-
if (
|
|
541
|
-
|
|
549
|
+
const components = vectorCoveredComponents(vector);
|
|
550
|
+
if (components === void 0) return void 0;
|
|
551
|
+
const signsCd = components.includes("content-digest");
|
|
552
|
+
const coversOtherRequiredComponents = import_signing.MANDATORY_COMPONENTS.every((component) => components.includes(component)) && (!(vector.request.body && vector.request.body.length > 0) || components.includes("content-type"));
|
|
553
|
+
const expectsOnlyDigestUnexpected = "expected_error_code" in vector && vector.expected_error_code === "request_signature_components_unexpected" && coversOtherRequiredComponents && components.every(
|
|
554
|
+
(component) => import_signing.MANDATORY_COMPONENTS.some((required) => required === component) || component === "content-type" || component === "content-digest"
|
|
555
|
+
);
|
|
556
|
+
if (signsCd && agentCoversContentDigest === "forbidden" && !expectsOnlyDigestUnexpected) {
|
|
542
557
|
return `Vector's Signature-Input covers content-digest but agent declares covers_content_digest='forbidden'. The verifier rejects with request_signature_components_unexpected before the vector's intended error path can fire.`;
|
|
543
558
|
}
|
|
544
|
-
|
|
559
|
+
const expectsOnlyDigestRefusal = "expected_error_code" in vector && vector.expected_error_code === "request_signature_components_incomplete" && coversOtherRequiredComponents;
|
|
560
|
+
if (!signsCd && agentCoversContentDigest === "required" && !expectsOnlyDigestRefusal) {
|
|
545
561
|
return `Vector's Signature-Input does not cover content-digest but agent declares covers_content_digest='required'. The verifier rejects with request_signature_components_incomplete before the vector's intended error path can fire.`;
|
|
546
562
|
}
|
|
547
563
|
return void 0;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { randomBytes } from "crypto";
|
|
2
2
|
import { buildNegativeRequest, buildPositiveRequest } from "./builder.mjs";
|
|
3
3
|
import { initializeMcpSession, probeSignedRequest } from "./probe.mjs";
|
|
4
|
-
import { loadRequestSigningVectors } from "./vector-loader.mjs";
|
|
4
|
+
import { loadRequestSigningVectors, selectRequestSigningVectors } from "./vector-loader.mjs";
|
|
5
5
|
import { captureA2aRequest, operationFromVectorUrl } from "./a2a-dispatch.mjs";
|
|
6
6
|
import { loadSignedRequestsRunnerContract } from "./test-kit.mjs";
|
|
7
7
|
import {
|
|
8
8
|
InMemoryReplayStore,
|
|
9
9
|
InMemoryRevocationStore,
|
|
10
|
+
MANDATORY_COMPONENTS,
|
|
10
11
|
RequestSignatureError,
|
|
11
12
|
StaticJwksResolver,
|
|
12
13
|
verifyRequestSignature
|
|
@@ -15,9 +16,10 @@ import { parseSignatureInput } from "../../../signing/parser.mjs";
|
|
|
15
16
|
async function gradeRequestSigning(agentUrl, options = {}) {
|
|
16
17
|
const start = Date.now();
|
|
17
18
|
const loaded = loadRequestSigningVectors(options);
|
|
19
|
+
const selected = selectRequestSigningVectors(loaded, options.signingProfileVersion);
|
|
18
20
|
const contract = loadSignedRequestsRunnerContract(options);
|
|
19
21
|
const transport = options.transport ?? "mcp";
|
|
20
|
-
const hasRunnableNetworkVector =
|
|
22
|
+
const hasRunnableNetworkVector = selected.positive.some((vector) => !preflightSkip(vector, "positive", contract, options)) || selected.negative.some((vector) => !vector.jwks_override && !preflightSkip(vector, "negative", contract, options));
|
|
21
23
|
let mcpSessionId = options.mcpSessionId;
|
|
22
24
|
let mcpProtocolVersion = options.mcpProtocolVersion;
|
|
23
25
|
if (transport === "mcp" && hasRunnableNetworkVector && mcpSessionId === void 0) {
|
|
@@ -42,7 +44,7 @@ async function gradeRequestSigning(agentUrl, options = {}) {
|
|
|
42
44
|
mcpProtocolVersion: transport === "mcp" ? mcpProtocolVersion : void 0
|
|
43
45
|
};
|
|
44
46
|
const positive = [];
|
|
45
|
-
for (const vector of
|
|
47
|
+
for (const vector of selected.positive) {
|
|
46
48
|
const skip = preflightSkip(vector, "positive", contract, options);
|
|
47
49
|
if (skip) {
|
|
48
50
|
positive.push(skip);
|
|
@@ -54,7 +56,7 @@ async function gradeRequestSigning(agentUrl, options = {}) {
|
|
|
54
56
|
positive.push(withA2aProbeUrl(gradePositive(vector, probed), buildOpts));
|
|
55
57
|
}
|
|
56
58
|
const negative = [];
|
|
57
|
-
for (const vector of
|
|
59
|
+
for (const vector of selected.negative) {
|
|
58
60
|
const skip = preflightSkip(vector, "negative", contract, options);
|
|
59
61
|
if (skip) {
|
|
60
62
|
negative.push(skip);
|
|
@@ -95,7 +97,15 @@ const MCP_FLATTENED_VECTORS = /* @__PURE__ */ new Set([
|
|
|
95
97
|
"009-percent-encoded-unreserved-decoded",
|
|
96
98
|
"010-percent-encoded-slash-preserved",
|
|
97
99
|
"011-ipv6-authority",
|
|
98
|
-
"012-ipv6-authority-default-port-stripped"
|
|
100
|
+
"012-ipv6-authority-default-port-stripped",
|
|
101
|
+
"profile-3.2/positive/005-default-port-stripped",
|
|
102
|
+
"profile-3.2/positive/006-dot-segment-path",
|
|
103
|
+
"profile-3.2/positive/007-query-byte-preserved",
|
|
104
|
+
"profile-3.2/positive/008-percent-encoded-path",
|
|
105
|
+
"profile-3.2/positive/009-percent-encoded-unreserved-decoded",
|
|
106
|
+
"profile-3.2/positive/010-percent-encoded-slash-preserved",
|
|
107
|
+
"profile-3.2/positive/011-ipv6-authority",
|
|
108
|
+
"profile-3.2/positive/012-ipv6-authority-default-port-stripped"
|
|
99
109
|
]);
|
|
100
110
|
const TRANSPORT_UNGRADABLE = {
|
|
101
111
|
// fetch() and the Node URL parser normalize U-labels to A-labels before
|
|
@@ -243,9 +253,10 @@ function parseJsonRpcEnvelope(body) {
|
|
|
243
253
|
}
|
|
244
254
|
async function gradeOneVector(vectorId, kind, agentUrl, options = {}) {
|
|
245
255
|
const loaded = loadRequestSigningVectors(options);
|
|
256
|
+
const selected = selectRequestSigningVectors(loaded, options.signingProfileVersion);
|
|
246
257
|
const contract = loadSignedRequestsRunnerContract(options);
|
|
247
258
|
const transport = options.transport ?? "mcp";
|
|
248
|
-
const vector = kind === "positive" ?
|
|
259
|
+
const vector = kind === "positive" ? selected.positive.find((v) => v.id === vectorId) : selected.negative.find((v) => v.id === vectorId);
|
|
249
260
|
if (!vector) throw new Error(`Unknown ${kind} vector "${vectorId}"`);
|
|
250
261
|
const skip = preflightSkip(vector, kind, contract, options);
|
|
251
262
|
if (skip) return skip;
|
|
@@ -503,24 +514,30 @@ function buildPositiveRequestFromNegative(vector, loaded, options) {
|
|
|
503
514
|
function negativeAcceptedErrorCode(vector, probe) {
|
|
504
515
|
return probe.status === 401 && probe.wwwAuthenticateErrorCode === vector.expected_error_code;
|
|
505
516
|
}
|
|
506
|
-
function
|
|
517
|
+
function vectorCoveredComponents(vector) {
|
|
507
518
|
const headers = vector.request.headers;
|
|
508
519
|
const sigInput = headers["Signature-Input"] ?? headers["signature-input"];
|
|
509
520
|
if (!sigInput) return void 0;
|
|
510
521
|
try {
|
|
511
522
|
const parsed = parseSignatureInput(sigInput);
|
|
512
|
-
return parsed.components
|
|
523
|
+
return parsed.components;
|
|
513
524
|
} catch {
|
|
514
525
|
return void 0;
|
|
515
526
|
}
|
|
516
527
|
}
|
|
517
528
|
function contentDigestStructuralMismatch(vector, agentCoversContentDigest) {
|
|
518
|
-
const
|
|
519
|
-
if (
|
|
520
|
-
|
|
529
|
+
const components = vectorCoveredComponents(vector);
|
|
530
|
+
if (components === void 0) return void 0;
|
|
531
|
+
const signsCd = components.includes("content-digest");
|
|
532
|
+
const coversOtherRequiredComponents = MANDATORY_COMPONENTS.every((component) => components.includes(component)) && (!(vector.request.body && vector.request.body.length > 0) || components.includes("content-type"));
|
|
533
|
+
const expectsOnlyDigestUnexpected = "expected_error_code" in vector && vector.expected_error_code === "request_signature_components_unexpected" && coversOtherRequiredComponents && components.every(
|
|
534
|
+
(component) => MANDATORY_COMPONENTS.some((required) => required === component) || component === "content-type" || component === "content-digest"
|
|
535
|
+
);
|
|
536
|
+
if (signsCd && agentCoversContentDigest === "forbidden" && !expectsOnlyDigestUnexpected) {
|
|
521
537
|
return `Vector's Signature-Input covers content-digest but agent declares covers_content_digest='forbidden'. The verifier rejects with request_signature_components_unexpected before the vector's intended error path can fire.`;
|
|
522
538
|
}
|
|
523
|
-
|
|
539
|
+
const expectsOnlyDigestRefusal = "expected_error_code" in vector && vector.expected_error_code === "request_signature_components_incomplete" && coversOtherRequiredComponents;
|
|
540
|
+
if (!signsCd && agentCoversContentDigest === "required" && !expectsOnlyDigestRefusal) {
|
|
524
541
|
return `Vector's Signature-Input does not cover content-digest but agent declares covers_content_digest='required'. The verifier rejects with request_signature_components_incomplete before the vector's intended error path can fire.`;
|
|
525
542
|
}
|
|
526
543
|
return void 0;
|
|
@@ -105,7 +105,9 @@ async function probeRequestSigningVector(stepId, agentUrl, options) {
|
|
|
105
105
|
`request_signing_probe: could not load request-signing vectors: ${err instanceof Error ? err.message : String(err)}`
|
|
106
106
|
);
|
|
107
107
|
}
|
|
108
|
-
const
|
|
108
|
+
const signingProfileVersion = (0, import_vector_loader.signingProfileForAdcpVersion)(options.adcpVersion);
|
|
109
|
+
const selected = (0, import_vector_loader.selectRequestSigningVectors)(loaded, signingProfileVersion);
|
|
110
|
+
const vector = parsed.kind === "negative" ? selected.negative.find((v) => v.id === parsed.vector_id) : selected.positive.find((v) => v.id === parsed.vector_id);
|
|
109
111
|
if (!vector) {
|
|
110
112
|
return probeError(
|
|
111
113
|
agentUrl,
|
|
@@ -132,6 +134,7 @@ async function probeRequestSigningVector(stepId, agentUrl, options) {
|
|
|
132
134
|
const result = await (0, import_grader.gradeOneVector)(parsed.vector_id, parsed.kind, agentUrl, {
|
|
133
135
|
...options.adcpVersion && { version: options.adcpVersion },
|
|
134
136
|
...options.complianceDir && { complianceDir: options.complianceDir },
|
|
137
|
+
signingProfileVersion,
|
|
135
138
|
allowPrivateIp: options.allow_http === true,
|
|
136
139
|
rateAbuseCap: rsOpts.rateAbuseCap,
|
|
137
140
|
allowLiveSideEffects: rsOpts.allowLiveSideEffects,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { basename, dirname } from "path";
|
|
2
2
|
import { advertisedContentDigestPolicyExclusion, gradeOneVector, semanticVectorExclusion } from "./grader.mjs";
|
|
3
3
|
import { parseRequestSigningStepId } from "./synthesize.mjs";
|
|
4
|
-
import { loadRequestSigningVectors } from "./vector-loader.mjs";
|
|
4
|
+
import { loadRequestSigningVectors, selectRequestSigningVectors, signingProfileForAdcpVersion } from "./vector-loader.mjs";
|
|
5
5
|
import { ADCP_VERSION } from "../../../version.mjs";
|
|
6
6
|
import { redactCredentialPatterns } from "../../../utils/redact-credential-patterns.mjs";
|
|
7
7
|
const SIGNING_VECTORS_UNAVAILABLE_DETAIL = "Coverage unavailable: the official A2A client could not prepare a dispatch, so the runner refused to invent an endpoint or wire envelope and no request-signing vector reached the agent's verifier. Remedy: verify the A2A SDK peer is installed and publish a reachable modern or legacy Agent Card with a supported JSON-RPC interface, or grade the verifier through an MCP or REST binding.";
|
|
@@ -68,7 +68,9 @@ async function probeRequestSigningVector(stepId, agentUrl, options) {
|
|
|
68
68
|
`request_signing_probe: could not load request-signing vectors: ${err instanceof Error ? err.message : String(err)}`
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
|
-
const
|
|
71
|
+
const signingProfileVersion = signingProfileForAdcpVersion(options.adcpVersion);
|
|
72
|
+
const selected = selectRequestSigningVectors(loaded, signingProfileVersion);
|
|
73
|
+
const vector = parsed.kind === "negative" ? selected.negative.find((v) => v.id === parsed.vector_id) : selected.positive.find((v) => v.id === parsed.vector_id);
|
|
72
74
|
if (!vector) {
|
|
73
75
|
return probeError(
|
|
74
76
|
agentUrl,
|
|
@@ -95,6 +97,7 @@ async function probeRequestSigningVector(stepId, agentUrl, options) {
|
|
|
95
97
|
const result = await gradeOneVector(parsed.vector_id, parsed.kind, agentUrl, {
|
|
96
98
|
...options.adcpVersion && { version: options.adcpVersion },
|
|
97
99
|
...options.complianceDir && { complianceDir: options.complianceDir },
|
|
100
|
+
signingProfileVersion,
|
|
98
101
|
allowPrivateIp: options.allow_http === true,
|
|
99
102
|
rateAbuseCap: rsOpts.rateAbuseCap,
|
|
100
103
|
allowLiveSideEffects: rsOpts.allowLiveSideEffects,
|
|
@@ -4,6 +4,8 @@ export declare const REQUEST_SIGNING_PROBE_TASK = "request_signing_probe";
|
|
|
4
4
|
export declare const POSITIVE_STEP_PREFIX = "positive-";
|
|
5
5
|
export declare const NEGATIVE_STEP_PREFIX = "negative-";
|
|
6
6
|
export interface SynthesizeOptions extends LoadVectorsOptions {
|
|
7
|
+
/** Override profile selection inferred from the storyboard AdCP version. */
|
|
8
|
+
signingProfileVersion?: '3.2';
|
|
7
9
|
/** Vector IDs to omit (e.g., capability-profile mismatches). */
|
|
8
10
|
skipVectors?: string[];
|
|
9
11
|
}
|
|
@@ -4,6 +4,8 @@ export declare const REQUEST_SIGNING_PROBE_TASK = "request_signing_probe";
|
|
|
4
4
|
export declare const POSITIVE_STEP_PREFIX = "positive-";
|
|
5
5
|
export declare const NEGATIVE_STEP_PREFIX = "negative-";
|
|
6
6
|
export interface SynthesizeOptions extends LoadVectorsOptions {
|
|
7
|
+
/** Override profile selection inferred from the storyboard AdCP version. */
|
|
8
|
+
signingProfileVersion?: '3.2';
|
|
7
9
|
/** Vector IDs to omit (e.g., capability-profile mismatches). */
|
|
8
10
|
skipVectors?: string[];
|
|
9
11
|
}
|
|
@@ -32,13 +32,17 @@ const NEGATIVE_STEP_PREFIX = "negative-";
|
|
|
32
32
|
function synthesizeRequestSigningSteps(storyboard, options = {}) {
|
|
33
33
|
if (storyboard.id !== "signed_requests") return storyboard;
|
|
34
34
|
const loaded = (0, import_vector_loader.loadRequestSigningVectors)(options);
|
|
35
|
+
const selected = (0, import_vector_loader.selectRequestSigningVectors)(
|
|
36
|
+
loaded,
|
|
37
|
+
options.signingProfileVersion ?? (0, import_vector_loader.signingProfileForAdcpVersion)(options.version ?? storyboard.adcp_version)
|
|
38
|
+
);
|
|
35
39
|
const skip = new Set(options.skipVectors ?? []);
|
|
36
40
|
const phases = storyboard.phases.map((phase) => {
|
|
37
41
|
if (phase.id === "positive_vectors") {
|
|
38
|
-
return { ...phase, steps:
|
|
42
|
+
return { ...phase, steps: selected.positive.filter((v) => !skip.has(v.id)).map(synthesizePositiveStep) };
|
|
39
43
|
}
|
|
40
44
|
if (phase.id === "negative_vectors") {
|
|
41
|
-
return { ...phase, steps:
|
|
45
|
+
return { ...phase, steps: selected.negative.filter((v) => !skip.has(v.id)).map(synthesizeNegativeStep) };
|
|
42
46
|
}
|
|
43
47
|
return phase;
|
|
44
48
|
});
|
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
loadRequestSigningVectors,
|
|
3
|
+
selectRequestSigningVectors,
|
|
4
|
+
signingProfileForAdcpVersion
|
|
5
|
+
} from "./vector-loader.mjs";
|
|
2
6
|
const REQUEST_SIGNING_PROBE_TASK = "request_signing_probe";
|
|
3
7
|
const POSITIVE_STEP_PREFIX = "positive-";
|
|
4
8
|
const NEGATIVE_STEP_PREFIX = "negative-";
|
|
5
9
|
function synthesizeRequestSigningSteps(storyboard, options = {}) {
|
|
6
10
|
if (storyboard.id !== "signed_requests") return storyboard;
|
|
7
11
|
const loaded = loadRequestSigningVectors(options);
|
|
12
|
+
const selected = selectRequestSigningVectors(
|
|
13
|
+
loaded,
|
|
14
|
+
options.signingProfileVersion ?? signingProfileForAdcpVersion(options.version ?? storyboard.adcp_version)
|
|
15
|
+
);
|
|
8
16
|
const skip = new Set(options.skipVectors ?? []);
|
|
9
17
|
const phases = storyboard.phases.map((phase) => {
|
|
10
18
|
if (phase.id === "positive_vectors") {
|
|
11
|
-
return { ...phase, steps:
|
|
19
|
+
return { ...phase, steps: selected.positive.filter((v) => !skip.has(v.id)).map(synthesizePositiveStep) };
|
|
12
20
|
}
|
|
13
21
|
if (phase.id === "negative_vectors") {
|
|
14
|
-
return { ...phase, steps:
|
|
22
|
+
return { ...phase, steps: selected.negative.filter((v) => !skip.has(v.id)).map(synthesizeNegativeStep) };
|
|
15
23
|
}
|
|
16
24
|
return phase;
|
|
17
25
|
});
|
|
@@ -13,6 +13,9 @@ export interface LoadedVectors {
|
|
|
13
13
|
keys: TestKeyset;
|
|
14
14
|
sourceDir: string;
|
|
15
15
|
}
|
|
16
|
+
/** A selected signing profile uses only its authored fixtures and wire encoding. */
|
|
17
|
+
export declare function selectRequestSigningVectors(loaded: LoadedVectors, signingProfileVersion?: '3.2'): Pick<LoadedVectors, 'positive' | 'negative'>;
|
|
18
|
+
export declare function signingProfileForAdcpVersion(version?: string): '3.2' | undefined;
|
|
16
19
|
export declare function loadRequestSigningVectors(options?: LoadVectorsOptions): LoadedVectors;
|
|
17
20
|
/** Load only the shared signing keyset, without requiring the grader vectors. */
|
|
18
21
|
export declare function loadRequestSigningKeys(options?: LoadVectorsOptions): TestKeyset;
|
|
@@ -13,6 +13,9 @@ export interface LoadedVectors {
|
|
|
13
13
|
keys: TestKeyset;
|
|
14
14
|
sourceDir: string;
|
|
15
15
|
}
|
|
16
|
+
/** A selected signing profile uses only its authored fixtures and wire encoding. */
|
|
17
|
+
export declare function selectRequestSigningVectors(loaded: LoadedVectors, signingProfileVersion?: '3.2'): Pick<LoadedVectors, 'positive' | 'negative'>;
|
|
18
|
+
export declare function signingProfileForAdcpVersion(version?: string): '3.2' | undefined;
|
|
16
19
|
export declare function loadRequestSigningVectors(options?: LoadVectorsOptions): LoadedVectors;
|
|
17
20
|
/** Load only the shared signing keyset, without requiring the grader vectors. */
|
|
18
21
|
export declare function loadRequestSigningKeys(options?: LoadVectorsOptions): TestKeyset;
|
|
@@ -21,13 +21,26 @@ __export(vector_loader_exports, {
|
|
|
21
21
|
__resetVectorCache: () => __resetVectorCache,
|
|
22
22
|
findKey: () => findKey,
|
|
23
23
|
loadRequestSigningKeys: () => loadRequestSigningKeys,
|
|
24
|
-
loadRequestSigningVectors: () => loadRequestSigningVectors
|
|
24
|
+
loadRequestSigningVectors: () => loadRequestSigningVectors,
|
|
25
|
+
selectRequestSigningVectors: () => selectRequestSigningVectors,
|
|
26
|
+
signingProfileForAdcpVersion: () => signingProfileForAdcpVersion
|
|
25
27
|
});
|
|
26
28
|
module.exports = __toCommonJS(vector_loader_exports);
|
|
27
29
|
var import_fs = require("fs");
|
|
28
30
|
var import_path = require("path");
|
|
29
31
|
var import_compliance = require('../compliance.js');
|
|
30
32
|
var import_types = require('./types.js');
|
|
33
|
+
function selectRequestSigningVectors(loaded, signingProfileVersion) {
|
|
34
|
+
const profile = signingProfileVersion ? loaded.profiles[signingProfileVersion] : void 0;
|
|
35
|
+
if (!signingProfileVersion) return { positive: loaded.positive, negative: loaded.negative };
|
|
36
|
+
if (!profile)
|
|
37
|
+
throw new Error(`Request-signing profile ${signingProfileVersion} is unavailable in ${loaded.sourceDir}`);
|
|
38
|
+
return profile;
|
|
39
|
+
}
|
|
40
|
+
function signingProfileForAdcpVersion(version) {
|
|
41
|
+
const match = /^(\d+)\.(\d+)/.exec(version ?? "");
|
|
42
|
+
return match && Number(match[1]) === 3 && Number(match[2]) === 2 ? "3.2" : void 0;
|
|
43
|
+
}
|
|
31
44
|
const ERROR_CODES = /* @__PURE__ */ new Set([
|
|
32
45
|
"request_signature_required",
|
|
33
46
|
"request_signature_header_malformed",
|
|
@@ -274,5 +287,7 @@ function strArray(v, where) {
|
|
|
274
287
|
__resetVectorCache,
|
|
275
288
|
findKey,
|
|
276
289
|
loadRequestSigningKeys,
|
|
277
|
-
loadRequestSigningVectors
|
|
290
|
+
loadRequestSigningVectors,
|
|
291
|
+
selectRequestSigningVectors,
|
|
292
|
+
signingProfileForAdcpVersion
|
|
278
293
|
});
|