@wix/auto_sdk_blog_posts 1.0.180 → 1.0.182

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.
@@ -1,950 +0,0 @@
1
- // src/blog-v3-post-posts.schemas.ts
2
- import * as z from "zod";
3
- var QueryPostCountStatsRequest = /* @__PURE__ */ z.object({
4
- options: /* @__PURE__ */ z.object({
5
- rangeStart: /* @__PURE__ */ z.date().describe(
6
- "Start of time range to return, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time format."
7
- ).optional().nullable(),
8
- order: /* @__PURE__ */ z.enum(["UNKNOWN", "OLDEST", "NEWEST"]).optional(),
9
- months: /* @__PURE__ */ z.number().int().describe("Number of months to include in response.").min(0).optional(),
10
- language: /* @__PURE__ */ z.string().describe(
11
- "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 only receive the period post count for that specified language."
12
- ).optional().nullable(),
13
- timeZone: /* @__PURE__ */ z.string().describe(
14
- "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`."
15
- ).min(3).max(100).optional().nullable()
16
- }).describe("Options specifying time frame, sort, and filter. ").optional()
17
- });
18
- var QueryPostCountStatsResponse = /* @__PURE__ */ z.object({
19
- stats: /* @__PURE__ */ z.array(
20
- /* @__PURE__ */ z.object({
21
- periodStart: /* @__PURE__ */ z.date().describe(
22
- "Start of time range in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time format."
23
- ).optional().nullable(),
24
- postCount: /* @__PURE__ */ z.number().int().describe("Number of posts published during this month.").min(0).optional()
25
- })
26
- ).optional()
27
- });
28
- var GetTotalPostsRequest = /* @__PURE__ */ z.object({
29
- options: /* @__PURE__ */ z.object({
30
- language: /* @__PURE__ */ z.string().describe(
31
- "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."
32
- ).optional().nullable()
33
- }).describe("Language Options.").optional()
34
- });
35
- var GetTotalPostsResponse = /* @__PURE__ */ z.object({
36
- total: /* @__PURE__ */ z.number().int().describe("Total amount of published posts.").min(0).optional()
37
- });
38
- var GetPostRequest = /* @__PURE__ */ z.object({
39
- postId: /* @__PURE__ */ z.string().describe("Post ID.").min(1).max(38),
40
- options: /* @__PURE__ */ z.object({
41
- fieldsets: /* @__PURE__ */ z.array(
42
- /* @__PURE__ */ z.enum([
43
- "UNKNOWN",
44
- "URL",
45
- "CONTENT_TEXT",
46
- "METRICS",
47
- "SEO",
48
- "CONTACT_ID",
49
- "RICH_CONTENT",
50
- "REFERENCE_ID"
51
- ])
52
- ).max(20).optional()
53
- }).describe("Options specifying which fields to return.").optional()
54
- });
55
- var GetPostResponse = /* @__PURE__ */ z.object({
56
- post: /* @__PURE__ */ z.object({
57
- _id: /* @__PURE__ */ z.string().describe("Post ID.").regex(
58
- /^[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}$/,
59
- "Must be a valid GUID"
60
- ).optional(),
61
- title: /* @__PURE__ */ z.string().describe("Post title.").max(200).optional(),
62
- excerpt: /* @__PURE__ */ z.string().describe(
63
- "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"
64
- ).max(500).optional(),
65
- contentText: /* @__PURE__ */ z.string().describe("The post's content in plain text.").max(4e5).optional().nullable(),
66
- firstPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was first published.").optional().nullable(),
67
- lastPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was last published.").optional().nullable(),
68
- url: /* @__PURE__ */ z.string().describe("Post URL.").optional(),
69
- slug: /* @__PURE__ */ z.string().describe("Post slug. For example, `'post-slug'`.").max(100).optional(),
70
- featured: /* @__PURE__ */ z.boolean().describe("Whether the post is marked as featured.").optional(),
71
- pinned: /* @__PURE__ */ z.boolean().describe(
72
- "Whether the post is pinned. If `true`, the post is placed at the top of the post list."
73
- ).optional(),
74
- categoryIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(10).optional(),
75
- memberId: /* @__PURE__ */ z.string().describe("Member ID of the post's owner.").regex(
76
- /^[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}$/,
77
- "Must be a valid GUID"
78
- ).optional(),
79
- hashtags: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
80
- commentingEnabled: /* @__PURE__ */ z.boolean().describe("Whether commenting on the post is enabled.").optional(),
81
- minutesToRead: /* @__PURE__ */ z.number().int().describe("Estimated reading time (calculated automatically).").optional(),
82
- heroImage: /* @__PURE__ */ z.string().describe(
83
- "Image placed at the top of the blog page. Only displays on mobile devices."
84
- ).optional(),
85
- tagIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(30).optional(),
86
- relatedPostIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(3).optional(),
87
- pricingPlanIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
88
- translationId: /* @__PURE__ */ z.string().describe(
89
- "ID of the translations of this post. All translations of a single post share the same `translationId`."
90
- ).regex(
91
- /^[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}$/,
92
- "Must be a valid GUID"
93
- ).optional().nullable(),
94
- language: /* @__PURE__ */ z.string().describe(
95
- "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."
96
- ).optional().nullable(),
97
- seoData: /* @__PURE__ */ z.object({
98
- tags: /* @__PURE__ */ z.array(
99
- /* @__PURE__ */ z.object({
100
- type: /* @__PURE__ */ z.string().describe(
101
- "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`)."
102
- ).optional(),
103
- props: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
104
- '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"}`.'
105
- ).optional().nullable(),
106
- meta: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
107
- 'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
108
- ).optional().nullable(),
109
- children: /* @__PURE__ */ z.string().describe(
110
- "SEO tag inner content. For example, `<title> inner content </title>`."
111
- ).optional(),
112
- custom: /* @__PURE__ */ z.boolean().describe(
113
- "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."
114
- ).optional(),
115
- disabled: /* @__PURE__ */ z.boolean().describe(
116
- "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
117
- ).optional()
118
- })
119
- ).optional(),
120
- settings: /* @__PURE__ */ z.object({
121
- preventAutoRedirect: /* @__PURE__ */ z.boolean().describe(
122
- "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)."
123
- ).optional(),
124
- keywords: /* @__PURE__ */ z.array(
125
- /* @__PURE__ */ z.object({
126
- term: /* @__PURE__ */ z.string().describe("Keyword value.").optional(),
127
- isMain: /* @__PURE__ */ z.boolean().describe(
128
- "Whether the keyword is the main focus keyword."
129
- ).optional(),
130
- origin: /* @__PURE__ */ z.string().describe(
131
- "The source that added the keyword terms to the SEO settings."
132
- ).max(1e3).optional().nullable()
133
- })
134
- ).max(5).optional()
135
- }).describe("SEO general settings.").optional()
136
- }).describe("SEO data.").optional(),
137
- contactId: /* @__PURE__ */ z.string().describe(
138
- "Contact ID of the post's owner. See the Contacts API for more info."
139
- ).regex(
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}$/,
141
- "Must be a valid GUID"
142
- ).optional().nullable(),
143
- richContent: /* @__PURE__ */ z.any().describe(
144
- '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>'
145
- ).optional(),
146
- preview: /* @__PURE__ */ z.boolean().describe(
147
- "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."
148
- ).optional(),
149
- moderationDetails: /* @__PURE__ */ z.object({
150
- submittedBy: /* @__PURE__ */ z.string().describe(
151
- "Member ID of the person submitting the draft post for review."
152
- ).regex(
153
- /^[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}$/,
154
- "Must be a valid GUID"
155
- ).optional(),
156
- submittedDate: /* @__PURE__ */ z.date().describe("Date the post was submitted for review.").optional().nullable(),
157
- status: /* @__PURE__ */ z.enum(["UNKNOWN", "APPROVED", "REJECTED"]).describe(
158
- "Status indicating whether the submission was approved or rejected by the moderator."
159
- ).optional(),
160
- moderatedBy: /* @__PURE__ */ z.string().describe(
161
- "Member ID of the person who approved or rejected the post."
162
- ).regex(
163
- /^[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}$/,
164
- "Must be a valid GUID"
165
- ).optional().nullable(),
166
- moderationDate: /* @__PURE__ */ z.date().describe("Date the post was approved or rejected.").optional().nullable()
167
- }).describe(
168
- "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."
169
- ).optional(),
170
- media: /* @__PURE__ */ z.intersection(
171
- /* @__PURE__ */ z.object({
172
- displayed: /* @__PURE__ */ z.boolean().describe("Whether cover media is displayed.").optional(),
173
- custom: /* @__PURE__ */ z.boolean().describe(
174
- "Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media."
175
- ).optional(),
176
- altText: /* @__PURE__ */ z.string().describe("Media alternative text.").min(1).max(1e3).optional().nullable()
177
- }),
178
- /* @__PURE__ */ z.xor([
179
- /* @__PURE__ */ z.object({
180
- wixMedia: /* @__PURE__ */ z.never().optional(),
181
- embedMedia: /* @__PURE__ */ z.never().optional()
182
- }),
183
- /* @__PURE__ */ z.object({
184
- embedMedia: /* @__PURE__ */ z.never().optional(),
185
- wixMedia: /* @__PURE__ */ z.object({
186
- image: /* @__PURE__ */ z.string().describe("Image details.").optional(),
187
- videoV2: /* @__PURE__ */ z.string().describe("Video details.").optional()
188
- }).describe("Wix Media details.")
189
- }),
190
- /* @__PURE__ */ z.object({
191
- wixMedia: /* @__PURE__ */ z.never().optional(),
192
- embedMedia: /* @__PURE__ */ z.object({
193
- thumbnail: /* @__PURE__ */ z.object({
194
- url: /* @__PURE__ */ z.string().describe("Thumbnail url.").max(2e3).optional(),
195
- width: /* @__PURE__ */ z.number().int().describe("Thumbnail width.").min(0).optional(),
196
- height: /* @__PURE__ */ z.number().int().describe("Thumbnail height.").min(0).optional()
197
- }).describe("Thumbnail details.").optional(),
198
- video: /* @__PURE__ */ z.object({
199
- url: /* @__PURE__ */ z.string().describe("Video url.").max(2e3).optional(),
200
- width: /* @__PURE__ */ z.number().int().describe("Video width.").min(0).optional(),
201
- height: /* @__PURE__ */ z.number().int().describe("Video height.").min(0).optional()
202
- }).describe("Video details.").optional()
203
- }).describe("Embed media details.")
204
- })
205
- ])
206
- ).describe("Post cover media.").optional(),
207
- hasUnpublishedChanges: /* @__PURE__ */ z.boolean().describe(
208
- "Indicates if there is a draft post with changes that have not yet been published."
209
- ).optional(),
210
- referenceId: /* @__PURE__ */ z.string().describe(
211
- "Post reference ID. You can reference the post from other entities, for example, comments."
212
- ).max(24).optional().nullable()
213
- }).describe("Retrieved post info.").optional()
214
- });
215
- var GetPostBySlugRequest = /* @__PURE__ */ z.object({
216
- slug: /* @__PURE__ */ z.string().describe("Slug of the post to retrieve.").min(1).max(200),
217
- options: /* @__PURE__ */ z.object({
218
- fieldsets: /* @__PURE__ */ z.array(
219
- /* @__PURE__ */ z.enum([
220
- "UNKNOWN",
221
- "URL",
222
- "CONTENT_TEXT",
223
- "METRICS",
224
- "SEO",
225
- "CONTACT_ID",
226
- "RICH_CONTENT",
227
- "REFERENCE_ID"
228
- ])
229
- ).max(20).optional(),
230
- language: /* @__PURE__ */ z.string().describe("Language of the post.").optional().nullable()
231
- }).describe("Options specifying which fields to return.").optional()
232
- });
233
- var GetPostBySlugResponse = /* @__PURE__ */ z.object({
234
- post: /* @__PURE__ */ z.object({
235
- _id: /* @__PURE__ */ z.string().describe("Post ID.").regex(
236
- /^[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}$/,
237
- "Must be a valid GUID"
238
- ).optional(),
239
- title: /* @__PURE__ */ z.string().describe("Post title.").max(200).optional(),
240
- excerpt: /* @__PURE__ */ z.string().describe(
241
- "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"
242
- ).max(500).optional(),
243
- contentText: /* @__PURE__ */ z.string().describe("The post's content in plain text.").max(4e5).optional().nullable(),
244
- firstPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was first published.").optional().nullable(),
245
- lastPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was last published.").optional().nullable(),
246
- url: /* @__PURE__ */ z.string().describe("Post URL.").optional(),
247
- slug: /* @__PURE__ */ z.string().describe("Post slug. For example, `'post-slug'`.").max(100).optional(),
248
- featured: /* @__PURE__ */ z.boolean().describe("Whether the post is marked as featured.").optional(),
249
- pinned: /* @__PURE__ */ z.boolean().describe(
250
- "Whether the post is pinned. If `true`, the post is placed at the top of the post list."
251
- ).optional(),
252
- categoryIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(10).optional(),
253
- memberId: /* @__PURE__ */ z.string().describe("Member ID of the post's owner.").regex(
254
- /^[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}$/,
255
- "Must be a valid GUID"
256
- ).optional(),
257
- hashtags: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
258
- commentingEnabled: /* @__PURE__ */ z.boolean().describe("Whether commenting on the post is enabled.").optional(),
259
- minutesToRead: /* @__PURE__ */ z.number().int().describe("Estimated reading time (calculated automatically).").optional(),
260
- heroImage: /* @__PURE__ */ z.string().describe(
261
- "Image placed at the top of the blog page. Only displays on mobile devices."
262
- ).optional(),
263
- tagIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(30).optional(),
264
- relatedPostIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(3).optional(),
265
- pricingPlanIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
266
- translationId: /* @__PURE__ */ z.string().describe(
267
- "ID of the translations of this post. All translations of a single post share the same `translationId`."
268
- ).regex(
269
- /^[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}$/,
270
- "Must be a valid GUID"
271
- ).optional().nullable(),
272
- language: /* @__PURE__ */ z.string().describe(
273
- "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."
274
- ).optional().nullable(),
275
- seoData: /* @__PURE__ */ z.object({
276
- tags: /* @__PURE__ */ z.array(
277
- /* @__PURE__ */ z.object({
278
- type: /* @__PURE__ */ z.string().describe(
279
- "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`)."
280
- ).optional(),
281
- props: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
282
- '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"}`.'
283
- ).optional().nullable(),
284
- meta: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
285
- 'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
286
- ).optional().nullable(),
287
- children: /* @__PURE__ */ z.string().describe(
288
- "SEO tag inner content. For example, `<title> inner content </title>`."
289
- ).optional(),
290
- custom: /* @__PURE__ */ z.boolean().describe(
291
- "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."
292
- ).optional(),
293
- disabled: /* @__PURE__ */ z.boolean().describe(
294
- "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
295
- ).optional()
296
- })
297
- ).optional(),
298
- settings: /* @__PURE__ */ z.object({
299
- preventAutoRedirect: /* @__PURE__ */ z.boolean().describe(
300
- "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)."
301
- ).optional(),
302
- keywords: /* @__PURE__ */ z.array(
303
- /* @__PURE__ */ z.object({
304
- term: /* @__PURE__ */ z.string().describe("Keyword value.").optional(),
305
- isMain: /* @__PURE__ */ z.boolean().describe(
306
- "Whether the keyword is the main focus keyword."
307
- ).optional(),
308
- origin: /* @__PURE__ */ z.string().describe(
309
- "The source that added the keyword terms to the SEO settings."
310
- ).max(1e3).optional().nullable()
311
- })
312
- ).max(5).optional()
313
- }).describe("SEO general settings.").optional()
314
- }).describe("SEO data.").optional(),
315
- contactId: /* @__PURE__ */ z.string().describe(
316
- "Contact ID of the post's owner. See the Contacts API for more info."
317
- ).regex(
318
- /^[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}$/,
319
- "Must be a valid GUID"
320
- ).optional().nullable(),
321
- richContent: /* @__PURE__ */ z.any().describe(
322
- '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>'
323
- ).optional(),
324
- preview: /* @__PURE__ */ z.boolean().describe(
325
- "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."
326
- ).optional(),
327
- moderationDetails: /* @__PURE__ */ z.object({
328
- submittedBy: /* @__PURE__ */ z.string().describe(
329
- "Member ID of the person submitting the draft post for review."
330
- ).regex(
331
- /^[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}$/,
332
- "Must be a valid GUID"
333
- ).optional(),
334
- submittedDate: /* @__PURE__ */ z.date().describe("Date the post was submitted for review.").optional().nullable(),
335
- status: /* @__PURE__ */ z.enum(["UNKNOWN", "APPROVED", "REJECTED"]).describe(
336
- "Status indicating whether the submission was approved or rejected by the moderator."
337
- ).optional(),
338
- moderatedBy: /* @__PURE__ */ z.string().describe(
339
- "Member ID of the person who approved or rejected the post."
340
- ).regex(
341
- /^[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}$/,
342
- "Must be a valid GUID"
343
- ).optional().nullable(),
344
- moderationDate: /* @__PURE__ */ z.date().describe("Date the post was approved or rejected.").optional().nullable()
345
- }).describe(
346
- "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."
347
- ).optional(),
348
- media: /* @__PURE__ */ z.intersection(
349
- /* @__PURE__ */ z.object({
350
- displayed: /* @__PURE__ */ z.boolean().describe("Whether cover media is displayed.").optional(),
351
- custom: /* @__PURE__ */ z.boolean().describe(
352
- "Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media."
353
- ).optional(),
354
- altText: /* @__PURE__ */ z.string().describe("Media alternative text.").min(1).max(1e3).optional().nullable()
355
- }),
356
- /* @__PURE__ */ z.xor([
357
- /* @__PURE__ */ z.object({
358
- wixMedia: /* @__PURE__ */ z.never().optional(),
359
- embedMedia: /* @__PURE__ */ z.never().optional()
360
- }),
361
- /* @__PURE__ */ z.object({
362
- embedMedia: /* @__PURE__ */ z.never().optional(),
363
- wixMedia: /* @__PURE__ */ z.object({
364
- image: /* @__PURE__ */ z.string().describe("Image details.").optional(),
365
- videoV2: /* @__PURE__ */ z.string().describe("Video details.").optional()
366
- }).describe("Wix Media details.")
367
- }),
368
- /* @__PURE__ */ z.object({
369
- wixMedia: /* @__PURE__ */ z.never().optional(),
370
- embedMedia: /* @__PURE__ */ z.object({
371
- thumbnail: /* @__PURE__ */ z.object({
372
- url: /* @__PURE__ */ z.string().describe("Thumbnail url.").max(2e3).optional(),
373
- width: /* @__PURE__ */ z.number().int().describe("Thumbnail width.").min(0).optional(),
374
- height: /* @__PURE__ */ z.number().int().describe("Thumbnail height.").min(0).optional()
375
- }).describe("Thumbnail details.").optional(),
376
- video: /* @__PURE__ */ z.object({
377
- url: /* @__PURE__ */ z.string().describe("Video url.").max(2e3).optional(),
378
- width: /* @__PURE__ */ z.number().int().describe("Video width.").min(0).optional(),
379
- height: /* @__PURE__ */ z.number().int().describe("Video height.").min(0).optional()
380
- }).describe("Video details.").optional()
381
- }).describe("Embed media details.")
382
- })
383
- ])
384
- ).describe("Post cover media.").optional(),
385
- hasUnpublishedChanges: /* @__PURE__ */ z.boolean().describe(
386
- "Indicates if there is a draft post with changes that have not yet been published."
387
- ).optional(),
388
- referenceId: /* @__PURE__ */ z.string().describe(
389
- "Post reference ID. You can reference the post from other entities, for example, comments."
390
- ).max(24).optional().nullable()
391
- }).describe("Retrieved post info.").optional()
392
- });
393
- var ListPostsRequest = /* @__PURE__ */ z.object({
394
- options: /* @__PURE__ */ z.object({
395
- featured: /* @__PURE__ */ z.boolean().describe("Whether to return only featured posts.\n\nDefault: `false`").optional(),
396
- hashtags: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
397
- categoryIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(50).optional(),
398
- tagIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(50).optional(),
399
- sort: /* @__PURE__ */ z.enum([
400
- "FEED",
401
- "PUBLISHED_DATE_ASC",
402
- "PUBLISHED_DATE_DESC",
403
- "VIEW_COUNT",
404
- "LIKE_COUNT",
405
- "TITLE_ASC",
406
- "TITLE_DESC"
407
- ]).optional(),
408
- paging: /* @__PURE__ */ z.object({
409
- offset: /* @__PURE__ */ z.number().int().describe(
410
- "Number of items to skip in the current sort order.\n\n\nDefault: `0`"
411
- ).min(0).optional(),
412
- limit: /* @__PURE__ */ z.number().int().describe("Number of items to return.\n\n\nDefault:`50`").min(1).max(100).optional(),
413
- cursor: /* @__PURE__ */ z.string().describe(
414
- "Pointer to the next or previous page in the list of results."
415
- ).max(2e3).optional().nullable()
416
- }).describe("Pagination options.").optional(),
417
- language: /* @__PURE__ */ z.string().describe(
418
- "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 only receive posts that are in that language.\nIf omitted, posts in all languages are returned."
419
- ).optional().nullable(),
420
- memberId: /* @__PURE__ */ z.string().describe("Post owner's member ID.").regex(
421
- /^[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}$/,
422
- "Must be a valid GUID"
423
- ).optional().nullable(),
424
- fieldsets: /* @__PURE__ */ z.array(
425
- /* @__PURE__ */ z.enum([
426
- "UNKNOWN",
427
- "URL",
428
- "CONTENT_TEXT",
429
- "METRICS",
430
- "SEO",
431
- "CONTACT_ID",
432
- "RICH_CONTENT",
433
- "REFERENCE_ID"
434
- ])
435
- ).max(20).optional()
436
- }).describe("Sort, filter, and paging options.").optional()
437
- });
438
- var ListPostsResponse = /* @__PURE__ */ z.object({
439
- posts: /* @__PURE__ */ z.array(
440
- /* @__PURE__ */ z.object({
441
- _id: /* @__PURE__ */ z.string().describe("Post ID.").regex(
442
- /^[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}$/,
443
- "Must be a valid GUID"
444
- ).optional(),
445
- title: /* @__PURE__ */ z.string().describe("Post title.").max(200).optional(),
446
- excerpt: /* @__PURE__ */ z.string().describe(
447
- "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"
448
- ).max(500).optional(),
449
- contentText: /* @__PURE__ */ z.string().describe("The post's content in plain text.").max(4e5).optional().nullable(),
450
- firstPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was first published.").optional().nullable(),
451
- lastPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was last published.").optional().nullable(),
452
- url: /* @__PURE__ */ z.string().describe("Post URL.").optional(),
453
- slug: /* @__PURE__ */ z.string().describe("Post slug. For example, `'post-slug'`.").max(100).optional(),
454
- featured: /* @__PURE__ */ z.boolean().describe("Whether the post is marked as featured.").optional(),
455
- pinned: /* @__PURE__ */ z.boolean().describe(
456
- "Whether the post is pinned. If `true`, the post is placed at the top of the post list."
457
- ).optional(),
458
- categoryIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(10).optional(),
459
- memberId: /* @__PURE__ */ z.string().describe("Member ID of the post's owner.").regex(
460
- /^[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}$/,
461
- "Must be a valid GUID"
462
- ).optional(),
463
- hashtags: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
464
- commentingEnabled: /* @__PURE__ */ z.boolean().describe("Whether commenting on the post is enabled.").optional(),
465
- minutesToRead: /* @__PURE__ */ z.number().int().describe("Estimated reading time (calculated automatically).").optional(),
466
- heroImage: /* @__PURE__ */ z.string().describe(
467
- "Image placed at the top of the blog page. Only displays on mobile devices."
468
- ).optional(),
469
- tagIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(30).optional(),
470
- relatedPostIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(3).optional(),
471
- pricingPlanIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
472
- translationId: /* @__PURE__ */ z.string().describe(
473
- "ID of the translations of this post. All translations of a single post share the same `translationId`."
474
- ).regex(
475
- /^[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}$/,
476
- "Must be a valid GUID"
477
- ).optional().nullable(),
478
- language: /* @__PURE__ */ z.string().describe(
479
- "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."
480
- ).optional().nullable(),
481
- seoData: /* @__PURE__ */ z.object({
482
- tags: /* @__PURE__ */ z.array(
483
- /* @__PURE__ */ z.object({
484
- type: /* @__PURE__ */ z.string().describe(
485
- "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`)."
486
- ).optional(),
487
- props: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
488
- '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"}`.'
489
- ).optional().nullable(),
490
- meta: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
491
- 'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
492
- ).optional().nullable(),
493
- children: /* @__PURE__ */ z.string().describe(
494
- "SEO tag inner content. For example, `<title> inner content </title>`."
495
- ).optional(),
496
- custom: /* @__PURE__ */ z.boolean().describe(
497
- "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."
498
- ).optional(),
499
- disabled: /* @__PURE__ */ z.boolean().describe(
500
- "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
501
- ).optional()
502
- })
503
- ).optional(),
504
- settings: /* @__PURE__ */ z.object({
505
- preventAutoRedirect: /* @__PURE__ */ z.boolean().describe(
506
- "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)."
507
- ).optional(),
508
- keywords: /* @__PURE__ */ z.array(
509
- /* @__PURE__ */ z.object({
510
- term: /* @__PURE__ */ z.string().describe("Keyword value.").optional(),
511
- isMain: /* @__PURE__ */ z.boolean().describe(
512
- "Whether the keyword is the main focus keyword."
513
- ).optional(),
514
- origin: /* @__PURE__ */ z.string().describe(
515
- "The source that added the keyword terms to the SEO settings."
516
- ).max(1e3).optional().nullable()
517
- })
518
- ).max(5).optional()
519
- }).describe("SEO general settings.").optional()
520
- }).describe("SEO data.").optional(),
521
- contactId: /* @__PURE__ */ z.string().describe(
522
- "Contact ID of the post's owner. See the Contacts API for more info."
523
- ).regex(
524
- /^[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}$/,
525
- "Must be a valid GUID"
526
- ).optional().nullable(),
527
- richContent: /* @__PURE__ */ z.any().describe(
528
- '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>'
529
- ).optional(),
530
- preview: /* @__PURE__ */ z.boolean().describe(
531
- "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."
532
- ).optional(),
533
- moderationDetails: /* @__PURE__ */ z.object({
534
- submittedBy: /* @__PURE__ */ z.string().describe(
535
- "Member ID of the person submitting the draft post for review."
536
- ).regex(
537
- /^[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}$/,
538
- "Must be a valid GUID"
539
- ).optional(),
540
- submittedDate: /* @__PURE__ */ z.date().describe("Date the post was submitted for review.").optional().nullable(),
541
- status: /* @__PURE__ */ z.enum(["UNKNOWN", "APPROVED", "REJECTED"]).describe(
542
- "Status indicating whether the submission was approved or rejected by the moderator."
543
- ).optional(),
544
- moderatedBy: /* @__PURE__ */ z.string().describe(
545
- "Member ID of the person who approved or rejected the post."
546
- ).regex(
547
- /^[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}$/,
548
- "Must be a valid GUID"
549
- ).optional().nullable(),
550
- moderationDate: /* @__PURE__ */ z.date().describe("Date the post was approved or rejected.").optional().nullable()
551
- }).describe(
552
- "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."
553
- ).optional(),
554
- media: /* @__PURE__ */ z.intersection(
555
- /* @__PURE__ */ z.object({
556
- displayed: /* @__PURE__ */ z.boolean().describe("Whether cover media is displayed.").optional(),
557
- custom: /* @__PURE__ */ z.boolean().describe(
558
- "Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media."
559
- ).optional(),
560
- altText: /* @__PURE__ */ z.string().describe("Media alternative text.").min(1).max(1e3).optional().nullable()
561
- }),
562
- /* @__PURE__ */ z.xor([
563
- /* @__PURE__ */ z.object({
564
- wixMedia: /* @__PURE__ */ z.never().optional(),
565
- embedMedia: /* @__PURE__ */ z.never().optional()
566
- }),
567
- /* @__PURE__ */ z.object({
568
- embedMedia: /* @__PURE__ */ z.never().optional(),
569
- wixMedia: /* @__PURE__ */ z.object({
570
- image: /* @__PURE__ */ z.string().describe("Image details.").optional(),
571
- videoV2: /* @__PURE__ */ z.string().describe("Video details.").optional()
572
- }).describe("Wix Media details.")
573
- }),
574
- /* @__PURE__ */ z.object({
575
- wixMedia: /* @__PURE__ */ z.never().optional(),
576
- embedMedia: /* @__PURE__ */ z.object({
577
- thumbnail: /* @__PURE__ */ z.object({
578
- url: /* @__PURE__ */ z.string().describe("Thumbnail url.").max(2e3).optional(),
579
- width: /* @__PURE__ */ z.number().int().describe("Thumbnail width.").min(0).optional(),
580
- height: /* @__PURE__ */ z.number().int().describe("Thumbnail height.").min(0).optional()
581
- }).describe("Thumbnail details.").optional(),
582
- video: /* @__PURE__ */ z.object({
583
- url: /* @__PURE__ */ z.string().describe("Video url.").max(2e3).optional(),
584
- width: /* @__PURE__ */ z.number().int().describe("Video width.").min(0).optional(),
585
- height: /* @__PURE__ */ z.number().int().describe("Video height.").min(0).optional()
586
- }).describe("Video details.").optional()
587
- }).describe("Embed media details.")
588
- })
589
- ])
590
- ).describe("Post cover media.").optional(),
591
- hasUnpublishedChanges: /* @__PURE__ */ z.boolean().describe(
592
- "Indicates if there is a draft post with changes that have not yet been published."
593
- ).optional(),
594
- referenceId: /* @__PURE__ */ z.string().describe(
595
- "Post reference ID. You can reference the post from other entities, for example, comments."
596
- ).max(24).optional().nullable()
597
- })
598
- ).optional(),
599
- metaData: /* @__PURE__ */ z.object({
600
- count: /* @__PURE__ */ z.number().int().describe("Number of items returned in this response.").optional(),
601
- offset: /* @__PURE__ */ z.number().int().describe("Requested offset.").optional(),
602
- total: /* @__PURE__ */ z.number().int().describe("Total number of items that match the query.").optional(),
603
- cursor: /* @__PURE__ */ z.string().describe(
604
- "Pointer to the next or previous page in the list of results."
605
- ).max(2e3).optional().nullable()
606
- }).describe("Details on the paged set of results returned.").optional()
607
- });
608
- var QueryPostsRequest = /* @__PURE__ */ z.object({
609
- query: /* @__PURE__ */ z.object({
610
- filter: /* @__PURE__ */ z.object({
611
- title: /* @__PURE__ */ z.object({
612
- $eq: /* @__PURE__ */ z.string(),
613
- $exists: /* @__PURE__ */ z.boolean(),
614
- $gt: /* @__PURE__ */ z.string(),
615
- $gte: /* @__PURE__ */ z.string(),
616
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
617
- $in: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
618
- $lt: /* @__PURE__ */ z.string(),
619
- $lte: /* @__PURE__ */ z.string(),
620
- $ne: /* @__PURE__ */ z.string(),
621
- $startsWith: /* @__PURE__ */ z.string()
622
- }).partial().strict().optional(),
623
- firstPublishedDate: /* @__PURE__ */ z.object({
624
- $eq: /* @__PURE__ */ z.string(),
625
- $gt: /* @__PURE__ */ z.string(),
626
- $gte: /* @__PURE__ */ z.string(),
627
- $in: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
628
- $lt: /* @__PURE__ */ z.string(),
629
- $lte: /* @__PURE__ */ z.string(),
630
- $ne: /* @__PURE__ */ z.string()
631
- }).partial().strict().optional(),
632
- lastPublishedDate: /* @__PURE__ */ z.object({
633
- $eq: /* @__PURE__ */ z.string(),
634
- $gt: /* @__PURE__ */ z.string(),
635
- $gte: /* @__PURE__ */ z.string(),
636
- $in: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
637
- $lt: /* @__PURE__ */ z.string(),
638
- $lte: /* @__PURE__ */ z.string(),
639
- $ne: /* @__PURE__ */ z.string()
640
- }).partial().strict().optional(),
641
- slug: /* @__PURE__ */ z.object({
642
- $eq: /* @__PURE__ */ z.string(),
643
- $hasAll: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
644
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
645
- $ne: /* @__PURE__ */ z.string(),
646
- $startsWith: /* @__PURE__ */ z.string()
647
- }).partial().strict().optional(),
648
- featured: /* @__PURE__ */ z.object({
649
- $eq: /* @__PURE__ */ z.boolean(),
650
- $ne: /* @__PURE__ */ z.boolean()
651
- }).partial().strict().optional(),
652
- pinned: /* @__PURE__ */ z.object({
653
- $eq: /* @__PURE__ */ z.boolean(),
654
- $ne: /* @__PURE__ */ z.boolean()
655
- }).partial().strict().optional(),
656
- categoryIds: /* @__PURE__ */ z.object({
657
- $hasAll: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
658
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string())
659
- }).partial().strict().optional(),
660
- memberId: /* @__PURE__ */ z.object({
661
- $eq: /* @__PURE__ */ z.string(),
662
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
663
- $ne: /* @__PURE__ */ z.string()
664
- }).partial().strict().optional(),
665
- hashtags: /* @__PURE__ */ z.object({
666
- $hasAll: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
667
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string())
668
- }).partial().strict().optional(),
669
- commentingEnabled: /* @__PURE__ */ z.object({
670
- $eq: /* @__PURE__ */ z.boolean(),
671
- $ne: /* @__PURE__ */ z.boolean()
672
- }).partial().strict().optional(),
673
- minutesToRead: /* @__PURE__ */ z.object({
674
- $eq: /* @__PURE__ */ z.number(),
675
- $gt: /* @__PURE__ */ z.number(),
676
- $gte: /* @__PURE__ */ z.number(),
677
- $in: /* @__PURE__ */ z.array(/* @__PURE__ */ z.number()),
678
- $lt: /* @__PURE__ */ z.number(),
679
- $lte: /* @__PURE__ */ z.number(),
680
- $ne: /* @__PURE__ */ z.number()
681
- }).partial().strict().optional(),
682
- tagIds: /* @__PURE__ */ z.object({
683
- $hasAll: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
684
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string())
685
- }).partial().strict().optional(),
686
- pricingPlanIds: /* @__PURE__ */ z.object({
687
- $hasAll: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
688
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string())
689
- }).partial().strict().optional(),
690
- language: /* @__PURE__ */ z.object({
691
- $eq: /* @__PURE__ */ z.string(),
692
- $exists: /* @__PURE__ */ z.boolean(),
693
- $hasSome: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
694
- $in: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
695
- $ne: /* @__PURE__ */ z.string()
696
- }).partial().strict().optional(),
697
- translationId: /* @__PURE__ */ z.object({
698
- $eq: /* @__PURE__ */ z.string(),
699
- $exists: /* @__PURE__ */ z.boolean(),
700
- $in: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()),
701
- $ne: /* @__PURE__ */ z.string()
702
- }).partial().strict().optional(),
703
- "media.displayed": /* @__PURE__ */ z.object({
704
- $eq: /* @__PURE__ */ z.boolean(),
705
- $ne: /* @__PURE__ */ z.boolean()
706
- }).partial().strict().optional(),
707
- $and: /* @__PURE__ */ z.array(/* @__PURE__ */ z.any()).optional(),
708
- $or: /* @__PURE__ */ z.array(/* @__PURE__ */ z.any()).optional(),
709
- $not: /* @__PURE__ */ z.any().optional()
710
- }).strict().optional(),
711
- sort: /* @__PURE__ */ z.array(
712
- /* @__PURE__ */ z.object({
713
- fieldName: /* @__PURE__ */ z.enum([
714
- "title",
715
- "firstPublishedDate",
716
- "lastPublishedDate",
717
- "slug",
718
- "featured",
719
- "pinned",
720
- "commentingEnabled"
721
- ]).optional(),
722
- order: /* @__PURE__ */ z.enum(["ASC", "DESC"]).optional()
723
- })
724
- ).optional()
725
- }).catchall(/* @__PURE__ */ z.any()).describe("Query options."),
726
- options: /* @__PURE__ */ z.object({
727
- fieldsets: /* @__PURE__ */ z.array(
728
- /* @__PURE__ */ z.enum([
729
- "UNKNOWN",
730
- "URL",
731
- "CONTENT_TEXT",
732
- "METRICS",
733
- "SEO",
734
- "CONTACT_ID",
735
- "RICH_CONTENT",
736
- "REFERENCE_ID"
737
- ])
738
- ).max(20).optional(),
739
- skipCount: /* @__PURE__ */ z.boolean().describe(
740
- "When true, omit `pagingMetadata.total`. `hasNext` and next cursor still come from the extra fetched row."
741
- ).optional().nullable()
742
- }).describe("Options specifying which fields to return.").optional()
743
- });
744
- var QueryPostsResponse = /* @__PURE__ */ z.object({
745
- posts: /* @__PURE__ */ z.array(
746
- /* @__PURE__ */ z.object({
747
- _id: /* @__PURE__ */ z.string().describe("Post ID.").regex(
748
- /^[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}$/,
749
- "Must be a valid GUID"
750
- ).optional(),
751
- title: /* @__PURE__ */ z.string().describe("Post title.").max(200).optional(),
752
- excerpt: /* @__PURE__ */ z.string().describe(
753
- "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"
754
- ).max(500).optional(),
755
- contentText: /* @__PURE__ */ z.string().describe("The post's content in plain text.").max(4e5).optional().nullable(),
756
- firstPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was first published.").optional().nullable(),
757
- lastPublishedDate: /* @__PURE__ */ z.date().describe("Date the post was last published.").optional().nullable(),
758
- url: /* @__PURE__ */ z.string().describe("Post URL.").optional(),
759
- slug: /* @__PURE__ */ z.string().describe("Post slug. For example, `'post-slug'`.").max(100).optional(),
760
- featured: /* @__PURE__ */ z.boolean().describe("Whether the post is marked as featured.").optional(),
761
- pinned: /* @__PURE__ */ z.boolean().describe(
762
- "Whether the post is pinned. If `true`, the post is placed at the top of the post list."
763
- ).optional(),
764
- categoryIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(10).optional(),
765
- memberId: /* @__PURE__ */ z.string().describe("Member ID of the post's owner.").regex(
766
- /^[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}$/,
767
- "Must be a valid GUID"
768
- ).optional(),
769
- hashtags: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
770
- commentingEnabled: /* @__PURE__ */ z.boolean().describe("Whether commenting on the post is enabled.").optional(),
771
- minutesToRead: /* @__PURE__ */ z.number().int().describe("Estimated reading time (calculated automatically).").optional(),
772
- heroImage: /* @__PURE__ */ z.string().describe(
773
- "Image placed at the top of the blog page. Only displays on mobile devices."
774
- ).optional(),
775
- tagIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(30).optional(),
776
- relatedPostIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(3).optional(),
777
- pricingPlanIds: /* @__PURE__ */ z.array(/* @__PURE__ */ z.string()).max(100).optional(),
778
- translationId: /* @__PURE__ */ z.string().describe(
779
- "ID of the translations of this post. All translations of a single post share the same `translationId`."
780
- ).regex(
781
- /^[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}$/,
782
- "Must be a valid GUID"
783
- ).optional().nullable(),
784
- language: /* @__PURE__ */ z.string().describe(
785
- "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."
786
- ).optional().nullable(),
787
- seoData: /* @__PURE__ */ z.object({
788
- tags: /* @__PURE__ */ z.array(
789
- /* @__PURE__ */ z.object({
790
- type: /* @__PURE__ */ z.string().describe(
791
- "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`)."
792
- ).optional(),
793
- props: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
794
- '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"}`.'
795
- ).optional().nullable(),
796
- meta: /* @__PURE__ */ z.record(/* @__PURE__ */ z.string(), /* @__PURE__ */ z.any()).describe(
797
- 'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
798
- ).optional().nullable(),
799
- children: /* @__PURE__ */ z.string().describe(
800
- "SEO tag inner content. For example, `<title> inner content </title>`."
801
- ).optional(),
802
- custom: /* @__PURE__ */ z.boolean().describe(
803
- "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."
804
- ).optional(),
805
- disabled: /* @__PURE__ */ z.boolean().describe(
806
- "Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
807
- ).optional()
808
- })
809
- ).optional(),
810
- settings: /* @__PURE__ */ z.object({
811
- preventAutoRedirect: /* @__PURE__ */ z.boolean().describe(
812
- "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)."
813
- ).optional(),
814
- keywords: /* @__PURE__ */ z.array(
815
- /* @__PURE__ */ z.object({
816
- term: /* @__PURE__ */ z.string().describe("Keyword value.").optional(),
817
- isMain: /* @__PURE__ */ z.boolean().describe(
818
- "Whether the keyword is the main focus keyword."
819
- ).optional(),
820
- origin: /* @__PURE__ */ z.string().describe(
821
- "The source that added the keyword terms to the SEO settings."
822
- ).max(1e3).optional().nullable()
823
- })
824
- ).max(5).optional()
825
- }).describe("SEO general settings.").optional()
826
- }).describe("SEO data.").optional(),
827
- contactId: /* @__PURE__ */ z.string().describe(
828
- "Contact ID of the post's owner. See the Contacts API for more info."
829
- ).regex(
830
- /^[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}$/,
831
- "Must be a valid GUID"
832
- ).optional().nullable(),
833
- richContent: /* @__PURE__ */ z.any().describe(
834
- '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>'
835
- ).optional(),
836
- preview: /* @__PURE__ */ z.boolean().describe(
837
- "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."
838
- ).optional(),
839
- moderationDetails: /* @__PURE__ */ z.object({
840
- submittedBy: /* @__PURE__ */ z.string().describe(
841
- "Member ID of the person submitting the draft post for review."
842
- ).regex(
843
- /^[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}$/,
844
- "Must be a valid GUID"
845
- ).optional(),
846
- submittedDate: /* @__PURE__ */ z.date().describe("Date the post was submitted for review.").optional().nullable(),
847
- status: /* @__PURE__ */ z.enum(["UNKNOWN", "APPROVED", "REJECTED"]).describe(
848
- "Status indicating whether the submission was approved or rejected by the moderator."
849
- ).optional(),
850
- moderatedBy: /* @__PURE__ */ z.string().describe(
851
- "Member ID of the person who approved or rejected the post."
852
- ).regex(
853
- /^[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}$/,
854
- "Must be a valid GUID"
855
- ).optional().nullable(),
856
- moderationDate: /* @__PURE__ */ z.date().describe("Date the post was approved or rejected.").optional().nullable()
857
- }).describe(
858
- "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."
859
- ).optional(),
860
- media: /* @__PURE__ */ z.intersection(
861
- /* @__PURE__ */ z.object({
862
- displayed: /* @__PURE__ */ z.boolean().describe("Whether cover media is displayed.").optional(),
863
- custom: /* @__PURE__ */ z.boolean().describe(
864
- "Whether custom cover media has been specified. If `false`, the first media item in the post's content serves as cover media."
865
- ).optional(),
866
- altText: /* @__PURE__ */ z.string().describe("Media alternative text.").min(1).max(1e3).optional().nullable()
867
- }),
868
- /* @__PURE__ */ z.xor([
869
- /* @__PURE__ */ z.object({
870
- wixMedia: /* @__PURE__ */ z.never().optional(),
871
- embedMedia: /* @__PURE__ */ z.never().optional()
872
- }),
873
- /* @__PURE__ */ z.object({
874
- embedMedia: /* @__PURE__ */ z.never().optional(),
875
- wixMedia: /* @__PURE__ */ z.object({
876
- image: /* @__PURE__ */ z.string().describe("Image details.").optional(),
877
- videoV2: /* @__PURE__ */ z.string().describe("Video details.").optional()
878
- }).describe("Wix Media details.")
879
- }),
880
- /* @__PURE__ */ z.object({
881
- wixMedia: /* @__PURE__ */ z.never().optional(),
882
- embedMedia: /* @__PURE__ */ z.object({
883
- thumbnail: /* @__PURE__ */ z.object({
884
- url: /* @__PURE__ */ z.string().describe("Thumbnail url.").max(2e3).optional(),
885
- width: /* @__PURE__ */ z.number().int().describe("Thumbnail width.").min(0).optional(),
886
- height: /* @__PURE__ */ z.number().int().describe("Thumbnail height.").min(0).optional()
887
- }).describe("Thumbnail details.").optional(),
888
- video: /* @__PURE__ */ z.object({
889
- url: /* @__PURE__ */ z.string().describe("Video url.").max(2e3).optional(),
890
- width: /* @__PURE__ */ z.number().int().describe("Video width.").min(0).optional(),
891
- height: /* @__PURE__ */ z.number().int().describe("Video height.").min(0).optional()
892
- }).describe("Video details.").optional()
893
- }).describe("Embed media details.")
894
- })
895
- ])
896
- ).describe("Post cover media.").optional(),
897
- hasUnpublishedChanges: /* @__PURE__ */ z.boolean().describe(
898
- "Indicates if there is a draft post with changes that have not yet been published."
899
- ).optional(),
900
- referenceId: /* @__PURE__ */ z.string().describe(
901
- "Post reference ID. You can reference the post from other entities, for example, comments."
902
- ).max(24).optional().nullable()
903
- })
904
- ).optional(),
905
- pagingMetadata: /* @__PURE__ */ z.object({
906
- count: /* @__PURE__ */ z.number().int().describe("Number of items returned in the response.").optional().nullable(),
907
- offset: /* @__PURE__ */ z.number().int().describe("Offset that was requested.").optional().nullable(),
908
- total: /* @__PURE__ */ z.number().int().describe(
909
- "Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set."
910
- ).optional().nullable(),
911
- tooManyToCount: /* @__PURE__ */ z.boolean().describe(
912
- "Flag that indicates the server failed to calculate the `total` field."
913
- ).optional().nullable(),
914
- cursors: /* @__PURE__ */ z.object({
915
- next: /* @__PURE__ */ z.string().describe("Cursor pointing to next page in the list of results.").max(2e3).optional().nullable(),
916
- prev: /* @__PURE__ */ z.string().describe(
917
- "Cursor pointing to previous page in the list of results."
918
- ).max(2e3).optional().nullable()
919
- }).describe(
920
- "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used."
921
- ).optional()
922
- }).describe("Details on the paged set of results returned.").optional()
923
- });
924
- var GetPostMetricsRequest = /* @__PURE__ */ z.object({
925
- postId: /* @__PURE__ */ z.string().describe("Post ID to retrieve metrics for.").min(1).max(38)
926
- });
927
- var GetPostMetricsResponse = /* @__PURE__ */ z.object({
928
- metrics: /* @__PURE__ */ z.object({
929
- comments: /* @__PURE__ */ z.number().int().describe("Total number of post comments.").optional(),
930
- likes: /* @__PURE__ */ z.number().int().describe("Total number of post likes.").optional(),
931
- views: /* @__PURE__ */ z.number().int().describe("Total number of post views.").optional()
932
- }).describe("Retrieved post metrics.").optional()
933
- });
934
- export {
935
- GetPostBySlugRequest,
936
- GetPostBySlugResponse,
937
- GetPostMetricsRequest,
938
- GetPostMetricsResponse,
939
- GetPostRequest,
940
- GetPostResponse,
941
- GetTotalPostsRequest,
942
- GetTotalPostsResponse,
943
- ListPostsRequest,
944
- ListPostsResponse,
945
- QueryPostCountStatsRequest,
946
- QueryPostCountStatsResponse,
947
- QueryPostsRequest,
948
- QueryPostsResponse
949
- };
950
- //# sourceMappingURL=schemas.mjs.map