Repository Analysis

tinymce/tinymce

The world's #1 JavaScript library for rich text editing. Available for React, Vue and Angular

1.2 Likely human-written View on GitHub
1.2
Adjusted Score
1.2
Raw Score
100%
Time Factor
2026-05-29
Last Push
16,203
Stars
TypeScript
Language
460,611
Lines of Code
4511
Files
452
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 6HIGH 2MEDIUM 25LOW 419

Pattern Findings

452 matches across 8 categories. Click a row to expand file-level details.

Fake / Example Data359 hits · 336 pts
SeverityFileLineSnippet
LOW…dules/tinymce/src/core/demo/html/source_dump_demo.html10 <p><iframe src="https://google.com/"><p>Lorem ipsum</p></iframe></p>
LOW…ules/tinymce/src/core/demo/html/context_form_demo.html17 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOW…ules/tinymce/src/core/demo/html/context_form_demo.html17 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOW…ules/tinymce/src/core/demo/html/context_form_demo.html31 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOW…ules/tinymce/src/core/demo/html/context_form_demo.html31 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/responsive_demo.html18 <p>Does your lorem ipsum text long for something a little meatier? Give our generator a try… it’s tasty!</p>
LOWmodules/tinymce/src/core/demo/html/responsive_demo.html105 <p>Does your lorem ipsum text long for something a little meatier? Give our generator a try… it’s tasty!</p>
LOWmodules/tinymce/src/core/demo/html/responsive_demo.html117 <p>Does your lorem ipsum text long for something a little meatier? Give our generator a try… it’s tasty!</p>
LOWmodules/tinymce/src/core/demo/html/readonly_demo.html15 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/readonly_demo.html15 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/readonly_demo.html28 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/readonly_demo.html28 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/full_demo.html15 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/full_demo.html15 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/full_demo.html28 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOWmodules/tinymce/src/core/demo/html/full_demo.html28 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed augue velit. Sed viverra aliquet fringill
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html11 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus s
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html11 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus s
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html26 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus s
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html26 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus s
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html42 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus s
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html42 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus s
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html77 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html77 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html92 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html92 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html108 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html108 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html132 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/demo/html/sticky_toolbar_demo.html132 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id semper purus, non dapibus sem. Vivamus maximus sap
LOW…es/tinymce/src/core/test/ts/module/test/DialogUtils.ts13 html: 'Lorem ipsum'
LOW…ymce/src/core/test/ts/browser/DragDropOverridesTest.ts293 const testFile1 = new window.File([ 'Lorem ipsum' ], 'test.txt', { type: 'text/plain' });
LOW…ymce/src/core/test/ts/browser/DragDropOverridesTest.ts294 const testFile2 = new window.File([ '<p>Lorem ipsum</p>' ], 'test2.html', { type: 'text/html' });
LOW…ymce/src/core/test/ts/browser/DragDropOverridesTest.ts449 const testFile1 = new window.File([ 'Lorem ipsum' ], 'test.txt', { type: 'text/plain' });
LOW…ymce/src/core/test/ts/browser/DragDropOverridesTest.ts455 const testFile2 = new window.File([ '<p>Lorem ipsum</p>' ], 'test2.html', { type: 'text/html' });
LOW…ymce/src/core/test/ts/browser/DragDropOverridesTest.ts461 const testFile3 = new window.File([ 'Lorem ipsum' ], 'test3.rtf', { type: 'text/rtf' });
LOW…tinymce/src/core/test/ts/browser/html/DomParserTest.ts1757 input: '<iframe src="https://example.com"><p>Lorem ipsum</p></iframe>'
LOW…tinymce/src/core/test/ts/browser/html/DomParserTest.ts1760 input: '<iframe srcdoc="Lorem ipsum"></iframe>'
LOW…tinymce/src/core/test/ts/browser/html/DomParserTest.ts1783 '<iframe src="https://example.com"><p>Lorem ipsum</p></iframe>',
LOW…tinymce/src/core/test/ts/browser/html/DomParserTest.ts1793 '<iframe src="https://example.com"><p>Lorem ipsum</p></iframe>',
LOW…tinymce/src/core/test/ts/browser/html/DomParserTest.ts1794 '<iframe srcdoc="Lorem ipsum"></iframe>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts31 '<p>Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts33 '<p dir="ltr">Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts38 '<p>Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts40 '<p dir="rtl">Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts45 '<p dir="ltr">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts47 '<p>Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts52 '<p dir="rtl">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts54 '<p>Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts59 '<p dir="rtl" style="direction: rtl;">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts61 '<p dir="ltr" style="direction: ltr;">Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts66 '<p dir="ltr" style="direction: ltr;">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts68 '<p dir="rtl" style="direction: rtl;">Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts73 '<p dir="ltr" style="direction: ltr;">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts75 '<p>Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts80 '<p dir="rtl" style="direction: rtl;">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts82 '<p>Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts87 '<p style="direction: rtl;">Lorem ipsum</p>',
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts89 '<p dir="ltr" style="direction: ltr;">Lorem ipsum</p>'
LOW…s/directionality/test/ts/browser/DirectionStyleTest.ts94 '<p style="direction: ltr;">Lorem ipsum</p>',
299 more matches not shown…
Hallucination Indicators6 hits · 75 pts
SeverityFileLineSnippet
CRITICAL…e/src/themes/silver/main/ts/ui/dialog/WindowManager.ts92 return openInlineDialog(config, extras.backstages.popup.shared.anchors.inlineDialog(), closeWindow, params);
CRITICAL…e/src/themes/silver/main/ts/ui/dialog/WindowManager.ts94 return openBottomInlineDialog(config, extras.backstages.popup.shared.anchors.inlineBottomDialog(), closeWindow,
CRITICAL…e/src/themes/silver/main/ts/ui/dialog/WindowManager.ts96 return openInlineDialog(config, extras.backstages.popup.shared.anchors.cursor(), closeWindow, params);
CRITICAL…e/src/themes/silver/main/ts/ui/dialog/WindowManager.ts162 const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();
CRITICAL…e/src/themes/silver/main/ts/ui/dialog/WindowManager.ts265 const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();
CRITICAL…rc/test/ts/browser/position/NodeInFramePositionTest.ts54 const node = data.classic.element.dom.contentWindow.document.querySelector('#p3');
Decorative Section Separators22 hits · 69 pts
SeverityFileLineSnippet
MEDIUMbin/release-libs.sh6# ============================================================================
MEDIUMbin/release-libs.sh40# ============================================================================
MEDIUMbin/release-libs.sh63# ============================================================================
MEDIUMbin/release-libs.sh65# ============================================================================
MEDIUMbin/release-libs.sh138# ============================================================================
MEDIUMbin/release-libs.sh140# ============================================================================
MEDIUMbin/release-libs.sh338# ============================================================================
MEDIUMbin/release-libs.sh340# ============================================================================
MEDIUMbin/release-libs.sh403# ============================================================================
MEDIUMbin/release-libs.sh405# ============================================================================
MEDIUMbin/lerna-libs-version-hook.sh6# ============================================================================
MEDIUMbin/lerna-libs-version-hook.sh31# ============================================================================
MEDIUMbin/update-private-deps.sh5# ============================================================================
MEDIUMbin/update-private-deps.sh21# ============================================================================
MEDIUMbin/update-private-deps.sh37# ============================================================================
MEDIUMbin/update-private-deps.sh39# ============================================================================
MEDIUMbin/update-private-deps.sh56# ============================================================================
MEDIUMbin/update-private-deps.sh58# ============================================================================
MEDIUMbin/update-private-deps.sh126# ============================================================================
MEDIUMbin/update-private-deps.sh128# ============================================================================
MEDIUMbin/update-private-deps.sh194# ============================================================================
MEDIUMbin/update-private-deps.sh196# ============================================================================
Over-Commented Block49 hits · 49 pts
SeverityFileLineSnippet
LOWbin/release-libs.sh1#!/usr/bin/env bash
LOWbin/release-libs.sh21#
LOWbin/release-libs.sh161# Assumes packages are scoped as @ephox/* or @tinymce/*
LOWbin/lerna-libs-version-hook.sh1#!/usr/bin/env bash
LOWbin/lerna-libs-version-hook.sh21# This hook:
LOWbin/update-private-deps.sh1#!/usr/bin/env bash
LOWmodules/tinymce/src/core/demo/ts/demo/ResponsiveDemo.ts81 add_unload_trigger: false,
LOWmodules/tinymce/src/core/demo/ts/demo/ResponsiveDemo.ts101 // {
LOW…mce/src/core/demo/ts/demo/ContentSecurityPolicyDemo.ts101 // toolbar3: 'bullist numlist outdent indent | link image',
LOWmodules/tinymce/src/core/demo/ts/demo/FullDemo.ts141 // toolbar: [
LOW…s/tinymce/src/core/test/ts/browser/ReadOnlyModeTest.ts321
LOWmodules/tinymce/src/core/main/ts/DragDropOverrides.ts181 // (within MouseRange pixels of the left edge)
LOWmodules/tinymce/src/plugins/table/demo/ts/demo/Demo.ts21 ],
LOW…es/tinymce/src/plugins/charmap/main/ts/core/CharMap.ts161 ]
LOW…ymce/src/themes/silver/demo/ts/demo/ButtonSetupDemo.ts21 }
LOW…les/tinymce/src/themes/silver/demo/ts/demo/PlayDemo.ts81 },
LOW…mes/silver/main/ts/ui/selector/TableSelectorHandles.ts21 readonly otherCells?: {
LOW…/themes/silver/main/ts/ui/menus/menu/MenuConversion.ts81};
LOW…ain/ts/ui/menus/menu/searchable/SearchableMenuField.ts121 // Use "input" to handle keydown, paste etc.
LOW…ain/ts/ui/menus/menu/searchable/SearchableMenuField.ts141 // keydown event, so that it doesn't have the default browser behaviour, and
LOW…ules/tinymce/src/themes/silver/main/ts/modes/Inline.ts41 Events.fireResizeContent(editor, e);
LOW…ules/tinymce/src/themes/silver/main/ts/modes/Inline.ts121
LOWmodules/sugar/src/test/ts/browser/DimensionTest.ts261 const detachedElm = SugarElement.fromHtml<HTMLDivElement>('<div>a</div>');
LOWmodules/sugar/src/test/ts/browser/CompareTest.ts41 // // DOCUMENT_POSITION_CONTAINED_BY 16
LOWmodules/sugar/src/test/ts/browser/CompareTest.ts61 // TestPage.t6, TestPage.t7);
LOW…oy/src/main/ts/ephox/alloy/ui/single/TieredMenuSpec.ts301 // 2022-08-16 This seems to be the only code in alloy that actually uses
LOW…/src/main/ts/ephox/alloy/ui/composite/TypeaheadSpec.ts141 // This getActiveMenu relies on a menu being highlighted / active
LOW…y/src/main/ts/ephox/alloy/ui/schema/TypeaheadSchema.ts81 // it up from the system by uid, because the input and the tieredmenu
LOW…y/src/main/ts/ephox/alloy/ui/schema/TypeaheadSchema.ts101 // with the menu, but instead by the Highlighting API call that happens automatically
LOW…y/src/main/ts/ephox/alloy/ui/schema/TypeaheadSchema.ts121 detail.lazyTypeaheadComp.get().each((input) => {
LOW…oy/src/main/ts/ephox/alloy/positioning/view/Bounder.ts161 layout: candidate.label,
LOW…dules/alloy/src/main/ts/ephox/alloy/api/ui/Dropdown.ts61 },
LOW…in/ts/ephox/alloy/behaviour/blocking/BlockingSchema.ts1import { FieldSchema } from '@ephox/boulder';
LOW…ts/ephox/alloy/behaviour/highlighting/HighlightApis.ts41 // for the new thing we are going to highlight. It's a rare case, but we don't
LOW…src/main/ts/ephox/alloy/behaviour/docking/Dockables.ts181
LOW…src/main/ts/ephox/alloy/behaviour/docking/Dockables.ts281const tryMorphToOriginalOrUpdateFixed = (
LOWmodules/bridge/src/demo/ts/dialogs/TableCellDialog.ts21 // },
LOWmodules/bridge/src/demo/ts/dialogs/TableCellDialog.ts41 // },
LOWmodules/bridge/src/demo/ts/dialogs/TableCellDialog.ts61 // },
LOWmodules/oxide/src/less/theme/globals/utils.less1//
LOWmodules/polaris/src/test/ts/atomic/api/RegexesTest.ts121 // TODO: requires more lookbehind assertions and much permutations.
LOW…arwin/src/demo/ts/ephox/darwin/demo/DarwinTableDemo.ts41// const table = SugarElement.fromHtml(
LOW…s/snooker/src/demo/ts/ephox/snooker/demo/DetectDemo.ts41 // '<tr>' +
LOW…s/snooker/src/demo/ts/ephox/snooker/demo/DetectDemo.ts61 // '<td rowspan=2>x</td>' +
LOWmodules/snooker/src/test/ts/browser/CopySelectedTest.ts301 [ s('A', 1, 1), ns('B', 1, 1), ns('C', 1, 1) ],
LOW…-components/src/main/ts/components/tooltip/Tooltip.tsx121 }
LOW…dules/robin/src/test/ts/atomic/clumps/FracturesTest.ts141 '"cbab"' +
LOW…dules/robin/src/test/ts/atomic/clumps/FracturesTest.ts161 // '"aac"' +
LOW…obin/src/main/ts/ephox/robin/api/general/TextSearch.ts21const nextChar: NextCharFn = TextSearchBase.next;
Cross-Language Confusion (JS/TS)2 hits · 15 pts
SeverityFileLineSnippet
HIGH…ain/ts/ui/menus/menu/searchable/SearchableMenuField.ts75 // neither of these things to happen, so we return None here to say that it hasn't been
HIGH…ain/ts/ephox/alloy/behaviour/coupling/CouplingState.ts46 // It's a valid name, so return None, because it hasn't been built yet.
Verbosity Indicators6 hits · 9 pts
SeverityFileLineSnippet
LOWmodules/tinymce/src/core/main/ts/fmt/ExpandRange.ts165 // we can't remove it now since we need to check if it can be wrapped
LOWmodules/tinymce/src/core/main/ts/undo/Levels.ts53 // If we have a path bookmark, we need to check if the bookmark location was a fake caret.
LOWmodules/tinymce/src/core/main/ts/paste/PasteBin.ts87 // for example: <img style="float: right"> we need to check if any of them contains some useful html.
LOW…/themes/silver/main/ts/ui/window/SilverDialogEvents.ts36 // We need to check if the focused element is disabled because apparently firefox likes to leave focus on disabled e
LOW…es/alloy/src/main/ts/ephox/alloy/alien/OffsetOrigin.ts6 // all other browsers. So we need to check if the element is fixed and if so then
LOW…snooker/src/main/ts/ephox/snooker/resize/BarManager.ts140 * Because the resizers were moved into the editor for inline mode, we need to check if the event target is not a
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippet
MEDIUM…ymce/src/themes/silver/main/ts/ui/controls/Controls.ts23// Essentially, the `editorOffCell` is used store the onDestroy function returned
MEDIUM…src/main/ts/ephox/alloy/behaviour/docking/Dockables.ts65 // Essentially, we are just getting the bounding client rect left here,
MEDIUM…/alloy/src/main/ts/ephox/alloy/events/DefaultEvents.ts11// to recurse infinitely. Essentially, if the originator of the focus call is the same
Redundant / Tautological Comments5 hits · 8 pts
SeverityFileLineSnippet
LOWbin/release-libs.sh142# Check if package should be excluded from processing
LOWbin/release-libs.sh222# Check if package has unreleased changes
LOWbin/lerna-libs-version-hook.sh56# Check if package should skip changie
LOWbin/lerna-libs-version-hook.sh111 # Check if this package should skip changie
LOWbin/lerna-libs-version-hook.sh118 # Check if package has unreleased changes