@atomic-solutions/schemas 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +124 -0
- package/dist/common/index.cjs +105 -0
- package/dist/common/index.cjs.map +1 -0
- package/dist/common/index.d.cts +57 -0
- package/dist/common/index.d.ts +57 -0
- package/dist/common/index.js +97 -0
- package/dist/common/index.js.map +1 -0
- package/dist/index.cjs +1189 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1118 -0
- package/dist/index.js.map +1 -0
- package/dist/money.schema-BeHADrsV.d.cts +250 -0
- package/dist/money.schema-BeHADrsV.d.ts +250 -0
- package/dist/payment.schema-CjccuGNs.d.cts +4837 -0
- package/dist/payment.schema-CjccuGNs.d.ts +4837 -0
- package/dist/woocommerce/index.cjs +865 -0
- package/dist/woocommerce/index.cjs.map +1 -0
- package/dist/woocommerce/index.d.cts +54 -0
- package/dist/woocommerce/index.d.ts +54 -0
- package/dist/woocommerce/index.js +825 -0
- package/dist/woocommerce/index.js.map +1 -0
- package/dist/wordpress/index.cjs +325 -0
- package/dist/wordpress/index.cjs.map +1 -0
- package/dist/wordpress/index.d.cts +11883 -0
- package/dist/wordpress/index.d.ts +11883 -0
- package/dist/wordpress/index.js +293 -0
- package/dist/wordpress/index.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// src/wordpress/base.schema.ts
|
|
4
|
+
var RenderedContentSchema = z.object({
|
|
5
|
+
rendered: z.string(),
|
|
6
|
+
protected: z.boolean().optional()
|
|
7
|
+
});
|
|
8
|
+
var GuidSchema = z.object({
|
|
9
|
+
rendered: z.string()
|
|
10
|
+
});
|
|
11
|
+
var PostStatusSchema = z.enum([
|
|
12
|
+
"publish",
|
|
13
|
+
"future",
|
|
14
|
+
"draft",
|
|
15
|
+
"pending",
|
|
16
|
+
"private",
|
|
17
|
+
"trash",
|
|
18
|
+
"auto-draft",
|
|
19
|
+
"inherit"
|
|
20
|
+
]);
|
|
21
|
+
var HalLinkItemSchema = z.object({
|
|
22
|
+
href: z.string(),
|
|
23
|
+
embeddable: z.boolean().optional(),
|
|
24
|
+
templated: z.boolean().optional()
|
|
25
|
+
});
|
|
26
|
+
var HalLinksSchema = z.object({
|
|
27
|
+
self: z.array(HalLinkItemSchema).optional(),
|
|
28
|
+
collection: z.array(HalLinkItemSchema).optional(),
|
|
29
|
+
about: z.array(HalLinkItemSchema).optional(),
|
|
30
|
+
author: z.array(HalLinkItemSchema).optional(),
|
|
31
|
+
replies: z.array(HalLinkItemSchema).optional(),
|
|
32
|
+
"wp:featuredmedia": z.array(HalLinkItemSchema).optional(),
|
|
33
|
+
"wp:attachment": z.array(HalLinkItemSchema).optional(),
|
|
34
|
+
"wp:term": z.array(HalLinkItemSchema).optional(),
|
|
35
|
+
"wp:post_type": z.array(HalLinkItemSchema).optional(),
|
|
36
|
+
curies: z.array(
|
|
37
|
+
z.object({
|
|
38
|
+
name: z.string(),
|
|
39
|
+
href: z.string(),
|
|
40
|
+
templated: z.boolean()
|
|
41
|
+
})
|
|
42
|
+
).optional()
|
|
43
|
+
}).passthrough();
|
|
44
|
+
var WordPressBaseSchema = z.object({
|
|
45
|
+
id: z.number(),
|
|
46
|
+
date: z.string(),
|
|
47
|
+
date_gmt: z.string(),
|
|
48
|
+
modified: z.string(),
|
|
49
|
+
modified_gmt: z.string(),
|
|
50
|
+
slug: z.string(),
|
|
51
|
+
status: z.string(),
|
|
52
|
+
type: z.string(),
|
|
53
|
+
link: z.string(),
|
|
54
|
+
_links: HalLinksSchema.optional()
|
|
55
|
+
});
|
|
56
|
+
var PaginationParamsSchema = z.object({
|
|
57
|
+
page: z.number().optional(),
|
|
58
|
+
per_page: z.number().optional(),
|
|
59
|
+
offset: z.number().optional(),
|
|
60
|
+
order: z.enum(["asc", "desc"]).optional(),
|
|
61
|
+
orderby: z.string().optional()
|
|
62
|
+
});
|
|
63
|
+
var PostSchema = z.object({
|
|
64
|
+
id: z.number(),
|
|
65
|
+
date: z.string(),
|
|
66
|
+
date_gmt: z.string(),
|
|
67
|
+
guid: GuidSchema,
|
|
68
|
+
modified: z.string(),
|
|
69
|
+
modified_gmt: z.string(),
|
|
70
|
+
slug: z.string(),
|
|
71
|
+
status: z.string(),
|
|
72
|
+
type: z.string(),
|
|
73
|
+
link: z.string(),
|
|
74
|
+
title: RenderedContentSchema,
|
|
75
|
+
content: RenderedContentSchema,
|
|
76
|
+
excerpt: RenderedContentSchema,
|
|
77
|
+
author: z.number(),
|
|
78
|
+
featured_media: z.number(),
|
|
79
|
+
comment_status: z.string(),
|
|
80
|
+
ping_status: z.string(),
|
|
81
|
+
sticky: z.boolean(),
|
|
82
|
+
template: z.string(),
|
|
83
|
+
format: z.string(),
|
|
84
|
+
meta: z.any().optional(),
|
|
85
|
+
categories: z.array(z.number()),
|
|
86
|
+
tags: z.array(z.number()).optional(),
|
|
87
|
+
_links: HalLinksSchema.optional()
|
|
88
|
+
});
|
|
89
|
+
var PostsListSchema = z.array(PostSchema);
|
|
90
|
+
var PostParamsSchema = PaginationParamsSchema.extend({
|
|
91
|
+
context: z.enum(["view", "embed", "edit"]).optional(),
|
|
92
|
+
search: z.string().optional(),
|
|
93
|
+
after: z.string().optional(),
|
|
94
|
+
before: z.string().optional(),
|
|
95
|
+
author: z.union([z.number(), z.array(z.number())]).optional(),
|
|
96
|
+
author_exclude: z.array(z.number()).optional(),
|
|
97
|
+
exclude: z.array(z.number()).optional(),
|
|
98
|
+
include: z.array(z.number()).optional(),
|
|
99
|
+
categories: z.union([z.number(), z.array(z.number())]).optional(),
|
|
100
|
+
categories_exclude: z.array(z.number()).optional(),
|
|
101
|
+
tags: z.union([z.number(), z.array(z.number())]).optional(),
|
|
102
|
+
tags_exclude: z.array(z.number()).optional(),
|
|
103
|
+
sticky: z.boolean().optional()
|
|
104
|
+
});
|
|
105
|
+
var EmbeddedPostSchema = z.object({
|
|
106
|
+
id: z.number(),
|
|
107
|
+
title: z.string(),
|
|
108
|
+
content: z.string(),
|
|
109
|
+
featured_image: z.string().optional(),
|
|
110
|
+
published_date: z.string(),
|
|
111
|
+
categories: z.array(
|
|
112
|
+
z.object({
|
|
113
|
+
id: z.number(),
|
|
114
|
+
name: z.string(),
|
|
115
|
+
slug: z.string(),
|
|
116
|
+
taxonomy: z.string().optional(),
|
|
117
|
+
description: z.string().optional(),
|
|
118
|
+
parent: z.number().optional(),
|
|
119
|
+
count: z.number().optional()
|
|
120
|
+
})
|
|
121
|
+
).optional()
|
|
122
|
+
});
|
|
123
|
+
var EmbeddedPostsListSchema = z.array(EmbeddedPostSchema);
|
|
124
|
+
var CategorySchema = z.object({
|
|
125
|
+
id: z.number(),
|
|
126
|
+
count: z.number(),
|
|
127
|
+
description: z.string().optional(),
|
|
128
|
+
link: z.string(),
|
|
129
|
+
name: z.string(),
|
|
130
|
+
slug: z.string(),
|
|
131
|
+
taxonomy: z.string(),
|
|
132
|
+
parent: z.number(),
|
|
133
|
+
meta: z.any().optional(),
|
|
134
|
+
_links: HalLinksSchema.optional()
|
|
135
|
+
});
|
|
136
|
+
var CategoriesListSchema = z.array(CategorySchema);
|
|
137
|
+
var CategoryParamsSchema = PaginationParamsSchema.extend({
|
|
138
|
+
context: z.enum(["view", "embed", "edit"]).optional(),
|
|
139
|
+
search: z.string().optional(),
|
|
140
|
+
exclude: z.array(z.number()).optional(),
|
|
141
|
+
include: z.array(z.number()).optional(),
|
|
142
|
+
hide_empty: z.boolean().optional(),
|
|
143
|
+
parent: z.number().optional(),
|
|
144
|
+
post: z.number().optional(),
|
|
145
|
+
slug: z.string().optional()
|
|
146
|
+
});
|
|
147
|
+
var TagSchema = z.object({
|
|
148
|
+
id: z.number(),
|
|
149
|
+
count: z.number(),
|
|
150
|
+
description: z.string().optional(),
|
|
151
|
+
link: z.string(),
|
|
152
|
+
name: z.string(),
|
|
153
|
+
slug: z.string(),
|
|
154
|
+
taxonomy: z.string(),
|
|
155
|
+
meta: z.any().optional(),
|
|
156
|
+
_links: HalLinksSchema.optional()
|
|
157
|
+
});
|
|
158
|
+
var TagsListSchema = z.array(TagSchema);
|
|
159
|
+
var MediaSizeSchema = z.object({
|
|
160
|
+
file: z.string(),
|
|
161
|
+
width: z.number(),
|
|
162
|
+
height: z.number(),
|
|
163
|
+
filesize: z.number().optional(),
|
|
164
|
+
mime_type: z.string(),
|
|
165
|
+
source_url: z.string()
|
|
166
|
+
});
|
|
167
|
+
var MediaSizesSchema = z.object({
|
|
168
|
+
thumbnail: MediaSizeSchema.optional(),
|
|
169
|
+
medium: MediaSizeSchema.optional(),
|
|
170
|
+
medium_large: MediaSizeSchema.optional(),
|
|
171
|
+
large: MediaSizeSchema.optional(),
|
|
172
|
+
full: MediaSizeSchema.optional()
|
|
173
|
+
}).passthrough();
|
|
174
|
+
var ImageMetaSchema = z.object({
|
|
175
|
+
aperture: z.string().optional(),
|
|
176
|
+
credit: z.string().optional(),
|
|
177
|
+
camera: z.string().optional(),
|
|
178
|
+
caption: z.string().optional(),
|
|
179
|
+
created_timestamp: z.string().optional(),
|
|
180
|
+
copyright: z.string().optional(),
|
|
181
|
+
focal_length: z.string().optional(),
|
|
182
|
+
iso: z.string().optional(),
|
|
183
|
+
shutter_speed: z.string().optional(),
|
|
184
|
+
title: z.string().optional(),
|
|
185
|
+
orientation: z.string().optional(),
|
|
186
|
+
keywords: z.array(z.string()).optional()
|
|
187
|
+
});
|
|
188
|
+
var MediaDetailsSchema = z.object({
|
|
189
|
+
width: z.number(),
|
|
190
|
+
height: z.number(),
|
|
191
|
+
file: z.string(),
|
|
192
|
+
filesize: z.number().optional(),
|
|
193
|
+
sizes: MediaSizesSchema,
|
|
194
|
+
image_meta: ImageMetaSchema.optional()
|
|
195
|
+
});
|
|
196
|
+
var MediaSchema = z.object({
|
|
197
|
+
id: z.number(),
|
|
198
|
+
date: z.string(),
|
|
199
|
+
date_gmt: z.string(),
|
|
200
|
+
guid: GuidSchema,
|
|
201
|
+
modified: z.string(),
|
|
202
|
+
modified_gmt: z.string(),
|
|
203
|
+
slug: z.string(),
|
|
204
|
+
status: z.string(),
|
|
205
|
+
type: z.string(),
|
|
206
|
+
link: z.string(),
|
|
207
|
+
title: RenderedContentSchema,
|
|
208
|
+
author: z.number(),
|
|
209
|
+
comment_status: z.string(),
|
|
210
|
+
ping_status: z.string(),
|
|
211
|
+
template: z.string().optional(),
|
|
212
|
+
meta: z.any().optional(),
|
|
213
|
+
description: RenderedContentSchema,
|
|
214
|
+
caption: RenderedContentSchema,
|
|
215
|
+
alt_text: z.string(),
|
|
216
|
+
media_type: z.string(),
|
|
217
|
+
mime_type: z.string(),
|
|
218
|
+
media_details: MediaDetailsSchema,
|
|
219
|
+
post: z.number().nullable(),
|
|
220
|
+
source_url: z.string(),
|
|
221
|
+
_links: HalLinksSchema.optional()
|
|
222
|
+
});
|
|
223
|
+
var MediaListSchema = z.array(MediaSchema);
|
|
224
|
+
var AvatarUrlsSchema = z.object({
|
|
225
|
+
"24": z.string().optional(),
|
|
226
|
+
"48": z.string().optional(),
|
|
227
|
+
"96": z.string().optional()
|
|
228
|
+
});
|
|
229
|
+
var UserSchema = z.object({
|
|
230
|
+
id: z.number(),
|
|
231
|
+
username: z.string().optional(),
|
|
232
|
+
// Only in edit context
|
|
233
|
+
name: z.string(),
|
|
234
|
+
first_name: z.string().optional(),
|
|
235
|
+
last_name: z.string().optional(),
|
|
236
|
+
email: z.string().optional(),
|
|
237
|
+
// Only for current user or admin
|
|
238
|
+
url: z.string(),
|
|
239
|
+
description: z.string(),
|
|
240
|
+
link: z.string(),
|
|
241
|
+
locale: z.string().optional(),
|
|
242
|
+
// Only for current user
|
|
243
|
+
nickname: z.string().optional(),
|
|
244
|
+
// Only in edit context
|
|
245
|
+
slug: z.string(),
|
|
246
|
+
registered_date: z.string().optional(),
|
|
247
|
+
// Only in edit context
|
|
248
|
+
roles: z.array(z.string()).optional(),
|
|
249
|
+
// Only in edit context
|
|
250
|
+
capabilities: z.record(z.boolean()).optional(),
|
|
251
|
+
// Only in edit context
|
|
252
|
+
extra_capabilities: z.record(z.boolean()).optional(),
|
|
253
|
+
// Only in edit context
|
|
254
|
+
avatar_urls: AvatarUrlsSchema.optional(),
|
|
255
|
+
meta: z.any().optional(),
|
|
256
|
+
_links: HalLinksSchema.optional()
|
|
257
|
+
});
|
|
258
|
+
var UsersListSchema = z.array(UserSchema);
|
|
259
|
+
var CurrentUserSchema = UserSchema.extend({
|
|
260
|
+
username: z.string(),
|
|
261
|
+
email: z.string(),
|
|
262
|
+
locale: z.string(),
|
|
263
|
+
nickname: z.string(),
|
|
264
|
+
registered_date: z.string(),
|
|
265
|
+
roles: z.array(z.string())
|
|
266
|
+
});
|
|
267
|
+
var JwtLoginInputSchema = z.object({
|
|
268
|
+
username: z.string(),
|
|
269
|
+
password: z.string()
|
|
270
|
+
});
|
|
271
|
+
var JwtTokenResponseSchema = z.object({
|
|
272
|
+
token: z.string(),
|
|
273
|
+
user_email: z.string(),
|
|
274
|
+
user_nicename: z.string(),
|
|
275
|
+
user_display_name: z.string()
|
|
276
|
+
});
|
|
277
|
+
var JwtValidateResponseSchema = z.object({
|
|
278
|
+
code: z.string(),
|
|
279
|
+
data: z.object({
|
|
280
|
+
status: z.number()
|
|
281
|
+
})
|
|
282
|
+
});
|
|
283
|
+
var JwtErrorResponseSchema = z.object({
|
|
284
|
+
code: z.string(),
|
|
285
|
+
message: z.string(),
|
|
286
|
+
data: z.object({
|
|
287
|
+
status: z.number()
|
|
288
|
+
}).optional()
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
export { AvatarUrlsSchema, CategoriesListSchema, CategoryParamsSchema, CategorySchema, CurrentUserSchema, EmbeddedPostSchema, EmbeddedPostsListSchema, GuidSchema, HalLinkItemSchema, HalLinksSchema, ImageMetaSchema, JwtErrorResponseSchema, JwtLoginInputSchema, JwtTokenResponseSchema, JwtValidateResponseSchema, MediaDetailsSchema, MediaListSchema, MediaSchema, MediaSizeSchema, MediaSizesSchema, PaginationParamsSchema, PostParamsSchema, PostSchema, PostStatusSchema, PostsListSchema, RenderedContentSchema, TagSchema, TagsListSchema, UserSchema, UsersListSchema, WordPressBaseSchema };
|
|
292
|
+
//# sourceMappingURL=index.js.map
|
|
293
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/wordpress/base.schema.ts","../../src/wordpress/post.schema.ts","../../src/wordpress/category.schema.ts","../../src/wordpress/media.schema.ts","../../src/wordpress/user.schema.ts","../../src/wordpress/auth.schema.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Base WordPress REST API schemas\n *\n * Common types used across WordPress endpoints\n */\n\nimport { z } from 'zod';\n\n/**\n * WordPress rendered content field (title, content, excerpt)\n */\nexport const RenderedContentSchema = z.object({\n rendered: z.string(),\n protected: z.boolean().optional(),\n});\n\nexport type RenderedContent = z.infer<typeof RenderedContentSchema>;\n\n/**\n * WordPress GUID field\n */\nexport const GuidSchema = z.object({\n rendered: z.string(),\n});\n\nexport type Guid = z.infer<typeof GuidSchema>;\n\n/**\n * WordPress post status\n */\nexport const PostStatusSchema = z.enum([\n 'publish',\n 'future',\n 'draft',\n 'pending',\n 'private',\n 'trash',\n 'auto-draft',\n 'inherit',\n]);\n\nexport type PostStatus = z.infer<typeof PostStatusSchema>;\n\n/**\n * WordPress HAL link item\n */\nexport const HalLinkItemSchema = z.object({\n href: z.string(),\n embeddable: z.boolean().optional(),\n templated: z.boolean().optional(),\n});\n\nexport type HalLinkItem = z.infer<typeof HalLinkItemSchema>;\n\n/**\n * WordPress HAL _links object\n */\nexport const HalLinksSchema = z\n .object({\n self: z.array(HalLinkItemSchema).optional(),\n collection: z.array(HalLinkItemSchema).optional(),\n about: z.array(HalLinkItemSchema).optional(),\n author: z.array(HalLinkItemSchema).optional(),\n replies: z.array(HalLinkItemSchema).optional(),\n 'wp:featuredmedia': z.array(HalLinkItemSchema).optional(),\n 'wp:attachment': z.array(HalLinkItemSchema).optional(),\n 'wp:term': z.array(HalLinkItemSchema).optional(),\n 'wp:post_type': z.array(HalLinkItemSchema).optional(),\n curies: z\n .array(\n z.object({\n name: z.string(),\n href: z.string(),\n templated: z.boolean(),\n })\n )\n .optional(),\n })\n .passthrough();\n\nexport type HalLinks = z.infer<typeof HalLinksSchema>;\n\n/**\n * Common base fields for WordPress objects\n */\nexport const WordPressBaseSchema = z.object({\n id: z.number(),\n date: z.string(),\n date_gmt: z.string(),\n modified: z.string(),\n modified_gmt: z.string(),\n slug: z.string(),\n status: z.string(),\n type: z.string(),\n link: z.string(),\n _links: HalLinksSchema.optional(),\n});\n\nexport type WordPressBase = z.infer<typeof WordPressBaseSchema>;\n\n/**\n * WordPress pagination parameters\n */\nexport const PaginationParamsSchema = z.object({\n page: z.number().optional(),\n per_page: z.number().optional(),\n offset: z.number().optional(),\n order: z.enum(['asc', 'desc']).optional(),\n orderby: z.string().optional(),\n});\n\nexport type PaginationParams = z.infer<typeof PaginationParamsSchema>;\n","/**\n * WordPress Post Schema\n *\n * Based on WordPress REST API v2 /wp/v2/posts endpoint\n */\n\nimport { z } from 'zod';\nimport {\n RenderedContentSchema,\n GuidSchema,\n HalLinksSchema,\n PaginationParamsSchema,\n} from './base.schema';\n\n/**\n * WordPress Post object\n */\nexport const PostSchema = z.object({\n id: z.number(),\n date: z.string(),\n date_gmt: z.string(),\n guid: GuidSchema,\n modified: z.string(),\n modified_gmt: z.string(),\n slug: z.string(),\n status: z.string(),\n type: z.string(),\n link: z.string(),\n title: RenderedContentSchema,\n content: RenderedContentSchema,\n excerpt: RenderedContentSchema,\n author: z.number(),\n featured_media: z.number(),\n comment_status: z.string(),\n ping_status: z.string(),\n sticky: z.boolean(),\n template: z.string(),\n format: z.string(),\n meta: z.any().optional(),\n categories: z.array(z.number()),\n tags: z.array(z.number()).optional(),\n _links: HalLinksSchema.optional(),\n});\n\nexport type Post = z.infer<typeof PostSchema>;\n\n/**\n * Posts list schema\n */\nexport const PostsListSchema = z.array(PostSchema);\n\nexport type PostsList = z.infer<typeof PostsListSchema>;\n\n/**\n * Post query parameters\n */\nexport const PostParamsSchema = PaginationParamsSchema.extend({\n context: z.enum(['view', 'embed', 'edit']).optional(),\n search: z.string().optional(),\n after: z.string().optional(),\n before: z.string().optional(),\n author: z.union([z.number(), z.array(z.number())]).optional(),\n author_exclude: z.array(z.number()).optional(),\n exclude: z.array(z.number()).optional(),\n include: z.array(z.number()).optional(),\n categories: z.union([z.number(), z.array(z.number())]).optional(),\n categories_exclude: z.array(z.number()).optional(),\n tags: z.union([z.number(), z.array(z.number())]).optional(),\n tags_exclude: z.array(z.number()).optional(),\n sticky: z.boolean().optional(),\n});\n\nexport type PostParams = z.infer<typeof PostParamsSchema>;\n\n/**\n * Embedded post with featured media (custom endpoint response)\n */\nexport const EmbeddedPostSchema = z.object({\n id: z.number(),\n title: z.string(),\n content: z.string(),\n featured_image: z.string().optional(),\n published_date: z.string(),\n categories: z\n .array(\n z.object({\n id: z.number(),\n name: z.string(),\n slug: z.string(),\n taxonomy: z.string().optional(),\n description: z.string().optional(),\n parent: z.number().optional(),\n count: z.number().optional(),\n })\n )\n .optional(),\n});\n\nexport type EmbeddedPost = z.infer<typeof EmbeddedPostSchema>;\n\nexport const EmbeddedPostsListSchema = z.array(EmbeddedPostSchema);\n\nexport type EmbeddedPostsList = z.infer<typeof EmbeddedPostsListSchema>;\n","/**\n * WordPress Category/Taxonomy Schema\n *\n * Based on WordPress REST API v2 /wp/v2/categories endpoint\n */\n\nimport { z } from 'zod';\nimport { HalLinksSchema, PaginationParamsSchema } from './base.schema';\n\n/**\n * WordPress Category object\n */\nexport const CategorySchema = z.object({\n id: z.number(),\n count: z.number(),\n description: z.string().optional(),\n link: z.string(),\n name: z.string(),\n slug: z.string(),\n taxonomy: z.string(),\n parent: z.number(),\n meta: z.any().optional(),\n _links: HalLinksSchema.optional(),\n});\n\nexport type Category = z.infer<typeof CategorySchema>;\n\n/**\n * Categories list schema\n */\nexport const CategoriesListSchema = z.array(CategorySchema);\n\nexport type CategoriesList = z.infer<typeof CategoriesListSchema>;\n\n/**\n * Category query parameters\n */\nexport const CategoryParamsSchema = PaginationParamsSchema.extend({\n context: z.enum(['view', 'embed', 'edit']).optional(),\n search: z.string().optional(),\n exclude: z.array(z.number()).optional(),\n include: z.array(z.number()).optional(),\n hide_empty: z.boolean().optional(),\n parent: z.number().optional(),\n post: z.number().optional(),\n slug: z.string().optional(),\n});\n\nexport type CategoryParams = z.infer<typeof CategoryParamsSchema>;\n\n/**\n * WordPress Tag object (similar to Category)\n */\nexport const TagSchema = z.object({\n id: z.number(),\n count: z.number(),\n description: z.string().optional(),\n link: z.string(),\n name: z.string(),\n slug: z.string(),\n taxonomy: z.string(),\n meta: z.any().optional(),\n _links: HalLinksSchema.optional(),\n});\n\nexport type Tag = z.infer<typeof TagSchema>;\n\n/**\n * Tags list schema\n */\nexport const TagsListSchema = z.array(TagSchema);\n\nexport type TagsList = z.infer<typeof TagsListSchema>;\n","/**\n * WordPress Media Schema\n *\n * Based on WordPress REST API v2 /wp/v2/media endpoint\n */\n\nimport { z } from 'zod';\nimport { RenderedContentSchema, GuidSchema, HalLinksSchema } from './base.schema';\n\n/**\n * Media size details (thumbnail, medium, large, etc.)\n */\nexport const MediaSizeSchema = z.object({\n file: z.string(),\n width: z.number(),\n height: z.number(),\n filesize: z.number().optional(),\n mime_type: z.string(),\n source_url: z.string(),\n});\n\nexport type MediaSize = z.infer<typeof MediaSizeSchema>;\n\n/**\n * Standard WordPress media sizes\n */\nexport const MediaSizesSchema = z\n .object({\n thumbnail: MediaSizeSchema.optional(),\n medium: MediaSizeSchema.optional(),\n medium_large: MediaSizeSchema.optional(),\n large: MediaSizeSchema.optional(),\n full: MediaSizeSchema.optional(),\n })\n .passthrough(); // Allow custom theme sizes\n\nexport type MediaSizes = z.infer<typeof MediaSizesSchema>;\n\n/**\n * Image EXIF/metadata\n */\nexport const ImageMetaSchema = z.object({\n aperture: z.string().optional(),\n credit: z.string().optional(),\n camera: z.string().optional(),\n caption: z.string().optional(),\n created_timestamp: z.string().optional(),\n copyright: z.string().optional(),\n focal_length: z.string().optional(),\n iso: z.string().optional(),\n shutter_speed: z.string().optional(),\n title: z.string().optional(),\n orientation: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n});\n\nexport type ImageMeta = z.infer<typeof ImageMetaSchema>;\n\n/**\n * Media details including sizes and metadata\n */\nexport const MediaDetailsSchema = z.object({\n width: z.number(),\n height: z.number(),\n file: z.string(),\n filesize: z.number().optional(),\n sizes: MediaSizesSchema,\n image_meta: ImageMetaSchema.optional(),\n});\n\nexport type MediaDetails = z.infer<typeof MediaDetailsSchema>;\n\n/**\n * WordPress Media attachment object\n */\nexport const MediaSchema = z.object({\n id: z.number(),\n date: z.string(),\n date_gmt: z.string(),\n guid: GuidSchema,\n modified: z.string(),\n modified_gmt: z.string(),\n slug: z.string(),\n status: z.string(),\n type: z.string(),\n link: z.string(),\n title: RenderedContentSchema,\n author: z.number(),\n comment_status: z.string(),\n ping_status: z.string(),\n template: z.string().optional(),\n meta: z.any().optional(),\n description: RenderedContentSchema,\n caption: RenderedContentSchema,\n alt_text: z.string(),\n media_type: z.string(),\n mime_type: z.string(),\n media_details: MediaDetailsSchema,\n post: z.number().nullable(),\n source_url: z.string(),\n _links: HalLinksSchema.optional(),\n});\n\nexport type Media = z.infer<typeof MediaSchema>;\n\n/**\n * Media list schema\n */\nexport const MediaListSchema = z.array(MediaSchema);\n\nexport type MediaList = z.infer<typeof MediaListSchema>;\n","/**\n * WordPress User Schema\n *\n * Based on WordPress REST API v2 /wp/v2/users endpoint\n */\n\nimport { z } from 'zod';\nimport { HalLinksSchema } from './base.schema';\n\n/**\n * User avatar URLs\n */\nexport const AvatarUrlsSchema = z.object({\n '24': z.string().optional(),\n '48': z.string().optional(),\n '96': z.string().optional(),\n});\n\nexport type AvatarUrls = z.infer<typeof AvatarUrlsSchema>;\n\n/**\n * WordPress User object\n */\nexport const UserSchema = z.object({\n id: z.number(),\n username: z.string().optional(), // Only in edit context\n name: z.string(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n email: z.string().optional(), // Only for current user or admin\n url: z.string(),\n description: z.string(),\n link: z.string(),\n locale: z.string().optional(), // Only for current user\n nickname: z.string().optional(), // Only in edit context\n slug: z.string(),\n registered_date: z.string().optional(), // Only in edit context\n roles: z.array(z.string()).optional(), // Only in edit context\n capabilities: z.record(z.boolean()).optional(), // Only in edit context\n extra_capabilities: z.record(z.boolean()).optional(), // Only in edit context\n avatar_urls: AvatarUrlsSchema.optional(),\n meta: z.any().optional(),\n _links: HalLinksSchema.optional(),\n});\n\nexport type User = z.infer<typeof UserSchema>;\n\n/**\n * Users list schema\n */\nexport const UsersListSchema = z.array(UserSchema);\n\nexport type UsersList = z.infer<typeof UsersListSchema>;\n\n/**\n * Current user response (from /users/me)\n * Includes additional fields not available in public user endpoints\n */\nexport const CurrentUserSchema = UserSchema.extend({\n username: z.string(),\n email: z.string(),\n locale: z.string(),\n nickname: z.string(),\n registered_date: z.string(),\n roles: z.array(z.string()),\n});\n\nexport type CurrentUser = z.infer<typeof CurrentUserSchema>;\n","/**\n * WordPress JWT Authentication Schema\n *\n * Based on JWT Authentication for WP REST API plugin\n * Endpoint: /jwt-auth/v1/token\n */\n\nimport { z } from 'zod';\n\n/**\n * JWT login request\n */\nexport const JwtLoginInputSchema = z.object({\n username: z.string(),\n password: z.string(),\n});\n\nexport type JwtLoginInput = z.infer<typeof JwtLoginInputSchema>;\n\n/**\n * JWT token response from /jwt-auth/v1/token\n */\nexport const JwtTokenResponseSchema = z.object({\n token: z.string(),\n user_email: z.string(),\n user_nicename: z.string(),\n user_display_name: z.string(),\n});\n\nexport type JwtTokenResponse = z.infer<typeof JwtTokenResponseSchema>;\n\n/**\n * JWT token validation response from /jwt-auth/v1/token/validate\n */\nexport const JwtValidateResponseSchema = z.object({\n code: z.string(),\n data: z.object({\n status: z.number(),\n }),\n});\n\nexport type JwtValidateResponse = z.infer<typeof JwtValidateResponseSchema>;\n\n/**\n * JWT error response\n */\nexport const JwtErrorResponseSchema = z.object({\n code: z.string(),\n message: z.string(),\n data: z\n .object({\n status: z.number(),\n })\n .optional(),\n});\n\nexport type JwtErrorResponse = z.infer<typeof JwtErrorResponseSchema>;\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@atomic-solutions/schemas",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared Zod schemas for WooCommerce, WordPress, and common types",
|
|
5
|
+
"private": false,
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "restricted"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/atomic-solutions/schemas.git"
|
|
12
|
+
},
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.js",
|
|
20
|
+
"require": "./dist/index.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./woocommerce": {
|
|
23
|
+
"types": "./dist/woocommerce/index.d.ts",
|
|
24
|
+
"import": "./dist/woocommerce/index.js",
|
|
25
|
+
"require": "./dist/woocommerce/index.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./wordpress": {
|
|
28
|
+
"types": "./dist/wordpress/index.d.ts",
|
|
29
|
+
"import": "./dist/wordpress/index.js",
|
|
30
|
+
"require": "./dist/wordpress/index.cjs"
|
|
31
|
+
},
|
|
32
|
+
"./common": {
|
|
33
|
+
"types": "./dist/common/index.d.ts",
|
|
34
|
+
"import": "./dist/common/index.js",
|
|
35
|
+
"require": "./dist/common/index.cjs"
|
|
36
|
+
},
|
|
37
|
+
"./package.json": "./package.json"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md",
|
|
42
|
+
"LICENSE"
|
|
43
|
+
],
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsup",
|
|
46
|
+
"dev": "tsup --watch",
|
|
47
|
+
"typecheck": "tsc --noEmit",
|
|
48
|
+
"lint": "eslint src --ext .ts",
|
|
49
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
50
|
+
"format": "prettier --write src",
|
|
51
|
+
"format:check": "prettier --check src",
|
|
52
|
+
"test": "vitest run",
|
|
53
|
+
"test:watch": "vitest",
|
|
54
|
+
"clean": "rm -rf dist"
|
|
55
|
+
},
|
|
56
|
+
"keywords": [
|
|
57
|
+
"zod",
|
|
58
|
+
"schemas",
|
|
59
|
+
"woocommerce",
|
|
60
|
+
"wordpress",
|
|
61
|
+
"typescript",
|
|
62
|
+
"validation"
|
|
63
|
+
],
|
|
64
|
+
"author": "Atomic Solutions",
|
|
65
|
+
"license": "MIT",
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"zod": ">=3.0.0"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@types/node": "^22.9.0",
|
|
71
|
+
"prettier": "^3.3.3",
|
|
72
|
+
"tsup": "^8.3.5",
|
|
73
|
+
"typescript": "^5.6.3",
|
|
74
|
+
"vitest": "^2.1.5",
|
|
75
|
+
"zod": "^3.23.0"
|
|
76
|
+
},
|
|
77
|
+
"sideEffects": false
|
|
78
|
+
}
|