SPB Git

spb/autoscholar

Public
1.3 KB · 42 lines typescript
1import { z } from "zod";23export const PaperStatus = z.enum(["published", "corrected", "retracted"]);4export type PaperStatus = z.infer<typeof PaperStatus>;56export const PublicPaperSummary = z.object({7  publicId: z.string(),8  slug: z.string(),9  title: z.string(),10  abstract: z.string(),11  keywords: z.array(z.string()),12  discipline: z.string(),13  researchMode: z.string(),14  status: PaperStatus,15  versionNo: z.number().int(),16  firstPublishedAt: z.string(),17  updatedAt: z.string(),18  seriesSlug: z.string().nullable(),19  topics: z.array(z.object({ slug: z.string(), name: z.string() })),20  hasCode: z.boolean(),21  hasData: z.boolean(),22  hasLatex: z.boolean(),23  synthetic: z.boolean(),24});25export type PublicPaperSummary = z.infer<typeof PublicPaperSummary>;2627export const PublicSearchQuery = z.object({28  q: z.string().max(200).optional(),29  discipline: z.string().optional(),30  mode: z.string().optional(),31  series: z.string().optional(),32  status: PaperStatus.optional(),33  code: z.enum(["1"]).optional(),34  data: z.enum(["1"]).optional(),35  from: z.string().optional(),36  to: z.string().optional(),37  sort: z.enum(["relevance", "date", "title"]).default("date"),38  page: z.coerce.number().int().min(1).default(1),39  pageSize: z.coerce.number().int().min(1).max(50).default(12),40});41export type PublicSearchQuery = z.infer<typeof PublicSearchQuery>;42
Files · bc25fcca6ef80397d231f256956ca5f0c907288f
Menu

Theme