mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-08-15 02:53:25 +10:00
chore: update dependencies
This commit is contained in:
+34
-34
@@ -17,33 +17,33 @@
|
||||
"#react-pdf-renderer": "@react-pdf/renderer"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ai-sdk/anthropic": "^4.0.10",
|
||||
"@ai-sdk/cerebras": "^3.0.6",
|
||||
"@ai-sdk/cohere": "^4.0.6",
|
||||
"@ai-sdk/deepseek": "^3.0.6",
|
||||
"@ai-sdk/fireworks": "^3.0.7",
|
||||
"@ai-sdk/google": "^4.0.10",
|
||||
"@ai-sdk/groq": "^4.0.6",
|
||||
"@ai-sdk/mistral": "^4.0.7",
|
||||
"@ai-sdk/openai": "^4.0.9",
|
||||
"@ai-sdk/openai-compatible": "^3.0.6",
|
||||
"@ai-sdk/perplexity": "^4.0.7",
|
||||
"@ai-sdk/togetherai": "^3.0.7",
|
||||
"@ai-sdk/xai": "^4.0.9",
|
||||
"@aws-sdk/client-s3": "^3.1081.0",
|
||||
"@better-auth/api-key": "^1.6.23",
|
||||
"@better-auth/drizzle-adapter": "^1.6.23",
|
||||
"@better-auth/infra": "^0.3.5",
|
||||
"@better-auth/oauth-provider": "^1.6.23",
|
||||
"@better-auth/passkey": "^1.6.23",
|
||||
"@hono/node-server": "^2.0.8",
|
||||
"@ai-sdk/anthropic": "^4.0.21",
|
||||
"@ai-sdk/cerebras": "^3.0.14",
|
||||
"@ai-sdk/cohere": "^4.0.12",
|
||||
"@ai-sdk/deepseek": "^3.0.13",
|
||||
"@ai-sdk/fireworks": "^3.0.15",
|
||||
"@ai-sdk/google": "^4.0.24",
|
||||
"@ai-sdk/groq": "^4.0.13",
|
||||
"@ai-sdk/mistral": "^4.0.14",
|
||||
"@ai-sdk/openai": "^4.0.20",
|
||||
"@ai-sdk/openai-compatible": "^3.0.14",
|
||||
"@ai-sdk/perplexity": "^4.0.13",
|
||||
"@ai-sdk/togetherai": "^3.0.15",
|
||||
"@ai-sdk/xai": "^4.0.18",
|
||||
"@aws-sdk/client-s3": "^3.1095.0",
|
||||
"@better-auth/api-key": "^1.6.25",
|
||||
"@better-auth/drizzle-adapter": "^1.6.25",
|
||||
"@better-auth/infra": "^0.3.7",
|
||||
"@better-auth/oauth-provider": "^1.6.25",
|
||||
"@better-auth/passkey": "^1.6.25",
|
||||
"@hono/node-server": "^2.0.12",
|
||||
"@modelcontextprotocol/sdk": "^1.29.0",
|
||||
"@orpc/client": "^1.14.7",
|
||||
"@orpc/experimental-ratelimit": "^1.14.7",
|
||||
"@orpc/json-schema": "^1.14.7",
|
||||
"@orpc/openapi": "^1.14.7",
|
||||
"@orpc/server": "^1.14.7",
|
||||
"@orpc/zod": "^1.14.7",
|
||||
"@orpc/client": "^1.14.10",
|
||||
"@orpc/experimental-ratelimit": "^1.14.10",
|
||||
"@orpc/json-schema": "^1.14.10",
|
||||
"@orpc/openapi": "^1.14.10",
|
||||
"@orpc/server": "^1.14.10",
|
||||
"@orpc/zod": "^1.14.10",
|
||||
"@react-pdf/renderer": "^4.5.1",
|
||||
"@reactive-resume/api": "workspace:*",
|
||||
"@reactive-resume/auth": "workspace:*",
|
||||
@@ -55,24 +55,24 @@
|
||||
"@sindresorhus/slugify": "^3.0.0",
|
||||
"@t3-oss/env-core": "^0.13.11",
|
||||
"@uiw/color-convert": "^2.10.3",
|
||||
"ai": "^7.0.18",
|
||||
"ai": "^7.0.37",
|
||||
"bcrypt": "^6.0.0",
|
||||
"better-auth": "1.6.23",
|
||||
"better-auth": "1.6.25",
|
||||
"cjk-regex": "^3.4.0",
|
||||
"deepmerge-ts": "^7.1.5",
|
||||
"drizzle-orm": "1.0.0-rc.4",
|
||||
"drizzle-zod": "1.0.0-beta.14-a36c63d",
|
||||
"es-toolkit": "^1.49.0",
|
||||
"es-toolkit": "^1.50.0",
|
||||
"fast-json-patch": "^3.1.1",
|
||||
"hono": "^4.12.28",
|
||||
"hono": "^4.12.32",
|
||||
"jsonrepair": "^3.15.0",
|
||||
"node-html-parser": "^9.0.0",
|
||||
"nodemailer": "^9.0.3",
|
||||
"ollama-ai-provider-v2": "^4.0.1",
|
||||
"pg": "^8.22.0",
|
||||
"phosphor-icons-react-pdf": "^0.1.3",
|
||||
"react": "^19.2.7",
|
||||
"react-email": "^6.6.8",
|
||||
"react": "^19.2.8",
|
||||
"react-email": "^6.9.1",
|
||||
"react-pdf-html": "^2.1.5",
|
||||
"resumable-stream": "^2.2.12",
|
||||
"sharp": "^0.35.3",
|
||||
@@ -87,8 +87,8 @@
|
||||
"@types/pg": "^8.20.0",
|
||||
"@types/react": "^19.2.17",
|
||||
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
||||
"tsdown": "^0.22.4",
|
||||
"tsx": "^4.23.0",
|
||||
"tsdown": "^0.22.14",
|
||||
"tsx": "^4.23.1",
|
||||
"typescript": "^7.0.2",
|
||||
"vitest": "^4.1.10"
|
||||
}
|
||||
|
||||
@@ -41,21 +41,17 @@ describe("web app fallback classification", () => {
|
||||
expect(response.headers.get("Content-Security-Policy-Report-Only")).toContain("frame-ancestors 'none'");
|
||||
});
|
||||
|
||||
it.each([
|
||||
"/auth/login",
|
||||
"/dashboard",
|
||||
"/builder/resume-1",
|
||||
"/agent",
|
||||
"/templates",
|
||||
"/templates/azurill.pdf",
|
||||
])("serves noindex shell for known app prefix %s", async (pathname) => {
|
||||
const response = await handleWebApp(new Request(`https://example.com${pathname}`));
|
||||
it.each(["/auth/login", "/dashboard", "/builder/resume-1", "/agent", "/templates", "/templates/azurill.pdf"])(
|
||||
"serves noindex shell for known app prefix %s",
|
||||
async (pathname) => {
|
||||
const response = await handleWebApp(new Request(`https://example.com${pathname}`));
|
||||
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.headers.get("Content-Type")).toBe("text/html; charset=UTF-8");
|
||||
expect(response.headers.get("X-Robots-Tag")).toBe("noindex, follow");
|
||||
expect(await response.text()).toBe("<html>app</html>");
|
||||
});
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.headers.get("Content-Type")).toBe("text/html; charset=UTF-8");
|
||||
expect(response.headers.get("X-Robots-Tag")).toBe("noindex, follow");
|
||||
expect(await response.text()).toBe("<html>app</html>");
|
||||
},
|
||||
);
|
||||
|
||||
it("serves noindex shell for public resume shaped routes", async () => {
|
||||
const response = await handleWebApp(new Request("https://example.com/alice/resume"));
|
||||
@@ -75,19 +71,18 @@ describe("web app fallback classification", () => {
|
||||
expect(fs.readFile).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it.each([
|
||||
"/api/foo",
|
||||
"/mcp/foo",
|
||||
"/uploads/foo",
|
||||
])("does not treat reserved two-segment path %s as a public resume", async (pathname) => {
|
||||
const response = await handleWebApp(new Request(`https://example.com${pathname}`));
|
||||
it.each(["/api/foo", "/mcp/foo", "/uploads/foo"])(
|
||||
"does not treat reserved two-segment path %s as a public resume",
|
||||
async (pathname) => {
|
||||
const response = await handleWebApp(new Request(`https://example.com${pathname}`));
|
||||
|
||||
expect(response.status).toBe(404);
|
||||
expect(response.headers.get("Content-Type")).toBe("text/plain; charset=UTF-8");
|
||||
expect(response.headers.get("X-Robots-Tag")).toBe("noindex, nofollow");
|
||||
expect(await response.text()).toBe("Not Found");
|
||||
expect(fs.readFile).not.toHaveBeenCalled();
|
||||
});
|
||||
expect(response.status).toBe(404);
|
||||
expect(response.headers.get("Content-Type")).toBe("text/plain; charset=UTF-8");
|
||||
expect(response.headers.get("X-Robots-Tag")).toBe("noindex, nofollow");
|
||||
expect(await response.text()).toBe("Not Found");
|
||||
expect(fs.readFile).not.toHaveBeenCalled();
|
||||
},
|
||||
);
|
||||
|
||||
it("returns plain 404 for missing asset-looking paths", async () => {
|
||||
const response = await handleWebApp(new Request("https://example.com/assets/missing.css"));
|
||||
|
||||
+41
-41
@@ -16,20 +16,20 @@
|
||||
"lingui:extract": "lingui extract --clean --overwrite"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ai-sdk/react": "^4.0.19",
|
||||
"@ai-sdk/react": "^4.0.40",
|
||||
"@base-ui/react": "^1.6.0",
|
||||
"@better-auth/api-key": "^1.6.23",
|
||||
"@better-auth/infra": "^0.3.5",
|
||||
"@better-auth/oauth-provider": "^1.6.23",
|
||||
"@better-auth/passkey": "^1.6.23",
|
||||
"@better-auth/api-key": "^1.6.25",
|
||||
"@better-auth/infra": "^0.3.7",
|
||||
"@better-auth/oauth-provider": "^1.6.25",
|
||||
"@better-auth/passkey": "^1.6.25",
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
"@dnd-kit/sortable": "^10.0.0",
|
||||
"@dnd-kit/utilities": "^3.2.2",
|
||||
"@lingui/core": "^6.5.0",
|
||||
"@lingui/react": "^6.5.0",
|
||||
"@orpc/client": "^1.14.7",
|
||||
"@orpc/server": "^1.14.7",
|
||||
"@orpc/tanstack-query": "^1.14.7",
|
||||
"@lingui/core": "^6.6.0",
|
||||
"@lingui/react": "^6.6.0",
|
||||
"@orpc/client": "^1.14.10",
|
||||
"@orpc/server": "^1.14.10",
|
||||
"@orpc/tanstack-query": "^1.14.10",
|
||||
"@phosphor-icons/react": "^2.1.10",
|
||||
"@react-pdf/renderer": "^4.5.1",
|
||||
"@reactive-resume/ai": "workspace:*",
|
||||
@@ -43,39 +43,39 @@
|
||||
"@reactive-resume/schema": "workspace:*",
|
||||
"@reactive-resume/ui": "workspace:*",
|
||||
"@reactive-resume/utils": "workspace:*",
|
||||
"@tailwindcss/vite": "^4.3.2",
|
||||
"@tanstack/react-form": "^1.33.0",
|
||||
"@tailwindcss/vite": "^4.3.3",
|
||||
"@tanstack/react-form": "^1.33.2",
|
||||
"@tanstack/react-hotkeys": "^0.10.0",
|
||||
"@tanstack/react-query": "^5.101.2",
|
||||
"@tanstack/react-router": "^1.170.17",
|
||||
"@tiptap/extension-color": "^3.27.3",
|
||||
"@tiptap/extension-highlight": "^3.27.3",
|
||||
"@tiptap/extension-text-align": "^3.27.3",
|
||||
"@tiptap/extension-text-style": "^3.27.3",
|
||||
"@tiptap/pm": "^3.27.3",
|
||||
"@tiptap/react": "^3.27.3",
|
||||
"@tiptap/starter-kit": "^3.27.3",
|
||||
"@tanstack/react-query": "^5.101.4",
|
||||
"@tanstack/react-router": "^1.170.18",
|
||||
"@tiptap/extension-color": "^3.29.1",
|
||||
"@tiptap/extension-highlight": "^3.29.1",
|
||||
"@tiptap/extension-text-align": "^3.29.1",
|
||||
"@tiptap/extension-text-style": "^3.29.1",
|
||||
"@tiptap/pm": "^3.29.1",
|
||||
"@tiptap/react": "^3.29.1",
|
||||
"@tiptap/starter-kit": "^3.29.1",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@uiw/color-convert": "^2.10.3",
|
||||
"@uiw/react-color-colorful": "^2.10.3",
|
||||
"ai": "^7.0.18",
|
||||
"better-auth": "1.6.23",
|
||||
"ai": "^7.0.37",
|
||||
"better-auth": "1.6.25",
|
||||
"cmdk": "^1.1.1",
|
||||
"drizzle-orm": "1.0.0-rc.4",
|
||||
"es-toolkit": "^1.49.0",
|
||||
"fuse.js": "^7.4.2",
|
||||
"immer": "^11.1.11",
|
||||
"es-toolkit": "^1.50.0",
|
||||
"fuse.js": "^7.5.0",
|
||||
"immer": "^11.1.15",
|
||||
"js-cookie": "^3.0.8",
|
||||
"motion": "^12.42.2",
|
||||
"pdfjs-dist": "6.1.200",
|
||||
"pg": "^8.22.0",
|
||||
"qrcode.react": "^4.2.0",
|
||||
"react": "^19.2.7",
|
||||
"react-dom": "^19.2.7",
|
||||
"react-easy-crop": "^6.2.2",
|
||||
"react": "^19.2.8",
|
||||
"react-dom": "^19.2.8",
|
||||
"react-easy-crop": "^6.2.3",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-resizable-panels": "^4.12.1",
|
||||
"react-window": "^2.2.7",
|
||||
"react-resizable-panels": "^4.12.2",
|
||||
"react-window": "^2.3.0",
|
||||
"react-zoom-pan-pinch": "^4.0.3",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"sonner": "^2.0.7",
|
||||
@@ -86,27 +86,27 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^8.0.1",
|
||||
"@lingui/babel-plugin-lingui-macro": "^6.5.0",
|
||||
"@lingui/cli": "^6.5.0",
|
||||
"@lingui/format-po": "^6.5.0",
|
||||
"@lingui/vite-plugin": "^6.5.0",
|
||||
"@lingui/babel-plugin-lingui-macro": "^6.6.0",
|
||||
"@lingui/cli": "^6.6.0",
|
||||
"@lingui/format-po": "^6.6.0",
|
||||
"@lingui/vite-plugin": "^6.6.0",
|
||||
"@reactive-resume/config": "workspace:*",
|
||||
"@rolldown/plugin-babel": "^0.2.3",
|
||||
"@tanstack/devtools-vite": "^0.8.1",
|
||||
"@tanstack/react-devtools": "^0.10.8",
|
||||
"@tanstack/react-query-devtools": "^5.101.2",
|
||||
"@tanstack/devtools-vite": "^0.8.3",
|
||||
"@tanstack/react-devtools": "^0.10.9",
|
||||
"@tanstack/react-query-devtools": "^5.101.4",
|
||||
"@tanstack/react-router-devtools": "^1.167.0",
|
||||
"@tanstack/router-plugin": "^1.168.19",
|
||||
"@tanstack/router-plugin": "^1.168.23",
|
||||
"@types/babel__core": "^7.20.5",
|
||||
"@types/pg": "^8.20.0",
|
||||
"@types/react": "^19.2.17",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
||||
"@vitejs/plugin-react": "^6.0.3",
|
||||
"@vitejs/plugin-react": "^6.0.4",
|
||||
"babel-plugin-macros": "^3.1.0",
|
||||
"babel-plugin-react-compiler": "^1.0.0",
|
||||
"rimraf": "^6.1.3",
|
||||
"typescript": "^7.0.2",
|
||||
"vite": "^8.1.3"
|
||||
"vite": "^8.1.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,21 +15,21 @@ function rendererBody(name: string) {
|
||||
}
|
||||
|
||||
describe("custom section dialog layout", () => {
|
||||
it.each([
|
||||
"CreateCustomSectionFormRenderer",
|
||||
"UpdateCustomSectionFormRenderer",
|
||||
])("renders icon and title in one row for %s", (name) => {
|
||||
const body = rendererBody(name);
|
||||
const rowIndex = body.indexOf('"flex items-end sm:col-span-full"');
|
||||
const iconIndex = body.indexOf('name="icon"', rowIndex);
|
||||
const titleIndex = body.indexOf('name="title"', rowIndex);
|
||||
const sectionTypeIndex = body.indexOf('name="type"', rowIndex);
|
||||
it.each(["CreateCustomSectionFormRenderer", "UpdateCustomSectionFormRenderer"])(
|
||||
"renders icon and title in one row for %s",
|
||||
(name) => {
|
||||
const body = rendererBody(name);
|
||||
const rowIndex = body.indexOf('"flex items-end sm:col-span-full"');
|
||||
const iconIndex = body.indexOf('name="icon"', rowIndex);
|
||||
const titleIndex = body.indexOf('name="title"', rowIndex);
|
||||
const sectionTypeIndex = body.indexOf('name="type"', rowIndex);
|
||||
|
||||
expect(rowIndex).toBeGreaterThanOrEqual(0);
|
||||
expect(iconIndex).toBeGreaterThan(rowIndex);
|
||||
expect(titleIndex).toBeGreaterThan(iconIndex);
|
||||
expect(sectionTypeIndex).toBeGreaterThan(titleIndex);
|
||||
expect(body).toContain('className="rounded-r-none border-input border-e-0"');
|
||||
expect(body).toContain('className="rounded-s-none"');
|
||||
});
|
||||
expect(rowIndex).toBeGreaterThanOrEqual(0);
|
||||
expect(iconIndex).toBeGreaterThan(rowIndex);
|
||||
expect(titleIndex).toBeGreaterThan(iconIndex);
|
||||
expect(sectionTypeIndex).toBeGreaterThan(titleIndex);
|
||||
expect(body).toContain('className="rounded-r-none border-input border-e-0"');
|
||||
expect(body).toContain('className="rounded-s-none"');
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
+260
-260
@@ -9,45 +9,39 @@
|
||||
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
|
||||
|
||||
import { Route as rootRouteImport } from "./routes/__root";
|
||||
import { Route as DashboardRouteRouteImport } from "./routes/dashboard/route";
|
||||
import { Route as AuthRouteRouteImport } from "./routes/auth/route";
|
||||
import { Route as AgentRouteRouteImport } from "./routes/agent/route";
|
||||
import { Route as HomeRouteRouteImport } from "./routes/_home/route";
|
||||
import { Route as DashboardIndexRouteImport } from "./routes/dashboard/index";
|
||||
import { Route as AuthIndexRouteImport } from "./routes/auth/index";
|
||||
import { Route as AgentIndexRouteImport } from "./routes/agent/index";
|
||||
import { Route as HomeIndexRouteImport } from "./routes/_home/index";
|
||||
import { Route as TemplatesSplatRouteImport } from "./routes/templates/$";
|
||||
import { Route as AuthVerify2faBackupRouteImport } from "./routes/auth/verify-2fa-backup";
|
||||
import { Route as AuthVerify2faRouteImport } from "./routes/auth/verify-2fa";
|
||||
import { Route as AuthResumePasswordRouteImport } from "./routes/auth/resume-password";
|
||||
import { Route as AuthResetPasswordRouteImport } from "./routes/auth/reset-password";
|
||||
import { Route as AuthRegisterRouteImport } from "./routes/auth/register";
|
||||
import { Route as AuthLoginRouteImport } from "./routes/auth/login";
|
||||
import { Route as AuthForgotPasswordRouteImport } from "./routes/auth/forgot-password";
|
||||
import { Route as AgentNewRouteImport } from "./routes/agent/new";
|
||||
import { Route as AgentThreadIdRouteImport } from "./routes/agent/$threadId";
|
||||
import { Route as AgentRouteRouteImport } from "./routes/agent/route";
|
||||
import { Route as AuthRouteRouteImport } from "./routes/auth/route";
|
||||
import { Route as DashboardRouteRouteImport } from "./routes/dashboard/route";
|
||||
import { Route as UsernameSlugRouteImport } from "./routes/$username/$slug";
|
||||
import { Route as HomeIndexRouteImport } from "./routes/_home/index";
|
||||
import { Route as AgentIndexRouteImport } from "./routes/agent/index";
|
||||
import { Route as AgentThreadIdRouteImport } from "./routes/agent/$threadId";
|
||||
import { Route as AgentNewRouteImport } from "./routes/agent/new";
|
||||
import { Route as AuthIndexRouteImport } from "./routes/auth/index";
|
||||
import { Route as AuthForgotPasswordRouteImport } from "./routes/auth/forgot-password";
|
||||
import { Route as AuthLoginRouteImport } from "./routes/auth/login";
|
||||
import { Route as AuthRegisterRouteImport } from "./routes/auth/register";
|
||||
import { Route as AuthResetPasswordRouteImport } from "./routes/auth/reset-password";
|
||||
import { Route as AuthResumePasswordRouteImport } from "./routes/auth/resume-password";
|
||||
import { Route as AuthVerify2faRouteImport } from "./routes/auth/verify-2fa";
|
||||
import { Route as AuthVerify2faBackupRouteImport } from "./routes/auth/verify-2fa-backup";
|
||||
import { Route as BuilderResumeIdRouteRouteImport } from "./routes/builder/$resumeId/route";
|
||||
import { Route as DashboardResumesIndexRouteImport } from "./routes/dashboard/resumes/index";
|
||||
import { Route as DashboardApplicationsIndexRouteImport } from "./routes/dashboard/applications/index";
|
||||
import { Route as DashboardIndexRouteImport } from "./routes/dashboard/index";
|
||||
import { Route as TemplatesSplatRouteImport } from "./routes/templates/$";
|
||||
import { Route as BuilderResumeIdIndexRouteImport } from "./routes/builder/$resumeId/index";
|
||||
import { Route as DashboardSettingsProfileRouteImport } from "./routes/dashboard/settings/profile";
|
||||
import { Route as DashboardSettingsPreferencesRouteImport } from "./routes/dashboard/settings/preferences";
|
||||
import { Route as DashboardSettingsJobSearchRouteImport } from "./routes/dashboard/settings/job-search";
|
||||
import { Route as DashboardSettingsDangerZoneRouteImport } from "./routes/dashboard/settings/danger-zone";
|
||||
import { Route as DashboardApplicationsIndexRouteImport } from "./routes/dashboard/applications/index";
|
||||
import { Route as DashboardResumesIndexRouteImport } from "./routes/dashboard/resumes/index";
|
||||
import { Route as DashboardSettingsApiKeysRouteImport } from "./routes/dashboard/settings/api-keys";
|
||||
import { Route as DashboardSettingsDangerZoneRouteImport } from "./routes/dashboard/settings/danger-zone";
|
||||
import { Route as DashboardSettingsIntegrationsRouteRouteImport } from "./routes/dashboard/settings/integrations/route";
|
||||
import { Route as DashboardSettingsJobSearchRouteImport } from "./routes/dashboard/settings/job-search";
|
||||
import { Route as DashboardSettingsPreferencesRouteImport } from "./routes/dashboard/settings/preferences";
|
||||
import { Route as DashboardSettingsProfileRouteImport } from "./routes/dashboard/settings/profile";
|
||||
import { Route as DashboardSettingsAuthenticationIndexRouteImport } from "./routes/dashboard/settings/authentication/index";
|
||||
|
||||
const DashboardRouteRoute = DashboardRouteRouteImport.update({
|
||||
id: "/dashboard",
|
||||
path: "/dashboard",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const AuthRouteRoute = AuthRouteRouteImport.update({
|
||||
id: "/auth",
|
||||
path: "/auth",
|
||||
const HomeRouteRoute = HomeRouteRouteImport.update({
|
||||
id: "/_home",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const AgentRouteRoute = AgentRouteRouteImport.update({
|
||||
@@ -55,73 +49,29 @@ const AgentRouteRoute = AgentRouteRouteImport.update({
|
||||
path: "/agent",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const HomeRouteRoute = HomeRouteRouteImport.update({
|
||||
id: "/_home",
|
||||
const AuthRouteRoute = AuthRouteRouteImport.update({
|
||||
id: "/auth",
|
||||
path: "/auth",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const DashboardIndexRoute = DashboardIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
const DashboardRouteRoute = DashboardRouteRouteImport.update({
|
||||
id: "/dashboard",
|
||||
path: "/dashboard",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const AuthIndexRoute = AuthIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AgentIndexRoute = AgentIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => AgentRouteRoute,
|
||||
const UsernameSlugRoute = UsernameSlugRouteImport.update({
|
||||
id: "/$username/$slug",
|
||||
path: "/$username/$slug",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const HomeIndexRoute = HomeIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => HomeRouteRoute,
|
||||
} as any);
|
||||
const TemplatesSplatRoute = TemplatesSplatRouteImport.update({
|
||||
id: "/templates/$",
|
||||
path: "/templates/$",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const AuthVerify2faBackupRoute = AuthVerify2faBackupRouteImport.update({
|
||||
id: "/verify-2fa-backup",
|
||||
path: "/verify-2fa-backup",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthVerify2faRoute = AuthVerify2faRouteImport.update({
|
||||
id: "/verify-2fa",
|
||||
path: "/verify-2fa",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthResumePasswordRoute = AuthResumePasswordRouteImport.update({
|
||||
id: "/resume-password",
|
||||
path: "/resume-password",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthResetPasswordRoute = AuthResetPasswordRouteImport.update({
|
||||
id: "/reset-password",
|
||||
path: "/reset-password",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthRegisterRoute = AuthRegisterRouteImport.update({
|
||||
id: "/register",
|
||||
path: "/register",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthLoginRoute = AuthLoginRouteImport.update({
|
||||
id: "/login",
|
||||
path: "/login",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthForgotPasswordRoute = AuthForgotPasswordRouteImport.update({
|
||||
id: "/forgot-password",
|
||||
path: "/forgot-password",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AgentNewRoute = AgentNewRouteImport.update({
|
||||
id: "/new",
|
||||
path: "/new",
|
||||
const AgentIndexRoute = AgentIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => AgentRouteRoute,
|
||||
} as any);
|
||||
const AgentThreadIdRoute = AgentThreadIdRouteImport.update({
|
||||
@@ -129,48 +79,86 @@ const AgentThreadIdRoute = AgentThreadIdRouteImport.update({
|
||||
path: "/$threadId",
|
||||
getParentRoute: () => AgentRouteRoute,
|
||||
} as any);
|
||||
const UsernameSlugRoute = UsernameSlugRouteImport.update({
|
||||
id: "/$username/$slug",
|
||||
path: "/$username/$slug",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
const AgentNewRoute = AgentNewRouteImport.update({
|
||||
id: "/new",
|
||||
path: "/new",
|
||||
getParentRoute: () => AgentRouteRoute,
|
||||
} as any);
|
||||
const AuthIndexRoute = AuthIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthForgotPasswordRoute = AuthForgotPasswordRouteImport.update({
|
||||
id: "/forgot-password",
|
||||
path: "/forgot-password",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthLoginRoute = AuthLoginRouteImport.update({
|
||||
id: "/login",
|
||||
path: "/login",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthRegisterRoute = AuthRegisterRouteImport.update({
|
||||
id: "/register",
|
||||
path: "/register",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthResetPasswordRoute = AuthResetPasswordRouteImport.update({
|
||||
id: "/reset-password",
|
||||
path: "/reset-password",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthResumePasswordRoute = AuthResumePasswordRouteImport.update({
|
||||
id: "/resume-password",
|
||||
path: "/resume-password",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthVerify2faRoute = AuthVerify2faRouteImport.update({
|
||||
id: "/verify-2fa",
|
||||
path: "/verify-2fa",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const AuthVerify2faBackupRoute = AuthVerify2faBackupRouteImport.update({
|
||||
id: "/verify-2fa-backup",
|
||||
path: "/verify-2fa-backup",
|
||||
getParentRoute: () => AuthRouteRoute,
|
||||
} as any);
|
||||
const BuilderResumeIdRouteRoute = BuilderResumeIdRouteRouteImport.update({
|
||||
id: "/builder/$resumeId",
|
||||
path: "/builder/$resumeId",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const DashboardResumesIndexRoute = DashboardResumesIndexRouteImport.update({
|
||||
id: "/resumes/",
|
||||
path: "/resumes/",
|
||||
const DashboardIndexRoute = DashboardIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const TemplatesSplatRoute = TemplatesSplatRouteImport.update({
|
||||
id: "/templates/$",
|
||||
path: "/templates/$",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const BuilderResumeIdIndexRoute = BuilderResumeIdIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => BuilderResumeIdRouteRoute,
|
||||
} as any);
|
||||
const DashboardApplicationsIndexRoute =
|
||||
DashboardApplicationsIndexRouteImport.update({
|
||||
id: "/applications/",
|
||||
path: "/applications/",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const BuilderResumeIdIndexRoute = BuilderResumeIdIndexRouteImport.update({
|
||||
id: "/",
|
||||
path: "/",
|
||||
getParentRoute: () => BuilderResumeIdRouteRoute,
|
||||
const DashboardResumesIndexRoute = DashboardResumesIndexRouteImport.update({
|
||||
id: "/resumes/",
|
||||
path: "/resumes/",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsProfileRoute =
|
||||
DashboardSettingsProfileRouteImport.update({
|
||||
id: "/settings/profile",
|
||||
path: "/settings/profile",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsPreferencesRoute =
|
||||
DashboardSettingsPreferencesRouteImport.update({
|
||||
id: "/settings/preferences",
|
||||
path: "/settings/preferences",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsJobSearchRoute =
|
||||
DashboardSettingsJobSearchRouteImport.update({
|
||||
id: "/settings/job-search",
|
||||
path: "/settings/job-search",
|
||||
const DashboardSettingsApiKeysRoute =
|
||||
DashboardSettingsApiKeysRouteImport.update({
|
||||
id: "/settings/api-keys",
|
||||
path: "/settings/api-keys",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsDangerZoneRoute =
|
||||
@@ -179,18 +167,30 @@ const DashboardSettingsDangerZoneRoute =
|
||||
path: "/settings/danger-zone",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsApiKeysRoute =
|
||||
DashboardSettingsApiKeysRouteImport.update({
|
||||
id: "/settings/api-keys",
|
||||
path: "/settings/api-keys",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsIntegrationsRouteRoute =
|
||||
DashboardSettingsIntegrationsRouteRouteImport.update({
|
||||
id: "/settings/integrations",
|
||||
path: "/settings/integrations",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsJobSearchRoute =
|
||||
DashboardSettingsJobSearchRouteImport.update({
|
||||
id: "/settings/job-search",
|
||||
path: "/settings/job-search",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsPreferencesRoute =
|
||||
DashboardSettingsPreferencesRouteImport.update({
|
||||
id: "/settings/preferences",
|
||||
path: "/settings/preferences",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsProfileRoute =
|
||||
DashboardSettingsProfileRouteImport.update({
|
||||
id: "/settings/profile",
|
||||
path: "/settings/profile",
|
||||
getParentRoute: () => DashboardRouteRoute,
|
||||
} as any);
|
||||
const DashboardSettingsAuthenticationIndexRoute =
|
||||
DashboardSettingsAuthenticationIndexRouteImport.update({
|
||||
id: "/settings/authentication/",
|
||||
@@ -394,18 +394,11 @@ export interface RootRouteChildren {
|
||||
|
||||
declare module "@tanstack/react-router" {
|
||||
interface FileRoutesByPath {
|
||||
"/dashboard": {
|
||||
id: "/dashboard";
|
||||
path: "/dashboard";
|
||||
fullPath: "/dashboard";
|
||||
preLoaderRoute: typeof DashboardRouteRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/auth": {
|
||||
id: "/auth";
|
||||
path: "/auth";
|
||||
fullPath: "/auth";
|
||||
preLoaderRoute: typeof AuthRouteRouteImport;
|
||||
"/_home": {
|
||||
id: "/_home";
|
||||
path: "";
|
||||
fullPath: "/";
|
||||
preLoaderRoute: typeof HomeRouteRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/agent": {
|
||||
@@ -415,33 +408,26 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof AgentRouteRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/_home": {
|
||||
id: "/_home";
|
||||
path: "";
|
||||
fullPath: "/";
|
||||
preLoaderRoute: typeof HomeRouteRouteImport;
|
||||
"/auth": {
|
||||
id: "/auth";
|
||||
path: "/auth";
|
||||
fullPath: "/auth";
|
||||
preLoaderRoute: typeof AuthRouteRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/dashboard/": {
|
||||
id: "/dashboard/";
|
||||
path: "/";
|
||||
fullPath: "/dashboard/";
|
||||
preLoaderRoute: typeof DashboardIndexRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
"/dashboard": {
|
||||
id: "/dashboard";
|
||||
path: "/dashboard";
|
||||
fullPath: "/dashboard";
|
||||
preLoaderRoute: typeof DashboardRouteRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/auth/": {
|
||||
id: "/auth/";
|
||||
path: "/";
|
||||
fullPath: "/auth/";
|
||||
preLoaderRoute: typeof AuthIndexRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/agent/": {
|
||||
id: "/agent/";
|
||||
path: "/";
|
||||
fullPath: "/agent/";
|
||||
preLoaderRoute: typeof AgentIndexRouteImport;
|
||||
parentRoute: typeof AgentRouteRoute;
|
||||
"/$username/$slug": {
|
||||
id: "/$username/$slug";
|
||||
path: "/$username/$slug";
|
||||
fullPath: "/$username/$slug";
|
||||
preLoaderRoute: typeof UsernameSlugRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/_home/": {
|
||||
id: "/_home/";
|
||||
@@ -450,67 +436,11 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof HomeIndexRouteImport;
|
||||
parentRoute: typeof HomeRouteRoute;
|
||||
};
|
||||
"/templates/$": {
|
||||
id: "/templates/$";
|
||||
path: "/templates/$";
|
||||
fullPath: "/templates/$";
|
||||
preLoaderRoute: typeof TemplatesSplatRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/auth/verify-2fa-backup": {
|
||||
id: "/auth/verify-2fa-backup";
|
||||
path: "/verify-2fa-backup";
|
||||
fullPath: "/auth/verify-2fa-backup";
|
||||
preLoaderRoute: typeof AuthVerify2faBackupRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/verify-2fa": {
|
||||
id: "/auth/verify-2fa";
|
||||
path: "/verify-2fa";
|
||||
fullPath: "/auth/verify-2fa";
|
||||
preLoaderRoute: typeof AuthVerify2faRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/resume-password": {
|
||||
id: "/auth/resume-password";
|
||||
path: "/resume-password";
|
||||
fullPath: "/auth/resume-password";
|
||||
preLoaderRoute: typeof AuthResumePasswordRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/reset-password": {
|
||||
id: "/auth/reset-password";
|
||||
path: "/reset-password";
|
||||
fullPath: "/auth/reset-password";
|
||||
preLoaderRoute: typeof AuthResetPasswordRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/register": {
|
||||
id: "/auth/register";
|
||||
path: "/register";
|
||||
fullPath: "/auth/register";
|
||||
preLoaderRoute: typeof AuthRegisterRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/login": {
|
||||
id: "/auth/login";
|
||||
path: "/login";
|
||||
fullPath: "/auth/login";
|
||||
preLoaderRoute: typeof AuthLoginRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/forgot-password": {
|
||||
id: "/auth/forgot-password";
|
||||
path: "/forgot-password";
|
||||
fullPath: "/auth/forgot-password";
|
||||
preLoaderRoute: typeof AuthForgotPasswordRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/agent/new": {
|
||||
id: "/agent/new";
|
||||
path: "/new";
|
||||
fullPath: "/agent/new";
|
||||
preLoaderRoute: typeof AgentNewRouteImport;
|
||||
"/agent/": {
|
||||
id: "/agent/";
|
||||
path: "/";
|
||||
fullPath: "/agent/";
|
||||
preLoaderRoute: typeof AgentIndexRouteImport;
|
||||
parentRoute: typeof AgentRouteRoute;
|
||||
};
|
||||
"/agent/$threadId": {
|
||||
@@ -520,12 +450,68 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof AgentThreadIdRouteImport;
|
||||
parentRoute: typeof AgentRouteRoute;
|
||||
};
|
||||
"/$username/$slug": {
|
||||
id: "/$username/$slug";
|
||||
path: "/$username/$slug";
|
||||
fullPath: "/$username/$slug";
|
||||
preLoaderRoute: typeof UsernameSlugRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
"/agent/new": {
|
||||
id: "/agent/new";
|
||||
path: "/new";
|
||||
fullPath: "/agent/new";
|
||||
preLoaderRoute: typeof AgentNewRouteImport;
|
||||
parentRoute: typeof AgentRouteRoute;
|
||||
};
|
||||
"/auth/": {
|
||||
id: "/auth/";
|
||||
path: "/";
|
||||
fullPath: "/auth/";
|
||||
preLoaderRoute: typeof AuthIndexRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/forgot-password": {
|
||||
id: "/auth/forgot-password";
|
||||
path: "/forgot-password";
|
||||
fullPath: "/auth/forgot-password";
|
||||
preLoaderRoute: typeof AuthForgotPasswordRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/login": {
|
||||
id: "/auth/login";
|
||||
path: "/login";
|
||||
fullPath: "/auth/login";
|
||||
preLoaderRoute: typeof AuthLoginRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/register": {
|
||||
id: "/auth/register";
|
||||
path: "/register";
|
||||
fullPath: "/auth/register";
|
||||
preLoaderRoute: typeof AuthRegisterRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/reset-password": {
|
||||
id: "/auth/reset-password";
|
||||
path: "/reset-password";
|
||||
fullPath: "/auth/reset-password";
|
||||
preLoaderRoute: typeof AuthResetPasswordRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/resume-password": {
|
||||
id: "/auth/resume-password";
|
||||
path: "/resume-password";
|
||||
fullPath: "/auth/resume-password";
|
||||
preLoaderRoute: typeof AuthResumePasswordRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/verify-2fa": {
|
||||
id: "/auth/verify-2fa";
|
||||
path: "/verify-2fa";
|
||||
fullPath: "/auth/verify-2fa";
|
||||
preLoaderRoute: typeof AuthVerify2faRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/auth/verify-2fa-backup": {
|
||||
id: "/auth/verify-2fa-backup";
|
||||
path: "/verify-2fa-backup";
|
||||
fullPath: "/auth/verify-2fa-backup";
|
||||
preLoaderRoute: typeof AuthVerify2faBackupRouteImport;
|
||||
parentRoute: typeof AuthRouteRoute;
|
||||
};
|
||||
"/builder/$resumeId": {
|
||||
id: "/builder/$resumeId";
|
||||
@@ -534,19 +520,19 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof BuilderResumeIdRouteRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/dashboard/resumes/": {
|
||||
id: "/dashboard/resumes/";
|
||||
path: "/resumes";
|
||||
fullPath: "/dashboard/resumes/";
|
||||
preLoaderRoute: typeof DashboardResumesIndexRouteImport;
|
||||
"/dashboard/": {
|
||||
id: "/dashboard/";
|
||||
path: "/";
|
||||
fullPath: "/dashboard/";
|
||||
preLoaderRoute: typeof DashboardIndexRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/applications/": {
|
||||
id: "/dashboard/applications/";
|
||||
path: "/applications";
|
||||
fullPath: "/dashboard/applications/";
|
||||
preLoaderRoute: typeof DashboardApplicationsIndexRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
"/templates/$": {
|
||||
id: "/templates/$";
|
||||
path: "/templates/$";
|
||||
fullPath: "/templates/$";
|
||||
preLoaderRoute: typeof TemplatesSplatRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/builder/$resumeId/": {
|
||||
id: "/builder/$resumeId/";
|
||||
@@ -555,32 +541,18 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof BuilderResumeIdIndexRouteImport;
|
||||
parentRoute: typeof BuilderResumeIdRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/profile": {
|
||||
id: "/dashboard/settings/profile";
|
||||
path: "/settings/profile";
|
||||
fullPath: "/dashboard/settings/profile";
|
||||
preLoaderRoute: typeof DashboardSettingsProfileRouteImport;
|
||||
"/dashboard/applications/": {
|
||||
id: "/dashboard/applications/";
|
||||
path: "/applications";
|
||||
fullPath: "/dashboard/applications/";
|
||||
preLoaderRoute: typeof DashboardApplicationsIndexRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/preferences": {
|
||||
id: "/dashboard/settings/preferences";
|
||||
path: "/settings/preferences";
|
||||
fullPath: "/dashboard/settings/preferences";
|
||||
preLoaderRoute: typeof DashboardSettingsPreferencesRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/job-search": {
|
||||
id: "/dashboard/settings/job-search";
|
||||
path: "/settings/job-search";
|
||||
fullPath: "/dashboard/settings/job-search";
|
||||
preLoaderRoute: typeof DashboardSettingsJobSearchRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/danger-zone": {
|
||||
id: "/dashboard/settings/danger-zone";
|
||||
path: "/settings/danger-zone";
|
||||
fullPath: "/dashboard/settings/danger-zone";
|
||||
preLoaderRoute: typeof DashboardSettingsDangerZoneRouteImport;
|
||||
"/dashboard/resumes/": {
|
||||
id: "/dashboard/resumes/";
|
||||
path: "/resumes";
|
||||
fullPath: "/dashboard/resumes/";
|
||||
preLoaderRoute: typeof DashboardResumesIndexRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/api-keys": {
|
||||
@@ -590,6 +562,13 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof DashboardSettingsApiKeysRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/danger-zone": {
|
||||
id: "/dashboard/settings/danger-zone";
|
||||
path: "/settings/danger-zone";
|
||||
fullPath: "/dashboard/settings/danger-zone";
|
||||
preLoaderRoute: typeof DashboardSettingsDangerZoneRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/integrations": {
|
||||
id: "/dashboard/settings/integrations";
|
||||
path: "/settings/integrations";
|
||||
@@ -597,6 +576,27 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof DashboardSettingsIntegrationsRouteRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/job-search": {
|
||||
id: "/dashboard/settings/job-search";
|
||||
path: "/settings/job-search";
|
||||
fullPath: "/dashboard/settings/job-search";
|
||||
preLoaderRoute: typeof DashboardSettingsJobSearchRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/preferences": {
|
||||
id: "/dashboard/settings/preferences";
|
||||
path: "/settings/preferences";
|
||||
fullPath: "/dashboard/settings/preferences";
|
||||
preLoaderRoute: typeof DashboardSettingsPreferencesRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/profile": {
|
||||
id: "/dashboard/settings/profile";
|
||||
path: "/settings/profile";
|
||||
fullPath: "/dashboard/settings/profile";
|
||||
preLoaderRoute: typeof DashboardSettingsProfileRouteImport;
|
||||
parentRoute: typeof DashboardRouteRoute;
|
||||
};
|
||||
"/dashboard/settings/authentication/": {
|
||||
id: "/dashboard/settings/authentication/";
|
||||
path: "/settings/authentication";
|
||||
|
||||
+8
-8
@@ -13,7 +13,7 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/amruthpillai/reactive-resume.git"
|
||||
},
|
||||
"packageManager": "pnpm@11.10.0",
|
||||
"packageManager": "pnpm@11.17.0+sha512.cca3cea332ad254bb84145f966d19f4879615210346fc92c79a047f23a0d7b3cca3c3792f0076ba1f1831d277efbcf0a9119b31a9a60eca7fb3d6231f331ef72",
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
"packages/*",
|
||||
@@ -41,25 +41,25 @@
|
||||
"test:agent": "turbo run test:agent"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.5.3",
|
||||
"@biomejs/biome": "^2.5.5",
|
||||
"@commitlint/cli": "^21.2.1",
|
||||
"@commitlint/config-conventional": "^21.2.0",
|
||||
"@playwright/test": "^1.61.1",
|
||||
"@playwright/test": "^1.62.0",
|
||||
"@reactive-resume/config": "workspace:*",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/jest-dom": "^6.9.1",
|
||||
"@testing-library/jest-dom": "^7.0.0",
|
||||
"@testing-library/react": "^16.3.2",
|
||||
"@testing-library/user-event": "^14.6.1",
|
||||
"@types/node": "^26.1.1",
|
||||
"@types/pg": "^8.20.0",
|
||||
"@vitest/coverage-v8": "^4.1.10",
|
||||
"github-actionlint": "1.7.12",
|
||||
"happy-dom": "^20.10.6",
|
||||
"knip": "^6.25.0",
|
||||
"happy-dom": "^20.11.1",
|
||||
"knip": "^6.29.0",
|
||||
"lefthook": "^2.1.10",
|
||||
"markdownlint-cli2": "0.23.0",
|
||||
"markdownlint-cli2": "0.23.2",
|
||||
"pg": "^8.22.0",
|
||||
"turbo": "^2.10.4",
|
||||
"turbo": "^2.10.7",
|
||||
"typescript": "^7.0.2",
|
||||
"vitest": "^4.1.10"
|
||||
}
|
||||
|
||||
+21
-21
@@ -18,23 +18,23 @@
|
||||
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ai-sdk/anthropic": "^4.0.10",
|
||||
"@ai-sdk/cerebras": "^3.0.6",
|
||||
"@ai-sdk/cohere": "^4.0.6",
|
||||
"@ai-sdk/deepseek": "^3.0.6",
|
||||
"@ai-sdk/fireworks": "^3.0.7",
|
||||
"@ai-sdk/google": "^4.0.10",
|
||||
"@ai-sdk/groq": "^4.0.6",
|
||||
"@ai-sdk/mistral": "^4.0.7",
|
||||
"@ai-sdk/openai": "^4.0.9",
|
||||
"@ai-sdk/openai-compatible": "^3.0.6",
|
||||
"@ai-sdk/perplexity": "^4.0.7",
|
||||
"@ai-sdk/togetherai": "^3.0.7",
|
||||
"@ai-sdk/xai": "^4.0.9",
|
||||
"@aws-sdk/client-s3": "^3.1081.0",
|
||||
"@orpc/client": "^1.14.7",
|
||||
"@orpc/experimental-ratelimit": "^1.14.7",
|
||||
"@orpc/server": "^1.14.7",
|
||||
"@ai-sdk/anthropic": "^4.0.21",
|
||||
"@ai-sdk/cerebras": "^3.0.14",
|
||||
"@ai-sdk/cohere": "^4.0.12",
|
||||
"@ai-sdk/deepseek": "^3.0.13",
|
||||
"@ai-sdk/fireworks": "^3.0.15",
|
||||
"@ai-sdk/google": "^4.0.24",
|
||||
"@ai-sdk/groq": "^4.0.13",
|
||||
"@ai-sdk/mistral": "^4.0.14",
|
||||
"@ai-sdk/openai": "^4.0.20",
|
||||
"@ai-sdk/openai-compatible": "^3.0.14",
|
||||
"@ai-sdk/perplexity": "^4.0.13",
|
||||
"@ai-sdk/togetherai": "^3.0.15",
|
||||
"@ai-sdk/xai": "^4.0.18",
|
||||
"@aws-sdk/client-s3": "^3.1095.0",
|
||||
"@orpc/client": "^1.14.10",
|
||||
"@orpc/experimental-ratelimit": "^1.14.10",
|
||||
"@orpc/server": "^1.14.10",
|
||||
"@reactive-resume/ai": "workspace:*",
|
||||
"@reactive-resume/auth": "workspace:*",
|
||||
"@reactive-resume/db": "workspace:*",
|
||||
@@ -43,15 +43,15 @@
|
||||
"@reactive-resume/resume": "workspace:*",
|
||||
"@reactive-resume/schema": "workspace:*",
|
||||
"@reactive-resume/utils": "workspace:*",
|
||||
"ai": "^7.0.18",
|
||||
"ai": "^7.0.37",
|
||||
"bcrypt": "^6.0.0",
|
||||
"better-auth": "1.6.23",
|
||||
"better-auth": "1.6.25",
|
||||
"drizzle-orm": "1.0.0-rc.4",
|
||||
"drizzle-zod": "1.0.0-beta.14-a36c63d",
|
||||
"es-toolkit": "^1.49.0",
|
||||
"es-toolkit": "^1.50.0",
|
||||
"ioredis": "^5.11.1",
|
||||
"ollama-ai-provider-v2": "^4.0.1",
|
||||
"react": "^19.2.7",
|
||||
"react": "^19.2.8",
|
||||
"resumable-stream": "^2.2.12",
|
||||
"sharp": "^0.35.3",
|
||||
"ts-pattern": "^5.9.0",
|
||||
|
||||
@@ -52,14 +52,14 @@ describe("agent tools", () => {
|
||||
expect(tools).not.toHaveProperty("web_search");
|
||||
});
|
||||
|
||||
it.each([
|
||||
"https://api.openai.com/v1?proxy=1",
|
||||
"https://api.openai.com/v1#fragment",
|
||||
])("does not add provider-native web search for OpenAI providers with non-exact base URL %s", (baseURL) => {
|
||||
const tools = buildTools("openai", { baseURL });
|
||||
it.each(["https://api.openai.com/v1?proxy=1", "https://api.openai.com/v1#fragment"])(
|
||||
"does not add provider-native web search for OpenAI providers with non-exact base URL %s",
|
||||
(baseURL) => {
|
||||
const tools = buildTools("openai", { baseURL });
|
||||
|
||||
expect(tools).not.toHaveProperty("web_search");
|
||||
});
|
||||
expect(tools).not.toHaveProperty("web_search");
|
||||
},
|
||||
);
|
||||
|
||||
it("does not add provider-native web search for unsupported OpenAI models", () => {
|
||||
const tools = buildTools("openai", { model: "custom-model" });
|
||||
@@ -67,18 +67,14 @@ describe("agent tools", () => {
|
||||
expect(tools).not.toHaveProperty("web_search");
|
||||
});
|
||||
|
||||
it.each<AIProvider>([
|
||||
"anthropic",
|
||||
"gemini",
|
||||
"vercel-ai-gateway",
|
||||
"openrouter",
|
||||
"ollama",
|
||||
"openai-compatible",
|
||||
])("does not add provider-native web search for %s", (provider) => {
|
||||
const tools = buildTools(provider);
|
||||
it.each<AIProvider>(["anthropic", "gemini", "vercel-ai-gateway", "openrouter", "ollama", "openai-compatible"])(
|
||||
"does not add provider-native web search for %s",
|
||||
(provider) => {
|
||||
const tools = buildTools(provider);
|
||||
|
||||
expect(tools).not.toHaveProperty("web_search");
|
||||
});
|
||||
expect(tools).not.toHaveProperty("web_search");
|
||||
},
|
||||
);
|
||||
|
||||
it("keeps instructions explicit about native search availability", () => {
|
||||
expect(buildAgentInstructions({ hasProviderNativeSearch: true })).toContain("Use web_search");
|
||||
|
||||
@@ -15,20 +15,20 @@
|
||||
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
|
||||
},
|
||||
"dependencies": {
|
||||
"@better-auth/api-key": "^1.6.23",
|
||||
"@better-auth/drizzle-adapter": "^1.6.23",
|
||||
"@better-auth/infra": "^0.3.5",
|
||||
"@better-auth/oauth-provider": "^1.6.23",
|
||||
"@better-auth/passkey": "^1.6.23",
|
||||
"@better-auth/api-key": "^1.6.25",
|
||||
"@better-auth/drizzle-adapter": "^1.6.25",
|
||||
"@better-auth/infra": "^0.3.7",
|
||||
"@better-auth/oauth-provider": "^1.6.25",
|
||||
"@better-auth/passkey": "^1.6.25",
|
||||
"@reactive-resume/db": "workspace:*",
|
||||
"@reactive-resume/email": "workspace:*",
|
||||
"@reactive-resume/env": "workspace:*",
|
||||
"@reactive-resume/utils": "workspace:*",
|
||||
"bcrypt": "^6.0.0",
|
||||
"better-auth": "1.6.23",
|
||||
"better-auth": "1.6.25",
|
||||
"drizzle-orm": "1.0.0-rc.4",
|
||||
"jose": "^6.2.3",
|
||||
"react": "^19.2.7"
|
||||
"jose": "^6.2.4",
|
||||
"react": "^19.2.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@reactive-resume/config": "workspace:*",
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
"dependencies": {
|
||||
"@reactive-resume/env": "workspace:*",
|
||||
"nodemailer": "^9.0.3",
|
||||
"react": "^19.2.7",
|
||||
"react-email": "^6.6.8"
|
||||
"react": "^19.2.8",
|
||||
"react-email": "^6.9.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@react-email/ui": "^6.6.8",
|
||||
"@react-email/ui": "^6.9.1",
|
||||
"@reactive-resume/config": "workspace:*",
|
||||
"@types/nodemailer": "^8.0.1",
|
||||
"@types/react": "^19.2.17",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@modelcontextprotocol/sdk": "^1.29.0",
|
||||
"@orpc/server": "^1.14.7",
|
||||
"@orpc/server": "^1.14.10",
|
||||
"@reactive-resume/ai": "workspace:*",
|
||||
"@reactive-resume/api": "workspace:*",
|
||||
"@reactive-resume/env": "workspace:*",
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"cjk-regex": "^3.4.0",
|
||||
"node-html-parser": "^9.0.0",
|
||||
"phosphor-icons-react-pdf": "^0.1.3",
|
||||
"react": "^19.2.7",
|
||||
"react": "^19.2.8",
|
||||
"react-pdf-html": "^2.1.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -27,21 +27,22 @@ describe("rich text template styles", () => {
|
||||
expect(richListItemContentBlock?.groups?.body).not.toMatch(/\blineHeight:/);
|
||||
});
|
||||
|
||||
it.each(
|
||||
templatePageFiles.map((file) => [basename(file), file]),
|
||||
)("%s keeps list item rich text on the global body line height", (_name, file) => {
|
||||
const source = readFileSync(file, "utf8");
|
||||
it.each(templatePageFiles.map((file) => [basename(file), file]))(
|
||||
"%s keeps list item rich text on the global body line height",
|
||||
(_name, file) => {
|
||||
const source = readFileSync(file, "utf8");
|
||||
|
||||
if (source.includes("createBaseTemplateStyles")) {
|
||||
// Factory handles richListItemContent; guard is on the factory test above.
|
||||
expect(source).toContain("createBaseTemplateStyles");
|
||||
return;
|
||||
}
|
||||
if (source.includes("createBaseTemplateStyles")) {
|
||||
// Factory handles richListItemContent; guard is on the factory test above.
|
||||
expect(source).toContain("createBaseTemplateStyles");
|
||||
return;
|
||||
}
|
||||
|
||||
// Legacy: template defines richListItemContent inline — no lineHeight override allowed.
|
||||
const richListItemContentBlock = source.match(/richListItemContent:\s*{(?<body>[\s\S]*?)^\s*},/m);
|
||||
expect(richListItemContentBlock?.groups?.body).toBeDefined();
|
||||
expect(richListItemContentBlock?.groups?.body).toContain("...bodyText");
|
||||
expect(richListItemContentBlock?.groups?.body).not.toMatch(/\blineHeight:/);
|
||||
});
|
||||
// Legacy: template defines richListItemContent inline — no lineHeight override allowed.
|
||||
const richListItemContentBlock = source.match(/richListItemContent:\s*{(?<body>[\s\S]*?)^\s*},/m);
|
||||
expect(richListItemContentBlock?.groups?.body).toBeDefined();
|
||||
expect(richListItemContentBlock?.groups?.body).toContain("...bodyText");
|
||||
expect(richListItemContentBlock?.groups?.body).not.toMatch(/\blineHeight:/);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@base-ui/react": "^1.6.0",
|
||||
"@fontsource-variable/ibm-plex-sans": "^5.2.8",
|
||||
"@fontsource-variable/ibm-plex-sans": "^5.3.0",
|
||||
"@phosphor-icons/react": "^2.1.10",
|
||||
"@phosphor-icons/web": "^2.1.2",
|
||||
"@reactive-resume/utils": "workspace:*",
|
||||
@@ -27,22 +27,22 @@
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"cmdk": "^1.1.1",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "^19.2.7",
|
||||
"react-dom": "^19.2.7",
|
||||
"react-resizable-panels": "^4.12.1",
|
||||
"shadcn": "^4.13.0",
|
||||
"react": "^19.2.8",
|
||||
"react-dom": "^19.2.8",
|
||||
"react-resizable-panels": "^4.12.2",
|
||||
"shadcn": "^4.15.0",
|
||||
"sonner": "^2.0.7",
|
||||
"tw-animate-css": "^1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@reactive-resume/config": "workspace:*",
|
||||
"@tailwindcss/postcss": "^4.3.2",
|
||||
"@tailwindcss/postcss": "^4.3.3",
|
||||
"@tailwindcss/typography": "^0.5.20",
|
||||
"@types/react": "^19.2.17",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
||||
"postcss": "^8.5.16",
|
||||
"tailwindcss": "^4.3.2",
|
||||
"postcss": "^8.5.23",
|
||||
"tailwindcss": "^4.3.3",
|
||||
"typescript": "^7.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,15 +14,13 @@ describe("Badge", () => {
|
||||
expect(screen.getByText("x")).toHaveClass("my-extra");
|
||||
});
|
||||
|
||||
it.each([
|
||||
["default"],
|
||||
["secondary"],
|
||||
["destructive"],
|
||||
["outline"],
|
||||
] as const)("renders variant=%s without throwing", (variant) => {
|
||||
render(<Badge variant={variant}>{variant}</Badge>);
|
||||
expect(screen.getByText(variant)).toBeInTheDocument();
|
||||
});
|
||||
it.each([["default"], ["secondary"], ["destructive"], ["outline"]] as const)(
|
||||
"renders variant=%s without throwing",
|
||||
(variant) => {
|
||||
render(<Badge variant={variant}>{variant}</Badge>);
|
||||
expect(screen.getByText(variant)).toBeInTheDocument();
|
||||
},
|
||||
);
|
||||
|
||||
it("forwards aria attributes", () => {
|
||||
render(<Badge aria-label="status indicator">3</Badge>);
|
||||
|
||||
@@ -52,31 +52,21 @@ describe("Button", () => {
|
||||
expect(screen.getByRole("button")).toBeDisabled();
|
||||
});
|
||||
|
||||
it.each([
|
||||
["default"],
|
||||
["outline"],
|
||||
["secondary"],
|
||||
["ghost"],
|
||||
["destructive"],
|
||||
["link"],
|
||||
] as const)("renders variant=%s without throwing", (variant) => {
|
||||
render(<Button variant={variant}>x</Button>);
|
||||
expect(screen.getByRole("button")).toBeInTheDocument();
|
||||
});
|
||||
it.each([["default"], ["outline"], ["secondary"], ["ghost"], ["destructive"], ["link"]] as const)(
|
||||
"renders variant=%s without throwing",
|
||||
(variant) => {
|
||||
render(<Button variant={variant}>x</Button>);
|
||||
expect(screen.getByRole("button")).toBeInTheDocument();
|
||||
},
|
||||
);
|
||||
|
||||
it.each([
|
||||
["default"],
|
||||
["xs"],
|
||||
["sm"],
|
||||
["lg"],
|
||||
["icon"],
|
||||
["icon-xs"],
|
||||
["icon-sm"],
|
||||
["icon-lg"],
|
||||
] as const)("renders size=%s without throwing", (size) => {
|
||||
render(<Button size={size}>x</Button>);
|
||||
expect(screen.getByRole("button")).toBeInTheDocument();
|
||||
});
|
||||
it.each([["default"], ["xs"], ["sm"], ["lg"], ["icon"], ["icon-xs"], ["icon-sm"], ["icon-lg"]] as const)(
|
||||
"renders size=%s without throwing",
|
||||
(size) => {
|
||||
render(<Button size={size}>x</Button>);
|
||||
expect(screen.getByRole("button")).toBeInTheDocument();
|
||||
},
|
||||
);
|
||||
|
||||
it("forwards aria-label", () => {
|
||||
render(<Button aria-label="Close">×</Button>);
|
||||
|
||||
Generated
+2387
-2050
File diff suppressed because it is too large
Load Diff
@@ -15,6 +15,6 @@
|
||||
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
||||
"drizzle-orm": "1.0.0-rc.4",
|
||||
"pg": "^8.22.0",
|
||||
"tsx": "^4.23.0"
|
||||
"tsx": "^4.23.1"
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "https://turbo.build/schema.json",
|
||||
"$schema": "https://v2-10-7.turborepo.dev/schema.json",
|
||||
"ui": "stream",
|
||||
"boundaries": {
|
||||
"dependencies": {
|
||||
|
||||
Reference in New Issue
Block a user