@kids-reporter/api-types 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/index.d.ts +9 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +9 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/openapi.d.ts +43 -0
  6. package/dist/openapi.d.ts.map +1 -0
  7. package/dist/openapi.js +50 -0
  8. package/dist/openapi.js.map +1 -0
  9. package/dist/rest.d.ts +57 -0
  10. package/dist/rest.d.ts.map +1 -0
  11. package/dist/rest.js +26 -0
  12. package/dist/rest.js.map +1 -0
  13. package/dist/schemas/content-feed-queries.d.ts +34 -0
  14. package/dist/schemas/content-feed-queries.d.ts.map +1 -0
  15. package/dist/schemas/content-feed-queries.js +21 -0
  16. package/dist/schemas/content-feed-queries.js.map +1 -0
  17. package/dist/schemas/content-feed-responses.d.ts +192 -0
  18. package/dist/schemas/content-feed-responses.d.ts.map +1 -0
  19. package/dist/schemas/content-feed-responses.js +87 -0
  20. package/dist/schemas/content-feed-responses.js.map +1 -0
  21. package/dist/schemas/content-post-detail.d.ts +313 -0
  22. package/dist/schemas/content-post-detail.d.ts.map +1 -0
  23. package/dist/schemas/content-post-detail.js +196 -0
  24. package/dist/schemas/content-post-detail.js.map +1 -0
  25. package/dist/schemas/content.d.ts +438 -0
  26. package/dist/schemas/content.d.ts.map +1 -0
  27. package/dist/schemas/content.js +722 -0
  28. package/dist/schemas/content.js.map +1 -0
  29. package/dist/schemas/extra-openapi-paths.d.ts +53 -0
  30. package/dist/schemas/extra-openapi-paths.d.ts.map +1 -0
  31. package/dist/schemas/extra-openapi-paths.js +674 -0
  32. package/dist/schemas/extra-openapi-paths.js.map +1 -0
  33. package/dist/schemas/member-essay-answers-has-liked.d.ts +16 -0
  34. package/dist/schemas/member-essay-answers-has-liked.d.ts.map +1 -0
  35. package/dist/schemas/member-essay-answers-has-liked.js +30 -0
  36. package/dist/schemas/member-essay-answers-has-liked.js.map +1 -0
  37. package/dist/schemas/qna.d.ts +145 -0
  38. package/dist/schemas/qna.d.ts.map +1 -0
  39. package/dist/schemas/qna.js +632 -0
  40. package/dist/schemas/qna.js.map +1 -0
  41. package/package.json +36 -0
@@ -0,0 +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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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":[]}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ /** GET `essayAnswerIds` query: comma-separated ID strings. */
3
+ export declare const V1EssayAnswersHasLikedQuerySchema: z.ZodObject<{
4
+ essayAnswerIds: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$strip>;
6
+ /** Root JSON array. */
7
+ export declare const V1EssayAnswersHasLikedResponseSchema: z.ZodArray<z.ZodObject<{
8
+ essayAnswerId: z.ZodString;
9
+ hasLiked: z.ZodBoolean;
10
+ essayAnswerLikeId: z.ZodString;
11
+ }, z.core.$strip>>;
12
+ /** Normalize Express `req.query.essayAnswerIds` to a single string for Zod. */
13
+ export declare function essayAnswerIdsQueryToString(raw: string | string[] | undefined): string | undefined;
14
+ /** Split comma-separated query into ID strings (trim, drop empties). */
15
+ export declare function essayAnswerIdsFromCommaSeparatedParam(value: string | undefined): string[];
16
+ //# sourceMappingURL=member-essay-answers-has-liked.d.ts.map
@@ -0,0 +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;AAgBF,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"}
@@ -0,0 +1,30 @@
1
+ import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';
2
+ import { z } from 'zod';
3
+ extendZodWithOpenApi(z);
4
+
5
+ /** GET `essayAnswerIds` query: comma-separated ID strings. */
6
+ export const V1EssayAnswersHasLikedQuerySchema = z.object({
7
+ essayAnswerIds: z.string().max(10_000).optional().describe('Comma-separated essay answer IDs. Omit or leave empty for an empty result list.')
8
+ });
9
+ const V1EssayAnswersHasLikedItemSchema = z.object({
10
+ essayAnswerId: z.string().describe('Essay answer ID from the request, in request order.'),
11
+ hasLiked: z.boolean().describe('Whether the member has liked this answer.'),
12
+ essayAnswerLikeId: z.string().describe('Like row id when hasLiked is true; empty string when not liked.')
13
+ }).openapi('MemberEssayAnswerHasLikedItem');
14
+
15
+ /** Root JSON array. */
16
+ export const V1EssayAnswersHasLikedResponseSchema = z.array(V1EssayAnswersHasLikedItemSchema).describe('One entry per requested ID, in the same order.');
17
+
18
+ /** Normalize Express `req.query.essayAnswerIds` to a single string for Zod. */
19
+ export function essayAnswerIdsQueryToString(raw) {
20
+ if (raw === undefined) return undefined;
21
+ if (Array.isArray(raw)) return raw.map(String).join(',');
22
+ return String(raw);
23
+ }
24
+
25
+ /** Split comma-separated query into ID strings (trim, drop empties). */
26
+ export function essayAnswerIdsFromCommaSeparatedParam(value) {
27
+ if (value === undefined || value === '') return [];
28
+ return value.split(',').map(s => s.trim()).filter(Boolean);
29
+ }
30
+ //# sourceMappingURL=member-essay-answers-has-liked.js.map
@@ -0,0 +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\nconst 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,MAAMC,gCAAgC,GAAGR,CAAC,CACvCE,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":[]}
@@ -0,0 +1,145 @@
1
+ import { z } from 'zod';
2
+ export declare const V1AllPostEssayAnswersQuerySchema: z.ZodObject<{
3
+ take: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
4
+ orderBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
5
+ "createdAt:desc": "createdAt:desc";
6
+ }>>>;
7
+ }, z.core.$strip>;
8
+ export declare const V1AllPostEssayAnswersResponseSchema: z.ZodArray<z.ZodObject<{
9
+ id: z.ZodString;
10
+ createdAt: z.ZodOptional<z.ZodString>;
11
+ question: z.ZodOptional<z.ZodObject<{
12
+ id: z.ZodString;
13
+ post: z.ZodOptional<z.ZodObject<{
14
+ slug: z.ZodString;
15
+ }, z.core.$strip>>;
16
+ title: z.ZodString;
17
+ }, z.core.$strip>>;
18
+ member: z.ZodOptional<z.ZodObject<{
19
+ id: z.ZodString;
20
+ avatar: z.ZodOptional<z.ZodNullable<z.ZodObject<{
21
+ id: z.ZodString;
22
+ fileUrl: z.ZodString;
23
+ }, z.core.$strip>>>;
24
+ nickname: z.ZodString;
25
+ name: z.ZodString;
26
+ email: z.ZodString;
27
+ }, z.core.$strip>>;
28
+ content: z.ZodString;
29
+ likesCount: z.ZodNumber;
30
+ }, z.core.$strip>>;
31
+ export declare const V1PostEssayQuestionAnswersParamsSchema: z.ZodObject<{
32
+ questionId: z.ZodCoercedNumber<unknown>;
33
+ }, z.core.$strip>;
34
+ export declare const V1PostEssayQuestionAnswersQuerySchema: z.ZodObject<{
35
+ answerTake: z.ZodCoercedNumber<unknown>;
36
+ answerSkip: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
37
+ answerOrderBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
38
+ "likesCount:desc": "likesCount:desc";
39
+ "createdAt:desc": "createdAt:desc";
40
+ }>>>;
41
+ }, z.core.$strip>;
42
+ export declare const V1PostEssayQuestionWithAnswersResponseSchema: z.ZodObject<{
43
+ id: z.ZodString;
44
+ title: z.ZodString;
45
+ hint: z.ZodString;
46
+ answers: z.ZodArray<z.ZodObject<{
47
+ id: z.ZodString;
48
+ content: z.ZodString;
49
+ member: z.ZodOptional<z.ZodObject<{
50
+ id: z.ZodString;
51
+ avatar: z.ZodOptional<z.ZodNullable<z.ZodObject<{
52
+ id: z.ZodString;
53
+ fileUrl: z.ZodString;
54
+ }, z.core.$strip>>>;
55
+ nickname: z.ZodString;
56
+ name: z.ZodString;
57
+ email: z.ZodString;
58
+ }, z.core.$strip>>;
59
+ likesCount: z.ZodNumber;
60
+ createdAt: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strip>>;
62
+ }, z.core.$strip>;
63
+ export declare const V1MemberPostChoiceAnswersQuerySchema: z.ZodObject<{
64
+ postSlug: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strip>;
66
+ export declare const V1MemberPostChoiceAnswersResponseSchema: z.ZodArray<z.ZodObject<{
67
+ id: z.ZodString;
68
+ question: z.ZodOptional<z.ZodObject<{
69
+ id: z.ZodString;
70
+ }, z.core.$strip>>;
71
+ choiceIndex: z.ZodNumber;
72
+ correct: z.ZodBoolean;
73
+ }, z.core.$strip>>;
74
+ export declare const V1MemberPostEssayAnswersQuerySchema: z.ZodObject<{
75
+ postSlug: z.ZodOptional<z.ZodString>;
76
+ }, z.core.$strip>;
77
+ export declare const V1MemberPostEssayAnswersResponseSchema: z.ZodArray<z.ZodObject<{
78
+ id: z.ZodString;
79
+ question: z.ZodOptional<z.ZodObject<{
80
+ id: z.ZodString;
81
+ }, z.core.$strip>>;
82
+ content: z.ZodString;
83
+ }, z.core.$strip>>;
84
+ /** Native REST: `questionId` coerces to numeric id server-side. */
85
+ export declare const V1CreatePostChoiceAnswerBodySchema: z.ZodObject<{
86
+ questionId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
87
+ choiceIndex: z.ZodNumber;
88
+ }, z.core.$strip>;
89
+ /** PATCH body: `id` is in the URL path. */
90
+ export declare const V1PatchPostChoiceAnswerBodySchema: z.ZodObject<{
91
+ choiceIndex: z.ZodOptional<z.ZodNumber>;
92
+ }, z.core.$strip>;
93
+ export declare const V1CreatePostEssayAnswerBodySchema: z.ZodObject<{
94
+ questionId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
95
+ content: z.ZodString;
96
+ }, z.core.$strip>;
97
+ /** PATCH body: `id` is in the URL path. */
98
+ export declare const V1PatchPostEssayAnswerBodySchema: z.ZodObject<{
99
+ content: z.ZodString;
100
+ }, z.core.$strip>;
101
+ /** Native REST: essay answer id to like (`PostEssayAnswer.id`). */
102
+ export declare const V1CreatePostEssayAnswerLikeBodySchema: z.ZodObject<{
103
+ answerId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
104
+ }, z.core.$strip>;
105
+ export declare const V1CreatePostChoiceAnswerResponseSchema: z.ZodObject<{
106
+ id: z.ZodString;
107
+ choiceIndex: z.ZodNumber;
108
+ correct: z.ZodBoolean;
109
+ question: z.ZodOptional<z.ZodObject<{
110
+ id: z.ZodString;
111
+ }, z.core.$strip>>;
112
+ }, z.core.$strip>;
113
+ export declare const V1UpdatePostChoiceAnswerResponseSchema: z.ZodObject<{
114
+ id: z.ZodString;
115
+ choiceIndex: z.ZodNumber;
116
+ correct: z.ZodBoolean;
117
+ }, z.core.$strip>;
118
+ export declare const V1CreatePostEssayAnswerResponseSchema: z.ZodObject<{
119
+ id: z.ZodString;
120
+ content: z.ZodString;
121
+ question: z.ZodOptional<z.ZodObject<{
122
+ id: z.ZodString;
123
+ }, z.core.$strip>>;
124
+ }, z.core.$strip>;
125
+ export declare const V1UpdatePostEssayAnswerResponseSchema: z.ZodObject<{
126
+ id: z.ZodString;
127
+ content: z.ZodString;
128
+ }, z.core.$strip>;
129
+ export declare const V1CreatePostEssayAnswerLikeResponseSchema: z.ZodObject<{
130
+ id: z.ZodString;
131
+ answer: z.ZodObject<{
132
+ id: z.ZodString;
133
+ }, z.core.$strip>;
134
+ member: z.ZodObject<{
135
+ id: z.ZodString;
136
+ }, z.core.$strip>;
137
+ }, z.core.$strip>;
138
+ export declare const V1DeletePostEssayAnswerLikeResponseSchema: z.ZodObject<{
139
+ id: z.ZodString;
140
+ }, z.core.$strip>;
141
+ /** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */
142
+ export declare const V1PostEssayAnswerLikePathIdSchema: z.ZodObject<{
143
+ id: z.ZodCoercedNumber<unknown>;
144
+ }, z.core.$strip>;
145
+ //# sourceMappingURL=qna.d.ts.map
@@ -0,0 +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;AAUF,oEAAoE;AACpE,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA"}