codesight 1.3.2 → 1.5.0

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.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "nextjs-drizzle-app",
3
+ "description": "Next.js App Router with Drizzle ORM and React components",
4
+ "files": {
5
+ "package.json": "{\"name\":\"my-app\",\"dependencies\":{\"next\":\"14.0.0\",\"react\":\"18.0.0\",\"drizzle-orm\":\"0.30.0\",\"pg\":\"8.11.0\",\"zod\":\"3.22.0\"},\"devDependencies\":{\"typescript\":\"5.3.0\",\"@types/node\":\"20.0.0\"}}",
6
+ "tsconfig.json": "{\"compilerOptions\":{\"target\":\"es2017\",\"module\":\"esnext\",\"jsx\":\"react-jsx\"}}",
7
+ ".env.example": "DATABASE_URL=postgres://localhost:5432/mydb\nNEXTAUTH_SECRET=\nNEXT_PUBLIC_API_URL=http://localhost:3000",
8
+ "drizzle.config.ts": "import { defineConfig } from 'drizzle-kit';\nexport default defineConfig({ schema: './src/db/schema.ts', driver: 'pg' });",
9
+ "src/db/schema.ts": "import { pgTable, serial, text, timestamp, integer, boolean } from 'drizzle-orm/pg-core';\nimport { relations } from 'drizzle-orm';\n\nexport const users = pgTable('users', {\n id: serial('id').primaryKey(),\n email: text('email').notNull().unique(),\n name: text('name'),\n createdAt: timestamp('created_at').defaultNow()\n});\n\nexport const posts = pgTable('posts', {\n id: serial('id').primaryKey(),\n title: text('title').notNull(),\n content: text('content'),\n published: boolean('published').default(false),\n authorId: integer('author_id').notNull().references(() => users.id),\n createdAt: timestamp('created_at').defaultNow()\n});\n\nexport const comments = pgTable('comments', {\n id: serial('id').primaryKey(),\n body: text('body').notNull(),\n postId: integer('post_id').notNull().references(() => posts.id),\n authorId: integer('author_id').notNull().references(() => users.id),\n createdAt: timestamp('created_at').defaultNow()\n});\n\nexport const usersRelations = relations(users, ({ many }) => ({\n posts: many(posts),\n comments: many(comments)\n}));\n\nexport const postsRelations = relations(posts, ({ one, many }) => ({\n author: one(users, { fields: [posts.authorId], references: [users.id] }),\n comments: many(comments)\n}));",
10
+ "src/app/api/users/route.ts": "import { NextResponse } from 'next/server';\nimport { db } from '@/db';\nimport { users } from '@/db/schema';\n\nexport async function GET() {\n const all = await db.select().from(users);\n return NextResponse.json(all);\n}\n\nexport async function POST(req: Request) {\n const body = await req.json();\n const user = await db.insert(users).values(body).returning();\n return NextResponse.json(user, { status: 201 });\n}",
11
+ "src/app/api/users/[id]/route.ts": "import { NextResponse } from 'next/server';\nimport { db } from '@/db';\nimport { users } from '@/db/schema';\nimport { eq } from 'drizzle-orm';\n\nexport async function GET(req: Request, { params }: { params: { id: string } }) {\n const user = await db.select().from(users).where(eq(users.id, parseInt(params.id)));\n return NextResponse.json(user[0]);\n}\n\nexport async function PUT(req: Request, { params }: { params: { id: string } }) {\n const body = await req.json();\n const updated = await db.update(users).set(body).where(eq(users.id, parseInt(params.id))).returning();\n return NextResponse.json(updated[0]);\n}\n\nexport async function DELETE(req: Request, { params }: { params: { id: string } }) {\n await db.delete(users).where(eq(users.id, parseInt(params.id)));\n return NextResponse.json({ deleted: true });\n}",
12
+ "src/app/api/posts/route.ts": "import { NextResponse } from 'next/server';\nimport { db } from '@/db';\nimport { posts } from '@/db/schema';\n\nexport async function GET() {\n const all = await db.select().from(posts);\n return NextResponse.json(all);\n}\n\nexport async function POST(req: Request) {\n const body = await req.json();\n const post = await db.insert(posts).values(body).returning();\n return NextResponse.json(post, { status: 201 });\n}",
13
+ "src/app/api/posts/[id]/comments/route.ts": "import { NextResponse } from 'next/server';\nimport { db } from '@/db';\nimport { comments } from '@/db/schema';\nimport { eq } from 'drizzle-orm';\n\nexport async function GET(req: Request, { params }: { params: { id: string } }) {\n const all = await db.select().from(comments).where(eq(comments.postId, parseInt(params.id)));\n return NextResponse.json(all);\n}\n\nexport async function POST(req: Request, { params }: { params: { id: string } }) {\n const body = await req.json();\n const comment = await db.insert(comments).values({ ...body, postId: parseInt(params.id) }).returning();\n return NextResponse.json(comment, { status: 201 });\n}",
14
+ "src/components/UserCard.tsx": "'use client';\nimport React from 'react';\n\ninterface UserCardProps {\n name: string;\n email: string;\n avatar?: string;\n}\n\nexport function UserCard({ name, email, avatar }: UserCardProps) {\n return <div className=\"card\"><h3>{name}</h3><p>{email}</p></div>;\n}",
15
+ "src/components/PostList.tsx": "import React from 'react';\n\ninterface PostListProps {\n posts: Array<{ id: number; title: string; published: boolean }>;\n onSelect: (id: number) => void;\n}\n\nexport function PostList({ posts, onSelect }: PostListProps) {\n return <ul>{posts.map(p => <li key={p.id} onClick={() => onSelect(p.id)}>{p.title}</li>)}</ul>;\n}",
16
+ "src/components/CommentForm.tsx": "'use client';\nimport React, { useState } from 'react';\n\ninterface CommentFormProps {\n postId: number;\n onSubmit: (body: string) => void;\n}\n\nexport function CommentForm({ postId, onSubmit }: CommentFormProps) {\n const [body, setBody] = useState('');\n return <form onSubmit={() => onSubmit(body)}><textarea value={body} onChange={e => setBody(e.target.value)} /><button type=\"submit\">Submit</button></form>;\n}",
17
+ "src/middleware.ts": "import { NextResponse } from 'next/server';\nimport type { NextRequest } from 'next/server';\n\nexport function middleware(request: NextRequest) {\n const token = request.headers.get('authorization');\n if (!token && request.nextUrl.pathname.startsWith('/api')) {\n return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });\n }\n return NextResponse.next();\n}\n\nexport const config = { matcher: '/api/:path*' };",
18
+ "src/lib/auth.ts": "export function verifyToken(token: string): boolean {\n return token.startsWith('Bearer ');\n}\n\nexport function createToken(userId: number): string {\n return `Bearer ${userId}-${Date.now()}`;\n}",
19
+ "src/lib/validate.ts": "import { z } from 'zod';\n\nexport const createUserSchema = z.object({\n email: z.string().email(),\n name: z.string().min(1)\n});\n\nexport const createPostSchema = z.object({\n title: z.string().min(1),\n content: z.string().optional(),\n published: z.boolean().optional()\n});"
20
+ }
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesight",
3
- "version": "1.3.2",
3
+ "version": "1.5.0",
4
4
  "description": "See your codebase clearly. Universal AI context generator that maps routes, schema, components, dependencies, and more for Claude Code, Cursor, Copilot, Codex, and any AI coding tool.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -50,6 +50,7 @@
50
50
  "node": ">=18.0.0"
51
51
  },
52
52
  "files": [
53
- "dist"
53
+ "dist",
54
+ "eval"
54
55
  ]
55
56
  }