Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser
This report summarizes scanner evidence for fabricjs/fabric.js, a TypeScript project with 31,464 GitHub stars. SynthScan examined 127,625 lines of code across 731 source files, recording 158 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 6.5 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 52 finding(s).
Are imports declared and package/API names verified? 106 finding(s).
Are wrappers, guards, and repeated structures necessary? 21 finding(s).
Which changes need focused human review? 158 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 158 distinct pattern matches across 5 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 |
|---|---|---|---|---|
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 218 | expect(cObj.oCoords.tl.corner.tl.x.toFixed(2), 'tl corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 221 | expect(cObj.oCoords.tl.corner.tl.y.toFixed(2), 'tl corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 224 | expect(cObj.oCoords.tl.corner.tr.x.toFixed(2), 'tl corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 227 | expect(cObj.oCoords.tl.corner.tr.y.toFixed(2), 'tl corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 230 | expect(cObj.oCoords.tl.corner.bl.x.toFixed(2), 'tl corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 233 | expect(cObj.oCoords.tl.corner.bl.y.toFixed(2), 'tl corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 236 | expect(cObj.oCoords.tl.corner.br.x.toFixed(2), 'tl corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 239 | expect(cObj.oCoords.tl.corner.br.y.toFixed(2), 'tl corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 242 | expect(cObj.oCoords.bl.corner.tl.x.toFixed(2), 'bl corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 245 | expect(cObj.oCoords.bl.corner.tl.y.toFixed(2), 'bl corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 248 | expect(cObj.oCoords.bl.corner.tr.x.toFixed(2), 'bl corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 251 | expect(cObj.oCoords.bl.corner.tr.y.toFixed(2), 'bl corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 254 | expect(cObj.oCoords.bl.corner.bl.x.toFixed(2), 'bl corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 257 | expect(cObj.oCoords.bl.corner.bl.y.toFixed(2), 'bl corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 260 | expect(cObj.oCoords.bl.corner.br.x.toFixed(2), 'bl corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 263 | expect(cObj.oCoords.bl.corner.br.y.toFixed(2), 'bl corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 266 | expect(cObj.oCoords.tr.corner.tl.x.toFixed(2), 'tr corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 269 | expect(cObj.oCoords.tr.corner.tl.y.toFixed(2), 'tr corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 272 | expect(cObj.oCoords.tr.corner.tr.x.toFixed(2), 'tr corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 275 | expect(cObj.oCoords.tr.corner.tr.y.toFixed(2), 'tr corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 278 | expect(cObj.oCoords.tr.corner.bl.x.toFixed(2), 'tr corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 281 | expect(cObj.oCoords.tr.corner.bl.y.toFixed(2), 'tr corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 284 | expect(cObj.oCoords.tr.corner.br.x.toFixed(2), 'tr corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 287 | expect(cObj.oCoords.tr.corner.br.y.toFixed(2), 'tr corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 290 | expect(cObj.oCoords.br.corner.tl.x.toFixed(2), 'br corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 293 | expect(cObj.oCoords.br.corner.tl.y.toFixed(2), 'br corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 296 | expect(cObj.oCoords.br.corner.tr.x.toFixed(2), 'br corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 299 | expect(cObj.oCoords.br.corner.tr.y.toFixed(2), 'br corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 302 | expect(cObj.oCoords.br.corner.bl.x.toFixed(2), 'br corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 305 | expect(cObj.oCoords.br.corner.bl.y.toFixed(2), 'br corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 308 | expect(cObj.oCoords.br.corner.br.x.toFixed(2), 'br corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 311 | expect(cObj.oCoords.br.corner.br.y.toFixed(2), 'br corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 314 | expect(cObj.oCoords.mtr.corner.tl.x.toFixed(2), 'mtr corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 317 | expect(cObj.oCoords.mtr.corner.tl.y.toFixed(2), 'mtr corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 320 | expect(cObj.oCoords.mtr.corner.tr.x.toFixed(2), 'mtr corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 323 | expect(cObj.oCoords.mtr.corner.tr.y.toFixed(2), 'mtr corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 326 | expect(cObj.oCoords.mtr.corner.bl.x.toFixed(2), 'mtr corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 329 | expect(cObj.oCoords.mtr.corner.bl.y.toFixed(2), 'mtr corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 332 | expect(cObj.oCoords.mtr.corner.br.x.toFixed(2), 'mtr corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 335 | expect(cObj.oCoords.mtr.corner.br.y.toFixed(2), 'mtr corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 445 | expect(cObj.oCoords.tl.corner.tl.x.toFixed(2), 'tl corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 448 | expect(cObj.oCoords.tl.corner.tl.y.toFixed(2), 'tl corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 451 | expect(cObj.oCoords.tl.corner.tr.x.toFixed(2), 'tl corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 454 | expect(cObj.oCoords.tl.corner.tr.y.toFixed(2), 'tl corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 457 | expect(cObj.oCoords.tl.corner.bl.x.toFixed(2), 'tl corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 460 | expect(cObj.oCoords.tl.corner.bl.y.toFixed(2), 'tl corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 463 | expect(cObj.oCoords.tl.corner.br.x.toFixed(2), 'tl corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 466 | expect(cObj.oCoords.tl.corner.br.y.toFixed(2), 'tl corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 469 | expect(cObj.oCoords.bl.corner.tl.x.toFixed(2), 'bl corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 472 | expect(cObj.oCoords.bl.corner.tl.y.toFixed(2), 'bl corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 475 | expect(cObj.oCoords.bl.corner.tr.x.toFixed(2), 'bl corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 478 | expect(cObj.oCoords.bl.corner.tr.y.toFixed(2), 'bl corner.tr.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 481 | expect(cObj.oCoords.bl.corner.bl.x.toFixed(2), 'bl corner.bl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 484 | expect(cObj.oCoords.bl.corner.bl.y.toFixed(2), 'bl corner.bl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 487 | expect(cObj.oCoords.bl.corner.br.x.toFixed(2), 'bl corner.br.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 490 | expect(cObj.oCoords.bl.corner.br.y.toFixed(2), 'bl corner.br.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 493 | expect(cObj.oCoords.tr.corner.tl.x.toFixed(2), 'tr corner.tl.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 496 | expect(cObj.oCoords.tr.corner.tl.y.toFixed(2), 'tr corner.tl.y').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 499 | expect(cObj.oCoords.tr.corner.tr.x.toFixed(2), 'tr corner.tr.x').toBe( | CODE |
| CRITICAL⚡ | …es/core/src/shapes/Object/Object-interactivity.spec.ts | 502 | expect(cObj.oCoords.tr.corner.tr.y.toFixed(2), 'tr corner.tr.y').toBe( | CODE |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tsconfig.json | 1 | { | COMMENT |
| LOW | tsconfig.json | 61 | "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, | COMMENT |
| LOW | tsconfig.json | 81 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. | COMMENT |
| LOW | tsconfig.json | 101 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. * | COMMENT |
| LOW | tsconfig-extensions.json | 1 | { | COMMENT |
| LOW | tsconfig-extensions.json | 61 | /* Emit */ | COMMENT |
| LOW | tsconfig-extensions.json | 81 | "noEmitOnError": false /* Disable emitting files if any type checking errors are reported. */, | COMMENT |
| LOW | tsconfig-extensions.json | 101 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ | COMMENT |
| LOW | .codesandbox/templates/next/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | packages/core/src/util/path/regex.ts | 21 | // const reClosePathCommand = String.raw`(Z)\s*`; | COMMENT |
| LOW | packages/core/src/util/path/regex.ts | 41 | // `|(?:${reCubicCurveShortcutCommand})` + | COMMENT |
| LOW | packages/core/src/shapes/Group.spec.ts | 1741 | // var rect1 = new fabric.Rect({ top: 1, left: 1, width: 3, height: 2, strokeWidth: 0, fill: 'red' }), | COMMENT |
| LOW | packages/core/src/shapes/Group.spec.ts | 1761 | // assert.equal(rect5.scaleX, 1, 'scaleX is back to original'); | COMMENT |
| LOW | packages/core/src/shapes/IText/ITextKeyBehavior.test.ts | 361 | // var iText = new fabric.IText('test', { styles: { 0: { 0: { fill: 'red' }, 1: { fill: 'blue' }}}}); | COMMENT |
| LOW | packages/core/src/shapes/Object/Object.spec.ts | 241 | expect(cObj.get('width'), 'width should be set').toBe(99); | COMMENT |
| LOW | packages/core/src/shapes/Object/Object.spec.ts | 1861 | // expect(object2.fill, 'once assigned object is red').toBe('red'); | COMMENT |
| LOW | packages/core/src/canvas/StaticCanvas.spec.ts | 2341 | expect(canvas2.nextRenderHandle).toBe(0); | COMMENT |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 2321 | // canvas._setupCurrentTransform(eventStub, rect, alreadySelected); | COMMENT |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 2341 | // target: canvas.upperCanvasEl, | COMMENT |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 2361 | // canvas._setupCurrentTransform(eventStub, rect); | COMMENT |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 2381 | // fabric.getFabricDocument().location.hostname + | COMMENT |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 2401 | // var callbackFired = false; | COMMENT |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1821 | expect(getTargets(), 'dispose should clear instances').toEqual([]); | COMMENT |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1841 | // expect(!!canvas.actionIsDisabled('mt', target, e), 'action is not disabled').toBe(false); | COMMENT |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1861 | // expect(!!canvas.actionIsDisabled('br', target, e), 'br action is disabled lockScalingX').toBe(true); | COMMENT |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1881 | // expect(!!canvas.actionIsDisabled('ml', target, e), 'ml action is disabled scaling locked').toBe(true); | COMMENT |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1901 | // target = new FabricObject(); | COMMENT |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1921 | // expect(!!canvas.actionIsDisabled('tl', target, e), 'tl action is not disabled lockSkewingY').toBe(false); | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/scorecard.yml | 41 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …x/templates/vanilla/src/testcases/clipPathSelection.ts | 7 | const sampleText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sem massa, suscipit non elit vel, v | CODE |
| LOW | …x/templates/vanilla/src/testcases/clipPathSelection.ts | 7 | const sampleText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sem massa, suscipit non elit vel, v | CODE |
| LOW | …ndbox/templates/vanilla/src/testcases/textbox-itext.ts | 4 | const textValue = 'Lorem ipsum dolor sit amet consecutrioeioreieo'; | CODE |
| LOW | …ndbox/templates/vanilla/src/testcases/textbox-itext.ts | 4 | const textValue = 'Lorem ipsum dolor sit amet consecutrioeioreieo'; | CODE |
| LOW | …/src/content/docs/docs/Old docs/fabric-intro-part-2.md | 402 | var shadowText3 = new fabric.Text("Lorem ipsum dolor sit", { | CODE |
| LOW | …/src/content/docs/docs/Old docs/fabric-intro-part-2.md | 435 | var loremIpsumDolor = new fabric.Text("Lorem ipsum dolor", { | CODE |
| LOW | …/src/content/docs/docs/Old docs/fabric-intro-part-2.md | 464 | var lineHeight3 = new fabric.Text('Lorem ipsum ...', { | CODE |
| LOW | …/src/content/docs/docs/Old docs/fabric-intro-part-2.md | 467 | var lineHeight1 = new fabric.Text('Lorem ipsum ...', { | CODE |
| LOW | …ite/src/components/CarbonAd/InlineCarbonAdReminder.jsx | 22 | key="placeholder" | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 260 | 'lorem ipsum\ndolor\nsit Amet2\nconsectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 276 | 'lorem ipsum\ndolor\nsit Amet2\nconsectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 732 | 'lorem ipsum\ndolor\nsit Amet2\nconsectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 768 | 'lorem ipsum\ndolor\nsit Amet2\nconsectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 806 | 'lorem ipsum\ndolor\nsit Amet2\nconsectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 893 | 'lorem ipsum dolor sit Amet consectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 893 | 'lorem ipsum dolor sit Amet consectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 926 | const text = new TestTextboxClass('lorem ipsum dolor sit Amet sit Amet', { | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 926 | const text = new TestTextboxClass('lorem ipsum dolor sit Amet sit Amet', { | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 969 | 'lorem ipsum dolor sit Amet consectgetur', | CODE |
| LOW | …es/e2e/tests/visual-output/rendering/testcases/text.ts | 969 | 'lorem ipsum dolor sit Amet consectgetur', | CODE |
| LOW | …/visual-output/rendering/testcases/textWithClipPath.ts | 10 | const sampleText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sem massa, suscipit non elit vel, | CODE |
| LOW | …/visual-output/rendering/testcases/textWithClipPath.ts | 10 | const sampleText = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sem massa, suscipit non elit vel, | CODE |
| LOW | …tests/visual-output/rendering/testcases/to-data-url.ts | 4 | const canvasWithObjects = String.raw`{"version":"7.0.0-beta1","objects":[{"type":"Rect","version":"7.0.0-beta1","left":4 | CODE |
| LOW | …tests/visual-output/rendering/testcases/to-data-url.ts | 4 | const canvasWithObjects = String.raw`{"version":"7.0.0-beta1","objects":[{"type":"Rect","version":"7.0.0-beta1","left":4 | CODE |
| LOW | packages/e2e/tests/text/drag&drop/index.spec.ts | 330 | text: 'lorem ipsum\ndolor\nsit Amet2\nconsectgetur', | CODE |
| LOW | packages/e2e/tests/text/drag&drop/index.ts | 197 | const b = new fabric.Textbox('lorem ipsum\ndolor\nsit Amet2\nconsectgetur', { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/gradient-controls/src/linearGradientControls.ts | 11 | export function createLinearGradientControls( | CODE |
| LOW | …ckages/gradient-controls/src/linearGradientHandlers.ts | 37 | function linearGradientColorPositionHandler( | CODE |
| LOW | …ckages/gradient-controls/src/linearGradientHandlers.ts | 62 | function linearGradientCoordPositionHandler( | CODE |
| LOW | …ckages/gradient-controls/src/linearGradientHandlers.ts | 148 | function renderCircleControlWithLine( | CODE |
| LOW | packages/cropping-controls/src/controlRendering.ts | 85 | export function renderRoundedSegmentControl( | CODE |
| LOW | packages/cropping-controls/src/croppingHandlers.ts | 216 | export function ghostScalePositionHandler( | CODE |
| LOW | packages/core/src/gradient/Gradient.spec.ts | 51 | function createRadialGradientWithInternalRadius() { | CODE |
| LOW | packages/core/src/gradient/Gradient.spec.ts | 69 | function createRadialGradientSwapped() { | CODE |
| LOW | packages/core/src/util/path/typechecks.ts | 103 | export function isAbsCubicCurveShortcutCmd( | CODE |
| LOW | packages/core/src/util/path/typechecks.ts | 108 | export function isRelCubicCurveShortcutCmd( | CODE |
| LOW | packages/core/src/util/path/typechecks.ts | 125 | export function isAbsQuadraticCurveShortcutCmd( | CODE |
| LOW | packages/core/src/util/path/typechecks.ts | 130 | export function isRelQuadraticCurveShortcutCmd( | CODE |
| LOW | packages/core/src/shapes/Object/StackedObject.spec.ts | 35 | function prepareObjectsForTreeTesting() { | CODE |
| LOW | …ages/core/src/parser/recursivelyParseGradientsXlink.ts | 16 | export function recursivelyParseGradientsXlink( | CODE |
| LOW | packages/core/src/parser/getGlobalStylesForElement.ts | 8 | export function getGlobalStylesForElement( | CODE |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 674 | function assertObjectsInOrderOnCanvas( | CODE |
| LOW | packages/core/src/canvas/Canvas.spec.ts | 694 | function assertNestedObjectsInOrder( | CODE |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1063 | function setSubTargetCheckRecursive(obj: any) { | CODE |
| LOW | packages/core/src/canvas/Canvas-events.spec.ts | 1131 | function setSubTargetCheckRecursive(obj: any) { | CODE |
| LOW | …e/tests/visual-output/rendering/testcases/free-draw.ts | 961 | async function renderFreedrawingWithDecimateToPoint( | CODE |
| LOW | …tput/rendering/testcases/global-composite-operation.ts | 151 | function generateGlobalCompositeTests(): renderTestType[] { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/core/src/canvas/StaticCanvas.ts | 507 | // but the code is robust enough to mostly work with flipping | COMMENT |