A fully open-source headless CMS that supports Markdown and Visual Editing
99 matches across 10 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | playwright/tina-playwright/tests/api/pagination.spec.ts | 43 | // ── 1. `first` limits results ───────────────────────────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/pagination.spec.ts | 63 | // ── 2. `hasNextPage` reflects whether more results exist ────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/pagination.spec.ts | 104 | // ── 3. `after` cursor advances pages with no overlap ────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 57 | // ── 1. Unknown sort key — documents the current behavior (throws) ───────────── |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 82 | // ── 2. Index freshness after CREATE ────────────────────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 118 | // ── 3. Index freshness after UPDATE ────────────────────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 181 | // ── 4. Index freshness after DELETE ────────────────────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 225 | // ── 5. Ascending order via `sort` ──────────────────────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/sorting.spec.ts | 255 | // ── 6. Descending order via `last` ──────────────────────────────────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/search.spec.ts | 25 | // ── 1. Title field is indexed — "gamma" only exists in the title ────────────── |
| MEDIUM | playwright/tina-playwright/tests/api/search.spec.ts | 45 | // ── 2. Query is precise — "gamma" does not return unrelated posts ───────────── |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 25 | // ─── InMemoryBridge ────────────────────────────────────────────────────────── |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 64 | // ─── Schema ────────────────────────────────────────────────────────────────── |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 86 | // ─── Fixtures ───────────────────────────────────────────────────────────────── |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 111 | // ─── Setup helper ──────────────────────────────────────────────────────────── |
| MEDIUM | packages/@tinacms/graphql/src/database/database.test.ts | 147 | // ─── Tests ─────────────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 22 | // ─── Helpers ─────────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 54 | // ─── makeFilter ───────────────────────────────────────────────────────────── |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 310 | // ─── makeFilterChain ───────────────────────────────────────────────────────── |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 457 | // ─── makeFilterSuffixes ────────────────────────────────────────────────────── |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 587 | // ─── makeIndexOpsForDocument ───────────────────────────────────────────────── |
| MEDIUM | …ckages/@tinacms/graphql/src/database/datalayer.test.ts | 695 | // ─── coerceFilterChainOperands ─────────────────────────────────────────────── |
| Severity | File | Line | Snippet |
|---|---|---|---|
| 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"]}," |
| 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"]}," |
| 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 |
| 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 |
| LOW | examples/next/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.0","major":"2","minor":"3","patch":"0"},"meta":{"flags":["experimentalData"]}," |
| LOW | examples/next/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.0","major":"2","minor":"3","patch":"0"},"meta":{"flags":["experimentalData"]}," |
| 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 |
| 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 |
| LOW | examples/hugo/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," |
| LOW | examples/hugo/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," |
| 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 |
| 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 |
| 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"]}," |
| 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"]}," |
| 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 |
| 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 |
| LOW | examples/astro/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.0","major":"2","minor":"3","patch":"0"},"meta":{"flags":["experimentalData"]}," |
| LOW | examples/astro/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.3.0","major":"2","minor":"3","patch":"0"},"meta":{"flags":["experimentalData"]}," |
| 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 |
| 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 |
| LOW | examples/react/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," |
| LOW | examples/react/kitchen-sink/tina/tina-lock.json | 1 | {"schema":{"version":{"fullVersion":"2.2.3","major":"2","minor":"2","patch":"3"},"meta":{"flags":["experimentalData"]}," |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | examples/next/tina-self-hosted-demo/next-env.d.ts | 1 | /// <reference types="next" /> |
| LOW | packages/create-tina-app/src/util/isNpm.js | 1 | // Copyright (c) 2015, npm, Inc |
| LOW | …ckages/@tinacms/mdx/src/next/shortcodes/mdast/index.ts | 361 | position, |
| LOW | …ckages/@tinacms/mdx/src/next/shortcodes/mdast/index.ts | 381 | // b.type + |
| LOW | …ges/@tinacms/app/src/fields/rich-text/monaco/index.tsx | 121 | // endColumn: word.endColumn, |
| LOW | packages/@tinacms/cli/src/next/cache-manager.test.ts | 61 | // `loadDatabaseFile` builds its outfile from the path returned here, so |
| LOW | packages/@tinacms/cli/src/next/config-manager.ts | 381 | // Use a timestamped subdirectory inside the project's generated cache folder |
| LOW | …ms/cli/src/next/localcontentpath-orchestration.test.ts | 1 | // End-to-end orchestration test for `localContentPath`. |
| LOW | …nacms/cli/src/next/codegen/consumer-resolution.test.ts | 1 | // Consumer-side regression test for the generated `./types.js` import in |
| LOW | …es/@tinacms/cli/src/next/commands/dev-command/index.ts | 321 | heading: '✅ 🦙 TinaCMS Dev Server is active:', |
| 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 |
| LOW | …ges/@tinacms/cli/src/cmds/init/prompts/authProvider.ts | 81 | export const chooseAuthProvider = async ({ |
| LOW | …ges/@tinacms/cli/src/cmds/init/prompts/authProvider.ts | 101 | // value: 'other', |
| LOW | …s/@tinacms/cli/src/cmds/forestry-migrate/util/index.ts | 241 | } |
| LOW | packages/@tinacms/cli/src/server/server.ts | 81 | // const levelHost = new ManyLevelHost( |
| LOW | packages/@tinacms/scripts/src/index.ts | 361 | |
| LOW | packages/tinacms/next-env.d.ts | 1 | /// <reference types="next" /> |
| LOW | …ins/mdx-field-plugin/plate/plugins/core/formatting.tsx | 61 | allow: HEADING_LEVELS, |
| LOW | …olkit/fields/plugins/mdx-field-plugin/monaco/index.tsx | 101 | monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true); |
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need |
| LOW | .github/workflows/codeql.yml | 61 | # Initializes the CodeQL tools for scanning. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | packages/create-tina-app/src/util/examples.ts | 45 | export async function downloadAndExtractExample(root: string, name: string) { |
| LOW | packages/create-tina-app/src/util/fileUtil.ts | 15 | export function folderContainsInstallConflicts(root: string): string[] { |
| LOW | packages/create-tina-app/src/util/fileUtil.ts | 83 | export function updateProjectPackageVersion(dir: string, version: string) { |
| LOW | packages/@tinacms/cli/src/next/database.ts | 44 | export async function createAndInitializeDatabase( |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 374 | function readYarnBerryLockVersions(contents: string): Map<string, string> { |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 399 | function normalizeInstalledVersion(version: string): string { |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 418 | function extractYarnBerryPackageName(descriptor: string): string | undefined { |
| LOW | …tinacms/cli/src/next/commands/doctor-command/doctor.ts | 425 | function getYarnBerryInstalledVersion( |
| LOW | …acms/cli/src/next/commands/dev-command/server/media.ts | 273 | function resolveStrictlyWithinBase(userPath: string, baseDir: string): string { |
| LOW | packages/@tinacms/cli/src/server/models/media.ts | 159 | function resolveStrictlyWithinBase(userPath: string, baseDir: string): string { |
| LOW | packages/@tinacms/search/src/fuzzy/distance.ts | 47 | export function damerauLevenshteinDistance(str1: string, str2: string): number { |
| LOW | packages/@tinacms/graphql/src/database/datalayer.ts | 250 | function operatorMatchesBinaryFilter( |
| LOW | packages/@tinacms/graphql/src/database/datalayer.ts | 318 | function operatorMatchesTernaryFilter( |
| LOW | …tinacms/src/toolkit/components/ui/date-time-picker.tsx | 114 | function getValidArrowMinuteOrSecond(value: string, step: number) { |
| LOW | …/src/toolkit/fields/plugins/image-field-plugin.test.ts | 34 | function imageFieldOnChangeOriginal( |
| LOW | …plugins/mdx-field-plugin/plate/plugins/core/common.tsx | 111 | export function normalizeLinksInCodeBlocks(node) { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | packages/tinacms/src/tina-cms.tsx | 175 | // schema is now required as the Global Nav and CMS utilize it |
| MEDIUM | packages/tinacms/src/rich-text/static.tsx | 90 | // Note: A more robust type would be a discriminated union of all possible node shapes. |
| 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 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …acms/cli/src/next/codegen/codegen/sdkPlugin/visitor.ts | 65 | print(node) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | packages/tinacms/src/toolkit/core/cms.ts | 29 | * #### Creating a CMS |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 55 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/require_gh_token.sh | 11 | # Check if token can create a relese |
| Severity | File | Line | Snippet |
|---|---|---|---|
| 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 |