@kids-reporter/api-types 0.0.1 → 0.0.2

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.
@@ -329,7 +329,7 @@ export declare const V1MemberPostsWithAnswersQuerySchema: z.ZodObject<{
329
329
  export declare const V1PostBySlugPathParamsSchema: z.ZodObject<{
330
330
  slug: z.ZodString;
331
331
  }, z.core.$strip>;
332
- /** Flat query for `GET /v1/posts/by-slug/{slug}` (news-reading order + related-posts filter are fixed server-side). */
332
+ /** Flat query for `GET /v1/posts/{slug}` (news-reading order + related-posts filter are fixed server-side). */
333
333
  export declare const V1PostBySlugQuerySchema: z.ZodObject<{
334
334
  take: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
335
335
  postEssayQuestionsTake: z.ZodDefault<z.ZodOptional<z.ZodCoercedNumber<unknown>>>;
@@ -360,7 +360,7 @@ export declare const V1ProjectBySlugMetaResponseSchema: z.ZodObject<{
360
360
  }, z.core.$strip>;
361
361
  }, z.core.$strip>>;
362
362
  }, z.core.$strip>;
363
- /** Hero image payloads returned by `/v1/projects/by-slug/{slug}` match Prisma-mapper targets. */
363
+ /** Hero image payloads returned by `/v1/projects/{slug}` match Prisma-mapper targets. */
364
364
  export declare const V1ProjectDetailPhotoResizedSchema: z.ZodObject<{
365
365
  resized: z.ZodObject<{
366
366
  small: 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,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,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,uHAAuH;AACvH,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,iGAAiG;AACjG,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
+ {"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,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,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"}
@@ -126,7 +126,7 @@ export const V1AuthorAvatarResponseSchema = z.object({
126
126
  }).openapi('AuthorAvatarTiny');
127
127
  registry.registerPath({
128
128
  method: 'get',
129
- path: '/v1/authors/by-slug/{slug}/avatar',
129
+ path: '/v1/authors/{slug}/avatar',
130
130
  tags: ['Taxonomy'],
131
131
  description: 'Author avatar tiny image URL by slug. `tiny` is empty when the author or avatar is missing.',
132
132
  request: {
@@ -407,7 +407,7 @@ export const V1PostBySlugPathParamsSchema = z.object({
407
407
  slug: z.string().min(1)
408
408
  });
409
409
 
410
- /** Flat query for `GET /v1/posts/by-slug/{slug}` (news-reading order + related-posts filter are fixed server-side). */
410
+ /** Flat query for `GET /v1/posts/{slug}` (news-reading order + related-posts filter are fixed server-side). */
411
411
  export const V1PostBySlugQuerySchema = z.object({
412
412
  take: z.coerce.number().int().min(1).max(50).optional().default(5),
413
413
  postEssayQuestionsTake: z.coerce.number().int().min(1).max(50).optional().default(3),
@@ -433,7 +433,7 @@ export const V1ProjectBySlugMetaResponseSchema = z.object({
433
433
  }).nullable()
434
434
  });
435
435
 
436
- /** Hero image payloads returned by `/v1/projects/by-slug/{slug}` match Prisma-mapper targets. */
436
+ /** Hero image payloads returned by `/v1/projects/{slug}` match Prisma-mapper targets. */
437
437
  export const V1ProjectDetailPhotoResizedSchema = z.object({
438
438
  resized: z.object({
439
439
  small: z.string(),
@@ -515,7 +515,7 @@ registry.registerPath({
515
515
  });
516
516
  registry.registerPath({
517
517
  method: 'get',
518
- path: '/v1/projects/by-slug/{slug}',
518
+ path: '/v1/projects/{slug}',
519
519
  tags: ['Projects'],
520
520
  description: 'Published project detail for topic page (matches GraphQL `GetProject`).',
521
521
  request: {
@@ -542,7 +542,7 @@ registry.registerPath({
542
542
  });
543
543
  registry.registerPath({
544
544
  method: 'get',
545
- path: '/v1/projects/by-slug/{slug}/meta',
545
+ path: '/v1/projects/{slug}/meta',
546
546
  tags: ['Projects'],
547
547
  description: 'Published project OG metadata (matches GraphQL `GetProjectMeta`).',
548
548
  request: {
@@ -569,7 +569,7 @@ registry.registerPath({
569
569
  });
570
570
  registry.registerPath({
571
571
  method: 'get',
572
- path: '/v1/projects/by-slug/{slug}/related-posts-count',
572
+ path: '/v1/projects/{slug}/related-posts-count',
573
573
  tags: ['Projects'],
574
574
  description: 'Count of public posts linked to a published project (matches GraphQL `relatedPostsCount` on project).',
575
575
  request: {
@@ -603,7 +603,7 @@ export const V1PostsEssayAnswersWithLikesQuerySchema = z.object({
603
603
  });
604
604
  registry.registerPath({
605
605
  method: 'get',
606
- path: '/v1/posts/by-slug/{slug}',
606
+ path: '/v1/posts/{slug}',
607
607
  tags: ['Posts'],
608
608
  description: '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.',
609
609
  request: {
@@ -639,7 +639,7 @@ registry.registerPath({
639
639
  });
640
640
  registry.registerPath({
641
641
  method: 'get',
642
- path: '/v1/posts/by-slug/{slug}/meta',
642
+ path: '/v1/posts/{slug}/meta',
643
643
  tags: ['Posts'],
644
644
  description: 'Post SEO / Open Graph metadata (matches GraphQL `GetPostMeta`).',
645
645
  request: {
@@ -666,7 +666,7 @@ registry.registerPath({
666
666
  });
667
667
  registry.registerPath({
668
668
  method: 'get',
669
- path: '/v1/posts/by-slug/{slug}/essay-questions',
669
+ path: '/v1/posts/{slug}/essay-questions',
670
670
  tags: ['Posts'],
671
671
  description: 'Post card plus essay questions (matches GraphQL `GetPostEssayQuestions`).',
672
672
  request: {
@@ -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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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/by-slug/{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 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":[]}
@@ -155,7 +155,7 @@ registry.registerPath({
155
155
 
156
156
  registry.registerPath({
157
157
  method: 'get',
158
- path: '/v1/categories/by-slug/{slug}/posts',
158
+ path: '/v1/categories/{slug}/posts',
159
159
  tags: ['Taxonomy'],
160
160
  description: 'Posts for a top-level **category** slug. Aggregates all sub-subcategories under that category. Empty list if slug is unknown (no 404).',
161
161
  request: {
@@ -183,7 +183,7 @@ registry.registerPath({
183
183
  });
184
184
  registry.registerPath({
185
185
  method: 'get',
186
- path: '/v1/categories/by-slug/{slug}/metadata',
186
+ path: '/v1/categories/{slug}/metadata',
187
187
  tags: ['Taxonomy'],
188
188
  description: 'OG metadata for a category, optionally filtered to one subcategory by `subcategorySlug`.',
189
189
  request: {
@@ -219,7 +219,7 @@ registry.registerPath({
219
219
  });
220
220
  registry.registerPath({
221
221
  method: 'get',
222
- path: '/v1/categories/by-slug/{slug}/subcategories-theme',
222
+ path: '/v1/categories/{slug}/subcategories-theme',
223
223
  tags: ['Taxonomy'],
224
224
  description: 'Display name, theme color, and subcategory list for a category tab UI.',
225
225
  request: {
@@ -246,7 +246,7 @@ registry.registerPath({
246
246
  });
247
247
  registry.registerPath({
248
248
  method: 'get',
249
- path: '/v1/subcategories/by-slug/{slug}/posts',
249
+ path: '/v1/subcategories/{slug}/posts',
250
250
  tags: ['Taxonomy'],
251
251
  description: 'Feed posts for a **subcategory** slug (published/archived, sub-subcategory membership).',
252
252
  request: {
@@ -282,7 +282,7 @@ registry.registerPath({
282
282
  });
283
283
  registry.registerPath({
284
284
  method: 'get',
285
- path: '/v1/sub-subcategories/by-slug/{slug}/posts',
285
+ path: '/v1/sub-subcategories/{slug}/posts',
286
286
  tags: ['Taxonomy'],
287
287
  description: 'Public posts for a **sub-subcategory** slug, latest-first.',
288
288
  request: {
@@ -318,7 +318,7 @@ registry.registerPath({
318
318
  });
319
319
  registry.registerPath({
320
320
  method: 'get',
321
- path: '/v1/tags/by-slug/{slug}/meta',
321
+ path: '/v1/tags/{slug}/meta',
322
322
  tags: ['Taxonomy'],
323
323
  description: 'OG metadata for a tag page.',
324
324
  request: {
@@ -345,7 +345,7 @@ registry.registerPath({
345
345
  });
346
346
  registry.registerPath({
347
347
  method: 'get',
348
- path: '/v1/tags/by-slug/{slug}/posts',
348
+ path: '/v1/tags/{slug}/posts',
349
349
  tags: ['Taxonomy'],
350
350
  description: 'Public posts for a tag (with count).',
351
351
  request: {
@@ -381,7 +381,7 @@ registry.registerPath({
381
381
  });
382
382
  registry.registerPath({
383
383
  method: 'get',
384
- path: '/v1/authors/by-slug/{slug}/meta',
384
+ path: '/v1/authors/{slug}/meta',
385
385
  tags: ['Taxonomy'],
386
386
  description: 'Author bio, name, and small image for a profile/SEO surface.',
387
387
  request: {
@@ -408,7 +408,7 @@ registry.registerPath({
408
408
  });
409
409
  registry.registerPath({
410
410
  method: 'get',
411
- path: '/v1/authors/by-slug/{slug}/posts',
411
+ path: '/v1/authors/{slug}/posts',
412
412
  tags: ['Taxonomy'],
413
413
  description: 'Author posts and profile fields for the list view.',
414
414
  request: {
@@ -444,7 +444,7 @@ registry.registerPath({
444
444
  });
445
445
  registry.registerPath({
446
446
  method: 'get',
447
- path: '/v1/authors/by-slug/{slug}/posts-count',
447
+ path: '/v1/authors/{slug}/posts-count',
448
448
  tags: ['Taxonomy'],
449
449
  description: 'Public post count for an author (matches GraphQL `GetAuthorPostsCount`).',
450
450
  request: {
@@ -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/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":[]}
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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kids-reporter/api-types",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": [