luciaMagicLinkStartersessions.ts4 matches
4import { SESSIONS_TABLE, USER_TABLE } from "./schema.ts";
56export function generateSessionToken(): string {
7const bytes = new Uint8Array(20);
8crypto.getRandomValues(bytes);
11}
1213export async function createSession(token: string, userId: number): Promise<Session> {
14const sessionId = encodeHexLowerCase(sha256(new TextEncoder().encode(token)));
15const session: Session = {
25}
2627export async function validateSessionToken(token: string): Promise<SessionValidationResult> {
28const sessionId = encodeHexLowerCase(sha256(new TextEncoder().encode(token)));
29const { rows } = await sqlite.execute(
87}
8889export async function invalidateSession(sessionId: string): Promise<void> {
90await sqlite.execute(`DELETE FROM ${SESSIONS_TABLE} WHERE id = ?`, [sessionId]);
91}
CareerCoach20DayleadManagement.ts6 matches
37* @returns HTTP response with the dashboard HTML
38*/
39async function serveDashboard(req: Request) {
40try {
41// Get leads from database
76* @returns Dashboard HTML
77*/
78function generateLeadDashboardHTML(leads: any[], pipeline: any[]) {
79return `
80<!DOCTYPE html>
733});
734
735function formatDate(dateString) {
736if (!dateString) return 'Never';
737
756* @returns HTML for pipeline stages
757*/
758function generatePipelineStages(pipeline: any[]) {
759// Define the stages in order
760const stageOrder = [
789* @returns Formatted status string
790*/
791function formatStatus(status: string): string {
792switch (status) {
793case 'new': return 'New Lead';
808* @returns Formatted date string
809*/
810function formatDate(dateString?: string): string {
811if (!dateString) return 'Never';
812
CareerCoach20DaylogEntry.ts5 matches
51* @returns Response with feedback
52*/
53async function handleDailyLog(content) {
54try {
55// Prepare log data
108* @returns Response with status
109*/
110async function handleProgressMetrics(content) {
111try {
112// Prepare metrics data
147* @returns Response with status
148*/
149async function handleTodoUpdate(content) {
150try {
151// Validate required fields
196}
197198// Importing the updateTodo function here to avoid circular dependencies
199async function updateTodo(id: number, updates: any) {
200// Build the SET part of the query dynamically based on provided updates
201const updateFields = Object.entries(updates)
CareerCoach20Dayleads.ts4 matches
58* @returns Response with leads
59*/
60async function handleGetLeads(status?: string) {
61try {
62const leads = await getLeads(status);
84* @returns Response with pipeline stages and counts
85*/
86async function handleGetPipeline() {
87try {
88const pipeline = await getLeadsPipeline();
111* @returns Response with created lead
112*/
113async function handleCreateLead(leadData: any) {
114try {
115// Validate required fields
164* @returns Response with update status
165*/
166async function handleUpdateLead(leadData: any) {
167try {
168// Validate required fields
CareerCoach20Daytodos.ts3 matches
54* @returns Response with todos
55*/
56async function handleGetTodos(status?: string) {
57try {
58const todos = await getTodos(status);
81* @returns Response with created todo
82*/
83async function handleCreateTodo(todoData: any) {
84try {
85// Validate required fields
132* @returns Response with update status
133*/
134async function handleUpdateTodo(todoData: any) {
135try {
136// Validate required fields
CareerCoach20Dayanalysis.ts9 matches
15* @returns Analysis object with summary, focus areas, and recommendations
16*/
17export async function generateDailyAnalysis() {
18try {
19// Get data from database for context
78* @returns Analysis object with summary, victories, challenges, and strategy
79*/
80export async function generateWeeklyAnalysis() {
81try {
82// Get data from database for context
156* @returns Array of task objects
157*/
158export async function generateTodaysTasks(analysis: any) {
159try {
160// Get additional context from database
213* @returns Analysis and next steps
214*/
215export async function processLogEntry(content: any) {
216try {
217// Select the appropriate model based on content complexity
240}
241242// Helper functions to generate system prompts
243244function getSystemPromptForDailyAnalysis() {
245return `
246You are an elite career coach for a senior developer seeking contracts quickly.
274}
275276function getSystemPromptForWeeklyAnalysis() {
277return `
278You are an elite career strategist for a senior developer seeking contracts quickly.
311}
312313function getSystemPromptForTaskGeneration() {
314return `
315You are an AI career strategist for a senior developer seeking contracts quickly.
345}
346347function getSystemPromptForLogProcessing() {
348return `
349You are an AI career coach providing immediate feedback on daily progress.
CareerCoach20DayREADME.md1 match
30## Tech Stack
3132- ValTown serverless functions
33- SQLite database for persistent storage
34- OpenAI API for AI-powered analysis and recommendations
sms-email-forwardmain.tsx1 match
2import process from "node:process";
34export default async function handler(request: Request) {
5if (request.method !== "POST") {
6return Response.json({ message: "This val responds to POST requests." }, {
13}
1415export function UserProfile({ user, onUpdate }: UserProfileProps) {
16const [username, setUsername] = useState(user.username || "");
17const [isEditing, setIsEditing] = useState(false);
5export const MAGIC_LINKS_TABLE = "lucia_demo_magic_links_v2";
67async function createTables() {
8await sqlite.execute(`
9CREATE TABLE IF NOT EXISTS ${USER_TABLE} (