@adcp/sdk 14.0.0-rc.37 → 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/content-mismatch.d.mts +126 -0
- package/dist/lib/reporting/content-mismatch.d.ts +126 -0
- package/dist/lib/reporting/content-mismatch.js +90 -0
- package/dist/lib/reporting/content-mismatch.mjs +66 -0
- 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/index.d.mts +3 -1
- package/dist/lib/reporting/index.d.ts +3 -1
- package/dist/lib/reporting/index.js +3 -0
- package/dist/lib/reporting/index.mjs +2 -0
- 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/reconciliation.d.mts +362 -2
- package/dist/lib/reporting/reconciliation.d.ts +362 -2
- package/dist/lib/reporting/reconciliation.js +1051 -7
- package/dist/lib/reporting/reconciliation.mjs +1053 -7
- 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/index.d.mts +22 -1
- package/dist/lib/schemas/index.d.ts +22 -1
- package/dist/lib/schemas/index.js +7 -0
- package/dist/lib/schemas/index.mjs +7 -0
- 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/validation/schema-loader.d.mts +9 -1
- package/dist/lib/validation/schema-loader.d.ts +9 -1
- package/dist/lib/validation/schema-loader.js +65 -8
- package/dist/lib/validation/schema-loader.mjs +64 -8
- 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 +80 -1
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +57 -0
- package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
- package/docs/guides/REPORTING-LEDGER.md +654 -3
- package/docs/guides/REPORTING-RECONCILIATION.md +50 -0
- 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 +60 -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/SKILL.md +2 -0
- 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
|
@@ -30,6 +30,7 @@ var schema_loader_exports = {};
|
|
|
30
30
|
__export(schema_loader_exports, {
|
|
31
31
|
SCHEMA_FILENAME_SUFFIX: () => SCHEMA_FILENAME_SUFFIX,
|
|
32
32
|
_resetValidationLoader: () => _resetValidationLoader,
|
|
33
|
+
getCanonicalToolValidatorForVersion: () => getCanonicalToolValidatorForVersion,
|
|
33
34
|
getMcpProfileInputSchema: () => getMcpProfileInputSchema,
|
|
34
35
|
getMcpToolSchema: () => getMcpToolSchema,
|
|
35
36
|
getMcpToolSummary: () => getMcpToolSummary,
|
|
@@ -434,6 +435,7 @@ function ensureInit(version) {
|
|
|
434
435
|
(0, import_ajv_formats.default)(ajv);
|
|
435
436
|
const state = {
|
|
436
437
|
ajv,
|
|
438
|
+
canonicalValidators: /* @__PURE__ */ new Map(),
|
|
437
439
|
fileIndex: buildFileIndex(root),
|
|
438
440
|
validators: /* @__PURE__ */ new Map(),
|
|
439
441
|
rawSchemas: /* @__PURE__ */ new Map(),
|
|
@@ -487,6 +489,13 @@ function getValidator(toolName, direction, version = import_version.ADCP_VERSION
|
|
|
487
489
|
s.validators.set(cacheKey, compiled);
|
|
488
490
|
return compiled;
|
|
489
491
|
}
|
|
492
|
+
function authoredToolSchemaFile(state, indexedFile) {
|
|
493
|
+
const bundledRoot = import_path.default.join(state.root, "bundled");
|
|
494
|
+
const relative = import_path.default.relative(bundledRoot, indexedFile);
|
|
495
|
+
if (relative.startsWith("..") || import_path.default.isAbsolute(relative)) return indexedFile;
|
|
496
|
+
const authoredFile = import_path.default.join(state.root, relative);
|
|
497
|
+
return (0, import_fs.existsSync)(authoredFile) ? authoredFile : indexedFile;
|
|
498
|
+
}
|
|
490
499
|
function getToolSchemaDocument(toolName, direction, version = import_version.ADCP_VERSION) {
|
|
491
500
|
const state = ensureInit(version);
|
|
492
501
|
const file = state.fileIndex.get(`${toolName}::${direction}`);
|
|
@@ -544,7 +553,7 @@ function getSchemaDocumentByRef(schemaRef, version = import_version.ADCP_VERSION
|
|
|
544
553
|
schema: readDocument(normalized)
|
|
545
554
|
};
|
|
546
555
|
}
|
|
547
|
-
function getSchemaValidatorByRef(schemaRef, version = import_version.ADCP_VERSION, keywords) {
|
|
556
|
+
function getSchemaValidatorByRef(schemaRef, version = import_version.ADCP_VERSION, keywords, options = {}) {
|
|
548
557
|
const bundleKey = resolveBundleKey(version);
|
|
549
558
|
const root = resolveSchemaRoot(version);
|
|
550
559
|
const normalized = normalizeSchemaRef(schemaRef);
|
|
@@ -558,17 +567,19 @@ function getSchemaValidatorByRef(schemaRef, version = import_version.ADCP_VERSIO
|
|
|
558
567
|
}
|
|
559
568
|
cache = entry.validators;
|
|
560
569
|
}
|
|
561
|
-
const
|
|
570
|
+
const allErrors = options.allErrors ?? false;
|
|
571
|
+
const cacheKey = `${stateCacheKey(bundleKey, root)}\0schema-ref::${normalized}\0all-errors::${allErrors}`;
|
|
562
572
|
const cached = cache.get(cacheKey);
|
|
563
573
|
if (cached) return cached;
|
|
564
574
|
const file = import_path.default.join(root, normalized);
|
|
565
575
|
if (!(0, import_fs.existsSync)(file)) return void 0;
|
|
566
576
|
const ajv = new import_ajv.default({
|
|
567
577
|
strict: false,
|
|
568
|
-
// Schema-ref validators process remote webhook payloads.
|
|
569
|
-
// first violation so deeply nested hostile input cannot
|
|
570
|
-
// collection into CPU or memory exhaustion.
|
|
571
|
-
|
|
578
|
+
// Schema-ref validators process remote webhook payloads. By default they
|
|
579
|
+
// fail on the first violation so deeply nested hostile input cannot
|
|
580
|
+
// amplify error collection into CPU or memory exhaustion. Canonical
|
|
581
|
+
// offline validators explicitly opt into complete developer diagnostics.
|
|
582
|
+
allErrors,
|
|
572
583
|
allowUnionTypes: true
|
|
573
584
|
});
|
|
574
585
|
(0, import_ajv_formats.default)(ajv);
|
|
@@ -583,10 +594,10 @@ function getSchemaValidatorByRef(schemaRef, version = import_version.ADCP_VERSIO
|
|
|
583
594
|
}
|
|
584
595
|
if (schemaFile === file) continue;
|
|
585
596
|
const schema = loadJson(schemaFile);
|
|
586
|
-
if (keywords && typeof schema.$id === "string") {
|
|
597
|
+
if ((keywords || allErrors) && typeof schema.$id === "string") {
|
|
587
598
|
const previous = schema.$id === rawSchema.$id ? rawSchema : registeredIds.get(schema.$id);
|
|
588
599
|
if (previous && !(0, import_node_util.isDeepStrictEqual)(previous, schema)) {
|
|
589
|
-
throw new import_errors.ConfigurationError("Schema
|
|
600
|
+
throw new import_errors.ConfigurationError("Schema validation requires unambiguous schema identities", "schemaRoot");
|
|
590
601
|
}
|
|
591
602
|
if (schema.$id === rawSchema.$id) continue;
|
|
592
603
|
}
|
|
@@ -602,6 +613,51 @@ function getSchemaValidatorByRef(schemaRef, version = import_version.ADCP_VERSIO
|
|
|
602
613
|
cache.set(cacheKey, compiled);
|
|
603
614
|
return compiled;
|
|
604
615
|
}
|
|
616
|
+
function getCanonicalToolValidatorForVersion(toolName, direction, version = import_version.ADCP_VERSION) {
|
|
617
|
+
const state = ensureInit(version);
|
|
618
|
+
const cacheKey = `${toolName}::${direction}`;
|
|
619
|
+
const cached = state.canonicalValidators.get(cacheKey);
|
|
620
|
+
if (cached) return cached;
|
|
621
|
+
const indexedFile = state.fileIndex.get(cacheKey);
|
|
622
|
+
if (!indexedFile) return void 0;
|
|
623
|
+
const file = authoredToolSchemaFile(state, indexedFile);
|
|
624
|
+
const rawSchema = loadJson(file);
|
|
625
|
+
const ajv = ensureCanonicalAjv(state);
|
|
626
|
+
const existing = typeof rawSchema.$id === "string" ? ajv.getSchema(rawSchema.$id) : void 0;
|
|
627
|
+
const fromBundled = file.includes(`${import_path.default.sep}bundled${import_path.default.sep}`);
|
|
628
|
+
const compiled = existing ?? ajv.compile(fromBundled ? stripNestedIds(rawSchema) : rawSchema);
|
|
629
|
+
state.canonicalValidators.set(cacheKey, compiled);
|
|
630
|
+
return compiled;
|
|
631
|
+
}
|
|
632
|
+
function ensureCanonicalAjv(state) {
|
|
633
|
+
if (state.canonicalAjv) return state.canonicalAjv;
|
|
634
|
+
const ajv = new import_ajv.default({
|
|
635
|
+
strict: false,
|
|
636
|
+
allErrors: true,
|
|
637
|
+
allowUnionTypes: true
|
|
638
|
+
});
|
|
639
|
+
(0, import_ajv_formats.default)(ajv);
|
|
640
|
+
const schemasById = /* @__PURE__ */ new Map();
|
|
641
|
+
for (const schemaFile of walkJsonFiles(state.root)) {
|
|
642
|
+
if (schemaFile.includes(`${import_path.default.sep}bundled${import_path.default.sep}`)) continue;
|
|
643
|
+
if ([...TRANSPORT_PROJECTION_DIRECTORIES].some((directory) => schemaFile.includes(`${import_path.default.sep}${directory}${import_path.default.sep}`))) {
|
|
644
|
+
continue;
|
|
645
|
+
}
|
|
646
|
+
const schema = loadJson(schemaFile);
|
|
647
|
+
if (typeof schema.$id !== "string") continue;
|
|
648
|
+
const previous = schemasById.get(schema.$id);
|
|
649
|
+
if (previous) {
|
|
650
|
+
if (!(0, import_node_util.isDeepStrictEqual)(previous, schema)) {
|
|
651
|
+
throw new import_errors.ConfigurationError("Canonical validation requires unambiguous schema identities", "schemaRoot");
|
|
652
|
+
}
|
|
653
|
+
continue;
|
|
654
|
+
}
|
|
655
|
+
schemasById.set(schema.$id, schema);
|
|
656
|
+
}
|
|
657
|
+
if (schemasById.size > 0) ajv.addSchema([...schemasById.values()]);
|
|
658
|
+
state.canonicalAjv = ajv;
|
|
659
|
+
return ajv;
|
|
660
|
+
}
|
|
605
661
|
function normalizeSchemaRef(schemaRef) {
|
|
606
662
|
const trimmed = schemaRef.replace(/^\/+/, "");
|
|
607
663
|
if (trimmed.length === 0) return void 0;
|
|
@@ -891,6 +947,7 @@ function cloneJsonValue(value) {
|
|
|
891
947
|
0 && (module.exports = {
|
|
892
948
|
SCHEMA_FILENAME_SUFFIX,
|
|
893
949
|
_resetValidationLoader,
|
|
950
|
+
getCanonicalToolValidatorForVersion,
|
|
894
951
|
getMcpProfileInputSchema,
|
|
895
952
|
getMcpToolSchema,
|
|
896
953
|
getMcpToolSummary,
|
|
@@ -385,6 +385,7 @@ function ensureInit(version) {
|
|
|
385
385
|
addFormats(ajv);
|
|
386
386
|
const state = {
|
|
387
387
|
ajv,
|
|
388
|
+
canonicalValidators: /* @__PURE__ */ new Map(),
|
|
388
389
|
fileIndex: buildFileIndex(root),
|
|
389
390
|
validators: /* @__PURE__ */ new Map(),
|
|
390
391
|
rawSchemas: /* @__PURE__ */ new Map(),
|
|
@@ -438,6 +439,13 @@ function getValidator(toolName, direction, version = ADCP_VERSION) {
|
|
|
438
439
|
s.validators.set(cacheKey, compiled);
|
|
439
440
|
return compiled;
|
|
440
441
|
}
|
|
442
|
+
function authoredToolSchemaFile(state, indexedFile) {
|
|
443
|
+
const bundledRoot = path.join(state.root, "bundled");
|
|
444
|
+
const relative = path.relative(bundledRoot, indexedFile);
|
|
445
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) return indexedFile;
|
|
446
|
+
const authoredFile = path.join(state.root, relative);
|
|
447
|
+
return existsSync(authoredFile) ? authoredFile : indexedFile;
|
|
448
|
+
}
|
|
441
449
|
function getToolSchemaDocument(toolName, direction, version = ADCP_VERSION) {
|
|
442
450
|
const state = ensureInit(version);
|
|
443
451
|
const file = state.fileIndex.get(`${toolName}::${direction}`);
|
|
@@ -495,7 +503,7 @@ function getSchemaDocumentByRef(schemaRef, version = ADCP_VERSION) {
|
|
|
495
503
|
schema: readDocument(normalized)
|
|
496
504
|
};
|
|
497
505
|
}
|
|
498
|
-
function getSchemaValidatorByRef(schemaRef, version = ADCP_VERSION, keywords) {
|
|
506
|
+
function getSchemaValidatorByRef(schemaRef, version = ADCP_VERSION, keywords, options = {}) {
|
|
499
507
|
const bundleKey = resolveBundleKey(version);
|
|
500
508
|
const root = resolveSchemaRoot(version);
|
|
501
509
|
const normalized = normalizeSchemaRef(schemaRef);
|
|
@@ -509,17 +517,19 @@ function getSchemaValidatorByRef(schemaRef, version = ADCP_VERSION, keywords) {
|
|
|
509
517
|
}
|
|
510
518
|
cache = entry.validators;
|
|
511
519
|
}
|
|
512
|
-
const
|
|
520
|
+
const allErrors = options.allErrors ?? false;
|
|
521
|
+
const cacheKey = `${stateCacheKey(bundleKey, root)}\0schema-ref::${normalized}\0all-errors::${allErrors}`;
|
|
513
522
|
const cached = cache.get(cacheKey);
|
|
514
523
|
if (cached) return cached;
|
|
515
524
|
const file = path.join(root, normalized);
|
|
516
525
|
if (!existsSync(file)) return void 0;
|
|
517
526
|
const ajv = new Ajv({
|
|
518
527
|
strict: false,
|
|
519
|
-
// Schema-ref validators process remote webhook payloads.
|
|
520
|
-
// first violation so deeply nested hostile input cannot
|
|
521
|
-
// collection into CPU or memory exhaustion.
|
|
522
|
-
|
|
528
|
+
// Schema-ref validators process remote webhook payloads. By default they
|
|
529
|
+
// fail on the first violation so deeply nested hostile input cannot
|
|
530
|
+
// amplify error collection into CPU or memory exhaustion. Canonical
|
|
531
|
+
// offline validators explicitly opt into complete developer diagnostics.
|
|
532
|
+
allErrors,
|
|
523
533
|
allowUnionTypes: true
|
|
524
534
|
});
|
|
525
535
|
addFormats(ajv);
|
|
@@ -534,10 +544,10 @@ function getSchemaValidatorByRef(schemaRef, version = ADCP_VERSION, keywords) {
|
|
|
534
544
|
}
|
|
535
545
|
if (schemaFile === file) continue;
|
|
536
546
|
const schema = loadJson(schemaFile);
|
|
537
|
-
if (keywords && typeof schema.$id === "string") {
|
|
547
|
+
if ((keywords || allErrors) && typeof schema.$id === "string") {
|
|
538
548
|
const previous = schema.$id === rawSchema.$id ? rawSchema : registeredIds.get(schema.$id);
|
|
539
549
|
if (previous && !isDeepStrictEqual(previous, schema)) {
|
|
540
|
-
throw new ConfigurationError("Schema
|
|
550
|
+
throw new ConfigurationError("Schema validation requires unambiguous schema identities", "schemaRoot");
|
|
541
551
|
}
|
|
542
552
|
if (schema.$id === rawSchema.$id) continue;
|
|
543
553
|
}
|
|
@@ -553,6 +563,51 @@ function getSchemaValidatorByRef(schemaRef, version = ADCP_VERSION, keywords) {
|
|
|
553
563
|
cache.set(cacheKey, compiled);
|
|
554
564
|
return compiled;
|
|
555
565
|
}
|
|
566
|
+
function getCanonicalToolValidatorForVersion(toolName, direction, version = ADCP_VERSION) {
|
|
567
|
+
const state = ensureInit(version);
|
|
568
|
+
const cacheKey = `${toolName}::${direction}`;
|
|
569
|
+
const cached = state.canonicalValidators.get(cacheKey);
|
|
570
|
+
if (cached) return cached;
|
|
571
|
+
const indexedFile = state.fileIndex.get(cacheKey);
|
|
572
|
+
if (!indexedFile) return void 0;
|
|
573
|
+
const file = authoredToolSchemaFile(state, indexedFile);
|
|
574
|
+
const rawSchema = loadJson(file);
|
|
575
|
+
const ajv = ensureCanonicalAjv(state);
|
|
576
|
+
const existing = typeof rawSchema.$id === "string" ? ajv.getSchema(rawSchema.$id) : void 0;
|
|
577
|
+
const fromBundled = file.includes(`${path.sep}bundled${path.sep}`);
|
|
578
|
+
const compiled = existing ?? ajv.compile(fromBundled ? stripNestedIds(rawSchema) : rawSchema);
|
|
579
|
+
state.canonicalValidators.set(cacheKey, compiled);
|
|
580
|
+
return compiled;
|
|
581
|
+
}
|
|
582
|
+
function ensureCanonicalAjv(state) {
|
|
583
|
+
if (state.canonicalAjv) return state.canonicalAjv;
|
|
584
|
+
const ajv = new Ajv({
|
|
585
|
+
strict: false,
|
|
586
|
+
allErrors: true,
|
|
587
|
+
allowUnionTypes: true
|
|
588
|
+
});
|
|
589
|
+
addFormats(ajv);
|
|
590
|
+
const schemasById = /* @__PURE__ */ new Map();
|
|
591
|
+
for (const schemaFile of walkJsonFiles(state.root)) {
|
|
592
|
+
if (schemaFile.includes(`${path.sep}bundled${path.sep}`)) continue;
|
|
593
|
+
if ([...TRANSPORT_PROJECTION_DIRECTORIES].some((directory) => schemaFile.includes(`${path.sep}${directory}${path.sep}`))) {
|
|
594
|
+
continue;
|
|
595
|
+
}
|
|
596
|
+
const schema = loadJson(schemaFile);
|
|
597
|
+
if (typeof schema.$id !== "string") continue;
|
|
598
|
+
const previous = schemasById.get(schema.$id);
|
|
599
|
+
if (previous) {
|
|
600
|
+
if (!isDeepStrictEqual(previous, schema)) {
|
|
601
|
+
throw new ConfigurationError("Canonical validation requires unambiguous schema identities", "schemaRoot");
|
|
602
|
+
}
|
|
603
|
+
continue;
|
|
604
|
+
}
|
|
605
|
+
schemasById.set(schema.$id, schema);
|
|
606
|
+
}
|
|
607
|
+
if (schemasById.size > 0) ajv.addSchema([...schemasById.values()]);
|
|
608
|
+
state.canonicalAjv = ajv;
|
|
609
|
+
return ajv;
|
|
610
|
+
}
|
|
556
611
|
function normalizeSchemaRef(schemaRef) {
|
|
557
612
|
const trimmed = schemaRef.replace(/^\/+/, "");
|
|
558
613
|
if (trimmed.length === 0) return void 0;
|
|
@@ -841,6 +896,7 @@ function cloneJsonValue(value) {
|
|
|
841
896
|
export {
|
|
842
897
|
SCHEMA_FILENAME_SUFFIX,
|
|
843
898
|
_resetValidationLoader,
|
|
899
|
+
getCanonicalToolValidatorForVersion,
|
|
844
900
|
getMcpProfileInputSchema,
|
|
845
901
|
getMcpToolSchema,
|
|
846
902
|
getMcpToolSummary,
|
package/dist/lib/version.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "14.0.0-rc.
|
|
4
|
+
export declare const LIBRARY_VERSION = "14.0.0-rc.39";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -19,7 +19,7 @@ export declare const ADCP_MAJOR_VERSION = 3;
|
|
|
19
19
|
* this list by hand; bumping the AdCP pin via `npm run sync-version`
|
|
20
20
|
* extends it.
|
|
21
21
|
*/
|
|
22
|
-
export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v2.5", "v2.6", "v3", "3.0.0
|
|
22
|
+
export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.2.0-rc.3", "3.2-rc.3"];
|
|
23
23
|
/**
|
|
24
24
|
* String literal union of every AdCP version the SDK formally supports.
|
|
25
25
|
*
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "14.0.0-rc.
|
|
36
|
+
readonly library: "14.0.0-rc.39";
|
|
37
37
|
readonly adcp: "3.2.0-rc.3";
|
|
38
|
-
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0
|
|
39
|
-
readonly generatedAt: "2026-09-
|
|
38
|
+
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.2.0-rc.3", "3.2-rc.3"];
|
|
39
|
+
readonly generatedAt: "2026-09-18T19:37:01.879Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "14.0.0-rc.
|
|
4
|
+
export declare const LIBRARY_VERSION = "14.0.0-rc.39";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -19,7 +19,7 @@ export declare const ADCP_MAJOR_VERSION = 3;
|
|
|
19
19
|
* this list by hand; bumping the AdCP pin via `npm run sync-version`
|
|
20
20
|
* extends it.
|
|
21
21
|
*/
|
|
22
|
-
export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v2.5", "v2.6", "v3", "3.0.0
|
|
22
|
+
export declare const COMPATIBLE_ADCP_VERSIONS: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.2.0-rc.3", "3.2-rc.3"];
|
|
23
23
|
/**
|
|
24
24
|
* String literal union of every AdCP version the SDK formally supports.
|
|
25
25
|
*
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "14.0.0-rc.
|
|
36
|
+
readonly library: "14.0.0-rc.39";
|
|
37
37
|
readonly adcp: "3.2.0-rc.3";
|
|
38
|
-
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0
|
|
39
|
-
readonly generatedAt: "2026-09-
|
|
38
|
+
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.2.0-rc.3", "3.2-rc.3"];
|
|
39
|
+
readonly generatedAt: "2026-09-18T19:37:01.879Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
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) {
|