JavaScript library to zip and unzip files supporting parallel compression, web streams, pluggable compression engines, zip64, split files, data encryption, and deflate64 decompression.
This report summarizes scanner evidence for gildas-lormeau/zip.js, a JavaScript project with 3,898 GitHub stars. SynthScan examined 87,940 lines of code across 696 source files, recording 687 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 8.0 (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? 362 finding(s).
Are imports declared and package/API names verified? 325 finding(s).
Are wrappers, guards, and repeated structures necessary? 333 finding(s).
Which changes need focused human review? 687 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 687 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 |
|---|---|---|---|---|
| LOW | reserved-property-names.js | 70 | function collectAssignedPropertyNames() { | CODE |
| LOW | rollup.config.js | 30 | function checkMangledPropertyNames() { | CODE |
| LOW | index.d.ts | 309 | export function getSupportedCompressionMethods(): SupportedCompressionMethod[]; | CODE |
| LOW | index.d.ts | 813 | export function createSyncAccessHandleTempStream(options?: OPFSTempStreamOptions): () => TempStream; | CODE |
| LOW | tests/all/test-filename-validation.js | 34 | async function unicodePathOverrideIsValidated() { | CODE |
| LOW | tests/all/test-filename-validation.js | 93 | async function normalizationRepairsRejectedNames() { | CODE |
| LOW | tests/all/test-filename-validation.js | 110 | async function normalizationRunsAfterDecodingAndBeforeValidation() { | CODE |
| LOW | tests/all/test-filename-validation.js | 130 | async function normalizationDetectsCollisions() { | CODE |
| LOW | tests/all/test-filename-validation.js | 144 | async function filesystemInheritsNormalization() { | CODE |
| LOW | tests/all/test-filename-validation.js | 163 | async function levelsRejectExpectedNames() { | CODE |
| LOW⚡ | tests/all/test-filename-validation.js | 181 | async function defaultLevelRejectsEscapingNames() { | CODE |
| LOW⚡ | tests/all/test-filename-validation.js | 187 | async function strictnessDrivesTheDefaultLevel() { | CODE |
| LOW⚡ | tests/all/test-filename-validation.js | 197 | async function filesystemDropsRedundantPathComponents() { | CODE |
| LOW | tests/all/test-empty-entry-data-descriptor.js | 26 | async function skipsTheDataDescriptorForKnownEmptyEntries() { | CODE |
| LOW | tests/all/test-empty-entry-data-descriptor.js | 39 | async function keepsTheDataDescriptorElsewhere() { | CODE |
| LOW | tests/all/test-unix-extra-field-layout.js | 78 | async function checkInfoZipFieldSingleId() { | CODE |
| LOW | tests/all/test-register-codec.js | 105 | function checkRegisteredCodecURIStreams(expectStreams) { | CODE |
| LOW | tests/all/test-register-codec.js | 160 | async function checkWorkerCompressionOptions() { | CODE |
| LOW | tests/all/test-register-codec.js | 184 | async function checkDecompressionOptions() { | CODE |
| LOW | tests/all/test-register-codec.js | 243 | async function checkWorkerDecompressionOptions() { | CODE |
| LOW | tests/all/test-register-codec.js | 336 | async function checkEncryptedHighMethodRoundTrip() { | CODE |
| LOW | tests/all/test-fs-export-password.js | 31 | async function testReaderPasswordDecrypts(encryptedBlob) { | CODE |
| LOW | tests/all/test-fs-export-password.js | 41 | async function testTopLevelPasswordDoesNotDecrypt(encryptedBlob) { | CODE |
| LOW | tests/all/test-fs-export-password.js | 67 | async function testFileSystemHandlePasswords(encryptedBlob) { | CODE |
| LOW | tests/all/test-entry-data-out-of-bounds.js | 49 | async function testEntryStretchedOverTheDirectory(compressionMethod) { | CODE |
| LOW | tests/all/test-malformed-zip.js | 82 | function addCentralDirectoryExtraField(array, extraField, patchDirectoryRecord) { | CODE |
| LOW | tests/all/test-wasm-heap-capacity.js | 72 | async function checkReadTornDownByWriter(data, { name, password }, label) { | CODE |
| LOW | tests/all/test-wasm-heap-capacity.js | 83 | async function checkReadTornDownByCorruptedBody(data, { name, password }, label) { | CODE |
| LOW | tests/all/test-wasm-heap-capacity.js | 96 | async function checkReadTornDownBySignal(data, { name, password }, label) { | CODE |
| LOW | tests/all/test-wasm-heap-capacity.js | 114 | async function checkWriteTornDownBySource({ name, password }, label) { | CODE |
| LOW | tests/all/test-wasm-heap-capacity.js | 120 | async function checkWriteTornDownByDestination({ name, password }, label) { | CODE |
| LOW | tests/all/test-split-zip-strictness.js | 36 | async function readsASplitZipFileInStrictMode() { | CODE |
| LOW | tests/all/test-split-zip-strictness.js | 62 | async function acceptsTheMarkerAsTheArchiveStart(marker, description) { | CODE |
| LOW | tests/all/test-split-zip-strictness.js | 95 | async function extractsAnyOtherPrefixAsPrependedData(prefix) { | CODE |
| LOW | tests/all/test-http-reader-resource-changed.js | 123 | async function expectResourceChangedError(fetchFunction) { | CODE |
| LOW | tests/all/test-abort-buffered-flush-offset.js | 181 | function firstCentralDirectoryOffset(bytes) { | CODE |
| LOW | tests/all/test-abort-buffered-flush-offset.js | 191 | function endOfCentralDirectoryOffset(bytes) { | CODE |
| LOW⚡ | tests/all/test-writer-warnings.js | 27 | async function testNothingIsReportedByDefault() { | CODE |
| LOW⚡ | tests/all/test-writer-warnings.js | 34 | async function testCompressionUnavailable() { | CODE |
| LOW⚡ | tests/all/test-writer-warnings.js | 44 | async function testClampedLastModificationDate() { | CODE |
| LOW | tests/all/test-writer-warnings.js | 71 | async function testEachReasonIsReportedOnce() { | CODE |
| LOW | tests/all/test-writer-edge-cases.js | 55 | async function testDuplicateDirectoryName() { | CODE |
| LOW | tests/all/test-writer-edge-cases.js | 147 | async function testWriterSizeMustBeWritable() { | CODE |
| LOW | tests/all/test-writer-edge-cases.js | 180 | async function testWriterSizeKeepsItsStartingOffset() { | CODE |
| LOW | tests/all/test-writer-edge-cases.js | 207 | async function testWriterSizeIsSettledBetweenEntries() { | CODE |
| LOW | tests/all/test-split-zip.js | 69 | async function testSpanningCentralDirectory(zip64) { | CODE |
| LOW | tests/all/test-passthrough-options.js | 34 | async function compressionMethodIsRequired() { | CODE |
| LOW⚡ | tests/all/test-passthrough-options.js | 51 | async function compressionMethodIsTakenFromTheWriterOptions() { | CODE |
| LOW⚡ | tests/all/test-passthrough-options.js | 59 | async function directoriesIgnorePassThrough() { | CODE |
| LOW⚡ | tests/all/test-passthrough-options.js | 68 | async function levelIsNotInheritedFromTheWriterOptions() { | CODE |
| LOW | tests/all/test-passthrough-options.js | 89 | async function levelDeclaresTheLevelBitsOfTheEntry() { | CODE |
| LOW | tests/all/test-passthrough-options.js | 110 | async function storedEntriesNeverCarryLevelBits() { | CODE |
| LOW | tests/all/test-passthrough-options.js | 128 | async function levelKeepsApplyingToTheOtherEntries() { | CODE |
| LOW | tests/all/test-passthrough-options.js | 166 | function getLocalCompressionMethod(zipData) { | CODE |
| LOW | tests/all/test-ntfs-timestamp.js | 72 | async function checkCentralDatesWinOverLocalDates() { | CODE |
| LOW | tests/all/test-fs-exported-size.js | 90 | async function testImplicitDirectoryLayout() { | CODE |
| LOW | tests/all/test-deprecated-check-signature.js | 26 | async function buildZipFileWithCorruptedData() { | CODE |
| LOW | tests/all/test-custom-io.js | 105 | async function testDeclaredSizeEndsTheStream() { | CODE |
| LOW⚡ | tests/all/test-prevent-close.js | 52 | async function assertArrayBufferIgnoresPreventClose(entry, options, label) { | CODE |
| LOW⚡ | tests/all/test-prevent-close.js | 57 | async function assertReaderStreamIgnoresPreventClose() { | CODE |
| 273 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | index.d.ts | 5027 | * const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidu | COMMENT |
| LOW | index.d.ts | 5027 | * const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidu | COMMENT |
| LOW | tests/web-streams-polyfill-runner.js | 9 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/web-streams-polyfill-runner.js | 9 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-split-data.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-split-data.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-overlapping-entries.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-overlapping-entries.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-export-options.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-export-options.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-worker-error-before-start.js | 9 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-worker-error-before-start.js | 9 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-metadata-roundtrip.js | 3 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-metadata-roundtrip.js | 3 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-version-made-by.js | 4 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet"; | CODE |
| LOW | tests/all/test-version-made-by.js | 4 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet"; | CODE |
| LOW | tests/all/test-crypto-tampered.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-crypto-tampered.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-unzip-store.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-unzip-store.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-comments.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-comments.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-register-codec.js | 12 | const LOREM_PREFIX = "Lorem ipsum"; | CODE |
| LOW | tests/all/test-fs-export-password.js | 11 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."; | CODE |
| LOW | tests/all/test-fs-export-password.js | 11 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."; | CODE |
| LOW | tests/all/test-entry-data-out-of-bounds.js | 27 | await zipWriter.add("filename.txt", new zip.TextReader("Lorem ipsum"), { compressionMethod }); | CODE |
| LOW | tests/all/test-entry-data-out-of-bounds.js | 51 | await zipWriter.add("filename.txt", new zip.TextReader("Lorem ipsum"), { compressionMethod }); | CODE |
| LOW | tests/all/test-remove-entry.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-remove-entry.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-export-progress.js | 12 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."; | CODE |
| LOW | tests/all/test-fs-export-progress.js | 12 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."; | CODE |
| LOW | tests/all/test-local-extra-field.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."; | CODE |
| LOW | tests/all/test-local-extra-field.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."; | CODE |
| LOW | tests/all/test-last-access-date.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-last-access-date.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-malformed-zip.js | 3 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-malformed-zip.js | 3 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-passthrough-aes-crc32.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-passthrough-aes-crc32.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-remove.js | 3 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-fs-remove.js | 3 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-compression-stream-fallback.js | 10 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-compression-stream-fallback.js | 10 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-http-reader-resource-changed.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor | CODE |
| LOW | tests/all/test-http-reader-resource-changed.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor | CODE |
| LOW | tests/all/test-split-zip-streams.js | 10 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-split-zip-streams.js | 10 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-zip64-crypto.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-zip64-crypto.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-writer-warnings.js | 4 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.".repeat(64); | CODE |
| LOW | tests/all/test-writer-warnings.js | 4 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.".repeat(64); | CODE |
| LOW | tests/all/test-zstd-codec.js | 11 | const EXPECTED_PREFIX = "Lorem ipsum dolor sit amet"; | CODE |
| LOW | tests/all/test-zstd-codec.js | 11 | const EXPECTED_PREFIX = "Lorem ipsum dolor sit amet"; | CODE |
| LOW | tests/all/test-worker-error.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-worker-error.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-zip64.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-zip64.js | 5 | const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt | CODE |
| LOW | tests/all/test-external-assets.js | 33 | const expectedText = "lorem ipsum dolor ".repeat(CONTENT_REPETITIONS); | CODE |
| LOW | tests/all/test-golden-output.js | 28 | await zipWriter.add("text.txt", new zip.TextReader("Lorem ipsum dolor sit amet"), { comment: "entry comment" }); | CODE |
| LOW | tests/all/test-golden-output.js | 28 | await zipWriter.add("text.txt", new zip.TextReader("Lorem ipsum dolor sit amet"), { comment: "entry comment" }); | CODE |
| 265 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/types/test-codec-types.ts | 1 | // Type-level test: the classes compressing and decompressing data must stay assignable wherever the | COMMENT |
| LOW | tests/all/test-wasm-heap-capacity.js | 1 | /* global WebAssembly, ReadableStream, WritableStream, AbortController, Blob, setTimeout */ | COMMENT |
| LOW | tests/all/test-writer-backpressure.js | 1 | /* global ReadableStream, WritableStream, CountQueuingStrategy, setTimeout */ | COMMENT |
| LOW | tests/all/test-writer-backpressure-worker.js | 1 | /* global ReadableStream, WritableStream, CountQueuingStrategy, setTimeout, btoa */ | COMMENT |
| LOW | tests/all/test-fs-password-candidates.js | 1 | /* global setTimeout, clearTimeout, Blob */ | COMMENT |
| LOW | tests/all/test-gzip-fallback.js | 1 | /* global CompressionStream, DecompressionStream */ | COMMENT |
| LOW | tests/all/test-invalid-compressed-data.js | 1 | // A corrupted deflated entry rejects with ERR_INVALID_COMPRESSED_DATA whatever inflates it, with the | COMMENT |
| LOW | tests/all/test-data-descriptor-width.js | 1 | /* global TextEncoder */ | COMMENT |
| LOW | tests/all/test-wasm-stream-abort.js | 1 | /* global ReadableStream, TextEncoder */ | COMMENT |
| LOW | tests/api-symmetry/decisions.js | 1 | // The decisions taken about the symmetry between the read surface and the write surface. | COMMENT |
| LOW | tests/api-symmetry/exports-decisions.js | 1 | // The error messages the library builds and deliberately does not export, with the reason for each. | COMMENT |
| LOW | tests/api-symmetry/mangling.js | 1 | // Audits the members of the public API against the two lists that decide whether minification keeps them. | COMMENT |
| LOW | tests/api-symmetry/mangling.js | 21 | // the File System Access API paths, which node has no handle for. | COMMENT |
| LOW | tests/api-symmetry/exports.js | 1 | // Audits what each build exports against what index.d.ts declares and what the build's own code can throw. | COMMENT |
| LOW | tests/api-symmetry/exports.js | 21 | // | COMMENT |
| LOW | tests/api-symmetry/shape.js | 1 | // Audits the agreement between the shapes declared in index.d.ts and the objects the library builds. | COMMENT |
| LOW | docs/README.md | 41 | // Creates a BlobWriter object where the zip content will be written. | COMMENT |
| LOW | benchmarks/bench-crc.js | 1 | // Write-path CRC strategy, native CompressionStream. Compares the two ways zip.js can obtain the | COMMENT |
| LOW | benchmarks/bench-backends.js | 1 | // Backend & parallelism matrix. One workload (8 x 8 MB compressible entries) compressed by: | COMMENT |
| LOW | benchmarks/bench-aes.js | 1 | // AES-256 encryption throughput, stored entry, single thread. Compares the engines zip.js can run | COMMENT |
| LOW | benchmarks/scan-bundle.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | benchmarks/bench-7z.js | 1 | // zip.js vs 7-Zip (CLI), disk-to-disk, for Deno and Bun (not Node — see bench.js for that harness). | COMMENT |
| LOW | benchmarks/bench-7z.js | 141 | // This pass varies ONE axis, the level, on BOTH sides at once, with the core budget held fixed | COMMENT |
| LOW | benchmarks/bench-runtimes.js | 1 | // The same zip.js code under Node, Bun and Deno. Two parts: | COMMENT |
| LOW | .github/workflows/test.yml | 81 | run: | | COMMENT |
| LOW | lib/core/streams/zlib-wasm/zlib-streams.js | 301 | // These codecs are backed by the WASM module; they are unusable until setWasmExports() has run. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/all/test-prevent-close.js | 58 | // the source has to be built here rather than taken from Blob#stream(): below Firefox 102 the harness | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/all/test-deprecated-check-signature.js | 57 | async function getData(zipFile, options) { | CODE |
| LOW | lib/core/zip-reader.js | 807 | async function getData() { | CODE |