@kids-reporter/api-types 0.0.2 → 0.0.3
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/dist/api-variables.d.ts +120 -0
- package/dist/api-variables.d.ts.map +1 -0
- package/dist/api-variables.js +32 -0
- package/dist/api-variables.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/rest.d.ts +0 -3
- package/dist/rest.d.ts.map +1 -1
- package/dist/rest.js.map +1 -1
- package/dist/schemas/content.d.ts +0 -1
- package/dist/schemas/content.d.ts.map +1 -1
- package/dist/schemas/content.js.map +1 -1
- package/dist/schemas/extra-openapi-paths.d.ts +79 -0
- package/dist/schemas/extra-openapi-paths.d.ts.map +1 -1
- package/dist/schemas/extra-openapi-paths.js +4 -4
- package/dist/schemas/extra-openapi-paths.js.map +1 -1
- package/dist/schemas/member-essay-answers-has-liked.d.ts +5 -0
- package/dist/schemas/member-essay-answers-has-liked.d.ts.map +1 -1
- package/dist/schemas/member-essay-answers-has-liked.js +1 -1
- package/dist/schemas/member-essay-answers-has-liked.js.map +1 -1
- package/dist/schemas/qna.d.ts +6 -0
- package/dist/schemas/qna.d.ts.map +1 -1
- package/dist/schemas/qna.js +2 -2
- package/dist/schemas/qna.js.map +1 -1
- package/dist/shared-types.d.ts +17 -0
- package/dist/shared-types.d.ts.map +1 -0
- package/dist/shared-types.js +2 -0
- package/dist/shared-types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request variable types (path params, query strings, bodies, client composites).
|
|
3
|
+
* Inferred from Zod schemas — single source of truth for api/ and content-api layers.
|
|
4
|
+
*/
|
|
5
|
+
import type { z } from 'zod';
|
|
6
|
+
import { V1AuthorAvatarPathParamsSchema, V1CallBaodaozaiIntroPathParamsSchema, V1EditorPicksSettingsQuerySchema, V1MemberPostsWithAnswersQuerySchema, V1PostBySlugPathParamsSchema, V1PostBySlugQuerySchema, V1PostsEssayAnswersWithLikesQuerySchema, V1PostsQuerySchema, V1ProjectsQuerySchema, V1SitemapsQuerySchema } from './schemas/content.js';
|
|
7
|
+
import { V1AuthorBySlugPostsQuerySchema, V1CategoryBySlugMetadataQuerySchema, V1CategoryPostsQuerySchema, V1FeedSlugPathParamsSchema, V1SubSubcategoryBySlugPostsQuerySchema, V1TagBySlugPostsQuerySchema } from './schemas/content-feed-queries.js';
|
|
8
|
+
import { V1EssayAnswersHasLikedQuerySchema } from './schemas/member-essay-answers-has-liked.js';
|
|
9
|
+
import { V1AllPostEssayAnswersQuerySchema, V1CreatePostChoiceAnswerBodySchema, V1CreatePostEssayAnswerBodySchema, V1CreatePostEssayAnswerLikeBodySchema, V1MemberPostChoiceAnswersQuerySchema, V1MemberPostEssayAnswersQuerySchema, V1PatchPostChoiceAnswerBodySchema, V1PatchPostEssayAnswerBodySchema, V1PostChoiceAnswerPathIdSchema, V1PostEssayAnswerLikePathIdSchema, V1PostEssayAnswerPathIdSchema, V1PostEssayQuestionAnswersParamsSchema, V1PostEssayQuestionAnswersQuerySchema } from './schemas/qna.js';
|
|
10
|
+
import type { V1MemberProfilePatchBody } from './shared-types.js';
|
|
11
|
+
export type V1PostsQuery = z.infer<typeof V1PostsQuerySchema>;
|
|
12
|
+
export type V1PostBySlugPathParams = z.infer<typeof V1PostBySlugPathParamsSchema>;
|
|
13
|
+
export type V1PostBySlugQuery = z.infer<typeof V1PostBySlugQuerySchema>;
|
|
14
|
+
export type V1PostsEssayAnswersWithLikesQuery = z.infer<typeof V1PostsEssayAnswersWithLikesQuerySchema>;
|
|
15
|
+
export type V1SitemapsQuery = z.infer<typeof V1SitemapsQuerySchema>;
|
|
16
|
+
export type V1ProjectsQuery = z.infer<typeof V1ProjectsQuerySchema>;
|
|
17
|
+
export type V1EditorPicksSettingsQuery = z.infer<typeof V1EditorPicksSettingsQuerySchema>;
|
|
18
|
+
export type V1MemberPostsWithAnswersQuery = z.infer<typeof V1MemberPostsWithAnswersQuerySchema>;
|
|
19
|
+
export type { V1MemberProfilePatchBody };
|
|
20
|
+
export type V1AuthorAvatarPathParams = z.infer<typeof V1AuthorAvatarPathParamsSchema>;
|
|
21
|
+
export type V1CallBaodaozaiIntroPathParams = z.infer<typeof V1CallBaodaozaiIntroPathParamsSchema>;
|
|
22
|
+
export declare const V1PostBySlugRequestSchema: z.ZodObject<{
|
|
23
|
+
slug: z.ZodString;
|
|
24
|
+
take: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
|
|
25
|
+
postEssayQuestionsTake: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
|
|
26
|
+
postChoiceQuestionsTake: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type V1PostBySlugRequest = z.infer<typeof V1PostBySlugRequestSchema>;
|
|
29
|
+
export type V1PostMetaBySlugRequest = Pick<V1PostBySlugRequest, 'slug'>;
|
|
30
|
+
export type V1FeedSlugPathParams = z.infer<typeof V1FeedSlugPathParamsSchema>;
|
|
31
|
+
export type V1CategoryPostsQuery = z.infer<typeof V1CategoryPostsQuerySchema>;
|
|
32
|
+
export type V1CategoryBySlugMetadataQuery = z.infer<typeof V1CategoryBySlugMetadataQuerySchema>;
|
|
33
|
+
export type V1SubSubcategoryBySlugPostsQuery = z.infer<typeof V1SubSubcategoryBySlugPostsQuerySchema>;
|
|
34
|
+
export type V1TagBySlugPostsQuery = z.infer<typeof V1TagBySlugPostsQuerySchema>;
|
|
35
|
+
export type V1AuthorBySlugPostsQuery = z.infer<typeof V1AuthorBySlugPostsQuerySchema>;
|
|
36
|
+
export declare const V1CategoryPostsRequestSchema: z.ZodObject<{
|
|
37
|
+
slug: z.ZodString;
|
|
38
|
+
take: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
39
|
+
skip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type V1CategoryPostsRequest = z.infer<typeof V1CategoryPostsRequestSchema>;
|
|
42
|
+
export declare const V1CategoryMetadataRequestSchema: z.ZodObject<{
|
|
43
|
+
slug: z.ZodString;
|
|
44
|
+
subcategorySlug: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export type V1CategoryMetadataRequest = z.infer<typeof V1CategoryMetadataRequestSchema>;
|
|
47
|
+
export declare const V1CategorySubcategoriesThemeRequestSchema: z.ZodObject<{
|
|
48
|
+
slug: z.ZodString;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
export type V1CategorySubcategoriesThemeRequest = z.infer<typeof V1CategorySubcategoriesThemeRequestSchema>;
|
|
51
|
+
export declare const V1SubcategoryPostsRequestSchema: z.ZodObject<{
|
|
52
|
+
slug: z.ZodString;
|
|
53
|
+
take: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
54
|
+
skip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export type V1SubcategoryPostsRequest = z.infer<typeof V1SubcategoryPostsRequestSchema>;
|
|
57
|
+
export declare const V1SubSubcategoryPostsRequestSchema: z.ZodObject<{
|
|
58
|
+
slug: z.ZodString;
|
|
59
|
+
take: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
60
|
+
skip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
61
|
+
orderBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
62
|
+
"publishedDate:desc": "publishedDate:desc";
|
|
63
|
+
}>>>;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
export type V1SubSubcategoryPostsRequest = z.infer<typeof V1SubSubcategoryPostsRequestSchema>;
|
|
66
|
+
export declare const V1TagPostsRequestSchema: z.ZodObject<{
|
|
67
|
+
slug: z.ZodString;
|
|
68
|
+
take: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
69
|
+
skip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
70
|
+
orderBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
71
|
+
"publishedDate:desc": "publishedDate:desc";
|
|
72
|
+
}>>>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export type V1TagPostsRequest = z.infer<typeof V1TagPostsRequestSchema>;
|
|
75
|
+
export declare const V1AuthorPostsRequestSchema: z.ZodObject<{
|
|
76
|
+
slug: z.ZodString;
|
|
77
|
+
take: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
78
|
+
skip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
79
|
+
orderBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
80
|
+
"publishedDate:desc": "publishedDate:desc";
|
|
81
|
+
}>>>;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
export type V1AuthorPostsRequest = z.infer<typeof V1AuthorPostsRequestSchema>;
|
|
84
|
+
export declare const V1AuthorMetaRequestSchema: z.ZodObject<{
|
|
85
|
+
slug: z.ZodString;
|
|
86
|
+
}, z.core.$strip>;
|
|
87
|
+
export type V1AuthorMetaRequest = z.infer<typeof V1AuthorMetaRequestSchema>;
|
|
88
|
+
export declare const V1TagMetaRequestSchema: z.ZodObject<{
|
|
89
|
+
slug: z.ZodString;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
export type V1TagMetaRequest = z.infer<typeof V1TagMetaRequestSchema>;
|
|
92
|
+
export declare const V1ProjectBySlugRequestSchema: z.ZodObject<{
|
|
93
|
+
slug: z.ZodString;
|
|
94
|
+
}, z.core.$strip>;
|
|
95
|
+
export type V1ProjectBySlugRequest = z.infer<typeof V1ProjectBySlugRequestSchema>;
|
|
96
|
+
export type V1AllPostEssayAnswersQuery = z.infer<typeof V1AllPostEssayAnswersQuerySchema>;
|
|
97
|
+
export type V1PostEssayQuestionAnswersParams = z.infer<typeof V1PostEssayQuestionAnswersParamsSchema>;
|
|
98
|
+
export type V1PostEssayQuestionAnswersQuery = z.infer<typeof V1PostEssayQuestionAnswersQuerySchema>;
|
|
99
|
+
export declare const V1PostEssayQuestionAnswersRequestSchema: z.ZodObject<{
|
|
100
|
+
questionId: z.ZodCoercedNumber<unknown>;
|
|
101
|
+
answerTake: z.ZodCoercedNumber<unknown>;
|
|
102
|
+
answerSkip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
103
|
+
answerOrderBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
104
|
+
"likesCount:desc": "likesCount:desc";
|
|
105
|
+
"createdAt:desc": "createdAt:desc";
|
|
106
|
+
}>>>;
|
|
107
|
+
}, z.core.$strip>;
|
|
108
|
+
export type V1PostEssayQuestionAnswersRequest = z.infer<typeof V1PostEssayQuestionAnswersRequestSchema>;
|
|
109
|
+
export type V1MemberPostChoiceAnswersQuery = z.infer<typeof V1MemberPostChoiceAnswersQuerySchema>;
|
|
110
|
+
export type V1MemberPostEssayAnswersQuery = z.infer<typeof V1MemberPostEssayAnswersQuerySchema>;
|
|
111
|
+
export type V1CreatePostChoiceAnswerBody = z.infer<typeof V1CreatePostChoiceAnswerBodySchema>;
|
|
112
|
+
export type V1PatchPostChoiceAnswerBody = z.infer<typeof V1PatchPostChoiceAnswerBodySchema>;
|
|
113
|
+
export type V1CreatePostEssayAnswerBody = z.infer<typeof V1CreatePostEssayAnswerBodySchema>;
|
|
114
|
+
export type V1PatchPostEssayAnswerBody = z.infer<typeof V1PatchPostEssayAnswerBodySchema>;
|
|
115
|
+
export type V1CreatePostEssayAnswerLikeBody = z.infer<typeof V1CreatePostEssayAnswerLikeBodySchema>;
|
|
116
|
+
export type V1PostChoiceAnswerPathId = z.infer<typeof V1PostChoiceAnswerPathIdSchema>;
|
|
117
|
+
export type V1PostEssayAnswerPathId = z.infer<typeof V1PostEssayAnswerPathIdSchema>;
|
|
118
|
+
export type V1PostEssayAnswerLikePathId = z.infer<typeof V1PostEssayAnswerLikePathIdSchema>;
|
|
119
|
+
export type V1EssayAnswersHasLikedQuery = z.infer<typeof V1EssayAnswersHasLikedQuerySchema>;
|
|
120
|
+
//# sourceMappingURL=api-variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-variables.d.ts","sourceRoot":"","sources":["../src/api-variables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request variable types (path params, query strings, bodies, client composites).
|
|
3
|
+
* Inferred from Zod schemas — single source of truth for api/ and content-api layers.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { V1PostBySlugPathParamsSchema, V1PostBySlugQuerySchema } from './schemas/content.js';
|
|
7
|
+
import { V1AuthorBySlugPostsQuerySchema, V1CategoryBySlugMetadataQuerySchema, V1CategoryPostsQuerySchema, V1FeedSlugPathParamsSchema, V1SubSubcategoryBySlugPostsQuerySchema, V1TagBySlugPostsQuerySchema } from './schemas/content-feed-queries.js';
|
|
8
|
+
import { V1PostEssayQuestionAnswersParamsSchema, V1PostEssayQuestionAnswersQuerySchema } from './schemas/qna.js';
|
|
9
|
+
|
|
10
|
+
// --- Posts / content ---
|
|
11
|
+
|
|
12
|
+
export const V1PostBySlugRequestSchema = V1PostBySlugPathParamsSchema.merge(V1PostBySlugQuerySchema);
|
|
13
|
+
|
|
14
|
+
// --- Feeds ---
|
|
15
|
+
|
|
16
|
+
export const V1CategoryPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(V1CategoryPostsQuerySchema);
|
|
17
|
+
export const V1CategoryMetadataRequestSchema = V1FeedSlugPathParamsSchema.merge(V1CategoryBySlugMetadataQuerySchema);
|
|
18
|
+
export const V1CategorySubcategoriesThemeRequestSchema = V1FeedSlugPathParamsSchema;
|
|
19
|
+
export const V1SubcategoryPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(V1CategoryPostsQuerySchema);
|
|
20
|
+
export const V1SubSubcategoryPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(V1SubSubcategoryBySlugPostsQuerySchema);
|
|
21
|
+
export const V1TagPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(V1TagBySlugPostsQuerySchema);
|
|
22
|
+
export const V1AuthorPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(V1AuthorBySlugPostsQuerySchema);
|
|
23
|
+
export const V1AuthorMetaRequestSchema = V1FeedSlugPathParamsSchema;
|
|
24
|
+
export const V1TagMetaRequestSchema = V1FeedSlugPathParamsSchema;
|
|
25
|
+
export const V1ProjectBySlugRequestSchema = V1FeedSlugPathParamsSchema;
|
|
26
|
+
|
|
27
|
+
// --- QnA ---
|
|
28
|
+
|
|
29
|
+
export const V1PostEssayQuestionAnswersRequestSchema = V1PostEssayQuestionAnswersParamsSchema.merge(V1PostEssayQuestionAnswersQuerySchema);
|
|
30
|
+
|
|
31
|
+
// --- Member activity ---
|
|
32
|
+
//# sourceMappingURL=api-variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-variables.js","names":["V1PostBySlugPathParamsSchema","V1PostBySlugQuerySchema","V1AuthorBySlugPostsQuerySchema","V1CategoryBySlugMetadataQuerySchema","V1CategoryPostsQuerySchema","V1FeedSlugPathParamsSchema","V1SubSubcategoryBySlugPostsQuerySchema","V1TagBySlugPostsQuerySchema","V1PostEssayQuestionAnswersParamsSchema","V1PostEssayQuestionAnswersQuerySchema","V1PostBySlugRequestSchema","merge","V1CategoryPostsRequestSchema","V1CategoryMetadataRequestSchema","V1CategorySubcategoriesThemeRequestSchema","V1SubcategoryPostsRequestSchema","V1SubSubcategoryPostsRequestSchema","V1TagPostsRequestSchema","V1AuthorPostsRequestSchema","V1AuthorMetaRequestSchema","V1TagMetaRequestSchema","V1ProjectBySlugRequestSchema","V1PostEssayQuestionAnswersRequestSchema"],"sources":["../src/api-variables.ts"],"sourcesContent":["/**\n * Request variable types (path params, query strings, bodies, client composites).\n * Inferred from Zod schemas — single source of truth for api/ and content-api layers.\n */\nimport type { z } from 'zod'\n\nimport {\n V1AuthorAvatarPathParamsSchema,\n V1CallBaodaozaiIntroPathParamsSchema,\n V1EditorPicksSettingsQuerySchema,\n V1MemberPostsWithAnswersQuerySchema,\n V1PostBySlugPathParamsSchema,\n V1PostBySlugQuerySchema,\n V1PostsEssayAnswersWithLikesQuerySchema,\n V1PostsQuerySchema,\n V1ProjectsQuerySchema,\n V1SitemapsQuerySchema,\n} from './schemas/content.js'\nimport {\n V1AuthorBySlugPostsQuerySchema,\n V1CategoryBySlugMetadataQuerySchema,\n V1CategoryPostsQuerySchema,\n V1FeedSlugPathParamsSchema,\n V1SubSubcategoryBySlugPostsQuerySchema,\n V1TagBySlugPostsQuerySchema,\n} from './schemas/content-feed-queries.js'\nimport { V1EssayAnswersHasLikedQuerySchema } from './schemas/member-essay-answers-has-liked.js'\nimport {\n V1AllPostEssayAnswersQuerySchema,\n V1CreatePostChoiceAnswerBodySchema,\n V1CreatePostEssayAnswerBodySchema,\n V1CreatePostEssayAnswerLikeBodySchema,\n V1MemberPostChoiceAnswersQuerySchema,\n V1MemberPostEssayAnswersQuerySchema,\n V1PatchPostChoiceAnswerBodySchema,\n V1PatchPostEssayAnswerBodySchema,\n V1PostChoiceAnswerPathIdSchema,\n V1PostEssayAnswerLikePathIdSchema,\n V1PostEssayAnswerPathIdSchema,\n V1PostEssayQuestionAnswersParamsSchema,\n V1PostEssayQuestionAnswersQuerySchema,\n} from './schemas/qna.js'\nimport type { V1MemberProfilePatchBody } from './shared-types.js'\n\n// --- Posts / content ---\n\nexport type V1PostsQuery = z.infer<typeof V1PostsQuerySchema>\nexport type V1PostBySlugPathParams = z.infer<\n typeof V1PostBySlugPathParamsSchema\n>\nexport type V1PostBySlugQuery = z.infer<typeof V1PostBySlugQuerySchema>\nexport type V1PostsEssayAnswersWithLikesQuery = z.infer<\n typeof V1PostsEssayAnswersWithLikesQuerySchema\n>\nexport type V1SitemapsQuery = z.infer<typeof V1SitemapsQuerySchema>\nexport type V1ProjectsQuery = z.infer<typeof V1ProjectsQuerySchema>\nexport type V1EditorPicksSettingsQuery = z.infer<\n typeof V1EditorPicksSettingsQuerySchema\n>\nexport type V1MemberPostsWithAnswersQuery = z.infer<\n typeof V1MemberPostsWithAnswersQuerySchema\n>\nexport type { V1MemberProfilePatchBody }\nexport type V1AuthorAvatarPathParams = z.infer<\n typeof V1AuthorAvatarPathParamsSchema\n>\nexport type V1CallBaodaozaiIntroPathParams = z.infer<\n typeof V1CallBaodaozaiIntroPathParamsSchema\n>\n\nexport const V1PostBySlugRequestSchema = V1PostBySlugPathParamsSchema.merge(\n V1PostBySlugQuerySchema\n)\nexport type V1PostBySlugRequest = z.infer<typeof V1PostBySlugRequestSchema>\n\nexport type V1PostMetaBySlugRequest = Pick<V1PostBySlugRequest, 'slug'>\n\n// --- Feeds ---\n\nexport type V1FeedSlugPathParams = z.infer<typeof V1FeedSlugPathParamsSchema>\nexport type V1CategoryPostsQuery = z.infer<typeof V1CategoryPostsQuerySchema>\nexport type V1CategoryBySlugMetadataQuery = z.infer<\n typeof V1CategoryBySlugMetadataQuerySchema\n>\nexport type V1SubSubcategoryBySlugPostsQuery = z.infer<\n typeof V1SubSubcategoryBySlugPostsQuerySchema\n>\nexport type V1TagBySlugPostsQuery = z.infer<typeof V1TagBySlugPostsQuerySchema>\nexport type V1AuthorBySlugPostsQuery = z.infer<\n typeof V1AuthorBySlugPostsQuerySchema\n>\n\nexport const V1CategoryPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(\n V1CategoryPostsQuerySchema\n)\nexport type V1CategoryPostsRequest = z.infer<\n typeof V1CategoryPostsRequestSchema\n>\n\nexport const V1CategoryMetadataRequestSchema = V1FeedSlugPathParamsSchema.merge(\n V1CategoryBySlugMetadataQuerySchema\n)\nexport type V1CategoryMetadataRequest = z.infer<\n typeof V1CategoryMetadataRequestSchema\n>\n\nexport const V1CategorySubcategoriesThemeRequestSchema =\n V1FeedSlugPathParamsSchema\nexport type V1CategorySubcategoriesThemeRequest = z.infer<\n typeof V1CategorySubcategoriesThemeRequestSchema\n>\n\nexport const V1SubcategoryPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(\n V1CategoryPostsQuerySchema\n)\nexport type V1SubcategoryPostsRequest = z.infer<\n typeof V1SubcategoryPostsRequestSchema\n>\n\nexport const V1SubSubcategoryPostsRequestSchema =\n V1FeedSlugPathParamsSchema.merge(V1SubSubcategoryBySlugPostsQuerySchema)\nexport type V1SubSubcategoryPostsRequest = z.infer<\n typeof V1SubSubcategoryPostsRequestSchema\n>\n\nexport const V1TagPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(\n V1TagBySlugPostsQuerySchema\n)\nexport type V1TagPostsRequest = z.infer<typeof V1TagPostsRequestSchema>\n\nexport const V1AuthorPostsRequestSchema = V1FeedSlugPathParamsSchema.merge(\n V1AuthorBySlugPostsQuerySchema\n)\nexport type V1AuthorPostsRequest = z.infer<typeof V1AuthorPostsRequestSchema>\n\nexport const V1AuthorMetaRequestSchema = V1FeedSlugPathParamsSchema\nexport type V1AuthorMetaRequest = z.infer<typeof V1AuthorMetaRequestSchema>\n\nexport const V1TagMetaRequestSchema = V1FeedSlugPathParamsSchema\nexport type V1TagMetaRequest = z.infer<typeof V1TagMetaRequestSchema>\n\nexport const V1ProjectBySlugRequestSchema = V1FeedSlugPathParamsSchema\nexport type V1ProjectBySlugRequest = z.infer<\n typeof V1ProjectBySlugRequestSchema\n>\n\n// --- QnA ---\n\nexport type V1AllPostEssayAnswersQuery = z.infer<\n typeof V1AllPostEssayAnswersQuerySchema\n>\nexport type V1PostEssayQuestionAnswersParams = z.infer<\n typeof V1PostEssayQuestionAnswersParamsSchema\n>\nexport type V1PostEssayQuestionAnswersQuery = z.infer<\n typeof V1PostEssayQuestionAnswersQuerySchema\n>\n\nexport const V1PostEssayQuestionAnswersRequestSchema =\n V1PostEssayQuestionAnswersParamsSchema.merge(\n V1PostEssayQuestionAnswersQuerySchema\n )\nexport type V1PostEssayQuestionAnswersRequest = z.infer<\n typeof V1PostEssayQuestionAnswersRequestSchema\n>\n\nexport type V1MemberPostChoiceAnswersQuery = z.infer<\n typeof V1MemberPostChoiceAnswersQuerySchema\n>\nexport type V1MemberPostEssayAnswersQuery = z.infer<\n typeof V1MemberPostEssayAnswersQuerySchema\n>\n\nexport type V1CreatePostChoiceAnswerBody = z.infer<\n typeof V1CreatePostChoiceAnswerBodySchema\n>\nexport type V1PatchPostChoiceAnswerBody = z.infer<\n typeof V1PatchPostChoiceAnswerBodySchema\n>\nexport type V1CreatePostEssayAnswerBody = z.infer<\n typeof V1CreatePostEssayAnswerBodySchema\n>\nexport type V1PatchPostEssayAnswerBody = z.infer<\n typeof V1PatchPostEssayAnswerBodySchema\n>\nexport type V1CreatePostEssayAnswerLikeBody = z.infer<\n typeof V1CreatePostEssayAnswerLikeBodySchema\n>\n\nexport type V1PostChoiceAnswerPathId = z.infer<\n typeof V1PostChoiceAnswerPathIdSchema\n>\nexport type V1PostEssayAnswerPathId = z.infer<\n typeof V1PostEssayAnswerPathIdSchema\n>\nexport type V1PostEssayAnswerLikePathId = z.infer<\n typeof V1PostEssayAnswerLikePathIdSchema\n>\n\n// --- Member activity ---\n\nexport type V1EssayAnswersHasLikedQuery = z.infer<\n typeof V1EssayAnswersHasLikedQuerySchema\n>\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAGA,SAKEA,4BAA4B,EAC5BC,uBAAuB,QAKlB,sBAAsB;AAC7B,SACEC,8BAA8B,EAC9BC,mCAAmC,EACnCC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,sCAAsC,EACtCC,2BAA2B,QACtB,mCAAmC;AAE1C,SAYEC,sCAAsC,EACtCC,qCAAqC,QAChC,kBAAkB;;AAGzB;;AA0BA,OAAO,MAAMC,yBAAyB,GAAGV,4BAA4B,CAACW,KAAK,CACzEV,uBACF,CAAC;;AAKD;;AAeA,OAAO,MAAMW,4BAA4B,GAAGP,0BAA0B,CAACM,KAAK,CAC1EP,0BACF,CAAC;AAKD,OAAO,MAAMS,+BAA+B,GAAGR,0BAA0B,CAACM,KAAK,CAC7ER,mCACF,CAAC;AAKD,OAAO,MAAMW,yCAAyC,GACpDT,0BAA0B;AAK5B,OAAO,MAAMU,+BAA+B,GAAGV,0BAA0B,CAACM,KAAK,CAC7EP,0BACF,CAAC;AAKD,OAAO,MAAMY,kCAAkC,GAC7CX,0BAA0B,CAACM,KAAK,CAACL,sCAAsC,CAAC;AAK1E,OAAO,MAAMW,uBAAuB,GAAGZ,0BAA0B,CAACM,KAAK,CACrEJ,2BACF,CAAC;AAGD,OAAO,MAAMW,0BAA0B,GAAGb,0BAA0B,CAACM,KAAK,CACxET,8BACF,CAAC;AAGD,OAAO,MAAMiB,yBAAyB,GAAGd,0BAA0B;AAGnE,OAAO,MAAMe,sBAAsB,GAAGf,0BAA0B;AAGhE,OAAO,MAAMgB,4BAA4B,GAAGhB,0BAA0B;;AAKtE;;AAYA,OAAO,MAAMiB,uCAAuC,GAClDd,sCAAsC,CAACG,KAAK,CAC1CF,qCACF,CAAC;;AAsCH","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './api-variables.js';
|
|
1
2
|
export * from './openapi.js';
|
|
2
3
|
export * from './rest.js';
|
|
3
4
|
export * from './schemas/content.js';
|
|
@@ -6,4 +7,5 @@ export * from './schemas/content-feed-responses.js';
|
|
|
6
7
|
export * from './schemas/extra-openapi-paths.js';
|
|
7
8
|
export * from './schemas/member-essay-answers-has-liked.js';
|
|
8
9
|
export * from './schemas/qna.js';
|
|
10
|
+
export * from './shared-types.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,kCAAkC,CAAA;AAChD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,kCAAkC,CAAA;AAChD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './api-variables.js';
|
|
1
2
|
export * from './openapi.js';
|
|
2
3
|
export * from './rest.js';
|
|
3
4
|
export * from './schemas/content.js';
|
|
@@ -6,4 +7,5 @@ export * from './schemas/content-feed-responses.js';
|
|
|
6
7
|
export * from './schemas/extra-openapi-paths.js';
|
|
7
8
|
export * from './schemas/member-essay-answers-has-liked.js';
|
|
8
9
|
export * from './schemas/qna.js';
|
|
10
|
+
export * from './shared-types.js';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from './openapi.js'\nexport * from './rest.js'\nexport * from './schemas/content.js'\nexport * from './schemas/content-feed-queries.js'\nexport * from './schemas/content-feed-responses.js'\nexport * from './schemas/extra-openapi-paths.js'\nexport * from './schemas/member-essay-answers-has-liked.js'\nexport * from './schemas/qna.js'\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,sBAAsB;AACpC,cAAc,mCAAmC;AACjD,cAAc,qCAAqC;AACnD,cAAc,kCAAkC;AAChD,cAAc,6CAA6C;AAC3D,cAAc,kBAAkB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from './api-variables.js'\nexport * from './openapi.js'\nexport * from './rest.js'\nexport * from './schemas/content.js'\nexport * from './schemas/content-feed-queries.js'\nexport * from './schemas/content-feed-responses.js'\nexport * from './schemas/extra-openapi-paths.js'\nexport * from './schemas/member-essay-answers-has-liked.js'\nexport * from './schemas/qna.js'\nexport * from './shared-types.js'\n"],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,sBAAsB;AACpC,cAAc,mCAAmC;AACjD,cAAc,qCAAqC;AACnD,cAAc,kCAAkC;AAChD,cAAc,6CAA6C;AAC3D,cAAc,kBAAkB;AAChC,cAAc,mBAAmB","ignoreList":[]}
|
package/dist/rest.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export declare const RestErrorCodeSchema: z.ZodEnum<{
|
|
|
9
9
|
service_unavailable: "service_unavailable";
|
|
10
10
|
internal_server_error: "internal_server_error";
|
|
11
11
|
}>;
|
|
12
|
-
export type RestErrorCode = z.infer<typeof RestErrorCodeSchema>;
|
|
13
12
|
export declare const RestErrorBodySchema: z.ZodObject<{
|
|
14
13
|
error: z.ZodObject<{
|
|
15
14
|
code: z.ZodEnum<{
|
|
@@ -26,7 +25,6 @@ export declare const RestErrorBodySchema: z.ZodObject<{
|
|
|
26
25
|
details: z.ZodOptional<z.ZodUnknown>;
|
|
27
26
|
}, z.core.$strip>;
|
|
28
27
|
}, z.core.$strip>;
|
|
29
|
-
export type RestErrorBody = z.infer<typeof RestErrorBodySchema>;
|
|
30
28
|
export declare const RestOkSchema: z.ZodObject<{
|
|
31
29
|
status: z.ZodLiteral<"success">;
|
|
32
30
|
data: z.ZodUnknown;
|
|
@@ -53,5 +51,4 @@ export declare const RestEnvelopeSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
53
51
|
error: z.ZodOptional<z.ZodUnknown>;
|
|
54
52
|
errors: z.ZodOptional<z.ZodUnknown>;
|
|
55
53
|
}, z.core.$strip>]>;
|
|
56
|
-
export type RestEnvelope = z.infer<typeof RestEnvelopeSchema>;
|
|
57
54
|
//# sourceMappingURL=rest.d.ts.map
|
package/dist/rest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mBAAmB;;;;;;;;;EAS9B,CAAA;AAEF,
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mBAAmB;;;;;;;;;EAS9B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAO9B,CAAA;AAEF,eAAO,MAAM,YAAY;;;iBAGvB,CAAA;AAEF,eAAO,MAAM,cAAc;;;iBAGzB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;iBAK1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;mBAI7B,CAAA"}
|
package/dist/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","names":["z","RestErrorCodeSchema","enum","RestErrorBodySchema","object","error","code","message","string","details","unknown","optional","RestOkSchema","status","literal","data","RestFailSchema","RestErrorSchema","errors","RestEnvelopeSchema","union"],"sources":["../src/rest.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const RestErrorCodeSchema = z.enum([\n 'invalid_request',\n 'unauthorized',\n 'forbidden',\n 'not_found',\n 'conflict',\n 'upstream_error',\n 'service_unavailable',\n 'internal_server_error',\n])\n\nexport
|
|
1
|
+
{"version":3,"file":"rest.js","names":["z","RestErrorCodeSchema","enum","RestErrorBodySchema","object","error","code","message","string","details","unknown","optional","RestOkSchema","status","literal","data","RestFailSchema","RestErrorSchema","errors","RestEnvelopeSchema","union"],"sources":["../src/rest.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const RestErrorCodeSchema = z.enum([\n 'invalid_request',\n 'unauthorized',\n 'forbidden',\n 'not_found',\n 'conflict',\n 'upstream_error',\n 'service_unavailable',\n 'internal_server_error',\n])\n\nexport const RestErrorBodySchema = z.object({\n error: z.object({\n code: RestErrorCodeSchema,\n message: z.string(),\n /** `z.json()` is recursive and breaks zod-to-openapi (stack overflow on /openapi.json). */\n details: z.unknown().optional(),\n }),\n})\n\nexport const RestOkSchema = z.object({\n status: z.literal('success'),\n data: z.unknown(),\n})\n\nexport const RestFailSchema = z.object({\n status: z.literal('fail'),\n data: z.unknown(),\n})\n\nexport const RestErrorSchema = z.object({\n status: z.literal('error'),\n message: z.string().optional(),\n error: z.unknown().optional(),\n errors: z.unknown().optional(),\n})\n\nexport const RestEnvelopeSchema = z.union([\n RestOkSchema,\n RestFailSchema,\n RestErrorSchema,\n])\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,mBAAmB,GAAGD,CAAC,CAACE,IAAI,CAAC,CACxC,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,CACxB,CAAC;AAEF,OAAO,MAAMC,mBAAmB,GAAGH,CAAC,CAACI,MAAM,CAAC;EAC1CC,KAAK,EAAEL,CAAC,CAACI,MAAM,CAAC;IACdE,IAAI,EAAEL,mBAAmB;IACzBM,OAAO,EAAEP,CAAC,CAACQ,MAAM,CAAC,CAAC;IACnB;IACAC,OAAO,EAAET,CAAC,CAACU,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC;EAChC,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,MAAMC,YAAY,GAAGZ,CAAC,CAACI,MAAM,CAAC;EACnCS,MAAM,EAAEb,CAAC,CAACc,OAAO,CAAC,SAAS,CAAC;EAC5BC,IAAI,EAAEf,CAAC,CAACU,OAAO,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMM,cAAc,GAAGhB,CAAC,CAACI,MAAM,CAAC;EACrCS,MAAM,EAAEb,CAAC,CAACc,OAAO,CAAC,MAAM,CAAC;EACzBC,IAAI,EAAEf,CAAC,CAACU,OAAO,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMO,eAAe,GAAGjB,CAAC,CAACI,MAAM,CAAC;EACtCS,MAAM,EAAEb,CAAC,CAACc,OAAO,CAAC,OAAO,CAAC;EAC1BP,OAAO,EAAEP,CAAC,CAACQ,MAAM,CAAC,CAAC,CAACG,QAAQ,CAAC,CAAC;EAC9BN,KAAK,EAAEL,CAAC,CAACU,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7BO,MAAM,EAAElB,CAAC,CAACU,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC;AAC/B,CAAC,CAAC;AAEF,OAAO,MAAMQ,kBAAkB,GAAGnB,CAAC,CAACoB,KAAK,CAAC,CACxCR,YAAY,EACZI,cAAc,EACdC,eAAe,CAChB,CAAC","ignoreList":[]}
|
|
@@ -47,7 +47,6 @@ export declare const PostContentSchema: z.ZodObject<{
|
|
|
47
47
|
}, z.core.$strip>>>;
|
|
48
48
|
publishedDate: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
|
|
49
49
|
}, z.core.$strip>;
|
|
50
|
-
export type PostContent = z.infer<typeof PostContentSchema>;
|
|
51
50
|
export declare const SubcategoryItemSchema: z.ZodObject<{
|
|
52
51
|
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
53
52
|
name: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/schemas/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAChB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,eAAO,MAAM,QAAQ,iBAAwB,CAAA;AAE7C,eAAO,MAAM,kBAAkB;;iBAOL,CAAA;AAE1B,eAAO,MAAM,mBAAmB;;;;iBAIL,CAAA;AAE3B;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;iBAiBL,CAAA;AAEhC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;iBASL,CAAA;AAEzB,
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/schemas/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAChB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,eAAO,MAAM,QAAQ,iBAAwB,CAAA;AAE7C,eAAO,MAAM,kBAAkB;;iBAOL,CAAA;AAE1B,eAAO,MAAM,mBAAmB;;;;iBAIL,CAAA;AAE3B;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;iBAiBL,CAAA;AAEhC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;iBASL,CAAA;AAEzB,eAAO,MAAM,qBAAqB;;;;;;;iBAOT,CAAA;AAEzB,eAAO,MAAM,4BAA4B;;;;iBAMT,CAAA;AAEhC,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAST,CAAA;AAEhC,eAAO,MAAM,kBAAkB;;;;;;iBAI7B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMhC,CAAA;AA8BF,eAAO,MAAM,6BAA6B;;;;;;;kBAAiC,CAAA;AAmB3E,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;iBAIX,CAAA;AAuB9B,eAAO,MAAM,+BAA+B;;kBAE3C,CAAA;AAmBD,eAAO,MAAM,oCAAoC;;;;;;;;;;;iBAW/C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;iBAA+B,CAAA;AAsC9E,oCAAoC;AACpC,eAAO,MAAM,qBAAqB;;;;;;;iBAQhC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBP,CAAA;AAE1B,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGnC,CAAA;AA+BF,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE/C,CAAA;AA8BD,eAAO,MAAM,oBAAoB;;;iBAKP,CAAA;AAE1B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAaP,CAAA;AAE3B,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;iBAAwB,CAAA;AAElE,eAAO,MAAM,8BAA8B;;;;;;kBAQX,CAAA;AAEhC,0DAA0D;AAC1D,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAA;AAEF,4DAA4D;AAC5D,eAAO,MAAM,mCAAmC;;;iBAG9C,CAAA;AAqFF,eAAO,MAAM,4BAA4B;;iBAEvC,CAAA;AAEF,+GAA+G;AAC/G,eAAO,MAAM,uBAAuB;;;;iBAgBlC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;iBAEhC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;kBAAgC,CAAA;AACzE,eAAO,MAAM,+BAA+B;;;kBAAgC,CAAA;AAE5E,eAAO,MAAM,iCAAiC;;;;;;;;;iBAS5C,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,iCAAiC;;;;;;iBAM5C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW9C,CAAA;AAEF,eAAO,MAAM,wCAAwC;;iBAEnD,CAAA;AAEF,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAiIF,eAAO,MAAM,uCAAuC;;;;;;;;;;;iBAYlD,CAAA;AA6HF,cAAc,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":["extendZodWithOpenApi","OpenAPIRegistry","z","RestErrorBodySchema","V1PostDetailBodySchema","V1PostEssayQuestionsBodySchema","V1PostMetaBodySchema","V1PostsEssayAnswersWithLikesResponseSchema","V1ProjectDetailRelatedPostOrderedItemSchema","registry","PhotoResizedSchema","object","small","string","default","openapi","example","PostHeroImageSchema","resized","PostSubSubcategorySchema","name","subcategory","category","slug","themeColor","nullable","optional","PostContentSchema","title","ogDescription","heroImage","subSubcategoriesOrdered","array","publishedDate","iso","datetime","SubcategoryItemSchema","id","union","number","int","CallBaodaozaiIntroItemSchema","page","content","EditorPicksSettingItemSchema","editorPicksOfPostsOrdered","editorPicksOfTags","popularKeywordsOrdered","V1PostsQuerySchema","take","coerce","min","max","skip","orderBy","enum","V1PostsResponseSchema","posts","registerPath","method","path","tags","description","request","query","responses","schema","V1SubcategoriesResponseSchema","V1AuthorAvatarPathParamsSchema","V1AuthorAvatarResponseSchema","tiny","params","V1PopularKeywordsResponseSchema","V1CallBaodaozaiIntroPathParamsSchema","V1CallBaodaozaiIntroResponseSchema","V1ProjectsQuerySchema","includeRelatedPosts","literal","transform","v","V1ProjectsItemSchema","subtitle","medium","relatedPostsOrdered","V1ProjectsResponseSchema","projects","projectsCount","V1EditorPicksSettingsQuerySchema","V1EditorPicksSettingsResponseSchema","V1MemberAvatarSchema","fileUrl","V1MemberProfileSchema","email","nickname","contactEmail","twreporter_user_id","showBaodaozai","boolean","essayQuestionCount","avatar","createdAt","V1MemberProfileResponseSchema","V1MemberProfilePatchBodySchema","strictObject","V1AccessTokenResponseSchema","accessToken","twreporterUserId","expiresAt","V1MemberPostsWithAnswersQuerySchema","cursor","body","V1PostBySlugPathParamsSchema","V1PostBySlugQuerySchema","postEssayQuestionsTake","postChoiceQuestionsTake","V1SitemapsQuerySchema","sinceDays","V1SitemapEntrySchema","V1SitemapPostsResponseSchema","V1SitemapProjectsResponseSchema","V1ProjectBySlugMetaResponseSchema","ogTitle","ogImage","V1ProjectDetailPhotoResizedSchema","large","V1ProjectBySlugDetailResponseSchema","titlePosition","unknown","credits","mobileHeroImage","V1ProjectRelatedPostsCountResponseSchema","relatedPostsCount","V1AuthorPostsCountResponseSchema","postsCount","V1PostsEssayAnswersWithLikesQuerySchema","answerTake","answerOrderBy"],"sources":["../../src/schemas/content.ts"],"sourcesContent":["import {\n extendZodWithOpenApi,\n OpenAPIRegistry,\n} from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport {\n V1PostDetailBodySchema,\n V1PostEssayQuestionsBodySchema,\n V1PostMetaBodySchema,\n V1PostsEssayAnswersWithLikesResponseSchema,\n V1ProjectDetailRelatedPostOrderedItemSchema,\n} from './content-post-detail.js'\n\nextendZodWithOpenApi(z)\n\nexport const registry = new OpenAPIRegistry()\n\nexport const PhotoResizedSchema = z\n .object({\n small: z\n .string()\n .default('')\n .openapi({ example: 'https://kids.twreporter.org/resized/abc-800.webp' }),\n })\n .openapi('ResizedPhoto')\n\nexport const PostHeroImageSchema = z\n .object({\n resized: PhotoResizedSchema,\n })\n .openapi('PostHeroImage')\n\n/**\n * Lightweight sub-subcategory shape for **feeds and list payloads** (`PostContentSchema`,\n * e.g. `/v1/posts`, editor picks). Omits sub-subcategory / subcategory slugs on purpose —\n * callers only need labels + category slug for cards. For the **full tree with slugs**\n * (article detail, related-post cards), see `SubSubcategoryFullItemSchema` in\n * `content-post-detail.ts`.\n */\nexport const PostSubSubcategorySchema = z\n .object({\n name: z.string(),\n subcategory: z\n .object({\n name: z.string(),\n category: z\n .object({\n slug: z.string(),\n themeColor: z.string().nullable().optional(),\n })\n .nullable()\n .optional(),\n })\n .nullable()\n .optional(),\n })\n .openapi('PostSubSubcategory')\n\nexport const PostContentSchema = z\n .object({\n title: z.string(),\n slug: z.string(),\n ogDescription: z.string().nullable().optional(),\n heroImage: PostHeroImageSchema.nullable().optional(),\n subSubcategoriesOrdered: z.array(PostSubSubcategorySchema).default([]),\n publishedDate: z.iso.datetime().nullable().optional(),\n })\n .openapi('PostContent')\n\nexport type PostContent = z.infer<typeof PostContentSchema>\n\nexport const SubcategoryItemSchema = z\n .object({\n id: z.union([z.string(), z.number().int()]),\n name: z.string(),\n slug: z.string(),\n category: z.object({ slug: z.string() }).nullable().optional(),\n })\n .openapi('Subcategory')\n\nexport const CallBaodaozaiIntroItemSchema = z\n .object({\n id: z.union([z.string(), z.number().int()]),\n page: z.string(),\n content: z.string(),\n })\n .openapi('CallBaodaozaiIntro')\n\nexport const EditorPicksSettingItemSchema = z\n .object({\n id: z.union([z.string(), z.number().int()]),\n editorPicksOfPostsOrdered: z.array(PostContentSchema).default([]),\n editorPicksOfTags: z\n .array(z.object({ name: z.string(), slug: z.string() }))\n .default([]),\n popularKeywordsOrdered: z.array(z.object({ name: z.string() })).default([]),\n })\n .openapi('EditorPicksSetting')\n\nexport const V1PostsQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional(),\n skip: z.coerce.number().int().min(0).max(5000).optional(),\n orderBy: z.enum(['publishedDate:desc']).optional(),\n})\n\nexport const V1PostsResponseSchema = z.object({\n posts: z.array(PostContentSchema),\n page: z.object({\n take: z.number().int().min(1).max(50),\n skip: z.number().int().min(0),\n }),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts',\n tags: ['Posts'],\n description: 'List latest published posts.',\n request: {\n query: V1PostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1SubcategoriesResponseSchema = z.array(SubcategoryItemSchema)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/subcategories',\n tags: ['Taxonomy'],\n description: 'All subcategories with parent category slug.',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1SubcategoriesResponseSchema,\n },\n },\n },\n },\n})\n\nexport const V1AuthorAvatarPathParamsSchema = z.object({\n slug: z.string().min(1),\n})\n\nexport const V1AuthorAvatarResponseSchema = z\n .object({\n tiny: z.string(),\n })\n .openapi('AuthorAvatarTiny')\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/avatar',\n tags: ['Taxonomy'],\n description:\n 'Author avatar tiny image URL by slug. `tiny` is empty when the author or avatar is missing.',\n request: {\n params: V1AuthorAvatarPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1AuthorAvatarResponseSchema,\n },\n },\n },\n },\n})\n\nexport const V1PopularKeywordsResponseSchema = z.array(\n z.object({ name: z.string() })\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/popular-keywords',\n tags: ['Editor'],\n description: 'Popular keywords from editor picks ordering.',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PopularKeywordsResponseSchema,\n },\n },\n },\n },\n})\n\nexport const V1CallBaodaozaiIntroPathParamsSchema = z.object({\n page: z.enum([\n 'home',\n 'all',\n 'topics',\n 'news',\n 'storytelling',\n 'campus',\n 'listeningNews',\n 'classroom',\n ]),\n})\n\nexport const V1CallBaodaozaiIntroResponseSchema = CallBaodaozaiIntroItemSchema\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/call-baodaozai-intros/{page}',\n tags: ['Editor'],\n description: 'Get Call Baodaozai intro content by page.',\n request: {\n params: V1CallBaodaozaiIntroPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CallBaodaozaiIntroResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\n/** Query for `GET /v1/projects`. */\nexport const V1ProjectsQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional(),\n skip: z.coerce.number().int().min(0).max(5000).optional(),\n orderBy: z.enum(['publishedDate:desc']).optional(),\n includeRelatedPosts: z\n .union([z.literal('true'), z.literal('false')])\n .optional()\n .transform((v) => v === 'true'),\n})\n\nexport const V1ProjectsItemSchema = z\n .object({\n title: z.string(),\n subtitle: z.string(),\n slug: z.string(),\n ogDescription: z.string().nullable().optional(),\n publishedDate: z.iso.datetime().nullable().optional(),\n heroImage: z\n .object({\n resized: z.object({\n small: z.string(),\n medium: z.string(),\n }),\n })\n .nullable()\n .optional(),\n relatedPostsOrdered: z.array(PostContentSchema).optional(),\n })\n .openapi('ProjectsItem')\n\nexport const V1ProjectsResponseSchema = z.object({\n projects: z.array(V1ProjectsItemSchema),\n projectsCount: z.number().int().min(0),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects',\n tags: ['Projects'],\n description:\n 'List published projects. Response always includes `projects` and total `projectsCount`. Optional `relatedPostsOrdered` on each item appears only when `includeRelatedPosts=true`.',\n request: {\n query: V1ProjectsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1ProjectsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1EditorPicksSettingsQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(20).optional().default(5),\n})\n\nexport const V1EditorPicksSettingsResponseSchema = z.array(\n EditorPicksSettingItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/editor-picks-settings',\n tags: ['Editor'],\n description: 'Editor picks configuration rows.',\n request: {\n query: V1EditorPicksSettingsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1EditorPicksSettingsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1MemberAvatarSchema = z\n .object({\n id: z.string(),\n fileUrl: z.string(),\n })\n .openapi('MemberAvatar')\n\nexport const V1MemberProfileSchema = z\n .object({\n id: z.string(),\n name: z.string(),\n email: z.string(),\n nickname: z.string(),\n contactEmail: z.string(),\n twreporter_user_id: z.string(),\n showBaodaozai: z.boolean(),\n essayQuestionCount: z.number().int().nullable().optional(),\n avatar: V1MemberAvatarSchema.nullable().optional(),\n createdAt: z.iso.datetime().nullable().optional(),\n })\n .openapi('MemberProfile')\n\nexport const V1MemberProfileResponseSchema = V1MemberProfileSchema\n\nexport const V1MemberProfilePatchBodySchema = z\n .strictObject({\n name: z.string().optional(),\n nickname: z.string().optional(),\n contactEmail: z.string().optional(),\n showBaodaozai: z.boolean().optional(),\n essayQuestionCount: z.number().int().min(0).max(3).optional(),\n })\n .openapi('MemberProfilePatch')\n\n/** Successful `POST /auth/access-token` response JSON. */\nexport const V1AccessTokenResponseSchema = z.object({\n accessToken: z.string(),\n twreporterUserId: z.string(),\n expiresAt: z.number(),\n})\n\n/** GET `/v1/members/me/posts-with-answers` query string. */\nexport const V1MemberPostsWithAnswersQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional().default(5),\n cursor: z.string().optional(),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me',\n tags: ['Members'],\n description: 'Authenticated member profile (Bearer JWT).',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1MemberProfileResponseSchema,\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Member not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me',\n tags: ['Members'],\n description: 'Update authenticated member profile (Bearer JWT).',\n request: {\n body: {\n content: {\n 'application/json': {\n schema: V1MemberProfilePatchBodySchema,\n },\n },\n },\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1MemberProfileResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Member not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1PostBySlugPathParamsSchema = z.object({\n slug: z.string().min(1),\n})\n\n/** Flat query for `GET /v1/posts/{slug}` (news-reading order + related-posts filter are fixed server-side). */\nexport const V1PostBySlugQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional().default(5),\n postEssayQuestionsTake: z.coerce\n .number()\n .int()\n .min(1)\n .max(50)\n .optional()\n .default(3),\n postChoiceQuestionsTake: z.coerce\n .number()\n .int()\n .min(1)\n .max(50)\n .optional()\n .default(3),\n})\n\nexport const V1SitemapsQuerySchema = z.object({\n sinceDays: z.coerce.number().int().min(1).max(365).optional().default(60),\n})\n\nexport const V1SitemapEntrySchema = z.object({\n slug: z.string(),\n publishedDate: z.iso.datetime().nullable(),\n})\n\nexport const V1SitemapPostsResponseSchema = z.array(V1SitemapEntrySchema)\nexport const V1SitemapProjectsResponseSchema = z.array(V1SitemapEntrySchema)\n\nexport const V1ProjectBySlugMetaResponseSchema = z.object({\n publishedDate: z.iso.datetime().optional(),\n ogTitle: z.string(),\n ogDescription: z.string().nullable(),\n ogImage: z\n .object({\n resized: z.object({ small: z.string() }),\n })\n .nullable(),\n})\n\n/** Hero image payloads returned by `/v1/projects/{slug}` match Prisma-mapper targets. */\nexport const V1ProjectDetailPhotoResizedSchema = z.object({\n resized: z.object({\n small: z.string(),\n medium: z.string(),\n large: z.string(),\n }),\n})\n\nexport const V1ProjectBySlugDetailResponseSchema = z.object({\n title: z.string(),\n titlePosition: z.string().nullable().optional(),\n subtitle: z.string(),\n /** Draft.js JSON etc.; `z.json()` overflows zod-to-openapi union expansion. */\n content: z.unknown().nullable().optional(),\n credits: z.unknown().nullable().optional(),\n publishedDate: z.iso.datetime().optional(),\n heroImage: V1ProjectDetailPhotoResizedSchema.optional(),\n mobileHeroImage: V1ProjectDetailPhotoResizedSchema.optional(),\n relatedPostsOrdered: z.array(V1ProjectDetailRelatedPostOrderedItemSchema),\n})\n\nexport const V1ProjectRelatedPostsCountResponseSchema = z.object({\n relatedPostsCount: z.number().int().min(0),\n})\n\nexport const V1AuthorPostsCountResponseSchema = z.object({\n postsCount: z.number().int().min(0),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/sitemaps/posts',\n tags: ['Sitemaps'],\n description:\n 'Post slugs + published dates for sitemap (public posts only). Query `sinceDays` (1–365, default 60): include posts with `publishedDate` on/after start of day `now - sinceDays`.',\n request: {\n query: V1SitemapsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1SitemapPostsResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/sitemaps/projects',\n tags: ['Sitemaps'],\n description:\n 'Published project slugs + dates for sitemap. Query `sinceDays` (1–365, default 60): include projects with `publishedDate` on/after start of day `now - sinceDays`.',\n request: {\n query: V1SitemapsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1SitemapProjectsResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects/{slug}',\n tags: ['Projects'],\n description:\n 'Published project detail for topic page (matches GraphQL `GetProject`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1ProjectBySlugDetailResponseSchema },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects/{slug}/meta',\n tags: ['Projects'],\n description:\n 'Published project OG metadata (matches GraphQL `GetProjectMeta`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1ProjectBySlugMetaResponseSchema },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects/{slug}/related-posts-count',\n tags: ['Projects'],\n description:\n 'Count of public posts linked to a published project (matches GraphQL `relatedPostsCount` on project).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1ProjectRelatedPostsCountResponseSchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nexport const V1PostsEssayAnswersWithLikesQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional().default(12),\n skip: z.coerce.number().int().min(0).max(5000).optional().default(0),\n orderBy: z\n .enum(['publishedDate:desc'])\n .optional()\n .default('publishedDate:desc'),\n answerTake: z.coerce.number().int().min(1).max(50).optional().default(10),\n answerOrderBy: z\n .enum(['likesCount:desc', 'createdAt:desc'])\n .optional()\n .default('likesCount:desc'),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/{slug}',\n tags: ['Posts'],\n description:\n 'Single post article payload (matches GraphQL `GetPost`). Flat query: `take`, `postEssayQuestionsTake`, `postChoiceQuestionsTake` (1–50 each, defaults 5/3/3). News-reading item order and nested related-posts filter are fixed server-side.',\n request: {\n params: V1PostBySlugPathParamsSchema,\n query: V1PostBySlugQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostDetailBodySchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/{slug}/meta',\n tags: ['Posts'],\n description:\n 'Post SEO / Open Graph metadata (matches GraphQL `GetPostMeta`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostMetaBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/{slug}/essay-questions',\n tags: ['Posts'],\n description:\n 'Post card plus essay questions (matches GraphQL `GetPostEssayQuestions`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostEssayQuestionsBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/essay-answers-with-likes',\n tags: ['Posts'],\n description:\n 'Paged posts with nested essay answers and member avatars (matches GraphQL `GetPostsEssayAnswersWithLikes`). Flat query: `take`, `skip`, `orderBy` (`publishedDate:desc` only), `answerTake`, `answerOrderBy` (`likesCount:desc` | `createdAt:desc`). Post filter (posts with answered essay questions) is fixed server-side.',\n request: {\n query: V1PostsEssayAnswersWithLikesQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostsEssayAnswersWithLikesResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport * from './content-post-detail.js'\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"content.js","names":["extendZodWithOpenApi","OpenAPIRegistry","z","RestErrorBodySchema","V1PostDetailBodySchema","V1PostEssayQuestionsBodySchema","V1PostMetaBodySchema","V1PostsEssayAnswersWithLikesResponseSchema","V1ProjectDetailRelatedPostOrderedItemSchema","registry","PhotoResizedSchema","object","small","string","default","openapi","example","PostHeroImageSchema","resized","PostSubSubcategorySchema","name","subcategory","category","slug","themeColor","nullable","optional","PostContentSchema","title","ogDescription","heroImage","subSubcategoriesOrdered","array","publishedDate","iso","datetime","SubcategoryItemSchema","id","union","number","int","CallBaodaozaiIntroItemSchema","page","content","EditorPicksSettingItemSchema","editorPicksOfPostsOrdered","editorPicksOfTags","popularKeywordsOrdered","V1PostsQuerySchema","take","coerce","min","max","skip","orderBy","enum","V1PostsResponseSchema","posts","registerPath","method","path","tags","description","request","query","responses","schema","V1SubcategoriesResponseSchema","V1AuthorAvatarPathParamsSchema","V1AuthorAvatarResponseSchema","tiny","params","V1PopularKeywordsResponseSchema","V1CallBaodaozaiIntroPathParamsSchema","V1CallBaodaozaiIntroResponseSchema","V1ProjectsQuerySchema","includeRelatedPosts","literal","transform","v","V1ProjectsItemSchema","subtitle","medium","relatedPostsOrdered","V1ProjectsResponseSchema","projects","projectsCount","V1EditorPicksSettingsQuerySchema","V1EditorPicksSettingsResponseSchema","V1MemberAvatarSchema","fileUrl","V1MemberProfileSchema","email","nickname","contactEmail","twreporter_user_id","showBaodaozai","boolean","essayQuestionCount","avatar","createdAt","V1MemberProfileResponseSchema","V1MemberProfilePatchBodySchema","strictObject","V1AccessTokenResponseSchema","accessToken","twreporterUserId","expiresAt","V1MemberPostsWithAnswersQuerySchema","cursor","body","V1PostBySlugPathParamsSchema","V1PostBySlugQuerySchema","postEssayQuestionsTake","postChoiceQuestionsTake","V1SitemapsQuerySchema","sinceDays","V1SitemapEntrySchema","V1SitemapPostsResponseSchema","V1SitemapProjectsResponseSchema","V1ProjectBySlugMetaResponseSchema","ogTitle","ogImage","V1ProjectDetailPhotoResizedSchema","large","V1ProjectBySlugDetailResponseSchema","titlePosition","unknown","credits","mobileHeroImage","V1ProjectRelatedPostsCountResponseSchema","relatedPostsCount","V1AuthorPostsCountResponseSchema","postsCount","V1PostsEssayAnswersWithLikesQuerySchema","answerTake","answerOrderBy"],"sources":["../../src/schemas/content.ts"],"sourcesContent":["import {\n extendZodWithOpenApi,\n OpenAPIRegistry,\n} from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport {\n V1PostDetailBodySchema,\n V1PostEssayQuestionsBodySchema,\n V1PostMetaBodySchema,\n V1PostsEssayAnswersWithLikesResponseSchema,\n V1ProjectDetailRelatedPostOrderedItemSchema,\n} from './content-post-detail.js'\n\nextendZodWithOpenApi(z)\n\nexport const registry = new OpenAPIRegistry()\n\nexport const PhotoResizedSchema = z\n .object({\n small: z\n .string()\n .default('')\n .openapi({ example: 'https://kids.twreporter.org/resized/abc-800.webp' }),\n })\n .openapi('ResizedPhoto')\n\nexport const PostHeroImageSchema = z\n .object({\n resized: PhotoResizedSchema,\n })\n .openapi('PostHeroImage')\n\n/**\n * Lightweight sub-subcategory shape for **feeds and list payloads** (`PostContentSchema`,\n * e.g. `/v1/posts`, editor picks). Omits sub-subcategory / subcategory slugs on purpose —\n * callers only need labels + category slug for cards. For the **full tree with slugs**\n * (article detail, related-post cards), see `SubSubcategoryFullItemSchema` in\n * `content-post-detail.ts`.\n */\nexport const PostSubSubcategorySchema = z\n .object({\n name: z.string(),\n subcategory: z\n .object({\n name: z.string(),\n category: z\n .object({\n slug: z.string(),\n themeColor: z.string().nullable().optional(),\n })\n .nullable()\n .optional(),\n })\n .nullable()\n .optional(),\n })\n .openapi('PostSubSubcategory')\n\nexport const PostContentSchema = z\n .object({\n title: z.string(),\n slug: z.string(),\n ogDescription: z.string().nullable().optional(),\n heroImage: PostHeroImageSchema.nullable().optional(),\n subSubcategoriesOrdered: z.array(PostSubSubcategorySchema).default([]),\n publishedDate: z.iso.datetime().nullable().optional(),\n })\n .openapi('PostContent')\n\nexport const SubcategoryItemSchema = z\n .object({\n id: z.union([z.string(), z.number().int()]),\n name: z.string(),\n slug: z.string(),\n category: z.object({ slug: z.string() }).nullable().optional(),\n })\n .openapi('Subcategory')\n\nexport const CallBaodaozaiIntroItemSchema = z\n .object({\n id: z.union([z.string(), z.number().int()]),\n page: z.string(),\n content: z.string(),\n })\n .openapi('CallBaodaozaiIntro')\n\nexport const EditorPicksSettingItemSchema = z\n .object({\n id: z.union([z.string(), z.number().int()]),\n editorPicksOfPostsOrdered: z.array(PostContentSchema).default([]),\n editorPicksOfTags: z\n .array(z.object({ name: z.string(), slug: z.string() }))\n .default([]),\n popularKeywordsOrdered: z.array(z.object({ name: z.string() })).default([]),\n })\n .openapi('EditorPicksSetting')\n\nexport const V1PostsQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional(),\n skip: z.coerce.number().int().min(0).max(5000).optional(),\n orderBy: z.enum(['publishedDate:desc']).optional(),\n})\n\nexport const V1PostsResponseSchema = z.object({\n posts: z.array(PostContentSchema),\n page: z.object({\n take: z.number().int().min(1).max(50),\n skip: z.number().int().min(0),\n }),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts',\n tags: ['Posts'],\n description: 'List latest published posts.',\n request: {\n query: V1PostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1SubcategoriesResponseSchema = z.array(SubcategoryItemSchema)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/subcategories',\n tags: ['Taxonomy'],\n description: 'All subcategories with parent category slug.',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1SubcategoriesResponseSchema,\n },\n },\n },\n },\n})\n\nexport const V1AuthorAvatarPathParamsSchema = z.object({\n slug: z.string().min(1),\n})\n\nexport const V1AuthorAvatarResponseSchema = z\n .object({\n tiny: z.string(),\n })\n .openapi('AuthorAvatarTiny')\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/avatar',\n tags: ['Taxonomy'],\n description:\n 'Author avatar tiny image URL by slug. `tiny` is empty when the author or avatar is missing.',\n request: {\n params: V1AuthorAvatarPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1AuthorAvatarResponseSchema,\n },\n },\n },\n },\n})\n\nexport const V1PopularKeywordsResponseSchema = z.array(\n z.object({ name: z.string() })\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/popular-keywords',\n tags: ['Editor'],\n description: 'Popular keywords from editor picks ordering.',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PopularKeywordsResponseSchema,\n },\n },\n },\n },\n})\n\nexport const V1CallBaodaozaiIntroPathParamsSchema = z.object({\n page: z.enum([\n 'home',\n 'all',\n 'topics',\n 'news',\n 'storytelling',\n 'campus',\n 'listeningNews',\n 'classroom',\n ]),\n})\n\nexport const V1CallBaodaozaiIntroResponseSchema = CallBaodaozaiIntroItemSchema\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/call-baodaozai-intros/{page}',\n tags: ['Editor'],\n description: 'Get Call Baodaozai intro content by page.',\n request: {\n params: V1CallBaodaozaiIntroPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CallBaodaozaiIntroResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\n/** Query for `GET /v1/projects`. */\nexport const V1ProjectsQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional(),\n skip: z.coerce.number().int().min(0).max(5000).optional(),\n orderBy: z.enum(['publishedDate:desc']).optional(),\n includeRelatedPosts: z\n .union([z.literal('true'), z.literal('false')])\n .optional()\n .transform((v) => v === 'true'),\n})\n\nexport const V1ProjectsItemSchema = z\n .object({\n title: z.string(),\n subtitle: z.string(),\n slug: z.string(),\n ogDescription: z.string().nullable().optional(),\n publishedDate: z.iso.datetime().nullable().optional(),\n heroImage: z\n .object({\n resized: z.object({\n small: z.string(),\n medium: z.string(),\n }),\n })\n .nullable()\n .optional(),\n relatedPostsOrdered: z.array(PostContentSchema).optional(),\n })\n .openapi('ProjectsItem')\n\nexport const V1ProjectsResponseSchema = z.object({\n projects: z.array(V1ProjectsItemSchema),\n projectsCount: z.number().int().min(0),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects',\n tags: ['Projects'],\n description:\n 'List published projects. Response always includes `projects` and total `projectsCount`. Optional `relatedPostsOrdered` on each item appears only when `includeRelatedPosts=true`.',\n request: {\n query: V1ProjectsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1ProjectsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1EditorPicksSettingsQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(20).optional().default(5),\n})\n\nexport const V1EditorPicksSettingsResponseSchema = z.array(\n EditorPicksSettingItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/editor-picks-settings',\n tags: ['Editor'],\n description: 'Editor picks configuration rows.',\n request: {\n query: V1EditorPicksSettingsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1EditorPicksSettingsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1MemberAvatarSchema = z\n .object({\n id: z.string(),\n fileUrl: z.string(),\n })\n .openapi('MemberAvatar')\n\nexport const V1MemberProfileSchema = z\n .object({\n id: z.string(),\n name: z.string(),\n email: z.string(),\n nickname: z.string(),\n contactEmail: z.string(),\n twreporter_user_id: z.string(),\n showBaodaozai: z.boolean(),\n essayQuestionCount: z.number().int().nullable().optional(),\n avatar: V1MemberAvatarSchema.nullable().optional(),\n createdAt: z.iso.datetime().nullable().optional(),\n })\n .openapi('MemberProfile')\n\nexport const V1MemberProfileResponseSchema = V1MemberProfileSchema\n\nexport const V1MemberProfilePatchBodySchema = z\n .strictObject({\n name: z.string().optional(),\n nickname: z.string().optional(),\n contactEmail: z.string().optional(),\n showBaodaozai: z.boolean().optional(),\n essayQuestionCount: z.number().int().min(0).max(3).optional(),\n })\n .openapi('MemberProfilePatch')\n\n/** Successful `POST /auth/access-token` response JSON. */\nexport const V1AccessTokenResponseSchema = z.object({\n accessToken: z.string(),\n twreporterUserId: z.string(),\n expiresAt: z.number(),\n})\n\n/** GET `/v1/members/me/posts-with-answers` query string. */\nexport const V1MemberPostsWithAnswersQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional().default(5),\n cursor: z.string().optional(),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me',\n tags: ['Members'],\n description: 'Authenticated member profile (Bearer JWT).',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1MemberProfileResponseSchema,\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Member not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me',\n tags: ['Members'],\n description: 'Update authenticated member profile (Bearer JWT).',\n request: {\n body: {\n content: {\n 'application/json': {\n schema: V1MemberProfilePatchBodySchema,\n },\n },\n },\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1MemberProfileResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Member not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport const V1PostBySlugPathParamsSchema = z.object({\n slug: z.string().min(1),\n})\n\n/** Flat query for `GET /v1/posts/{slug}` (news-reading order + related-posts filter are fixed server-side). */\nexport const V1PostBySlugQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional().default(5),\n postEssayQuestionsTake: z.coerce\n .number()\n .int()\n .min(1)\n .max(50)\n .optional()\n .default(3),\n postChoiceQuestionsTake: z.coerce\n .number()\n .int()\n .min(1)\n .max(50)\n .optional()\n .default(3),\n})\n\nexport const V1SitemapsQuerySchema = z.object({\n sinceDays: z.coerce.number().int().min(1).max(365).optional().default(60),\n})\n\nexport const V1SitemapEntrySchema = z.object({\n slug: z.string(),\n publishedDate: z.iso.datetime().nullable(),\n})\n\nexport const V1SitemapPostsResponseSchema = z.array(V1SitemapEntrySchema)\nexport const V1SitemapProjectsResponseSchema = z.array(V1SitemapEntrySchema)\n\nexport const V1ProjectBySlugMetaResponseSchema = z.object({\n publishedDate: z.iso.datetime().optional(),\n ogTitle: z.string(),\n ogDescription: z.string().nullable(),\n ogImage: z\n .object({\n resized: z.object({ small: z.string() }),\n })\n .nullable(),\n})\n\n/** Hero image payloads returned by `/v1/projects/{slug}` match Prisma-mapper targets. */\nexport const V1ProjectDetailPhotoResizedSchema = z.object({\n resized: z.object({\n small: z.string(),\n medium: z.string(),\n large: z.string(),\n }),\n})\n\nexport const V1ProjectBySlugDetailResponseSchema = z.object({\n title: z.string(),\n titlePosition: z.string().nullable().optional(),\n subtitle: z.string(),\n /** Draft.js JSON etc.; `z.json()` overflows zod-to-openapi union expansion. */\n content: z.unknown().nullable().optional(),\n credits: z.unknown().nullable().optional(),\n publishedDate: z.iso.datetime().optional(),\n heroImage: V1ProjectDetailPhotoResizedSchema.optional(),\n mobileHeroImage: V1ProjectDetailPhotoResizedSchema.optional(),\n relatedPostsOrdered: z.array(V1ProjectDetailRelatedPostOrderedItemSchema),\n})\n\nexport const V1ProjectRelatedPostsCountResponseSchema = z.object({\n relatedPostsCount: z.number().int().min(0),\n})\n\nexport const V1AuthorPostsCountResponseSchema = z.object({\n postsCount: z.number().int().min(0),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/sitemaps/posts',\n tags: ['Sitemaps'],\n description:\n 'Post slugs + published dates for sitemap (public posts only). Query `sinceDays` (1–365, default 60): include posts with `publishedDate` on/after start of day `now - sinceDays`.',\n request: {\n query: V1SitemapsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1SitemapPostsResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/sitemaps/projects',\n tags: ['Sitemaps'],\n description:\n 'Published project slugs + dates for sitemap. Query `sinceDays` (1–365, default 60): include projects with `publishedDate` on/after start of day `now - sinceDays`.',\n request: {\n query: V1SitemapsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1SitemapProjectsResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects/{slug}',\n tags: ['Projects'],\n description:\n 'Published project detail for topic page (matches GraphQL `GetProject`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1ProjectBySlugDetailResponseSchema },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects/{slug}/meta',\n tags: ['Projects'],\n description:\n 'Published project OG metadata (matches GraphQL `GetProjectMeta`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1ProjectBySlugMetaResponseSchema },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/projects/{slug}/related-posts-count',\n tags: ['Projects'],\n description:\n 'Count of public posts linked to a published project (matches GraphQL `relatedPostsCount` on project).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1ProjectRelatedPostsCountResponseSchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nexport const V1PostsEssayAnswersWithLikesQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(50).optional().default(12),\n skip: z.coerce.number().int().min(0).max(5000).optional().default(0),\n orderBy: z\n .enum(['publishedDate:desc'])\n .optional()\n .default('publishedDate:desc'),\n answerTake: z.coerce.number().int().min(1).max(50).optional().default(10),\n answerOrderBy: z\n .enum(['likesCount:desc', 'createdAt:desc'])\n .optional()\n .default('likesCount:desc'),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/{slug}',\n tags: ['Posts'],\n description:\n 'Single post article payload (matches GraphQL `GetPost`). Flat query: `take`, `postEssayQuestionsTake`, `postChoiceQuestionsTake` (1–50 each, defaults 5/3/3). News-reading item order and nested related-posts filter are fixed server-side.',\n request: {\n params: V1PostBySlugPathParamsSchema,\n query: V1PostBySlugQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostDetailBodySchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': { schema: RestErrorBodySchema },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/{slug}/meta',\n tags: ['Posts'],\n description:\n 'Post SEO / Open Graph metadata (matches GraphQL `GetPostMeta`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostMetaBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/{slug}/essay-questions',\n tags: ['Posts'],\n description:\n 'Post card plus essay questions (matches GraphQL `GetPostEssayQuestions`).',\n request: {\n params: V1PostBySlugPathParamsSchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostEssayQuestionsBodySchema,\n },\n },\n },\n 404: {\n description: 'Not found',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/posts/essay-answers-with-likes',\n tags: ['Posts'],\n description:\n 'Paged posts with nested essay answers and member avatars (matches GraphQL `GetPostsEssayAnswersWithLikes`). Flat query: `take`, `skip`, `orderBy` (`publishedDate:desc` only), `answerTake`, `answerOrderBy` (`likesCount:desc` | `createdAt:desc`). Post filter (posts with answered essay questions) is fixed server-side.',\n request: {\n query: V1PostsEssayAnswersWithLikesQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostsEssayAnswersWithLikesResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: {\n 'application/json': {\n schema: RestErrorBodySchema,\n },\n },\n },\n },\n})\n\nexport * from './content-post-detail.js'\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,83 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export declare const MemberPostEssayAnswerInListSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
content: z.ZodString;
|
|
5
|
+
likesCount: z.ZodNumber;
|
|
6
|
+
createdAt: z.ZodString;
|
|
7
|
+
updatedAt: z.ZodString;
|
|
8
|
+
question: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
title: z.ZodString;
|
|
11
|
+
hint: z.ZodString;
|
|
12
|
+
post: z.ZodObject<{
|
|
13
|
+
id: z.ZodString;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
}, z.core.$strict>;
|
|
16
|
+
}, z.core.$strict>;
|
|
17
|
+
export declare const MemberPostChoiceOptionSchema: z.ZodObject<{
|
|
18
|
+
content: z.ZodString;
|
|
19
|
+
isCorrectAnswer: z.ZodBoolean;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
export declare const MemberPostChoiceAnswerInListSchema: z.ZodObject<{
|
|
22
|
+
id: z.ZodString;
|
|
23
|
+
choiceIndex: z.ZodNumber;
|
|
24
|
+
correct: z.ZodBoolean;
|
|
25
|
+
createdAt: z.ZodString;
|
|
26
|
+
updatedAt: z.ZodString;
|
|
27
|
+
question: z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
title: z.ZodString;
|
|
30
|
+
options: z.ZodArray<z.ZodObject<{
|
|
31
|
+
content: z.ZodString;
|
|
32
|
+
isCorrectAnswer: z.ZodBoolean;
|
|
33
|
+
}, z.core.$strict>>;
|
|
34
|
+
reason: z.ZodNullable<z.ZodUnknown>;
|
|
35
|
+
post: z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
}, z.core.$strict>;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
export declare const V1MemberPostsWithAnswersItemSchema: z.ZodObject<{
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
title: z.ZodString;
|
|
43
|
+
slug: z.ZodString;
|
|
44
|
+
publishedDate: z.ZodString;
|
|
45
|
+
lastAnsweredTime: z.ZodString;
|
|
46
|
+
essayAnswers: z.ZodArray<z.ZodObject<{
|
|
47
|
+
id: z.ZodString;
|
|
48
|
+
content: z.ZodString;
|
|
49
|
+
likesCount: z.ZodNumber;
|
|
50
|
+
createdAt: z.ZodString;
|
|
51
|
+
updatedAt: z.ZodString;
|
|
52
|
+
question: z.ZodObject<{
|
|
53
|
+
id: z.ZodString;
|
|
54
|
+
title: z.ZodString;
|
|
55
|
+
hint: z.ZodString;
|
|
56
|
+
post: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
}, z.core.$strict>;
|
|
59
|
+
}, z.core.$strict>;
|
|
60
|
+
}, z.core.$strict>>;
|
|
61
|
+
choiceAnswers: z.ZodArray<z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
choiceIndex: z.ZodNumber;
|
|
64
|
+
correct: z.ZodBoolean;
|
|
65
|
+
createdAt: z.ZodString;
|
|
66
|
+
updatedAt: z.ZodString;
|
|
67
|
+
question: z.ZodObject<{
|
|
68
|
+
id: z.ZodString;
|
|
69
|
+
title: z.ZodString;
|
|
70
|
+
options: z.ZodArray<z.ZodObject<{
|
|
71
|
+
content: z.ZodString;
|
|
72
|
+
isCorrectAnswer: z.ZodBoolean;
|
|
73
|
+
}, z.core.$strict>>;
|
|
74
|
+
reason: z.ZodNullable<z.ZodUnknown>;
|
|
75
|
+
post: z.ZodObject<{
|
|
76
|
+
id: z.ZodString;
|
|
77
|
+
}, z.core.$strict>;
|
|
78
|
+
}, z.core.$strict>;
|
|
79
|
+
}, z.core.$strict>>;
|
|
80
|
+
}, z.core.$strip>;
|
|
2
81
|
export declare const V1MemberPostsWithAnswersResponseSchema: z.ZodObject<{
|
|
3
82
|
posts: z.ZodArray<z.ZodObject<{
|
|
4
83
|
id: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-openapi-paths.d.ts","sourceRoot":"","sources":["../../src/schemas/extra-openapi-paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"extra-openapi-paths.d.ts","sourceRoot":"","sources":["../../src/schemas/extra-openapi-paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAqCvB,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;kBAcL,CAAA;AAEzC,eAAO,MAAM,4BAA4B;;;kBAGvC,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;kBAeL,CAAA;AAE1C,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUR,CAAA;AAEvC,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGjD,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;iBAE7C,CAAA"}
|
|
@@ -9,7 +9,7 @@ extendZodWithOpenApi(z);
|
|
|
9
9
|
const HealthOkWithTimestampSchema = z.object({
|
|
10
10
|
timestamp: z.string()
|
|
11
11
|
});
|
|
12
|
-
const MemberPostEssayAnswerInListSchema = z.strictObject({
|
|
12
|
+
export const MemberPostEssayAnswerInListSchema = z.strictObject({
|
|
13
13
|
id: z.string(),
|
|
14
14
|
content: z.string(),
|
|
15
15
|
likesCount: z.number().int(),
|
|
@@ -24,11 +24,11 @@ const MemberPostEssayAnswerInListSchema = z.strictObject({
|
|
|
24
24
|
})
|
|
25
25
|
})
|
|
26
26
|
}).openapi('MemberPostEssayAnswerInList');
|
|
27
|
-
const MemberPostChoiceOptionSchema = z.strictObject({
|
|
27
|
+
export const MemberPostChoiceOptionSchema = z.strictObject({
|
|
28
28
|
content: z.string(),
|
|
29
29
|
isCorrectAnswer: z.boolean()
|
|
30
30
|
});
|
|
31
|
-
const MemberPostChoiceAnswerInListSchema = z.strictObject({
|
|
31
|
+
export const MemberPostChoiceAnswerInListSchema = z.strictObject({
|
|
32
32
|
id: z.string(),
|
|
33
33
|
choiceIndex: z.number().int(),
|
|
34
34
|
correct: z.boolean(),
|
|
@@ -44,7 +44,7 @@ const MemberPostChoiceAnswerInListSchema = z.strictObject({
|
|
|
44
44
|
})
|
|
45
45
|
})
|
|
46
46
|
}).openapi('MemberPostChoiceAnswerInList');
|
|
47
|
-
const V1MemberPostsWithAnswersItemSchema = z.object({
|
|
47
|
+
export const V1MemberPostsWithAnswersItemSchema = z.object({
|
|
48
48
|
id: z.string(),
|
|
49
49
|
title: z.string(),
|
|
50
50
|
slug: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-openapi-paths.js","names":["extendZodWithOpenApi","z","RestErrorBodySchema","registry","V1AccessTokenResponseSchema","V1AuthorPostsCountResponseSchema","V1MemberPostsWithAnswersQuerySchema","V1AuthorBySlugPostsQuerySchema","V1CategoryBySlugMetadataQuerySchema","V1CategoryPostsQuerySchema","V1FeedSlugPathParamsSchema","V1SubSubcategoryBySlugPostsQuerySchema","V1TagBySlugPostsQuerySchema","V1AuthorBySlugMetaResponseSchema","V1AuthorBySlugPostsResponseSchema","V1CategoryBySlugCategoryPostsResponseSchema","V1CategoryBySlugMetadataResponseSchema","V1CategoryBySlugSubcategoriesThemeResponseSchema","V1SubcategoryBySlugPostsResponseSchema","V1SubSubcategoryBySlugPostsResponseSchema","V1TagBySlugMetaResponseSchema","V1TagBySlugPostsResponseSchema","V1EssayAnswersHasLikedQuerySchema","V1EssayAnswersHasLikedResponseSchema","HealthOkWithTimestampSchema","object","timestamp","string","MemberPostEssayAnswerInListSchema","strictObject","id","content","likesCount","number","int","createdAt","updatedAt","question","title","hint","post","openapi","MemberPostChoiceOptionSchema","isCorrectAnswer","boolean","MemberPostChoiceAnswerInListSchema","choiceIndex","correct","options","array","reason","unknown","nullable","V1MemberPostsWithAnswersItemSchema","slug","publishedDate","lastAnsweredTime","essayAnswers","choiceAnswers","V1MemberPostsWithAnswersResponseSchema","posts","nextCursor","V1MemberAvatarUploadResponseSchema","name","V1MemberAvatarDeleteResponseSchema","registerPath","method","path","tags","description","responses","schema","request","params","query","body","file","type","format","optional"],"sources":["../../src/schemas/extra-openapi-paths.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport {\n registry,\n V1AccessTokenResponseSchema,\n V1AuthorPostsCountResponseSchema,\n V1MemberPostsWithAnswersQuerySchema,\n} from './content.js'\nimport {\n V1AuthorBySlugPostsQuerySchema,\n V1CategoryBySlugMetadataQuerySchema,\n V1CategoryPostsQuerySchema,\n V1FeedSlugPathParamsSchema,\n V1SubSubcategoryBySlugPostsQuerySchema,\n V1TagBySlugPostsQuerySchema,\n} from './content-feed-queries.js'\nimport {\n V1AuthorBySlugMetaResponseSchema,\n V1AuthorBySlugPostsResponseSchema,\n V1CategoryBySlugCategoryPostsResponseSchema,\n V1CategoryBySlugMetadataResponseSchema,\n V1CategoryBySlugSubcategoriesThemeResponseSchema,\n V1SubcategoryBySlugPostsResponseSchema,\n V1SubSubcategoryBySlugPostsResponseSchema,\n V1TagBySlugMetaResponseSchema,\n V1TagBySlugPostsResponseSchema,\n} from './content-feed-responses.js'\nimport {\n V1EssayAnswersHasLikedQuerySchema,\n V1EssayAnswersHasLikedResponseSchema,\n} from './member-essay-answers-has-liked.js'\n\nextendZodWithOpenApi(z)\n\nconst HealthOkWithTimestampSchema = z.object({ timestamp: z.string() })\n\nconst MemberPostEssayAnswerInListSchema = z\n .strictObject({\n id: z.string(),\n content: z.string(),\n likesCount: z.number().int(),\n createdAt: z.string(),\n updatedAt: z.string(),\n question: z.strictObject({\n id: z.string(),\n title: z.string(),\n hint: z.string(),\n post: z.strictObject({ id: z.string() }),\n }),\n })\n .openapi('MemberPostEssayAnswerInList')\n\nconst MemberPostChoiceOptionSchema = z.strictObject({\n content: z.string(),\n isCorrectAnswer: z.boolean(),\n})\n\nconst MemberPostChoiceAnswerInListSchema = z\n .strictObject({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n createdAt: z.string(),\n updatedAt: z.string(),\n question: z.strictObject({\n id: z.string(),\n title: z.string(),\n options: z.array(MemberPostChoiceOptionSchema),\n reason: z.unknown().nullable(),\n post: z.strictObject({ id: z.string() }),\n }),\n })\n .openapi('MemberPostChoiceAnswerInList')\n\nconst V1MemberPostsWithAnswersItemSchema = z\n .object({\n id: z.string(),\n title: z.string(),\n slug: z.string(),\n publishedDate: z.string(),\n lastAnsweredTime: z.string(),\n essayAnswers: z.array(MemberPostEssayAnswerInListSchema),\n choiceAnswers: z.array(MemberPostChoiceAnswerInListSchema),\n })\n .openapi('MemberPostWithAnswersItem')\n\nexport const V1MemberPostsWithAnswersResponseSchema = z.object({\n posts: z.array(V1MemberPostsWithAnswersItemSchema),\n nextCursor: z.string().nullable(),\n})\n\nexport const V1MemberAvatarUploadResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n})\n\nexport const V1MemberAvatarDeleteResponseSchema = z.object({\n id: z.string(),\n})\n\n/* --- Infra: health, OpenAPI, auth */\n\nregistry.registerPath({\n method: 'get',\n path: '/health',\n tags: ['Infra'],\n description: 'Health: DB connectivity plus timestamp in success payload.',\n responses: {\n 200: {\n description: 'OK',\n content: {\n 'application/json': { schema: HealthOkWithTimestampSchema },\n },\n },\n 503: {\n description: 'Unhealthy',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'options',\n path: '/auth/access-token',\n tags: ['Auth'],\n description:\n 'CORS preflight for the access token exchange (browser + cookies).',\n responses: { 204: { description: 'No content' } },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/auth/access-token',\n tags: ['Auth'],\n description:\n 'Exchanges the `id_token` **cookie** (forwarded to Go API) for a **Bearer** JWT. Requires `Origin` or `Referer` from an allowlisted origin. Used by the frontend; not for unauthenticated server-to-server calls.',\n responses: {\n 200: {\n description: 'Access token issued',\n content: {\n 'application/json': { schema: V1AccessTokenResponseSchema },\n },\n },\n 400: {\n description: 'Missing id_token cookie',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description:\n 'Unauthorized: invalid id_token when exchanging upstream (Go API **400**/**401**), **or** upstream returned a JWT body that failed local verification (**iss** / **aud** / **user_id**).',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Origin not allowed, missing, or invalid',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 500: {\n description: 'Internal error or upstream issue',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\n/* --- Public: categories, tags, authors */\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/categories/{slug}/posts',\n tags: ['Taxonomy'],\n description:\n 'Posts for a top-level **category** slug. Aggregates all sub-subcategories under that category. Empty list if slug is unknown (no 404).',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1CategoryPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CategoryBySlugCategoryPostsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/categories/{slug}/metadata',\n tags: ['Taxonomy'],\n description:\n 'OG metadata for a category, optionally filtered to one subcategory by `subcategorySlug`.',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1CategoryBySlugMetadataQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CategoryBySlugMetadataResponseSchema,\n },\n },\n },\n 404: {\n description: 'Category not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/categories/{slug}/subcategories-theme',\n tags: ['Taxonomy'],\n description:\n 'Display name, theme color, and subcategory list for a category tab UI.',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CategoryBySlugSubcategoriesThemeResponseSchema,\n },\n },\n },\n 404: {\n description: 'Category not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/subcategories/{slug}/posts',\n tags: ['Taxonomy'],\n description:\n 'Feed posts for a **subcategory** slug (published/archived, sub-subcategory membership).',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1CategoryPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1SubcategoryBySlugPostsResponseSchema },\n },\n },\n 404: {\n description: 'Subcategory not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/sub-subcategories/{slug}/posts',\n tags: ['Taxonomy'],\n description: 'Public posts for a **sub-subcategory** slug, latest-first.',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1SubSubcategoryBySlugPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1SubSubcategoryBySlugPostsResponseSchema,\n },\n },\n },\n 404: {\n description: 'Sub-subcategory not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/tags/{slug}/meta',\n tags: ['Taxonomy'],\n description: 'OG metadata for a tag page.',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1TagBySlugMetaResponseSchema },\n },\n },\n 404: {\n description: 'Tag not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/tags/{slug}/posts',\n tags: ['Taxonomy'],\n description: 'Public posts for a tag (with count).',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1TagBySlugPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1TagBySlugPostsResponseSchema },\n },\n },\n 404: {\n description: 'Tag not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/meta',\n tags: ['Taxonomy'],\n description: 'Author bio, name, and small image for a profile/SEO surface.',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AuthorBySlugMetaResponseSchema },\n },\n },\n 404: {\n description: 'Author not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/posts',\n tags: ['Taxonomy'],\n description: 'Author posts and profile fields for the list view.',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1AuthorBySlugPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AuthorBySlugPostsResponseSchema },\n },\n },\n 404: {\n description: 'Author not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/posts-count',\n tags: ['Taxonomy'],\n description:\n 'Public post count for an author (matches GraphQL `GetAuthorPostsCount`).',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AuthorPostsCountResponseSchema },\n },\n },\n 404: {\n description: 'Author not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\n/* --- Authenticated: member (Bearer JWT) */\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/posts-with-answers',\n tags: ['Members'],\n description: 'Cursor-paginated; role must be `member` or `admin`.',\n request: { query: V1MemberPostsWithAnswersQuerySchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostsWithAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/essay-answers/has-liked',\n tags: ['Members'],\n description: 'Batch check liked state per ID.',\n request: { query: V1EssayAnswersHasLikedQuerySchema },\n responses: {\n 200: {\n description: 'Success: root array (empty if no ids or none match).',\n content: {\n 'application/json': { schema: V1EssayAnswersHasLikedResponseSchema },\n },\n },\n 400: {\n description: 'Invalid query (e.g. validation failure)',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/avatar',\n tags: ['Members'],\n description:\n 'Upload: `multipart/form-data` field `file` (jpeg/png/gif/webp, max 5MB). `IMAGES_STORAGE_PATH` must be configured. Role `member` or `admin`.',\n request: {\n body: {\n content: {\n 'multipart/form-data': {\n schema: z.object({\n file: z.string().openapi({ type: 'string', format: 'binary' }),\n name: z.string().optional().openapi({\n description: 'Display name, default `memberAvatar`.',\n }),\n }),\n },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1MemberAvatarUploadResponseSchema },\n },\n },\n 400: {\n description: 'Missing file, invalid type, etc.',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 500: {\n description: 'Storage not configured',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'delete',\n path: '/v1/members/me/avatar',\n tags: ['Members'],\n description: 'Removes current avatar and deletes the stored file.',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberAvatarDeleteResponseSchema },\n },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'No avatar to delete',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"extra-openapi-paths.js","names":["extendZodWithOpenApi","z","RestErrorBodySchema","registry","V1AccessTokenResponseSchema","V1AuthorPostsCountResponseSchema","V1MemberPostsWithAnswersQuerySchema","V1AuthorBySlugPostsQuerySchema","V1CategoryBySlugMetadataQuerySchema","V1CategoryPostsQuerySchema","V1FeedSlugPathParamsSchema","V1SubSubcategoryBySlugPostsQuerySchema","V1TagBySlugPostsQuerySchema","V1AuthorBySlugMetaResponseSchema","V1AuthorBySlugPostsResponseSchema","V1CategoryBySlugCategoryPostsResponseSchema","V1CategoryBySlugMetadataResponseSchema","V1CategoryBySlugSubcategoriesThemeResponseSchema","V1SubcategoryBySlugPostsResponseSchema","V1SubSubcategoryBySlugPostsResponseSchema","V1TagBySlugMetaResponseSchema","V1TagBySlugPostsResponseSchema","V1EssayAnswersHasLikedQuerySchema","V1EssayAnswersHasLikedResponseSchema","HealthOkWithTimestampSchema","object","timestamp","string","MemberPostEssayAnswerInListSchema","strictObject","id","content","likesCount","number","int","createdAt","updatedAt","question","title","hint","post","openapi","MemberPostChoiceOptionSchema","isCorrectAnswer","boolean","MemberPostChoiceAnswerInListSchema","choiceIndex","correct","options","array","reason","unknown","nullable","V1MemberPostsWithAnswersItemSchema","slug","publishedDate","lastAnsweredTime","essayAnswers","choiceAnswers","V1MemberPostsWithAnswersResponseSchema","posts","nextCursor","V1MemberAvatarUploadResponseSchema","name","V1MemberAvatarDeleteResponseSchema","registerPath","method","path","tags","description","responses","schema","request","params","query","body","file","type","format","optional"],"sources":["../../src/schemas/extra-openapi-paths.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport {\n registry,\n V1AccessTokenResponseSchema,\n V1AuthorPostsCountResponseSchema,\n V1MemberPostsWithAnswersQuerySchema,\n} from './content.js'\nimport {\n V1AuthorBySlugPostsQuerySchema,\n V1CategoryBySlugMetadataQuerySchema,\n V1CategoryPostsQuerySchema,\n V1FeedSlugPathParamsSchema,\n V1SubSubcategoryBySlugPostsQuerySchema,\n V1TagBySlugPostsQuerySchema,\n} from './content-feed-queries.js'\nimport {\n V1AuthorBySlugMetaResponseSchema,\n V1AuthorBySlugPostsResponseSchema,\n V1CategoryBySlugCategoryPostsResponseSchema,\n V1CategoryBySlugMetadataResponseSchema,\n V1CategoryBySlugSubcategoriesThemeResponseSchema,\n V1SubcategoryBySlugPostsResponseSchema,\n V1SubSubcategoryBySlugPostsResponseSchema,\n V1TagBySlugMetaResponseSchema,\n V1TagBySlugPostsResponseSchema,\n} from './content-feed-responses.js'\nimport {\n V1EssayAnswersHasLikedQuerySchema,\n V1EssayAnswersHasLikedResponseSchema,\n} from './member-essay-answers-has-liked.js'\n\nextendZodWithOpenApi(z)\n\nconst HealthOkWithTimestampSchema = z.object({ timestamp: z.string() })\n\nexport const MemberPostEssayAnswerInListSchema = z\n .strictObject({\n id: z.string(),\n content: z.string(),\n likesCount: z.number().int(),\n createdAt: z.string(),\n updatedAt: z.string(),\n question: z.strictObject({\n id: z.string(),\n title: z.string(),\n hint: z.string(),\n post: z.strictObject({ id: z.string() }),\n }),\n })\n .openapi('MemberPostEssayAnswerInList')\n\nexport const MemberPostChoiceOptionSchema = z.strictObject({\n content: z.string(),\n isCorrectAnswer: z.boolean(),\n})\n\nexport const MemberPostChoiceAnswerInListSchema = z\n .strictObject({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n createdAt: z.string(),\n updatedAt: z.string(),\n question: z.strictObject({\n id: z.string(),\n title: z.string(),\n options: z.array(MemberPostChoiceOptionSchema),\n reason: z.unknown().nullable(),\n post: z.strictObject({ id: z.string() }),\n }),\n })\n .openapi('MemberPostChoiceAnswerInList')\n\nexport const V1MemberPostsWithAnswersItemSchema = z\n .object({\n id: z.string(),\n title: z.string(),\n slug: z.string(),\n publishedDate: z.string(),\n lastAnsweredTime: z.string(),\n essayAnswers: z.array(MemberPostEssayAnswerInListSchema),\n choiceAnswers: z.array(MemberPostChoiceAnswerInListSchema),\n })\n .openapi('MemberPostWithAnswersItem')\n\nexport const V1MemberPostsWithAnswersResponseSchema = z.object({\n posts: z.array(V1MemberPostsWithAnswersItemSchema),\n nextCursor: z.string().nullable(),\n})\n\nexport const V1MemberAvatarUploadResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n})\n\nexport const V1MemberAvatarDeleteResponseSchema = z.object({\n id: z.string(),\n})\n\n/* --- Infra: health, OpenAPI, auth */\n\nregistry.registerPath({\n method: 'get',\n path: '/health',\n tags: ['Infra'],\n description: 'Health: DB connectivity plus timestamp in success payload.',\n responses: {\n 200: {\n description: 'OK',\n content: {\n 'application/json': { schema: HealthOkWithTimestampSchema },\n },\n },\n 503: {\n description: 'Unhealthy',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'options',\n path: '/auth/access-token',\n tags: ['Auth'],\n description:\n 'CORS preflight for the access token exchange (browser + cookies).',\n responses: { 204: { description: 'No content' } },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/auth/access-token',\n tags: ['Auth'],\n description:\n 'Exchanges the `id_token` **cookie** (forwarded to Go API) for a **Bearer** JWT. Requires `Origin` or `Referer` from an allowlisted origin. Used by the frontend; not for unauthenticated server-to-server calls.',\n responses: {\n 200: {\n description: 'Access token issued',\n content: {\n 'application/json': { schema: V1AccessTokenResponseSchema },\n },\n },\n 400: {\n description: 'Missing id_token cookie',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description:\n 'Unauthorized: invalid id_token when exchanging upstream (Go API **400**/**401**), **or** upstream returned a JWT body that failed local verification (**iss** / **aud** / **user_id**).',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Origin not allowed, missing, or invalid',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 500: {\n description: 'Internal error or upstream issue',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\n/* --- Public: categories, tags, authors */\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/categories/{slug}/posts',\n tags: ['Taxonomy'],\n description:\n 'Posts for a top-level **category** slug. Aggregates all sub-subcategories under that category. Empty list if slug is unknown (no 404).',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1CategoryPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CategoryBySlugCategoryPostsResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/categories/{slug}/metadata',\n tags: ['Taxonomy'],\n description:\n 'OG metadata for a category, optionally filtered to one subcategory by `subcategorySlug`.',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1CategoryBySlugMetadataQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CategoryBySlugMetadataResponseSchema,\n },\n },\n },\n 404: {\n description: 'Category not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/categories/{slug}/subcategories-theme',\n tags: ['Taxonomy'],\n description:\n 'Display name, theme color, and subcategory list for a category tab UI.',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1CategoryBySlugSubcategoriesThemeResponseSchema,\n },\n },\n },\n 404: {\n description: 'Category not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/subcategories/{slug}/posts',\n tags: ['Taxonomy'],\n description:\n 'Feed posts for a **subcategory** slug (published/archived, sub-subcategory membership).',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1CategoryPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1SubcategoryBySlugPostsResponseSchema },\n },\n },\n 404: {\n description: 'Subcategory not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/sub-subcategories/{slug}/posts',\n tags: ['Taxonomy'],\n description: 'Public posts for a **sub-subcategory** slug, latest-first.',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1SubSubcategoryBySlugPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1SubSubcategoryBySlugPostsResponseSchema,\n },\n },\n },\n 404: {\n description: 'Sub-subcategory not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/tags/{slug}/meta',\n tags: ['Taxonomy'],\n description: 'OG metadata for a tag page.',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1TagBySlugMetaResponseSchema },\n },\n },\n 404: {\n description: 'Tag not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/tags/{slug}/posts',\n tags: ['Taxonomy'],\n description: 'Public posts for a tag (with count).',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1TagBySlugPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1TagBySlugPostsResponseSchema },\n },\n },\n 404: {\n description: 'Tag not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/meta',\n tags: ['Taxonomy'],\n description: 'Author bio, name, and small image for a profile/SEO surface.',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AuthorBySlugMetaResponseSchema },\n },\n },\n 404: {\n description: 'Author not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/posts',\n tags: ['Taxonomy'],\n description: 'Author posts and profile fields for the list view.',\n request: {\n params: V1FeedSlugPathParamsSchema,\n query: V1AuthorBySlugPostsQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AuthorBySlugPostsResponseSchema },\n },\n },\n 404: {\n description: 'Author not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/authors/{slug}/posts-count',\n tags: ['Taxonomy'],\n description:\n 'Public post count for an author (matches GraphQL `GetAuthorPostsCount`).',\n request: { params: V1FeedSlugPathParamsSchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AuthorPostsCountResponseSchema },\n },\n },\n 404: {\n description: 'Author not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\n/* --- Authenticated: member (Bearer JWT) */\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/posts-with-answers',\n tags: ['Members'],\n description: 'Cursor-paginated; role must be `member` or `admin`.',\n request: { query: V1MemberPostsWithAnswersQuerySchema },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostsWithAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/essay-answers/has-liked',\n tags: ['Members'],\n description: 'Batch check liked state per ID.',\n request: { query: V1EssayAnswersHasLikedQuerySchema },\n responses: {\n 200: {\n description: 'Success: root array (empty if no ids or none match).',\n content: {\n 'application/json': { schema: V1EssayAnswersHasLikedResponseSchema },\n },\n },\n 400: {\n description: 'Invalid query (e.g. validation failure)',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/avatar',\n tags: ['Members'],\n description:\n 'Upload: `multipart/form-data` field `file` (jpeg/png/gif/webp, max 5MB). `IMAGES_STORAGE_PATH` must be configured. Role `member` or `admin`.',\n request: {\n body: {\n content: {\n 'multipart/form-data': {\n schema: z.object({\n file: z.string().openapi({ type: 'string', format: 'binary' }),\n name: z.string().optional().openapi({\n description: 'Display name, default `memberAvatar`.',\n }),\n }),\n },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1MemberAvatarUploadResponseSchema },\n },\n },\n 400: {\n description: 'Missing file, invalid type, etc.',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 500: {\n description: 'Storage not configured',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'delete',\n path: '/v1/members/me/avatar',\n tags: ['Members'],\n description: 'Removes current avatar and deletes the stored file.',\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberAvatarDeleteResponseSchema },\n },\n },\n 401: {\n description: 'Missing or invalid JWT',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'No avatar to delete',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,11 @@ import { z } from 'zod';
|
|
|
3
3
|
export declare const V1EssayAnswersHasLikedQuerySchema: z.ZodObject<{
|
|
4
4
|
essayAnswerIds: z.ZodOptional<z.ZodString>;
|
|
5
5
|
}, z.core.$strip>;
|
|
6
|
+
export declare const V1EssayAnswersHasLikedItemSchema: z.ZodObject<{
|
|
7
|
+
essayAnswerId: z.ZodString;
|
|
8
|
+
hasLiked: z.ZodBoolean;
|
|
9
|
+
essayAnswerLikeId: z.ZodString;
|
|
10
|
+
}, z.core.$strip>;
|
|
6
11
|
/** Root JSON array. */
|
|
7
12
|
export declare const V1EssayAnswersHasLikedResponseSchema: z.ZodArray<z.ZodObject<{
|
|
8
13
|
essayAnswerId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-essay-answers-has-liked.d.ts","sourceRoot":"","sources":["../../src/schemas/member-essay-answers-has-liked.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,8DAA8D;AAC9D,eAAO,MAAM,iCAAiC;;iBAQ5C,CAAA;
|
|
1
|
+
{"version":3,"file":"member-essay-answers-has-liked.d.ts","sourceRoot":"","sources":["../../src/schemas/member-essay-answers-has-liked.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,8DAA8D;AAC9D,eAAO,MAAM,iCAAiC;;iBAQ5C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;iBAYF,CAAA;AAE3C,uBAAuB;AACvB,eAAO,MAAM,oCAAoC;;;;kBAEY,CAAA;AAE7D,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACjC,MAAM,GAAG,SAAS,CAIpB;AAED,wEAAwE;AACxE,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,EAAE,CAMV"}
|
|
@@ -6,7 +6,7 @@ extendZodWithOpenApi(z);
|
|
|
6
6
|
export const V1EssayAnswersHasLikedQuerySchema = z.object({
|
|
7
7
|
essayAnswerIds: z.string().max(10_000).optional().describe('Comma-separated essay answer IDs. Omit or leave empty for an empty result list.')
|
|
8
8
|
});
|
|
9
|
-
const V1EssayAnswersHasLikedItemSchema = z.object({
|
|
9
|
+
export const V1EssayAnswersHasLikedItemSchema = z.object({
|
|
10
10
|
essayAnswerId: z.string().describe('Essay answer ID from the request, in request order.'),
|
|
11
11
|
hasLiked: z.boolean().describe('Whether the member has liked this answer.'),
|
|
12
12
|
essayAnswerLikeId: z.string().describe('Like row id when hasLiked is true; empty string when not liked.')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-essay-answers-has-liked.js","names":["extendZodWithOpenApi","z","V1EssayAnswersHasLikedQuerySchema","object","essayAnswerIds","string","max","optional","describe","V1EssayAnswersHasLikedItemSchema","essayAnswerId","hasLiked","boolean","essayAnswerLikeId","openapi","V1EssayAnswersHasLikedResponseSchema","array","essayAnswerIdsQueryToString","raw","undefined","Array","isArray","map","String","join","essayAnswerIdsFromCommaSeparatedParam","value","split","s","trim","filter","Boolean"],"sources":["../../src/schemas/member-essay-answers-has-liked.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nextendZodWithOpenApi(z)\n\n/** GET `essayAnswerIds` query: comma-separated ID strings. */\nexport const V1EssayAnswersHasLikedQuerySchema = z.object({\n essayAnswerIds: z\n .string()\n .max(10_000)\n .optional()\n .describe(\n 'Comma-separated essay answer IDs. Omit or leave empty for an empty result list.'\n ),\n})\n\
|
|
1
|
+
{"version":3,"file":"member-essay-answers-has-liked.js","names":["extendZodWithOpenApi","z","V1EssayAnswersHasLikedQuerySchema","object","essayAnswerIds","string","max","optional","describe","V1EssayAnswersHasLikedItemSchema","essayAnswerId","hasLiked","boolean","essayAnswerLikeId","openapi","V1EssayAnswersHasLikedResponseSchema","array","essayAnswerIdsQueryToString","raw","undefined","Array","isArray","map","String","join","essayAnswerIdsFromCommaSeparatedParam","value","split","s","trim","filter","Boolean"],"sources":["../../src/schemas/member-essay-answers-has-liked.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nextendZodWithOpenApi(z)\n\n/** GET `essayAnswerIds` query: comma-separated ID strings. */\nexport const V1EssayAnswersHasLikedQuerySchema = z.object({\n essayAnswerIds: z\n .string()\n .max(10_000)\n .optional()\n .describe(\n 'Comma-separated essay answer IDs. Omit or leave empty for an empty result list.'\n ),\n})\n\nexport const V1EssayAnswersHasLikedItemSchema = z\n .object({\n essayAnswerId: z\n .string()\n .describe('Essay answer ID from the request, in request order.'),\n hasLiked: z.boolean().describe('Whether the member has liked this answer.'),\n essayAnswerLikeId: z\n .string()\n .describe(\n 'Like row id when hasLiked is true; empty string when not liked.'\n ),\n })\n .openapi('MemberEssayAnswerHasLikedItem')\n\n/** Root JSON array. */\nexport const V1EssayAnswersHasLikedResponseSchema = z\n .array(V1EssayAnswersHasLikedItemSchema)\n .describe('One entry per requested ID, in the same order.')\n\n/** Normalize Express `req.query.essayAnswerIds` to a single string for Zod. */\nexport function essayAnswerIdsQueryToString(\n raw: string | string[] | undefined\n): string | undefined {\n if (raw === undefined) return undefined\n if (Array.isArray(raw)) return raw.map(String).join(',')\n return String(raw)\n}\n\n/** Split comma-separated query into ID strings (trim, drop empties). */\nexport function essayAnswerIdsFromCommaSeparatedParam(\n value: string | undefined\n): string[] {\n if (value === undefined || value === '') return []\n return value\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,gCAAgC;AACrE,SAASC,CAAC,QAAQ,KAAK;AAEvBD,oBAAoB,CAACC,CAAC,CAAC;;AAEvB;AACA,OAAO,MAAMC,iCAAiC,GAAGD,CAAC,CAACE,MAAM,CAAC;EACxDC,cAAc,EAAEH,CAAC,CACdI,MAAM,CAAC,CAAC,CACRC,GAAG,CAAC,MAAM,CAAC,CACXC,QAAQ,CAAC,CAAC,CACVC,QAAQ,CACP,iFACF;AACJ,CAAC,CAAC;AAEF,OAAO,MAAMC,gCAAgC,GAAGR,CAAC,CAC9CE,MAAM,CAAC;EACNO,aAAa,EAAET,CAAC,CACbI,MAAM,CAAC,CAAC,CACRG,QAAQ,CAAC,qDAAqD,CAAC;EAClEG,QAAQ,EAAEV,CAAC,CAACW,OAAO,CAAC,CAAC,CAACJ,QAAQ,CAAC,2CAA2C,CAAC;EAC3EK,iBAAiB,EAAEZ,CAAC,CACjBI,MAAM,CAAC,CAAC,CACRG,QAAQ,CACP,iEACF;AACJ,CAAC,CAAC,CACDM,OAAO,CAAC,+BAA+B,CAAC;;AAE3C;AACA,OAAO,MAAMC,oCAAoC,GAAGd,CAAC,CAClDe,KAAK,CAACP,gCAAgC,CAAC,CACvCD,QAAQ,CAAC,gDAAgD,CAAC;;AAE7D;AACA,OAAO,SAASS,2BAA2BA,CACzCC,GAAkC,EACd;EACpB,IAAIA,GAAG,KAAKC,SAAS,EAAE,OAAOA,SAAS;EACvC,IAAIC,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,EAAE,OAAOA,GAAG,CAACI,GAAG,CAACC,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EACxD,OAAOD,MAAM,CAACL,GAAG,CAAC;AACpB;;AAEA;AACA,OAAO,SAASO,qCAAqCA,CACnDC,KAAyB,EACf;EACV,IAAIA,KAAK,KAAKP,SAAS,IAAIO,KAAK,KAAK,EAAE,EAAE,OAAO,EAAE;EAClD,OAAOA,KAAK,CACTC,KAAK,CAAC,GAAG,CAAC,CACVL,GAAG,CAAEM,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CACpBC,MAAM,CAACC,OAAO,CAAC;AACpB","ignoreList":[]}
|
package/dist/schemas/qna.d.ts
CHANGED
|
@@ -138,6 +138,12 @@ export declare const V1CreatePostEssayAnswerLikeResponseSchema: z.ZodObject<{
|
|
|
138
138
|
export declare const V1DeletePostEssayAnswerLikeResponseSchema: z.ZodObject<{
|
|
139
139
|
id: z.ZodString;
|
|
140
140
|
}, z.core.$strip>;
|
|
141
|
+
export declare const V1PostChoiceAnswerPathIdSchema: z.ZodObject<{
|
|
142
|
+
id: z.ZodCoercedNumber<unknown>;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
export declare const V1PostEssayAnswerPathIdSchema: z.ZodObject<{
|
|
145
|
+
id: z.ZodCoercedNumber<unknown>;
|
|
146
|
+
}, z.core.$strip>;
|
|
141
147
|
/** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */
|
|
142
148
|
export declare const V1PostEssayAnswerLikePathIdSchema: z.ZodObject<{
|
|
143
149
|
id: z.ZodCoercedNumber<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qna.d.ts","sourceRoot":"","sources":["../../src/schemas/qna.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyCvB,eAAO,MAAM,gCAAgC;;;;;iBAG3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;kBAE/C,CAAA;AAwBD,eAAO,MAAM,sCAAsC;;iBAEjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;iBAOhD,CAAA;AAYF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;iBAKvD,CAAA;AAyCF,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;kBAEnD,CAAA;AAwCD,eAAO,MAAM,mCAAmC;;iBAE9C,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;kBAElD,CAAA;AAkCD,mEAAmE;AACnE,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;iBAG5C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAEF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC;;iBAEhD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;;iBAKjD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;iBAIjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;iBAIhD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;;;;;;;iBAIpD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;iBAEpD,CAAA;
|
|
1
|
+
{"version":3,"file":"qna.d.ts","sourceRoot":"","sources":["../../src/schemas/qna.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyCvB,eAAO,MAAM,gCAAgC;;;;;iBAG3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;kBAE/C,CAAA;AAwBD,eAAO,MAAM,sCAAsC;;iBAEjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;iBAOhD,CAAA;AAYF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;iBAKvD,CAAA;AAyCF,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;kBAEnD,CAAA;AAwCD,eAAO,MAAM,mCAAmC;;iBAE9C,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;kBAElD,CAAA;AAkCD,mEAAmE;AACnE,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;iBAG5C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAEF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC;;iBAEhD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;;iBAKjD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;iBAIjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;iBAIhD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;;;;;;;iBAIpD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;iBAEpD,CAAA;AAEF,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AAEF,oEAAoE;AACpE,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA"}
|
package/dist/schemas/qna.js
CHANGED
|
@@ -288,10 +288,10 @@ export const V1CreatePostEssayAnswerLikeResponseSchema = z.object({
|
|
|
288
288
|
export const V1DeletePostEssayAnswerLikeResponseSchema = z.object({
|
|
289
289
|
id: z.string()
|
|
290
290
|
});
|
|
291
|
-
const V1PostChoiceAnswerPathIdSchema = z.object({
|
|
291
|
+
export const V1PostChoiceAnswerPathIdSchema = z.object({
|
|
292
292
|
id: z.coerce.number().int().positive()
|
|
293
293
|
});
|
|
294
|
-
const V1PostEssayAnswerPathIdSchema = z.object({
|
|
294
|
+
export const V1PostEssayAnswerPathIdSchema = z.object({
|
|
295
295
|
id: z.coerce.number().int().positive()
|
|
296
296
|
});
|
|
297
297
|
|
package/dist/schemas/qna.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qna.js","names":["extendZodWithOpenApi","z","RestErrorBodySchema","registry","QnaMemberAvatarSchema","object","id","string","fileUrl","openapi","QnaMemberPublicSchema","avatar","nullable","optional","nickname","name","email","EssayAnswerPublicItemSchema","createdAt","question","post","slug","title","member","content","likesCount","number","int","V1AllPostEssayAnswersQuerySchema","take","coerce","min","max","orderBy","enum","default","V1AllPostEssayAnswersResponseSchema","array","registerPath","method","path","tags","description","request","query","responses","schema","V1PostEssayQuestionAnswersParamsSchema","questionId","positive","V1PostEssayQuestionAnswersQuerySchema","answerTake","answerSkip","answerOrderBy","EssayAnswerThreadItemSchema","V1PostEssayQuestionWithAnswersResponseSchema","hint","answers","params","ChoiceAnswerItemSchema","choiceIndex","correct","boolean","V1MemberPostChoiceAnswersQuerySchema","postSlug","V1MemberPostChoiceAnswersResponseSchema","EssayAnswerMemberItemSchema","V1MemberPostEssayAnswersQuerySchema","V1MemberPostEssayAnswersResponseSchema","connectIdSchema","union","V1CreatePostChoiceAnswerBodySchema","V1PatchPostChoiceAnswerBodySchema","V1CreatePostEssayAnswerBodySchema","V1PatchPostEssayAnswerBodySchema","V1CreatePostEssayAnswerLikeBodySchema","answerId","V1CreatePostChoiceAnswerResponseSchema","V1UpdatePostChoiceAnswerResponseSchema","V1CreatePostEssayAnswerResponseSchema","V1UpdatePostEssayAnswerResponseSchema","V1CreatePostEssayAnswerLikeResponseSchema","answer","V1DeletePostEssayAnswerLikeResponseSchema","V1PostChoiceAnswerPathIdSchema","V1PostEssayAnswerPathIdSchema","V1PostEssayAnswerLikePathIdSchema","body"],"sources":["../../src/schemas/qna.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport { registry } from './content.js'\n\nextendZodWithOpenApi(z)\n\nconst QnaMemberAvatarSchema = z\n .object({\n id: z.string(),\n fileUrl: z.string(),\n })\n .openapi('QnaMemberAvatar')\n\nconst QnaMemberPublicSchema = z\n .object({\n id: z.string(),\n avatar: QnaMemberAvatarSchema.nullable().optional(),\n nickname: z.string(),\n name: z.string(),\n email: z.string(),\n })\n .openapi('QnaMemberPublic')\n\nconst EssayAnswerPublicItemSchema = z\n .object({\n id: z.string(),\n createdAt: z.string().optional(),\n question: z\n .object({\n id: z.string(),\n post: z.object({ slug: z.string() }).optional(),\n title: z.string(),\n })\n .optional(),\n member: QnaMemberPublicSchema.optional(),\n content: z.string(),\n likesCount: z.number().int(),\n })\n .openapi('EssayAnswerPublicItem')\n\nexport const V1AllPostEssayAnswersQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(100).optional(),\n orderBy: z.enum(['createdAt:desc']).optional().default('createdAt:desc'),\n})\n\nexport const V1AllPostEssayAnswersResponseSchema = z.array(\n EssayAnswerPublicItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-answers',\n tags: ['Public Q&A'],\n description: 'Flat `orderBy`: `createdAt:desc` only.',\n request: {\n query: V1AllPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AllPostEssayAnswersResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nexport const V1PostEssayQuestionAnswersParamsSchema = z.object({\n questionId: z.coerce.number().int().positive(),\n})\n\nexport const V1PostEssayQuestionAnswersQuerySchema = z.object({\n answerTake: z.coerce.number().int().min(1).max(100),\n answerSkip: z.coerce.number().int().min(0).max(5000).optional(),\n answerOrderBy: z\n .enum(['createdAt:desc', 'likesCount:desc'])\n .optional()\n .default('createdAt:desc'),\n})\n\nconst EssayAnswerThreadItemSchema = z\n .object({\n id: z.string(),\n content: z.string(),\n member: QnaMemberPublicSchema.optional(),\n likesCount: z.number().int(),\n createdAt: z.string().optional(),\n })\n .openapi('EssayAnswerThreadItem')\n\nexport const V1PostEssayQuestionWithAnswersResponseSchema = z.object({\n id: z.string(),\n title: z.string(),\n hint: z.string(),\n answers: z.array(EssayAnswerThreadItemSchema),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-questions/{questionId}',\n tags: ['Public Q&A'],\n description:\n 'Question detail with answers thread. Flat `answerOrderBy`: `createdAt:desc` or `likesCount:desc`.',\n request: {\n params: V1PostEssayQuestionAnswersParamsSchema,\n query: V1PostEssayQuestionAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostEssayQuestionWithAnswersResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Question not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst ChoiceAnswerItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n })\n .openapi('ChoiceAnswerItem')\n\nexport const V1MemberPostChoiceAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostChoiceAnswersResponseSchema = z.array(\n ChoiceAnswerItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Choice answers for the authenticated member.',\n request: {\n query: V1MemberPostChoiceAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostChoiceAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst EssayAnswerMemberItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n content: z.string(),\n })\n .openapi('EssayAnswerMemberItem')\n\nexport const V1MemberPostEssayAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostEssayAnswersResponseSchema = z.array(\n EssayAnswerMemberItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Essay answers for the authenticated member.',\n request: {\n query: V1MemberPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostEssayAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst connectIdSchema = z.union([z.string(), z.number()])\n\n/** Native REST: `questionId` coerces to numeric id server-side. */\nexport const V1CreatePostChoiceAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n choiceIndex: z.number().int(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostChoiceAnswerBodySchema = z.object({\n choiceIndex: z.number().int().optional(),\n})\n\nexport const V1CreatePostEssayAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n content: z.string(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostEssayAnswerBodySchema = z.object({\n content: z.string(),\n})\n\n/** Native REST: essay answer id to like (`PostEssayAnswer.id`). */\nexport const V1CreatePostEssayAnswerLikeBodySchema = z.object({\n answerId: connectIdSchema,\n})\n\nexport const V1CreatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n})\n\nexport const V1CreatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n})\n\nexport const V1CreatePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n answer: z.object({ id: z.string() }),\n member: z.object({ id: z.string() }),\n})\n\nexport const V1DeletePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n})\n\nconst V1PostChoiceAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nconst V1PostEssayAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\n/** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */\nexport const V1PostEssayAnswerLikePathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Create a choice answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-choice-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update a choice answer for the authenticated member.',\n request: {\n params: V1PostChoiceAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Create an essay answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-essay-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update an essay answer for the authenticated member.',\n request: {\n params: V1PostEssayAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or content',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answer-likes',\n tags: ['Member Q&A'],\n description:\n 'Like an essay answer (increments `likesCount`). Duplicate like returns 409.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerLikeBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': {\n schema: V1CreatePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 409: {\n description: 'Already liked (unique key)',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'delete',\n path: '/v1/members/me/post-essay-answer-likes/{id}',\n tags: ['Member Q&A'],\n description:\n 'Unlike an essay answer by like row `id`. Decrements `likesCount` on the answer.',\n request: {\n params: V1PostEssayAnswerLikePathIdSchema,\n },\n responses: {\n 200: {\n description: 'Deleted',\n content: {\n 'application/json': {\n schema: V1DeletePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid path id',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner of this like',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Like not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"qna.js","names":["extendZodWithOpenApi","z","RestErrorBodySchema","registry","QnaMemberAvatarSchema","object","id","string","fileUrl","openapi","QnaMemberPublicSchema","avatar","nullable","optional","nickname","name","email","EssayAnswerPublicItemSchema","createdAt","question","post","slug","title","member","content","likesCount","number","int","V1AllPostEssayAnswersQuerySchema","take","coerce","min","max","orderBy","enum","default","V1AllPostEssayAnswersResponseSchema","array","registerPath","method","path","tags","description","request","query","responses","schema","V1PostEssayQuestionAnswersParamsSchema","questionId","positive","V1PostEssayQuestionAnswersQuerySchema","answerTake","answerSkip","answerOrderBy","EssayAnswerThreadItemSchema","V1PostEssayQuestionWithAnswersResponseSchema","hint","answers","params","ChoiceAnswerItemSchema","choiceIndex","correct","boolean","V1MemberPostChoiceAnswersQuerySchema","postSlug","V1MemberPostChoiceAnswersResponseSchema","EssayAnswerMemberItemSchema","V1MemberPostEssayAnswersQuerySchema","V1MemberPostEssayAnswersResponseSchema","connectIdSchema","union","V1CreatePostChoiceAnswerBodySchema","V1PatchPostChoiceAnswerBodySchema","V1CreatePostEssayAnswerBodySchema","V1PatchPostEssayAnswerBodySchema","V1CreatePostEssayAnswerLikeBodySchema","answerId","V1CreatePostChoiceAnswerResponseSchema","V1UpdatePostChoiceAnswerResponseSchema","V1CreatePostEssayAnswerResponseSchema","V1UpdatePostEssayAnswerResponseSchema","V1CreatePostEssayAnswerLikeResponseSchema","answer","V1DeletePostEssayAnswerLikeResponseSchema","V1PostChoiceAnswerPathIdSchema","V1PostEssayAnswerPathIdSchema","V1PostEssayAnswerLikePathIdSchema","body"],"sources":["../../src/schemas/qna.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport { registry } from './content.js'\n\nextendZodWithOpenApi(z)\n\nconst QnaMemberAvatarSchema = z\n .object({\n id: z.string(),\n fileUrl: z.string(),\n })\n .openapi('QnaMemberAvatar')\n\nconst QnaMemberPublicSchema = z\n .object({\n id: z.string(),\n avatar: QnaMemberAvatarSchema.nullable().optional(),\n nickname: z.string(),\n name: z.string(),\n email: z.string(),\n })\n .openapi('QnaMemberPublic')\n\nconst EssayAnswerPublicItemSchema = z\n .object({\n id: z.string(),\n createdAt: z.string().optional(),\n question: z\n .object({\n id: z.string(),\n post: z.object({ slug: z.string() }).optional(),\n title: z.string(),\n })\n .optional(),\n member: QnaMemberPublicSchema.optional(),\n content: z.string(),\n likesCount: z.number().int(),\n })\n .openapi('EssayAnswerPublicItem')\n\nexport const V1AllPostEssayAnswersQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(100).optional(),\n orderBy: z.enum(['createdAt:desc']).optional().default('createdAt:desc'),\n})\n\nexport const V1AllPostEssayAnswersResponseSchema = z.array(\n EssayAnswerPublicItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-answers',\n tags: ['Public Q&A'],\n description: 'Flat `orderBy`: `createdAt:desc` only.',\n request: {\n query: V1AllPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AllPostEssayAnswersResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nexport const V1PostEssayQuestionAnswersParamsSchema = z.object({\n questionId: z.coerce.number().int().positive(),\n})\n\nexport const V1PostEssayQuestionAnswersQuerySchema = z.object({\n answerTake: z.coerce.number().int().min(1).max(100),\n answerSkip: z.coerce.number().int().min(0).max(5000).optional(),\n answerOrderBy: z\n .enum(['createdAt:desc', 'likesCount:desc'])\n .optional()\n .default('createdAt:desc'),\n})\n\nconst EssayAnswerThreadItemSchema = z\n .object({\n id: z.string(),\n content: z.string(),\n member: QnaMemberPublicSchema.optional(),\n likesCount: z.number().int(),\n createdAt: z.string().optional(),\n })\n .openapi('EssayAnswerThreadItem')\n\nexport const V1PostEssayQuestionWithAnswersResponseSchema = z.object({\n id: z.string(),\n title: z.string(),\n hint: z.string(),\n answers: z.array(EssayAnswerThreadItemSchema),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-questions/{questionId}',\n tags: ['Public Q&A'],\n description:\n 'Question detail with answers thread. Flat `answerOrderBy`: `createdAt:desc` or `likesCount:desc`.',\n request: {\n params: V1PostEssayQuestionAnswersParamsSchema,\n query: V1PostEssayQuestionAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostEssayQuestionWithAnswersResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Question not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst ChoiceAnswerItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n })\n .openapi('ChoiceAnswerItem')\n\nexport const V1MemberPostChoiceAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostChoiceAnswersResponseSchema = z.array(\n ChoiceAnswerItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Choice answers for the authenticated member.',\n request: {\n query: V1MemberPostChoiceAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostChoiceAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst EssayAnswerMemberItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n content: z.string(),\n })\n .openapi('EssayAnswerMemberItem')\n\nexport const V1MemberPostEssayAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostEssayAnswersResponseSchema = z.array(\n EssayAnswerMemberItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Essay answers for the authenticated member.',\n request: {\n query: V1MemberPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostEssayAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst connectIdSchema = z.union([z.string(), z.number()])\n\n/** Native REST: `questionId` coerces to numeric id server-side. */\nexport const V1CreatePostChoiceAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n choiceIndex: z.number().int(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostChoiceAnswerBodySchema = z.object({\n choiceIndex: z.number().int().optional(),\n})\n\nexport const V1CreatePostEssayAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n content: z.string(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostEssayAnswerBodySchema = z.object({\n content: z.string(),\n})\n\n/** Native REST: essay answer id to like (`PostEssayAnswer.id`). */\nexport const V1CreatePostEssayAnswerLikeBodySchema = z.object({\n answerId: connectIdSchema,\n})\n\nexport const V1CreatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n})\n\nexport const V1CreatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n})\n\nexport const V1CreatePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n answer: z.object({ id: z.string() }),\n member: z.object({ id: z.string() }),\n})\n\nexport const V1DeletePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n})\n\nexport const V1PostChoiceAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nexport const V1PostEssayAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\n/** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */\nexport const V1PostEssayAnswerLikePathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Create a choice answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-choice-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update a choice answer for the authenticated member.',\n request: {\n params: V1PostChoiceAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Create an essay answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-essay-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update an essay answer for the authenticated member.',\n request: {\n params: V1PostEssayAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or content',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answer-likes',\n tags: ['Member Q&A'],\n description:\n 'Like an essay answer (increments `likesCount`). Duplicate like returns 409.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerLikeBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': {\n schema: V1CreatePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 409: {\n description: 'Already liked (unique key)',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'delete',\n path: '/v1/members/me/post-essay-answer-likes/{id}',\n tags: ['Member Q&A'],\n description:\n 'Unlike an essay answer by like row `id`. Decrements `likesCount` on the answer.',\n request: {\n params: V1PostEssayAnswerLikePathIdSchema,\n },\n responses: {\n 200: {\n description: 'Deleted',\n content: {\n 'application/json': {\n schema: V1DeletePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid path id',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner of this like',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Like not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-package contract types inferred from Zod schemas.
|
|
3
|
+
* UI-specific aliases belong in frontend `types/api.ts`.
|
|
4
|
+
*/
|
|
5
|
+
import type { z } from 'zod';
|
|
6
|
+
import { RestEnvelopeSchema, RestErrorBodySchema, RestErrorCodeSchema } from './rest.js';
|
|
7
|
+
import { PostContentSchema, V1AccessTokenResponseSchema, V1MemberProfilePatchBodySchema, V1MemberProfileSchema } from './schemas/content.js';
|
|
8
|
+
export type RestErrorCode = z.infer<typeof RestErrorCodeSchema>;
|
|
9
|
+
export type RestErrorBody = z.infer<typeof RestErrorBodySchema>;
|
|
10
|
+
export type RestEnvelope = z.infer<typeof RestEnvelopeSchema>;
|
|
11
|
+
export type PostContent = z.infer<typeof PostContentSchema>;
|
|
12
|
+
export type MemberProfile = z.infer<typeof V1MemberProfileSchema>;
|
|
13
|
+
export type MemberProfilePatch = z.infer<typeof V1MemberProfilePatchBodySchema>;
|
|
14
|
+
/** Alias for OpenAPI body name; same shape as `MemberProfilePatch`. */
|
|
15
|
+
export type V1MemberProfilePatchBody = MemberProfilePatch;
|
|
16
|
+
export type AccessTokenResponse = z.infer<typeof V1AccessTokenResponseSchema>;
|
|
17
|
+
//# sourceMappingURL=shared-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-types.d.ts","sourceRoot":"","sources":["../src/shared-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE/E,uEAAuE;AACvE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AAEzD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-types.js","names":[],"sources":["../src/shared-types.ts"],"sourcesContent":["/**\n * Cross-package contract types inferred from Zod schemas.\n * UI-specific aliases belong in frontend `types/api.ts`.\n */\nimport type { z } from 'zod'\n\nimport {\n RestEnvelopeSchema,\n RestErrorBodySchema,\n RestErrorCodeSchema,\n} from './rest.js'\nimport {\n PostContentSchema,\n V1AccessTokenResponseSchema,\n V1MemberProfilePatchBodySchema,\n V1MemberProfileSchema,\n} from './schemas/content.js'\n\nexport type RestErrorCode = z.infer<typeof RestErrorCodeSchema>\nexport type RestErrorBody = z.infer<typeof RestErrorBodySchema>\nexport type RestEnvelope = z.infer<typeof RestEnvelopeSchema>\n\nexport type PostContent = z.infer<typeof PostContentSchema>\n\nexport type MemberProfile = z.infer<typeof V1MemberProfileSchema>\nexport type MemberProfilePatch = z.infer<typeof V1MemberProfilePatchBodySchema>\n\n/** Alias for OpenAPI body name; same shape as `MemberProfilePatch`. */\nexport type V1MemberProfilePatchBody = MemberProfilePatch\n\nexport type AccessTokenResponse = z.infer<typeof V1AccessTokenResponseSchema>\n"],"mappings":"","ignoreList":[]}
|