A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility.
This report summarizes scanner evidence for refinedev/refine, a TypeScript project with 35,970 GitHub stars. SynthScan examined 1,278,335 lines of code across 10235 source files, recording 1031 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 255 finding(s).
Are imports declared and package/API names verified? 770 finding(s).
Are wrappers, guards, and repeated structures necessary? 53 finding(s).
Which changes need focused human review? 1031 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1031 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ntation/tutorial/authentication/user-identity/index.md | 96 | For the purpose of demonstration, our fake REST API returns "John Doe" as the user's name, regardless of the token sent. | CODE |
| LOW | …umentation/docs/audit-logs/audit-log-provider/index.md | 282 | console.log(author); // { id: "1", name: "John Doe" } | CODE |
| LOW | documentation/docs/guides-concepts/audit-logs/index.md | 45 | console.log(author); // { id: "1", name: "John Doe" } | CODE |
| LOW | …ocs/guides-concepts/general-concepts/layout/chakra.tsx | 66 | name: "John Doe", | CODE |
| LOW | …cs/guides-concepts/general-concepts/layout/mantine.tsx | 76 | name: "John Doe", | CODE |
| LOW | …n/docs/guides-concepts/general-concepts/layout/mui.tsx | 71 | name: "John Doe", | CODE |
| LOW | …/docs/guides-concepts/general-concepts/layout/antd.tsx | 60 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …guides-concepts/general-concepts/auth-pages/chakra.tsx | 74 | name: "John Doe", | CODE |
| LOW | …uides-concepts/general-concepts/auth-pages/mantine.tsx | 81 | name: "John Doe", | CODE |
| LOW | …ides-concepts/general-concepts/auth-pages/headless.tsx | 61 | name: "John Doe", | CODE |
| LOW | …cs/guides-concepts/general-concepts/auth-pages/mui.tsx | 86 | name: "John Doe", | CODE |
| LOW | …s/guides-concepts/general-concepts/auth-pages/antd.tsx | 75 | name: "John Doe", | CODE |
| LOW | …des-concepts/authentication/auth-provider-interface.md | 80 | name: "Jane Doe", | CODE |
| LOW | …s/guides-concepts/authentication/auth-pages/chakra.tsx | 74 | name: "John Doe", | CODE |
| LOW | …/guides-concepts/authentication/auth-pages/mantine.tsx | 85 | name: "John Doe", | CODE |
| LOW | …guides-concepts/authentication/auth-pages/headless.tsx | 61 | name: "John Doe", | CODE |
| LOW | …docs/guides-concepts/authentication/auth-pages/mui.tsx | 86 | name: "John Doe", | CODE |
| LOW | …ocs/guides-concepts/authentication/auth-pages/antd.tsx | 75 | name: "John Doe", | CODE |
| LOW | …s/advanced-tutorials/data-provider/handling-filters.md | 101 | value: "John Doe", | CODE |
| LOW | …s/advanced-tutorials/data-provider/handling-filters.md | 148 | value: "John Doe", | CODE |
| LOW | …s/advanced-tutorials/data-provider/handling-filters.md | 163 | value: "Jane Doe", | CODE |
| LOW | documentation/docs/getting-started/example/sandpack.tsx | 267 | name: "John Doe", | CODE |
| LOW | …tation/docs/packages/tanstack-table/use-table/index.md | 82 | value: "John Doe", | CODE |
| LOW | …tation/docs/packages/tanstack-table/use-table/index.md | 90 | console.log(nameFilterValue); // "John Doe" | CODE |
| LOW⚡ | …outing/integrations/next-js/provider-client-server.tsx | 241 | name: "John Doe", | CODE |
| LOW⚡ | …outing/integrations/next-js/provider-client-server.tsx | 247 | name: "Jane Doe", | CODE |
| LOW⚡ | …outing/integrations/next-js/provider-client-server.tsx | 253 | name: "Jane Doe", | CODE |
| LOW | documentation/docs/data/hooks/use-table/index.md | 88 | value: "John Doe", | CODE |
| LOW | documentation/docs/data/hooks/use-table/index.md | 95 | console.log(nameFilterValue); // "John Doe" | CODE |
| LOW | documentation/docs/data/packages/supabase/index.md | 1476 | content: "Lorem ipsum dolor sit amet", | CODE |
| LOW | documentation/docs/data/packages/supabase/index.md | 1476 | content: "Lorem ipsum dolor sit amet", | CODE |
| LOW | …on/docs/authentication/hooks/use-get-identity/index.md | 32 | fullName: "Jane Doe", | CODE |
| LOW | …ra-ui/introduction/previews/usage-react-router-dom.tsx | 82 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ions/chakra-ui/introduction/previews/usage-next-js.tsx | 82 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …tegrations/chakra-ui/introduction/previews/theming.tsx | 94 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …grations/chakra-ui/introduction/previews/auth-page.tsx | 78 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ations/chakra-ui/introduction/previews/usage-remix.tsx | 84 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …tegrations/chakra-ui/introduction/previews/example.tsx | 82 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …tegrations/chakra-ui/components/themed-layout/index.md | 29 | name: "Jane Doe", | CODE |
| LOW | …al-ui/introduction/previews/usage-react-router-dom.tsx | 82 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ns/material-ui/introduction/previews/usage-next-js.tsx | 82 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …grations/material-ui/introduction/previews/theming.tsx | 92 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ations/material-ui/introduction/previews/auth-page.tsx | 80 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ions/material-ui/introduction/previews/usage-remix.tsx | 87 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …grations/material-ui/introduction/previews/example.tsx | 81 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …grations/material-ui/components/themed-layout/index.md | 29 | name: "Jane Doe", | CODE |
| LOW | …-integrations/material-ui/hooks/use-data-grid/index.md | 250 | value: "John Doe", | CODE |
| LOW | …-integrations/material-ui/hooks/use-data-grid/index.md | 257 | console.log(nameFilterValue); // "John Doe" | CODE |
| LOW | …ntine/introduction/previews/usage-react-router-dom.tsx | 81 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ations/mantine/introduction/previews/usage-next-js.tsx | 81 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …integrations/mantine/introduction/previews/theming.tsx | 91 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …tegrations/mantine/introduction/previews/auth-page.tsx | 79 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …grations/mantine/introduction/previews/usage-remix.tsx | 86 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …integrations/mantine/introduction/previews/example.tsx | 80 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …integrations/mantine/components/themed-layout/index.md | 29 | name: "Jane Doe", | CODE |
| LOW | …esign/introduction/previews/usage-react-router-dom.tsx | 74 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …ons/ant-design/introduction/previews/usage-next-js.tsx | 74 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …sign/introduction/previews/layout-react-router-dom.tsx | 64 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …egrations/ant-design/introduction/previews/theming.tsx | 84 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| LOW | …rations/ant-design/introduction/previews/auth-page.tsx | 72 | getIdentity: async () => ({ id: 1, name: "John Doe", avatar: "https://i.pravatar.cc/300"}) | CODE |
| 699 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/docs/ui-integrations/shadcn/components/forms/index.md | 48 | ## Step 1: Installation | COMMENT |
| LOW | …/docs/ui-integrations/shadcn/components/forms/index.md | 62 | ## Step 2: Understanding the Hook | COMMENT |
| LOW | …/docs/ui-integrations/shadcn/components/forms/index.md | 71 | ## Step 3: Define Your Schema | COMMENT |
| LOW | …/docs/ui-integrations/shadcn/components/forms/index.md | 89 | ## Step 4: Create a Form | COMMENT |
| LOW | …/docs/ui-integrations/shadcn/components/forms/index.md | 236 | ## Step 5: Creating Edit Forms | COMMENT |
| LOW | …/docs/ui-integrations/shadcn/components/forms/index.md | 392 | ## Step 6: Working with Relationships | COMMENT |
| LOW | …umentation/blog/2025-11-12-admin-panel-in-5-minutes.md | 46 | ### Step 1: Create the project | COMMENT |
| LOW | …umentation/blog/2025-11-12-admin-panel-in-5-minutes.md | 54 | ### Step 2: Let the AI Analyze Your Database | COMMENT |
| LOW | …umentation/blog/2025-11-12-admin-panel-in-5-minutes.md | 67 | ### Step 3: Generate production-ready code | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 61 | ### Step 1 - Navigate to the site you want to audit | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 65 | ### Step 2 - Open Chrome DevTools | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 73 | ### Step 3 - Select categories to audit | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 79 | ### Step 4 - Run the audit | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 83 | ### Step 5 - Interpret the audit results | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 213 | ### Step 1 - Navigate to the website you want to audit | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 217 | ### Step 2 - Open the extension popup | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 221 | ### Step 3 - Select the categories to audit | COMMENT |
| LOW⚡ | documentation/blog/2024-05-24-google-lighthouse.md | 225 | ### Step 4 - Generate report | COMMENT |
| LOW | documentation/blog/2024-05-24-google-lighthouse.md | 253 | ### Step 1 - Create GitHub Actions workflow directory | COMMENT |
| LOW | documentation/blog/2024-05-24-google-lighthouse.md | 257 | ### Step 2 - Create GitHub Actions workflow file | COMMENT |
| LOW | documentation/blog/2024-05-24-google-lighthouse.md | 294 | ### Step 3 - Push the changes to GitHub | COMMENT |
| LOW | documentation/blog/2024-10-22-astro-js.md | 680 | ### Step 3: Handling Dynamic Queries | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 23 | ## Step 1: Create a Supabase Project | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 48 | ## Step 2: Understanding the Table Editor | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 76 | ## Step 3: Create Your First Table | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 102 | ## Step 4: Add a Related Table | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 127 | ## Step 5: Insert Sample Data | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 152 | ## Step 6: Explore the SQL Editor | COMMENT |
| LOW | documentation/blog/2025-11-17-supabase-tutorial.md | 190 | ## Step 7: Enable APIs and Policies | COMMENT |
| LOW | …tation/blog/2022-05-23-build-access-control-permify.md | 26 | ### Step 1: Setup the Permify in Refine application | COMMENT |
| LOW | …tation/blog/2022-05-23-build-access-control-permify.md | 56 | ### Step 2: Create a access control mechanism in Refine Access Control Provider | COMMENT |
| LOW | …tation/blog/2022-05-23-build-access-control-permify.md | 86 | ### Step 3: Run application & Create Resources | COMMENT |
| LOW | …tation/blog/2022-05-23-build-access-control-permify.md | 102 | ### Step 4: Define access control rules & options on Permify | COMMENT |
| LOW | …tation/blog/2022-05-23-build-access-control-permify.md | 141 | ### Step 5: Creating rule sets (Options) | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 48 | ### Step 1: Create the project | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 60 | ### Step 2: Connect your API | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 97 | ### Step 3: Add resources | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 136 | ### Step 4: Build the dashboard page | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 219 | ### Step 5: Add authentication and permissions | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 238 | ### Step 6: Theme it to match your brand | COMMENT |
| LOW | …blog/2026-02-11-how-to-create-react-admin-dashboard.md | 244 | ### Step 7: Launch and iterate | COMMENT |
| LOW | documentation/blog/2024-01-09-permify-access-control.md | 25 | ## Step 1: Setup the Permify in Refine application | COMMENT |
| LOW | documentation/blog/2024-01-09-permify-access-control.md | 67 | ## Step 2: Create an access control mechanism in Refine Access Control Provider | COMMENT |
| LOW | documentation/blog/2024-01-09-permify-access-control.md | 112 | ## Step 3: Create an access control model with Permify & Initialize Permify Client | COMMENT |
| LOW | documentation/blog/2024-01-09-permify-access-control.md | 253 | ## Step 4: Create Authorization Data to check user accesses. | COMMENT |
| LOW | documentation/blog/2024-01-09-permify-access-control.md | 366 | ## Step 5: Creating more advanced permissions (Options) | COMMENT |
| LOW | documentation/blog/2024-12-12-router-use-params.md | 39 | ### Step 1 - Install React Router | COMMENT |
| LOW | documentation/blog/2024-12-12-router-use-params.md | 54 | ### Step 2 - How to set up React router | COMMENT |
| LOW | documentation/blog/2024-12-12-router-use-params.md | 75 | ### Step 3 - How to set up routes | COMMENT |
| LOW | documentation/blog/2024-10-30-react-context.md | 882 | // Step 1: Create the Context | COMMENT |
| LOW | documentation/blog/2024-10-30-react-context.md | 885 | // Step 2: Set up the Provider component | COMMENT |
| LOW | documentation/blog/2024-10-30-react-context.md | 899 | // Step 3: Create a custom hook | COMMENT |
| LOW | documentation/blog/2022-08-24-mui-icons.md | 59 | ### Step 1 - Install the Material UI Library | COMMENT |
| LOW | documentation/blog/2022-08-24-mui-icons.md | 85 | ### Step 2 - Install the Material UI Icons package | COMMENT |
| LOW | documentation/blog/2022-08-24-mui-icons.md | 117 | ### Step 3 - Import the Icons | COMMENT |
| LOW | documentation/blog/2022-08-24-mui-icons.md | 148 | ### Step 4 - Displaying the icon on the DOM | COMMENT |
| LOW⚡ | documentation/blog/2024-07-16-top-hosting.md | 60 | ### Step 1 - Create a simple Refine application | COMMENT |
| LOW⚡ | documentation/blog/2024-07-16-top-hosting.md | 70 | ### Step 2 - Navigate to the project directory | COMMENT |
| LOW⚡ | documentation/blog/2024-07-16-top-hosting.md | 80 | ### Step 3 - Launch the development server | COMMENT |
| LOW | documentation/blog/2024-07-16-top-hosting.md | 123 | ##### Step 1 - Install the Vercel command line tool | COMMENT |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | documentation/blog/2026-02-24-vibe-coding.md | 90 | **Debugging AI-generated code.** This is the sleeper issue. When something breaks in code you wrote, you have mental con | CODE |
| HIGH | documentation/blog/2023-09-06-daisy-ui-panel.md | 1655 | 2. Navigate along the `/products` path to an action route in your browser and get the code from the page by clicking on | CODE |
| HIGH | documentation/blog/2023-09-06-daisy-ui-panel.md | 1806 | We'll grab the generated code from the page modal by clicking on the `Show the auto-generated code` button. It is pretty | CODE |
| HIGH | …entation/blog/2026-04-01-how-to-develop-app-with-ai.md | 122 | **Security testing.** Run your code through static analysis tools. Check for the [OWASP Top 10](https://owasp.org/www-pr | CODE |
| HIGH | …entation/blog/2026-04-01-how-to-develop-app-with-ai.md | 186 | ### Is AI-generated code secure? | COMMENT |
| HIGH | …entation/blog/2026-04-01-how-to-develop-app-with-ai.md | 190 | ### Will AI-generated code become harder to maintain over time? | COMMENT |
| HIGH | …l/1-getting-started/chakra-ui/3-generate-crud-pages.md | 19 | 2. Inferencer generates code that is easy to customize. Instead of starting from scratch, you can use the auto-generated | CODE |
| HIGH | …ial/1-getting-started/mantine/3-generate-crud-pages.md | 19 | 2. Inferencer generates code that is easy to customize. Instead of starting from scratch, you can use the auto-generated | CODE |
| HIGH | …utorial/1-getting-started/mui/3-generate-crud-pages.md | 19 | 2. Inferencer generates code that is easy to customize. Instead of starting from scratch, you can use the auto-generated | CODE |
| HIGH | …torial/1-getting-started/antd/3-generate-crud-pages.md | 19 | 2. Inferencer generates code that is easy to customize. Instead of starting from scratch, you can use the auto-generated | CODE |
| HIGH | …al/1-getting-started/headless/3-generate-crud-pages.md | 22 | 2. Inferencer generates code that is easy to customize. Instead of starting from scratch, you can use the auto-generated | CODE |
| HIGH | …inferencer/src/components/shared-code-viewer/index.tsx | 211 | <span>Show the auto-generated code</span> | CODE |
| HIGH | …inferencer/src/components/shared-code-viewer/index.tsx | 294 | Auto-generated code by Inferencer | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ages/codemod/src/transformations/refine2-to-refine3.ts | 570 | const setEditIdProperty = path.parentPath.node.id.properties.find( | CODE |
| CRITICAL | …ages/codemod/src/transformations/refine2-to-refine3.ts | 578 | const editIdProperty = path.parentPath.node.id.properties.find( | CODE |
| CRITICAL⚡ | …/codemod/src/transformations/v4/fix-v4-deprecations.ts | 1048 | const setSorterProperty = path.parentPath.node.id.properties.find( | CODE |
| CRITICAL⚡ | …/codemod/src/transformations/v4/fix-v4-deprecations.ts | 1056 | const sorterPropery = path.parentPath.node.id.properties.find( | CODE |
| CRITICAL⚡ | …/codemod/src/transformations/v4/fix-v4-deprecations.ts | 1060 | const sortersProperty = path.parentPath.node.id.properties.find( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/tailwind.config.js | 401 | "new-badge-border-dark": | COMMENT |
| LOW | documentation/tailwind.config.js | 421 | #4D0099, | COMMENT |
| LOW | documentation/k8s/refine-documentation/Chart.yaml | 1 | apiVersion: v2 | COMMENT |
| LOW | documentation/k8s/refine-documentation/Chart.yaml | 21 | # incremented each time you make changes to the application. Versions are not expected to | COMMENT |
| LOW | …ntation/docs/data/packages/rest-data-provider/index.md | 441 | // "error": "Validation failed", | COMMENT |
| LOW | …ntation/docs/data/packages/rest-data-provider/index.md | 601 | // API returns: { "data": { "id": 123, "title": "Updated Title" } } | COMMENT |
| LOW | examples/i18n-nextjs/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/template-material-ui/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/tutorial-mantine/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/with-nextjs/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/app-crm-minimal/README.MD | 301 | }, | COMMENT |
| LOW | examples/blog-sveltekit-crud/src/app.d.ts | 1 | // See https://kit.svelte.dev/docs/types#app | COMMENT |
| LOW | examples/template-mantine/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/mern-dashboard-client/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-react-dnd/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-refine-react-hook-form/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/with-web3/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/with-remix-material-ui/remix.env.d.ts | 1 | /// <reference types="@remix-run/dev" /> | COMMENT |
| LOW | examples/tutorial-chakra-ui/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-responsive-navbar/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-react-hook-dynamic-form/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-ecommerce/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/blog-react-memoization-memo/src/setupTests.js | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/finefoods-client/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/with-remix-auth/remix.env.d.ts | 1 | /// <reference types="@remix-run/dev" /> | COMMENT |
| LOW | examples/with-remix-vite-headless/env.d.ts | 1 | /// <reference types="vite/client" /> | COMMENT |
| LOW | examples/blog-react-aria/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/template-headless/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/with-remix-antd/remix.env.d.ts | 1 | /// <reference types="@remix-run/dev" /> | COMMENT |
| LOW | examples/with-nextjs-next-auth/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/tutorial-material-ui/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-refine-airtable-crud/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | …amples/blog-refine-antd-dynamic-form/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/tutorial-headless/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-heroicons-example/src/setupTests.js | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/with-remix-headless/remix.env.d.ts | 1 | /// <reference types="@remix-run/dev" /> | COMMENT |
| LOW | examples/template-chakra-ui/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/blog-material-ui/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/tutorial-antd/src/setupTests.ts | 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. | COMMENT |
| LOW | examples/store/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/blog-next-refine-pwa/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | packages/core/src/contexts/data/types.ts | 241 | queryKey: QueryKey; | COMMENT |
| LOW | packages/refine-ui/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | packages/mui/src/components/buttons/show/index.tsx | 41 | if (isHidden) return null; | COMMENT |
| LOW | packages/mui/src/components/buttons/edit/index.tsx | 41 | if (isHidden) return null; | COMMENT |
| LOW | packages/mui/src/components/buttons/clone/index.tsx | 41 | COMMENT | |
| LOW | packages/mui/src/components/buttons/list/index.tsx | 41 | // `startIcon` is extracted from rest props so it doesn't get passed to the | COMMENT |
| LOW | packages/mui/src/components/buttons/create/index.tsx | 41 | COMMENT | |
| LOW | packages/appwrite/test/getList/index.mock.ts | 921 | // "queries%5B2%5D": "limit%2810%29", | COMMENT |
| LOW | packages/appwrite/test/getList/index.mock.ts | 941 | // $id: "health-and-fitness", | COMMENT |
| LOW | packages/appwrite/test/getList/index.mock.ts | 961 | // "Access-Control-Allow-Origin", | COMMENT |
| LOW | packages/appwrite/test/getList/index.mock.ts | 981 | // "Connection", | COMMENT |
| LOW | packages/devtools-ui/src/components/sidebar.tsx | 301 | // path: "/resource-viewer", | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | documentation/plugins/blog-plugin.js | 222 | function sortBlogPostsByDateDescending(blogPosts) { | CODE |
| LOW | documentation/plugins/blog-plugin.js | 988 | async function createCategoryPostsListPage(category) { | CODE |
| LOW | …/guides-concepts/forms/server-side-validation-core.tsx | 4 | export default function ServerSideValidationReactHookForm() { | CODE |
| LOW | …ides-concepts/forms/server-side-validation-mantine.tsx | 4 | export default function ServerSideValidationMantine() { | CODE |
| LOW | …es-concepts/forms/server-side-validation-chakra-ui.tsx | 4 | export default function ServerSideValidationChakraUi() { | CODE |
| LOW | …cepts/forms/server-side-validation-react-hook-form.tsx | 4 | export default function ServerSideValidationReactHookForm() { | CODE |
| LOW | …-concepts/routing/nextjs/resource-and-routes-usage.tsx | 4 | export function NextJSResourceAndRoutesUsage() { | CODE |
| LOW | …s-concepts/routing/remix/resource-and-routes-usage.tsx | 4 | export function RemixResourceAndRoutesUsage() { | CODE |
| LOW | …pts/routing/react-router/resource-and-routes-usage.tsx | 4 | export function ReactRouterResourceAndRoutesUsage() { | CODE |
| LOW | …concepts/routing/react-router/use-modal-form-usage.tsx | 4 | export function ReactRouterUseModalFormUsage() { | CODE |
| LOW | …outing/integrations/next-js/provider-client-server.tsx | 4 | export function NextJSAppProviderServerClient() { | CODE |
| LOW | documentation/blog/2024-11-12-react-date-picker.md | 924 | function DatePickerWithTranslation() { | CODE |
| LOW | documentation/blog/2024-08-15-react-web-socket.md | 306 | function handleClientDisconnection(userId) { | CODE |
| LOW | documentation/blog/2025-08-15-comments-in-code.md | 162 | function filterItemsByUserPermissions(items, permissions) { | CODE |
| LOW | …/guides-concepts/forms/server-side-validation-core.tsx | 4 | export default function ServerSideValidationReactHookForm() { | CODE |
| LOW | …ides-concepts/forms/server-side-validation-mantine.tsx | 4 | export default function ServerSideValidationMantine() { | CODE |
| LOW | …es-concepts/forms/server-side-validation-chakra-ui.tsx | 4 | export default function ServerSideValidationChakraUi() { | CODE |
| LOW | …cepts/forms/server-side-validation-react-hook-form.tsx | 4 | export default function ServerSideValidationReactHookForm() { | CODE |
| LOW | …-concepts/routing/nextjs/resource-and-routes-usage.tsx | 4 | export function NextJSResourceAndRoutesUsage() { | CODE |
| LOW | …s-concepts/routing/remix/resource-and-routes-usage.tsx | 4 | export function RemixResourceAndRoutesUsage() { | CODE |
| LOW | …pts/routing/react-router/resource-and-routes-usage.tsx | 4 | export function ReactRouterResourceAndRoutesUsage() { | CODE |
| LOW | …concepts/routing/react-router/use-modal-form-usage.tsx | 4 | export function ReactRouterUseModalFormUsage() { | CODE |
| LOW | …outing/integrations/next-js/provider-client-server.tsx | 4 | export function NextJSAppProviderServerClient() { | CODE |
| LOW | …ntation/src/refine-theme/landing-doc-search-button.tsx | 9 | >(function LandingDocSearchButtonComponent({ className, ...props }, ref) { | CODE |
| LOW | documentation/src/refine-theme/doc-card-list.tsx | 9 | function DocCardListForCurrentSidebarCategory({ className }) { | CODE |
| LOW | …entation/src/refine-theme/doc-generated-index-page.tsx | 15 | function DocCategoryGeneratedIndexPageMetadata({ categoryGeneratedIndex }) { | CODE |
| LOW | …entation/src/refine-theme/doc-generated-index-page.tsx | 27 | function DocCategoryGeneratedIndexPageContent({ categoryGeneratedIndex }) { | CODE |
| LOW | documentation/src/theme/BlogCategoryPostsPage/index.js | 17 | function BlogCategoryPostsPageMetadata(props) { | CODE |
| LOW | documentation/src/theme/BlogCategoryPostsPage/index.js | 53 | function BlogCategoryPostsPageContent(props) { | CODE |
| LOW | documentation/src/theme/SearchPage/index.js | 43 | function useDocsSearchVersionsHelpers() { | CODE |
| LOW | documentation/src/theme/BlogTagsPostsPage/index.js | 34 | function useBlogTagsPostsPageTitle(tag) { | CODE |
| LOW | documentation/src/theme/BlogTagsPostsPage/index.js | 58 | function BlogTagsPostsPageMetadata({ tag }) { | CODE |
| LOW | documentation/src/theme/Admonition/index.tsx | 38 | function extractMDXAdmonitionTitle(children) { | CODE |
| LOW | …/blog-refine-supabase-auth/src/components/ui/chart.tsx | 302 | function getPayloadConfigFromPayload( | CODE |
| LOW | …/components/refine-ui/data-table/data-table-filter.tsx | 87 | export function DataTableFilterDropdownActions({ | CODE |
| LOW | …/components/refine-ui/data-table/data-table-filter.tsx | 888 | export function DataTableFilterOperatorSelect({ | CODE |
| LOW | examples/store/src/components/product/helpers.ts | 23 | export function selectDefaultOptionFromProduct( | CODE |
| LOW | …amples/blog-next-refine-pwa/public/workbox-eac1af49.js | 1461 | async function executeQuotaErrorCallbacks() { | CODE |
| LOW | …kages/chakra-ui/src/components/fields/number/index.tsx | 6 | function toLocaleStringSupportsOptions() { | CODE |
| LOW | …src/definitions/helpers/generateDocumentTitle/index.ts | 10 | export function generateDefaultDocumentTitle( | CODE |
| LOW | packages/refine-ui/public/r/data-table.json | 35 | "content": "\"use client\";\n\nimport { useState, useEffect, useMemo } from \"react\";\nimport { useTranslate, typ | CODE |
| LOW | packages/refine-ui/registry/new-york/ui/chart.tsx | 309 | function getPayloadConfigFromPayload( | CODE |
| LOW | …ry/new-york/refine-ui/data-table/data-table-filter.tsx | 87 | export function DataTableFilterDropdownActions({ | CODE |
| LOW | …ry/new-york/refine-ui/data-table/data-table-filter.tsx | 897 | export function DataTableFilterOperatorSelect({ | CODE |
| LOW | packages/mantine/src/components/fields/number/index.tsx | 6 | function toLocaleStringSupportsOptions() { | CODE |
| LOW | packages/mui/src/components/fields/number/index.tsx | 6 | function toLocaleStringSupportsOptions() { | CODE |
| LOW | packages/antd/src/components/fields/number/index.tsx | 4 | function toLocaleStringSupportsOptions() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | documentation/blog/2024-10-21-react-suspense.md | 230 | #### In this example: | COMMENT |
| HIGH | packages/strapi-v4/CHANGELOG.md | 659 | - [#1899](https://github.com/refinedev/refine/pull/1899) [`fbfea418a0`](https://github.com/refinedev/refine/commit/fbfea | CODE |
| HIGH | packages/nestjsx-crud/CHANGELOG.md | 650 | - [#1899](https://github.com/refinedev/refine/pull/1899) [`fbfea418a0`](https://github.com/refinedev/refine/commit/fbfea | CODE |
| HIGH | packages/simple-rest/CHANGELOG.md | 623 | - [#1899](https://github.com/refinedev/refine/pull/1899) [`fbfea418a0`](https://github.com/refinedev/refine/commit/fbfea | CODE |
| HIGH | packages/airtable/CHANGELOG.md | 427 | - [#1899](https://github.com/refinedev/refine/pull/1899) [`fbfea418a0`](https://github.com/refinedev/refine/commit/fbfea | CODE |
| HIGH | packages/strapi/CHANGELOG.md | 445 | - [#1899](https://github.com/refinedev/refine/pull/1899) [`fbfea418a0`](https://github.com/refinedev/refine/commit/fbfea | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …outing/integrations/next-js/provider-client-server.tsx | 83 | async function getData() { | CODE |
| LOW | …outing/integrations/next-js/provider-client-server.tsx | 83 | async function getData() { | CODE |
| LOW | examples/i18n-nextjs/src/app/blog-posts/layout.tsx | 17 | async function getData() { | CODE |
| LOW | examples/i18n-nextjs/src/app/register/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/i18n-nextjs/src/app/update-password/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/i18n-nextjs/src/app/forgot-password/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/i18n-nextjs/src/app/categories/layout.tsx | 17 | async function getData() { | CODE |
| LOW | examples/i18n-nextjs/src/app/login/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-nextjs/src/app/blog-posts/layout.tsx | 17 | async function getData() { | CODE |
| LOW | examples/with-nextjs/src/app/register/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-nextjs/src/app/update-password/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-nextjs/src/app/forgot-password/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-nextjs/src/app/categories/layout.tsx | 17 | async function getData() { | CODE |
| LOW | examples/with-nextjs/src/app/login/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-remix-material-ui/app/entry.server.tsx | 9 | export default function handleRequest( | CODE |
| LOW | …les/with-nextjs-headless/src/app/blog-posts/layout.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-nextjs-headless/src/app/register/page.tsx | 15 | async function getData() { | CODE |
| LOW | …/with-nextjs-headless/src/app/update-password/page.tsx | 15 | async function getData() { | CODE |
| LOW | …/with-nextjs-headless/src/app/forgot-password/page.tsx | 15 | async function getData() { | CODE |
| LOW | examples/with-nextjs-headless/src/app/login/page.tsx | 23 | async function getData() { | CODE |
| LOW | examples/finefoods-client/src/app/orders/[id]/page.tsx | 40 | async function getData(props: GetDataProps) { | CODE |
| LOW | …es/finefoods-client/src/app/categories/[id]/layout.tsx | 48 | async function getData() { | CODE |
| LOW | …ples/finefoods-client/src/app/categories/[id]/page.tsx | 50 | async function getData(props: GetDataProps) { | CODE |
| LOW | examples/with-remix-auth/app/entry.server.tsx | 5 | export default function handleRequest( | CODE |
| LOW | examples/with-remix-vite-headless/app/entry.server.tsx | 5 | export default function handleRequest( | CODE |
| LOW | examples/with-remix-antd/app/entry.server.tsx | 5 | export default function handleRequest( | CODE |
| LOW | …es/with-nextjs-next-auth/src/app/blog-posts/layout.tsx | 17 | async function getData() { | CODE |
| LOW | …es/with-nextjs-next-auth/src/app/categories/layout.tsx | 17 | async function getData() { | CODE |
| LOW | examples/with-nextjs-next-auth/src/app/login/layout.tsx | 18 | async function getData() { | CODE |
| LOW | examples/with-nextjs-next-auth/src/app/login/page.tsx | 37 | async function getData() { | CODE |
| LOW | examples/with-remix-headless/app/entry.server.tsx | 5 | export default function handleRequest( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | documentation/docs/advanced-tutorials/real-time.md | 42 | export const ablyClient = new Ably.Realtime("your-api-key"); | CODE |
| HIGH | …ntation/docs/data/packages/rest-data-provider/index.md | 1826 | request.headers.set("X-API-Key", "your-api-key"); | CODE |
| HIGH | documentation/blog/2023-08-12-react-admin-vs-refine.md | 516 | const ablyClient = new Ably.Realtime("your-api-key"); | CODE |
| HIGH | …d_docs/version-3.xx.xx/advanced-tutorials/real-time.md | 37 | export const ablyClient = new Ably.Realtime("your-api-key"); | CODE |
| HIGH | …d_docs/version-4.xx.xx/advanced-tutorials/real-time.md | 42 | export const ablyClient = new Ably.Realtime("your-api-key"); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …re/src/definitions/helpers/router/check-by-segments.ts | 16 | // we need to check if the route and resourceRoute have the same number of segments | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 407 | // Step 1: Open create modal - should work | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 413 | // Step 2: Close modal | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 419 | // Step 3: Switch to edit action | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 422 | // Step 4: Open edit modal with ID - should work | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 428 | // Step 5: Close modal | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 434 | // Step 6: Switch back to create action | COMMENT |
| LOW⚡ | packages/react-hook-form/src/useModalForm/index.spec.ts | 437 | // Step 7: Try to open create modal again | COMMENT |
| LOW | …sformations/v5/mutation-result-to-mutation-property.ts | 18 | // Step 1: Find all destructuring assignments from mutation hooks and track variable mappings | COMMENT |
| LOW | …sformations/v5/mutation-result-to-mutation-property.ts | 117 | // Step 2: Update variable usages based on mappings | COMMENT |
| LOW | …sformations/v5/mutation-result-to-mutation-property.ts | 134 | // Step 3: Transform direct property access on mutation variables | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | documentation/src/components/json-ld/index.tsx | 5 | // ──────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/src/components/json-ld/index.tsx | 7 | // ──────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/src/components/json-ld/index.tsx | 35 | // ──────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/src/components/json-ld/index.tsx | 37 | // ──────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/src/components/json-ld/index.tsx | 109 | // ──────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/src/components/json-ld/index.tsx | 111 | // ──────────────────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | documentation/tutorial/essentials/setup/index.md | 31 | To learn more about Vite and project creation, you can visit [Vite's documentation](https://vitejs.dev/guide/#scaffoldin | CODE |
| MEDIUM | documentation/blog/2023-09-06-daisy-ui-panel.md | 59 | **Refine**'s [**Inferencer**](https://refine.dev/core/docs/api-reference/core/components/inferencer/#usage) is a powerfu | CODE |
| MEDIUM | packages/chakra-ui/CHANGELOG.md | 537 | - [#5737](https://github.com/refinedev/refine/pull/5737) [`4e8188a6652`](https://github.com/refinedev/refine/commit/4e81 | CODE |
| MEDIUM | packages/core/CHANGELOG.md | 1298 | - [#5737](https://github.com/refinedev/refine/pull/5737) [`4e8188a6652`](https://github.com/refinedev/refine/commit/4e81 | CODE |
| MEDIUM | packages/mantine/CHANGELOG.md | 491 | - [#5737](https://github.com/refinedev/refine/pull/5737) [`4e8188a6652`](https://github.com/refinedev/refine/commit/4e81 | CODE |
| MEDIUM | packages/mui/CHANGELOG.md | 741 | - [#5737](https://github.com/refinedev/refine/pull/5737) [`4e8188a6652`](https://github.com/refinedev/refine/commit/4e81 | CODE |
| MEDIUM | packages/antd/CHANGELOG.md | 801 | - [#5737](https://github.com/refinedev/refine/pull/5737) [`4e8188a6652`](https://github.com/refinedev/refine/commit/4e81 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | documentation/blog/2025-08-15-comments-in-code.md | 84 | Connects to the database and returns a connection object. Args: user (str): The username for the database. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …amples/blog-next-refine-pwa/public/workbox-eac1af49.js | 70 | print(method, args); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/core/src/hooks/form/types.ts | 177 | * If you customize the [`optimisticUpdateMap`](https://refine.dev/docs/api-reference/core/hooks/data/useUpdateMany/#o | COMMENT |