@upstart.gg/sdk
Version:
You can test the CLI without recompiling by running:
158 lines (156 loc) • 4.43 kB
JavaScript
import { Type } from "@sinclair/typebox";
//#region src/shared/datasources/internal/cv/schema.ts
const cvSchema = Type.Object({
firstName: Type.String({ title: "First name" }),
lastName: Type.String({ title: "Last name" }),
tagLine: Type.String({ title: "Tag line" }),
email: Type.String({
title: "Email",
pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
}),
phoneNumber: Type.Optional(Type.String({
title: "Phone number",
pattern: "^\\+?[1-9]\\d{1,14}$"
})),
address: Type.Optional(Type.String({ title: "Address" })),
socialLinks: Type.Optional(Type.Array(Type.Object({
platform: Type.String({
title: "Platform",
enum: [
"LinkedIn",
"GitHub",
"Twitter",
"Portfolio",
"Other"
]
}),
url: Type.String({
title: "URL",
pattern: "^https?://.*"
})
}))),
professionalSummary: Type.String({
title: "Professional Summary",
description: "Brief overview of your professional background and goals",
maxLength: 2e3
}),
workExperience: Type.Array(Type.Object({
company: Type.String({ title: "Company Name" }),
position: Type.String({ title: "Position" }),
location: Type.Optional(Type.String({ title: "Location" })),
startDate: Type.String({
title: "Start Date",
format: "date"
}),
endDate: Type.Optional(Type.String({
title: "End Date",
format: "date"
})),
current: Type.Optional(Type.Boolean({
title: "Current Position",
default: false
})),
description: Type.String({
title: "Description",
description: "Description of responsibilities and achievements",
format: "markdown"
}),
achievements: Type.Optional(Type.Array(Type.String({ title: "Achievement" })))
})),
education: Type.Array(Type.Object({
institution: Type.String({ title: "Institution" }),
degree: Type.String({ title: "Degree" }),
field: Type.String({ title: "Field of Study" }),
startDate: Type.String({
title: "Start Date",
format: "date"
}),
endDate: Type.Optional(Type.String({
title: "End Date",
format: "date"
})),
gpa: Type.Optional(Type.Number({
title: "GPA",
minimum: 0,
maximum: 4
})),
honors: Type.Optional(Type.Array(Type.String({ title: "Honor/Award" })))
})),
skills: Type.Array(Type.Object({
category: Type.String({
title: "Skill Category",
description: "E.g., Programming Languages, Tools, Soft Skills"
}),
items: Type.Array(Type.Object({
name: Type.String({ title: "Skill Name" }),
level: Type.Optional(Type.String({
title: "Proficiency Level",
enum: [
"Beginner",
"Intermediate",
"Advanced",
"Expert"
]
}))
}))
})),
certifications: Type.Optional(Type.Array(Type.Object({
name: Type.String({ title: "Certification Name" }),
issuer: Type.String({ title: "Issuing Organization" }),
dateObtained: Type.String({
title: "Date Obtained",
format: "date"
}),
expiryDate: Type.Optional(Type.String({
title: "Expiry Date",
format: "date"
})),
credentialId: Type.Optional(Type.String({ title: "Credential ID" }))
}))),
languages: Type.Optional(Type.Array(Type.Object({
language: Type.String({ title: "Language" }),
proficiency: Type.String({
title: "Proficiency Level",
enum: [
"Basic",
"Intermediate",
"Advanced",
"Native/Bilingual"
]
})
}))),
projects: Type.Optional(Type.Array(Type.Object({
name: Type.String({ title: "Project Name" }),
description: Type.String({ title: "Description" }),
url: Type.Optional(Type.String({
title: "Project URL",
pattern: "^https?://.*"
})),
technologies: Type.Array(Type.String({ title: "Technology" })),
startDate: Type.Optional(Type.String({
title: "Start Date",
format: "date"
})),
endDate: Type.Optional(Type.String({
title: "End Date",
format: "date"
}))
}))),
references: Type.Optional(Type.Array(Type.Object({
name: Type.String({ title: "Reference Name" }),
position: Type.String({ title: "Position" }),
company: Type.String({ title: "Company" }),
email: Type.Optional(Type.String({
title: "Email",
pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
})),
phoneNumber: Type.Optional(Type.String({
title: "Phone Number",
pattern: "^\\+?[1-9]\\d{1,14}$"
})),
relationship: Type.String({ title: "Professional Relationship" })
})))
}, { description: "Schema representing a comprehensive CV" });
//#endregion
export { cvSchema };
//# sourceMappingURL=schema.js.map