Payload is the open-source, fullstack Next.js framework, giving you instant backend superpowers. Get a full TypeScript backend and admin panel instantly. Use Payload as a headless CMS or for building powerful applications.
This report summarizes scanner evidence for payloadcms/payload, a TypeScript project with 45,595 GitHub stars. SynthScan examined 1,246,030 lines of code across 9057 source files, recording 707 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 0.9 (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? 501 finding(s).
Are imports declared and package/API names verified? 148 finding(s).
Are wrappers, guards, and repeated structures necessary? 365 finding(s).
Which changes need focused human review? 707 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 707 distinct pattern matches across 14 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 | tools/releaser/src/release-ci.ts | 212 | function escapeWorkflowCommandData(value: string): string { | CODE |
| LOW | tools/scripts/src/check-template-build-approvals.ts | 89 | async function repointWorkspaceDepsAtTarballs( | CODE |
| LOW | tools/scripts/src/check-template-build-approvals.ts | 134 | function installAndCollectIgnoredBuilds(projectDir: string): string[] { | CODE |
| LOW | tools/scripts/src/build-template-with-local-pkgs.ts | 114 | async function runBuildWithWarningsCheck(args: { | CODE |
| LOW | test/runTestsWithSummary.ts | 352 | function getExplicitSkippedTestCount(suiteName: string): number { | CODE |
| LOW | test/storage-r2/config.ts | 88 | function getCloudflareContextFromWrangler(): Promise<CloudflareContext> { | CODE |
| LOW | test/validate/int.spec.ts | 57 | function buildNestedFieldValidateBlockRichText(value: string) { | CODE |
| LOW | test/validate/int.spec.ts | 4054 | function getPublishCollectionLocaleData({ title }: { title: string }): Record<string, unknown> { | CODE |
| LOW | test/validate/int.spec.ts | 4062 | function getDefaultDraftLocaleData({ | CODE |
| LOW | test/validate/int.spec.ts | 4139 | function getPublishGlobalLocaleData({ title }: { title: string }): Record<string, unknown> { | CODE |
| LOW | test/validate/events.ts | 71 | export function recordGraphQLValidationTransaction({ | CODE |
| LOW | test/validate/events.ts | 97 | export function getLocalePassRequestCount(): number { | CODE |
| LOW | test/validate/events.ts | 101 | export function getMaximumActiveLocalePasses(): number { | CODE |
| LOW | test/validate/events.ts | 118 | export function recordPermissionOperation({ | CODE |
| LOW | test/validate/events.ts | 133 | export async function recordAndMutateIsolationState({ | CODE |
| LOW | test/evals/mcpDatabase.ts | 22 | export function setMCPEvalDatabaseEnvironment({ | CODE |
| LOW | test/evals/runCodegenDataset.ts | 319 | async function importGeneratedEvalConfig( | CODE |
| LOW | test/evals/runCodegenDataset.ts | 424 | function isArrowOrFunctionExpression( | CODE |
| LOW | test/evals/runner/claudeCode.ts | 575 | function normalizeToolResultContent(content: unknown): string { | CODE |
| LOW | test/evals/utils/mcpToolCalls.ts | 139 | function getPayloadMCPTranscriptCalls(transcript?: TranscriptEvent[]): Array<{ | CODE |
| LOW | test/evals/utils/writeFailedAssertion.ts | 36 | export function writeFailedCodegenAssertion(data: FailedCodegenAssertion): void { | CODE |
| LOW | …ollections/LexicalLocalized/generateLexicalRichText.ts | 1 | export function generateLexicalLocalizedRichText(text1: string, text2: string, blockID?: string) { | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 58 | async function openMoveModalFromAssignedHierarchy({ | CODE |
| LOW | test/auth/server-functions/view/tanstack.tsx | 10 | export function TanStackServerFunctionsView({ initPageResult }: AdminViewServerProps) { | CODE |
| LOW | test/upload-transformers/transformerFixtures.ts | 29 | export function resetTransformerCallCounts(): void { | CODE |
| LOW | test/upload-transformers/transformerFixtures.ts | 46 | export function resetTransformerMediaHookCallCounts(): void { | CODE |
| LOW | test/fields-relationship/e2e.spec.ts | 1246 | async function createVersionedRelationshipFieldDoc( | CODE |
| LOW | test/versions/helpers.ts | 83 | export async function createDocumentWithManyVersions({ | CODE |
| LOW | test/versions/int.spec.ts | 3352 | async function getLatestVersionByParentIDHelper( | CODE |
| LOW | test/versions/e2e.spec.ts | 2908 | async function navigateToDraftVersionView(versionID: string) { | CODE |
| LOW | test/versions/e2e.spec.ts | 2918 | async function navigateToDiffVersionView(versionID?: string) { | CODE |
| LOW | test/versions/collections/Diff/generateLexicalData.ts | 5 | export function generateRelationshipLexicalData(textID: number | string): DefaultTypedEditorState { | CODE |
| LOW | test/admin/components/ResetColumns/index.tsx | 5 | function ResetDefaultColumnsButton() { | CODE |
| LOW | …admin/components/views/CustomCollectionView/Client.tsx | 9 | export function CustomCollectionViewClient({ collectionSlug }: AdminViewClientProps) { | CODE |
| LOW | test/__helpers/shared/transformSourceTests.ts | 48 | export function runTransformReadsRealSourceTest({ | CODE |
| LOW | test/__helpers/shared/clearAndSeed/snapshot.ts | 28 | async function restoreFromMongooseSnapshot(collectionsObj, snapshotKey: string) { | CODE |
| LOW | test/__helpers/shared/clearAndSeed/snapshot.ts | 60 | async function restoreFromDrizzleSnapshot( | CODE |
| LOW | test/__helpers/e2e/waitForAutoSaveToRunAndComplete.ts | 9 | export async function waitForAutoSaveToRunAndComplete( | CODE |
| LOW | test/__helpers/e2e/getRowByCellValueAndAssert.ts | 5 | export async function getRowByCellValueAndAssert({ | CODE |
| LOW | test/__helpers/e2e/checkHorizontalOverflow.ts | 184 | export async function assertNoHorizontalOverflow(page: Page, testInfo?: TestInfo): Promise<void> { | CODE |
| LOW | test/__helpers/e2e/checkFocusIndicators.ts | 776 | export async function assertAllElementsHaveFocusIndicators( | CODE |
| LOW | test/__helpers/e2e/navigateToDiffVersionView.ts | 8 | export async function navigateToDiffVersionView({ | CODE |
| LOW | test/__helpers/e2e/assertElementStaysVisible.ts | 3 | export async function assertElementStaysVisible( | CODE |
| LOW | …e2e/fields/relationship/openRelationshipFieldDrawer.ts | 28 | export async function openRelationshipFieldDrawer({ | CODE |
| LOW | …rs/e2e/folders/expectNoResultsAndCreateFolderButton.ts | 7 | export async function expectNoResultsAndCreateFolderButton({ page }: Args): Promise<void> { | CODE |
| LOW | …pers/e2e/folders/selectFolderAndConfirmMoveFromList.ts | 12 | export async function selectFolderAndConfirmMoveFromList({ | CODE |
| LOW | …st/__helpers/e2e/folders/selectFolderAndConfirmMove.ts | 9 | export async function selectFolderAndConfirmMove({ folderName, page }: Args): Promise<void> { | CODE |
| LOW | test/dashboard/utils.ts | 345 | export async function waitForDashboardHydration({ page }: { page: Page }): Promise<void> { | CODE |
| LOW | test/v4/seed/richTextData.ts | 3 | export function getUpdatedRichTextContent( | CODE |
| LOW | test/v4/seed/richTextData.ts | 1103 | export function getUpdatedTypographyContent(formattedUserID?: number | string) { | CODE |
| LOW | test/plugin-cloud-storage/int.spec.ts | 116 | export function describeIfInCIOrHasLocalstack(): SuiteAPI | SuiteAPI['skip'] { | CODE |
| LOW | …plugin-cloud-storage/int.compositePrefixes.int.spec.ts | 18 | function describeIfInCIOrHasLocalstack(): SuiteAPI | SuiteAPI['skip'] { | CODE |
| LOW | …ugin-cloud-storage/buildPluginCloudStorageIntConfig.ts | 75 | export function buildPluginCloudStorageIntConfig({ | CODE |
| LOW | test/field-error-states/e2e.spec.ts | 220 | async function prefillBaseRequiredFields(page: Page) { | CODE |
| LOW | test/fields/collections/Relationship/e2e.spec.ts | 1171 | async function createRelationshipFieldDoc( | CODE |
| LOW | test/a11y/helpers.ts | 34 | export async function openAccessibilityTestPage({ | CODE |
| LOW | test/a11y/helpers.ts | 67 | export async function waitForKeyboardDragActivation({ page }: { page: Page }) { | CODE |
| LOW | test/a11y/helpers.ts | 101 | export async function expectOptionsToHaveAccessibleNames( | CODE |
| LOW | test/a11y/helpers.ts | 156 | export function hasRenderedFocusIndicator({ | CODE |
| LOW | test/a11y/helpers.ts | 242 | export async function openFolderCreationLocation({ | CODE |
| 247 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/docker-compose.yml | 19 | # ── PostgreSQL (PostGIS + pgvector) ────────────────────────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 83 | # ── MongoDB Community 8.2 (replica set + search) ──────────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 151 | # ── MongoDB Atlas Local (all-in-one with Atlas Search) ────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 174 | # ── LocalStack (S3 emulator) ──────────────────────────────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 191 | # ── Azure Storage (Azurite emulator) ──────────────────────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 205 | # ── Google Cloud Storage (fake-gcs-server) ────────────────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 228 | # ── Vercel Blob (vercel-blob-emulator) ────────────────────── | COMMENT |
| MEDIUM | test/docker-compose.yml | 242 | # ── Redis (kv-redis adapter) ──────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/plugin-import-export/field-hooks.int.spec.ts | 429 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/plugin-import-export/field-hooks.int.spec.ts | 431 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 45 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 47 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 212 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 214 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 296 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 298 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 348 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 350 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 392 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 394 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 469 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 471 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 776 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 778 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 831 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 834 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 1032 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/field-hooks.int.spec.ts | 1036 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/hooks.int.spec.ts | 45 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/hooks.int.spec.ts | 47 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/hooks.int.spec.ts | 224 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/plugin-import-export/hooks.int.spec.ts | 226 | // ───────────────────────────────────────────── | COMMENT |
| MEDIUM | test/v4/collections/Talks/index.ts | 370 | // ──────── Sidebar ──────── | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 164 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 166 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 169 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 171 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 175 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 177 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 181 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 183 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 202 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 204 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 207 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 209 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 213 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 215 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 219 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 221 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 225 | # ======================================== | COMMENT |
| MEDIUM⚡ | .agents/skills/triage-ci-flake/SKILL.md | 227 | # ======================================== | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 9 | // ─── Fixtures ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 39 | // ─── Primitive pass-through ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 59 | // ─── String input (the recovered-from-missed-hook path) ───────────────────── | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 85 | // ─── Numeric property coercion ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 134 | // ─── Recursive children processing ────────────────────────────────────────── | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 185 | // ─── Nested non-children objects ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …port-export/src/utilities/processRichTextField.spec.ts | 202 | // ─── Full Lexical document round-trips ─────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/db-mongodb/src/types.ts | 130 | * const { rows: posts } = await payload.db.collections.posts.collection.find({ session }).toArray() | COMMENT |
| CRITICAL | packages/db-mongodb/src/types.ts | 161 | * const { rows: posts } = await payload.db.collections.posts.collection.find({ session }).toArray() | COMMENT |
| CRITICAL | …kages/db-mongodb/src/utilities/buildJoinAggregation.ts | 399 | adapter.payload.config.localization.localeCodes.forEach((code) => { | CODE |
| CRITICAL | …s/payload/src/hierarchy/resolveHierarchyCollections.ts | 462 | const hasTab = config.admin.components.sidebar.tabs.some((tab) => tab.slug === tabSlug) | CODE |
| CRITICAL | …s/payload/src/hierarchy/resolveHierarchyCollections.ts | 465 | config.admin.components.sidebar.tabs.push({ | CODE |
| CRITICAL | packages/plugin-multi-tenant/src/index.ts | 277 | const hasAssignTenantTrigger = collection.admin.components.edit.editMenuItems.some( | CODE |
| CRITICAL | packages/plugin-multi-tenant/src/index.ts | 293 | collection.admin.components.edit.editMenuItems.push({ path: assignTenantTriggerPath }) | CODE |
| CRITICAL | packages/drizzle/src/queries/getTableColumnFromPath.ts | 142 | const matchedLocale = adapter.payload.config.localization.localeCodes.find( | CODE |
| CRITICAL | packages/drizzle/src/sqlite/init.ts | 19 | locales = this.payload.config.localization.locales.map(({ code }) => code) | CODE |
| CRITICAL | packages/drizzle/src/utilities/blocksToJsonMigrator.ts | 355 | for (const collection of this.adapter.payload.config.collections.filter(entityHasBlocksField)) { | CODE |
| CRITICAL | packages/drizzle/src/utilities/blocksToJsonMigrator.ts | 367 | for (const globalConfig of this.adapter.payload.config.globals.filter(entityHasBlocksField)) { | CODE |
| CRITICAL | packages/drizzle/src/utilities/blocksToJsonMigrator.ts | 407 | for (const collection of this.adapter.payload.config.collections.filter(entityHasBlocksField)) { | CODE |
| CRITICAL | packages/drizzle/src/utilities/blocksToJsonMigrator.ts | 484 | for (const globalConfig of this.adapter.payload.config.globals.filter(entityHasBlocksField)) { | CODE |
| CRITICAL | packages/drizzle/src/postgres/init.ts | 29 | this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]], | CODE |
| CRITICAL | packages/drizzle/src/transform/read/traverseFields.ts | 453 | adapter.payload.config.localization.localeCodes.reduce((acc, code) => { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/evals/datasets/config/codegen.ts | 27 | 'Add an onInit hook that creates a default admin user with email "admin@example.com" and role "admin" if no users | CODE |
| LOW | test/evals/datasets/config/codegen.ts | 30 | 'onInit async function receiving payload, uses payload.find or payload.count on users collection, conditionally | CODE |
| LOW | test/lexical/collections/Lexical/loremIpsum.ts | 2 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellentesque. Nunc posue | CODE |
| LOW | test/lexical/collections/Lexical/loremIpsum.ts | 2 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellentesque. Nunc posue | CODE |
| LOW | test/lexical/collections/OnDemandForm/e2e.spec.ts | 59 | 'placeholder', | CODE |
| LOW | test/lexical/collections/OnDemandForm/e2e.spec.ts | 63 | 'placeholder', | CODE |
| LOW | test/lexical/collections/OnDemandForm/e2e.spec.ts | 111 | 'placeholder', | CODE |
| LOW | test/lexical/collections/OnDemandForm/e2e.spec.ts | 115 | 'placeholder', | CODE |
| LOW | test/lexical/collections/LexicalLinkFeature/e2e.spec.ts | 81 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | test/lexical/collections/LexicalLinkFeature/e2e.spec.ts | 81 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | test/lexical/collections/LexicalLinkFeature/e2e.spec.ts | 284 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | test/lexical/collections/LexicalLinkFeature/e2e.spec.ts | 284 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | test/lexical/collections/RichText/loremIpsum.ts | 2 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellentesque. Nunc posue | CODE |
| LOW | test/lexical/collections/RichText/loremIpsum.ts | 2 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellentesque. Nunc posue | CODE |
| LOW | …exical/collections/RichText/generateLexicalRichText.ts | 285 | text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellen | CODE |
| LOW | …exical/collections/RichText/generateLexicalRichText.ts | 285 | text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellen | CODE |
| LOW | …exical/collections/RichText/generateLexicalRichText.ts | 303 | text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellen | CODE |
| LOW | …exical/collections/RichText/generateLexicalRichText.ts | 303 | text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam hendrerit nisi sed sollicitudin pellen | CODE |
| LOW | test/base-access/int.spec.ts | 169 | email: 'admin@example.com', | CODE |
| LOW | test/base-access/int.spec.ts | 192 | email: 'admin@example.com', | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 165 | const acmeCard = page.locator('.document-card', { hasText: 'Acme Corp' }) | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 170 | await acmeCard.getByRole('link', { name: 'Acme Corp', exact: true }).press('Enter') | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 171 | await expect(page.getByRole('heading', { name: 'Acme Corp' })).toBeVisible() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 178 | const acmeLink = page.getByRole('link', { name: 'Acme Corp', exact: true }) | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 183 | await expect(page.getByRole('heading', { name: 'Acme Corp' })).toBeVisible() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 199 | const acmeCard = page.locator('.document-card', { hasText: 'Acme Corp' }) | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 200 | const acmeLink = acmeCard.getByRole('link', { name: 'Acme Corp', exact: true }) | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 207 | await expect(page.getByRole('heading', { name: 'Acme Corp' })).toBeVisible() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 289 | await page.getByRole('link', { name: 'Acme Corp', exact: true }).click() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 290 | await expect(page.getByRole('heading', { name: 'Acme Corp' })).toBeVisible() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 294 | await expect(stepNav.getByText('Acme Corp', { exact: true })).toBeVisible() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 295 | await expect(stepNav.getByRole('link', { name: 'Acme Corp', exact: true })).toHaveCount(0) | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 302 | await expect(stepNav.getByRole('link', { name: 'Acme Corp', exact: true })).toHaveAttribute( | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 333 | await stepNav.getByRole('link', { name: 'Acme Corp', exact: true }).press('Enter') | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 334 | await expect(page.getByRole('heading', { name: 'Acme Corp' })).toBeVisible() | CODE |
| LOW⚡ | test/hierarchy/e2e.spec.ts | 342 | await expect(stepNav).not.toContainText('Acme Corp') | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 227 | const acmeLink = page.getByRole('link', { name: 'Acme Corp', exact: true }) | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 232 | await expect(page.getByRole('heading', { name: 'Acme Corp' })).toBeVisible() | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 278 | findOrganization('Acme Corp'), | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 316 | await expect(stepNav.getByRole('link', { name: 'Acme Corp', exact: true })).toHaveAttribute( | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 359 | await expect(tree.getByText('Acme Corp')).toBeVisible() | CODE |
| LOW | test/hierarchy/e2e.spec.ts | 780 | await tree.getByText('Acme Corp').click() | CODE |
| LOW | test/hierarchy/seed.ts | 54 | data: { title: 'Acme Corp' }, | CODE |
| LOW | test/auth/int.spec.ts | 1060 | data: { apiKey, email: 'user@example.com', password: 'Password123' }, | CODE |
| LOW | test/auth/int.spec.ts | 1065 | data: { email: 'user@example.com', password: 'Password123' }, | CODE |
| LOW | test/auth/int.spec.ts | 1082 | data: { email: 'user@example.com', password: 'Password123' }, | CODE |
| LOW⚡ | test/auth/int.spec.ts | 3034 | expect(emailValidation('user@example.com', mockContext)).toBe(true) | CODE |
| LOW⚡ | test/auth/int.spec.ts | 3036 | expect(emailValidation('user-name@example.org', mockContext)).toBe(true) | CODE |
| LOW⚡ | test/auth/int.spec.ts | 3038 | expect(emailValidation("user'payload@example.org", mockContext)).toBe(true) | CODE |
| LOW⚡ | test/auth/int.spec.ts | 3044 | expect(emailValidation('"user@example.com"', mockContext)).toBe('validation:emailAddress') | CODE |
| LOW | test/admin/slugs.ts | 23 | export const placeholderCollectionSlug = 'placeholder' | CODE |
| LOW | test/admin/payload-types.ts | 97 | | 'placeholder' | CODE |
| LOW | test/admin/payload-types.ts | 149 | | 'placeholder' | CODE |
| LOW | test/admin/payload-types.ts | 448 | * This is a very long description that takes many characters to complete and hopefully will wrap instead of push the | COMMENT |
| LOW | test/admin/payload-types.ts | 448 | * This is a very long description that takes many characters to complete and hopefully will wrap instead of push the | COMMENT |
| LOW | test/admin/payload-types.ts | 919 | * via the `definition` "placeholder". | COMMENT |
| LOW | test/admin/payload-types.ts | 1308 | relationTo: 'placeholder'; | CODE |
| LOW | test/admin/payload-types.ts | 2383 | | 'placeholder' | CODE |
| LOW | test/admin/payload-types.ts | 2441 | | 'placeholder' | CODE |
| LOW | test/admin/e2e/list-view/e2e.spec.ts | 1937 | describe('placeholder', () => { | CODE |
| 64 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/plugin-nested-docs/int.spec.ts | 208 | // Step 1: Create parent page and publish it | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 220 | // Step 2: Create child page and publish it | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 243 | // Step 3: Make unpublished changes to child (creates a draft version) | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 254 | // Step 4: Re-publish the parent (triggers resaveChildren) | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 266 | // Step 5: Verify the child's published version is still accessible | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 279 | // Step 6: Verify the draft version is also still accessible | COMMENT |
| LOW | test/versions/int.spec.ts | 6492 | // Step 1: Create doc without blocks (simulates autosave before blocks are added) | COMMENT |
| LOW | test/versions/int.spec.ts | 6503 | // Step 2: Update with blocks | COMMENT |
| LOW | test/versions/int.spec.ts | 6521 | // Step 3: Publish only English locale | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2364 | // Step 1: Create and save a document without blocks | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2370 | // Step 2: Add a block via API (simpler and more reliable than UI interaction) | COMMENT |
| LOW | test/versions/e2e.spec.ts | 2387 | // Step 3: Publish specific locale (English) via API | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2406 | // Step 4: Verify blocks survived with metadata intact | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2411 | // Step 5: Verify via find (reload from DB) | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 841 | // Step 1: Go to list view and verify default columns are shown initially | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 851 | // Step 2: Apply query preset (the "Default Columns" preset seeded for this collection) | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 854 | // Step 3: Remove the query preset | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 857 | // Step 4: Verify default columns are STILL shown after clearing preset | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 863 | // Step 5: Navigate away and back (fresh navigation without URL params) | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 867 | // Step 6: Verify default columns are STILL shown after fresh page load | COMMENT |
| LOW | test/localization/testMigration.ts | 42 | // Step 1: Create test data | COMMENT |
| LOW | test/localization/testMigration.ts | 59 | // Step 2: Check "before" state | COMMENT |
| LOW | test/localization/testMigration.ts | 91 | // Step 3: Run migration | COMMENT |
| LOW | test/localization/testMigration.ts | 108 | // Step 4: Check "after" state | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 108 | // Step 3: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 116 | // Step 4: Verify "after" state | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 224 | // Step 2: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 232 | // Step 3: Verify that version__status column was added to locales table | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 989 | // Step 3: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 995 | // Step 4: Verify "after" state - version._status should now be an object | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1022 | // Step 1: Insert a main collection doc (old format) | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1030 | // Step 2: Insert an old-format version with publishedLocale: 'en' | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1044 | // Step 3: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1050 | // Step 4: Verify the latest version has correct per-locale statuses | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 81 | // Step 1: Create some test data | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 96 | // Step 2: Verify "before" state | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 180 | // Step 1: Create test data via raw SQL | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 244 | // Step 4: Verify migration completed successfully | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 959 | // Step 1: Create a post with a version | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 974 | // Step 2: Get MongoDB connection and verify "before" state | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 20 | ### Step 1: Analyze What Changed | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 67 | ### Step 2: Find Affected Tests | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 94 | ### Step 3: Analyze Test Dependencies | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 114 | ### Step 4: Categorize Fixes Needed | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 126 | ### Step 5: Run Affected Tests | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 144 | ### Step 6: Apply Fixes | COMMENT |
| LOW | .agents/skills/ui4-convert-tests/SKILL.md | 195 | ### Step 7: Verify Fixes | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 14 | ### Step 0: Icon Scan | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 95 | ### Step 1: SCSS → CSS Migration | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 296 | ### Step 2: Analyze Figma Component Variants | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 344 | ### Step 3: Restyle to Match Figma | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 383 | ### Step 4: Ensure Test Collection Has All Variants | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 409 | ### Step 5: Verify with Playwright (LOOP) | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 457 | ### Step 6: User Confirmation | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 510 | ## Step 7: Write Variant E2E Tests | COMMENT |
| LOW | .agents/skills/ui4/SKILL.md | 619 | ## Step 8: Run ui4-review | COMMENT |
| LOW | .agents/skills/ui4-review/SKILL.md | 32 | ### Step 1: Get Changed CSS Files | COMMENT |
| LOW | .agents/skills/ui4-review/SKILL.md | 40 | ### Step 2: Parallel Violation Detection | COMMENT |
| LOW | .agents/skills/ui4-review/SKILL.md | 69 | ### Step 3: Auto-Fix by Priority | COMMENT |
| LOW | .agents/skills/ui4-review/SKILL.md | 77 | ### Step 4: Report | COMMENT |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/plugin-nested-docs/int.spec.ts | 208 | // Step 1: Create parent page and publish it | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 220 | // Step 2: Create child page and publish it | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 243 | // Step 3: Make unpublished changes to child (creates a draft version) | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 254 | // Step 4: Re-publish the parent (triggers resaveChildren) | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 266 | // Step 5: Verify the child's published version is still accessible | COMMENT |
| LOW | test/plugin-nested-docs/int.spec.ts | 279 | // Step 6: Verify the draft version is also still accessible | COMMENT |
| LOW | test/versions/int.spec.ts | 6492 | // Step 1: Create doc without blocks (simulates autosave before blocks are added) | COMMENT |
| LOW | test/versions/int.spec.ts | 6503 | // Step 2: Update with blocks | COMMENT |
| LOW | test/versions/int.spec.ts | 6521 | // Step 3: Publish only English locale | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2364 | // Step 1: Create and save a document without blocks | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2370 | // Step 2: Add a block via API (simpler and more reliable than UI interaction) | COMMENT |
| LOW | test/versions/e2e.spec.ts | 2387 | // Step 3: Publish specific locale (English) via API | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2406 | // Step 4: Verify blocks survived with metadata intact | COMMENT |
| LOW⚡ | test/versions/e2e.spec.ts | 2411 | // Step 5: Verify via find (reload from DB) | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 841 | // Step 1: Go to list view and verify default columns are shown initially | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 851 | // Step 2: Apply query preset (the "Default Columns" preset seeded for this collection) | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 854 | // Step 3: Remove the query preset | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 857 | // Step 4: Verify default columns are STILL shown after clearing preset | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 863 | // Step 5: Navigate away and back (fresh navigation without URL params) | COMMENT |
| LOW⚡ | test/query-presets/e2e.spec.ts | 867 | // Step 6: Verify default columns are STILL shown after fresh page load | COMMENT |
| LOW | test/localization/testMigration.ts | 42 | // Step 1: Create test data | COMMENT |
| LOW | test/localization/testMigration.ts | 59 | // Step 2: Check "before" state | COMMENT |
| LOW | test/localization/testMigration.ts | 91 | // Step 3: Run migration | COMMENT |
| LOW | test/localization/testMigration.ts | 108 | // Step 4: Check "after" state | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 108 | // Step 3: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 116 | // Step 4: Verify "after" state | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 224 | // Step 2: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 232 | // Step 3: Verify that version__status column was added to locales table | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 989 | // Step 3: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 995 | // Step 4: Verify "after" state - version._status should now be an object | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1022 | // Step 1: Insert a main collection doc (old format) | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1030 | // Step 2: Insert an old-format version with publishedLocale: 'en' | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1044 | // Step 3: Run the migration | COMMENT |
| LOW⚡ | test/localization/localizeStatus.int.spec.ts | 1050 | // Step 4: Verify the latest version has correct per-locale statuses | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 81 | // Step 1: Create some test data | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 96 | // Step 2: Verify "before" state | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 180 | // Step 1: Create test data via raw SQL | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 244 | // Step 4: Verify migration completed successfully | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 959 | // Step 1: Create a post with a version | COMMENT |
| LOW | test/localization/localizeStatus.int.spec.ts | 974 | // Step 2: Get MongoDB connection and verify "before" state | COMMENT |
| LOW | …kages/ui/src/views/List/enrichDocsWithVersionStatus.ts | 27 | // We need to check if these drafts have a published version | COMMENT |
| LOW | packages/richtext-lexical/src/types/schema.ts | 40 | // Step 1: build the schema for every node type allowed in this field. | COMMENT |
| LOW | packages/richtext-lexical/src/types/schema.ts | 76 | // Step 2: get the final node union name, then replace the placeholder | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sentry.client.config.ts | 21 | // ... | COMMENT |
| LOW | test/vite.tanstack.config.ts | 1 | import { withPayload } from '@payloadcms/tanstack-start' | COMMENT |
| LOW | test/vite.tanstack.config.ts | 41 | } | COMMENT |
| LOW | test/vite.tanstack.config.ts | 81 | emulatedCloudEnv.NEXT_PUBLIC_VERCEL_BLOB_API_URL, | COMMENT |
| LOW | test/docker-compose.yml | 1 | name: payload-monorepo | COMMENT |
| LOW | test/vitest.setup.ts | 21 | // return Promise.resolve({ | COMMENT |
| LOW | test/runTestsWithSummary.ts | 121 | function parseTestResults(output: string): { passed: number; total: number } { | COMMENT |
| LOW | test/storage-r2/cloudflare-env.d.ts | 8361 | // The client ID of the client that published this message. | COMMENT |
| LOW | test/storage-r2/cloudflare-env.d.ts | 8501 | // - Stubable types are replaced by stubs. | COMMENT |
| LOW | test/storage-r2/cloudflare-env.d.ts | 8521 | // Rewrites all methods/properties to be `MethodOrProperty`s, while preserving callable types. | COMMENT |
| LOW | test/storage-r2/cloudflare-env.d.ts | 8541 | // declaration will be merged with this one. | COMMENT |
| LOW | test/storage-r2/cloudflare-env.d.ts | 8861 | // Single id for the entire top-level invocation | COMMENT |
| LOW | test/evals/cli.ts | 1 | // Interactive / flag-driven launcher for the Payload eval suite. | COMMENT |
| LOW | test/types/types.spec.ts | 1321 | type NodeType = DefaultTypedEditorState['root']['children'][number] | COMMENT |
| LOW | test/lexical/seed.ts | 41 | import { seedDB } from '../__helpers/shared/clearAndSeed/seed.js' | COMMENT |
| LOW | test/lexical/seed.ts | 61 | // import { tabsDoc } from './collections/Tabs/shared.js' | COMMENT |
| LOW | test/lexical/seed.ts | 81 | // lexicalRelationshipFieldsSlug, | COMMENT |
| LOW | test/auth/tanstackServerFunctions.ts | 1 | // Imported for its side effect by the base app's `_payload` route via | COMMENT |
| LOW | test/admin/e2e/visual/e2e.spec.ts | 61 | // badge — a stand-in for the everyday case of someone changing a component's styling without | COMMENT |
| LOW | …helpers/shared/db/mongodb/docker-compose-entrypoint.sh | 1 | #!/bin/bash | COMMENT |
| LOW | test/localization-rtl/e2e.spec.ts | 1 | // I'm not sure why this suite exists without tests. | COMMENT |
| LOW | test/scripts/run-visual-docker.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | test/scripts/run-visual-docker.sh | 121 | TTY_FLAGS="-it" | COMMENT |
| LOW | test/joins/collections/Categories.ts | 21 | // label: 'Unnamed tab', | COMMENT |
| LOW | test/queues/schedules-autocron.int.spec.ts | 61 | // Second 2: Autoschedule runs => schedules 1 job | COMMENT |
| LOW | test/fields/seed.ts | 161 | // depth: 0, | COMMENT |
| LOW | test/fields/seed.ts | 181 | // ], | COMMENT |
| LOW | test/plugin-form-builder/config.ts | 101 | upload: true, | COMMENT |
| LOW | .agents/skills/triage-ci-flake/SKILL.md | 161 | 3. **ALWAYS wait for server ready confirmation before running tests** | COMMENT |
| LOW | .agents/skills/triage-ci-flake/SKILL.md | 201 | ```bash | COMMENT |
| LOW | packages/ui/bundle.js | 81 | packages: 'external', | COMMENT |
| LOW | packages/ui/src/elements/Popup/index.tsx | 681 | COMMENT | |
| LOW | packages/ui/src/elements/Popup/index.tsx | 701 | COMMENT | |
| LOW | packages/ui/src/elements/Link/formatUrl.ts | 1 | // Format function modified from nodejs | COMMENT |
| LOW | packages/ui/src/views/Document/index.tsx | 141 | COMMENT | |
| LOW | …kages/ui/src/views/List/enrichDocsWithVersionStatus.ts | 41 | // 1. A draft version (latest=true, _status='draft') | COMMENT |
| LOW | packages/payload/src/utilities/dependencies/realPath.ts | 21 | // https://sun0day.github.io/blog/vite/why-vite4_3-is-faster.html#fs-realpathsync-issue | COMMENT |
| LOW | packages/plugin-import-export/src/export/getFields.ts | 181 | label: ({ t }) => t('general:no'), | COMMENT |
| LOW | packages/tanstack-start/src/adapters/views/server.tsx | 81 | // segments. Passing an empty array makes the shared `renderRoot` build | COMMENT |
| LOW | packages/tanstack-start/src/withPayload/index.ts | 181 | // force-bundled `@payloadcms/ui` / `@payloadcms/translations`, and Vite would | COMMENT |
| LOW | …/tanstack-start/src/withPayload/config/optimizeDeps.ts | 41 | // references, which `@vitejs/plugin-rsc` warns about ("client component | COMMENT |
| LOW | …/tanstack-start/src/withPayload/config/optimizeDeps.ts | 101 | '@payloadcms/ui > use-context-selector', | COMMENT |
| LOW | …/tanstack-start/src/withPayload/config/optimizeDeps.ts | 121 | 'react/compiler-runtime', | COMMENT |
| LOW | .github/workflows/main.yml | 501 | COMMENT | |
| LOW | .github/workflows/main.yml | 521 | # - --workers=1: Forces serial execution within each shard. Added when parallel=false. | COMMENT |
| LOW | templates/with-cloudflare-d1/cloudflare-env.d.ts | 10981 | // itself. | COMMENT |
| LOW | templates/with-cloudflare-d1/cloudflare-env.d.ts | 11121 | } : T | COMMENT |
| LOW | templates/with-cloudflare-d1/cloudflare-env.d.ts | 11161 | > | COMMENT |
| LOW | templates/with-cloudflare-d1/cloudflare-env.d.ts | 11181 | // mainModule: typeof import("my-main-module"); | COMMENT |
| LOW | templates/with-cloudflare-d1/cloudflare-env.d.ts | 11561 | | Log | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/localization/src/endpoints/seed/post-1.ts | 175 | code: "async function generateText(prompt) {\n const apiKey = 'your-api-key';\n const apiUrl = 'https: | CODE |
| HIGH | examples/localization/src/endpoints/seed/post-1.ts | 480 | code: "async function generateText(prompt) {\n const apiKey = 'your-api-key';\n const apiUrl = 'https: | CODE |
| HIGH | …es/create-payload-app/src/lib/manage-env-files.spec.ts | 63 | `# Added by Payload\nPAYLOAD_SECRET=YOUR_SECRET_HERE\nDATABASE_URL=your-connection-string-here`, | CODE |
| HIGH | …es/create-payload-app/src/lib/manage-env-files.spec.ts | 90 | `DATABASE_URL=example-connection-string\nCUSTOM_VAR=custom-value\nPAYLOAD_SECRET=YOUR_SECRET_HERE\n# Added by Payl | CODE |
| HIGH | …es/create-payload-app/src/lib/manage-env-files.spec.ts | 124 | `# Added by Payload\nPAYLOAD_SECRET=YOUR_SECRET_HERE\nDATABASE_URL=example-connection-string\nCUSTOM_VAR=custom-va | CODE |
| HIGH | packages/create-payload-app/src/lib/manage-env-files.ts | 35 | withDefaults += '\nPAYLOAD_SECRET=YOUR_SECRET_HERE' | CODE |
| HIGH | packages/create-payload-app/src/lib/manage-env-files.ts | 68 | line = `PAYLOAD_SECRET=${payloadSecret || 'YOUR_SECRET_HERE'}` | CODE |
| HIGH | templates/website/src/endpoints/seed/post-1.ts | 189 | code: "async function generateText(prompt) {\n const apiKey = 'your-api-key';\n const apiUrl = 'http | CODE |
| HIGH | …lates/with-vercel-website/src/endpoints/seed/post-1.ts | 185 | code: "async function generateText(prompt) {\n const apiKey = 'your-api-key';\n const apiUrl = 'http | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/localization/src/endpoints/seed/post-1.ts | 59 | text: ' This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | examples/localization/src/endpoints/seed/post-2.ts | 59 | text: ' This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | examples/localization/src/endpoints/seed/post-3.ts | 40 | text: 'This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | templates/website/src/endpoints/seed/post-1.ts | 70 | text: ' This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | templates/website/src/endpoints/seed/post-2.ts | 64 | text: ' This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | templates/website/src/endpoints/seed/post-3.ts | 45 | text: 'This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | …lates/with-vercel-website/src/endpoints/seed/post-1.ts | 69 | text: ' This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | …lates/with-vercel-website/src/endpoints/seed/post-2.ts | 63 | text: ' This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| MEDIUM | …lates/with-vercel-website/src/endpoints/seed/post-3.ts | 44 | text: 'This content is fabricated and for demonstration purposes only. To edit this post, ', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/runTestsWithSummary.ts | 152 | // we might need a more robust parser. Vitest json reporter usually outputs minified JSON on one line unless configu | COMMENT |
| MEDIUM | test/scripts/run-visual-docker.sh | 42 | # Same precedence the rest of the test harness uses (see test/dbAdapters.ts and | COMMENT |
| MEDIUM | test/fields/collections/Row/e2e.spec.ts | 227 | // Also assert inline style contains the var (robust to other inline styles) | COMMENT |
| MEDIUM | test/fields/collections/Row/e2e.spec.ts | 266 | // Also assert inline style contains the var (robust to other inline styles) | COMMENT |
| MEDIUM | .vscode/settings.json | 25 | // Essentially disables bun test buttons | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …helpers/shared/db/mongodb/docker-compose-entrypoint.sh | 32 | # Check if already initialized | COMMENT |
| LOW | .claude/hooks/post-write-format.sh | 16 | # Check if file exists | COMMENT |
| LOW | scripts/pack_to_dest.sh | 16 | # Check if packages/$package_name exists | COMMENT |
| LOW | scripts/pack_to_dest.sh | 23 | # Check if destination directory exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/scripts/src/check-template-build-approvals.ts | 47 | // then merges the scaffold's allowBuilds into this same file, leaving the install otherwise | COMMENT |
| MEDIUM | .agents/skills/generate-translations/SKILL.md | 18 | - [Scaffolding New Plugin Translations](#scaffolding-new-plugin-translations) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/docker-compose.yml | 5 | # Usage: | COMMENT |
| LOW | test/scripts/run-visual-docker.sh | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/remix/website/app/entry.server.tsx | 17 | export default function handleRequest( | CODE |