TinaCMS is the leading open-source headless CMS that supports Markdown and Visual Editing. Your content is stored in your own GitHub repo 🦙 ❤️
This report summarizes scanner evidence for tinacms/tinacms, a TypeScript project with 13,856 GitHub stars. SynthScan examined 321,707 lines of code across 2884 source files, recording 151 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 0.8 (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? 58 finding(s).
Are imports declared and package/API names verified? 59 finding(s).
Are wrappers, guards, and repeated structures necessary? 55 finding(s).
Which changes need focused human review? 151 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 151 distinct pattern matches across 11 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 |
|---|---|---|---|---|
| MEDIUM | tests/size-baseline.test.ts | 28 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 30 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 99 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 103 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 147 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 149 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 283 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 286 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 424 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 426 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 528 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/size-baseline.test.ts | 530 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/pagination.spec.ts | 43 | // ── 1. `first` limits results ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/pagination.spec.ts | 63 | // ── 2. `hasNextPage` reflects whether more results exist ────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/pagination.spec.ts | 104 | // ── 3. `after` cursor advances pages with no overlap ────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 57 | // ── 1. Unknown sort key — documents the current behavior (throws) ───────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 82 | // ── 2. Index freshness after CREATE ────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 118 | // ── 3. Index freshness after UPDATE ────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 181 | // ── 4. Index freshness after DELETE ────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 225 | // ── 5. Ascending order via `sort` ──────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 255 | // ── 6. Descending order via `last` ──────────────────────────────────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/search.spec.ts | 25 | // ── 1. Title field is indexed — "gamma" only exists in the title ────────────── | COMMENT |
| MEDIUM | playwright/tina-playwright/tests/api/search.spec.ts | 45 | // ── 2. Query is precise — "gamma" does not return unrelated posts ───────────── | COMMENT |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 25 | // ─── InMemoryBridge ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 64 | // ─── Schema ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 86 | // ─── Fixtures ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 111 | // ─── Setup helper ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 147 | // ─── Tests ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 23 | // ─── Helpers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 55 | // ─── makeFilter ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 311 | // ─── makeFilterChain ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 458 | // ─── makeFilterSuffixes ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 588 | // ─── makeIndexOpsForDocument ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 696 | // ─── coerceFilterChainOperands ─────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | examples/next/tina-self-hosted-demo/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/next/tina-self-hosted-demo/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/next/tina-self-hosted-demo/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/next/tina-self-hosted-demo/tina/config.tsx | 133 | name: 'placeholder', | CODE |
| LOW | …xt/tina-self-hosted-demo/components/blocks/content.tsx | 30 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | …xt/tina-self-hosted-demo/components/blocks/content.tsx | 30 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW⚡ | examples/next/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.9","major":"2","minor":"4","patch":"9"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/next/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.9","major":"2","minor":"4","patch":"9"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/next/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.9","major":"2","minor":"4","patch":"9"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/next/kitchen-sink/tina/collections/post.tsx | 128 | name: 'placeholder', | CODE |
| LOW | …amples/next/kitchen-sink/components/blocks/content.tsx | 38 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | …amples/next/kitchen-sink/components/blocks/content.tsx | 38 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | examples/hugo/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/hugo/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/hugo/kitchen-sink/tina/schemas/blocks.ts | 182 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | examples/hugo/kitchen-sink/tina/schemas/blocks.ts | 182 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW⚡ | examples/astro/visual-editing/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.1","major":"2","minor":"3","patch":"1"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/astro/visual-editing/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.1","major":"2","minor":"3","patch":"1"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/astro/visual-editing/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.1","major":"2","minor":"3","patch":"1"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/astro/visual-editing/tina/schemas/blocks.ts | 176 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | examples/astro/visual-editing/tina/schemas/blocks.ts | 176 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | examples/astro/visual-editing/tina/collections/post.tsx | 130 | name: 'placeholder', | CODE |
| LOW⚡ | examples/astro/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/astro/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/astro/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/astro/kitchen-sink/tina/schemas/blocks.ts | 175 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | examples/astro/kitchen-sink/tina/schemas/blocks.ts | 175 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | examples/astro/kitchen-sink/tina/collections/post.tsx | 128 | name: 'placeholder', | CODE |
| LOW⚡ | examples/react/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/react/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW⚡ | examples/react/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]}," | CODE |
| LOW | examples/react/kitchen-sink/tina/collections/post.tsx | 128 | name: 'placeholder', | CODE |
| LOW | …s/react/kitchen-sink/src/components/blocks/content.tsx | 37 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | …s/react/kitchen-sink/src/components/blocks/content.tsx | 37 | body: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam | CODE |
| LOW | …s/v4/@tinacms/ui/src/components/form-controls.test.tsx | 125 | expect(box).toHaveAttribute('placeholder', 'Search titles'); | CODE |
| LOW | packages/v4/@tinacms/ui/src/components/list-card.tsx | 111 | 'name' | 'placeholder' | 'readOnly' | 'disabled' | CODE |
| LOW | packages/v4/@tinacms/ui/src/components/list-card.tsx | 154 | 'name' | 'placeholder' | 'disabled' | CODE |
| LOW | …/src/plugins/fields/reference/reference-field.test.tsx | 116 | 'placeholder', | CODE |
| LOW | packages/@tinacms/mdx/src/repro-large-file.test.ts | 37 | { name: 'placeholder', label: 'Placeholder', type: 'string' }, | CODE |
| LOW | …s/mdx/src/next/tests/markdown-basic-kitchen-sink/in.md | 15 | > Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, v | CODE |
| LOW | …s/mdx/src/next/tests/markdown-basic-kitchen-sink/in.md | 15 | > Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, v | CODE |
| LOW | …x/src/next/tests/markdown-basic-kitchen-sink/node.json | 72 | "text": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestib | CODE |
| LOW | …x/src/next/tests/markdown-basic-kitchen-sink/node.json | 72 | "text": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestib | CODE |
| LOW | …/mdx/src/next/tests/markdown-basic-kitchen-sink/out.md | 15 | > Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, v | CODE |
| LOW | …/mdx/src/next/tests/markdown-basic-kitchen-sink/out.md | 15 | > Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, v | CODE |
| LOW | …ckages/@tinacms/cli/src/cmds/init/templates/content.ts | 7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut non lorem diam. Quisque vulputate nibh sodales eros pretium | CODE |
| LOW | …ckages/@tinacms/cli/src/cmds/init/templates/content.ts | 7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut non lorem diam. Quisque vulputate nibh sodales eros pretium | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 190 | { username: "admin-user", name: "Admin User", email: "admin@example.com", password: { passwordChangeRequired | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 230 | untouched('admin-user', 'Admin User', 'admin@example.com'), | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 273 | untouched('admin-user', 'Admin User', 'admin@example.com'), | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 302 | untouched('admin-user', 'Admin User', 'admin@example.com'), | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 327 | untouched('admin-user', 'Admin User', 'admin@example.com'), | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 355 | untouched('admin-user', 'Admin User', 'admin@example.com'), | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 379 | untouched('admin-user', 'Admin User', 'admin@example.com'), | CODE |
| LOW | …raphql/tests/auth-collection-permissions/index.test.ts | 595 | email: 'admin@example.com', | CODE |
| LOW | …/auth-collection-permissions/database-defaults.test.ts | 22 | const updateUsers = `mutation { updateDocument(collection: "user", relativePath: "index.json", params: { user: { users: | CODE |
| LOW | …ection-permissions/references/content/users/index.json | 6 | "email": "admin@example.com", | CODE |
| LOW | …s/auth-collection-permissions/content/users/index.json | 6 | "email": "admin@example.com", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | playwright/prebuilt-admin/e2e/mermaid-lazy.spec.ts | 1 | import { existsSync, readFileSync, readdirSync } from 'node:fs'; | COMMENT |
| LOW | examples/next/tina-self-hosted-demo/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/web-components/kitchen-sink/index.html | 61 | // - `createTina` fetches a provided connection and renders the content | COMMENT |
| LOW | examples/web-components/kitchen-sink/index.html | 81 | // This is a web component (./post-preview.js) with two slots: | COMMENT |
| LOW | examples/web-components/kitchen-sink/index.html | 101 | // This is a web component with an attribute `content`. | COMMENT |
| LOW | examples/web-components/kitchen-sink/index.html | 121 | COMMENT | |
| LOW | packages/v4/examples/barebones/vite.config.ts | 1 | // The Vite config of the app. It shows the v4 shape: the project owns its pipeline, and | COMMENT |
| LOW | packages/v4/@tinacms/tinacms/tsconfig.test.json | 1 | { | COMMENT |
| LOW | packages/create-tina-app/src/util/isNpm.js | 1 | // Copyright (c) 2015, npm, Inc | COMMENT |
| LOW | …ckages/@tinacms/mdx/src/next/shortcodes/mdast/index.ts | 361 | position, | COMMENT |
| LOW | …ckages/@tinacms/mdx/src/next/shortcodes/mdast/index.ts | 381 | // b.type + | COMMENT |
| LOW | …ges/@tinacms/app/src/fields/rich-text/monaco/index.tsx | 181 | noSyntaxValidation: true, | COMMENT |
| LOW | packages/@tinacms/cli/src/next/cache-manager.test.ts | 61 | // `loadDatabaseFile` builds its outfile from the path returned here, so | COMMENT |
| LOW | packages/@tinacms/cli/src/next/config-manager.ts | 381 | // Use a timestamped subdirectory inside the project's generated cache folder | COMMENT |
| LOW | …ms/cli/src/next/localcontentpath-orchestration.test.ts | 1 | // End-to-end orchestration test for `localContentPath`. | COMMENT |
| LOW | …nacms/cli/src/next/codegen/consumer-resolution.test.ts | 1 | // Consumer-side regression test for the generated `./types.js` import in | COMMENT |
| LOW | …es/@tinacms/cli/src/next/commands/dev-command/index.ts | 301 | ], | COMMENT |
| LOW | …ages/@tinacms/cli/src/cmds/init/prompts/gitProvider.ts | 41 | // title: 'Other', // TODO should this be an input for init? it just leaves a broken database.ts file | COMMENT |
| LOW | …ges/@tinacms/cli/src/cmds/init/prompts/authProvider.ts | 101 | // const choices = [] | COMMENT |
| LOW | packages/tinacms/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | …ins/mdx-field-plugin/plate/plugins/core/formatting.tsx | 61 | allow: HEADING_LEVELS, | COMMENT |
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …4/@tinacms/rich-text/src/plate/plugins/core/common.tsx | 101 | export function normalizeLinksInCodeBlocks(node) { | CODE |
| LOW | packages/v4/@tinacms/tinacms/src/editor/provider.tsx | 410 | function useFormMethodSubscriptions( | CODE |
| LOW | packages/create-tina-app/src/util/examples.ts | 45 | export async function downloadAndExtractExample(root: string, name: string) { | CODE |
| LOW | packages/create-tina-app/src/util/fileUtil.ts | 16 | export function folderContainsInstallConflicts(root: string): string[] { | CODE |
| LOW | packages/create-tina-app/src/util/fileUtil.ts | 84 | export function updateProjectPackageVersion(dir: string, version: string) { | CODE |
| LOW | packages/@tinacms/cli/src/next/database.ts | 44 | export async function createAndInitializeDatabase( | CODE |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 374 | function readYarnBerryLockVersions(contents: string): Map<string, string> { | CODE |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 399 | function normalizeInstalledVersion(version: string): string { | CODE |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 418 | function extractYarnBerryPackageName(descriptor: string): string | undefined { | CODE |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 425 | function getYarnBerryInstalledVersion( | CODE |
| LOW | …acms/cli/src/next/commands/dev-command/server/media.ts | 436 | function resolveStrictlyWithinBase(userPath: string, baseDir: string): string { | CODE |
| LOW | packages/@tinacms/search/src/fuzzy/distance.ts | 47 | export function damerauLevenshteinDistance(str1: string, str2: string): number { | CODE |
| LOW | packages/@tinacms/web-components/src/tina-markdown.js | 52 | function sanitizerRemovesUnsafeMarkup() { | CODE |
| LOW | packages/@tinacms/graphql/src/database/datalayer.ts | 272 | function operatorMatchesBinaryFilter( | CODE |
| LOW | packages/@tinacms/graphql/src/database/datalayer.ts | 340 | function operatorMatchesTernaryFilter( | CODE |
| LOW | packages/@tinacms/graphql/src/resolver/auth-fields.ts | 86 | export function assertNewUsersHavePasswords( | CODE |
| LOW | packages/@tinacms/astro/src/integration.ts | 211 | function devContentInvalidationPlugin( | CODE |
| LOW | packages/@tinacms/astro/src/integration.ts | 299 | function cloudflareImportMetaUrlPlugin( | CODE |
| LOW | …tinacms/src/toolkit/components/ui/date-time-picker.tsx | 114 | function getValidArrowMinuteOrSecond(value: string, step: number) { | CODE |
| LOW | …/src/toolkit/fields/plugins/image-field-plugin.test.ts | 34 | function imageFieldOnChangeOriginal( | CODE |
| LOW | …plugins/mdx-field-plugin/plate/plugins/core/common.tsx | 111 | export function normalizeLinksInCodeBlocks(node) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | playwright/astro-init/scaffold-and-init.sh | 5 | # scaffold-and-init.sh <project-dir> <astro-template> | COMMENT |
| MEDIUM | packages/v4/README.md | 43 | | `@tinacms/tinacms` | `packages/v4/@tinacms/tinacms` | The v4 runtime. It supplies the universal entry and the subpath | CODE |
| MEDIUM | packages/create-tina-app/CHANGELOG.md | 83 | - [#6742](https://github.com/tinacms/tinacms/pull/6742) [`01c3fb4`](https://github.com/tinacms/tinacms/commit/01c3fb4905 | CODE |
| MEDIUM | packages/@tinacms/cli/src/cmds/init/apply.ts | 155 | // Wire the Astro dev/build scripts + scaffold the visual-editing demo | COMMENT |
| MEDIUM | …ages/@tinacms/cli/src/cmds/init/astro-config-detect.ts | 4 | // True only when the file is the untouched scaffold default (the astro/config | COMMENT |
| MEDIUM | packages/@tinacms/cli/src/cmds/init/configure.ts | 33 | // `init` adds TinaCMS to an EXISTING project; it does not scaffold a new one. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/size-fixture/package-lock.fixture.json | 14957 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | packages/tinacms/src/tina-cms.tsx | 176 | // schema is now required as the Global Nav and CMS utilize it | COMMENT |
| MEDIUM | packages/tinacms/src/rich-text/static.tsx | 91 | // Note: A more robust type would be a discriminated union of all possible node shapes. | COMMENT |
| MEDIUM | …dashboard/media-usage-dashboard/media-usage-scanner.ts | 243 | // Fetch _sys fully because `ui.router` could utilize any of them to construct a route | COMMENT |
| MEDIUM | .github/workflows/size-baseline.yml | 64 | # On the weekly schedule it runs the identical harness against the real npm | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …acms/cli/src/next/codegen/codegen/sdkPlugin/visitor.ts | 65 | print(node) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/tinacms/src/toolkit/core/cms.ts | 29 | * #### Creating a CMS | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 59 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/require_gh_token.sh | 11 | # Check if token can create a relese | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/@tinacms/schema-tools/src/schema/TinaSchema.ts | 147 | // if the collection has a match or exclude, we need to check if the file matches | COMMENT |