leadcode 0.2.1 → 1.0.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.
Files changed (105) hide show
  1. package/dist/analyzers/detection.d.ts.map +1 -1
  2. package/dist/analyzers/detection.js +55 -5
  3. package/dist/analyzers/detection.js.map +1 -1
  4. package/dist/context7/client.d.ts +17 -0
  5. package/dist/context7/client.d.ts.map +1 -0
  6. package/dist/context7/client.js +82 -0
  7. package/dist/context7/client.js.map +1 -0
  8. package/dist/context7/index.d.ts +5 -0
  9. package/dist/context7/index.d.ts.map +1 -0
  10. package/dist/context7/index.js +3 -0
  11. package/dist/context7/index.js.map +1 -0
  12. package/dist/context7/queries.d.ts +11 -0
  13. package/dist/context7/queries.d.ts.map +1 -0
  14. package/dist/context7/queries.js +229 -0
  15. package/dist/context7/queries.js.map +1 -0
  16. package/dist/i18n/en.d.ts.map +1 -1
  17. package/dist/i18n/en.js +3 -242
  18. package/dist/i18n/en.js.map +1 -1
  19. package/dist/i18n/fr.d.ts.map +1 -1
  20. package/dist/i18n/fr.js +21 -260
  21. package/dist/i18n/fr.js.map +1 -1
  22. package/dist/i18n/types.d.ts +2 -232
  23. package/dist/i18n/types.d.ts.map +1 -1
  24. package/dist/index.js +13 -19
  25. package/dist/index.js.map +1 -1
  26. package/dist/templates/claude-md.d.ts +3 -2
  27. package/dist/templates/claude-md.d.ts.map +1 -1
  28. package/dist/templates/claude-md.js +97 -65
  29. package/dist/templates/claude-md.js.map +1 -1
  30. package/dist/tools/fetch-docs.d.ts +13 -0
  31. package/dist/tools/fetch-docs.d.ts.map +1 -0
  32. package/dist/tools/fetch-docs.js +141 -0
  33. package/dist/tools/fetch-docs.js.map +1 -0
  34. package/dist/tools/generate-claude-md.d.ts.map +1 -1
  35. package/dist/tools/generate-claude-md.js +12 -12
  36. package/dist/tools/generate-claude-md.js.map +1 -1
  37. package/dist/tools/update-claude-md.d.ts.map +1 -1
  38. package/dist/tools/update-claude-md.js +63 -11
  39. package/dist/tools/update-claude-md.js.map +1 -1
  40. package/dist/tools/validate-claude-md.d.ts.map +1 -1
  41. package/dist/tools/validate-claude-md.js +10 -48
  42. package/dist/tools/validate-claude-md.js.map +1 -1
  43. package/dist/types.d.ts +2 -43
  44. package/dist/types.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/rules/auth.d.ts +0 -3
  47. package/dist/rules/auth.d.ts.map +0 -1
  48. package/dist/rules/auth.js +0 -48
  49. package/dist/rules/auth.js.map +0 -1
  50. package/dist/rules/cross-stack.d.ts +0 -3
  51. package/dist/rules/cross-stack.d.ts.map +0 -1
  52. package/dist/rules/cross-stack.js +0 -320
  53. package/dist/rules/cross-stack.js.map +0 -1
  54. package/dist/rules/drizzle.d.ts +0 -3
  55. package/dist/rules/drizzle.d.ts.map +0 -1
  56. package/dist/rules/drizzle.js +0 -43
  57. package/dist/rules/drizzle.js.map +0 -1
  58. package/dist/rules/index.d.ts +0 -7
  59. package/dist/rules/index.d.ts.map +0 -1
  60. package/dist/rules/index.js +0 -104
  61. package/dist/rules/index.js.map +0 -1
  62. package/dist/rules/nextjs.d.ts +0 -4
  63. package/dist/rules/nextjs.d.ts.map +0 -1
  64. package/dist/rules/nextjs.js +0 -86
  65. package/dist/rules/nextjs.js.map +0 -1
  66. package/dist/rules/node.d.ts +0 -3
  67. package/dist/rules/node.d.ts.map +0 -1
  68. package/dist/rules/node.js +0 -61
  69. package/dist/rules/node.js.map +0 -1
  70. package/dist/rules/prisma.d.ts +0 -3
  71. package/dist/rules/prisma.d.ts.map +0 -1
  72. package/dist/rules/prisma.js +0 -44
  73. package/dist/rules/prisma.js.map +0 -1
  74. package/dist/rules/react.d.ts +0 -3
  75. package/dist/rules/react.d.ts.map +0 -1
  76. package/dist/rules/react.js +0 -58
  77. package/dist/rules/react.js.map +0 -1
  78. package/dist/rules/state.d.ts +0 -3
  79. package/dist/rules/state.d.ts.map +0 -1
  80. package/dist/rules/state.js +0 -54
  81. package/dist/rules/state.js.map +0 -1
  82. package/dist/rules/tailwind.d.ts +0 -3
  83. package/dist/rules/tailwind.d.ts.map +0 -1
  84. package/dist/rules/tailwind.js +0 -41
  85. package/dist/rules/tailwind.js.map +0 -1
  86. package/dist/rules/trpc.d.ts +0 -3
  87. package/dist/rules/trpc.d.ts.map +0 -1
  88. package/dist/rules/trpc.js +0 -35
  89. package/dist/rules/trpc.js.map +0 -1
  90. package/dist/rules/typescript.d.ts +0 -3
  91. package/dist/rules/typescript.d.ts.map +0 -1
  92. package/dist/rules/typescript.js +0 -54
  93. package/dist/rules/typescript.js.map +0 -1
  94. package/dist/rules/validation.d.ts +0 -3
  95. package/dist/rules/validation.d.ts.map +0 -1
  96. package/dist/rules/validation.js +0 -38
  97. package/dist/rules/validation.js.map +0 -1
  98. package/dist/tools/detect-gaps.d.ts +0 -3
  99. package/dist/tools/detect-gaps.d.ts.map +0 -1
  100. package/dist/tools/detect-gaps.js +0 -34
  101. package/dist/tools/detect-gaps.js.map +0 -1
  102. package/dist/tools/suggest.d.ts +0 -3
  103. package/dist/tools/suggest.d.ts.map +0 -1
  104. package/dist/tools/suggest.js +0 -99
  105. package/dist/tools/suggest.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/analyzers/detection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/E,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAiBnC,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,aAAa,GACvB,aAAa,GAAG,IAAI,CA0DtB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,aAAa,CAuMpE"}
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/analyzers/detection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/E,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAiBnC,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,aAAa,GACvB,aAAa,GAAG,IAAI,CA+DtB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,aAAa,CAmOpE"}
@@ -58,6 +58,10 @@ export function detectFramework(deps, devDeps, structure) {
58
58
  if (has("hono", deps, devDeps)) {
59
59
  return { name: "hono", version: findVersion("hono", deps, devDeps) ?? "unknown" };
60
60
  }
61
+ // Standalone React (no framework detected above)
62
+ if (has("react", deps, devDeps)) {
63
+ return { name: "react", version: findVersion("react", deps, devDeps) ?? "unknown" };
64
+ }
61
65
  return null;
62
66
  }
63
67
  export function detectStack(deps, devDeps) {
@@ -70,12 +74,16 @@ export function detectStack(deps, devDeps) {
70
74
  orm = "drizzle";
71
75
  else if ("typeorm" in all)
72
76
  orm = "typeorm";
77
+ else if ("@mikro-orm/core" in all)
78
+ orm = "mikro-orm";
73
79
  else if ("kysely" in all)
74
80
  orm = "kysely";
75
81
  else if ("mongoose" in all)
76
82
  orm = "mongoose";
77
83
  else if ("sequelize" in all)
78
84
  orm = "sequelize";
85
+ else if ("objection" in all)
86
+ orm = "objection";
79
87
  else if ("@neondatabase/serverless" in all)
80
88
  orm = "neon";
81
89
  else if ("libsql" in all || "@libsql/client" in all)
@@ -102,6 +110,12 @@ export function detectStack(deps, devDeps) {
102
110
  auth = "auth0";
103
111
  else if ("firebase-admin" in all)
104
112
  auth = "firebase";
113
+ else if ("@workos-inc/node" in all)
114
+ auth = "workos";
115
+ else if ("@descope/nextjs-sdk" in all || "@descope/react-sdk" in all)
116
+ auth = "descope";
117
+ else if ("@stytch/nextjs" in all || "@stytch/react" in all)
118
+ auth = "stytch";
105
119
  // Validation
106
120
  let validation = null;
107
121
  if ("zod" in all)
@@ -132,6 +146,10 @@ export function detectStack(deps, devDeps) {
132
146
  css = "vanilla-extract";
133
147
  else if ("unocss" in all)
134
148
  css = "unocss";
149
+ else if ("@mantine/core" in all)
150
+ css = "mantine";
151
+ else if ("antd" in all)
152
+ css = "ant-design";
135
153
  else if ("sass" in all)
136
154
  css = "sass";
137
155
  // Testing
@@ -146,7 +164,7 @@ export function detectStack(deps, devDeps) {
146
164
  testing = "cypress";
147
165
  // Also detect test utilities (secondary)
148
166
  // @testing-library/react, msw, supertest are addons, not primary test runners
149
- // State management
167
+ // State management (client state only)
150
168
  let stateManagement = null;
151
169
  if ("zustand" in all)
152
170
  stateManagement = "zustand";
@@ -154,14 +172,28 @@ export function detectStack(deps, devDeps) {
154
172
  stateManagement = "redux";
155
173
  else if ("jotai" in all)
156
174
  stateManagement = "jotai";
157
- else if ("@tanstack/react-query" in all)
158
- stateManagement = "react-query";
159
- else if ("swr" in all)
160
- stateManagement = "swr";
161
175
  else if ("valtio" in all)
162
176
  stateManagement = "valtio";
163
177
  else if ("@xstate/react" in all || "xstate" in all)
164
178
  stateManagement = "xstate";
179
+ else if ("recoil" in all)
180
+ stateManagement = "recoil";
181
+ else if ("mobx" in all || "mobx-react-lite" in all)
182
+ stateManagement = "mobx";
183
+ // Data fetching / server state (separate from client state)
184
+ let dataFetching = null;
185
+ if ("@tanstack/react-query" in all)
186
+ dataFetching = "react-query";
187
+ else if ("swr" in all)
188
+ dataFetching = "swr";
189
+ // Form library
190
+ let formLibrary = null;
191
+ if ("react-hook-form" in all)
192
+ formLibrary = "react-hook-form";
193
+ else if ("formik" in all)
194
+ formLibrary = "formik";
195
+ else if ("@tanstack/react-form" in all)
196
+ formLibrary = "tanstack-form";
165
197
  // API style
166
198
  let apiStyle = null;
167
199
  if ("@trpc/server" in all || "@trpc/client" in all)
@@ -230,6 +262,12 @@ export function detectStack(deps, devDeps) {
230
262
  database = "mongodb";
231
263
  else if ("@supabase/supabase-js" in all)
232
264
  database = "supabase";
265
+ else if ("@planetscale/database" in all)
266
+ database = "planetscale";
267
+ else if ("ioredis" in all || "@upstash/redis" in all)
268
+ database = "redis";
269
+ else if ("@vercel/postgres" in all)
270
+ database = "vercel-postgres";
233
271
  // Email
234
272
  let email = null;
235
273
  if ("resend" in all)
@@ -306,6 +344,16 @@ export function detectStack(deps, devDeps) {
306
344
  uiComponents = "headless-ui";
307
345
  else if ("@ark-ui/react" in all)
308
346
  uiComponents = "ark-ui";
347
+ else if ("@nextui-org/react" in all)
348
+ uiComponents = "nextui";
349
+ else if ("@tremor/react" in all)
350
+ uiComponents = "tremor";
351
+ else if ("primereact" in all)
352
+ uiComponents = "primereact";
353
+ else if ("react-bootstrap" in all)
354
+ uiComponents = "react-bootstrap";
355
+ else if ("flowbite-react" in all)
356
+ uiComponents = "flowbite";
309
357
  return {
310
358
  orm,
311
359
  auth,
@@ -313,6 +361,8 @@ export function detectStack(deps, devDeps) {
313
361
  css,
314
362
  testing,
315
363
  stateManagement,
364
+ dataFetching,
365
+ formLibrary,
316
366
  apiStyle,
317
367
  bundler,
318
368
  linter,
@@ -1 +1 @@
1
- {"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/analyzers/detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detection.js","sourceRoot":"","sources":["../../src/analyzers/detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface LibrarySearchResult {
2
+ id: string;
3
+ name: string;
4
+ description?: string;
5
+ totalSnippets: number;
6
+ trustScore?: string;
7
+ versions?: string[];
8
+ }
9
+ export interface DocSnippet {
10
+ title: string;
11
+ content: string;
12
+ source: string;
13
+ }
14
+ export declare function searchLibrary(libraryName: string, query: string): Promise<LibrarySearchResult[]>;
15
+ export declare function fetchDocs(libraryId: string, query: string): Promise<string>;
16
+ export declare function resolveAndFetch(libraryName: string, query: string): Promise<string>;
17
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/context7/client.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAiDD,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAYhC;AAED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -0,0 +1,82 @@
1
+ const BASE_URL = "https://context7.com/api/v2";
2
+ const REQUEST_TIMEOUT = 15_000;
3
+ const MAX_RETRIES = 2;
4
+ function getHeaders() {
5
+ const headers = {
6
+ "Accept": "application/json",
7
+ };
8
+ const apiKey = process.env.CONTEXT7_API_KEY;
9
+ if (apiKey) {
10
+ headers["Authorization"] = `Bearer ${apiKey}`;
11
+ }
12
+ return headers;
13
+ }
14
+ async function fetchWithRetry(url, retries = MAX_RETRIES) {
15
+ for (let attempt = 0; attempt <= retries; attempt++) {
16
+ const controller = new AbortController();
17
+ const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
18
+ try {
19
+ const res = await fetch(url, {
20
+ headers: getHeaders(),
21
+ signal: controller.signal,
22
+ });
23
+ if (res.status === 429) {
24
+ const retryAfter = Number(res.headers.get("Retry-After") ?? "2");
25
+ if (attempt < retries) {
26
+ await new Promise((r) => setTimeout(r, retryAfter * 1000));
27
+ continue;
28
+ }
29
+ }
30
+ if (res.status === 202 && attempt < retries) {
31
+ await new Promise((r) => setTimeout(r, 2000));
32
+ continue;
33
+ }
34
+ return res;
35
+ }
36
+ catch (err) {
37
+ if (attempt === retries)
38
+ throw err;
39
+ await new Promise((r) => setTimeout(r, 1000));
40
+ }
41
+ finally {
42
+ clearTimeout(timeout);
43
+ }
44
+ }
45
+ throw new Error("Max retries exceeded");
46
+ }
47
+ export async function searchLibrary(libraryName, query) {
48
+ const params = new URLSearchParams({ libraryName, query });
49
+ const url = `${BASE_URL}/libs/search?${params}`;
50
+ try {
51
+ const res = await fetchWithRetry(url);
52
+ if (!res.ok)
53
+ return [];
54
+ const data = await res.json();
55
+ return Array.isArray(data) ? data : (data.results ?? []);
56
+ }
57
+ catch {
58
+ return [];
59
+ }
60
+ }
61
+ export async function fetchDocs(libraryId, query) {
62
+ const params = new URLSearchParams({ libraryId, query, type: "txt" });
63
+ const url = `${BASE_URL}/context?${params}`;
64
+ try {
65
+ const res = await fetchWithRetry(url);
66
+ if (!res.ok)
67
+ return "";
68
+ return await res.text();
69
+ }
70
+ catch {
71
+ return "";
72
+ }
73
+ }
74
+ export async function resolveAndFetch(libraryName, query) {
75
+ const results = await searchLibrary(libraryName, query);
76
+ if (results.length === 0)
77
+ return "";
78
+ // Pick best match: highest snippet count with good trust
79
+ const best = results.sort((a, b) => b.totalSnippets - a.totalSnippets)[0];
80
+ return fetchDocs(best.id, query);
81
+ }
82
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/context7/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { searchLibrary, fetchDocs, resolveAndFetch } from "./client.js";
2
+ export { TECH_QUERIES } from "./queries.js";
3
+ export type { LibrarySearchResult, DocSnippet } from "./client.js";
4
+ export type { TechQuery } from "./queries.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context7/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { searchLibrary, fetchDocs, resolveAndFetch } from "./client.js";
2
+ export { TECH_QUERIES } from "./queries.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context7/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface TechQuery {
2
+ libraryName: string;
3
+ queries: string[];
4
+ crossQueries?: Record<string, string>;
5
+ }
6
+ /**
7
+ * Maps detected tech identifiers to Context7 library names and relevant queries.
8
+ * This is NOT hardcoded rules — just "what to ask" for each technology.
9
+ */
10
+ export declare const TECH_QUERIES: Record<string, TechQuery>;
11
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/context7/queries.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA8OlD,CAAC"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Maps detected tech identifiers to Context7 library names and relevant queries.
3
+ * This is NOT hardcoded rules — just "what to ask" for each technology.
4
+ */
5
+ export const TECH_QUERIES = {
6
+ // Frameworks
7
+ next: {
8
+ libraryName: "next.js",
9
+ queries: [
10
+ "App Router conventions, Server Components vs Client Components, when to use 'use client'",
11
+ "Server Actions best practices, data fetching patterns, caching strategies",
12
+ ],
13
+ crossQueries: {
14
+ prisma: "Using Prisma with Next.js App Router, server-only imports, singleton pattern, data access layer",
15
+ drizzle: "Using Drizzle ORM with Next.js, server-only database queries",
16
+ "next-auth": "NextAuth.js v5 setup with Next.js App Router, middleware auth, session in Server Components",
17
+ clerk: "Clerk authentication with Next.js App Router, middleware, server-side auth",
18
+ "supabase-auth": "Supabase Auth with Next.js App Router, server client, middleware session refresh",
19
+ zod: "Zod validation in Next.js Server Actions and Route Handlers",
20
+ stripe: "Stripe payments and webhooks in Next.js, server-only SDK, webhook route handler",
21
+ "react-query": "React Query with Next.js App Router, HydrationBoundary, prefetching in Server Components",
22
+ "next-intl": "next-intl setup with App Router, middleware locale detection, Server Components i18n",
23
+ tailwind: "Tailwind CSS with Next.js, configuration, dark mode",
24
+ shadcn: "shadcn/ui with Next.js, component installation, theming",
25
+ },
26
+ },
27
+ nuxt: {
28
+ libraryName: "nuxt",
29
+ queries: ["Nuxt 3 conventions, composables, server routes, auto-imports"],
30
+ },
31
+ remix: {
32
+ libraryName: "remix",
33
+ queries: ["Remix loaders and actions, data loading patterns, form handling"],
34
+ },
35
+ astro: {
36
+ libraryName: "astro",
37
+ queries: ["Astro components, islands architecture, content collections"],
38
+ },
39
+ sveltekit: {
40
+ libraryName: "sveltekit",
41
+ queries: ["SvelteKit load functions, form actions, server-side rendering"],
42
+ },
43
+ "solid-start": {
44
+ libraryName: "solid-start",
45
+ queries: ["SolidStart routing, server functions, data loading"],
46
+ },
47
+ "vite-react": {
48
+ libraryName: "vite",
49
+ queries: ["Vite React project configuration, plugins, build optimization"],
50
+ },
51
+ react: {
52
+ libraryName: "react",
53
+ queries: ["React hooks best practices, component patterns, performance optimization"],
54
+ },
55
+ express: {
56
+ libraryName: "express",
57
+ queries: ["Express.js middleware patterns, error handling, route organization"],
58
+ },
59
+ fastify: {
60
+ libraryName: "fastify",
61
+ queries: ["Fastify plugins, schema validation, hooks lifecycle"],
62
+ },
63
+ hono: {
64
+ libraryName: "hono",
65
+ queries: ["Hono middleware, routing, request handling patterns"],
66
+ },
67
+ // ORM / Database
68
+ prisma: {
69
+ libraryName: "prisma",
70
+ queries: ["Prisma client singleton, connection pooling, best practices, select vs include"],
71
+ },
72
+ drizzle: {
73
+ libraryName: "drizzle-orm",
74
+ queries: ["Drizzle ORM schema definition, queries, migrations, best practices"],
75
+ },
76
+ typeorm: {
77
+ libraryName: "typeorm",
78
+ queries: ["TypeORM entity patterns, repository pattern, migrations"],
79
+ },
80
+ kysely: {
81
+ libraryName: "kysely",
82
+ queries: ["Kysely query builder patterns, type-safe queries"],
83
+ },
84
+ mongoose: {
85
+ libraryName: "mongoose",
86
+ queries: ["Mongoose schema design, middleware, connection management"],
87
+ },
88
+ // Auth
89
+ "next-auth": {
90
+ libraryName: "next-auth",
91
+ queries: ["NextAuth.js v5 configuration, providers, session management, middleware"],
92
+ },
93
+ clerk: {
94
+ libraryName: "clerk",
95
+ queries: ["Clerk authentication setup, middleware, server-side auth, user management"],
96
+ },
97
+ "better-auth": {
98
+ libraryName: "better-auth",
99
+ queries: ["Better Auth setup, session management, providers"],
100
+ },
101
+ auth0: {
102
+ libraryName: "auth0",
103
+ queries: ["Auth0 SDK setup, authentication flow, token management"],
104
+ },
105
+ // Validation
106
+ zod: {
107
+ libraryName: "zod",
108
+ queries: ["Zod schema patterns, parse vs safeParse, type inference, error handling"],
109
+ crossQueries: {
110
+ "react-hook-form": "Zod resolver with react-hook-form, shared schemas for forms and API validation",
111
+ },
112
+ },
113
+ valibot: {
114
+ libraryName: "valibot",
115
+ queries: ["Valibot schema validation, tree-shaking, type inference"],
116
+ },
117
+ // CSS / UI
118
+ tailwind: {
119
+ libraryName: "tailwindcss",
120
+ queries: ["Tailwind CSS utility classes, configuration, responsive design, dark mode"],
121
+ },
122
+ shadcn: {
123
+ libraryName: "shadcn/ui",
124
+ queries: ["shadcn/ui component usage, theming, customization, cn utility"],
125
+ },
126
+ chakra: {
127
+ libraryName: "chakra-ui",
128
+ queries: ["Chakra UI component patterns, theming, responsive styles"],
129
+ },
130
+ mui: {
131
+ libraryName: "material-ui",
132
+ queries: ["Material UI component usage, theming, sx prop patterns"],
133
+ },
134
+ mantine: {
135
+ libraryName: "mantine",
136
+ queries: ["Mantine components, hooks, theming, form handling"],
137
+ },
138
+ // Testing
139
+ vitest: {
140
+ libraryName: "vitest",
141
+ queries: ["Vitest testing patterns, mocking, setup, configuration"],
142
+ },
143
+ jest: {
144
+ libraryName: "jest",
145
+ queries: ["Jest testing patterns, mocking, configuration, best practices"],
146
+ },
147
+ playwright: {
148
+ libraryName: "playwright",
149
+ queries: ["Playwright E2E testing, page objects, assertions, configuration"],
150
+ },
151
+ cypress: {
152
+ libraryName: "cypress",
153
+ queries: ["Cypress E2E testing, commands, fixtures, best practices"],
154
+ },
155
+ // State
156
+ zustand: {
157
+ libraryName: "zustand",
158
+ queries: ["Zustand store patterns, middleware, persist, selectors"],
159
+ },
160
+ redux: {
161
+ libraryName: "redux-toolkit",
162
+ queries: ["Redux Toolkit slices, createAsyncThunk, RTK Query"],
163
+ },
164
+ jotai: {
165
+ libraryName: "jotai",
166
+ queries: ["Jotai atom patterns, derived atoms, async atoms"],
167
+ },
168
+ // Data fetching
169
+ "react-query": {
170
+ libraryName: "tanstack-query",
171
+ queries: ["TanStack Query patterns, mutations, invalidation, caching strategies"],
172
+ },
173
+ swr: {
174
+ libraryName: "swr",
175
+ queries: ["SWR data fetching, revalidation, mutation, error handling"],
176
+ },
177
+ // Forms
178
+ "react-hook-form": {
179
+ libraryName: "react-hook-form",
180
+ queries: ["React Hook Form usage, register, Controller, validation integration"],
181
+ },
182
+ // API
183
+ trpc: {
184
+ libraryName: "trpc",
185
+ queries: ["tRPC router setup, procedures, middleware, input validation with Zod"],
186
+ crossQueries: {
187
+ zod: "tRPC with Zod input validation, end-to-end type safety",
188
+ },
189
+ },
190
+ // Payments
191
+ stripe: {
192
+ libraryName: "stripe",
193
+ queries: ["Stripe API integration, webhooks, checkout, payment intents"],
194
+ },
195
+ // Email
196
+ resend: {
197
+ libraryName: "resend",
198
+ queries: ["Resend email API, sending emails, React Email templates"],
199
+ },
200
+ // i18n
201
+ "next-intl": {
202
+ libraryName: "next-intl",
203
+ queries: ["next-intl middleware, Server Components, message organization"],
204
+ },
205
+ i18next: {
206
+ libraryName: "i18next",
207
+ queries: ["i18next configuration, namespaces, interpolation, react-i18next"],
208
+ },
209
+ // CMS
210
+ sanity: {
211
+ libraryName: "sanity",
212
+ queries: ["Sanity CMS setup, GROQ queries, studio configuration"],
213
+ },
214
+ contentful: {
215
+ libraryName: "contentful",
216
+ queries: ["Contentful API, content delivery, content management"],
217
+ },
218
+ // Realtime
219
+ "socket.io": {
220
+ libraryName: "socket.io",
221
+ queries: ["Socket.IO setup, events, rooms, namespaces, error handling"],
222
+ },
223
+ // Jobs
224
+ inngest: {
225
+ libraryName: "inngest",
226
+ queries: ["Inngest function patterns, event-driven workflows, retries"],
227
+ },
228
+ };
229
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/context7/queries.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,EAAE,EAAE,QAkXhB,CAAC"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,EAAE,EAAE,QA+HhB,CAAC"}