@kids-reporter/api-types 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-variables.d.ts +120 -0
- package/dist/api-variables.d.ts.map +1 -0
- package/dist/api-variables.js +32 -0
- package/dist/api-variables.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/rest.d.ts +0 -3
- package/dist/rest.d.ts.map +1 -1
- package/dist/rest.js.map +1 -1
- package/dist/schemas/content.d.ts +2 -3
- package/dist/schemas/content.d.ts.map +1 -1
- package/dist/schemas/content.js +9 -9
- package/dist/schemas/content.js.map +1 -1
- package/dist/schemas/extra-openapi-paths.d.ts +79 -0
- package/dist/schemas/extra-openapi-paths.d.ts.map +1 -1
- package/dist/schemas/extra-openapi-paths.js +14 -14
- package/dist/schemas/extra-openapi-paths.js.map +1 -1
- package/dist/schemas/member-essay-answers-has-liked.d.ts +5 -0
- package/dist/schemas/member-essay-answers-has-liked.d.ts.map +1 -1
- package/dist/schemas/member-essay-answers-has-liked.js +1 -1
- package/dist/schemas/member-essay-answers-has-liked.js.map +1 -1
- package/dist/schemas/qna.d.ts +6 -0
- package/dist/schemas/qna.d.ts.map +1 -1
- package/dist/schemas/qna.js +2 -2
- package/dist/schemas/qna.js.map +1 -1
- package/dist/shared-types.d.ts +17 -0
- package/dist/shared-types.d.ts.map +1 -0
- package/dist/shared-types.js +2 -0
- package/dist/shared-types.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-essay-answers-has-liked.js","names":["extendZodWithOpenApi","z","V1EssayAnswersHasLikedQuerySchema","object","essayAnswerIds","string","max","optional","describe","V1EssayAnswersHasLikedItemSchema","essayAnswerId","hasLiked","boolean","essayAnswerLikeId","openapi","V1EssayAnswersHasLikedResponseSchema","array","essayAnswerIdsQueryToString","raw","undefined","Array","isArray","map","String","join","essayAnswerIdsFromCommaSeparatedParam","value","split","s","trim","filter","Boolean"],"sources":["../../src/schemas/member-essay-answers-has-liked.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nextendZodWithOpenApi(z)\n\n/** GET `essayAnswerIds` query: comma-separated ID strings. */\nexport const V1EssayAnswersHasLikedQuerySchema = z.object({\n essayAnswerIds: z\n .string()\n .max(10_000)\n .optional()\n .describe(\n 'Comma-separated essay answer IDs. Omit or leave empty for an empty result list.'\n ),\n})\n\
|
|
1
|
+
{"version":3,"file":"member-essay-answers-has-liked.js","names":["extendZodWithOpenApi","z","V1EssayAnswersHasLikedQuerySchema","object","essayAnswerIds","string","max","optional","describe","V1EssayAnswersHasLikedItemSchema","essayAnswerId","hasLiked","boolean","essayAnswerLikeId","openapi","V1EssayAnswersHasLikedResponseSchema","array","essayAnswerIdsQueryToString","raw","undefined","Array","isArray","map","String","join","essayAnswerIdsFromCommaSeparatedParam","value","split","s","trim","filter","Boolean"],"sources":["../../src/schemas/member-essay-answers-has-liked.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nextendZodWithOpenApi(z)\n\n/** GET `essayAnswerIds` query: comma-separated ID strings. */\nexport const V1EssayAnswersHasLikedQuerySchema = z.object({\n essayAnswerIds: z\n .string()\n .max(10_000)\n .optional()\n .describe(\n 'Comma-separated essay answer IDs. Omit or leave empty for an empty result list.'\n ),\n})\n\nexport const V1EssayAnswersHasLikedItemSchema = z\n .object({\n essayAnswerId: z\n .string()\n .describe('Essay answer ID from the request, in request order.'),\n hasLiked: z.boolean().describe('Whether the member has liked this answer.'),\n essayAnswerLikeId: z\n .string()\n .describe(\n 'Like row id when hasLiked is true; empty string when not liked.'\n ),\n })\n .openapi('MemberEssayAnswerHasLikedItem')\n\n/** Root JSON array. */\nexport const V1EssayAnswersHasLikedResponseSchema = z\n .array(V1EssayAnswersHasLikedItemSchema)\n .describe('One entry per requested ID, in the same order.')\n\n/** Normalize Express `req.query.essayAnswerIds` to a single string for Zod. */\nexport function essayAnswerIdsQueryToString(\n raw: string | string[] | undefined\n): string | undefined {\n if (raw === undefined) return undefined\n if (Array.isArray(raw)) return raw.map(String).join(',')\n return String(raw)\n}\n\n/** Split comma-separated query into ID strings (trim, drop empties). */\nexport function essayAnswerIdsFromCommaSeparatedParam(\n value: string | undefined\n): string[] {\n if (value === undefined || value === '') return []\n return value\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean)\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,gCAAgC;AACrE,SAASC,CAAC,QAAQ,KAAK;AAEvBD,oBAAoB,CAACC,CAAC,CAAC;;AAEvB;AACA,OAAO,MAAMC,iCAAiC,GAAGD,CAAC,CAACE,MAAM,CAAC;EACxDC,cAAc,EAAEH,CAAC,CACdI,MAAM,CAAC,CAAC,CACRC,GAAG,CAAC,MAAM,CAAC,CACXC,QAAQ,CAAC,CAAC,CACVC,QAAQ,CACP,iFACF;AACJ,CAAC,CAAC;AAEF,OAAO,MAAMC,gCAAgC,GAAGR,CAAC,CAC9CE,MAAM,CAAC;EACNO,aAAa,EAAET,CAAC,CACbI,MAAM,CAAC,CAAC,CACRG,QAAQ,CAAC,qDAAqD,CAAC;EAClEG,QAAQ,EAAEV,CAAC,CAACW,OAAO,CAAC,CAAC,CAACJ,QAAQ,CAAC,2CAA2C,CAAC;EAC3EK,iBAAiB,EAAEZ,CAAC,CACjBI,MAAM,CAAC,CAAC,CACRG,QAAQ,CACP,iEACF;AACJ,CAAC,CAAC,CACDM,OAAO,CAAC,+BAA+B,CAAC;;AAE3C;AACA,OAAO,MAAMC,oCAAoC,GAAGd,CAAC,CAClDe,KAAK,CAACP,gCAAgC,CAAC,CACvCD,QAAQ,CAAC,gDAAgD,CAAC;;AAE7D;AACA,OAAO,SAASS,2BAA2BA,CACzCC,GAAkC,EACd;EACpB,IAAIA,GAAG,KAAKC,SAAS,EAAE,OAAOA,SAAS;EACvC,IAAIC,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,EAAE,OAAOA,GAAG,CAACI,GAAG,CAACC,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EACxD,OAAOD,MAAM,CAACL,GAAG,CAAC;AACpB;;AAEA;AACA,OAAO,SAASO,qCAAqCA,CACnDC,KAAyB,EACf;EACV,IAAIA,KAAK,KAAKP,SAAS,IAAIO,KAAK,KAAK,EAAE,EAAE,OAAO,EAAE;EAClD,OAAOA,KAAK,CACTC,KAAK,CAAC,GAAG,CAAC,CACVL,GAAG,CAAEM,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CACpBC,MAAM,CAACC,OAAO,CAAC;AACpB","ignoreList":[]}
|
package/dist/schemas/qna.d.ts
CHANGED
|
@@ -138,6 +138,12 @@ export declare const V1CreatePostEssayAnswerLikeResponseSchema: z.ZodObject<{
|
|
|
138
138
|
export declare const V1DeletePostEssayAnswerLikeResponseSchema: z.ZodObject<{
|
|
139
139
|
id: z.ZodString;
|
|
140
140
|
}, z.core.$strip>;
|
|
141
|
+
export declare const V1PostChoiceAnswerPathIdSchema: z.ZodObject<{
|
|
142
|
+
id: z.ZodCoercedNumber<unknown>;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
export declare const V1PostEssayAnswerPathIdSchema: z.ZodObject<{
|
|
145
|
+
id: z.ZodCoercedNumber<unknown>;
|
|
146
|
+
}, z.core.$strip>;
|
|
141
147
|
/** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */
|
|
142
148
|
export declare const V1PostEssayAnswerLikePathIdSchema: z.ZodObject<{
|
|
143
149
|
id: z.ZodCoercedNumber<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qna.d.ts","sourceRoot":"","sources":["../../src/schemas/qna.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyCvB,eAAO,MAAM,gCAAgC;;;;;iBAG3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;kBAE/C,CAAA;AAwBD,eAAO,MAAM,sCAAsC;;iBAEjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;iBAOhD,CAAA;AAYF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;iBAKvD,CAAA;AAyCF,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;kBAEnD,CAAA;AAwCD,eAAO,MAAM,mCAAmC;;iBAE9C,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;kBAElD,CAAA;AAkCD,mEAAmE;AACnE,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;iBAG5C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAEF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC;;iBAEhD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;;iBAKjD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;iBAIjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;iBAIhD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;;;;;;;iBAIpD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;iBAEpD,CAAA;
|
|
1
|
+
{"version":3,"file":"qna.d.ts","sourceRoot":"","sources":["../../src/schemas/qna.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyCvB,eAAO,MAAM,gCAAgC;;;;;iBAG3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;kBAE/C,CAAA;AAwBD,eAAO,MAAM,sCAAsC;;iBAEjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;iBAOhD,CAAA;AAYF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;iBAKvD,CAAA;AAyCF,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;kBAEnD,CAAA;AAwCD,eAAO,MAAM,mCAAmC;;iBAE9C,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;kBAElD,CAAA;AAkCD,mEAAmE;AACnE,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;iBAG5C,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC;;iBAE3C,CAAA;AAEF,mEAAmE;AACnE,eAAO,MAAM,qCAAqC;;iBAEhD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;;iBAKjD,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;iBAIjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;iBAIhD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;;;;;;;iBAIpD,CAAA;AAEF,eAAO,MAAM,yCAAyC;;iBAEpD,CAAA;AAEF,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AAEF,oEAAoE;AACpE,eAAO,MAAM,iCAAiC;;iBAE5C,CAAA"}
|
package/dist/schemas/qna.js
CHANGED
|
@@ -288,10 +288,10 @@ export const V1CreatePostEssayAnswerLikeResponseSchema = z.object({
|
|
|
288
288
|
export const V1DeletePostEssayAnswerLikeResponseSchema = z.object({
|
|
289
289
|
id: z.string()
|
|
290
290
|
});
|
|
291
|
-
const V1PostChoiceAnswerPathIdSchema = z.object({
|
|
291
|
+
export const V1PostChoiceAnswerPathIdSchema = z.object({
|
|
292
292
|
id: z.coerce.number().int().positive()
|
|
293
293
|
});
|
|
294
|
-
const V1PostEssayAnswerPathIdSchema = z.object({
|
|
294
|
+
export const V1PostEssayAnswerPathIdSchema = z.object({
|
|
295
295
|
id: z.coerce.number().int().positive()
|
|
296
296
|
});
|
|
297
297
|
|
package/dist/schemas/qna.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qna.js","names":["extendZodWithOpenApi","z","RestErrorBodySchema","registry","QnaMemberAvatarSchema","object","id","string","fileUrl","openapi","QnaMemberPublicSchema","avatar","nullable","optional","nickname","name","email","EssayAnswerPublicItemSchema","createdAt","question","post","slug","title","member","content","likesCount","number","int","V1AllPostEssayAnswersQuerySchema","take","coerce","min","max","orderBy","enum","default","V1AllPostEssayAnswersResponseSchema","array","registerPath","method","path","tags","description","request","query","responses","schema","V1PostEssayQuestionAnswersParamsSchema","questionId","positive","V1PostEssayQuestionAnswersQuerySchema","answerTake","answerSkip","answerOrderBy","EssayAnswerThreadItemSchema","V1PostEssayQuestionWithAnswersResponseSchema","hint","answers","params","ChoiceAnswerItemSchema","choiceIndex","correct","boolean","V1MemberPostChoiceAnswersQuerySchema","postSlug","V1MemberPostChoiceAnswersResponseSchema","EssayAnswerMemberItemSchema","V1MemberPostEssayAnswersQuerySchema","V1MemberPostEssayAnswersResponseSchema","connectIdSchema","union","V1CreatePostChoiceAnswerBodySchema","V1PatchPostChoiceAnswerBodySchema","V1CreatePostEssayAnswerBodySchema","V1PatchPostEssayAnswerBodySchema","V1CreatePostEssayAnswerLikeBodySchema","answerId","V1CreatePostChoiceAnswerResponseSchema","V1UpdatePostChoiceAnswerResponseSchema","V1CreatePostEssayAnswerResponseSchema","V1UpdatePostEssayAnswerResponseSchema","V1CreatePostEssayAnswerLikeResponseSchema","answer","V1DeletePostEssayAnswerLikeResponseSchema","V1PostChoiceAnswerPathIdSchema","V1PostEssayAnswerPathIdSchema","V1PostEssayAnswerLikePathIdSchema","body"],"sources":["../../src/schemas/qna.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport { registry } from './content.js'\n\nextendZodWithOpenApi(z)\n\nconst QnaMemberAvatarSchema = z\n .object({\n id: z.string(),\n fileUrl: z.string(),\n })\n .openapi('QnaMemberAvatar')\n\nconst QnaMemberPublicSchema = z\n .object({\n id: z.string(),\n avatar: QnaMemberAvatarSchema.nullable().optional(),\n nickname: z.string(),\n name: z.string(),\n email: z.string(),\n })\n .openapi('QnaMemberPublic')\n\nconst EssayAnswerPublicItemSchema = z\n .object({\n id: z.string(),\n createdAt: z.string().optional(),\n question: z\n .object({\n id: z.string(),\n post: z.object({ slug: z.string() }).optional(),\n title: z.string(),\n })\n .optional(),\n member: QnaMemberPublicSchema.optional(),\n content: z.string(),\n likesCount: z.number().int(),\n })\n .openapi('EssayAnswerPublicItem')\n\nexport const V1AllPostEssayAnswersQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(100).optional(),\n orderBy: z.enum(['createdAt:desc']).optional().default('createdAt:desc'),\n})\n\nexport const V1AllPostEssayAnswersResponseSchema = z.array(\n EssayAnswerPublicItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-answers',\n tags: ['Public Q&A'],\n description: 'Flat `orderBy`: `createdAt:desc` only.',\n request: {\n query: V1AllPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AllPostEssayAnswersResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nexport const V1PostEssayQuestionAnswersParamsSchema = z.object({\n questionId: z.coerce.number().int().positive(),\n})\n\nexport const V1PostEssayQuestionAnswersQuerySchema = z.object({\n answerTake: z.coerce.number().int().min(1).max(100),\n answerSkip: z.coerce.number().int().min(0).max(5000).optional(),\n answerOrderBy: z\n .enum(['createdAt:desc', 'likesCount:desc'])\n .optional()\n .default('createdAt:desc'),\n})\n\nconst EssayAnswerThreadItemSchema = z\n .object({\n id: z.string(),\n content: z.string(),\n member: QnaMemberPublicSchema.optional(),\n likesCount: z.number().int(),\n createdAt: z.string().optional(),\n })\n .openapi('EssayAnswerThreadItem')\n\nexport const V1PostEssayQuestionWithAnswersResponseSchema = z.object({\n id: z.string(),\n title: z.string(),\n hint: z.string(),\n answers: z.array(EssayAnswerThreadItemSchema),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-questions/{questionId}',\n tags: ['Public Q&A'],\n description:\n 'Question detail with answers thread. Flat `answerOrderBy`: `createdAt:desc` or `likesCount:desc`.',\n request: {\n params: V1PostEssayQuestionAnswersParamsSchema,\n query: V1PostEssayQuestionAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostEssayQuestionWithAnswersResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Question not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst ChoiceAnswerItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n })\n .openapi('ChoiceAnswerItem')\n\nexport const V1MemberPostChoiceAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostChoiceAnswersResponseSchema = z.array(\n ChoiceAnswerItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Choice answers for the authenticated member.',\n request: {\n query: V1MemberPostChoiceAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostChoiceAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst EssayAnswerMemberItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n content: z.string(),\n })\n .openapi('EssayAnswerMemberItem')\n\nexport const V1MemberPostEssayAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostEssayAnswersResponseSchema = z.array(\n EssayAnswerMemberItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Essay answers for the authenticated member.',\n request: {\n query: V1MemberPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostEssayAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst connectIdSchema = z.union([z.string(), z.number()])\n\n/** Native REST: `questionId` coerces to numeric id server-side. */\nexport const V1CreatePostChoiceAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n choiceIndex: z.number().int(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostChoiceAnswerBodySchema = z.object({\n choiceIndex: z.number().int().optional(),\n})\n\nexport const V1CreatePostEssayAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n content: z.string(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostEssayAnswerBodySchema = z.object({\n content: z.string(),\n})\n\n/** Native REST: essay answer id to like (`PostEssayAnswer.id`). */\nexport const V1CreatePostEssayAnswerLikeBodySchema = z.object({\n answerId: connectIdSchema,\n})\n\nexport const V1CreatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n})\n\nexport const V1CreatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n})\n\nexport const V1CreatePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n answer: z.object({ id: z.string() }),\n member: z.object({ id: z.string() }),\n})\n\nexport const V1DeletePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n})\n\nconst V1PostChoiceAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nconst V1PostEssayAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\n/** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */\nexport const V1PostEssayAnswerLikePathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Create a choice answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-choice-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update a choice answer for the authenticated member.',\n request: {\n params: V1PostChoiceAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Create an essay answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-essay-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update an essay answer for the authenticated member.',\n request: {\n params: V1PostEssayAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or content',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answer-likes',\n tags: ['Member Q&A'],\n description:\n 'Like an essay answer (increments `likesCount`). Duplicate like returns 409.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerLikeBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': {\n schema: V1CreatePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 409: {\n description: 'Already liked (unique key)',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'delete',\n path: '/v1/members/me/post-essay-answer-likes/{id}',\n tags: ['Member Q&A'],\n description:\n 'Unlike an essay answer by like row `id`. Decrements `likesCount` on the answer.',\n request: {\n params: V1PostEssayAnswerLikePathIdSchema,\n },\n responses: {\n 200: {\n description: 'Deleted',\n content: {\n 'application/json': {\n schema: V1DeletePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid path id',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner of this like',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Like not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"qna.js","names":["extendZodWithOpenApi","z","RestErrorBodySchema","registry","QnaMemberAvatarSchema","object","id","string","fileUrl","openapi","QnaMemberPublicSchema","avatar","nullable","optional","nickname","name","email","EssayAnswerPublicItemSchema","createdAt","question","post","slug","title","member","content","likesCount","number","int","V1AllPostEssayAnswersQuerySchema","take","coerce","min","max","orderBy","enum","default","V1AllPostEssayAnswersResponseSchema","array","registerPath","method","path","tags","description","request","query","responses","schema","V1PostEssayQuestionAnswersParamsSchema","questionId","positive","V1PostEssayQuestionAnswersQuerySchema","answerTake","answerSkip","answerOrderBy","EssayAnswerThreadItemSchema","V1PostEssayQuestionWithAnswersResponseSchema","hint","answers","params","ChoiceAnswerItemSchema","choiceIndex","correct","boolean","V1MemberPostChoiceAnswersQuerySchema","postSlug","V1MemberPostChoiceAnswersResponseSchema","EssayAnswerMemberItemSchema","V1MemberPostEssayAnswersQuerySchema","V1MemberPostEssayAnswersResponseSchema","connectIdSchema","union","V1CreatePostChoiceAnswerBodySchema","V1PatchPostChoiceAnswerBodySchema","V1CreatePostEssayAnswerBodySchema","V1PatchPostEssayAnswerBodySchema","V1CreatePostEssayAnswerLikeBodySchema","answerId","V1CreatePostChoiceAnswerResponseSchema","V1UpdatePostChoiceAnswerResponseSchema","V1CreatePostEssayAnswerResponseSchema","V1UpdatePostEssayAnswerResponseSchema","V1CreatePostEssayAnswerLikeResponseSchema","answer","V1DeletePostEssayAnswerLikeResponseSchema","V1PostChoiceAnswerPathIdSchema","V1PostEssayAnswerPathIdSchema","V1PostEssayAnswerLikePathIdSchema","body"],"sources":["../../src/schemas/qna.ts"],"sourcesContent":["import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi'\nimport { z } from 'zod'\n\nimport { RestErrorBodySchema } from '../rest.js'\nimport { registry } from './content.js'\n\nextendZodWithOpenApi(z)\n\nconst QnaMemberAvatarSchema = z\n .object({\n id: z.string(),\n fileUrl: z.string(),\n })\n .openapi('QnaMemberAvatar')\n\nconst QnaMemberPublicSchema = z\n .object({\n id: z.string(),\n avatar: QnaMemberAvatarSchema.nullable().optional(),\n nickname: z.string(),\n name: z.string(),\n email: z.string(),\n })\n .openapi('QnaMemberPublic')\n\nconst EssayAnswerPublicItemSchema = z\n .object({\n id: z.string(),\n createdAt: z.string().optional(),\n question: z\n .object({\n id: z.string(),\n post: z.object({ slug: z.string() }).optional(),\n title: z.string(),\n })\n .optional(),\n member: QnaMemberPublicSchema.optional(),\n content: z.string(),\n likesCount: z.number().int(),\n })\n .openapi('EssayAnswerPublicItem')\n\nexport const V1AllPostEssayAnswersQuerySchema = z.object({\n take: z.coerce.number().int().min(1).max(100).optional(),\n orderBy: z.enum(['createdAt:desc']).optional().default('createdAt:desc'),\n})\n\nexport const V1AllPostEssayAnswersResponseSchema = z.array(\n EssayAnswerPublicItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-answers',\n tags: ['Public Q&A'],\n description: 'Flat `orderBy`: `createdAt:desc` only.',\n request: {\n query: V1AllPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1AllPostEssayAnswersResponseSchema },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nexport const V1PostEssayQuestionAnswersParamsSchema = z.object({\n questionId: z.coerce.number().int().positive(),\n})\n\nexport const V1PostEssayQuestionAnswersQuerySchema = z.object({\n answerTake: z.coerce.number().int().min(1).max(100),\n answerSkip: z.coerce.number().int().min(0).max(5000).optional(),\n answerOrderBy: z\n .enum(['createdAt:desc', 'likesCount:desc'])\n .optional()\n .default('createdAt:desc'),\n})\n\nconst EssayAnswerThreadItemSchema = z\n .object({\n id: z.string(),\n content: z.string(),\n member: QnaMemberPublicSchema.optional(),\n likesCount: z.number().int(),\n createdAt: z.string().optional(),\n })\n .openapi('EssayAnswerThreadItem')\n\nexport const V1PostEssayQuestionWithAnswersResponseSchema = z.object({\n id: z.string(),\n title: z.string(),\n hint: z.string(),\n answers: z.array(EssayAnswerThreadItemSchema),\n})\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/post-essay-questions/{questionId}',\n tags: ['Public Q&A'],\n description:\n 'Question detail with answers thread. Flat `answerOrderBy`: `createdAt:desc` or `likesCount:desc`.',\n request: {\n params: V1PostEssayQuestionAnswersParamsSchema,\n query: V1PostEssayQuestionAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': {\n schema: V1PostEssayQuestionWithAnswersResponseSchema,\n },\n },\n },\n 400: {\n description: 'Bad request',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Question not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst ChoiceAnswerItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n })\n .openapi('ChoiceAnswerItem')\n\nexport const V1MemberPostChoiceAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostChoiceAnswersResponseSchema = z.array(\n ChoiceAnswerItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Choice answers for the authenticated member.',\n request: {\n query: V1MemberPostChoiceAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostChoiceAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst EssayAnswerMemberItemSchema = z\n .object({\n id: z.string(),\n question: z.object({ id: z.string() }).optional(),\n content: z.string(),\n })\n .openapi('EssayAnswerMemberItem')\n\nexport const V1MemberPostEssayAnswersQuerySchema = z.object({\n postSlug: z.string().optional(),\n})\n\nexport const V1MemberPostEssayAnswersResponseSchema = z.array(\n EssayAnswerMemberItemSchema\n)\n\nregistry.registerPath({\n method: 'get',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Essay answers for the authenticated member.',\n request: {\n query: V1MemberPostEssayAnswersQuerySchema,\n },\n responses: {\n 200: {\n description: 'Success',\n content: {\n 'application/json': { schema: V1MemberPostEssayAnswersResponseSchema },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Role not allowed',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nconst connectIdSchema = z.union([z.string(), z.number()])\n\n/** Native REST: `questionId` coerces to numeric id server-side. */\nexport const V1CreatePostChoiceAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n choiceIndex: z.number().int(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostChoiceAnswerBodySchema = z.object({\n choiceIndex: z.number().int().optional(),\n})\n\nexport const V1CreatePostEssayAnswerBodySchema = z.object({\n questionId: connectIdSchema,\n content: z.string(),\n})\n\n/** PATCH body: `id` is in the URL path. */\nexport const V1PatchPostEssayAnswerBodySchema = z.object({\n content: z.string(),\n})\n\n/** Native REST: essay answer id to like (`PostEssayAnswer.id`). */\nexport const V1CreatePostEssayAnswerLikeBodySchema = z.object({\n answerId: connectIdSchema,\n})\n\nexport const V1CreatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostChoiceAnswerResponseSchema = z.object({\n id: z.string(),\n choiceIndex: z.number().int(),\n correct: z.boolean(),\n})\n\nexport const V1CreatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n question: z.object({ id: z.string() }).optional(),\n})\n\nexport const V1UpdatePostEssayAnswerResponseSchema = z.object({\n id: z.string(),\n content: z.string(),\n})\n\nexport const V1CreatePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n answer: z.object({ id: z.string() }),\n member: z.object({ id: z.string() }),\n})\n\nexport const V1DeletePostEssayAnswerLikeResponseSchema = z.object({\n id: z.string(),\n})\n\nexport const V1PostChoiceAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nexport const V1PostEssayAnswerPathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\n/** Path `id` for DELETE like (numeric `PostEssayAnswerLike.id`). */\nexport const V1PostEssayAnswerLikePathIdSchema = z.object({\n id: z.coerce.number().int().positive(),\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-choice-answers',\n tags: ['Member Q&A'],\n description: 'Create a choice answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-choice-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update a choice answer for the authenticated member.',\n request: {\n params: V1PostChoiceAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostChoiceAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostChoiceAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answers',\n tags: ['Member Q&A'],\n description: 'Create an essay answer for the authenticated member.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'patch',\n path: '/v1/members/me/post-essay-answers/{id}',\n tags: ['Member Q&A'],\n description: 'Update an essay answer for the authenticated member.',\n request: {\n params: V1PostEssayAnswerPathIdSchema,\n body: {\n content: {\n 'application/json': { schema: V1PatchPostEssayAnswerBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Updated',\n content: {\n 'application/json': { schema: V1UpdatePostEssayAnswerResponseSchema },\n },\n },\n 400: {\n description: 'Invalid id or content',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner or forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'post',\n path: '/v1/members/me/post-essay-answer-likes',\n tags: ['Member Q&A'],\n description:\n 'Like an essay answer (increments `likesCount`). Duplicate like returns 409.',\n request: {\n body: {\n content: {\n 'application/json': { schema: V1CreatePostEssayAnswerLikeBodySchema },\n },\n },\n },\n responses: {\n 200: {\n description: 'Created',\n content: {\n 'application/json': {\n schema: V1CreatePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid body',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Forbidden',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Member not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 409: {\n description: 'Already liked (unique key)',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n\nregistry.registerPath({\n method: 'delete',\n path: '/v1/members/me/post-essay-answer-likes/{id}',\n tags: ['Member Q&A'],\n description:\n 'Unlike an essay answer by like row `id`. Decrements `likesCount` on the answer.',\n request: {\n params: V1PostEssayAnswerLikePathIdSchema,\n },\n responses: {\n 200: {\n description: 'Deleted',\n content: {\n 'application/json': {\n schema: V1DeletePostEssayAnswerLikeResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid path id',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 401: {\n description: 'Unauthorized',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 403: {\n description: 'Not owner of this like',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n 404: {\n description: 'Like not found',\n content: { 'application/json': { schema: RestErrorBodySchema } },\n },\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-package contract types inferred from Zod schemas.
|
|
3
|
+
* UI-specific aliases belong in frontend `types/api.ts`.
|
|
4
|
+
*/
|
|
5
|
+
import type { z } from 'zod';
|
|
6
|
+
import { RestEnvelopeSchema, RestErrorBodySchema, RestErrorCodeSchema } from './rest.js';
|
|
7
|
+
import { PostContentSchema, V1AccessTokenResponseSchema, V1MemberProfilePatchBodySchema, V1MemberProfileSchema } from './schemas/content.js';
|
|
8
|
+
export type RestErrorCode = z.infer<typeof RestErrorCodeSchema>;
|
|
9
|
+
export type RestErrorBody = z.infer<typeof RestErrorBodySchema>;
|
|
10
|
+
export type RestEnvelope = z.infer<typeof RestEnvelopeSchema>;
|
|
11
|
+
export type PostContent = z.infer<typeof PostContentSchema>;
|
|
12
|
+
export type MemberProfile = z.infer<typeof V1MemberProfileSchema>;
|
|
13
|
+
export type MemberProfilePatch = z.infer<typeof V1MemberProfilePatchBodySchema>;
|
|
14
|
+
/** Alias for OpenAPI body name; same shape as `MemberProfilePatch`. */
|
|
15
|
+
export type V1MemberProfilePatchBody = MemberProfilePatch;
|
|
16
|
+
export type AccessTokenResponse = z.infer<typeof V1AccessTokenResponseSchema>;
|
|
17
|
+
//# sourceMappingURL=shared-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-types.d.ts","sourceRoot":"","sources":["../src/shared-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE/E,uEAAuE;AACvE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AAEzD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-types.js","names":[],"sources":["../src/shared-types.ts"],"sourcesContent":["/**\n * Cross-package contract types inferred from Zod schemas.\n * UI-specific aliases belong in frontend `types/api.ts`.\n */\nimport type { z } from 'zod'\n\nimport {\n RestEnvelopeSchema,\n RestErrorBodySchema,\n RestErrorCodeSchema,\n} from './rest.js'\nimport {\n PostContentSchema,\n V1AccessTokenResponseSchema,\n V1MemberProfilePatchBodySchema,\n V1MemberProfileSchema,\n} from './schemas/content.js'\n\nexport type RestErrorCode = z.infer<typeof RestErrorCodeSchema>\nexport type RestErrorBody = z.infer<typeof RestErrorBodySchema>\nexport type RestEnvelope = z.infer<typeof RestEnvelopeSchema>\n\nexport type PostContent = z.infer<typeof PostContentSchema>\n\nexport type MemberProfile = z.infer<typeof V1MemberProfileSchema>\nexport type MemberProfilePatch = z.infer<typeof V1MemberProfilePatchBodySchema>\n\n/** Alias for OpenAPI body name; same shape as `MemberProfilePatch`. */\nexport type V1MemberProfilePatchBody = MemberProfilePatch\n\nexport type AccessTokenResponse = z.infer<typeof V1AccessTokenResponseSchema>\n"],"mappings":"","ignoreList":[]}
|