@wix/auto_sdk_blog_posts 1.0.175 → 1.0.177

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 (45) hide show
  1. package/build/cjs/index.d.ts +15 -11
  2. package/build/cjs/index.js +16 -11
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/cjs/index.typings.d.ts +55 -17
  5. package/build/cjs/index.typings.js +6 -6
  6. package/build/cjs/index.typings.js.map +1 -1
  7. package/build/cjs/meta.d.ts +26 -0
  8. package/build/cjs/meta.js.map +1 -1
  9. package/build/cjs/schemas.d.ts +84 -82
  10. package/build/cjs/schemas.js +159 -153
  11. package/build/cjs/schemas.js.map +1 -1
  12. package/build/es/index.d.mts +15 -11
  13. package/build/es/index.mjs +16 -11
  14. package/build/es/index.mjs.map +1 -1
  15. package/build/es/index.typings.d.mts +55 -17
  16. package/build/es/index.typings.mjs +6 -6
  17. package/build/es/index.typings.mjs.map +1 -1
  18. package/build/es/meta.d.mts +26 -0
  19. package/build/es/meta.mjs.map +1 -1
  20. package/build/es/schemas.d.mts +84 -82
  21. package/build/es/schemas.mjs +159 -153
  22. package/build/es/schemas.mjs.map +1 -1
  23. package/build/internal/cjs/index.d.ts +15 -11
  24. package/build/internal/cjs/index.js +16 -11
  25. package/build/internal/cjs/index.js.map +1 -1
  26. package/build/internal/cjs/index.typings.d.ts +55 -17
  27. package/build/internal/cjs/index.typings.js +6 -6
  28. package/build/internal/cjs/index.typings.js.map +1 -1
  29. package/build/internal/cjs/meta.d.ts +26 -0
  30. package/build/internal/cjs/meta.js.map +1 -1
  31. package/build/internal/cjs/schemas.d.ts +84 -82
  32. package/build/internal/cjs/schemas.js +159 -153
  33. package/build/internal/cjs/schemas.js.map +1 -1
  34. package/build/internal/es/index.d.mts +15 -11
  35. package/build/internal/es/index.mjs +16 -11
  36. package/build/internal/es/index.mjs.map +1 -1
  37. package/build/internal/es/index.typings.d.mts +55 -17
  38. package/build/internal/es/index.typings.mjs +6 -6
  39. package/build/internal/es/index.typings.mjs.map +1 -1
  40. package/build/internal/es/meta.d.mts +26 -0
  41. package/build/internal/es/meta.mjs.map +1 -1
  42. package/build/internal/es/schemas.d.mts +84 -82
  43. package/build/internal/es/schemas.mjs +159 -153
  44. package/build/internal/es/schemas.mjs.map +1 -1
  45. package/package.json +3 -3
@@ -43,89 +43,91 @@ declare const GetPostRequest: z.ZodObject<{
43
43
  }, z.core.$strip>>;
44
44
  }, z.core.$strip>;
45
45
  declare const GetPostResponse: z.ZodObject<{
46
- _id: z.ZodOptional<z.ZodString>;
47
- title: z.ZodOptional<z.ZodString>;
48
- excerpt: z.ZodOptional<z.ZodString>;
49
- contentText: z.ZodNullable<z.ZodOptional<z.ZodString>>;
50
- firstPublishedDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
51
- lastPublishedDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
52
- url: z.ZodOptional<z.ZodString>;
53
- slug: z.ZodOptional<z.ZodString>;
54
- featured: z.ZodOptional<z.ZodBoolean>;
55
- pinned: z.ZodOptional<z.ZodBoolean>;
56
- categoryIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
57
- memberId: z.ZodOptional<z.ZodString>;
58
- hashtags: z.ZodOptional<z.ZodArray<z.ZodString>>;
59
- commentingEnabled: z.ZodOptional<z.ZodBoolean>;
60
- minutesToRead: z.ZodOptional<z.ZodNumber>;
61
- heroImage: z.ZodOptional<z.ZodString>;
62
- tagIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
63
- relatedPostIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
- pricingPlanIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
- translationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
66
- language: z.ZodNullable<z.ZodOptional<z.ZodString>>;
67
- seoData: z.ZodOptional<z.ZodObject<{
68
- tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
69
- type: z.ZodOptional<z.ZodString>;
70
- props: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>>;
71
- meta: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>>;
72
- children: z.ZodOptional<z.ZodString>;
73
- custom: z.ZodOptional<z.ZodBoolean>;
74
- disabled: z.ZodOptional<z.ZodBoolean>;
75
- }, z.core.$strip>>>;
76
- settings: z.ZodOptional<z.ZodObject<{
77
- preventAutoRedirect: z.ZodOptional<z.ZodBoolean>;
78
- keywords: z.ZodOptional<z.ZodArray<z.ZodObject<{
79
- term: z.ZodOptional<z.ZodString>;
80
- isMain: z.ZodOptional<z.ZodBoolean>;
81
- origin: z.ZodNullable<z.ZodOptional<z.ZodString>>;
46
+ post: z.ZodOptional<z.ZodObject<{
47
+ _id: z.ZodOptional<z.ZodString>;
48
+ title: z.ZodOptional<z.ZodString>;
49
+ excerpt: z.ZodOptional<z.ZodString>;
50
+ contentText: z.ZodNullable<z.ZodOptional<z.ZodString>>;
51
+ firstPublishedDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
52
+ lastPublishedDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
53
+ url: z.ZodOptional<z.ZodString>;
54
+ slug: z.ZodOptional<z.ZodString>;
55
+ featured: z.ZodOptional<z.ZodBoolean>;
56
+ pinned: z.ZodOptional<z.ZodBoolean>;
57
+ categoryIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ memberId: z.ZodOptional<z.ZodString>;
59
+ hashtags: z.ZodOptional<z.ZodArray<z.ZodString>>;
60
+ commentingEnabled: z.ZodOptional<z.ZodBoolean>;
61
+ minutesToRead: z.ZodOptional<z.ZodNumber>;
62
+ heroImage: z.ZodOptional<z.ZodString>;
63
+ tagIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
+ relatedPostIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
+ pricingPlanIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ translationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
67
+ language: z.ZodNullable<z.ZodOptional<z.ZodString>>;
68
+ seoData: z.ZodOptional<z.ZodObject<{
69
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
70
+ type: z.ZodOptional<z.ZodString>;
71
+ props: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>>;
72
+ meta: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>>;
73
+ children: z.ZodOptional<z.ZodString>;
74
+ custom: z.ZodOptional<z.ZodBoolean>;
75
+ disabled: z.ZodOptional<z.ZodBoolean>;
82
76
  }, z.core.$strip>>>;
77
+ settings: z.ZodOptional<z.ZodObject<{
78
+ preventAutoRedirect: z.ZodOptional<z.ZodBoolean>;
79
+ keywords: z.ZodOptional<z.ZodArray<z.ZodObject<{
80
+ term: z.ZodOptional<z.ZodString>;
81
+ isMain: z.ZodOptional<z.ZodBoolean>;
82
+ origin: z.ZodNullable<z.ZodOptional<z.ZodString>>;
83
+ }, z.core.$strip>>>;
84
+ }, z.core.$strip>>;
83
85
  }, z.core.$strip>>;
86
+ contactId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
87
+ richContent: z.ZodOptional<z.ZodAny>;
88
+ preview: z.ZodOptional<z.ZodBoolean>;
89
+ moderationDetails: z.ZodOptional<z.ZodObject<{
90
+ submittedBy: z.ZodOptional<z.ZodString>;
91
+ submittedDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
92
+ status: z.ZodOptional<z.ZodEnum<{
93
+ UNKNOWN: "UNKNOWN";
94
+ APPROVED: "APPROVED";
95
+ REJECTED: "REJECTED";
96
+ }>>;
97
+ moderatedBy: z.ZodNullable<z.ZodOptional<z.ZodString>>;
98
+ moderationDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
99
+ }, z.core.$strip>>;
100
+ media: z.ZodOptional<z.ZodIntersection<z.ZodObject<{
101
+ displayed: z.ZodOptional<z.ZodBoolean>;
102
+ custom: z.ZodOptional<z.ZodBoolean>;
103
+ altText: z.ZodNullable<z.ZodOptional<z.ZodString>>;
104
+ }, z.core.$strip>, z.ZodXor<readonly [z.ZodObject<{
105
+ wixMedia: z.ZodOptional<z.ZodNever>;
106
+ embedMedia: z.ZodOptional<z.ZodNever>;
107
+ }, z.core.$strip>, z.ZodObject<{
108
+ embedMedia: z.ZodOptional<z.ZodNever>;
109
+ wixMedia: z.ZodObject<{
110
+ image: z.ZodOptional<z.ZodString>;
111
+ videoV2: z.ZodOptional<z.ZodString>;
112
+ }, z.core.$strip>;
113
+ }, z.core.$strip>, z.ZodObject<{
114
+ wixMedia: z.ZodOptional<z.ZodNever>;
115
+ embedMedia: z.ZodObject<{
116
+ thumbnail: z.ZodOptional<z.ZodObject<{
117
+ url: z.ZodOptional<z.ZodString>;
118
+ width: z.ZodOptional<z.ZodNumber>;
119
+ height: z.ZodOptional<z.ZodNumber>;
120
+ }, z.core.$strip>>;
121
+ video: z.ZodOptional<z.ZodObject<{
122
+ url: z.ZodOptional<z.ZodString>;
123
+ width: z.ZodOptional<z.ZodNumber>;
124
+ height: z.ZodOptional<z.ZodNumber>;
125
+ }, z.core.$strip>>;
126
+ }, z.core.$strip>;
127
+ }, z.core.$strip>]>>>;
128
+ hasUnpublishedChanges: z.ZodOptional<z.ZodBoolean>;
129
+ referenceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
84
130
  }, z.core.$strip>>;
85
- contactId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
86
- richContent: z.ZodOptional<z.ZodAny>;
87
- preview: z.ZodOptional<z.ZodBoolean>;
88
- moderationDetails: z.ZodOptional<z.ZodObject<{
89
- submittedBy: z.ZodOptional<z.ZodString>;
90
- submittedDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
91
- status: z.ZodOptional<z.ZodEnum<{
92
- UNKNOWN: "UNKNOWN";
93
- APPROVED: "APPROVED";
94
- REJECTED: "REJECTED";
95
- }>>;
96
- moderatedBy: z.ZodNullable<z.ZodOptional<z.ZodString>>;
97
- moderationDate: z.ZodNullable<z.ZodOptional<z.ZodDate>>;
98
- }, z.core.$strip>>;
99
- media: z.ZodOptional<z.ZodIntersection<z.ZodObject<{
100
- displayed: z.ZodOptional<z.ZodBoolean>;
101
- custom: z.ZodOptional<z.ZodBoolean>;
102
- altText: z.ZodNullable<z.ZodOptional<z.ZodString>>;
103
- }, z.core.$strip>, z.ZodXor<readonly [z.ZodObject<{
104
- wixMedia: z.ZodOptional<z.ZodNever>;
105
- embedMedia: z.ZodOptional<z.ZodNever>;
106
- }, z.core.$strip>, z.ZodObject<{
107
- embedMedia: z.ZodOptional<z.ZodNever>;
108
- wixMedia: z.ZodObject<{
109
- image: z.ZodOptional<z.ZodString>;
110
- videoV2: z.ZodOptional<z.ZodString>;
111
- }, z.core.$strip>;
112
- }, z.core.$strip>, z.ZodObject<{
113
- wixMedia: z.ZodOptional<z.ZodNever>;
114
- embedMedia: z.ZodObject<{
115
- thumbnail: z.ZodOptional<z.ZodObject<{
116
- url: z.ZodOptional<z.ZodString>;
117
- width: z.ZodOptional<z.ZodNumber>;
118
- height: z.ZodOptional<z.ZodNumber>;
119
- }, z.core.$strip>>;
120
- video: z.ZodOptional<z.ZodObject<{
121
- url: z.ZodOptional<z.ZodString>;
122
- width: z.ZodOptional<z.ZodNumber>;
123
- height: z.ZodOptional<z.ZodNumber>;
124
- }, z.core.$strip>>;
125
- }, z.core.$strip>;
126
- }, z.core.$strip>]>>>;
127
- hasUnpublishedChanges: z.ZodOptional<z.ZodBoolean>;
128
- referenceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
129
131
  }, z.core.$strip>;
130
132
  declare const GetPostBySlugRequest: z.ZodObject<{
131
133
  slug: z.ZodString;
@@ -464,11 +466,11 @@ declare const QueryPostsRequest: z.ZodObject<{
464
466
  fieldName: z.ZodOptional<z.ZodEnum<{
465
467
  slug: "slug";
466
468
  title: "title";
469
+ firstPublishedDate: "firstPublishedDate";
470
+ lastPublishedDate: "lastPublishedDate";
467
471
  featured: "featured";
468
472
  pinned: "pinned";
469
473
  commentingEnabled: "commentingEnabled";
470
- firstPublishedDate: "firstPublishedDate";
471
- lastPublishedDate: "lastPublishedDate";
472
474
  }>>;
473
475
  order: z.ZodOptional<z.ZodEnum<{
474
476
  ASC: "ASC";
@@ -62,7 +62,7 @@ var QueryPostCountStatsRequest = /* @__PURE__ */ z.object({
62
62
  timeZone: z.string().describe(
63
63
  "Time zone to use when calculating the start of the month.\n\n[UTC timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_offsets) format. For example, New York time zone is `-05`."
64
64
  ).min(3).max(100).optional().nullable()
65
- }).optional()
65
+ }).describe("Options specifying time frame, sort, and filter. ").optional()
66
66
  });
67
67
  var QueryPostCountStatsResponse = /* @__PURE__ */ z.object({
68
68
  stats: z.array(
@@ -79,7 +79,7 @@ var GetTotalPostsRequest = /* @__PURE__ */ z.object({
79
79
  language: z.string().describe(
80
80
  "Language filter.\n\n2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\nPass a language to receive the total amount of posts in that specified language."
81
81
  ).optional().nullable()
82
- }).optional()
82
+ }).describe("Language Options.").optional()
83
83
  });
84
84
  var GetTotalPostsResponse = /* @__PURE__ */ z.object({
85
85
  total: z.number().int().describe("Total amount of published posts.").min(0).optional()
@@ -99,161 +99,167 @@ var GetPostRequest = /* @__PURE__ */ z.object({
99
99
  "REFERENCE_ID"
100
100
  ])
101
101
  ).max(20).optional()
102
- }).optional()
102
+ }).describe("Options specifying which fields to return.").optional()
103
103
  });
104
104
  var GetPostResponse = /* @__PURE__ */ z.object({
105
- _id: z.string().describe("Post ID.").regex(
106
- /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
107
- "Must be a valid GUID"
108
- ).optional(),
109
- title: z.string().describe("Post title.").max(200).optional(),
110
- excerpt: z.string().describe(
111
- "Post excerpt.\nCan be selected by a site contributor. By default, it is extracted from the content text's first characters.\n\nMax: 500 characters"
112
- ).max(500).optional(),
113
- contentText: z.string().describe("The post's content in plain text.").max(4e5).optional().nullable(),
114
- firstPublishedDate: z.date().describe("Date the post was first published.").optional().nullable(),
115
- lastPublishedDate: z.date().describe("Date the post was last published.").optional().nullable(),
116
- url: z.string().describe("Post URL.").optional(),
117
- slug: z.string().describe("Post slug. For example, `'post-slug'`.").max(100).optional(),
118
- featured: z.boolean().describe("Whether the post is marked as featured.").optional(),
119
- pinned: z.boolean().describe(
120
- "Whether the post is pinned. If `true`, the post is placed at the top of the post list."
121
- ).optional(),
122
- categoryIds: z.array(z.string()).max(10).optional(),
123
- memberId: z.string().describe("Member ID of the post's owner.").regex(
124
- /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
125
- "Must be a valid GUID"
126
- ).optional(),
127
- hashtags: z.array(z.string()).max(100).optional(),
128
- commentingEnabled: z.boolean().describe("Whether commenting on the post is enabled.").optional(),
129
- minutesToRead: z.number().int().describe("Estimated reading time (calculated automatically).").optional(),
130
- heroImage: z.string().describe(
131
- "Image placed at the top of the blog page. Only displays on mobile devices."
132
- ).optional(),
133
- tagIds: z.array(z.string()).max(30).optional(),
134
- relatedPostIds: z.array(z.string()).max(3).optional(),
135
- pricingPlanIds: z.array(z.string()).max(100).optional(),
136
- translationId: z.string().describe(
137
- "ID of the translations of this post. All translations of a single post share the same `translationId`."
138
- ).regex(
139
- /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
140
- "Must be a valid GUID"
141
- ).optional().nullable(),
142
- language: z.string().describe(
143
- "Language the post is written in.\n\n2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format."
144
- ).optional().nullable(),
145
- seoData: z.object({
146
- tags: z.array(
147
- z.object({
148
- type: z.string().describe(
149
- "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
150
- ).optional(),
151
- props: z.record(z.string(), z.any()).describe(
152
- 'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
153
- ).optional().nullable(),
154
- meta: z.record(z.string(), z.any()).describe(
155
- 'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
156
- ).optional().nullable(),
157
- children: z.string().describe(
158
- "SEO tag inner content. For example, `<title> inner content </title>`."
159
- ).optional(),
160
- custom: z.boolean().describe(
161
- "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
162
- ).optional(),
163
- disabled: z.boolean().describe(
164
- "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
165
- ).optional()
166
- })
105
+ post: z.object({
106
+ _id: z.string().describe("Post ID.").regex(
107
+ /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
108
+ "Must be a valid GUID"
167
109
  ).optional(),
168
- settings: z.object({
169
- preventAutoRedirect: z.boolean().describe(
170
- "Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
171
- ).optional(),
172
- keywords: z.array(
173
- z.object({
174
- term: z.string().describe("Keyword value.").optional(),
175
- isMain: z.boolean().describe("Whether the keyword is the main focus keyword.").optional(),
176
- origin: z.string().describe(
177
- "The source that added the keyword terms to the SEO settings."
178
- ).max(1e3).optional().nullable()
179
- })
180
- ).max(5).optional()
181
- }).describe("SEO general settings.").optional()
182
- }).describe("SEO data.").optional(),
183
- contactId: z.string().describe(
184
- "Contact ID of the post's owner. See the Contacts API for more info."
185
- ).regex(
186
- /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
187
- "Must be a valid GUID"
188
- ).optional().nullable(),
189
- richContent: z.any().describe(
190
- 'Post rich content\n\n<widget src="https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component" plugins="image.gallery.video.audio.divider.linkButton.html.giphy.codeBlock.file.hashtag.lineSpacing.indent.link.textColor.textHighlight.heading.verticalEmbed.table.collapsibleList.poll" exampleid="72c23a25-524f-4f70-a260-4a2777b6f5d5">\n<a href="https://dev.wix.com/docs/ricos/api-reference/ricos-document">See Ricos document reference</a>\n</widget>'
191
- ).optional(),
192
- preview: z.boolean().describe(
193
- "Whether the returned content is a preview of premium content. Defaults to `false`.\nA preview displays a limited number of paragraphs of paid content to non-subscribed users."
194
- ).optional(),
195
- moderationDetails: z.object({
196
- submittedBy: z.string().describe(
197
- "Member ID of the person submitting the draft post for review."
198
- ).regex(
110
+ title: z.string().describe("Post title.").max(200).optional(),
111
+ excerpt: z.string().describe(
112
+ "Post excerpt.\nCan be selected by a site contributor. By default, it is extracted from the content text's first characters.\n\nMax: 500 characters"
113
+ ).max(500).optional(),
114
+ contentText: z.string().describe("The post's content in plain text.").max(4e5).optional().nullable(),
115
+ firstPublishedDate: z.date().describe("Date the post was first published.").optional().nullable(),
116
+ lastPublishedDate: z.date().describe("Date the post was last published.").optional().nullable(),
117
+ url: z.string().describe("Post URL.").optional(),
118
+ slug: z.string().describe("Post slug. For example, `'post-slug'`.").max(100).optional(),
119
+ featured: z.boolean().describe("Whether the post is marked as featured.").optional(),
120
+ pinned: z.boolean().describe(
121
+ "Whether the post is pinned. If `true`, the post is placed at the top of the post list."
122
+ ).optional(),
123
+ categoryIds: z.array(z.string()).max(10).optional(),
124
+ memberId: z.string().describe("Member ID of the post's owner.").regex(
199
125
  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
200
126
  "Must be a valid GUID"
201
127
  ).optional(),
202
- submittedDate: z.date().describe("Date the post was submitted for review.").optional().nullable(),
203
- status: z.enum(["UNKNOWN", "APPROVED", "REJECTED"]).describe(
204
- "Status indicating whether the submission was approved or rejected by the moderator."
128
+ hashtags: z.array(z.string()).max(100).optional(),
129
+ commentingEnabled: z.boolean().describe("Whether commenting on the post is enabled.").optional(),
130
+ minutesToRead: z.number().int().describe("Estimated reading time (calculated automatically).").optional(),
131
+ heroImage: z.string().describe(
132
+ "Image placed at the top of the blog page. Only displays on mobile devices."
205
133
  ).optional(),
206
- moderatedBy: z.string().describe("Member ID of the person who approved or rejected the post.").regex(
134
+ tagIds: z.array(z.string()).max(30).optional(),
135
+ relatedPostIds: z.array(z.string()).max(3).optional(),
136
+ pricingPlanIds: z.array(z.string()).max(100).optional(),
137
+ translationId: z.string().describe(
138
+ "ID of the translations of this post. All translations of a single post share the same `translationId`."
139
+ ).regex(
207
140
  /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
208
141
  "Must be a valid GUID"
209
142
  ).optional().nullable(),
210
- moderationDate: z.date().describe("Date the post was approved or rejected.").optional().nullable()
211
- }).describe(
212
- "Post moderation details. Only relevant to posts submitted by [guest writers](https://support.wix.com/en/article/wix-blog-moderating-blog-posts-from-your-guest-writers).\n\nGuest writers have the ability to write posts but not publish them. These posts can be rejected or approved for publishing by a blog editor or Wix user."
213
- ).optional(),
214
- media: z.intersection(
215
- z.object({
216
- displayed: z.boolean().describe("Whether cover media is displayed.").optional(),
217
- custom: z.boolean().describe(
218
- "Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media."
143
+ language: z.string().describe(
144
+ "Language the post is written in.\n\n2-or-4-letter language code in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format."
145
+ ).optional().nullable(),
146
+ seoData: z.object({
147
+ tags: z.array(
148
+ z.object({
149
+ type: z.string().describe(
150
+ "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`.\n\nWhich of these an API actually accepts depends on where the tag is being set: this\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\n`title`/`script`/`link` with a validation error even though they appear here \u2014\ncheck the field description of the specific `tags`-typed field you're writing to\nfor the types it actually supports and the error it returns.\n\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\n`\"application/ld+json\"` carrying structured data) are supported only when\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\nwrite through the site's Advanced/Custom Tags list. To write structured data,\nomit `custom` (or set it to `false`)."
151
+ ).optional(),
152
+ props: z.record(z.string(), z.any()).describe(
153
+ 'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
154
+ ).optional().nullable(),
155
+ meta: z.record(z.string(), z.any()).describe(
156
+ 'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
157
+ ).optional().nullable(),
158
+ children: z.string().describe(
159
+ "SEO tag inner content. For example, `<title> inner content </title>`."
160
+ ).optional(),
161
+ custom: z.boolean().describe(
162
+ "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nSetting this to `true` on a write restricts which `type` values are accepted\n\u2014 the same restriction the Advanced/Custom Tags UI enforces. `title` and\n`script` tags (including JSON-LD structured data) must be sent with `custom`\nomitted or `false`; sending them with `custom: true` is rejected with\n`TAG_TYPE_NOT_ALLOWED`.\n\nNote this is a separate restriction from Site SEO Tags' own type restriction on\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\nfor site-wide structured data) unconditionally. There is currently no way to set\nsite-wide, every-page structured data through any of these APIs \u2014 write a per-page\n`script` tag through the Item SEO Tags API instead.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
163
+ ).optional(),
164
+ disabled: z.boolean().describe(
165
+ "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
166
+ ).optional()
167
+ })
219
168
  ).optional(),
220
- altText: z.string().describe("Media alternative text.").min(1).max(1e3).optional().nullable()
221
- }),
222
- z.xor([
223
- z.object({
224
- wixMedia: z.never().optional(),
225
- embedMedia: z.never().optional()
226
- }),
169
+ settings: z.object({
170
+ preventAutoRedirect: z.boolean().describe(
171
+ "Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
172
+ ).optional(),
173
+ keywords: z.array(
174
+ z.object({
175
+ term: z.string().describe("Keyword value.").optional(),
176
+ isMain: z.boolean().describe(
177
+ "Whether the keyword is the main focus keyword."
178
+ ).optional(),
179
+ origin: z.string().describe(
180
+ "The source that added the keyword terms to the SEO settings."
181
+ ).max(1e3).optional().nullable()
182
+ })
183
+ ).max(5).optional()
184
+ }).describe("SEO general settings.").optional()
185
+ }).describe("SEO data.").optional(),
186
+ contactId: z.string().describe(
187
+ "Contact ID of the post's owner. See the Contacts API for more info."
188
+ ).regex(
189
+ /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
190
+ "Must be a valid GUID"
191
+ ).optional().nullable(),
192
+ richContent: z.any().describe(
193
+ 'Post rich content\n\n<widget src="https://apps.wix.com/_serverless/ricos-playground-services/goto/api-component" plugins="image.gallery.video.audio.divider.linkButton.html.giphy.codeBlock.file.hashtag.lineSpacing.indent.link.textColor.textHighlight.heading.verticalEmbed.table.collapsibleList.poll" exampleid="72c23a25-524f-4f70-a260-4a2777b6f5d5">\n<a href="https://dev.wix.com/docs/ricos/api-reference/ricos-document">See Ricos document reference</a>\n</widget>'
194
+ ).optional(),
195
+ preview: z.boolean().describe(
196
+ "Whether the returned content is a preview of premium content. Defaults to `false`.\nA preview displays a limited number of paragraphs of paid content to non-subscribed users."
197
+ ).optional(),
198
+ moderationDetails: z.object({
199
+ submittedBy: z.string().describe(
200
+ "Member ID of the person submitting the draft post for review."
201
+ ).regex(
202
+ /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
203
+ "Must be a valid GUID"
204
+ ).optional(),
205
+ submittedDate: z.date().describe("Date the post was submitted for review.").optional().nullable(),
206
+ status: z.enum(["UNKNOWN", "APPROVED", "REJECTED"]).describe(
207
+ "Status indicating whether the submission was approved or rejected by the moderator."
208
+ ).optional(),
209
+ moderatedBy: z.string().describe(
210
+ "Member ID of the person who approved or rejected the post."
211
+ ).regex(
212
+ /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
213
+ "Must be a valid GUID"
214
+ ).optional().nullable(),
215
+ moderationDate: z.date().describe("Date the post was approved or rejected.").optional().nullable()
216
+ }).describe(
217
+ "Post moderation details. Only relevant to posts submitted by [guest writers](https://support.wix.com/en/article/wix-blog-moderating-blog-posts-from-your-guest-writers).\n\nGuest writers have the ability to write posts but not publish them. These posts can be rejected or approved for publishing by a blog editor or Wix user."
218
+ ).optional(),
219
+ media: z.intersection(
227
220
  z.object({
228
- embedMedia: z.never().optional(),
229
- wixMedia: z.object({
230
- image: z.string().describe("Image details.").optional(),
231
- videoV2: z.string().describe("Video details.").optional()
232
- }).describe("Wix Media details.")
221
+ displayed: z.boolean().describe("Whether cover media is displayed.").optional(),
222
+ custom: z.boolean().describe(
223
+ "Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media."
224
+ ).optional(),
225
+ altText: z.string().describe("Media alternative text.").min(1).max(1e3).optional().nullable()
233
226
  }),
234
- z.object({
235
- wixMedia: z.never().optional(),
236
- embedMedia: z.object({
237
- thumbnail: z.object({
238
- url: z.string().describe("Thumbnail url.").max(2e3).optional(),
239
- width: z.number().int().describe("Thumbnail width.").min(0).optional(),
240
- height: z.number().int().describe("Thumbnail height.").min(0).optional()
241
- }).describe("Thumbnail details.").optional(),
242
- video: z.object({
243
- url: z.string().describe("Video url.").max(2e3).optional(),
244
- width: z.number().int().describe("Video width.").min(0).optional(),
245
- height: z.number().int().describe("Video height.").min(0).optional()
246
- }).describe("Video details.").optional()
247
- }).describe("Embed media details.")
248
- })
249
- ])
250
- ).describe("Post cover media.").optional(),
251
- hasUnpublishedChanges: z.boolean().describe(
252
- "Indicates if there is a draft post with changes that have not yet been published."
253
- ).optional(),
254
- referenceId: z.string().describe(
255
- "Post reference ID. You can reference the post from other entities, for example, comments."
256
- ).max(24).optional().nullable()
227
+ z.xor([
228
+ z.object({
229
+ wixMedia: z.never().optional(),
230
+ embedMedia: z.never().optional()
231
+ }),
232
+ z.object({
233
+ embedMedia: z.never().optional(),
234
+ wixMedia: z.object({
235
+ image: z.string().describe("Image details.").optional(),
236
+ videoV2: z.string().describe("Video details.").optional()
237
+ }).describe("Wix Media details.")
238
+ }),
239
+ z.object({
240
+ wixMedia: z.never().optional(),
241
+ embedMedia: z.object({
242
+ thumbnail: z.object({
243
+ url: z.string().describe("Thumbnail url.").max(2e3).optional(),
244
+ width: z.number().int().describe("Thumbnail width.").min(0).optional(),
245
+ height: z.number().int().describe("Thumbnail height.").min(0).optional()
246
+ }).describe("Thumbnail details.").optional(),
247
+ video: z.object({
248
+ url: z.string().describe("Video url.").max(2e3).optional(),
249
+ width: z.number().int().describe("Video width.").min(0).optional(),
250
+ height: z.number().int().describe("Video height.").min(0).optional()
251
+ }).describe("Video details.").optional()
252
+ }).describe("Embed media details.")
253
+ })
254
+ ])
255
+ ).describe("Post cover media.").optional(),
256
+ hasUnpublishedChanges: z.boolean().describe(
257
+ "Indicates if there is a draft post with changes that have not yet been published."
258
+ ).optional(),
259
+ referenceId: z.string().describe(
260
+ "Post reference ID. You can reference the post from other entities, for example, comments."
261
+ ).max(24).optional().nullable()
262
+ }).describe("Retrieved post info.").optional()
257
263
  });
258
264
  var GetPostBySlugRequest = /* @__PURE__ */ z.object({
259
265
  slug: z.string().describe("Slug of the post to retrieve.").min(1).max(200),
@@ -271,7 +277,7 @@ var GetPostBySlugRequest = /* @__PURE__ */ z.object({
271
277
  ])
272
278
  ).max(20).optional(),
273
279
  language: z.string().describe("Language of the post.").optional().nullable()
274
- }).optional()
280
+ }).describe("Options specifying which fields to return.").optional()
275
281
  });
276
282
  var GetPostBySlugResponse = /* @__PURE__ */ z.object({
277
283
  post: z.object({
@@ -319,7 +325,7 @@ var GetPostBySlugResponse = /* @__PURE__ */ z.object({
319
325
  tags: z.array(
320
326
  z.object({
321
327
  type: z.string().describe(
322
- "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
328
+ "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`.\n\nWhich of these an API actually accepts depends on where the tag is being set: this\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\n`title`/`script`/`link` with a validation error even though they appear here \u2014\ncheck the field description of the specific `tags`-typed field you're writing to\nfor the types it actually supports and the error it returns.\n\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\n`\"application/ld+json\"` carrying structured data) are supported only when\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\nwrite through the site's Advanced/Custom Tags list. To write structured data,\nomit `custom` (or set it to `false`)."
323
329
  ).optional(),
324
330
  props: z.record(z.string(), z.any()).describe(
325
331
  'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
@@ -331,7 +337,7 @@ var GetPostBySlugResponse = /* @__PURE__ */ z.object({
331
337
  "SEO tag inner content. For example, `<title> inner content </title>`."
332
338
  ).optional(),
333
339
  custom: z.boolean().describe(
334
- "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
340
+ "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nSetting this to `true` on a write restricts which `type` values are accepted\n\u2014 the same restriction the Advanced/Custom Tags UI enforces. `title` and\n`script` tags (including JSON-LD structured data) must be sent with `custom`\nomitted or `false`; sending them with `custom: true` is rejected with\n`TAG_TYPE_NOT_ALLOWED`.\n\nNote this is a separate restriction from Site SEO Tags' own type restriction on\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\nfor site-wide structured data) unconditionally. There is currently no way to set\nsite-wide, every-page structured data through any of these APIs \u2014 write a per-page\n`script` tag through the Item SEO Tags API instead.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
335
341
  ).optional(),
336
342
  disabled: z.boolean().describe(
337
343
  "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
@@ -476,7 +482,7 @@ var ListPostsRequest = /* @__PURE__ */ z.object({
476
482
  "REFERENCE_ID"
477
483
  ])
478
484
  ).max(20).optional()
479
- }).optional()
485
+ }).describe("Sort, filter, and paging options.").optional()
480
486
  });
481
487
  var ListPostsResponse = /* @__PURE__ */ z.object({
482
488
  posts: z.array(
@@ -525,7 +531,7 @@ var ListPostsResponse = /* @__PURE__ */ z.object({
525
531
  tags: z.array(
526
532
  z.object({
527
533
  type: z.string().describe(
528
- "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
534
+ "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`.\n\nWhich of these an API actually accepts depends on where the tag is being set: this\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\n`title`/`script`/`link` with a validation error even though they appear here \u2014\ncheck the field description of the specific `tags`-typed field you're writing to\nfor the types it actually supports and the error it returns.\n\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\n`\"application/ld+json\"` carrying structured data) are supported only when\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\nwrite through the site's Advanced/Custom Tags list. To write structured data,\nomit `custom` (or set it to `false`)."
529
535
  ).optional(),
530
536
  props: z.record(z.string(), z.any()).describe(
531
537
  'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
@@ -537,7 +543,7 @@ var ListPostsResponse = /* @__PURE__ */ z.object({
537
543
  "SEO tag inner content. For example, `<title> inner content </title>`."
538
544
  ).optional(),
539
545
  custom: z.boolean().describe(
540
- "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
546
+ "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nSetting this to `true` on a write restricts which `type` values are accepted\n\u2014 the same restriction the Advanced/Custom Tags UI enforces. `title` and\n`script` tags (including JSON-LD structured data) must be sent with `custom`\nomitted or `false`; sending them with `custom: true` is rejected with\n`TAG_TYPE_NOT_ALLOWED`.\n\nNote this is a separate restriction from Site SEO Tags' own type restriction on\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\nfor site-wide structured data) unconditionally. There is currently no way to set\nsite-wide, every-page structured data through any of these APIs \u2014 write a per-page\n`script` tag through the Item SEO Tags API instead.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
541
547
  ).optional(),
542
548
  disabled: z.boolean().describe(
543
549
  "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
@@ -767,7 +773,7 @@ var QueryPostsRequest = /* @__PURE__ */ z.object({
767
773
  "REFERENCE_ID"
768
774
  ])
769
775
  ).max(20).optional()
770
- }).optional()
776
+ }).describe("Options specifying which fields to return.").optional()
771
777
  });
772
778
  var QueryPostsResponse = /* @__PURE__ */ z.object({
773
779
  posts: z.array(
@@ -816,7 +822,7 @@ var QueryPostsResponse = /* @__PURE__ */ z.object({
816
822
  tags: z.array(
817
823
  z.object({
818
824
  type: z.string().describe(
819
- "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
825
+ "SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`.\n\nWhich of these an API actually accepts depends on where the tag is being set: this\nlist is not a blanket guarantee across every API that reuses this message. Site SEO\nTags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\n`title`/`script`/`link` with a validation error even though they appear here \u2014\ncheck the field description of the specific `tags`-typed field you're writing to\nfor the types it actually supports and the error it returns.\n\nLimitation: `title` and `script` (e.g. a `script` tag with `props.type`\n`\"application/ld+json\"` carrying structured data) are supported only when\n`custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\ntag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\nwrite through the site's Advanced/Custom Tags list. To write structured data,\nomit `custom` (or set it to `false`)."
820
826
  ).optional(),
821
827
  props: z.record(z.string(), z.any()).describe(
822
828
  'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
@@ -828,7 +834,7 @@ var QueryPostsResponse = /* @__PURE__ */ z.object({
828
834
  "SEO tag inner content. For example, `<title> inner content </title>`."
829
835
  ).optional(),
830
836
  custom: z.boolean().describe(
831
- "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
837
+ "Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) \u2014\ni.e. an entry from the site's Advanced/Custom Tags list.\n\nSetting this to `true` on a write restricts which `type` values are accepted\n\u2014 the same restriction the Advanced/Custom Tags UI enforces. `title` and\n`script` tags (including JSON-LD structured data) must be sent with `custom`\nomitted or `false`; sending them with `custom: true` is rejected with\n`TAG_TYPE_NOT_ALLOWED`.\n\nNote this is a separate restriction from Site SEO Tags' own type restriction on\n`SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\nfor site-wide structured data) unconditionally. There is currently no way to set\nsite-wide, every-page structured data through any of these APIs \u2014 write a per-page\n`script` tag through the Item SEO Tags API instead.\n\nThis flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n(`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\ndefault/pattern \u2014 standard tags always resolve with `custom: false`, even when their content comes\nfrom a page's manually saved SEO title/description override. Don't use this field to verify whether\na live page reflects a manual per-page SEO edit.\n\nLimitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\nonly from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\nor Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the\nresponse entirely \u2014 there, `false` means this API could not tell, not that no custom tag exists.\nPass `seoData` explicitly to resolve against a known set of tags."
832
838
  ).optional(),
833
839
  disabled: z.boolean().describe(
834
840
  "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."