The Privacy First PDF Toolkit
This report summarizes scanner evidence for alam00000/bentopdf, a JavaScript project with 16,216 GitHub stars. SynthScan examined 714,789 lines of code across 3991 source files, recording 695 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 2.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? 139 finding(s).
Are imports declared and package/API names verified? 6 finding(s).
Are wrappers, guards, and repeated structures necessary? 630 finding(s).
Which changes need focused human review? 695 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 695 distinct pattern matches across 10 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 | cloudflare/wasm-wrangler.toml | 5 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wasm-wrangler.toml | 7 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wasm-wrangler.toml | 22 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wasm-wrangler.toml | 24 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | cloudflare/wasm-wrangler.toml | 39 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | cloudflare/wasm-wrangler.toml | 41 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | cloudflare/wasm-wrangler.toml | 47 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | cloudflare/wasm-wrangler.toml | 49 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wasm-wrangler.toml | 63 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wasm-wrangler.toml | 65 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wrangler.toml | 9 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wrangler.toml | 11 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wrangler.toml | 31 | # ============================================================================= | COMMENT |
| MEDIUM | cloudflare/wrangler.toml | 33 | # ============================================================================= | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 57 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 59 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 72 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 74 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 93 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 95 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 117 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 119 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 141 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 143 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 163 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/hostinger.md | 165 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/sk/self-hosting/hostinger.md | 181 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/sk/self-hosting/hostinger.md | 183 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/sk/self-hosting/hostinger.md | 189 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/sk/self-hosting/hostinger.md | 191 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/sk/self-hosting/hostinger.md | 197 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/sk/self-hosting/hostinger.md | 199 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/apache.md | 113 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/apache.md | 115 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/apache.md | 131 | # ============================================ | COMMENT |
| MEDIUM | docs/sk/self-hosting/apache.md | 133 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 57 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 59 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 72 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 74 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 93 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 95 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 117 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 119 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 141 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 143 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 163 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/hostinger.md | 165 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/pl/self-hosting/hostinger.md | 181 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/pl/self-hosting/hostinger.md | 183 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/pl/self-hosting/hostinger.md | 189 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/pl/self-hosting/hostinger.md | 191 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/pl/self-hosting/hostinger.md | 197 | # ============================================ | COMMENT |
| MEDIUM⚡ | docs/pl/self-hosting/hostinger.md | 199 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/apache.md | 113 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/apache.md | 115 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/apache.md | 131 | # ============================================ | COMMENT |
| MEDIUM | docs/pl/self-hosting/apache.md | 133 | # ============================================ | COMMENT |
| MEDIUM | docs/vi/self-hosting/hostinger.md | 57 | # ============================================ | COMMENT |
| MEDIUM | docs/vi/self-hosting/hostinger.md | 59 | # ============================================ | COMMENT |
| 490 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vite.config.ts | 233 | function buildCorsProxyAllowedHosts(): Set<string> { | CODE |
| LOW | vite.config.ts | 279 | function createCorsProxyMiddleware(): Connect.NextHandleFunction { | CODE |
| LOW | vite.config.ts | 447 | function devPageTranslationsPlugin(): Plugin { | CODE |
| LOW | cloudflare/cors-proxy-worker.js | 205 | async function hostnameResolvesToPrivate(hostname) { | CODE |
| LOW | public/sw.js | 124 | async function cacheFirstStrategyWithDedup(request, isCDN) { | CODE |
| LOW⚡ | public/libreoffice-wasm/soffice.js | 2 | function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_ | CODE |
| LOW | public/workers/extract-attachments.worker.js | 23 | function extractAttachmentsFromPDFsInWorker(fileBuffers, fileNames) { | CODE |
| LOW | public/workers/edit-attachments.worker.js | 23 | function getAttachmentsFromPDFInWorker(fileBuffer, fileName) { | CODE |
| LOW | public/workers/edit-attachments.worker.js | 97 | function editAttachmentsInPDFInWorker( | CODE |
| LOW | public/workers/json-to-pdf.worker.js | 23 | function convertJSONsToPDFInWorker(fileBuffers, fileNames) { | CODE |
| LOW | public/workers/add-attachments.worker.js | 45 | function addAttachmentsToPDFInWorker( | CODE |
| LOW | public/workers/pdf-to-json.worker.js | 23 | function convertPDFsToJSONInWorker(fileBuffers, fileNames) { | CODE |
| LOW | public/workers/table-of-contents.worker.js | 23 | function generateTableOfContentsInWorker( | CODE |
| LOW | scripts/include-docs-in-dist.js | 34 | function findUnlistedInlineScripts(dir, unlisted = new Set()) { | CODE |
| LOW | src/js/main.ts | 1273 | function getReservedShortcutWarning( | CODE |
| LOW | src/js/ui.ts | 177 | function initializeOrganizeSortable(containerId: string) { | CODE |
| LOW | src/js/logic/rotate-custom-page.ts | 63 | function updateAllRotationDisplays() { | CODE |
| LOW | src/js/logic/form-filler-page.ts | 225 | async function processAndDownloadForm() { | CODE |
| LOW | src/js/logic/rotate-pdf-page.ts | 51 | function updateAllRotationDisplays() { | CODE |
| LOW | src/js/logic/pdf-workflow-page.ts | 1412 | function applyConditionalVisibility( | CODE |
| LOW | src/js/logic/form-creator.ts | 506 | function getPreviewBackgroundColor( | CODE |
| LOW | src/js/logic/form-creator.ts | 528 | function clearTransparentWidgetBackground( | CODE |
| LOW | src/js/logic/form-creator.ts | 544 | function clearTransparentFieldWidgetBackgrounds( | CODE |
| LOW | src/js/logic/form-creator.ts | 902 | function applyResizeWithConstraints( | CODE |
| LOW | src/js/logic/merge-pdf-page.ts | 52 | function initializeFileListSortable() { | CODE |
| LOW | src/js/logic/merge-pdf-page.ts | 75 | function initializePageThumbnailsSortable() { | CODE |
| LOW | src/js/logic/merge-pdf-page.ts | 103 | async function renderPageMergeThumbnails() { | CODE |
| LOW | src/js/logic/validate-signature-pdf.ts | 621 | function getSignatureAlgorithmName(oid: string): string { | CODE |
| LOW | src/js/logic/validate-signature-pdf.ts | 1012 | async function performCryptoVerification( | CODE |
| LOW | src/js/logic/bookmark-pdf.ts | 1415 | async function renderPageWithDestination( | CODE |
| LOW | src/js/logic/page-dimensions-page.ts | 253 | function analyzeAndDisplayDimensions() { | CODE |
| LOW | src/js/logic/ocr-pdf-page.ts | 92 | function updateLanguageAvailabilityNotice() { | CODE |
| LOW | src/js/logic/duplicate-organize.ts | 23 | function initializePageGridSortable() { | CODE |
| LOW | src/js/logic/duplicate-organize.ts | 89 | export async function renderDuplicateOrganizeThumbnails() { | CODE |
| LOW | src/js/logic/duplicate-organize.ts | 189 | export async function processAndSave() { | CODE |
| LOW | src/js/logic/compare-pdfs-page.ts | 84 | function getEffectiveCategoryFilter(): CompareCategoryFilterState { | CODE |
| LOW | src/js/logic/compare-pdfs-page.ts | 179 | function updateOverlayScopeButtons() { | CODE |
| LOW | src/js/logic/compare-pdfs-page.ts | 198 | function updateExportMenuForViewMode() { | CODE |
| LOW | src/js/logic/compare-pdfs-page.ts | 211 | function updateOverlayPreviewState() { | CODE |
| LOW | src/js/utils/tesseract-language-availability.ts | 40 | export function resolveConfiguredTesseractAvailableLanguages( | CODE |
| LOW | src/js/utils/tesseract-language-availability.ts | 51 | export function getAvailableTesseractLanguageEntries( | CODE |
| LOW | src/js/utils/tesseract-language-availability.ts | 67 | export function getUnavailableTesseractLanguages( | CODE |
| LOW | src/js/utils/tesseract-language-availability.ts | 82 | export function formatTesseractLanguageList(codes: string[]): string { | CODE |
| LOW | src/js/utils/tesseract-language-availability.ts | 86 | function buildUnsupportedLanguageMessage( | CODE |
| LOW | src/js/utils/tesseract-language-availability.ts | 121 | export function assertTesseractLanguagesAvailable( | CODE |
| LOW | src/js/utils/shortcuts-init.ts | 3 | export function initializeGlobalShortcuts() { | CODE |
| LOW | src/js/utils/load-pdf-document.ts | 52 | export async function removeUnreferencedObjects( | CODE |
| LOW | src/js/utils/sanitize.ts | 240 | function removeEmbeddedFilesFromDoc(pdfDoc: PDFDocument) { | CODE |
| LOW | src/js/utils/sanitize.ts | 314 | function createOptionalContentVisibility(pdfDoc: PDFDocument) { | CODE |
| LOW | src/js/utils/sanitize.ts | 834 | function removeStructureTreeFromDoc(pdfDoc: PDFDocument) { | CODE |
| LOW | src/js/utils/helpers.ts | 252 | export function resetAndReloadTool(preResetCallback?: () => void) { | CODE |
| LOW | src/js/utils/pdf-content-tokens.ts | 55 | function skipWhitespaceAndComments(bytes: Uint8Array, pos: number): number { | CODE |
| LOW | src/js/utils/disabled-tools.ts | 64 | export function getEditorDisabledCategories(): string[] { | CODE |
| LOW | src/js/utils/password-prompt.ts | 128 | function validatePasswordWithPdfjs( | CODE |
| LOW | src/js/utils/password-prompt.ts | 805 | export async function loadPdfWithPasswordPrompt( | CODE |
| LOW | src/js/utils/wasm-provider.ts | 42 | function collectBuiltinTrustedHosts(): Set<string> { | CODE |
| LOW | src/js/utils/freetext-flatten.ts | 187 | export async function flattenFreeTextToPageText( | CODE |
| LOW | src/js/utils/images-to-pdf-lib.ts | 11 | export async function normalizeImageToEmbeddable( | CODE |
| LOW | src/js/utils/tesseract-runtime.ts | 36 | function getDefaultTesseractAssetEnv(): TesseractAssetEnv { | CODE |
| LOW⚡ | src/js/utils/tesseract-runtime.ts | 52 | export function resolveTesseractAssetConfig( | CODE |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | TRANSLATION.md | 87 | ### Step 1: Create Translation Files | COMMENT |
| LOW | TRANSLATION.md | 97 | ### Step 2: Translate the JSON Files | COMMENT |
| LOW | TRANSLATION.md | 133 | ### Step 3: Register the Language | COMMENT |
| LOW | TRANSLATION.md | 150 | ### Step 4: Update Vite Configuration | COMMENT |
| LOW | TRANSLATION.md | 173 | ### Step 5: Test Your Translation | COMMENT |
| LOW | TRANSLATION.md | 183 | ### Step 6: Build and Verify Static Files | COMMENT |
| LOW | docs/contributing.md | 48 | ### Step 1: Create the Logic File | COMMENT |
| LOW | docs/contributing.md | 61 | ### Step 2: Create the HTML Page | COMMENT |
| LOW | docs/contributing.md | 65 | ### Step 3: Register the Tool | COMMENT |
| LOW | docs/contributing.md | 78 | ### Step 4: Add to Build Config | COMMENT |
| LOW | docs/contributing.md | 86 | ### Step 5: Add Translations | COMMENT |
| LOW⚡ | docs/self-hosting/netlify.md | 11 | ### Step 1: Connect Repository | COMMENT |
| LOW⚡ | docs/self-hosting/netlify.md | 18 | ### Step 2: Configure Build Settings | COMMENT |
| LOW⚡ | docs/self-hosting/netlify.md | 26 | ### Step 3: Deploy | COMMENT |
| LOW | docs/self-hosting/nginx.md | 11 | ## Step 1: Build the Project | COMMENT |
| LOW | docs/self-hosting/nginx.md | 26 | ## Step 2: Copy Files | COMMENT |
| LOW | docs/self-hosting/nginx.md | 34 | ## Step 3: Nginx Configuration | COMMENT |
| LOW | docs/self-hosting/nginx.md | 114 | ## Step 4: Enable the Site | COMMENT |
| LOW | docs/self-hosting/nginx.md | 122 | ## Step 5: SSL with Let's Encrypt | COMMENT |
| LOW | docs/self-hosting/vercel.md | 11 | ### Step 1: Fork the Repository | COMMENT |
| LOW | docs/self-hosting/vercel.md | 15 | ### Step 2: Import to Vercel | COMMENT |
| LOW | docs/self-hosting/vercel.md | 28 | ### Step 3: Environment Variables (Optional) | COMMENT |
| LOW | docs/self-hosting/vercel.md | 40 | ### Step 4: Deploy | COMMENT |
| LOW | docs/self-hosting/hostinger.md | 10 | ## Step 1: Build the Project | COMMENT |
| LOW | docs/self-hosting/hostinger.md | 21 | ## Step 2: Upload to Hostinger | COMMENT |
| LOW | docs/self-hosting/hostinger.md | 45 | ## Step 3: Create .htaccess File | COMMENT |
| LOW | docs/self-hosting/aws.md | 11 | ## Step 1: Create S3 Bucket | COMMENT |
| LOW | docs/self-hosting/aws.md | 23 | ## Step 2: Build and Upload | COMMENT |
| LOW | docs/self-hosting/aws.md | 55 | ## Step 3: Create CloudFront Distribution | COMMENT |
| LOW | docs/self-hosting/aws.md | 127 | ## Step 4: S3 Bucket Policy | COMMENT |
| LOW | docs/self-hosting/aws.md | 153 | ## Step 5: Custom Error Pages | COMMENT |
| LOW | docs/self-hosting/apache.md | 11 | ## Step 1: Build the Project | COMMENT |
| LOW | docs/self-hosting/apache.md | 26 | ## Step 2: Copy Files | COMMENT |
| LOW | docs/self-hosting/apache.md | 34 | ## Step 3: Apache Configuration | COMMENT |
| LOW⚡ | docs/self-hosting/apache.md | 142 | ## Step 5: Enable Required Modules | COMMENT |
| LOW⚡ | docs/self-hosting/apache.md | 152 | ## Step 6: Enable the Site | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tsconfig.json | 1 | // { | COMMENT |
| LOW | docker-compose.yml | 1 | services: | COMMENT |
| LOW | cloudflare/wasm-wrangler.toml | 1 | name = "bentopdf-wasm-proxy" | COMMENT |
| LOW | cloudflare/wasm-wrangler.toml | 21 | COMMENT | |
| LOW | cloudflare/wasm-wrangler.toml | 41 | # ============================================================================= | COMMENT |
| LOW | cloudflare/wasm-wrangler.toml | 61 | id = "b88e030b308941118cd484e3fcb3ae49" | COMMENT |
| LOW | cloudflare/wrangler.toml | 1 | name = "bentopdf-cors-proxy" | COMMENT |
| LOW | cloudflare/wrangler.toml | 21 | # - Limits: 60 requests per IP per minute | COMMENT |
| LOW | cloudflare/wrangler.toml | 41 | # ] | COMMENT |
| LOW | scripts/prepare-airgap.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/css/styles.css | 1421 | } | COMMENT |
| LOW | src/css/edit-pdf-text.css | 1801 | COMMENT | |
| LOW | src/js/logic/md-to-pdf.ts | 1 | // // note: this is a work in progress | COMMENT |
| LOW | src/js/logic/md-to-pdf.ts | 21 | // showAlert('Input Required', 'Please enter some Markdown text.'); | COMMENT |
| LOW | src/js/logic/md-to-pdf.ts | 41 | // body { font-family: Helvetica, Arial, sans-serif; line-height: 1.6; font-size: 12px; } | COMMENT |
| LOW | src/js/logic/md-to-pdf.ts | 61 | // // @ts-expect-error TS(2339) FIXME: Property 'jspdf' does not exist on type 'Window & ... Remove this comment to | COMMENT |
| LOW | src/js/logic/md-to-pdf.ts | 81 | // position = position - pageHeight; | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tests/content-segments.test.ts | 129 | expect(input?.getAttribute('placeholder')).toBe('Werkzeuge suchen'); | CODE |
| LOW⚡ | src/tests/edit-pdf-redaction.test.ts | 91 | viewer.mark('doc', { id: 'a', kind: 'text', text: 'Jane Doe' }); | CODE |
| LOW⚡ | src/tests/edit-pdf-redaction.test.ts | 98 | viewer.mark('doc', { id: 'a', kind: 'text', text: 'Jane Doe' }); | CODE |
| LOW⚡ | src/tests/edit-pdf-redaction.test.ts | 103 | expect(tracker.appliedTexts('doc')).toEqual(['Jane Doe', undefined]); | CODE |
| LOW⚡ | src/tests/edit-pdf-redaction.test.ts | 111 | viewer.mark('doc', { id: 'b', kind: 'text', text: 'Acme Corp' }); | CODE |
| LOW | src/tests/edit-pdf-redaction.test.ts | 160 | ).toEqual(['John Smith', 'Acme Corp', 'John']); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | public/libreoffice-wasm/soffice.js | 2 | function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_ | CODE |
| LOW⚡ | public/libreoffice-wasm/soffice.js | 2 | function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/prepare-airgap.sh | 13 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | package-lock.json | 10181 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | public/libreoffice-wasm/soffice.js | 2 | function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/prepare-airgap.sh | 719 | # Check if image exists or tar exists | COMMENT |