@adcp/sdk 14.0.0-rc.38 → 14.0.0-rc.39
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/bin/adcp-storyboard-summary.js +286 -0
- package/bin/adcp.js +221 -10
- package/dist/lib/conformance/schemaLoader.d.mts +1 -1
- package/dist/lib/conformance/schemaLoader.d.ts +1 -1
- package/dist/lib/core/AgentClient.d.mts +6 -1
- package/dist/lib/core/AgentClient.d.ts +6 -1
- package/dist/lib/core/AgentClient.js +9 -0
- package/dist/lib/core/AgentClient.mjs +9 -0
- package/dist/lib/core/ConversationTypes.d.mts +29 -0
- package/dist/lib/core/ConversationTypes.d.ts +29 -0
- package/dist/lib/core/SingleAgentClient.d.mts +3 -1
- package/dist/lib/core/SingleAgentClient.d.ts +3 -1
- package/dist/lib/core/SingleAgentClient.js +9 -1
- package/dist/lib/core/SingleAgentClient.mjs +9 -1
- package/dist/lib/core/TaskExecutor.d.mts +13 -1
- package/dist/lib/core/TaskExecutor.d.ts +13 -1
- package/dist/lib/core/TaskExecutor.js +216 -18
- package/dist/lib/core/TaskExecutor.mjs +216 -19
- package/dist/lib/index.d.mts +5 -2
- package/dist/lib/index.d.ts +5 -2
- package/dist/lib/index.js +10 -1
- package/dist/lib/index.mjs +10 -1
- package/dist/lib/media-buy/action-assessment.d.mts +77 -0
- package/dist/lib/media-buy/action-assessment.d.ts +77 -0
- package/dist/lib/media-buy/action-assessment.js +300 -0
- package/dist/lib/media-buy/action-assessment.mjs +284 -0
- package/dist/lib/media-buy/action-constraints.d.mts +9 -0
- package/dist/lib/media-buy/action-constraints.d.ts +9 -0
- package/dist/lib/media-buy/action-constraints.js +170 -0
- package/dist/lib/media-buy/action-constraints.mjs +146 -0
- package/dist/lib/media-buy/action-contracts.d.mts +40 -0
- package/dist/lib/media-buy/action-contracts.d.ts +40 -0
- package/dist/lib/media-buy/action-contracts.js +304 -0
- package/dist/lib/media-buy/action-contracts.mjs +267 -0
- package/dist/lib/media-buy/action-metadata.generated.d.mts +37 -0
- package/dist/lib/media-buy/action-metadata.generated.d.ts +37 -0
- package/dist/lib/media-buy/action-metadata.generated.js +128 -0
- package/dist/lib/media-buy/action-metadata.generated.mjs +101 -0
- package/dist/lib/media-buy/action-types.d.mts +106 -0
- package/dist/lib/media-buy/action-types.d.ts +106 -0
- package/dist/lib/{types/v3-1-beta/tools.generated.js → media-buy/action-types.js} +2 -2
- package/dist/lib/media-buy/actions.d.mts +6 -0
- package/dist/lib/media-buy/actions.d.ts +6 -0
- package/dist/lib/media-buy/actions.js +38 -0
- package/dist/lib/media-buy/actions.mjs +9 -0
- package/dist/lib/media-buy/available-actions.d.mts +2 -1
- package/dist/lib/media-buy/available-actions.d.ts +2 -1
- package/dist/lib/media-buy/available-actions.js +4 -3
- package/dist/lib/media-buy/available-actions.mjs +4 -3
- package/dist/lib/media-buy/compatibility.js +3 -0
- package/dist/lib/media-buy/compatibility.mjs +3 -0
- package/dist/lib/media-buy/index.d.mts +4 -0
- package/dist/lib/media-buy/index.d.ts +4 -0
- package/dist/lib/media-buy/index.js +3 -1
- package/dist/lib/media-buy/index.mjs +1 -0
- package/dist/lib/media-buy/legacy-action-ids.d.mts +1 -0
- package/dist/lib/media-buy/legacy-action-ids.d.ts +1 -0
- package/dist/lib/media-buy/legacy-action-ids.js +50 -0
- package/dist/lib/media-buy/legacy-action-ids.mjs +26 -0
- package/dist/lib/media-buy/mutations.d.mts +70 -0
- package/dist/lib/media-buy/mutations.d.ts +70 -0
- package/dist/lib/media-buy/mutations.js +525 -0
- package/dist/lib/media-buy/mutations.mjs +498 -0
- package/dist/lib/media-buy/preflight.d.mts +20 -69
- package/dist/lib/media-buy/preflight.d.ts +20 -69
- package/dist/lib/media-buy/preflight.js +100 -336
- package/dist/lib/media-buy/preflight.mjs +111 -333
- package/dist/lib/media-buy/targeting-input.d.mts +7 -4
- package/dist/lib/media-buy/targeting-input.d.ts +7 -4
- package/dist/lib/media-buy/types.d.mts +55 -7
- package/dist/lib/media-buy/types.d.ts +55 -7
- package/dist/lib/protocols/rawResponseCapture.d.mts +12 -0
- package/dist/lib/protocols/rawResponseCapture.d.ts +12 -0
- package/dist/lib/protocols/rawResponseCapture.js +33 -3
- package/dist/lib/protocols/rawResponseCapture.mjs +32 -3
- package/dist/lib/registry/types.generated.d.mts +377 -9
- package/dist/lib/registry/types.generated.d.ts +377 -9
- package/dist/lib/reporting/evidence.d.mts +1 -0
- package/dist/lib/reporting/evidence.d.ts +1 -0
- package/dist/lib/reporting/evidence.js +32 -3
- package/dist/lib/reporting/evidence.mjs +31 -3
- package/dist/lib/reporting/ledger/handler.d.mts +51 -1
- package/dist/lib/reporting/ledger/handler.d.ts +51 -1
- package/dist/lib/reporting/ledger/handler.js +306 -38
- package/dist/lib/reporting/ledger/handler.mjs +304 -37
- package/dist/lib/reporting/ledger/health.d.mts +12 -0
- package/dist/lib/reporting/ledger/health.d.ts +12 -0
- package/dist/lib/reporting/ledger/health.js +15 -2
- package/dist/lib/reporting/ledger/health.mjs +13 -1
- package/dist/lib/reporting/ledger/index.d.mts +3 -0
- package/dist/lib/reporting/ledger/index.d.ts +3 -0
- package/dist/lib/reporting/ledger/index.js +7 -1
- package/dist/lib/reporting/ledger/index.mjs +3 -0
- package/dist/lib/reporting/ledger/lifecycle.d.mts +31 -4
- package/dist/lib/reporting/ledger/lifecycle.d.ts +31 -4
- package/dist/lib/reporting/ledger/lifecycle.js +244 -37
- package/dist/lib/reporting/ledger/lifecycle.mjs +244 -37
- package/dist/lib/reporting/ledger/managed-postgres.d.mts +231 -0
- package/dist/lib/reporting/ledger/managed-postgres.d.ts +231 -0
- package/dist/lib/reporting/ledger/managed-postgres.js +1797 -0
- package/dist/lib/reporting/ledger/managed-postgres.mjs +1776 -0
- package/dist/lib/reporting/ledger/managed.d.mts +355 -0
- package/dist/lib/reporting/ledger/managed.d.ts +355 -0
- package/dist/lib/reporting/ledger/managed.js +661 -0
- package/dist/lib/reporting/ledger/managed.mjs +633 -0
- package/dist/lib/reporting/ledger/notification-activity.d.mts +222 -0
- package/dist/lib/reporting/ledger/notification-activity.d.ts +222 -0
- package/dist/lib/reporting/ledger/notification-activity.js +1139 -0
- package/dist/lib/reporting/ledger/notification-activity.mjs +1110 -0
- package/dist/lib/reporting/ledger/postgres.d.mts +161 -1
- package/dist/lib/reporting/ledger/postgres.d.ts +161 -1
- package/dist/lib/reporting/ledger/postgres.js +1153 -21
- package/dist/lib/reporting/ledger/postgres.mjs +1152 -21
- package/dist/lib/reporting/ledger/producer.d.mts +8 -0
- package/dist/lib/reporting/ledger/producer.d.ts +8 -0
- package/dist/lib/reporting/ledger/producer.js +146 -52
- package/dist/lib/reporting/ledger/producer.mjs +146 -51
- package/dist/lib/reporting/ledger/types.d.mts +358 -1
- package/dist/lib/reporting/ledger/types.d.ts +358 -1
- package/dist/lib/reporting/ledger/types.js +3 -0
- package/dist/lib/reporting/ledger/types.mjs +2 -0
- package/dist/lib/reporting/service/conformance.d.mts +35 -0
- package/dist/lib/reporting/service/conformance.d.ts +35 -0
- package/dist/lib/reporting/service/conformance.js +89 -0
- package/dist/lib/reporting/service/conformance.mjs +68 -0
- package/dist/lib/reporting/service/index.d.mts +182 -0
- package/dist/lib/reporting/service/index.d.ts +182 -0
- package/dist/lib/reporting/service/index.js +793 -0
- package/dist/lib/reporting/service/index.mjs +787 -0
- package/dist/lib/reporting/source/index.d.mts +2 -1
- package/dist/lib/reporting/source/index.d.ts +2 -1
- package/dist/lib/reporting/source/index.js +16 -3
- package/dist/lib/reporting/source/index.mjs +12 -1
- package/dist/lib/reporting/source/inline.d.mts +88 -1
- package/dist/lib/reporting/source/inline.d.ts +88 -1
- package/dist/lib/reporting/source/inline.js +1161 -163
- package/dist/lib/reporting/source/inline.mjs +1166 -163
- package/dist/lib/reporting/source/manifest.js +12 -7
- package/dist/lib/reporting/source/manifest.mjs +12 -7
- package/dist/lib/reporting/source/source.d.mts +26 -0
- package/dist/lib/reporting/source/source.d.ts +26 -0
- package/dist/lib/reporting/source/source.js +71 -2
- package/dist/lib/reporting/source/source.mjs +65 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +18 -0
- package/dist/lib/server/create-adcp-server.d.ts +18 -0
- package/dist/lib/server/create-adcp-server.js +52 -2
- package/dist/lib/server/create-adcp-server.mjs +52 -2
- package/dist/lib/server/decisioning/account.d.mts +1 -1
- package/dist/lib/server/decisioning/account.d.ts +1 -1
- package/dist/lib/server/decisioning/index.d.mts +1 -0
- package/dist/lib/server/decisioning/index.d.ts +1 -0
- package/dist/lib/server/decisioning/platform.d.mts +3 -0
- package/dist/lib/server/decisioning/platform.d.ts +3 -0
- package/dist/lib/server/decisioning/runtime/from-platform.js +88 -10
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +88 -10
- package/dist/lib/server/decisioning/specialisms/reporting.d.mts +38 -0
- package/dist/lib/server/decisioning/specialisms/reporting.d.ts +38 -0
- package/dist/lib/{types/v3-1-beta/index.js → server/decisioning/specialisms/reporting.js} +2 -8
- package/dist/lib/server/decisioning/specialisms/reporting.mjs +0 -0
- package/dist/lib/server/index.d.mts +4 -2
- package/dist/lib/server/index.d.ts +4 -2
- package/dist/lib/server/index.js +5 -0
- package/dist/lib/server/index.mjs +4 -0
- package/dist/lib/server/media-buy-action-resolver.d.mts +63 -0
- package/dist/lib/server/media-buy-action-resolver.d.ts +63 -0
- package/dist/lib/server/media-buy-action-resolver.js +297 -0
- package/dist/lib/server/media-buy-action-resolver.mjs +285 -0
- package/dist/lib/server/media-buy-actions.d.mts +7 -8
- package/dist/lib/server/media-buy-actions.d.ts +7 -8
- package/dist/lib/server/media-buy-actions.js +57 -14
- package/dist/lib/server/media-buy-actions.mjs +63 -14
- package/dist/lib/server/notification-subscriptions/index.d.mts +2 -2
- package/dist/lib/server/notification-subscriptions/index.d.ts +2 -2
- package/dist/lib/server/notification-subscriptions/index.js +2 -0
- package/dist/lib/server/notification-subscriptions/index.mjs +2 -0
- package/dist/lib/server/notification-subscriptions/postgres-runtime.d.mts +3 -1
- package/dist/lib/server/notification-subscriptions/postgres-runtime.d.ts +3 -1
- package/dist/lib/server/notification-subscriptions/postgres-runtime.js +1 -0
- package/dist/lib/server/notification-subscriptions/postgres-runtime.mjs +1 -0
- package/dist/lib/server/notification-subscriptions/runtime.d.mts +12 -1
- package/dist/lib/server/notification-subscriptions/runtime.d.ts +12 -1
- package/dist/lib/server/notification-subscriptions/runtime.js +102 -16
- package/dist/lib/server/notification-subscriptions/runtime.mjs +101 -16
- package/dist/lib/server/notification-subscriptions/types.d.mts +104 -1
- package/dist/lib/server/notification-subscriptions/types.d.ts +104 -1
- package/dist/lib/server/webhook-emitter.d.mts +40 -5
- package/dist/lib/server/webhook-emitter.d.ts +40 -5
- package/dist/lib/server/webhook-emitter.js +23 -12
- package/dist/lib/server/webhook-emitter.mjs +23 -12
- package/dist/lib/storage/interfaces.d.mts +14 -2
- package/dist/lib/storage/interfaces.d.ts +14 -2
- package/dist/lib/testing/compliance/comply.d.mts +9 -3
- package/dist/lib/testing/compliance/comply.d.ts +9 -3
- package/dist/lib/testing/compliance/comply.js +158 -3
- package/dist/lib/testing/compliance/comply.mjs +159 -4
- package/dist/lib/testing/compliance/storyboard-tracks.js +7 -5
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +7 -5
- package/dist/lib/testing/compliance/summary.js +10 -1
- package/dist/lib/testing/compliance/summary.mjs +10 -1
- package/dist/lib/testing/index.d.mts +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.js +2 -0
- package/dist/lib/testing/index.mjs +3 -1
- package/dist/lib/testing/storyboard/agent-routing.d.mts +12 -43
- package/dist/lib/testing/storyboard/agent-routing.d.ts +12 -43
- package/dist/lib/testing/storyboard/agent-routing.js +75 -13
- package/dist/lib/testing/storyboard/agent-routing.mjs +70 -12
- package/dist/lib/testing/storyboard/index.d.mts +1 -0
- package/dist/lib/testing/storyboard/index.d.ts +1 -0
- package/dist/lib/testing/storyboard/index.js +3 -0
- package/dist/lib/testing/storyboard/index.mjs +2 -0
- package/dist/lib/testing/storyboard/junit.d.mts +1 -1
- package/dist/lib/testing/storyboard/junit.d.ts +1 -1
- package/dist/lib/testing/storyboard/junit.js +21 -2
- package/dist/lib/testing/storyboard/junit.mjs +21 -2
- package/dist/lib/testing/storyboard/probes.d.mts +130 -0
- package/dist/lib/testing/storyboard/probes.d.ts +130 -0
- package/dist/lib/testing/storyboard/probes.js +682 -10
- package/dist/lib/testing/storyboard/probes.mjs +683 -3
- package/dist/lib/testing/storyboard/request-signing/builder.d.mts +16 -5
- package/dist/lib/testing/storyboard/request-signing/builder.d.ts +16 -5
- package/dist/lib/testing/storyboard/request-signing/grader.d.mts +44 -1
- package/dist/lib/testing/storyboard/request-signing/grader.d.ts +44 -1
- package/dist/lib/testing/storyboard/request-signing/grader.js +46 -22
- package/dist/lib/testing/storyboard/request-signing/grader.mjs +43 -21
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.mts +86 -11
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +86 -11
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +119 -25
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +117 -26
- package/dist/lib/testing/storyboard/request-signing/synthesize.js +22 -2
- package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +22 -2
- package/dist/lib/testing/storyboard/runner.d.mts +103 -0
- package/dist/lib/testing/storyboard/runner.d.ts +103 -0
- package/dist/lib/testing/storyboard/runner.js +1090 -268
- package/dist/lib/testing/storyboard/runner.mjs +1096 -261
- package/dist/lib/testing/storyboard/seeding.d.mts +4 -1
- package/dist/lib/testing/storyboard/seeding.d.ts +4 -1
- package/dist/lib/testing/storyboard/seeding.js +55 -24
- package/dist/lib/testing/storyboard/seeding.mjs +55 -24
- package/dist/lib/testing/storyboard/test-kit.d.mts +37 -3
- package/dist/lib/testing/storyboard/test-kit.d.ts +37 -3
- package/dist/lib/testing/storyboard/test-kit.js +8 -2
- package/dist/lib/testing/storyboard/test-kit.mjs +7 -2
- package/dist/lib/testing/storyboard/types.d.mts +132 -10
- package/dist/lib/testing/storyboard/types.d.ts +132 -10
- package/dist/lib/testing/storyboard/types.js +17 -0
- package/dist/lib/testing/storyboard/types.mjs +16 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +16 -0
- package/dist/lib/testing/storyboard/validations.mjs +16 -0
- package/dist/lib/testing/test-controller.d.mts +1 -1
- package/dist/lib/testing/test-controller.d.ts +1 -1
- package/dist/lib/types/buy-products.d.ts +71 -6
- package/dist/lib/types/control-media-buy.d.ts +25 -11
- package/dist/lib/types/core.generated.d.mts +69 -10
- package/dist/lib/types/core.generated.d.ts +69 -10
- package/dist/lib/types/create-media-buy.d.ts +71 -6
- package/dist/lib/types/forward-compat-error-codes.d.mts +7 -6
- package/dist/lib/types/forward-compat-error-codes.d.ts +7 -6
- package/dist/lib/types/index.d.mts +2 -2
- package/dist/lib/types/index.d.ts +2 -2
- package/dist/lib/types/schemas.generated.d.ts +8040 -8116
- package/dist/lib/types/schemas.generated.js +1074 -309
- package/dist/lib/types/schemas.generated.mjs +1068 -309
- package/dist/lib/types/tools.generated.d.mts +65 -6
- package/dist/lib/types/tools.generated.d.ts +65 -6
- package/dist/lib/types/update-media-buy.d.ts +71 -6
- package/dist/lib/utils/redact-secrets.d.mts +1 -1
- package/dist/lib/utils/redact-secrets.d.ts +1 -1
- package/dist/lib/utils/redact-secrets.js +1 -1
- package/dist/lib/utils/redact-secrets.mjs +1 -1
- package/dist/lib/v2/projection/cache-versions.d.mts +0 -1
- package/dist/lib/v2/projection/cache-versions.d.ts +0 -1
- package/dist/lib/v2/projection/cache-versions.js +1 -15
- package/dist/lib/v2/projection/cache-versions.mjs +1 -14
- package/dist/lib/v2/projection/canonical-properties.js +2 -2
- package/dist/lib/v2/projection/canonical-properties.mjs +3 -3
- package/dist/lib/v2/projection/registry.d.mts +1 -1
- package/dist/lib/v2/projection/registry.d.ts +1 -1
- package/dist/lib/v2/projection/registry.js +2 -2
- package/dist/lib/v2/projection/registry.mjs +3 -3
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -8
- package/dist/lib/version.mjs +3 -8
- package/dist/lib/wholesale-feed-sync/index.d.mts +1 -0
- package/dist/lib/wholesale-feed-sync/index.d.ts +1 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.d.mts +42 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.d.ts +42 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.js +16 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.mjs +0 -0
- package/dist/lib/wholesale-feed-sync/sync.d.mts +6 -6
- package/dist/lib/wholesale-feed-sync/sync.d.ts +6 -6
- package/dist/lib/wholesale-feed-sync/sync.js +3 -1
- package/dist/lib/wholesale-feed-sync/sync.mjs +3 -1
- package/dist/lib/wholesale-feed-sync/types.d.mts +15 -14
- package/dist/lib/wholesale-feed-sync/types.d.ts +15 -14
- package/dist/lib/wholesale-feed-sync/webhook-notification.d.mts +7 -5
- package/dist/lib/wholesale-feed-sync/webhook-notification.d.ts +7 -5
- package/dist/lib/wholesale-feed-sync/webhook-notification.js +45 -0
- package/dist/lib/wholesale-feed-sync/webhook-notification.mjs +44 -0
- package/docs/CLI.md +1 -1
- package/docs/TYPE-SUMMARY.md +118 -4
- package/docs/guides/ASYNC-API-REFERENCE.md +62 -1
- package/docs/guides/ASYNC-DEVELOPER-GUIDE.md +25 -0
- package/docs/guides/ASYNC-DOCUMENTATION-INDEX.md +3 -0
- package/docs/guides/BUYER-QUICKSTART-3.2.md +5 -0
- package/docs/guides/DURABLE-BUYER-WRITES.md +337 -0
- package/docs/guides/EXISTING-PLATFORM.md +35 -0
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +7 -3
- package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
- package/docs/guides/REPORTING-LEDGER.md +654 -3
- package/docs/guides/REPORTING-SOURCE-EXECUTOR.md +63 -1
- package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -0
- package/docs/guides/VALIDATE-YOUR-AGENT.md +35 -0
- package/docs/guides/idempotency-crash-recovery.md +4 -0
- package/docs/llms.txt +4 -2
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/docs/migration-7.9-to-7.10.md +7 -5
- package/examples/README.md +17 -0
- package/examples/durable-buyer-writes/caller.ts +745 -0
- package/examples/durable-buyer-writes/worker.ts +240 -0
- package/examples/reliable-reporting-service/README.md +100 -0
- package/examples/seller-3.2-starter.ts +7 -8
- package/examples/targeting-input-existing-platform.ts +153 -0
- package/package.json +41 -29
- package/skills/build-seller-agent/specialisms/signed-requests.md +11 -1
- package/skills/cross-cutting.md +28 -11
- package/compliance/cache/3.1.0-beta.7/domains/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-beta.7/domains/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-beta.7/domains/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/index.yaml +0 -781
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/canonical_formats.yaml +0 -711
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-beta.7/domains/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-beta.7/domains/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-beta.7/index.json +0 -356
- package/compliance/cache/3.1.0-beta.7/protocols/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-beta.7/protocols/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-beta.7/protocols/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/index.yaml +0 -781
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/canonical_formats.yaml +0 -711
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-beta.7/protocols/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-beta.7/protocols/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-beta.7/specialisms/audience-sync/index.yaml +0 -313
- package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/index.yaml +0 -350
- package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
- package/compliance/cache/3.1.0-beta.7/specialisms/collection-lists/index.yaml +0 -359
- package/compliance/cache/3.1.0-beta.7/specialisms/content-standards/index.yaml +0 -572
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-ad-server/index.yaml +0 -409
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/generative-seller.yaml +0 -807
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/index.yaml +0 -758
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-template/index.yaml +0 -510
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/index.yaml +0 -143
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-delivery-monitor/index.yaml +0 -441
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/denied.yaml +0 -221
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/index.yaml +0 -330
- package/compliance/cache/3.1.0-beta.7/specialisms/property-lists/index.yaml +0 -482
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-broadcast-tv/index.yaml +0 -738
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-catalog-driven/index.yaml +0 -840
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-guaranteed/index.yaml +0 -601
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-non-guaranteed/index.yaml +0 -546
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-proposal-mode/index.yaml +0 -586
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-social/index.yaml +0 -919
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/index.yaml +0 -424
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -211
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-owned/index.yaml +0 -317
- package/compliance/cache/3.1.0-beta.7/specialisms/sponsored-intelligence/index.yaml +0 -59
- package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor-live.yaml +0 -78
- package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor.yaml +0 -223
- package/compliance/cache/3.1.0-beta.7/test-kits/billing-gate-runner.yaml +0 -115
- package/compliance/cache/3.1.0-beta.7/test-kits/bistro-oranje.yaml +0 -126
- package/compliance/cache/3.1.0-beta.7/test-kits/distributed-brand-runner.yaml +0 -281
- package/compliance/cache/3.1.0-beta.7/test-kits/nova-motors.yaml +0 -262
- package/compliance/cache/3.1.0-beta.7/test-kits/osei-natural.yaml +0 -126
- package/compliance/cache/3.1.0-beta.7/test-kits/parallel-dispatch-runner.yaml +0 -196
- package/compliance/cache/3.1.0-beta.7/test-kits/rate-limit-trip-runner.yaml +0 -172
- package/compliance/cache/3.1.0-beta.7/test-kits/signed-requests-runner.yaml +0 -155
- package/compliance/cache/3.1.0-beta.7/test-kits/single-side-trust-runner.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/test-kits/substitution-observer-runner.yaml +0 -688
- package/compliance/cache/3.1.0-beta.7/test-kits/summit-foods.yaml +0 -125
- package/compliance/cache/3.1.0-beta.7/test-kits/webhook-receiver-runner.yaml +0 -265
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/001-minimal-plan.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/002-full-plan.json +0 -217
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/README.md +0 -220
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/canonicalization.json +0 -241
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/keys.json +0 -60
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/001-basic-post.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/003-es256-post.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/README.md +0 -211
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/keys.json +0 -61
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
- package/compliance/cache/3.1.0-beta.7/universal/billing-gate-dispatch.yaml +0 -450
- package/compliance/cache/3.1.0-beta.7/universal/canonical-format-validate-input.yaml +0 -640
- package/compliance/cache/3.1.0-beta.7/universal/capability-discovery.yaml +0 -125
- package/compliance/cache/3.1.0-beta.7/universal/collection-lists-pagination-integrity.yaml +0 -306
- package/compliance/cache/3.1.0-beta.7/universal/comply-controller-mode-gate.yaml +0 -141
- package/compliance/cache/3.1.0-beta.7/universal/content-standards-pagination-integrity.yaml +0 -326
- package/compliance/cache/3.1.0-beta.7/universal/deterministic-testing.yaml +0 -1430
- package/compliance/cache/3.1.0-beta.7/universal/error-compliance-signals.yaml +0 -377
- package/compliance/cache/3.1.0-beta.7/universal/error-compliance.yaml +0 -528
- package/compliance/cache/3.1.0-beta.7/universal/fictional-entities.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/universal/get-media-buys-pagination-integrity.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/universal/get-signals-pagination-integrity.yaml +0 -211
- package/compliance/cache/3.1.0-beta.7/universal/idempotency.yaml +0 -861
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-event-scope.yaml +0 -119
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-lifecycle.yaml +0 -337
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-rejections.yaml +0 -107
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-creative-formats.yaml +0 -265
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-list-accounts.yaml +0 -245
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity.yaml +0 -263
- package/compliance/cache/3.1.0-beta.7/universal/property-lists-pagination-integrity.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/universal/read-tool-idempotency.yaml +0 -405
- package/compliance/cache/3.1.0-beta.7/universal/runner-output-contract.yaml +0 -1266
- package/compliance/cache/3.1.0-beta.7/universal/schema-validation-signals.yaml +0 -181
- package/compliance/cache/3.1.0-beta.7/universal/schema-validation.yaml +0 -548
- package/compliance/cache/3.1.0-beta.7/universal/security.yaml +0 -539
- package/compliance/cache/3.1.0-beta.7/universal/signed-requests.yaml +0 -217
- package/compliance/cache/3.1.0-beta.7/universal/stale-response-advisory.yaml +0 -295
- package/compliance/cache/3.1.0-beta.7/universal/storyboard-schema.yaml +0 -2136
- package/compliance/cache/3.1.0-beta.7/universal/v3-envelope-integrity.yaml +0 -117
- package/compliance/cache/3.1.0-beta.7/universal/version-negotiation.yaml +0 -130
- package/compliance/cache/3.1.0-beta.7/universal/webhook-emission.yaml +0 -411
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-product-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-products.yaml +0 -151
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signal-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signals.yaml +0 -149
- package/dist/lib/types/v3-1-beta/index.d.mts +0 -1
- package/dist/lib/types/v3-1-beta/index.d.ts +0 -1
- package/dist/lib/types/v3-1-beta/index.mjs +0 -1
- package/dist/lib/types/v3-1-beta/tools.generated.d.mts +0 -26788
- package/dist/lib/types/v3-1-beta/tools.generated.d.ts +0 -26788
- /package/dist/lib/{types/v3-1-beta/tools.generated.mjs → media-buy/action-types.mjs} +0 -0
package/dist/lib/version.js
CHANGED
|
@@ -31,18 +31,13 @@ __export(version_exports, {
|
|
|
31
31
|
toReleasePrecisionVersion: () => toReleasePrecisionVersion
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(version_exports);
|
|
34
|
-
const LIBRARY_VERSION = "14.0.0-rc.
|
|
34
|
+
const LIBRARY_VERSION = "14.0.0-rc.39";
|
|
35
35
|
const ADCP_VERSION = "3.2.0-rc.3";
|
|
36
36
|
const ADCP_MAJOR_VERSION = 3;
|
|
37
37
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
38
38
|
"v2.5",
|
|
39
39
|
"v2.6",
|
|
40
40
|
"v3",
|
|
41
|
-
"3.0.0-beta.1",
|
|
42
|
-
"3.0-beta.1",
|
|
43
|
-
"3.0-beta",
|
|
44
|
-
"3.0.0-beta.3",
|
|
45
|
-
"3.0-beta.3",
|
|
46
41
|
"3.0.0",
|
|
47
42
|
"3.0",
|
|
48
43
|
"3.0.1",
|
|
@@ -94,10 +89,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
94
89
|
"3.2-rc.3"
|
|
95
90
|
];
|
|
96
91
|
const VERSION_INFO = {
|
|
97
|
-
library: "14.0.0-rc.
|
|
92
|
+
library: "14.0.0-rc.39",
|
|
98
93
|
adcp: "3.2.0-rc.3",
|
|
99
94
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
100
|
-
generatedAt: "2026-09-
|
|
95
|
+
generatedAt: "2026-09-18T19:37:01.879Z"
|
|
101
96
|
};
|
|
102
97
|
function getAdcpVersion() {
|
|
103
98
|
return ADCP_VERSION;
|
package/dist/lib/version.mjs
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
const LIBRARY_VERSION = "14.0.0-rc.
|
|
1
|
+
const LIBRARY_VERSION = "14.0.0-rc.39";
|
|
2
2
|
const ADCP_VERSION = "3.2.0-rc.3";
|
|
3
3
|
const ADCP_MAJOR_VERSION = 3;
|
|
4
4
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
5
5
|
"v2.5",
|
|
6
6
|
"v2.6",
|
|
7
7
|
"v3",
|
|
8
|
-
"3.0.0-beta.1",
|
|
9
|
-
"3.0-beta.1",
|
|
10
|
-
"3.0-beta",
|
|
11
|
-
"3.0.0-beta.3",
|
|
12
|
-
"3.0-beta.3",
|
|
13
8
|
"3.0.0",
|
|
14
9
|
"3.0",
|
|
15
10
|
"3.0.1",
|
|
@@ -61,10 +56,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
61
56
|
"3.2-rc.3"
|
|
62
57
|
];
|
|
63
58
|
const VERSION_INFO = {
|
|
64
|
-
library: "14.0.0-rc.
|
|
59
|
+
library: "14.0.0-rc.39",
|
|
65
60
|
adcp: "3.2.0-rc.3",
|
|
66
61
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
67
|
-
generatedAt: "2026-09-
|
|
62
|
+
generatedAt: "2026-09-18T19:37:01.879Z"
|
|
68
63
|
};
|
|
69
64
|
function getAdcpVersion() {
|
|
70
65
|
return ADCP_VERSION;
|
|
@@ -2,3 +2,4 @@ export { WholesaleFeedSync } from './sync.mjs';
|
|
|
2
2
|
export { normalizeWholesaleFeedWebhookNotification, parseWholesaleFeedWebhookNotification, WholesaleFeedWebhookNotificationError, } from './webhook-notification.mjs';
|
|
3
3
|
export type { WholesaleFeedSyncClient, WholesaleFeedSyncConfig, WholesaleFeedSyncEvents, WholesaleFeedSyncMode, WholesaleFeedSyncState, ProductFilter, ResolvedCapabilities, SignalFilter, } from './types.mjs';
|
|
4
4
|
export type { NormalizedWholesaleFeedWebhookNotification, WholesaleFeedWebhookAffectedEntityType, WholesaleFeedWebhookCacheScope, WholesaleFeedWebhookNotificationErrorCode, WholesaleFeedWebhookNotificationErrorDetails, WholesaleFeedWebhookNotificationType, } from './webhook-notification.mjs';
|
|
5
|
+
export type { LegacyWholesaleFeedEvent, LegacyWholesaleFeedWebhook, LegacyWholesaleProduct, LegacyWholesaleSignal, } from './protocol-types.mjs';
|
|
@@ -2,3 +2,4 @@ export { WholesaleFeedSync } from './sync';
|
|
|
2
2
|
export { normalizeWholesaleFeedWebhookNotification, parseWholesaleFeedWebhookNotification, WholesaleFeedWebhookNotificationError, } from './webhook-notification';
|
|
3
3
|
export type { WholesaleFeedSyncClient, WholesaleFeedSyncConfig, WholesaleFeedSyncEvents, WholesaleFeedSyncMode, WholesaleFeedSyncState, ProductFilter, ResolvedCapabilities, SignalFilter, } from './types';
|
|
4
4
|
export type { NormalizedWholesaleFeedWebhookNotification, WholesaleFeedWebhookAffectedEntityType, WholesaleFeedWebhookCacheScope, WholesaleFeedWebhookNotificationErrorCode, WholesaleFeedWebhookNotificationErrorDetails, WholesaleFeedWebhookNotificationType, } from './webhook-notification';
|
|
5
|
+
export type { LegacyWholesaleFeedEvent, LegacyWholesaleFeedWebhook, LegacyWholesaleProduct, LegacyWholesaleSignal, } from './protocol-types';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { GetProductsResponse, GetSignalsResponse, WholesaleFeedEvent as CurrentWholesaleFeedEvent, WholesaleFeedWebhook as CurrentWholesaleFeedWebhook } from '../types/index.mjs';
|
|
2
|
+
export type LegacyWholesaleProduct = NonNullable<GetProductsResponse['products']>[number];
|
|
3
|
+
export type LegacyWholesaleSignal = NonNullable<GetSignalsResponse['signals']>[number];
|
|
4
|
+
type EventOf<K extends CurrentWholesaleFeedEvent['event_type']> = Extract<CurrentWholesaleFeedEvent, {
|
|
5
|
+
event_type: K;
|
|
6
|
+
}>;
|
|
7
|
+
type WithPayload<TEvent, TPayload> = Omit<TEvent, 'payload'> & {
|
|
8
|
+
payload: TPayload;
|
|
9
|
+
};
|
|
10
|
+
type LegacyProductPayload<K extends 'product.created' | 'product.updated'> = Omit<EventOf<K>['payload'], 'product' | 'canonical_product'> & {
|
|
11
|
+
product: LegacyWholesaleProduct;
|
|
12
|
+
canonical_product?: never;
|
|
13
|
+
};
|
|
14
|
+
type LegacyPricingPayload = Omit<EventOf<'product.priced'>['payload'], 'pricing_options' | 'canonical_pricing_options'> & {
|
|
15
|
+
pricing_options: NonNullable<LegacyWholesaleProduct['pricing_options']>;
|
|
16
|
+
canonical_pricing_options?: never;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Wholesale-feed event shape supported by this legacy `get_products` mirror.
|
|
20
|
+
*
|
|
21
|
+
* AdCP 3.2 also defines canonical `list_products` payloads. This sync engine
|
|
22
|
+
* intentionally accepts the legacy view only until it implements canonical
|
|
23
|
+
* product storage and repair semantics.
|
|
24
|
+
*/
|
|
25
|
+
export type LegacyWholesaleFeedEvent = WithPayload<EventOf<'product.created'>, LegacyProductPayload<'product.created'>> | WithPayload<EventOf<'product.updated'>, LegacyProductPayload<'product.updated'>> | WithPayload<EventOf<'product.priced'>, LegacyPricingPayload> | Exclude<CurrentWholesaleFeedEvent, {
|
|
26
|
+
event_type: 'product.created' | 'product.updated' | 'product.priced';
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Historical beta envelopes omitted `product_payload_view`; current 3.2
|
|
30
|
+
* legacy-view envelopes set it to `legacy`. Both forms map to the same mirror.
|
|
31
|
+
*/
|
|
32
|
+
type LegacyWebhookBase = Omit<CurrentWholesaleFeedWebhook, 'event' | 'notification_type' | 'product_payload_view'>;
|
|
33
|
+
type LegacyWebhookFor<TEvent extends LegacyWholesaleFeedEvent> = TEvent extends LegacyWholesaleFeedEvent ? LegacyWebhookBase & {
|
|
34
|
+
event: TEvent;
|
|
35
|
+
notification_type: TEvent['event_type'];
|
|
36
|
+
} & (TEvent['event_type'] extends `product.${string}` ? {
|
|
37
|
+
product_payload_view?: 'legacy';
|
|
38
|
+
} : {
|
|
39
|
+
product_payload_view?: never;
|
|
40
|
+
}) : never;
|
|
41
|
+
export type LegacyWholesaleFeedWebhook = LegacyWebhookFor<LegacyWholesaleFeedEvent>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { GetProductsResponse, GetSignalsResponse, WholesaleFeedEvent as CurrentWholesaleFeedEvent, WholesaleFeedWebhook as CurrentWholesaleFeedWebhook } from '../types';
|
|
2
|
+
export type LegacyWholesaleProduct = NonNullable<GetProductsResponse['products']>[number];
|
|
3
|
+
export type LegacyWholesaleSignal = NonNullable<GetSignalsResponse['signals']>[number];
|
|
4
|
+
type EventOf<K extends CurrentWholesaleFeedEvent['event_type']> = Extract<CurrentWholesaleFeedEvent, {
|
|
5
|
+
event_type: K;
|
|
6
|
+
}>;
|
|
7
|
+
type WithPayload<TEvent, TPayload> = Omit<TEvent, 'payload'> & {
|
|
8
|
+
payload: TPayload;
|
|
9
|
+
};
|
|
10
|
+
type LegacyProductPayload<K extends 'product.created' | 'product.updated'> = Omit<EventOf<K>['payload'], 'product' | 'canonical_product'> & {
|
|
11
|
+
product: LegacyWholesaleProduct;
|
|
12
|
+
canonical_product?: never;
|
|
13
|
+
};
|
|
14
|
+
type LegacyPricingPayload = Omit<EventOf<'product.priced'>['payload'], 'pricing_options' | 'canonical_pricing_options'> & {
|
|
15
|
+
pricing_options: NonNullable<LegacyWholesaleProduct['pricing_options']>;
|
|
16
|
+
canonical_pricing_options?: never;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Wholesale-feed event shape supported by this legacy `get_products` mirror.
|
|
20
|
+
*
|
|
21
|
+
* AdCP 3.2 also defines canonical `list_products` payloads. This sync engine
|
|
22
|
+
* intentionally accepts the legacy view only until it implements canonical
|
|
23
|
+
* product storage and repair semantics.
|
|
24
|
+
*/
|
|
25
|
+
export type LegacyWholesaleFeedEvent = WithPayload<EventOf<'product.created'>, LegacyProductPayload<'product.created'>> | WithPayload<EventOf<'product.updated'>, LegacyProductPayload<'product.updated'>> | WithPayload<EventOf<'product.priced'>, LegacyPricingPayload> | Exclude<CurrentWholesaleFeedEvent, {
|
|
26
|
+
event_type: 'product.created' | 'product.updated' | 'product.priced';
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Historical beta envelopes omitted `product_payload_view`; current 3.2
|
|
30
|
+
* legacy-view envelopes set it to `legacy`. Both forms map to the same mirror.
|
|
31
|
+
*/
|
|
32
|
+
type LegacyWebhookBase = Omit<CurrentWholesaleFeedWebhook, 'event' | 'notification_type' | 'product_payload_view'>;
|
|
33
|
+
type LegacyWebhookFor<TEvent extends LegacyWholesaleFeedEvent> = TEvent extends LegacyWholesaleFeedEvent ? LegacyWebhookBase & {
|
|
34
|
+
event: TEvent;
|
|
35
|
+
notification_type: TEvent['event_type'];
|
|
36
|
+
} & (TEvent['event_type'] extends `product.${string}` ? {
|
|
37
|
+
product_payload_view?: 'legacy';
|
|
38
|
+
} : {
|
|
39
|
+
product_payload_view?: never;
|
|
40
|
+
}) : never;
|
|
41
|
+
export type LegacyWholesaleFeedWebhook = LegacyWebhookFor<LegacyWholesaleFeedEvent>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var protocol_types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(protocol_types_exports);
|
|
File without changes
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
-
import type
|
|
2
|
+
import type { LegacyWholesaleFeedWebhook, LegacyWholesaleProduct, LegacyWholesaleSignal } from './protocol-types.mjs';
|
|
3
3
|
import type { WholesaleFeedSyncConfig, WholesaleFeedSyncEvents, WholesaleFeedSyncMode, WholesaleFeedSyncState, ProductFilter, ResolvedCapabilities, SignalFilter } from './types.mjs';
|
|
4
|
-
type Product =
|
|
5
|
-
type Signal =
|
|
4
|
+
type Product = LegacyWholesaleProduct;
|
|
5
|
+
type Signal = LegacyWholesaleSignal;
|
|
6
6
|
/**
|
|
7
7
|
* In-memory mirror of an AdCP agent's wholesale product and signal feeds.
|
|
8
8
|
*
|
|
@@ -16,7 +16,7 @@ type Signal = NonNullable<V31Beta.GetSignalsResponse['signals']>[number];
|
|
|
16
16
|
* import { AdCPClient } from '@adcp/sdk';
|
|
17
17
|
* import { WholesaleFeedSync } from '@adcp/sdk/wholesale-feed-sync';
|
|
18
18
|
*
|
|
19
|
-
* const client = new AdCPClient({ agentUrl
|
|
19
|
+
* const client = new AdCPClient({ agentUrl });
|
|
20
20
|
* const sync = new WholesaleFeedSync({ client });
|
|
21
21
|
*
|
|
22
22
|
* sync.on('product.priced', ({ event }) => {
|
|
@@ -123,12 +123,12 @@ export declare class WholesaleFeedSync extends EventEmitter<WholesaleFeedSyncEve
|
|
|
123
123
|
*/
|
|
124
124
|
refresh(): Promise<void>;
|
|
125
125
|
/**
|
|
126
|
-
* Apply one
|
|
126
|
+
* Apply one legacy-view account-level wholesale feed webhook to the local mirror.
|
|
127
127
|
* Call this from your HTTP webhook receiver after signature/auth validation.
|
|
128
128
|
* Stale or out-of-order deliveries repair through conditional wholesale
|
|
129
129
|
* reads instead of applying a suspect delta.
|
|
130
130
|
*/
|
|
131
|
-
applyWebhook(webhook:
|
|
131
|
+
applyWebhook(webhook: LegacyWholesaleFeedWebhook): Promise<void>;
|
|
132
132
|
get state(): WholesaleFeedSyncState;
|
|
133
133
|
get mode(): WholesaleFeedSyncMode;
|
|
134
134
|
get capabilities(): Readonly<ResolvedCapabilities>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
-
import type
|
|
2
|
+
import type { LegacyWholesaleFeedWebhook, LegacyWholesaleProduct, LegacyWholesaleSignal } from './protocol-types';
|
|
3
3
|
import type { WholesaleFeedSyncConfig, WholesaleFeedSyncEvents, WholesaleFeedSyncMode, WholesaleFeedSyncState, ProductFilter, ResolvedCapabilities, SignalFilter } from './types';
|
|
4
|
-
type Product =
|
|
5
|
-
type Signal =
|
|
4
|
+
type Product = LegacyWholesaleProduct;
|
|
5
|
+
type Signal = LegacyWholesaleSignal;
|
|
6
6
|
/**
|
|
7
7
|
* In-memory mirror of an AdCP agent's wholesale product and signal feeds.
|
|
8
8
|
*
|
|
@@ -16,7 +16,7 @@ type Signal = NonNullable<V31Beta.GetSignalsResponse['signals']>[number];
|
|
|
16
16
|
* import { AdCPClient } from '@adcp/sdk';
|
|
17
17
|
* import { WholesaleFeedSync } from '@adcp/sdk/wholesale-feed-sync';
|
|
18
18
|
*
|
|
19
|
-
* const client = new AdCPClient({ agentUrl
|
|
19
|
+
* const client = new AdCPClient({ agentUrl });
|
|
20
20
|
* const sync = new WholesaleFeedSync({ client });
|
|
21
21
|
*
|
|
22
22
|
* sync.on('product.priced', ({ event }) => {
|
|
@@ -123,12 +123,12 @@ export declare class WholesaleFeedSync extends EventEmitter<WholesaleFeedSyncEve
|
|
|
123
123
|
*/
|
|
124
124
|
refresh(): Promise<void>;
|
|
125
125
|
/**
|
|
126
|
-
* Apply one
|
|
126
|
+
* Apply one legacy-view account-level wholesale feed webhook to the local mirror.
|
|
127
127
|
* Call this from your HTTP webhook receiver after signature/auth validation.
|
|
128
128
|
* Stale or out-of-order deliveries repair through conditional wholesale
|
|
129
129
|
* reads instead of applying a suspect delta.
|
|
130
130
|
*/
|
|
131
|
-
applyWebhook(webhook:
|
|
131
|
+
applyWebhook(webhook: LegacyWholesaleFeedWebhook): Promise<void>;
|
|
132
132
|
get state(): WholesaleFeedSyncState;
|
|
133
133
|
get mode(): WholesaleFeedSyncMode;
|
|
134
134
|
get capabilities(): Readonly<ResolvedCapabilities>;
|
|
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(sync_exports);
|
|
|
24
24
|
var import_node_events = require("node:events");
|
|
25
25
|
var import_node_util = require("node:util");
|
|
26
26
|
var import_node_crypto = require("node:crypto");
|
|
27
|
+
var import_webhook_notification = require('./webhook-notification.js');
|
|
27
28
|
const DEFAULT_PROBE_INTERVAL_MS = 6e5;
|
|
28
29
|
const DEFAULT_CAPABILITY_REFRESH_INTERVAL_MS = 864e5;
|
|
29
30
|
const DEFAULT_BOOTSTRAP_PAGE_LIMIT = 100;
|
|
@@ -206,12 +207,13 @@ class WholesaleFeedSync extends import_node_events.EventEmitter {
|
|
|
206
207
|
await this.bootstrap({ emitDiffs: true, epoch });
|
|
207
208
|
}
|
|
208
209
|
/**
|
|
209
|
-
* Apply one
|
|
210
|
+
* Apply one legacy-view account-level wholesale feed webhook to the local mirror.
|
|
210
211
|
* Call this from your HTTP webhook receiver after signature/auth validation.
|
|
211
212
|
* Stale or out-of-order deliveries repair through conditional wholesale
|
|
212
213
|
* reads instead of applying a suspect delta.
|
|
213
214
|
*/
|
|
214
215
|
async applyWebhook(webhook) {
|
|
216
|
+
(0, import_webhook_notification.assertLegacyWholesaleFeedRepresentation)(webhook);
|
|
215
217
|
const epoch = this.lifecycleEpoch;
|
|
216
218
|
const event = webhook.event;
|
|
217
219
|
if (!event || webhook.notification_type !== event.event_type) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
2
|
import { isDeepStrictEqual } from "node:util";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
|
+
import { assertLegacyWholesaleFeedRepresentation } from "./webhook-notification.mjs";
|
|
4
5
|
const DEFAULT_PROBE_INTERVAL_MS = 6e5;
|
|
5
6
|
const DEFAULT_CAPABILITY_REFRESH_INTERVAL_MS = 864e5;
|
|
6
7
|
const DEFAULT_BOOTSTRAP_PAGE_LIMIT = 100;
|
|
@@ -183,12 +184,13 @@ class WholesaleFeedSync extends EventEmitter {
|
|
|
183
184
|
await this.bootstrap({ emitDiffs: true, epoch });
|
|
184
185
|
}
|
|
185
186
|
/**
|
|
186
|
-
* Apply one
|
|
187
|
+
* Apply one legacy-view account-level wholesale feed webhook to the local mirror.
|
|
187
188
|
* Call this from your HTTP webhook receiver after signature/auth validation.
|
|
188
189
|
* Stale or out-of-order deliveries repair through conditional wholesale
|
|
189
190
|
* reads instead of applying a suspect delta.
|
|
190
191
|
*/
|
|
191
192
|
async applyWebhook(webhook) {
|
|
193
|
+
assertLegacyWholesaleFeedRepresentation(webhook);
|
|
192
194
|
const epoch = this.lifecycleEpoch;
|
|
193
195
|
const event = webhook.event;
|
|
194
196
|
if (!event || webhook.notification_type !== event.event_type) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SingleAgentClient } from '../core/SingleAgentClient.mjs';
|
|
2
|
-
import type
|
|
2
|
+
import type { AccountReference } from '../types/index.mjs';
|
|
3
|
+
import type { LegacyWholesaleFeedEvent } from './protocol-types.mjs';
|
|
3
4
|
/**
|
|
4
5
|
* Operating mode for a {@link WholesaleFeedSync} instance, resolved from the
|
|
5
6
|
* agent's capability stanza at `start()` time.
|
|
@@ -34,7 +35,7 @@ export interface WholesaleFeedSyncClient {
|
|
|
34
35
|
/**
|
|
35
36
|
* Configuration for a {@link WholesaleFeedSync} instance.
|
|
36
37
|
*
|
|
37
|
-
* The SDK's primary version pin (`ADCP_VERSION`)
|
|
38
|
+
* The SDK's primary version pin (`ADCP_VERSION`) provides the wholesale
|
|
38
39
|
* feed surfaces activate when the agent declares `wholesale_feed_versioning`
|
|
39
40
|
* and/or `wholesale_feed_webhooks` in its `get_adcp_capabilities` response.
|
|
40
41
|
* Against pre-3.1 agents the sync still works in `'manual'` mode — bootstrap
|
|
@@ -44,12 +45,12 @@ export interface WholesaleFeedSyncConfig {
|
|
|
44
45
|
/** Pre-configured client (or stub) for tool calls against the target agent. */
|
|
45
46
|
client: WholesaleFeedSyncClient;
|
|
46
47
|
/**
|
|
47
|
-
* Account scope for wholesale product/signal reads.
|
|
48
|
+
* Account scope for wholesale product/signal reads. Wholesale-feed
|
|
48
49
|
* webhooks are account-anchored; pass the same account used when registering
|
|
49
50
|
* `notification_configs[]` so repair reads reconcile the correct public or
|
|
50
51
|
* account overlay.
|
|
51
52
|
*/
|
|
52
|
-
account?:
|
|
53
|
+
account?: AccountReference;
|
|
53
54
|
/**
|
|
54
55
|
* Expected inbound webhook subscription scope. Set this when routing a
|
|
55
56
|
* validated webhook receiver into a WholesaleFeedSync instance so misrouted
|
|
@@ -155,43 +156,43 @@ export interface WholesaleFeedSyncEvents {
|
|
|
155
156
|
to: WholesaleFeedSyncState;
|
|
156
157
|
}];
|
|
157
158
|
event: [{
|
|
158
|
-
event:
|
|
159
|
+
event: LegacyWholesaleFeedEvent;
|
|
159
160
|
synthetic?: boolean;
|
|
160
161
|
}];
|
|
161
162
|
'product.created': [{
|
|
162
|
-
event:
|
|
163
|
+
event: LegacyWholesaleFeedEvent;
|
|
163
164
|
synthetic?: boolean;
|
|
164
165
|
}];
|
|
165
166
|
'product.updated': [{
|
|
166
|
-
event:
|
|
167
|
+
event: LegacyWholesaleFeedEvent;
|
|
167
168
|
synthetic?: boolean;
|
|
168
169
|
}];
|
|
169
170
|
'product.priced': [{
|
|
170
|
-
event:
|
|
171
|
+
event: LegacyWholesaleFeedEvent;
|
|
171
172
|
synthetic?: boolean;
|
|
172
173
|
}];
|
|
173
174
|
'product.removed': [{
|
|
174
|
-
event:
|
|
175
|
+
event: LegacyWholesaleFeedEvent;
|
|
175
176
|
synthetic?: boolean;
|
|
176
177
|
}];
|
|
177
178
|
'signal.created': [{
|
|
178
|
-
event:
|
|
179
|
+
event: LegacyWholesaleFeedEvent;
|
|
179
180
|
synthetic?: boolean;
|
|
180
181
|
}];
|
|
181
182
|
'signal.updated': [{
|
|
182
|
-
event:
|
|
183
|
+
event: LegacyWholesaleFeedEvent;
|
|
183
184
|
synthetic?: boolean;
|
|
184
185
|
}];
|
|
185
186
|
'signal.priced': [{
|
|
186
|
-
event:
|
|
187
|
+
event: LegacyWholesaleFeedEvent;
|
|
187
188
|
synthetic?: boolean;
|
|
188
189
|
}];
|
|
189
190
|
'signal.removed': [{
|
|
190
|
-
event:
|
|
191
|
+
event: LegacyWholesaleFeedEvent;
|
|
191
192
|
synthetic?: boolean;
|
|
192
193
|
}];
|
|
193
194
|
'wholesale_feed.bulk_change': [{
|
|
194
|
-
event:
|
|
195
|
+
event: LegacyWholesaleFeedEvent;
|
|
195
196
|
synthetic?: boolean;
|
|
196
197
|
}];
|
|
197
198
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SingleAgentClient } from '../core/SingleAgentClient';
|
|
2
|
-
import type
|
|
2
|
+
import type { AccountReference } from '../types';
|
|
3
|
+
import type { LegacyWholesaleFeedEvent } from './protocol-types';
|
|
3
4
|
/**
|
|
4
5
|
* Operating mode for a {@link WholesaleFeedSync} instance, resolved from the
|
|
5
6
|
* agent's capability stanza at `start()` time.
|
|
@@ -34,7 +35,7 @@ export interface WholesaleFeedSyncClient {
|
|
|
34
35
|
/**
|
|
35
36
|
* Configuration for a {@link WholesaleFeedSync} instance.
|
|
36
37
|
*
|
|
37
|
-
* The SDK's primary version pin (`ADCP_VERSION`)
|
|
38
|
+
* The SDK's primary version pin (`ADCP_VERSION`) provides the wholesale
|
|
38
39
|
* feed surfaces activate when the agent declares `wholesale_feed_versioning`
|
|
39
40
|
* and/or `wholesale_feed_webhooks` in its `get_adcp_capabilities` response.
|
|
40
41
|
* Against pre-3.1 agents the sync still works in `'manual'` mode — bootstrap
|
|
@@ -44,12 +45,12 @@ export interface WholesaleFeedSyncConfig {
|
|
|
44
45
|
/** Pre-configured client (or stub) for tool calls against the target agent. */
|
|
45
46
|
client: WholesaleFeedSyncClient;
|
|
46
47
|
/**
|
|
47
|
-
* Account scope for wholesale product/signal reads.
|
|
48
|
+
* Account scope for wholesale product/signal reads. Wholesale-feed
|
|
48
49
|
* webhooks are account-anchored; pass the same account used when registering
|
|
49
50
|
* `notification_configs[]` so repair reads reconcile the correct public or
|
|
50
51
|
* account overlay.
|
|
51
52
|
*/
|
|
52
|
-
account?:
|
|
53
|
+
account?: AccountReference;
|
|
53
54
|
/**
|
|
54
55
|
* Expected inbound webhook subscription scope. Set this when routing a
|
|
55
56
|
* validated webhook receiver into a WholesaleFeedSync instance so misrouted
|
|
@@ -155,43 +156,43 @@ export interface WholesaleFeedSyncEvents {
|
|
|
155
156
|
to: WholesaleFeedSyncState;
|
|
156
157
|
}];
|
|
157
158
|
event: [{
|
|
158
|
-
event:
|
|
159
|
+
event: LegacyWholesaleFeedEvent;
|
|
159
160
|
synthetic?: boolean;
|
|
160
161
|
}];
|
|
161
162
|
'product.created': [{
|
|
162
|
-
event:
|
|
163
|
+
event: LegacyWholesaleFeedEvent;
|
|
163
164
|
synthetic?: boolean;
|
|
164
165
|
}];
|
|
165
166
|
'product.updated': [{
|
|
166
|
-
event:
|
|
167
|
+
event: LegacyWholesaleFeedEvent;
|
|
167
168
|
synthetic?: boolean;
|
|
168
169
|
}];
|
|
169
170
|
'product.priced': [{
|
|
170
|
-
event:
|
|
171
|
+
event: LegacyWholesaleFeedEvent;
|
|
171
172
|
synthetic?: boolean;
|
|
172
173
|
}];
|
|
173
174
|
'product.removed': [{
|
|
174
|
-
event:
|
|
175
|
+
event: LegacyWholesaleFeedEvent;
|
|
175
176
|
synthetic?: boolean;
|
|
176
177
|
}];
|
|
177
178
|
'signal.created': [{
|
|
178
|
-
event:
|
|
179
|
+
event: LegacyWholesaleFeedEvent;
|
|
179
180
|
synthetic?: boolean;
|
|
180
181
|
}];
|
|
181
182
|
'signal.updated': [{
|
|
182
|
-
event:
|
|
183
|
+
event: LegacyWholesaleFeedEvent;
|
|
183
184
|
synthetic?: boolean;
|
|
184
185
|
}];
|
|
185
186
|
'signal.priced': [{
|
|
186
|
-
event:
|
|
187
|
+
event: LegacyWholesaleFeedEvent;
|
|
187
188
|
synthetic?: boolean;
|
|
188
189
|
}];
|
|
189
190
|
'signal.removed': [{
|
|
190
|
-
event:
|
|
191
|
+
event: LegacyWholesaleFeedEvent;
|
|
191
192
|
synthetic?: boolean;
|
|
192
193
|
}];
|
|
193
194
|
'wholesale_feed.bulk_change': [{
|
|
194
|
-
event:
|
|
195
|
+
event: LegacyWholesaleFeedEvent;
|
|
195
196
|
synthetic?: boolean;
|
|
196
197
|
}];
|
|
197
198
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ADCPError } from '../errors/index.mjs';
|
|
2
|
-
import type
|
|
3
|
-
export type WholesaleFeedWebhookNotificationType =
|
|
2
|
+
import type { LegacyWholesaleFeedEvent, LegacyWholesaleFeedWebhook } from './protocol-types.mjs';
|
|
3
|
+
export type WholesaleFeedWebhookNotificationType = LegacyWholesaleFeedWebhook['notification_type'];
|
|
4
4
|
export type WholesaleFeedWebhookAffectedEntityType = 'product' | 'signal';
|
|
5
|
-
export type WholesaleFeedWebhookCacheScope =
|
|
5
|
+
export type WholesaleFeedWebhookCacheScope = LegacyWholesaleFeedWebhook['cache_scope'];
|
|
6
6
|
export type WholesaleFeedWebhookNotificationErrorCode = 'wholesale_feed_webhook_body_malformed' | 'wholesale_feed_webhook_field_missing' | 'wholesale_feed_webhook_field_invalid' | 'wholesale_feed_webhook_notification_type_mismatch' | 'wholesale_feed_webhook_entity_type_mismatch' | 'wholesale_feed_webhook_cache_scope_mismatch' | 'wholesale_feed_webhook_bulk_change_invalid';
|
|
7
7
|
export interface WholesaleFeedWebhookNotificationErrorDetails {
|
|
8
8
|
field?: string;
|
|
@@ -38,8 +38,8 @@ export interface NormalizedWholesaleFeedWebhookNotification {
|
|
|
38
38
|
eventCreatedAt: string;
|
|
39
39
|
/** Present for `wholesale_feed.bulk_change` notifications. */
|
|
40
40
|
affectedEntityType?: WholesaleFeedWebhookAffectedEntityType;
|
|
41
|
-
event:
|
|
42
|
-
webhook:
|
|
41
|
+
event: LegacyWholesaleFeedEvent;
|
|
42
|
+
webhook: LegacyWholesaleFeedWebhook;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Parse and normalize a canonical wholesale-feed webhook notification.
|
|
@@ -51,3 +51,5 @@ export interface NormalizedWholesaleFeedWebhookNotification {
|
|
|
51
51
|
*/
|
|
52
52
|
export declare function parseWholesaleFeedWebhookNotification(input: unknown): NormalizedWholesaleFeedWebhookNotification;
|
|
53
53
|
export declare const normalizeWholesaleFeedWebhookNotification: typeof parseWholesaleFeedWebhookNotification;
|
|
54
|
+
/** Validate only the product representation contract, without consuming dedupe state. */
|
|
55
|
+
export declare function assertLegacyWholesaleFeedRepresentation(webhook: Record<string, unknown>): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ADCPError } from '../errors';
|
|
2
|
-
import type
|
|
3
|
-
export type WholesaleFeedWebhookNotificationType =
|
|
2
|
+
import type { LegacyWholesaleFeedEvent, LegacyWholesaleFeedWebhook } from './protocol-types';
|
|
3
|
+
export type WholesaleFeedWebhookNotificationType = LegacyWholesaleFeedWebhook['notification_type'];
|
|
4
4
|
export type WholesaleFeedWebhookAffectedEntityType = 'product' | 'signal';
|
|
5
|
-
export type WholesaleFeedWebhookCacheScope =
|
|
5
|
+
export type WholesaleFeedWebhookCacheScope = LegacyWholesaleFeedWebhook['cache_scope'];
|
|
6
6
|
export type WholesaleFeedWebhookNotificationErrorCode = 'wholesale_feed_webhook_body_malformed' | 'wholesale_feed_webhook_field_missing' | 'wholesale_feed_webhook_field_invalid' | 'wholesale_feed_webhook_notification_type_mismatch' | 'wholesale_feed_webhook_entity_type_mismatch' | 'wholesale_feed_webhook_cache_scope_mismatch' | 'wholesale_feed_webhook_bulk_change_invalid';
|
|
7
7
|
export interface WholesaleFeedWebhookNotificationErrorDetails {
|
|
8
8
|
field?: string;
|
|
@@ -38,8 +38,8 @@ export interface NormalizedWholesaleFeedWebhookNotification {
|
|
|
38
38
|
eventCreatedAt: string;
|
|
39
39
|
/** Present for `wholesale_feed.bulk_change` notifications. */
|
|
40
40
|
affectedEntityType?: WholesaleFeedWebhookAffectedEntityType;
|
|
41
|
-
event:
|
|
42
|
-
webhook:
|
|
41
|
+
event: LegacyWholesaleFeedEvent;
|
|
42
|
+
webhook: LegacyWholesaleFeedWebhook;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Parse and normalize a canonical wholesale-feed webhook notification.
|
|
@@ -51,3 +51,5 @@ export interface NormalizedWholesaleFeedWebhookNotification {
|
|
|
51
51
|
*/
|
|
52
52
|
export declare function parseWholesaleFeedWebhookNotification(input: unknown): NormalizedWholesaleFeedWebhookNotification;
|
|
53
53
|
export declare const normalizeWholesaleFeedWebhookNotification: typeof parseWholesaleFeedWebhookNotification;
|
|
54
|
+
/** Validate only the product representation contract, without consuming dedupe state. */
|
|
55
|
+
export declare function assertLegacyWholesaleFeedRepresentation(webhook: Record<string, unknown>): void;
|
|
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var webhook_notification_exports = {};
|
|
20
20
|
__export(webhook_notification_exports, {
|
|
21
21
|
WholesaleFeedWebhookNotificationError: () => WholesaleFeedWebhookNotificationError,
|
|
22
|
+
assertLegacyWholesaleFeedRepresentation: () => assertLegacyWholesaleFeedRepresentation,
|
|
22
23
|
normalizeWholesaleFeedWebhookNotification: () => normalizeWholesaleFeedWebhookNotification,
|
|
23
24
|
parseWholesaleFeedWebhookNotification: () => parseWholesaleFeedWebhookNotification
|
|
24
25
|
});
|
|
@@ -57,6 +58,7 @@ function parseWholesaleFeedWebhookNotification(input) {
|
|
|
57
58
|
const wholesaleFeedVersion = readRequiredString(webhook, "wholesale_feed_version");
|
|
58
59
|
const previousWholesaleFeedVersion = readOptionalString(webhook, "previous_wholesale_feed_version");
|
|
59
60
|
const cacheScope = readCacheScope(readRequiredString(webhook, "cache_scope"), "cache_scope");
|
|
61
|
+
assertLegacyWholesaleFeedRepresentation(webhook);
|
|
60
62
|
const eventId = readRequiredString(event, "event.event_id");
|
|
61
63
|
if (notificationId !== eventId) {
|
|
62
64
|
throw new WholesaleFeedWebhookNotificationError(
|
|
@@ -225,11 +227,13 @@ function validatePayloadForEvent(notificationType, entityId, payload) {
|
|
|
225
227
|
case "product.created":
|
|
226
228
|
case "product.updated": {
|
|
227
229
|
assertEntityIdMatchesPayload(entityId, readRequiredString(payload, "event.payload.product_id"), "product_id");
|
|
230
|
+
rejectCanonicalPayloadField(payload, "canonical_product");
|
|
228
231
|
readRequiredRecord(payload, "event.payload.product");
|
|
229
232
|
return void 0;
|
|
230
233
|
}
|
|
231
234
|
case "product.priced": {
|
|
232
235
|
assertEntityIdMatchesPayload(entityId, readRequiredString(payload, "event.payload.product_id"), "product_id");
|
|
236
|
+
rejectCanonicalPayloadField(payload, "canonical_pricing_options");
|
|
233
237
|
readRequiredNonEmptyArray(payload, "event.payload.pricing_options");
|
|
234
238
|
return void 0;
|
|
235
239
|
}
|
|
@@ -270,6 +274,46 @@ function validatePayloadForEvent(notificationType, entityId, payload) {
|
|
|
270
274
|
return readBulkChangeAffectedEntityType(payload);
|
|
271
275
|
}
|
|
272
276
|
}
|
|
277
|
+
function assertLegacyProductPayloadView(notificationType, productPayloadView) {
|
|
278
|
+
const isProductEvent = notificationType.startsWith("product.");
|
|
279
|
+
if (isProductEvent && (productPayloadView === void 0 || productPayloadView === "legacy")) return;
|
|
280
|
+
if (!isProductEvent && productPayloadView === void 0) return;
|
|
281
|
+
throw new WholesaleFeedWebhookNotificationError(
|
|
282
|
+
"wholesale_feed_webhook_field_invalid",
|
|
283
|
+
isProductEvent ? 'WholesaleFeedSync supports only product_payload_view "legacy".' : "Non-product wholesale-feed webhooks must omit product_payload_view.",
|
|
284
|
+
{
|
|
285
|
+
field: "product_payload_view",
|
|
286
|
+
expected: isProductEvent ? ["legacy"] : ["absent"],
|
|
287
|
+
actual: productPayloadView
|
|
288
|
+
}
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
function assertLegacyWholesaleFeedRepresentation(webhook) {
|
|
292
|
+
const notificationType = webhook.notification_type;
|
|
293
|
+
if (typeof notificationType !== "string" || !WHOLESALE_FEED_NOTIFICATION_TYPES.has(notificationType))
|
|
294
|
+
return;
|
|
295
|
+
const productPayloadView = readOptionalString(webhook, "product_payload_view");
|
|
296
|
+
assertLegacyProductPayloadView(notificationType, productPayloadView);
|
|
297
|
+
if (!notificationType.startsWith("product.")) return;
|
|
298
|
+
const event = webhook.event;
|
|
299
|
+
if (!event || typeof event !== "object" || Array.isArray(event)) return;
|
|
300
|
+
const payload = event.payload;
|
|
301
|
+
if (!payload || typeof payload !== "object" || Array.isArray(payload)) return;
|
|
302
|
+
const payloadRecord = payload;
|
|
303
|
+
if (notificationType === "product.created" || notificationType === "product.updated") {
|
|
304
|
+
rejectCanonicalPayloadField(payloadRecord, "canonical_product");
|
|
305
|
+
} else if (notificationType === "product.priced") {
|
|
306
|
+
rejectCanonicalPayloadField(payloadRecord, "canonical_pricing_options");
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
function rejectCanonicalPayloadField(payload, field) {
|
|
310
|
+
if (!Object.prototype.hasOwnProperty.call(payload, field)) return;
|
|
311
|
+
throw new WholesaleFeedWebhookNotificationError(
|
|
312
|
+
"wholesale_feed_webhook_field_invalid",
|
|
313
|
+
`WholesaleFeedSync legacy product view does not accept event.payload.${field}.`,
|
|
314
|
+
{ field: `event.payload.${field}`, expected: "absent", actual: payload[field] }
|
|
315
|
+
);
|
|
316
|
+
}
|
|
273
317
|
function assertEntityIdMatchesPayload(entityId, payloadEntityId, payloadField) {
|
|
274
318
|
if (entityId === payloadEntityId) return;
|
|
275
319
|
throw new WholesaleFeedWebhookNotificationError(
|
|
@@ -302,6 +346,7 @@ function describeValue(value) {
|
|
|
302
346
|
// Annotate the CommonJS export names for ESM import in node:
|
|
303
347
|
0 && (module.exports = {
|
|
304
348
|
WholesaleFeedWebhookNotificationError,
|
|
349
|
+
assertLegacyWholesaleFeedRepresentation,
|
|
305
350
|
normalizeWholesaleFeedWebhookNotification,
|
|
306
351
|
parseWholesaleFeedWebhookNotification
|
|
307
352
|
});
|