Skip to content

refactor: initial error consolidation - #4874

Closed
LHerskind wants to merge 2 commits into
masterfrom
lh/error-handling
Closed

LHerskind wants to merge 2 commits into
masterfrom
lh/error-handling

Conversation

@LHerskind

@LHerskind LHerskind commented Feb 29, 2024 •

Copy link
Copy Markdown
Contributor

Initial playing around with consolidating errors in one location and then using them throughout.

Essentially, I was dying inside when I see the duplicated strings around the codebase. They make it cumbersome to alter the error structures and error prone when writing failing tests.

Instead I propose that we are writing them in one place like:

export class ArchiverError extends BaseError {
  constructor(message: string, options?: ErrorOptions) {
    super('Archiver', message, options);
  }
  static alreadyRunning(): ArchiverError {
    return new ArchiverError('Archiver is already running');
  }
}

This we can then reuse which should make it less error prone and easier to figure out where the errors are used. Also makes it easy to figure out what error messages are never explicitly tested so we can add those easily.


Issues encountered:

Errors are inconsistently passed along, which makes interaction and testing a little strange.

For example, the following code will do as expected, and the test will pass

    await expect(
      l2Bridge
        .withWallet(user2Wallet)
        .methods.claim_public(user2Wallet.getAddress(), bridgeAmount, ethAccount, secret)
        .simulate(),
    ).rejects.toThrow(MessageBoxError.messageNotFound(wrongMessage.hash()));

However, if using a private function instead, it will fail, with an error around the message and cause received being different to expected.

await expect(
      l2Bridge
        .withWallet(user2Wallet)
        .methods.claim_private(
          secretHashForL2MessageConsumption,
          bridgeAmount,
          ethAccount,
          secretForL2MessageConsumption,
        )
        .simulate(),
    ).rejects.toThrow(MessageBoxError.messageNotFound(wrongMessage.hash()));

But if only looking at the message, it passes just fine.

await expect(
      l2Bridge
        .withWallet(user2Wallet)
        .methods.claim_private(
          secretHashForL2MessageConsumption,
          bridgeAmount,
          ethAccount,
          secretForL2MessageConsumption,
        )
        .simulate(),
    ).rejects.toThrow(MessageBoxError.messageNotFound(wrongMessage.hash()).message);

LHerskind commented Feb 29, 2024 •

Copy link
Copy Markdown
Contributor Author

Current dependencies on/for this PR:

This stack of pull requests is managed by Graphite.

@LHerskind
LHerskind force-pushed the lh/error-handling branch 2 times, most recently from 8bfa2ac to bbf04ca Compare February 29, 2024 23:47
@AztecBot

AztecBot commented Mar 1, 2024 •

Copy link
Copy Markdown
Collaborator

Benchmark results

Metrics with a significant change:

  • note_trial_decrypting_time_in_ms (8): 13.7 (-88%)
Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Values are compared against data from master at commit 30502c96 and shown if the difference exceeds 1%.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 64 txs
l1_rollup_calldata_size_in_bytes 5,700 18,884 36,452
l1_rollup_calldata_gas 66,180 238,820 469,724
l1_rollup_execution_gas 194,128 500,126 908,982
l2_block_processing_time_in_ms 1,210 (+1%) 4,570 (+1%) 9,143 (+1%)
note_successful_decrypting_time_in_ms 204 (+2%) 566 (+3%) 1,034 (+1%)
note_trial_decrypting_time_in_ms ⚠️ 13.7 (-88%) 92.9 (+32%) 60.4 (+3%)
l2_block_building_time_in_ms 16,078 63,765 126,825 (-1%)
l2_block_rollup_simulation_time_in_ms 12,089 (-1%) 48,578 96,597 (-1%)
l2_block_public_tx_process_time_in_ms 3,930 (+3%) 15,115 30,055 (-1%)

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 14,452 27,959 (+1%)
note_history_successful_decrypting_time_in_ms 1,289 (-4%) 2,530 (+4%)
note_history_trial_decrypting_time_in_ms 108 (+7%) 170 (+17%)
node_database_size_in_bytes 18,735,184 35,553,360
pxe_database_size_in_bytes 29,923 59,478

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 248 44,736 28,001
private-kernel-ordering 178 52,625 14,627
base-rollup 1,368 (+6%) 177,932 933
root-rollup 72.5 (+3%) 4,192 825
private-kernel-inner 313 73,715 28,001
public-kernel-app-logic 205 (+7%) 32,254 25,379
merge-rollup 6.17 (+7%) 2,712 933

Tree insertion stats

The duration to insert a fixed batch of leaves into each tree type.

Metric 1 leaves 2 leaves 8 leaves 16 leaves 32 leaves 64 leaves 128 leaves 512 leaves 1024 leaves 2048 leaves 4096 leaves
batch_insert_into_append_only_tree_16_depth_ms 9.92 (+1%) 10.3 12.5 (-1%) 16.2 22.4 (-1%) 35.7 N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_count 16.9 17.5 23.0 31.6 47.0 79.0 N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_ms 0.574 (+1%) 0.570 0.531 (-1%) 0.500 0.466 (-1%) 0.443 N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_32_depth_ms N/A N/A N/A N/A N/A 46.1 (+1%) 72.0 (-1%) 231 445 874 (-1%) 1,746 (+1%)
batch_insert_into_append_only_tree_32_depth_hash_count N/A N/A N/A N/A N/A 96.0 159 543 1,055 2,079 4,127
batch_insert_into_append_only_tree_32_depth_hash_ms N/A N/A N/A N/A N/A 0.471 0.444 (-1%) 0.421 0.416 0.414 (-1%) 0.417 (+1%)
batch_insert_into_indexed_tree_20_depth_ms N/A N/A N/A N/A N/A 54.3 (+1%) 101 344 (+2%) 663 1,322 (+1%) 2,648 (+1%)
batch_insert_into_indexed_tree_20_depth_hash_count N/A N/A N/A N/A N/A 104 197 691 1,363 2,707 5,395
batch_insert_into_indexed_tree_20_depth_hash_ms N/A N/A N/A N/A N/A 0.483 (+1%) 0.476 (-1%) 0.464 (+1%) 0.455 0.457 (+1%) 0.454 (+1%)
batch_insert_into_indexed_tree_40_depth_ms N/A N/A N/A N/A 61.6 (+1%) N/A N/A N/A N/A N/A N/A
batch_insert_into_indexed_tree_40_depth_hash_count N/A N/A N/A N/A 109 N/A N/A N/A N/A N/A N/A
batch_insert_into_indexed_tree_40_depth_hash_ms N/A N/A N/A N/A 0.536 N/A N/A N/A N/A N/A N/A

Miscellaneous

Transaction sizes based on how many contracts are deployed in the tx.

Metric 0 deployed contracts
tx_size_in_bytes 19,179

Transaction processing duration by data writes.

Metric 0 new note hashes 1 new note hashes
tx_pxe_processing_time_ms 2,608 (-1%) 1,345 (+1%)
Metric 0 public data writes 1 public data writes
tx_sequencer_processing_time_ms 0.0356 (+6%) 500 (+6%)

@LHerskind
LHerskind force-pushed the lh/error-handling branch 3 times, most recently from 73e7a3f to f020ff2 Compare March 1, 2024 10:41
@AztecBot

AztecBot commented Mar 1, 2024

Copy link
Copy Markdown
Collaborator

Docs Preview

Hey there! 👋 You can check your preview at https://65e1b37751e5edbe34300e21--aztec-docs-dev.netlify.app

Base automatically changed from lh/nuke-msg-key to master March 1, 2024 11:14
@LHerskind
LHerskind force-pushed the lh/error-handling branch from f020ff2 to 485cbc3 Compare March 1, 2024 14:33
@github-actions

github-actions Bot commented Mar 1, 2024

Copy link
Copy Markdown
Contributor

Changes to circuit sizes

Generated at commit: 06a054abb50163b0c60f36b262c06688f6f37b92, compared to commit: 9633b0fd4dfbdc80b3fc248b03486f2a73f37bed

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
public_kernel_teardown -5 ✅ -0.02% -4 ✅ -0.00%
rollup_base -92,723 ✅ -36.48% -215,480 ✅ -11.10%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
public_kernel_teardown 26,103 (-5) -0.02% 175,822 (-4) -0.00%
rollup_base 161,439 (-92,723) -36.48% 1,726,550 (-215,480) -11.10%

@spalladino

Copy link
Copy Markdown
Contributor

How about placing errors in the types package? Today types contains (or should contain) base types and interfaces used across the entire codebase. Feels like errors are just another type that would be a good fit there.

Alternatively, I'd place the error types next to the interfaces that throw them. So the ArchiverErrors should live next to where the Archiver interface lives.

@socket-security

Copy link
Copy Markdown

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@aashutoshrathi/word-wrap@1.2.6 None 0 10.9 kB aashutoshrathi
npm/@achingbrain/nat-port-mapper@1.0.13 Transitive: environment, filesystem, shell +29 1.67 MB achingbrain
npm/@achingbrain/ssdp@4.0.6 None +4 168 kB achingbrain
npm/@adraffy/ens-normalize@1.10.0 None 0 441 kB adraffy
npm/@babel/core@7.23.9 environment, filesystem, unsafe +41 10.6 MB nicolo-ribaudo
npm/@babel/helpers@7.23.9 Transitive: environment +26 6.75 MB nicolo-ribaudo
npm/@babel/parser@7.23.9 None 0 1.88 MB nicolo-ribaudo
npm/@babel/plugin-syntax-bigint@7.8.3 Transitive: environment, filesystem, unsafe +43 10.6 MB nicolo-ribaudo
npm/@babel/runtime@7.23.9 None 0 249 kB nicolo-ribaudo
npm/@babel/template@7.23.9 Transitive: environment +11 4.59 MB nicolo-ribaudo
npm/@babel/traverse@7.24.0 Transitive: environment +25 6.15 MB nicolo-ribaudo
npm/@babel/types@7.24.0 environment +2 2.49 MB nicolo-ribaudo
npm/@bcoe/v8-coverage@0.2.3 None 0 277 kB bcoe
npm/@chainsafe/as-chacha20poly1305@0.1.0 None 0 331 kB wemeetagain
npm/@chainsafe/as-sha256@0.4.1 None 0 165 kB dapplion
npm/@chainsafe/is-ip@2.0.2 None 0 28.1 kB wemeetagain
npm/@chainsafe/libp2p-noise@13.0.5 Transitive: environment +30 5.66 MB mpetrunic
npm/@chainsafe/libp2p-yamux@5.0.4 Transitive: environment +19 1.49 MB wemeetagain
npm/@chainsafe/netmask@2.0.0 None +1 58.6 kB mpetrunic
npm/@colors/colors@1.6.0 environment 0 41.5 kB dabh
npm/@cspotcode/source-map-support@0.8.1 filesystem +3 295 kB cspotcode
npm/@dabh/diagnostics@2.0.3 environment +8 115 kB dabh
npm/@dependents/detective-less@3.0.2 None +2 659 kB xhmikosr
npm/@es-joy/jsdoccomment@0.37.1 None +3 1.68 MB brettz9
npm/@esbuild/android-arm@0.18.20 None 0 11.1 MB evanw
npm/@esbuild/android-arm64@0.18.20 None 0 9.57 MB evanw
npm/@esbuild/android-x64@0.18.20 None 0 11.1 MB evanw
npm/@esbuild/darwin-arm64@0.18.20 None 0 9.51 MB evanw
npm/@esbuild/darwin-x64@0.18.20 None 0 9.92 MB evanw
npm/@esbuild/freebsd-arm64@0.18.20 None 0 8.65 MB evanw
npm/@esbuild/freebsd-x64@0.18.20 None 0 9.35 MB evanw
npm/@esbuild/linux-arm@0.18.20 None 0 8.85 MB evanw
npm/@esbuild/linux-arm64@0.18.20 None 0 8.65 MB evanw
npm/@esbuild/linux-ia32@0.18.20 None 0 8.9 MB evanw
npm/@esbuild/linux-loong64@0.18.20 None 0 9.11 MB evanw
npm/@esbuild/linux-mips64el@0.18.20 None 0 10.2 MB evanw
npm/@esbuild/linux-ppc64@0.18.20 None 0 8.91 MB evanw
npm/@esbuild/linux-riscv64@0.18.20 None 0 8.85 MB evanw
npm/@esbuild/linux-s390x@0.18.20 None 0 9.77 MB evanw
npm/@esbuild/linux-x64@0.18.20 None 0 9.35 MB evanw
npm/@esbuild/netbsd-x64@0.18.20 None 0 9.33 MB evanw
npm/@esbuild/openbsd-x64@0.18.20 None 0 9.37 MB evanw
npm/@esbuild/sunos-x64@0.18.20 None 0 9.33 MB evanw
npm/@esbuild/win32-arm64@0.18.20 None 0 8.76 MB evanw
npm/@esbuild/win32-ia32@0.18.20 None 0 9.2 MB evanw
npm/@esbuild/win32-x64@0.18.20 None 0 9.55 MB evanw
npm/@eslint-community/eslint-utils@4.4.0 Transitive: environment, eval, filesystem, shell, unsafe +62 10.4 MB eslint-community-bot
npm/@eslint-community/regexpp@4.10.0 None 0 431 kB eslint-community-bot
npm/@eslint/eslintrc@2.1.4 filesystem, unsafe Transitive: environment, eval +18 3.6 MB eslintbot
npm/@eslint/js@8.56.0 None 0 13.9 kB eslintbot
npm/@humanwhocodes/config-array@0.11.14 Transitive: environment +5 603 kB nzakas
npm/@humanwhocodes/module-importer@1.0.1 unsafe 0 21.2 kB nzakas
npm/@humanwhocodes/object-schema@2.0.2 None 0 53.3 kB nzakas
npm/@iarna/toml@2.2.5 eval 0 99 kB iarna
npm/@isaacs/cliui@8.0.2 None 0 27.8 kB isaacs
npm/@istanbuljs/load-nyc-config@1.1.0 environment, filesystem Transitive: eval +7 765 kB coreyfarrell
npm/@istanbuljs/schema@0.1.3 None 0 17.2 kB coreyfarrell
npm/@jest/console@29.7.0 Transitive: environment, filesystem +25 5.01 MB simenb
npm/@jest/core@29.7.0 unsafe Transitive: environment, eval, filesystem, network, shell +183 21.3 MB simenb
npm/@jest/environment@29.7.0 Transitive: environment, eval, filesystem +29 5.2 MB simenb
npm/@jest/expect-utils@29.7.0 None +1 32.1 kB simenb
npm/@jest/expect@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +106 17.3 MB simenb
npm/@jest/fake-timers@29.7.0 Transitive: environment, eval, filesystem +28 5.19 MB simenb
npm/@jest/globals@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +112 17.5 MB simenb
npm/@jest/reporters@29.7.0 environment, unsafe Transitive: eval, filesystem, network, shell +105 19.2 MB simenb
npm/@jest/source-map@29.6.3 Transitive: environment, filesystem +4 145 kB simenb
npm/@jest/test-result@29.7.0 Transitive: environment, filesystem, unsafe +27 5.04 MB simenb
npm/@jest/test-sequencer@29.7.0 Transitive: environment, filesystem, network, shell, unsafe +38 5.48 MB simenb
npm/@jest/transform@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +81 16.8 MB simenb
npm/@jridgewell/trace-mapping@0.3.9 None +2 193 kB jridgewell
npm/@koa/cors@4.0.0 None 0 18.4 kB fengmk2
npm/@libp2p/bootstrap@9.0.12 Transitive: environment +17 1.42 MB npm-service-account-libp2p
npm/@libp2p/crypto@2.0.8 Transitive: environment +14 3.63 MB npm-service-account-libp2p
npm/@libp2p/interface-connection@5.1.1 Transitive: environment +11 790 kB npm-service-account-libp2p
npm/@libp2p/interface-content-routing@2.1.1 Transitive: environment +13 1.04 MB npm-service-account-libp2p
npm/@libp2p/interface-internal@0.1.12 Transitive: environment +14 1.17 MB achingbrain
npm/@libp2p/interface-keychain@2.0.5 None +1 30 kB npm-service-account-libp2p
npm/@libp2p/interface-libp2p@3.2.0 Transitive: environment +28 1.5 MB npm-service-account-libp2p
npm/@libp2p/interface-metrics@4.0.8 Transitive: environment +12 811 kB npm-service-account-libp2p
npm/@libp2p/interface-peer-id@2.0.2 None 0 11.9 kB npm-service-account-libp2p
npm/@libp2p/interface-peer-info@1.0.10 Transitive: environment +10 731 kB npm-service-account-libp2p
npm/@libp2p/interface-peer-routing@1.1.1 Transitive: environment +12 774 kB npm-service-account-libp2p
npm/@libp2p/interface-peer-store@2.0.4 Transitive: environment +10 747 kB npm-service-account-libp2p
npm/@libp2p/interface-registrar@2.0.12 Transitive: environment +12 806 kB npm-service-account-libp2p
npm/@libp2p/interface-stream-muxer@4.1.2 Transitive: environment +18 1.05 MB npm-service-account-libp2p
npm/@libp2p/interface-transport@4.0.3 Transitive: environment +19 1.08 MB npm-service-account-libp2p
npm/@libp2p/interface@0.1.6 Transitive: environment +11 1.04 MB npm-service-account-libp2p
npm/@libp2p/interfaces@3.3.2 None 0 31.4 kB npm-service-account-libp2p
npm/@libp2p/kad-dht@10.0.15 Transitive: environment +43 7.61 MB npm-service-account-libp2p
npm/@libp2p/keychain@3.0.8 Transitive: environment +21 4.2 MB npm-service-account-libp2p
npm/@libp2p/logger@3.1.0 Transitive: environment +14 1.22 MB npm-service-account-libp2p
npm/@libp2p/mplex@9.0.12 Transitive: environment, eval +18 2.93 MB npm-service-account-libp2p
npm/@libp2p/multistream-select@4.0.10 Transitive: environment +22 1.48 MB achingbrain
npm/@libp2p/peer-collections@4.0.11 Transitive: environment +13 1.15 MB achingbrain
npm/@libp2p/peer-id-factory@3.0.11 Transitive: environment +16 3.95 MB achingbrain
npm/@libp2p/peer-id@3.0.6 Transitive: environment +12 1.09 MB npm-service-account-libp2p
npm/@libp2p/peer-record@6.0.12 Transitive: environment +23 4.66 MB achingbrain
npm/@libp2p/peer-store@9.0.12 Transitive: environment +27 5.42 MB achingbrain
npm/@libp2p/tcp@8.0.13 Transitive: environment +22 2.01 MB npm-service-account-libp2p
npm/@libp2p/utils@4.0.7 Transitive: environment +18 1.67 MB npm-service-account-libp2p
npm/@lmdb/lmdb-darwin-arm64@2.9.2 None 0 1.42 MB kriszyp
npm/@lmdb/lmdb-darwin-x64@2.9.2 None 0 1.52 MB kriszyp
npm/@lmdb/lmdb-linux-arm@2.9.2 None 0 956 kB kriszyp
npm/@lmdb/lmdb-linux-arm64@2.9.2 None 0 2.31 MB kriszyp
npm/@lmdb/lmdb-linux-x64@2.9.2 None 0 2.59 MB kriszyp
npm/@lmdb/lmdb-win32-x64@2.9.2 None 0 1.2 MB kriszyp
npm/@microsoft/tsdoc-config@0.16.2 filesystem Transitive: eval +6 3.83 MB odspnpm
npm/@microsoft/tsdoc@0.14.2 None 0 2.62 MB odspnpm
npm/@monorepo-utils/package-utils@2.10.4 filesystem Transitive: environment +19 524 kB azu
npm/@monorepo-utils/workspaces-to-typescript-project-references@2.10.4 filesystem Transitive: environment +37 1.15 MB azu
npm/@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2 None 0 108 kB kriszyp
npm/@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2 None 0 107 kB kriszyp
npm/@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2 None 0 53.2 kB kriszyp
npm/@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2 None 0 58.5 kB kriszyp
npm/@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2 None 0 62.2 kB kriszyp
npm/@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2 None 0 228 kB kriszyp
npm/@multiformats/mafmt@12.1.6 Transitive: environment +9 801 kB npm-service-account-multiformats
npm/@multiformats/multiaddr-matcher@1.1.2 Transitive: environment +10 1.12 MB npm-service-account-multiformats
npm/@multiformats/multiaddr@12.1.14 Transitive: environment +8 712 kB npm-service-account-multiformats
npm/@noble/ciphers@0.4.1 None 0 613 kB paulmillr
npm/@noble/curves@1.2.0 None +1 2.1 MB paulmillr
npm/@noble/hashes@1.3.2 None 0 747 kB paulmillr
npm/@npmcli/agent@2.2.0 environment, network +5 601 kB npm-cli-ops
npm/@npmcli/fs@3.1.0 filesystem 0 26.5 kB lukekarrys
npm/@pkgjs/parseargs@0.11.0 None 0 74.2 kB oss-bot
npm/@puppeteer/browsers@2.1.0 Transitive: environment, filesystem +5 4.49 MB google-wombot, mathias
npm/@scure/base@1.1.5 None 0 79.4 kB paulmillr
npm/@scure/bip32@1.3.2 None +3 2.24 MB paulmillr
npm/@scure/bip39@1.2.1 None +2 1.18 MB paulmillr
npm/@sinonjs/commons@3.0.1 None 0 38 kB mrgnrdrck
npm/@sinonjs/fake-timers@10.3.0 eval +1 118 kB fatso83
npm/@tootallnate/quickjs-emscripten@0.23.0 filesystem, network 0 1.73 MB tootallnate
npm/@trivago/prettier-plugin-sort-imports@4.3.0 Transitive: environment +29 8.32 MB behraang
npm/@tsconfig/node10@1.0.9 None 0 2.39 kB typescript-deploys
npm/@tsconfig/node12@1.0.11 None 0 2.5 kB typescript-deploys
npm/@tsconfig/node14@1.0.3 None 0 2.39 kB typescript-deploys
npm/@tsconfig/node16@1.0.4 None 0 2.45 kB typescript-deploys
npm/@types/abstract-leveldown@7.2.5 None 0 6.96 kB types
npm/@types/accepts@1.3.7 None +1 3.99 MB types
npm/@types/babel__core@7.20.5 Transitive: environment +7 4.51 MB types
npm/@types/babel__generator@7.6.8 Transitive: environment +3 2.5 MB types
npm/@types/babel__template@7.4.4 Transitive: environment +4 4.38 MB types
npm/@types/babel__traverse@7.20.5 Transitive: environment +3 2.58 MB types
npm/@types/bn.js@5.1.5 None +1 4 MB types
npm/@types/content-disposition@0.5.8 None 0 6.48 kB types
npm/@types/cookiejar@2.1.5 None 0 7.23 kB types
npm/@types/cookies@0.7.10 None +13 4.11 MB types
npm/@types/debug@4.1.12 None +1 9.65 kB types
npm/@types/detect-node@2.0.2 None 0 2.66 kB types
npm/@types/elliptic@6.4.18 None +2 4.01 MB types
npm/@types/express-serve-static-core@4.17.42 None +5 4.06 MB types
npm/@types/fs-extra@11.0.4 None +2 4.03 MB types
npm/@types/graceful-fs@4.1.9 None +1 3.99 MB types
npm/@types/http-assert@1.5.5 None 0 6.19 kB types
npm/@types/jest@29.5.11 Transitive: environment, filesystem +31 5.41 MB types
npm/@types/json5@0.0.29 None 0 3 kB types
npm/@types/jsonfile@6.1.4 None +1 3.99 MB types
npm/@types/keygrip@1.0.6 None 0 3.3 kB types
npm/@types/koa__cors@4.0.3 None +19 4.17 MB types
npm/@types/koa-bodyparser@4.3.12 None +19 4.17 MB types
npm/@types/koa-compose@3.2.8 None +18 4.16 MB types
npm/@types/koa-compress@4.0.6 None +19 4.17 MB types
npm/@types/koa-cors@0.0.2 None +19 4.16 MB types
npm/@types/koa-router@7.4.8 None +19 4.18 MB types
npm/@types/koa-send@4.1.6 None +19 4.17 MB types
npm/@types/koa-static@4.0.4 None +20 4.17 MB types
npm/@types/koa@2.14.0 None +18 4.16 MB types
npm/@types/level-errors@3.0.2 None 0 3.36 kB types
npm/@types/leveldown@4.0.6 None +2 4 MB types
npm/@types/levelup@5.1.5 None +3 4 MB types
npm/@types/lodash.camelcase@4.3.9 None +1 865 kB types
npm/@types/lodash.capitalize@4.2.9 None +1 865 kB types
npm/@types/lodash.chunk@4.2.9 None +1 865 kB types
npm/@types/lodash.clonedeep@4.5.9 None +1 865 kB types
npm/@types/lodash.clonedeepwith@4.5.9 None +1 865 kB types
npm/@types/lodash.every@4.6.9 None +1 865 kB types
npm/@types/lodash.isequal@4.5.8 None +1 865 kB types
npm/@types/lodash.merge@4.6.9 None +1 865 kB types
npm/@types/lodash.omit@4.5.9 None +1 865 kB types
npm/@types/lodash.pick@4.4.9 None +1 865 kB types
npm/@types/lodash.startcase@4.4.9 None +1 865 kB types
npm/@types/lodash.times@4.3.9 None +1 865 kB types
npm/@types/lodash@4.14.202 None 0 862 kB types
npm/@types/memdown@3.0.5 None +1 10.7 kB types
npm/@types/methods@1.1.4 None 0 4.9 kB types
npm/@types/mime@3.0.4 None 0 3.25 kB types
npm/@types/minimist@1.2.5 None 0 6.27 kB types
npm/@types/ms@0.7.34 None 0 3.2 kB types
npm/@types/node@20.11.7 None 0 3.99 MB types
npm/@types/normalize-package-data@2.4.4 None 0 5.81 kB types
npm/@types/pako@2.0.3 None 0 7.8 kB types
npm/@types/retry@0.12.2 None 0 7.91 kB types
npm/@types/semver@7.5.6 None 0 23.2 kB types
npm/@types/sha256@0.2.2 None +1 3.99 MB types
npm/@types/sinon@17.0.3 None +1 93.8 kB types
npm/@types/sinonjs__fake-timers@8.1.5 None 0 15 kB types
npm/@types/source-map-support@0.5.10 None 0 9.66 kB types
npm/@types/stack-utils@2.0.3 None 0 6.43 kB types
npm/@types/superagent@8.1.3 None +3 4.02 MB types
npm/@types/supertest@2.0.16 None +4 4.02 MB types
npm/@types/triple-beam@1.3.5 None 0 3.36 kB types
npm/@types/yauzl@2.10.3 None +1 3.99 MB types
npm/@typescript-eslint/eslint-plugin@6.19.1 Transitive: environment, eval, filesystem, shell, unsafe +80 15 MB jameshenry
npm/@typescript-eslint/parser@6.19.1 Transitive: environment, eval, filesystem, shell, unsafe +75 12 MB jameshenry
npm/@typescript-eslint/scope-manager@6.19.1 None +3 811 kB jameshenry
npm/@typescript-eslint/type-utils@6.19.1 Transitive: environment, eval, filesystem, shell, unsafe +78 12.4 MB jameshenry
npm/@typescript-eslint/types@6.19.1 None 0 156 kB jameshenry
npm/@typescript-eslint/typescript-estree@6.19.1 Transitive: environment, filesystem +23 1.7 MB jameshenry
npm/@typescript-eslint/utils@6.19.1 Transitive: environment, eval, filesystem, shell, unsafe +77 12.3 MB jameshenry
npm/@typescript-eslint/visitor-keys@6.19.1 None +2 200 kB jameshenry
npm/@ungap/structured-clone@1.2.0 None 0 26.2 kB webreflection
npm/@webpack-cli/configtest@2.1.1 None 0 4.55 kB evilebottnawi
npm/@webpack-cli/info@2.0.2 None 0 3.72 kB evilebottnawi
npm/@webpack-cli/serve@2.0.5 environment 0 11.6 kB evilebottnawi
npm/abbrev@2.0.0 None 0 4.83 kB lukekarrys
npm/abitype@1.0.0 None 0 1.16 MB awkweb
npm/abortable-iterator@5.0.1 None +2 47.7 kB alanshaw
npm/abstract-leveldown@7.2.0 None +7 395 kB vweevers
npm/acorn-jsx@5.3.2 None +1 556 kB rreverser
npm/agent-base@7.1.0 network Transitive: environment +1 65.8 kB tootallnate
npm/ansi-escapes@4.3.2 None 0 16.4 kB sindresorhus
npm/any-promise@1.3.0 None 0 22.2 kB kevinbeaty
npm/any-signal@4.1.1 None 0 12.7 kB jacobheun
npm/app-module-path@2.2.0 unsafe 0 14.1 kB pnidem
npm/arg@4.1.3 None 0 12.9 kB qix
npm/array-buffer-byte-length@1.0.0 Transitive: eval +8 169 kB ljharb
npm/array-includes@3.1.7 Transitive: eval +30 2.59 MB ljharb
npm/array.prototype.findlastindex@1.2.3 Transitive: eval +31 2.61 MB ljharb
npm/array.prototype.flat@1.3.2 Transitive: eval +31 2.6 MB ljharb
npm/array.prototype.flatmap@1.3.2 Transitive: eval +31 2.6 MB ljharb
npm/arraybuffer.prototype.slice@1.0.2 Transitive: eval +29 2.57 MB ljharb
npm/arrify@1.0.1 None 0 2.34 kB sindresorhus
npm/asn1.js@5.4.1 None +3 151 kB indutny
npm/ast-module-types@2.7.1 None 0 17 kB mrjoelkemp
npm/ast-types@0.13.4 None 0 465 kB benjamn
npm/async@3.2.5 None 0 808 kB aearly
npm/available-typed-arrays@1.0.5 None 0 14.1 kB ljharb
npm/b4a@1.6.4 None 0 27.6 kB kasperisager
npm/babel-jest@29.7.0 environment Transitive: eval, filesystem, network, shell, unsafe +101 17 MB simenb
npm/babel-plugin-istanbul@6.1.1 environment, filesystem, shell Transitive: eval, unsafe +54 11.5 MB oss-bot
npm/babel-plugin-jest-hoist@29.6.3 Transitive: environment +16 4.74 MB simenb
npm/babel-preset-current-node-syntax@1.0.1 eval Transitive: environment, filesystem, unsafe +55 10.6 MB nicolo-ribaudo
npm/babel-preset-jest@29.6.3 Transitive: environment, eval, filesystem, unsafe +61 10.8 MB simenb
npm/bare-events@2.2.0 None 0 18.3 kB kasperisager
npm/bare-fs@2.1.5 None +3 682 kB kasperisager
npm/bare-os@2.2.0 None 0 216 kB kasperisager
npm/bare-path@2.1.0 None +1 251 kB kasperisager
npm/basic-ftp@5.0.4 filesystem, network 0 136 kB patrickjuchli
npm/benchmark@2.1.4 eval +1 1.5 MB jdalton
npm/bn.js@4.12.0 None 0 95.7 kB fanatid
npm/brace-expansion@2.0.1 None +1 18.4 kB juliangruber
npm/brorand@1.1.0 None 0 3.52 kB indutny
npm/browserify-aes@1.2.0 None +7 70.6 kB cwmma
npm/browserify-cipher@1.0.1 None +11 125 kB cwmma
npm/browserify-des@1.0.2 None +4 59.5 kB cwmma
npm/browserify-rsa@4.1.0 None +1 103 kB cwmma
npm/browserify-sign@4.2.2 None +15 446 kB ljharb
npm/bs-logger@0.2.6 environment, filesystem +1 64.8 kB huafu
npm/bser@2.1.1 None 0 18 kB wez
npm/buffer-crc32@0.2.13 None 0 7.95 kB brianloveswords
npm/buffer-xor@1.0.3 None 0 4.83 kB dcousens
npm/buffer@6.0.3 None +2 108 kB feross
npm/cacache@18.0.2 filesystem Transitive: environment, shell +13 1.5 MB npm-cli-ops
npm/cache-content-type@1.0.1 None +2 226 kB dead_horse
npm/camelcase-keys@6.2.2 None +2 18.8 kB sindresorhus
npm/camelcase@5.3.1 None 0 7.45 kB sindresorhus
npm/caniuse-lite@1.0.30001580 None 0 1.97 MB caniuse-lite
npm/catering@2.1.1 None 0 5 kB vweevers
npm/char-regex@1.0.2 None 0 4.96 kB richienb
npm/chownr@2.0.0 filesystem 0 5.75 kB isaacs
npm/chromium-bidi@0.5.9 None +1 7.81 MB google-wombot
npm/cipher-base@1.0.4 None +1 11.9 kB cwmma
npm/cjs-module-lexer@1.2.3 None 0 139 kB guybedford
npm/cli-cursor@3.1.0 None 0 4.37 kB sindresorhus
npm/cli-spinners@2.9.2 None 0 32.1 kB sindresorhus
npm/clone@1.0.4 None 0 11.1 kB pvorb
npm/co-body@6.1.0 None +1 16.1 kB dead_horse
npm/co@4.6.0 None 0 16 kB jongleberry
npm/collect-v8-coverage@1.0.2 unsafe 0 5.14 kB simenb
npm/color@3.2.1 None +4 69.7 kB qix
npm/colorspace@1.1.4 None +5 73.3 kB 3rdeden
npm/comlink@4.4.1 None 0 248 kB benjamind
npm/commander@10.0.1 environment, filesystem, shell 0 174 kB abetomo
npm/comment-json@3.0.3 None +3 363 kB kael
npm/comment-parser@1.3.1 None 0 363 kB yavorskiys
npm/component-emitter@1.3.1 None 0 6.3 kB sindresorhus
npm/concurrently@7.6.0 environment, filesystem +9 8.56 MB gustavohenke
npm/convert-hex@0.1.0 None 0 3.36 kB jp
npm/convert-string@0.1.0 None 0 3.09 kB jp
npm/cookiejar@2.1.4 None 0 14.5 kB andyburke
npm/cookies@0.9.1 network Transitive: environment, eval +2 57 kB dougwilson
npm/copy-to@2.0.1 None 0 5.03 kB dead_horse
npm/cosmiconfig@9.0.0 filesystem Transitive: environment, unsafe +5 720 kB d-fischer
npm/create-ecdh@4.0.4 None +8 300 kB cwmma
npm/create-hash@1.2.0 None +4 30.9 kB cwmma
npm/create-hmac@1.1.7 None +5 36.7 kB cwmma
npm/create-jest@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +158 18.7 MB simenb
npm/create-require@1.1.1 filesystem, unsafe 0 6.25 kB pi0
npm/cross-fetch@4.0.0 network 0 88.1 kB lquixada
npm/crypto-browserify@3.12.0 None +25 621 kB cwmma
npm/data-uri-to-buffer@4.0.1 None 0 10 kB tootallnate
npm/datastore-core@9.2.7 Transitive: environment +22 1.21 MB achingbrain
npm/decamelize-keys@1.1.1 None +2 9.49 kB sindresorhus
npm/decamelize@1.2.0 None 0 2.94 kB sindresorhus
npm/dedent@1.5.1 None 0 13.9 kB joshuakgoldberg
npm/deep-equal@1.0.1 None 0 9.69 kB substack
npm/deep-is@0.1.4 None 0 8.11 kB thlorenz
npm/default-gateway@7.2.2 Transitive: environment, filesystem, shell +6 158 kB silverwind
npm/defaults@1.0.4 None +1 15 kB sindresorhus
npm/deferred-leveldown@7.0.0 None +9 426 kB vweevers
npm/degenerator@5.0.1 None +5 1 MB tootallnate
npm/delay@6.0.0 None 0 10.3 kB sindresorhus
npm/delegates@1.0.0 None 0 7.46 kB tjholowaychuk
npm/dependency-tree@9.0.0 filesystem Transitive: environment, shell, unsafe +10 454 kB mrjoelkemp
npm/des.js@1.1.0 None +2 45.3 kB indutny
npm/detect-newline@3.1.0 None 0 3.77 kB sindresorhus
npm/detective-amd@3.1.2 Transitive: filesystem +6 535 kB xhmikosr
npm/detective-cjs@3.1.3 None 0 4.29 kB xhmikosr
npm/detective-es6@2.2.2 None 0 4.6 kB xhmikosr
npm/detective-less@1.0.2 Transitive: environment +3 700 kB killcoder
npm/detective-postcss@4.0.0 Transitive: environment +2 64.7 kB joscha
npm/detective-sass@3.0.2 None +2 659 kB xhmikosr
npm/detective-scss@2.0.2 None +2 659 kB xhmikosr
npm/detective-stylus@3.0.0 None 0 3.85 kB xhmikosr
npm/detective-typescript@7.0.2 Transitive: environment, filesystem +23 55.4 MB mrjoelkemp
npm/devtools-protocol@0.0.1249869 None 0 2.97 MB google-wombot
npm/dezalgo@1.0.4 None +1 36.9 kB gar
npm/diff-sequences@29.6.3 None 0 46 kB simenb
npm/diff@4.0.2 None 0 335 kB kpdecker
npm/diffie-hellman@5.0.3 None +3 123 kB cwmma
npm/dns-over-http-resolver@3.0.2 Transitive: environment +1 95.7 kB vascosantos
npm/doctrine@2.1.0 None +1 157 kB eslint
npm/dotenv@16.4.1 environment, filesystem 0 76 kB motdotla
npm/electron-to-chromium@1.4.647 None 0 271 kB kilianvalkhof
npm/elliptic@6.5.4 None +7 295 kB indutny
npm/emittery@0.13.1 None 0 46.5 kB sindresorhus
npm/enabled@2.0.0 None 0 5.89 kB 3rdeden
npm/encoding@0.1.13 None +1 356 kB andris
npm/env-paths@2.2.1 None 0 10.2 kB sindresorhus
npm/envinfo@7.11.0 environment, eval, filesystem, shell 0 162 kB tabrindle
npm/err-code@2.0.3 None 0 12.3 kB achingbrain
npm/es-abstract@1.22.3 Transitive: eval +29 2.57 MB ljharb
npm/es-set-tostringtag@2.0.2 Transitive: eval +6 130 kB ljharb
npm/es-shim-unscopables@1.0.2 None +2 53.3 kB ljharb
npm/es-to-primitive@1.2.1 None +5 144 kB ljharb
npm/esbuild@0.18.20 environment, filesystem, network, shell +22 207 MB evanw
npm/escodegen@2.1.0 None +3 510 kB michaelficarra
npm/eslint-config-prettier@8.10.0 Transitive: environment, eval, filesystem, shell, unsafe +63 10.4 MB lydell
npm/eslint-import-resolver-node@0.3.9 Transitive: environment, filesystem +5 276 kB ljharb
npm/eslint-import-resolver-typescript@3.6.1 Transitive: environment, eval, filesystem, shell, unsafe +116 15.3 MB jounqin
npm/eslint-module-utils@2.8.0 None 0 36.4 kB ljharb
npm/eslint-plugin-import@2.29.1 filesystem, unsafe Transitive: environment, eval, shell +107 14.7 MB ljharb
npm/eslint-plugin-jsdoc@40.3.0 Transitive: environment, eval, filesystem, shell, unsafe +67 12.7 MB gajus
npm/eslint-plugin-no-only-tests@3.1.0 None 0 9.54 kB levibuzolic
npm/eslint-plugin-tsdoc@0.2.17 Transitive: eval, filesystem +7 3.87 MB odspnpm
npm/eslint-visitor-keys@2.1.0 None 0 24.7 kB eslintbot
npm/eslint@8.56.0 environment, filesystem Transitive: eval, shell, unsafe +62 10.4 MB eslintbot
npm/espree@9.6.1 None +2 629 kB eslintbot
npm/esquery@1.5.0 None 0 1 MB michaelficarra
npm/event-iterator@2.0.0 None 0 40 kB rolftimmermans
npm/event-stream@3.3.4 None +3 72.4 kB dominictarr
npm/eventemitter3@5.0.1 None 0 73.4 kB lpinca
npm/evp_bytestokey@1.0.3 None +3 22.8 kB dcousens
npm/exit@0.1.2 None 0 59.8 kB cowboy
npm/expect@29.7.0 Transitive: environment, filesystem +30 5.33 MB simenb
npm/exponential-backoff@3.1.1 None 0 37.3 kB sssayegh
npm/extract-zip@2.0.1 filesystem Transitive: environment +4 4.06 MB malept
npm/fast-fifo@1.3.2 None 0 5.07 kB mafintosh
npm/fast-levenshtein@2.0.6 None 0 9.44 kB hiddentao
npm/fast-safe-stringify@2.1.1 None 0 39.7 kB matteo.collina
npm/fastest-levenshtein@1.0.16 None 0 21.3 kB ka-weihe
npm/fb-watchman@2.0.2 environment, network, shell +1 29 kB bolinfest
npm/fd-slicer@1.1.0 filesystem 0 29.8 kB thejoshwolfe
npm/fecha@4.2.3 None 0 144 kB taylorhakes
npm/fetch-blob@3.2.0 None 0 21.8 kB endless
npm/file-entry-cache@6.0.1 filesystem +4 128 kB royriojas
npm/file-stream-rotator@0.6.1 filesystem 0 53.7 kB rogerc
npm/filing-cabinet@3.3.1 filesystem, unsafe Transitive: environment +8 371 kB mrjoelkemp
npm/flat-cache@3.2.0 filesystem +3 103 kB jaredwray
npm/flatted@3.2.9 None 0 40.1 kB webreflection
npm/flatten@1.0.3 None 0 3.68 kB mk-pmb
npm/fn.name@1.1.0 None 0 6.21 kB 3rdeden
npm/for-each@0.3.3 None +1 42 kB ljharb
npm/foreground-child@3.1.1 shell Transitive: environment, filesystem +1 81.6 kB isaacs
npm/formdata-polyfill@4.0.10 None +1 54 kB endless
npm/formidable@2.1.2 filesystem +3 139 kB tunnckocore
npm/freeport-promise@2.0.0 None 0 6.49 kB achingbrain
npm/from@0.1.7 None 0 8.49 kB dominictarr
npm/fs-extra@11.2.0 Transitive: environment, filesystem +2 104 kB ryanzim
npm/fs-minipass@2.1.0 filesystem +1 62.2 kB isaacs
npm/function.prototype.name@1.1.6 Transitive: eval +29 2.57 MB ljharb
npm/functional-red-black-tree@1.0.1 None 0 43.5 kB mikolalysenko
npm/functions-have-names@1.2.3 None 0 16.7 kB ljharb
npm/get-amd-module-type@3.0.2 filesystem 0 5.48 kB xhmikosr
npm/get-iterator@1.0.2 None 0 6.63 kB alanshaw
npm/get-package-type@0.1.0 filesystem 0 6.01 kB coreyfarrell
npm/get-symbol-description@1.0.0 Transitive: eval +6 141 kB ljharb
npm/get-tsconfig@4.7.2 filesystem, unsafe 0 101 kB hirokiosame
npm/get-uri@6.0.2 filesystem, network Transitive: environment +6 417 kB tootallnate
npm/glob@10.3.10 Transitive: environment, filesystem, shell +9 1.39 MB isaacs
npm/globals@13.24.0 None 0 52.1 kB sindresorhus
npm/globalthis@1.0.3 None 0 22.4 kB ljharb
npm/gonzales-pe@4.3.0 None +1 654 kB tonyganch
npm/graphemer@1.4.0 None 0 812 kB mattpauldavies
npm/hard-rejection@2.1.0 None 0 5.14 kB sindresorhus
npm/has-bigints@1.0.2 None 0 12.8 kB ljharb
npm/has-flag@3.0.0 None 0 3.13 kB sindresorhus
npm/has-own-prop@2.0.0 None 0 2.84 kB sindresorhus
npm/has-tostringtag@1.0.0 None +1 31.5 kB ljharb
npm/hash-base@3.1.0 None +1 10 kB fanatid
npm/hash.js@1.1.7 None +2 47.2 kB indutny
npm/hashlru@2.3.0 None 0 8.63 kB dominictarr
npm/hexoid@1.0.0 None 0 7.72 kB lukeed
npm/hmac-drbg@1.0.1 None +4 76.9 kB indutny
npm/hosted-git-info@2.8.9 None 0 25.8 kB nlf
npm/http-assert@1.5.0 network Transitive: environment, eval +4 71.6 kB dougwilson
npm/http-errors@1.8.1 Transitive: environment, eval +2 52.8 kB dougwilson
npm/http-proxy-agent@7.0.0 network Transitive: environment +2 90.2 kB tootallnate
npm/https-proxy-agent@7.0.2 network Transitive: environment +2 101 kB tootallnate
npm/hyperdyperid@1.2.0 None 0 861 kB streamich
npm/immediate@3.0.6 None 0 14.6 kB cwmma
npm/import-local@3.1.0 None 0 4.66 kB sindresorhus
npm/indexes-of@1.0.1 None 0 2.73 kB dominictarr
npm/inflation@2.1.0 None 0 4.34 kB fengmk2
npm/interface-datastore@8.2.10 None +1 134 kB achingbrain
npm/interface-store@5.1.7 None 0 49.6 kB achingbrain
npm/internal-slot@1.0.6 Transitive: eval +5 130 kB ljharb
npm/interpret@3.1.1 None 0 21.5 kB phated
npm/ip-regex@5.0.0 None 0 7.67 kB sindresorhus
npm/ip@1.1.8 None 0 13.6 kB indutny
npm/is-arguments@1.1.1 Transitive: eval +7 171 kB ljharb
npm/is-array-buffer@3.0.2 Transitive: eval +7 161 kB ljharb
npm/is-bigint@1.0.4 None +1 27.6 kB ljharb
npm/is-boolean-object@1.1.2 Transitive: eval +7 164 kB ljharb
npm/is-callable@1.2.7 None 0 28.9 kB ljharb
npm/is-date-object@1.0.5 None +2 52.3 kB ljharb
npm/is-electron@2.2.2 None 0 3.26 kB cheton
npm/is-generator-fn@2.1.0 None 0 3.28 kB sindresorhus
npm/is-generator-function@1.0.10 eval +2 63.4 kB ljharb
npm/is-interactive@1.0.0 None 0 4.62 kB sindresorhus
npm/is-lambda@1.0.1 None 0 2.94 kB watson
npm/is-loopback-addr@2.0.2 None 0 7.32 kB vascosantos
npm/is-negative-zero@2.0.2 None 0 22 kB ljharb
npm/is-network-error@1.0.1 None 0 4.5 kB sindresorhus
npm/is-number-object@1.0.7 None +2 53.7 kB ljharb
npm/is-plain-obj@1.1.0 None 0 2.62 kB sindresorhus
npm/is-regex@1.1.4 Transitive: eval +7 172 kB ljharb
npm/is-relative-path@1.0.2 None 0 2.83 kB mrjoelkemp
npm/is-shared-array-buffer@1.0.2 Transitive: eval +6 143 kB ljharb
npm/is-string@1.0.7 None +2 50.6 kB ljharb
npm/is-symbol@1.0.4 None +1 42.6 kB ljharb
npm/is-typed-array@1.1.12 None 0 17.6 kB ljharb
npm/is-unicode-supported@0.1.0 None 0 3.54 kB sindresorhus
npm/is-url-superb@4.0.0 None 0 2.7 kB sindresorhus
npm/is-url@1.2.4 None 0 6.58 kB zeke
npm/is-weakref@1.0.2 Transitive: eval +6 143 kB ljharb
npm/isarray@2.0.5 None 0 3.43 kB juliangruber
npm/isows@1.0.3 None 0 9.87 kB jmoxey
npm/istanbul-lib-coverage@3.2.2 None 0 34.4 kB oss-bot
npm/istanbul-lib-instrument@5.2.1 Transitive: environment, filesystem, unsafe +44 10.7 MB oss-bot
npm/istanbul-lib-report@3.0.1 filesystem +2 81.9 kB oss-bot
npm/istanbul-lib-source-maps@4.0.1 filesystem Transitive: environment +2 111 kB oss-bot
npm/istanbul-reports@3.1.6 Transitive: filesystem +4 389 kB oss-bot
npm/it-all@3.0.4 None 0 10.2 kB achingbrain
npm/it-batched-bytes@2.0.5 None 0 30.2 kB achingbrain
npm/it-byte-stream@1.0.7 None +1 49.7 kB achingbrain
npm/it-drain@3.0.5 None 0 10 kB achingbrain
npm/it-filter@3.0.4 None +1 28.7 kB achingbrain
npm/it-first@3.0.4 None 0 10.3 kB achingbrain
npm/it-foreach@2.0.6 None +1 29 kB achingbrain
npm/it-handshake@4.1.3 None +3 107 kB jacobheun
npm/it-length-prefixed-stream@1.1.6 None +2 81.2 kB achingbrain
npm/it-length-prefixed@9.0.4 None +3 88.2 kB alanshaw
npm/it-length@3.0.4 None 0 10.7 kB achingbrain
npm/it-map@3.0.5 None +1 27.4 kB achingbrain
npm/it-merge@3.0.3 None +1 66.7 kB achingbrain
npm/it-pair@2.0.6 None +1 21.1 kB alanshaw
npm/it-parallel@3.0.6 None 0 24.1 kB achingbrain
npm/it-peekable@3.0.3 None 0 13.9 kB achingbrain
npm/it-pipe@3.0.1 None +3 115 kB alanshaw
npm/it-protobuf-stream@1.1.2 None +3 116 kB achingbrain
npm/it-pushable@3.2.3 None 0 49.4 kB alanshaw
npm/it-reader@6.0.4 None +1 30.6 kB alanshaw
npm/it-sort@3.0.4 None +1 22.5 kB achingbrain
npm/it-stream-types@2.0.1 None 0 9.02 kB achingbrain
npm/it-take@3.0.4 None 0 11.6 kB achingbrain
npm/jackspeak@2.3.6 environment +2 355 kB isaacs
npm/javascript-natural-sort@0.7.1 None 0 45.9 kB kylehousley
npm/jest-changed-files@29.7.0 environment Transitive: filesystem, shell +22 4.91 MB simenb
npm/jest-circus@29.7.0 unsafe Transitive: environment, eval, filesystem, network, shell +137 18.1 MB simenb
npm/jest-cli@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +186 21.4 MB simenb
npm/jest-config@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +156 18.6 MB simenb
npm/jest-diff@29.7.0 None +6 214 kB simenb
npm/jest-docblock@29.7.0 None +1 12.8 kB simenb
npm/jest-each@29.7.0 Transitive: environment, filesystem +17 4.78 MB simenb
npm/jest-environment-node@29.7.0 unsafe Transitive: environment, eval, filesystem +30 5.21 MB simenb
npm/jest-get-type@29.6.3 None 0 3.79 kB simenb
npm/jest-haste-map@29.7.0 environment, filesystem, shell, unsafe Transitive: network +28 5.29 MB simenb
npm/jest-leak-detector@29.7.0 unsafe +1 9.38 kB simenb
npm/jest-matcher-utils@29.7.0 None +7 243 kB simenb
npm/jest-message-util@29.7.0 Transitive: environment, filesystem +22 4.93 MB simenb
npm/jest-mock-extended@3.0.5 Transitive: environment, eval, filesystem, network, shell, unsafe +188 21.5 MB marchaos
npm/jest-mock@29.7.0 Transitive: environment, filesystem +16 4.79 MB simenb
npm/jest-pnp-resolver@1.2.3 Transitive: environment, filesystem, network, shell, unsafe +37 5.49 MB arcanis
npm/jest-regex-util@29.6.3 None 0 3.52 kB simenb
npm/jest-resolve-dependencies@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +106 17.3 MB simenb
npm/jest-resolve@29.7.0 environment, unsafe Transitive: filesystem, network, shell +37 5.49 MB simenb
npm/jest-runner@29.7.0 environment Transitive: eval, filesystem, network, shell, unsafe +140 18.1 MB simenb
npm/jest-runtime@29.7.0 unsafe Transitive: environment, eval, filesystem, network, shell +132 18 MB simenb
npm/jest-snapshot@29.7.0 eval Transitive: environment, filesystem, network, shell, unsafe +105 17.2 MB simenb
npm/jest-validate@29.7.0 None +16 4.69 MB simenb
npm/jest-watcher@29.7.0 Transitive: environment, filesystem, unsafe +30 5.12 MB simenb
npm/jest-worker@27.5.1 environment, shell +3 4.08 MB simenb
npm/jest@29.7.0 Transitive: environment, eval, filesystem, network, shell, unsafe +187 21.4 MB simenb
npm/jju@1.4.0 filesystem 0 70.4 kB rlidwka
npm/jsdoc-type-pratt-parser@4.0.0 None 0 242 kB jsdoc-type-pratt-parser
npm/json-buffer@3.0.1 None 0 5.4 kB dominictarr
npm/json-joy@9.9.1 None +2 7.06 MB streamich
npm/json-stable-stringify-without-jsonify@1.0.1 None 0 14.2 kB samn
npm/jsonc-parser@3.2.1 None 0 210 kB vscode-bot
npm/jsonfile@4.0.0 filesystem Transitive: environment +1 49.5 kB ryanzim
npm/jszip@3.10.1 None +2 836 kB stuk
npm/keygrip@1.1.0 None 0 7.49 kB dougwilson
npm/keyv@4.5.4 None +1 33.2 kB jaredwray
npm/koa-bodyparser@4.4.1 None +3 36.2 kB fengmk2
npm/koa-compose@4.1.0 None 0 4.16 kB dead_horse
npm/koa-compress@5.1.1 network Transitive: environment, eval +7 293 kB jongleberry
npm/koa-convert@2.0.0 None +2 29.4 kB niftylettuce
npm/koa-cors@0.0.16 None 0 15.4 kB evert0n
npm/koa-is-json@1.0.0 None 0 2.36 kB jongleberry
npm/koa-router@12.0.1 network Transitive: environment, eval +7 146 kB titanism
npm/koa-send@5.0.1 filesystem, network Transitive: environment, eval +4 109 kB niftylettuce
npm/koa-static@5.0.0 Transitive: environment, eval, filesystem, network +5 117 kB coderhaoxin
npm/koa@2.15.0 environment, network, unsafe Transitive: eval, filesystem +26 635 kB fengmk2
npm/kuler@2.0.0 None 0 6.09 kB 3rdeden
npm/level-concat-iterator@3.1.0 None +1 13.5 kB vweevers
npm/level-errors@3.0.1 None 0 13.1 kB vweevers
npm/level-iterator-stream@5.0.0 Transitive: environment +2 146 kB vweevers
npm/level-supports@2.1.0 None 0 26.9 kB vweevers
npm/leveldown@6.1.1 None +8 6.07 MB vweevers
npm/levelup@5.1.1 Transitive: environment +13 683 kB vweevers
npm/levn@0.4.1 None 0 24.9 kB gkz
npm/libp2p@0.46.21 Transitive: environment, filesystem, shell +68 8.64 MB npm-service-account-libp2p
npm/lie@3.3.0 None +1 73.8 kB cwmma
npm/lmdb@2.9.2 environment, filesystem, unsafe +6 12.4 MB kriszyp
npm/load-json-file@6.2.0 Transitive: environment, filesystem +2 67.8 kB sindresorhus
npm/lodash.camelcase@4.3.0 None 0 21.9 kB jdalton
npm/lodash.capitalize@4.2.1 None 0 11.9 kB jdalton
npm/lodash.chunk@4.2.0 None 0 14.7 kB jdalton
npm/lodash.clonedeep@4.5.0 None 0 48.2 kB jdalton
npm/lodash.clonedeepwith@4.5.0 None 0 48.5 kB jdalton
npm/lodash.compact@3.0.1 None 0 3.52 kB jdalton
npm/lodash.every@4.6.0 None 0 68.1 kB jdalton
npm/lodash.isequal@4.5.0 None 0 52.7 kB jdalton
npm/lodash.merge@4.6.2 None 0 54.1 kB jdalton
npm/lodash.omit@4.5.0 None 0 40.9 kB jdalton
npm/lodash.pick@4.4.0 None 0 16.3 kB jdalton
npm/lodash.startcase@4.4.0 None 0 21.5 kB jdalton
npm/lodash.times@4.3.2 None 0 10.6 kB jdalton
npm/log-symbols@4.1.0 None +5 94 kB sindresorhus
npm/logform@2.6.0 Transitive: environment +3 308 kB dabh
npm/ltgt@2.2.1 None 0 17.5 kB dominictarr
npm/madge@6.1.0 filesystem, shell Transitive: environment, unsafe +64 5.33 MB kamiazya
npm/make-dir@4.0.0 filesystem 0 9.91 kB sindresorhus
npm/make-error@1.3.6 None 0 12.4 kB julien-f
npm/make-fetch-happen@13.0.0 network Transitive: environment, filesystem, shell +23 2.48 MB npm-cli-ops
npm/makeerror@1.0.12 None 0 6.07 kB daaku
npm/map-obj@1.0.1 None 0 2.52 kB sindresorhus
npm/map-stream@0.1.0 None 0 13.6 kB dominictarr
npm/md5.js@1.3.5 None +2 17.7 kB cwmma
npm/memdown@6.1.1 None +11 491 kB vweevers
npm/memfs@4.6.0 None +3 7.97 MB streamich
npm/meow@7.1.1 None +12 185 kB sindresorhus
npm/merge-options@3.0.4 None +1 14.4 kB schnittstabil
npm/miller-rabin@4.0.1 None +2 106 kB indutny
npm/mime@2.6.0 None 0 60.1 kB broofa
npm/min-indent@1.0.1 None 0 2.97 kB thejameskyle
npm/minimalistic-crypto-utils@1.0.1 None 0 4.76 kB indutny
npm/minimatch@9.0.3 environment +2 452 kB isaacs
npm/minimist-options@4.1.0 None +3 36.3 kB vdemedes
npm/minipass-collect@2.0.1 None 0 4.96 kB isaacs
npm/minipass@3.3.6 None 0 48.1 kB isaacs

🚮 Removed packages: npm/@algolia/client-search@4.22.1, npm/@babel/core@7.23.7, npm/@babel/helper-create-class-features-plugin@7.23.7, npm/@babel/helper-create-regexp-features-plugin@7.22.15, npm/@babel/helper-member-expression-to-functions@7.23.0, npm/@babel/helpers@7.23.8, npm/@babel/parser@7.23.6, npm/@babel/plugin-transform-optional-chaining@7.23.4, npm/@babel/plugin-transform-parameters@7.23.3, npm/@babel/plugin-transform-react-jsx@7.23.4, npm/@babel/preset-env@7.23.8, npm/@babel/runtime@7.23.8, npm/@babel/template@7.22.15, npm/@babel/traverse@7.23.7, npm/@babel/types@7.23.6, npm/@docusaurus/core@2.4.3, npm/@docusaurus/module-type-aliases@2.4.3, npm/@docusaurus/plugin-ideal-image@2.4.3, npm/@docusaurus/preset-classic@2.4.3, npm/@docusaurus/theme-mermaid@2.4.3, npm/@hapi/hoek@9.3.0, npm/@jridgewell/trace-mapping@0.3.21, npm/@mdx-js/react@1.6.22, npm/@tsconfig/docusaurus@1.0.7, npm/@types/express-serve-static-core@4.17.41, npm/@types/react-router-config@5.0.11, npm/@types/react-router@5.1.20, npm/@types/unist@2.0.10, npm/address@1.2.2, npm/ajv@8.12.0, npm/algoliasearch@4.22.1, npm/ansi-align@3.0.1, npm/autoprefixer@10.4.17, npm/axios@1.6.5, npm/caniuse-lite@1.0.30001579, npm/chokidar@3.5.3, npm/clean-css@5.3.3, npm/clsx@1.2.1, npm/concurrently@8.2.2, npm/core-js-compat@3.35.0, npm/css-tree@1.1.3, npm/css-what@6.1.0, npm/cssnano@5.1.15, npm/d3-array@3.2.4, npm/d3-color@3.1.0, npm/d3-dispatch@3.0.1, npm/d3-drag@3.0.0, npm/d3-dsv@3.0.1, npm/d3-ease@3.0.1, npm/d3-format@3.1.0, npm/d3-interpolate@3.0.1, npm/d3-path@3.1.0, npm/d3-quadtree@3.0.1, npm/d3-selection@3.0.0, npm/d3-time-format@4.1.0, npm/d3-time@3.1.0, npm/d3-timer@3.0.1, npm/d3-transition@3.0.1, npm/d3@7.8.5, npm/docusaurus-plugin-typedoc@0.20.2, npm/domelementtype@2.3.0, npm/domhandler@5.0.3, npm/domutils@3.1.0, npm/dotenv@16.3.1, npm/entities@4.5.0, npm/fbjs@3.0.5, npm/follow-redirects@1.15.5, npm/hast-util-is-element@1.1.0, npm/html-minifier-terser@6.1.0, npm/icss-utils@5.1.0, npm/is-alphabetical@1.0.4, npm/is-docker@2.2.1, npm/lodash.uniq@4.5.0, npm/loose-envify@1.4.0, npm/lowercase-keys@1.0.1, npm/make-dir@3.1.0, npm/memfs@3.6.0, npm/mkdirp-classic@0.5.3, npm/nodemon@3.0.3, npm/normalize-path@3.0.0, npm/object-assign@4.1.1, npm/obuf@1.1.2, npm/once@1.4.0, npm/open@8.4.2, npm/p-limit@2.3.0, npm/parse-json@5.2.0, npm/parseurl@1.3.3, npm/path-key@3.1.1, npm/picomatch@2.3.1, npm/postcss-selector-parser@6.0.15, npm/postcss-value-parser@4.2.0, npm/postcss@8.4.33, npm/prism-react-renderer@1.3.5, npm/prop-types@15.8.1, npm/property-information@5.6.0, npm/rc@1.2.8, npm/react-dom@17.0.2, npm/react-fast-compare@3.2.2, npm/react-helmet-async@1.3.0, npm/react-is@16.13.1, npm/react-player@2.14.1, npm/react-router@5.3.4, npm/react@17.0.2, npm/rehype-katex@5.0.0, npm/remark-math@3.0.1

View full report↗︎

@socket-security

Copy link
Copy Markdown

🚨 Potential security issues detected. Learn more about Socket for GitHub ↗︎

To accept the risk, merge this PR and you will not be notified again.

Alert Package Note
Install scripts npm/esbuild@0.18.20
Native code npm/leveldown@6.1.1
Native code npm/lmdb@2.9.2

View full report↗︎

Next steps

What is an install script?

Install scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.

Packages should not be running non-essential scripts during install and there are often solutions to problems people solve with install scripts that can be run at publish time instead.

What's wrong with native code?

Contains native code which could be a vector to obscure malicious code, and generally decrease the likelihood of reproducible or reliable installs.

Ensure that native code bindings are expected. Consumers may consider pure JS and functionally similar alternatives to avoid the challenges and risks associated with native code bindings.

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/foo@1.0.0 or ignore all packages with @SocketSecurity ignore-all

  • @SocketSecurity ignore npm/esbuild@0.18.20
  • @SocketSecurity ignore npm/leveldown@6.1.1
  • @SocketSecurity ignore npm/lmdb@2.9.2

@LHerskind

Copy link
Copy Markdown
Contributor Author

How about placing errors in the types package? Today types contains (or should contain) base types and interfaces used across the entire codebase. Feels like errors are just another type that would be a good fit there.

Alternatively, I'd place the error types next to the interfaces that throw them. So the ArchiverErrors should live next to where the Archiver interface lives.

The foundation also throw quite a few errors, so was to allow it to be used in there without going full circular.
I liked to have them one place to make it easy to find them all, but might be fine to split it out a bit.

@LHerskind

Copy link
Copy Markdown
Contributor Author

Closing this as I never returned to it. If we figure it is interesting we can reopen it.

@LHerskind LHerskind closed this May 5, 2024
@ludamad
ludamad deleted the lh/error-handling branch August 22, 2024 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants