@adcp/sdk 15.5.0 → 15.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +15 -0
  2. package/dist/lib/auth/oauth/index.d.mts +1 -0
  3. package/dist/lib/auth/oauth/index.d.ts +1 -0
  4. package/dist/lib/auth/oauth/index.js +5 -0
  5. package/dist/lib/auth/oauth/index.mjs +3 -0
  6. package/dist/lib/auth/oauth/pending-web-flow.d.mts +16 -0
  7. package/dist/lib/auth/oauth/pending-web-flow.d.ts +16 -0
  8. package/dist/lib/auth/oauth/pending-web-flow.js +66 -0
  9. package/dist/lib/auth/oauth/pending-web-flow.mjs +41 -0
  10. package/dist/lib/auth/oauth/web-flow.js +3 -3
  11. package/dist/lib/auth/oauth/web-flow.mjs +3 -3
  12. package/dist/lib/registry/types.generated.d.mts +63 -1
  13. package/dist/lib/registry/types.generated.d.ts +63 -1
  14. package/dist/lib/reporting/azure/index.d.mts +26 -0
  15. package/dist/lib/reporting/azure/index.d.ts +26 -0
  16. package/dist/lib/reporting/azure/index.js +247 -0
  17. package/dist/lib/reporting/azure/index.mjs +230 -0
  18. package/dist/lib/reporting/bigquery/index.d.mts +127 -0
  19. package/dist/lib/reporting/bigquery/index.d.ts +127 -0
  20. package/dist/lib/reporting/bigquery/index.js +379 -0
  21. package/dist/lib/reporting/bigquery/index.mjs +341 -0
  22. package/dist/lib/reporting/ledger/postgres.d.mts +10 -0
  23. package/dist/lib/reporting/ledger/postgres.d.ts +10 -0
  24. package/dist/lib/reporting/ledger/postgres.js +23 -2
  25. package/dist/lib/reporting/ledger/postgres.mjs +23 -2
  26. package/dist/lib/reporting/ledger/row-storage-object.js +31 -8
  27. package/dist/lib/reporting/ledger/row-storage-object.mjs +32 -9
  28. package/dist/lib/reporting/ledger/row-storage-provider-io.d.mts +0 -7
  29. package/dist/lib/reporting/ledger/row-storage-provider-io.d.ts +0 -7
  30. package/dist/lib/reporting/ledger/row-storage-provider-io.js +0 -10
  31. package/dist/lib/reporting/ledger/row-storage-provider-io.mjs +0 -8
  32. package/dist/lib/reporting/s3/index.d.mts +29 -0
  33. package/dist/lib/reporting/s3/index.d.ts +29 -0
  34. package/dist/lib/reporting/s3/index.js +324 -0
  35. package/dist/lib/reporting/s3/index.mjs +317 -0
  36. package/dist/lib/reporting/service/index.d.mts +3 -1
  37. package/dist/lib/reporting/service/index.d.ts +3 -1
  38. package/dist/lib/reporting/service/index.js +1 -0
  39. package/dist/lib/reporting/service/index.mjs +1 -0
  40. package/dist/lib/schemas/browser.d.mts +14 -0
  41. package/dist/lib/schemas/browser.d.ts +14 -0
  42. package/dist/lib/schemas/browser.js +48 -0
  43. package/dist/lib/schemas/browser.mjs +20 -0
  44. package/dist/lib/schemas/index.d.mts +2 -120
  45. package/dist/lib/schemas/index.d.ts +2 -120
  46. package/dist/lib/schemas/index.js +3 -11
  47. package/dist/lib/schemas/index.mjs +1 -9
  48. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  49. package/dist/lib/testing/index.d.mts +1 -0
  50. package/dist/lib/testing/index.d.ts +1 -0
  51. package/dist/lib/testing/index.js +3 -0
  52. package/dist/lib/testing/index.mjs +2 -0
  53. package/dist/lib/testing/pending-web-flow-store.d.mts +20 -0
  54. package/dist/lib/testing/pending-web-flow-store.d.ts +20 -0
  55. package/dist/lib/testing/pending-web-flow-store.js +132 -0
  56. package/dist/lib/testing/pending-web-flow-store.mjs +98 -0
  57. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  58. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  59. package/dist/lib/validation/get-products-request.d.mts +122 -0
  60. package/dist/lib/validation/get-products-request.d.ts +122 -0
  61. package/dist/lib/validation/get-products-request.js +39 -0
  62. package/dist/lib/validation/get-products-request.mjs +14 -0
  63. package/dist/lib/version.d.mts +3 -3
  64. package/dist/lib/version.d.ts +3 -3
  65. package/dist/lib/version.js +3 -3
  66. package/dist/lib/version.mjs +3 -3
  67. package/docs/TYPE-SUMMARY.md +1 -1
  68. package/docs/ZOD-SCHEMAS.md +13 -1
  69. package/docs/guides/OAUTH-ISSUER-BINDING.md +6 -0
  70. package/docs/guides/REPORTING-LEDGER.md +165 -0
  71. package/docs/guides/REPORTING-OPERATIONS.md +76 -1
  72. package/docs/guides/WEB-OAUTH.md +48 -1
  73. package/docs/llms.txt +1 -1
  74. package/docs/migration-14.x-rc-worksheet.md +6 -4
  75. package/package.json +64 -1
@@ -0,0 +1,122 @@
1
+ import { z } from 'zod';
2
+ import type { CanonicalGetProductsRequest } from '../v2/projection/creative-delivery.mjs';
3
+ type LooseObjectShapeFor<T extends object> = {
4
+ [K in keyof T]-?: undefined extends T[K] ? z.ZodOptional<z.ZodType<Exclude<T[K], undefined>, Exclude<T[K], undefined>>> : z.ZodType<T[K], T[K]>;
5
+ };
6
+ type ZodShapeOutput<U extends z.core.$ZodShape> = {
7
+ [K in keyof U as undefined extends z.output<U[K]> ? never : K]: z.output<U[K]>;
8
+ } & {
9
+ [K in keyof U as undefined extends z.output<U[K]> ? K : never]?: z.output<U[K]>;
10
+ };
11
+ /** Portable loose-object facade retained across adopter declaration emit. */
12
+ export type LooseObjectSchemaFor<T extends object> = {
13
+ extend<U extends z.core.$ZodShape>(shape: U): LooseObjectSchemaFor<Omit<T, keyof U> & ZodShapeOutput<U>>;
14
+ } & z.ZodObject<LooseObjectShapeFor<T>, z.core.$loose> & z.ZodType<T & Record<string, unknown>, T & Record<string, unknown>>;
15
+ /** Wire-compatible request schema, including the legacy `format_ids` selector. */
16
+ export declare const LegacyGetProductsRequestSchema: z.ZodObject<{
17
+ adcp_version: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
18
+ adcp_major_version: z.ZodOptional<z.ZodType<number, number, z.core.$ZodTypeInternals<number, number>>>;
19
+ idempotency_key: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
20
+ buying_mode: z.ZodType<"brief" | "wholesale" | "refine", "brief" | "wholesale" | "refine", z.core.$ZodTypeInternals<"brief" | "wholesale" | "refine", "brief" | "wholesale" | "refine">>;
21
+ brief: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
22
+ refine: z.ZodOptional<z.ZodType<({
23
+ scope: "request";
24
+ ask: string;
25
+ } | {
26
+ scope: "product";
27
+ product_id: string;
28
+ action?: "include" | "omit" | "more_like_this";
29
+ ask?: string;
30
+ } | {
31
+ scope: "proposal";
32
+ proposal_id: string;
33
+ action?: "include" | "omit" | "finalize";
34
+ ask?: string;
35
+ })[], ({
36
+ scope: "request";
37
+ ask: string;
38
+ } | {
39
+ scope: "product";
40
+ product_id: string;
41
+ action?: "include" | "omit" | "more_like_this";
42
+ ask?: string;
43
+ } | {
44
+ scope: "proposal";
45
+ proposal_id: string;
46
+ action?: "include" | "omit" | "finalize";
47
+ ask?: string;
48
+ })[], z.core.$ZodTypeInternals<({
49
+ scope: "request";
50
+ ask: string;
51
+ } | {
52
+ scope: "product";
53
+ product_id: string;
54
+ action?: "include" | "omit" | "more_like_this";
55
+ ask?: string;
56
+ } | {
57
+ scope: "proposal";
58
+ proposal_id: string;
59
+ action?: "include" | "omit" | "finalize";
60
+ ask?: string;
61
+ })[], ({
62
+ scope: "request";
63
+ ask: string;
64
+ } | {
65
+ scope: "product";
66
+ product_id: string;
67
+ action?: "include" | "omit" | "more_like_this";
68
+ ask?: string;
69
+ } | {
70
+ scope: "proposal";
71
+ proposal_id: string;
72
+ action?: "include" | "omit" | "finalize";
73
+ ask?: string;
74
+ })[]>>>;
75
+ brand: z.ZodOptional<z.ZodType<import("../index.mjs").BrandReference, import("../index.mjs").BrandReference, z.core.$ZodTypeInternals<import("../index.mjs").BrandReference, import("../index.mjs").BrandReference>>>;
76
+ acceptance_context: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").AcceptanceContext, import("../types/tools.generated.mjs").AcceptanceContext, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").AcceptanceContext, import("../types/tools.generated.mjs").AcceptanceContext>>>;
77
+ catalog: z.ZodOptional<z.ZodType<import("../index.mjs").Catalog, import("../index.mjs").Catalog, z.core.$ZodTypeInternals<import("../index.mjs").Catalog, import("../index.mjs").Catalog>>>;
78
+ account: z.ZodOptional<z.ZodType<import("../index.mjs").AccountReference, import("../index.mjs").AccountReference, z.core.$ZodTypeInternals<import("../index.mjs").AccountReference, import("../index.mjs").AccountReference>>>;
79
+ preferred_delivery_types: z.ZodOptional<z.ZodType<import("../types/core.generated.mjs").DeliveryType[], import("../types/core.generated.mjs").DeliveryType[], z.core.$ZodTypeInternals<import("../types/core.generated.mjs").DeliveryType[], import("../types/core.generated.mjs").DeliveryType[]>>>;
80
+ filters: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").ProductFilters, import("../types/tools.generated.mjs").ProductFilters, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").ProductFilters, import("../types/tools.generated.mjs").ProductFilters>>>;
81
+ targeting_overlay: z.ZodOptional<z.ZodType<import("../index.mjs").TargetingOverlay, import("../index.mjs").TargetingOverlay, z.core.$ZodTypeInternals<import("../index.mjs").TargetingOverlay, import("../index.mjs").TargetingOverlay>>>;
82
+ media_buy_frequency_cap: z.ZodOptional<z.ZodType<{
83
+ suppress?: import("../index.mjs").Duration;
84
+ suppress_minutes?: number;
85
+ max_impressions?: number;
86
+ per?: import("../index.mjs").ReachUnit;
87
+ window?: import("../index.mjs").Duration;
88
+ }, {
89
+ suppress?: import("../index.mjs").Duration;
90
+ suppress_minutes?: number;
91
+ max_impressions?: number;
92
+ per?: import("../index.mjs").ReachUnit;
93
+ window?: import("../index.mjs").Duration;
94
+ }, z.core.$ZodTypeInternals<{
95
+ suppress?: import("../index.mjs").Duration;
96
+ suppress_minutes?: number;
97
+ max_impressions?: number;
98
+ per?: import("../index.mjs").ReachUnit;
99
+ window?: import("../index.mjs").Duration;
100
+ }, {
101
+ suppress?: import("../index.mjs").Duration;
102
+ suppress_minutes?: number;
103
+ max_impressions?: number;
104
+ per?: import("../index.mjs").ReachUnit;
105
+ window?: import("../index.mjs").Duration;
106
+ }>>>;
107
+ required_overlay_support: z.ZodOptional<z.ZodType<import("../types/core.generated.mjs").TargetingOverlayRequirements, import("../types/core.generated.mjs").TargetingOverlayRequirements, z.core.$ZodTypeInternals<import("../types/core.generated.mjs").TargetingOverlayRequirements, import("../types/core.generated.mjs").TargetingOverlayRequirements>>>;
108
+ required_media_buy_support: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements, import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements, import("../types/tools.generated.mjs").ProductMediaBuySupportRequirements>>>;
109
+ property_list: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").PropertyListReference, import("../types/tools.generated.mjs").PropertyListReference, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").PropertyListReference, import("../types/tools.generated.mjs").PropertyListReference>>>;
110
+ fields: z.ZodOptional<z.ZodType<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], z.core.$ZodTypeInternals<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[]>>>;
111
+ time_budget: z.ZodOptional<z.ZodType<import("../index.mjs").Duration, import("../index.mjs").Duration, z.core.$ZodTypeInternals<import("../index.mjs").Duration, import("../index.mjs").Duration>>>;
112
+ push_notification_config: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").PushNotificationConfig, import("../types/tools.generated.mjs").PushNotificationConfig, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").PushNotificationConfig, import("../types/tools.generated.mjs").PushNotificationConfig>>>;
113
+ pagination: z.ZodOptional<z.ZodType<import("../index.mjs").PaginationRequest, import("../index.mjs").PaginationRequest, z.core.$ZodTypeInternals<import("../index.mjs").PaginationRequest, import("../index.mjs").PaginationRequest>>>;
114
+ if_wholesale_feed_version: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
115
+ if_pricing_version: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
116
+ context: z.ZodOptional<z.ZodType<import("../types/tools.generated.mjs").ContextObject, import("../types/tools.generated.mjs").ContextObject, z.core.$ZodTypeInternals<import("../types/tools.generated.mjs").ContextObject, import("../types/tools.generated.mjs").ContextObject>>>;
117
+ required_policies: z.ZodOptional<z.ZodType<string[], string[], z.core.$ZodTypeInternals<string[], string[]>>>;
118
+ ext: z.ZodOptional<z.ZodType<import("../index.mjs").ExtensionObject, import("../index.mjs").ExtensionObject, z.core.$ZodTypeInternals<import("../index.mjs").ExtensionObject, import("../index.mjs").ExtensionObject>>>;
119
+ }, z.core.$loose> & z.ZodType<import("../index.mjs").LegacyGetProductsRequest & Record<string, unknown>, import("../index.mjs").LegacyGetProductsRequest & Record<string, unknown>, z.core.$ZodTypeInternals<import("../index.mjs").LegacyGetProductsRequest & Record<string, unknown>, import("../index.mjs").LegacyGetProductsRequest & Record<string, unknown>>>;
120
+ /** Primary request schema; legacy `format_ids` selection is rejected. */
121
+ export declare const GetProductsRequestSchema: LooseObjectSchemaFor<CanonicalGetProductsRequest>;
122
+ export {};
@@ -0,0 +1,122 @@
1
+ import { z } from 'zod';
2
+ import type { CanonicalGetProductsRequest } from '../v2/projection/creative-delivery';
3
+ type LooseObjectShapeFor<T extends object> = {
4
+ [K in keyof T]-?: undefined extends T[K] ? z.ZodOptional<z.ZodType<Exclude<T[K], undefined>, Exclude<T[K], undefined>>> : z.ZodType<T[K], T[K]>;
5
+ };
6
+ type ZodShapeOutput<U extends z.core.$ZodShape> = {
7
+ [K in keyof U as undefined extends z.output<U[K]> ? never : K]: z.output<U[K]>;
8
+ } & {
9
+ [K in keyof U as undefined extends z.output<U[K]> ? K : never]?: z.output<U[K]>;
10
+ };
11
+ /** Portable loose-object facade retained across adopter declaration emit. */
12
+ export type LooseObjectSchemaFor<T extends object> = {
13
+ extend<U extends z.core.$ZodShape>(shape: U): LooseObjectSchemaFor<Omit<T, keyof U> & ZodShapeOutput<U>>;
14
+ } & z.ZodObject<LooseObjectShapeFor<T>, z.core.$loose> & z.ZodType<T & Record<string, unknown>, T & Record<string, unknown>>;
15
+ /** Wire-compatible request schema, including the legacy `format_ids` selector. */
16
+ export declare const LegacyGetProductsRequestSchema: z.ZodObject<{
17
+ adcp_version: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
18
+ adcp_major_version: z.ZodOptional<z.ZodType<number, number, z.core.$ZodTypeInternals<number, number>>>;
19
+ idempotency_key: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
20
+ buying_mode: z.ZodType<"brief" | "wholesale" | "refine", "brief" | "wholesale" | "refine", z.core.$ZodTypeInternals<"brief" | "wholesale" | "refine", "brief" | "wholesale" | "refine">>;
21
+ brief: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
22
+ refine: z.ZodOptional<z.ZodType<({
23
+ scope: "request";
24
+ ask: string;
25
+ } | {
26
+ scope: "product";
27
+ product_id: string;
28
+ action?: "include" | "omit" | "more_like_this";
29
+ ask?: string;
30
+ } | {
31
+ scope: "proposal";
32
+ proposal_id: string;
33
+ action?: "include" | "omit" | "finalize";
34
+ ask?: string;
35
+ })[], ({
36
+ scope: "request";
37
+ ask: string;
38
+ } | {
39
+ scope: "product";
40
+ product_id: string;
41
+ action?: "include" | "omit" | "more_like_this";
42
+ ask?: string;
43
+ } | {
44
+ scope: "proposal";
45
+ proposal_id: string;
46
+ action?: "include" | "omit" | "finalize";
47
+ ask?: string;
48
+ })[], z.core.$ZodTypeInternals<({
49
+ scope: "request";
50
+ ask: string;
51
+ } | {
52
+ scope: "product";
53
+ product_id: string;
54
+ action?: "include" | "omit" | "more_like_this";
55
+ ask?: string;
56
+ } | {
57
+ scope: "proposal";
58
+ proposal_id: string;
59
+ action?: "include" | "omit" | "finalize";
60
+ ask?: string;
61
+ })[], ({
62
+ scope: "request";
63
+ ask: string;
64
+ } | {
65
+ scope: "product";
66
+ product_id: string;
67
+ action?: "include" | "omit" | "more_like_this";
68
+ ask?: string;
69
+ } | {
70
+ scope: "proposal";
71
+ proposal_id: string;
72
+ action?: "include" | "omit" | "finalize";
73
+ ask?: string;
74
+ })[]>>>;
75
+ brand: z.ZodOptional<z.ZodType<import("..").BrandReference, import("..").BrandReference, z.core.$ZodTypeInternals<import("..").BrandReference, import("..").BrandReference>>>;
76
+ acceptance_context: z.ZodOptional<z.ZodType<import("../types/tools.generated").AcceptanceContext, import("../types/tools.generated").AcceptanceContext, z.core.$ZodTypeInternals<import("../types/tools.generated").AcceptanceContext, import("../types/tools.generated").AcceptanceContext>>>;
77
+ catalog: z.ZodOptional<z.ZodType<import("..").Catalog, import("..").Catalog, z.core.$ZodTypeInternals<import("..").Catalog, import("..").Catalog>>>;
78
+ account: z.ZodOptional<z.ZodType<import("..").AccountReference, import("..").AccountReference, z.core.$ZodTypeInternals<import("..").AccountReference, import("..").AccountReference>>>;
79
+ preferred_delivery_types: z.ZodOptional<z.ZodType<import("../types/core.generated").DeliveryType[], import("../types/core.generated").DeliveryType[], z.core.$ZodTypeInternals<import("../types/core.generated").DeliveryType[], import("../types/core.generated").DeliveryType[]>>>;
80
+ filters: z.ZodOptional<z.ZodType<import("../types/tools.generated").ProductFilters, import("../types/tools.generated").ProductFilters, z.core.$ZodTypeInternals<import("../types/tools.generated").ProductFilters, import("../types/tools.generated").ProductFilters>>>;
81
+ targeting_overlay: z.ZodOptional<z.ZodType<import("..").TargetingOverlay, import("..").TargetingOverlay, z.core.$ZodTypeInternals<import("..").TargetingOverlay, import("..").TargetingOverlay>>>;
82
+ media_buy_frequency_cap: z.ZodOptional<z.ZodType<{
83
+ suppress?: import("..").Duration;
84
+ suppress_minutes?: number;
85
+ max_impressions?: number;
86
+ per?: import("..").ReachUnit;
87
+ window?: import("..").Duration;
88
+ }, {
89
+ suppress?: import("..").Duration;
90
+ suppress_minutes?: number;
91
+ max_impressions?: number;
92
+ per?: import("..").ReachUnit;
93
+ window?: import("..").Duration;
94
+ }, z.core.$ZodTypeInternals<{
95
+ suppress?: import("..").Duration;
96
+ suppress_minutes?: number;
97
+ max_impressions?: number;
98
+ per?: import("..").ReachUnit;
99
+ window?: import("..").Duration;
100
+ }, {
101
+ suppress?: import("..").Duration;
102
+ suppress_minutes?: number;
103
+ max_impressions?: number;
104
+ per?: import("..").ReachUnit;
105
+ window?: import("..").Duration;
106
+ }>>>;
107
+ required_overlay_support: z.ZodOptional<z.ZodType<import("../types/core.generated").TargetingOverlayRequirements, import("../types/core.generated").TargetingOverlayRequirements, z.core.$ZodTypeInternals<import("../types/core.generated").TargetingOverlayRequirements, import("../types/core.generated").TargetingOverlayRequirements>>>;
108
+ required_media_buy_support: z.ZodOptional<z.ZodType<import("../types/tools.generated").ProductMediaBuySupportRequirements, import("../types/tools.generated").ProductMediaBuySupportRequirements, z.core.$ZodTypeInternals<import("../types/tools.generated").ProductMediaBuySupportRequirements, import("../types/tools.generated").ProductMediaBuySupportRequirements>>>;
109
+ property_list: z.ZodOptional<z.ZodType<import("../types/tools.generated").PropertyListReference, import("../types/tools.generated").PropertyListReference, z.core.$ZodTypeInternals<import("../types/tools.generated").PropertyListReference, import("../types/tools.generated").PropertyListReference>>>;
110
+ fields: z.ZodOptional<z.ZodType<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], z.core.$ZodTypeInternals<("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[], ("name" | "identity" | "forecast" | "description" | "publisher_properties" | "audience_evidence" | "product_id" | "channels" | "video_placement_types" | "audio_distribution_types" | "sponsored_placement_types" | "social_placement_surfaces" | "format_options" | "placements" | "delivery_type" | "exclusivity" | "pricing_options" | "reporting_capabilities" | "measurement_terms" | "performance_standards" | "catalog_types" | "signal_targeting_allowed" | "signal_targeting_rules" | "demographic_targeting" | "overlay_support" | "collections" | "collection_targeting_allowed" | "media_buy_support" | "audience_evidence_selections" | "max_optimization_goals" | "catalog_match" | "list_applications" | "brief_relevance" | "targeting_resolution" | "acceptance_policy_profile_ids" | "execution_requirements" | "expires_at" | "allowed_actions" | "product_card" | "format_ids" | "outcome_measurement" | "delivery_measurement" | "creative_policy" | "metric_optimization" | "conversion_tracking" | "data_provider_signals" | "included_signals" | "signal_targeting_options" | "installments" | "is_custom" | "product_card_detailed" | "enforced_policies" | "trusted_match")[]>>>;
111
+ time_budget: z.ZodOptional<z.ZodType<import("..").Duration, import("..").Duration, z.core.$ZodTypeInternals<import("..").Duration, import("..").Duration>>>;
112
+ push_notification_config: z.ZodOptional<z.ZodType<import("../types/tools.generated").PushNotificationConfig, import("../types/tools.generated").PushNotificationConfig, z.core.$ZodTypeInternals<import("../types/tools.generated").PushNotificationConfig, import("../types/tools.generated").PushNotificationConfig>>>;
113
+ pagination: z.ZodOptional<z.ZodType<import("..").PaginationRequest, import("..").PaginationRequest, z.core.$ZodTypeInternals<import("..").PaginationRequest, import("..").PaginationRequest>>>;
114
+ if_wholesale_feed_version: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
115
+ if_pricing_version: z.ZodOptional<z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
116
+ context: z.ZodOptional<z.ZodType<import("../types/tools.generated").ContextObject, import("../types/tools.generated").ContextObject, z.core.$ZodTypeInternals<import("../types/tools.generated").ContextObject, import("../types/tools.generated").ContextObject>>>;
117
+ required_policies: z.ZodOptional<z.ZodType<string[], string[], z.core.$ZodTypeInternals<string[], string[]>>>;
118
+ ext: z.ZodOptional<z.ZodType<import("..").ExtensionObject, import("..").ExtensionObject, z.core.$ZodTypeInternals<import("..").ExtensionObject, import("..").ExtensionObject>>>;
119
+ }, z.core.$loose> & z.ZodType<import("..").LegacyGetProductsRequest & Record<string, unknown>, import("..").LegacyGetProductsRequest & Record<string, unknown>, z.core.$ZodTypeInternals<import("..").LegacyGetProductsRequest & Record<string, unknown>, import("..").LegacyGetProductsRequest & Record<string, unknown>>>;
120
+ /** Primary request schema; legacy `format_ids` selection is rejected. */
121
+ export declare const GetProductsRequestSchema: LooseObjectSchemaFor<CanonicalGetProductsRequest>;
122
+ export {};
@@ -0,0 +1,39 @@
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 __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var get_products_request_exports = {};
20
+ __export(get_products_request_exports, {
21
+ GetProductsRequestSchema: () => GetProductsRequestSchema,
22
+ LegacyGetProductsRequestSchema: () => LegacyGetProductsRequestSchema
23
+ });
24
+ module.exports = __toCommonJS(get_products_request_exports);
25
+ var import_zod = require("zod");
26
+ var import_schemas = require('../types/schemas.generated.js');
27
+ var import_inline_enums = require('../types/inline-enums.generated.js');
28
+ const LegacyGetProductsRequestSchema = import_schemas.GetProductsRequestSchema;
29
+ const canonicalGetProductsFields = import_inline_enums.GetProductsRequest_FieldsValues.filter(
30
+ (field) => field !== "format_ids"
31
+ );
32
+ const GetProductsRequestSchema = import_schemas.GetProductsRequestSchema.safeExtend({
33
+ fields: import_zod.z.array(import_zod.z.enum(canonicalGetProductsFields)).optional()
34
+ });
35
+ // Annotate the CommonJS export names for ESM import in node:
36
+ 0 && (module.exports = {
37
+ GetProductsRequestSchema,
38
+ LegacyGetProductsRequestSchema
39
+ });
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ import { GetProductsRequestSchema as GeneratedGetProductsRequestSchema } from "../types/schemas.generated.mjs";
3
+ import { GetProductsRequest_FieldsValues } from "../types/inline-enums.generated.mjs";
4
+ const LegacyGetProductsRequestSchema = GeneratedGetProductsRequestSchema;
5
+ const canonicalGetProductsFields = GetProductsRequest_FieldsValues.filter(
6
+ (field) => field !== "format_ids"
7
+ );
8
+ const GetProductsRequestSchema = GeneratedGetProductsRequestSchema.safeExtend({
9
+ fields: z.array(z.enum(canonicalGetProductsFields)).optional()
10
+ });
11
+ export {
12
+ GetProductsRequestSchema,
13
+ LegacyGetProductsRequestSchema
14
+ };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AdCP SDK library version
3
3
  */
4
- export declare const LIBRARY_VERSION = "15.5.0";
4
+ export declare const LIBRARY_VERSION = "15.6.0";
5
5
  /**
6
6
  * AdCP specification version this library is built for
7
7
  */
@@ -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: "15.5.0";
36
+ readonly library: "15.6.0";
37
37
  readonly adcp: "3.2.3";
38
38
  readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2", "3.2.2", "3.2.3"];
39
- readonly generatedAt: "2026-10-09T04:52:03.760Z";
39
+ readonly generatedAt: "2026-10-09T11:44:03.363Z";
40
40
  };
41
41
  /**
42
42
  * Get the AdCP specification version this library is built for
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AdCP SDK library version
3
3
  */
4
- export declare const LIBRARY_VERSION = "15.5.0";
4
+ export declare const LIBRARY_VERSION = "15.6.0";
5
5
  /**
6
6
  * AdCP specification version this library is built for
7
7
  */
@@ -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: "15.5.0";
36
+ readonly library: "15.6.0";
37
37
  readonly adcp: "3.2.3";
38
38
  readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2", "3.2.2", "3.2.3"];
39
- readonly generatedAt: "2026-10-09T04:52:03.760Z";
39
+ readonly generatedAt: "2026-10-09T11:44:03.363Z";
40
40
  };
41
41
  /**
42
42
  * Get the AdCP specification version this library is built for
@@ -31,7 +31,7 @@ __export(version_exports, {
31
31
  toReleasePrecisionVersion: () => toReleasePrecisionVersion
32
32
  });
33
33
  module.exports = __toCommonJS(version_exports);
34
- const LIBRARY_VERSION = "15.5.0";
34
+ const LIBRARY_VERSION = "15.6.0";
35
35
  const ADCP_VERSION = "3.2.3";
36
36
  const ADCP_MAJOR_VERSION = 3;
37
37
  const COMPATIBLE_ADCP_VERSIONS = [
@@ -97,10 +97,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
97
97
  "3.2.3"
98
98
  ];
99
99
  const VERSION_INFO = {
100
- library: "15.5.0",
100
+ library: "15.6.0",
101
101
  adcp: "3.2.3",
102
102
  compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
103
- generatedAt: "2026-10-09T04:52:03.760Z"
103
+ generatedAt: "2026-10-09T11:44:03.363Z"
104
104
  };
105
105
  function getAdcpVersion() {
106
106
  return ADCP_VERSION;
@@ -1,4 +1,4 @@
1
- const LIBRARY_VERSION = "15.5.0";
1
+ const LIBRARY_VERSION = "15.6.0";
2
2
  const ADCP_VERSION = "3.2.3";
3
3
  const ADCP_MAJOR_VERSION = 3;
4
4
  const COMPATIBLE_ADCP_VERSIONS = [
@@ -64,10 +64,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
64
64
  "3.2.3"
65
65
  ];
66
66
  const VERSION_INFO = {
67
- library: "15.5.0",
67
+ library: "15.6.0",
68
68
  adcp: "3.2.3",
69
69
  compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
70
- generatedAt: "2026-10-09T04:52:03.760Z"
70
+ generatedAt: "2026-10-09T11:44:03.363Z"
71
71
  };
72
72
  function getAdcpVersion() {
73
73
  return ADCP_VERSION;
@@ -1,7 +1,7 @@
1
1
  # AdCP Type Summary
2
2
 
3
3
  > Generated at: 2026-10-09
4
- > @adcp/sdk v15.5.0
4
+ > @adcp/sdk v15.6.0
5
5
 
6
6
  Curated reference of the types that matter for using the AdCP client. For full generated types see `src/lib/types/tools.generated.ts` and `src/lib/types/core.generated.ts`.
7
7
 
@@ -20,6 +20,18 @@ if (result.success) {
20
20
  }
21
21
  ```
22
22
 
23
+ ### Browser / UI bundles
24
+
25
+ Browser widgets, dashboards, and forms should import runtime validators from `@adcp/sdk/schemas/browser`:
26
+
27
+ ```typescript
28
+ import { EventSourceHealthSchema } from '@adcp/sdk/schemas/browser';
29
+
30
+ const health = EventSourceHealthSchema.parse(rawHealth);
31
+ ```
32
+
33
+ This entry has no Node built-ins in its import graph and shares the Node entry's portable validators, including canonical and legacy get-products selectors. JSON Schema loading and tool registration helpers are available from `@adcp/sdk/schemas`. Importing one schema can still retain the full generated module; per-schema tree-shaking is tracked in [#3178](https://github.com/adcontextprotocol/adcp-client/issues/3178).
34
+
23
35
  ## Why Zod Schemas?
24
36
 
25
37
  - ✅ **Runtime validation** - Catch data issues at runtime, not just compile time
@@ -131,7 +143,7 @@ const authority = resolvePreviewAuthority({
131
143
  ```typescript
132
144
  import { useForm } from 'react-hook-form';
133
145
  import { zodResolver } from '@hookform/resolvers/zod';
134
- import { CreateMediaBuyRequestSchema } from '@adcp/sdk/schemas';
146
+ import { CreateMediaBuyRequestSchema } from '@adcp/sdk/schemas/browser';
135
147
 
136
148
  function MediaBuyForm() {
137
149
  const { register, handleSubmit } = useForm({
@@ -38,6 +38,12 @@ stage DCR privately and reconstruct for callback. Applications provide ownership
38
38
  and atomic generation replacement. No distributed refresh coordination,
39
39
  grant/client CAS or spent-grant cancellation: quiesce background callers for recovery.
40
40
 
41
+ Pending flows written by an older store that omitted `authorizationServerIssuer`
42
+ fail at callback with `oauth_issuer_required` and must restart sign-in. The SDK parser
43
+ can read these legacy rows, but cannot recreate their historical issuer trust.
44
+ Use the shared serializer and run `assertPendingWebFlowStoreRoundTrip` in CI to
45
+ catch dropped fields on upgrade; see [Web OAuth storage](WEB-OAUTH.md#storage-and-errors).
46
+
41
47
  Custom providers must preserve issuer in getters/saves. Upstream
42
48
  `ClientCredentialsProvider`, `PrivateKeyJwtProvider`, `StaticPrivateKeyJwtProvider`,
43
49
  `CrossAppAccessProvider` need independent `expectedIssuer`. Direct exchange/refresh