Giter Club home page Giter Club logo

bundle-buddy's Introduction

Build Status

The design document for the project is here: https://docs.google.com/document/d/1ycGVBJmwIVs34yhC0oTqv_WH5f0fs2SAFmzyTiBK99k/edit

The TODO list for the project is here: https://docs.google.com/document/d/1lStU7UmfwqgSmyhAgM7jtpQNcoI2czmPeLuC0-gNn7g/edit

The legacy version of bundle-buddy (still installable via npm) can be viewed here: https://github.com/samccone/bundle-buddy/tree/5b79c7645677e78d29f0201aad582a346b88122a

Deploy

For the gcloud command you will need to install: https://cloud.google.com/sdk/docs/#install_the_latest_cloud_tools_version_cloudsdk_current_version

Then you can deploy the project using:

./deploy.sh

bundle-buddy's People

Contributors

dependabot[bot] avatar ndelangen avatar paulirish avatar piperchester avatar samccone avatar sudo-suhas avatar susielu avatar tbuchanan avatar thelarkinn avatar v-zhzhou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bundle-buddy's Issues

#Nizwork

๐Ÿฆ„ #NiceWorkSam ๐Ÿฆ„

Error from Uncaught application error

Not even sure what I did. Must have clicked some link, because I just wanted to activate the tab.

Uncaught application error:

----
Error: invalid state
    at component (https://bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:122921)
    at Gi (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:149980)
    at mu (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:196386)
    at cl (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:188919)
    at ul (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:188844)
    at Zu (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:185853)
    at Gu (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:182614)
    at Fl (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:204123)
    at https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:205368
    at tl (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:186200)
    at Bl (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:205353)
    at Object.render (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:208347)
    at Module.69 (https://bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:125613)
    at c (https://bundle-buddy.com/bundle?selected=.yarn%2F__virtual__%2Fgraphiql-virtual-1c79c7fcd7%2F0%2Fcache%2Fgraphiql-npm-1.4.2-e6ace6ca5f-de764d6e18.zip%2Fnode_modules%2Fgraphiql%2Fsrc%2Futility%2FnormalizeWhitespace.ts:1:1412)
    at Object.38 (https://bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:119295)
    at c (https://bundle-buddy.com/bundle?selected=.yarn%2F__virtual__%2Fgraphiql-virtual-1c79c7fcd7%2F0%2Fcache%2Fgraphiql-npm-1.4.2-e6ace6ca5f-de764d6e18.zip%2Fnode_modules%2Fgraphiql%2Fsrc%2Futility%2FnormalizeWhitespace.ts:1:1412)
    at r (https://bundle-buddy.com/bundle?selected=.yarn%2F__virtual__%2Fgraphiql-virtual-1c79c7fcd7%2F0%2Fcache%2Fgraphiql-npm-1.4.2-e6ace6ca5f-de764d6e18.zip%2Fnode_modules%2Fgraphiql%2Fsrc%2Futility%2FnormalizeWhitespace.ts:1:1273)
    at Array.t [as push] (https://bundle-buddy.com/bundle?selected=.yarn%2F__virtual__%2Fgraphiql-virtual-1c79c7fcd7%2F0%2Fcache%2Fgraphiql-npm-1.4.2-e6ace6ca5f-de764d6e18.zip%2Fnode_modules%2Fgraphiql%2Fsrc%2Futility%2FnormalizeWhitespace.ts:1:1136)
    at https://bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:73```

Uncaught TypeError: Cannot read property '0' of undefined

I'm trying to use https://www.bundle-buddy.com/ with a build file from esbuild but it errors out with:

helpers.ts:102 Uncaught TypeError: Cannot read property '0' of undefined
    at n (duplicateModules.ts:87)
    at j (process.ts:308)
    at Resolve.import (Resolve.tsx:245)
    at onClick (Resolve.tsx:354)
    at Object.u (react-dom.production.min.js:14)
... more stack trace here

which I think is this line.

This is my esbuild.json file (generated with [email protected]):

{"inputs":{"src/webcrypto.js":{"bytes":754,"imports":[]},"src/hmac/lengths.js":{"bytes":74,"imports":[]},"src/hmac/index-browser.js":{"bytes":753,"imports":[{"path":"src/webcrypto.js","kind":"require-call"},{"path":"src/hmac/lengths.js","kind":"require-call"}]},"node_modules/node-forge/lib/forge.js":{"bytes":200,"imports":[]},"node_modules/node-forge/lib/baseN.js":{"bytes":5068,"imports":[]},"node_modules/node-forge/lib/util.js":{"bytes":76646,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/baseN.js","kind":"require-call"}]},"node_modules/node-forge/lib/cipher.js":{"bytes":6668,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/cipherModes.js":{"bytes":28917,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/aes.js":{"bytes":39025,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/cipher.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/cipherModes.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/@multiformats/base-x/src/index.js":{"bytes":4277,"imports":[]},"node_modules/multibase/src/util.js":{"bytes":757,"imports":[]},"node_modules/multibase/src/base.js":{"bytes":1085,"imports":[{"path":"node_modules/multibase/src/util.js","kind":"require-call"}]},"node_modules/multibase/src/rfc4648.js":{"bytes":2882,"imports":[]},"node_modules/multibase/src/constants.js":{"bytes":2754,"imports":[{"path":"node_modules/@multiformats/base-x/src/index.js","kind":"require-call"},{"path":"node_modules/multibase/src/base.js","kind":"require-call"},{"path":"node_modules/multibase/src/rfc4648.js","kind":"require-call"},{"path":"node_modules/multibase/src/util.js","kind":"require-call"}]},"node_modules/multibase/src/index.js":{"bytes":4133,"imports":[{"path":"node_modules/multibase/src/constants.js","kind":"require-call"},{"path":"node_modules/multibase/src/util.js","kind":"require-call"}]},"node_modules/uint8arrays/to-string.js":{"bytes":1234,"imports":[{"path":"node_modules/multibase/src/index.js","kind":"require-call"}]},"node_modules/uint8arrays/from-string.js":{"bytes":1233,"imports":[{"path":"node_modules/multibase/src/index.js","kind":"require-call"}]},"src/aes/ciphers-browser.js":{"bytes":1043,"imports":[{"path":"node_modules/node-forge/lib/aes.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"}]},"node_modules/err-code/index.js":{"bytes":1392,"imports":[]},"src/aes/cipher-mode.js":{"bytes":432,"imports":[{"path":"node_modules/err-code/index.js","kind":"require-call"}]},"src/aes/index.js":{"bytes":569,"imports":[{"path":"src/aes/ciphers-browser.js","kind":"require-call"},{"path":"src/aes/cipher-mode.js","kind":"require-call"}]},"node_modules/@protobufjs/aspromise/index.js":{"bytes":1592,"imports":[]},"node_modules/@protobufjs/base64/index.js":{"bytes":3943,"imports":[]},"node_modules/@protobufjs/eventemitter/index.js":{"bytes":2088,"imports":[]},"node_modules/@protobufjs/float/index.js":{"bytes":11448,"imports":[]},"node_modules/@protobufjs/inquire/index.js":{"bytes":544,"imports":[]},"node_modules/@protobufjs/utf8/index.js":{"bytes":3373,"imports":[]},"node_modules/@protobufjs/pool/index.js":{"bytes":1240,"imports":[]},"node_modules/protobufjs/src/util/longbits.js":{"bytes":5393,"imports":[{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"}]},"node_modules/protobufjs/src/util/minimal.js":{"bytes":12695,"imports":[{"path":"node_modules/@protobufjs/aspromise/index.js","kind":"require-call"},{"path":"node_modules/@protobufjs/base64/index.js","kind":"require-call"},{"path":"node_modules/@protobufjs/eventemitter/index.js","kind":"require-call"},{"path":"node_modules/@protobufjs/float/index.js","kind":"require-call"},{"path":"node_modules/@protobufjs/inquire/index.js","kind":"require-call"},{"path":"node_modules/@protobufjs/utf8/index.js","kind":"require-call"},{"path":"node_modules/@protobufjs/pool/index.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/util/longbits.js","kind":"require-call"}]},"node_modules/protobufjs/src/writer.js":{"bytes":12072,"imports":[{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"}]},"node_modules/protobufjs/src/writer_buffer.js":{"bytes":2356,"imports":[{"path":"node_modules/protobufjs/src/writer.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"}]},"node_modules/protobufjs/src/reader.js":{"bytes":11263,"imports":[{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"}]},"node_modules/protobufjs/src/reader_buffer.js":{"bytes":1252,"imports":[{"path":"node_modules/protobufjs/src/reader.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"}]},"node_modules/protobufjs/src/rpc/service.js":{"bytes":4763,"imports":[{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"}]},"node_modules/protobufjs/src/rpc.js":{"bytes":1204,"imports":[{"path":"node_modules/protobufjs/src/rpc/service.js","kind":"require-call"}]},"node_modules/protobufjs/src/roots.js":{"bytes":455,"imports":[]},"node_modules/protobufjs/src/index-minimal.js":{"bytes":925,"imports":[{"path":"node_modules/protobufjs/src/writer.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/writer_buffer.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/reader.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/reader_buffer.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/util/minimal.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/rpc.js","kind":"require-call"},{"path":"node_modules/protobufjs/src/roots.js","kind":"require-call"}]},"node_modules/protobufjs/minimal.js":{"bytes":96,"imports":[{"path":"node_modules/protobufjs/src/index-minimal.js","kind":"require-call"}]},"src/keys/keys.js":{"bytes":11483,"imports":[{"path":"node_modules/protobufjs/minimal.js","kind":"require-call"}]},"node_modules/node-forge/lib/oids.js":{"bytes":6498,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"}]},"node_modules/node-forge/lib/asn1.js":{"bytes":42040,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/oids.js","kind":"require-call"}]},"node_modules/node-forge/lib/des.js":{"bytes":20445,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/cipher.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/cipherModes.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/md.js":{"bytes":253,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"}]},"node_modules/node-forge/lib/hmac.js":{"bytes":3833,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/md.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"(disabled):crypto":{"bytes":0,"imports":[]},"node_modules/node-forge/lib/pbkdf2.js":{"bytes":5809,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/hmac.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/md.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"(disabled):crypto","kind":"require-call"}]},"node_modules/node-forge/lib/pem.js":{"bytes":6456,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/sha256.js":{"bytes":9574,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/md.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/prng.js":{"bytes":12347,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"(disabled):crypto","kind":"require-call"}]},"node_modules/node-forge/lib/random.js":{"bytes":5438,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/aes.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/sha256.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/prng.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/rc2.js":{"bytes":11949,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/jsbn.js":{"bytes":35188,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"}]},"node_modules/node-forge/lib/sha1.js":{"bytes":9089,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/md.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/pkcs1.js":{"bytes":8375,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/random.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/sha1.js","kind":"require-call"}]},"node_modules/node-forge/lib/prime.js":{"bytes":8776,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/jsbn.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/random.js","kind":"require-call"}]},"node_modules/node-forge/lib/rsa.js":{"bytes":56993,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/asn1.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/jsbn.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/oids.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/pkcs1.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/prime.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/random.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"(disabled):crypto","kind":"require-call"}]},"node_modules/node-forge/lib/pbe.js":{"bytes":30999,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/aes.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/asn1.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/des.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/md.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/oids.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/pbkdf2.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/pem.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/random.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/rc2.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/rsa.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/uint8arrays/concat.js":{"bytes":482,"imports":[]},"src/ciphers/aes-gcm.browser.js":{"bytes":3176,"imports":[{"path":"node_modules/uint8arrays/concat.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"},{"path":"src/webcrypto.js","kind":"require-call"}]},"src/keys/importer.js":{"bytes":723,"imports":[{"path":"node_modules/multibase/src/index.js","kind":"require-call"},{"path":"src/ciphers/aes-gcm.browser.js","kind":"require-call"}]},"node_modules/multiformats/esm/src/bytes.js":{"bytes":1114,"imports":[]},"node_modules/multiformats/esm/vendor/varint.js":{"bytes":1482,"imports":[]},"node_modules/multiformats/esm/src/varint.js":{"bytes":354,"imports":[{"path":"node_modules/multiformats/esm/vendor/varint.js","kind":"import-statement"}]},"node_modules/multiformats/esm/src/hashes/digest.js":{"bytes":1235,"imports":[{"path":"node_modules/multiformats/esm/src/bytes.js","kind":"import-statement"},{"path":"node_modules/multiformats/esm/src/varint.js","kind":"import-statement"}]},"node_modules/multiformats/esm/src/hashes/hasher.js":{"bytes":486,"imports":[{"path":"node_modules/multiformats/esm/src/hashes/digest.js","kind":"import-statement"}]},"node_modules/multiformats/esm/src/hashes/sha2-browser.js":{"bytes":336,"imports":[{"path":"node_modules/multiformats/esm/src/hashes/hasher.js","kind":"import-statement"}]},"node_modules/uint8arrays/equals.js":{"bytes":406,"imports":[]},"node_modules/node-forge/lib/sha512.js":{"bytes":17133,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/md.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"}]},"node_modules/node-forge/lib/asn1-validator.js":{"bytes":2295,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/asn1.js","kind":"require-call"}]},"node_modules/node-forge/lib/ed25519.js":{"bytes":24941,"imports":[{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/jsbn.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/random.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/sha512.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/asn1-validator.js","kind":"require-call"}]},"node_modules/iso-random-stream/src/random.browser.js":{"bytes":879,"imports":[]},"src/random-bytes.js":{"bytes":325,"imports":[{"path":"node_modules/iso-random-stream/src/random.browser.js","kind":"require-call"},{"path":"node_modules/err-code/index.js","kind":"require-call"}]},"src/util.js":{"bytes":1564,"imports":[{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/jsbn.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"},{"path":"node_modules/uint8arrays/concat.js","kind":"require-call"}]},"src/keys/rsa-utils.js":{"bytes":2255,"imports":[{"path":"node_modules/node-forge/lib/asn1.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/rsa.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"src/util.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"}]},"src/keys/jwk2pem.js":{"bytes":496,"imports":[{"path":"node_modules/node-forge/lib/rsa.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"src/util.js","kind":"require-call"}]},"src/keys/rsa-browser.js":{"bytes":3382,"imports":[{"path":"src/webcrypto.js","kind":"require-call"},{"path":"src/random-bytes.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"},{"path":"src/keys/rsa-utils.js","kind":"require-call"},{"path":"src/keys/jwk2pem.js","kind":"require-call"}]},"src/keys/exporter.js":{"bytes":700,"imports":[{"path":"node_modules/multibase/src/index.js","kind":"require-call"},{"path":"src/ciphers/aes-gcm.browser.js","kind":"require-call"}]},"src/keys/rsa-class.js":{"bytes":4161,"imports":[{"path":"node_modules/multiformats/esm/src/hashes/sha2-browser.js","kind":"require-call"},{"path":"node_modules/err-code/index.js","kind":"require-call"},{"path":"node_modules/uint8arrays/equals.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/sha512.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/ed25519.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"src/keys/rsa-browser.js","kind":"require-call"},{"path":"src/keys/keys.js","kind":"require-call"},{"path":"src/keys/exporter.js","kind":"require-call"}]},"node_modules/multiformats/esm/vendor/base-x.js":{"bytes":3540,"imports":[]},"node_modules/multiformats/esm/src/bases/base.js":{"bytes":2760,"imports":[]},"node_modules/multiformats/esm/src/bases/base58.js":{"bytes":567,"imports":[{"path":"node_modules/multiformats/esm/vendor/base-x.js","kind":"import-statement"},{"path":"node_modules/multiformats/esm/src/bytes.js","kind":"import-statement"},{"path":"node_modules/multiformats/esm/src/bases/base.js","kind":"import-statement"}]},"node_modules/multiformats/esm/src/hashes/identity.js":{"bytes":172,"imports":[{"path":"node_modules/multiformats/esm/src/hashes/hasher.js","kind":"import-statement"},{"path":"node_modules/multiformats/esm/src/bytes.js","kind":"import-statement"}]},"src/keys/ed25519.js":{"bytes":959,"imports":[{"path":"node_modules/node-forge/lib/ed25519.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"}]},"src/keys/ed25519-class.js":{"bytes":4375,"imports":[{"path":"node_modules/err-code/index.js","kind":"require-call"},{"path":"node_modules/uint8arrays/equals.js","kind":"require-call"},{"path":"node_modules/multiformats/esm/src/hashes/sha2-browser.js","kind":"require-call"},{"path":"node_modules/multiformats/esm/src/bases/base58.js","kind":"require-call"},{"path":"node_modules/multiformats/esm/src/hashes/identity.js","kind":"require-call"},{"path":"src/keys/ed25519.js","kind":"require-call"},{"path":"src/keys/keys.js","kind":"require-call"},{"path":"src/keys/exporter.js","kind":"require-call"}]},"node_modules/secp256k1/lib/index.js":{"bytes":10441,"imports":[]},"node_modules/elliptic/package.json":{"bytes":2266,"imports":[]},"(disabled):node_modules/buffer/index.js":{"bytes":0,"imports":[]},"node_modules/bn.js/lib/bn.js":{"bytes":87731,"imports":[{"path":"(disabled):node_modules/buffer/index.js","kind":"require-call"}]},"node_modules/minimalistic-assert/index.js":{"bytes":252,"imports":[]},"node_modules/minimalistic-crypto-utils/lib/utils.js":{"bytes":1140,"imports":[]},"node_modules/elliptic/lib/elliptic/utils.js":{"bytes":2361,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"},{"path":"node_modules/minimalistic-crypto-utils/lib/utils.js","kind":"require-call"}]},"node_modules/brorand/index.js":{"bytes":1510,"imports":[{"path":"(disabled):crypto","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/curve/base.js":{"bytes":9202,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"}]},"node_modules/inherits/inherits_browser.js":{"bytes":753,"imports":[]},"node_modules/elliptic/lib/elliptic/curve/short.js":{"bytes":22969,"imports":[{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"},{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/inherits/inherits_browser.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/base.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/curve/mont.js":{"bytes":4581,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/inherits/inherits_browser.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/base.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/curve/edwards.js":{"bytes":10908,"imports":[{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"},{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/inherits/inherits_browser.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/base.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/curve/index.js":{"bytes":173,"imports":[{"path":"node_modules/elliptic/lib/elliptic/curve/base.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/short.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/mont.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/edwards.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/utils.js":{"bytes":6527,"imports":[{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"},{"path":"node_modules/inherits/inherits_browser.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/common.js":{"bytes":2312,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha/common.js":{"bytes":907,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha/1.js":{"bytes":1567,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/common.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/common.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha/256.js":{"bytes":2878,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/common.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/common.js","kind":"require-call"},{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha/224.js":{"bytes":670,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/256.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha/512.js":{"bytes":8342,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/common.js","kind":"require-call"},{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha/384.js":{"bytes":768,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/512.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/sha.js":{"bytes":206,"imports":[{"path":"node_modules/hash.js/lib/hash/sha/1.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/224.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/256.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/384.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha/512.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/ripemd.js":{"bytes":3551,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/common.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash/hmac.js":{"bytes":1139,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"}]},"node_modules/hash.js/lib/hash.js":{"bytes":444,"imports":[{"path":"node_modules/hash.js/lib/hash/utils.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/common.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/sha.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/ripemd.js","kind":"require-call"},{"path":"node_modules/hash.js/lib/hash/hmac.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js":{"bytes":32535,"imports":[]},"node_modules/elliptic/lib/elliptic/curves.js":{"bytes":6453,"imports":[{"path":"node_modules/hash.js/lib/hash.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/index.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","kind":"require-call"}]},"node_modules/hmac-drbg/lib/hmac-drbg.js":{"bytes":2988,"imports":[{"path":"node_modules/hash.js/lib/hash.js","kind":"require-call"},{"path":"node_modules/minimalistic-crypto-utils/lib/utils.js","kind":"require-call"},{"path":"node_modules/minimalistic-assert/index.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/ec/key.js":{"bytes":3117,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/ec/signature.js":{"bytes":3261,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/ec/index.js":{"bytes":6246,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/hmac-drbg/lib/hmac-drbg.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curves.js","kind":"require-call"},{"path":"node_modules/brorand/index.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/ec/key.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/ec/signature.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/eddsa/key.js":{"bytes":2496,"imports":[{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/eddsa/signature.js":{"bytes":1703,"imports":[{"path":"node_modules/bn.js/lib/bn.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic/eddsa/index.js":{"bytes":3497,"imports":[{"path":"node_modules/hash.js/lib/hash.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curves.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/eddsa/key.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/eddsa/signature.js","kind":"require-call"}]},"node_modules/elliptic/lib/elliptic.js":{"bytes":371,"imports":[{"path":"node_modules/elliptic/package.json","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/utils.js","kind":"require-call"},{"path":"node_modules/brorand/index.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curve/index.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/curves.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/ec/index.js","kind":"require-call"},{"path":"node_modules/elliptic/lib/elliptic/eddsa/index.js","kind":"require-call"}]},"node_modules/secp256k1/lib/elliptic.js":{"bytes":10767,"imports":[{"path":"node_modules/elliptic/lib/elliptic.js","kind":"require-call"}]},"node_modules/secp256k1/elliptic.js":{"bytes":61,"imports":[{"path":"node_modules/secp256k1/lib/index.js","kind":"require-call"},{"path":"node_modules/secp256k1/lib/elliptic.js","kind":"require-call"}]},"src/keys/secp256k1.js":{"bytes":1629,"imports":[{"path":"node_modules/secp256k1/elliptic.js","kind":"require-call"},{"path":"node_modules/multiformats/esm/src/hashes/sha2-browser.js","kind":"require-call"}]},"src/keys/secp256k1-class.js":{"bytes":3338,"imports":[{"path":"node_modules/multiformats/esm/src/hashes/sha2-browser.js","kind":"require-call"},{"path":"node_modules/err-code/index.js","kind":"require-call"},{"path":"node_modules/uint8arrays/equals.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"},{"path":"src/keys/exporter.js","kind":"require-call"},{"path":"src/keys/secp256k1.js","kind":"require-call"}]},"src/keys/key-stretcher.js":{"bytes":1889,"imports":[{"path":"node_modules/err-code/index.js","kind":"require-call"},{"path":"node_modules/uint8arrays/concat.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"},{"path":"src/hmac/index-browser.js","kind":"require-call"}]},"src/keys/validate-curve-type.js":{"bytes":275,"imports":[{"path":"node_modules/err-code/index.js","kind":"require-call"}]},"src/keys/ecdh-browser.js":{"bytes":2958,"imports":[{"path":"node_modules/err-code/index.js","kind":"require-call"},{"path":"src/webcrypto.js","kind":"require-call"},{"path":"src/util.js","kind":"require-call"},{"path":"src/keys/validate-curve-type.js","kind":"require-call"},{"path":"node_modules/uint8arrays/to-string.js","kind":"require-call"},{"path":"node_modules/uint8arrays/concat.js","kind":"require-call"},{"path":"node_modules/uint8arrays/equals.js","kind":"require-call"}]},"src/keys/ephemeral-keys.js":{"bytes":333,"imports":[{"path":"src/keys/ecdh-browser.js","kind":"require-call"}]},"src/keys/index.js":{"bytes":4575,"imports":[{"path":"src/keys/keys.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/asn1.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/pbe.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/forge.js","kind":"require-call"},{"path":"node_modules/err-code/index.js","kind":"require-call"},{"path":"node_modules/uint8arrays/from-string.js","kind":"require-call"},{"path":"src/keys/importer.js","kind":"require-call"},{"path":"src/keys/rsa-class.js","kind":"require-call"},{"path":"src/keys/ed25519-class.js","kind":"require-call"},{"path":"src/keys/secp256k1-class.js","kind":"require-call"},{"path":"src/random-bytes.js","kind":"require-call"},{"path":"src/keys/key-stretcher.js","kind":"require-call"},{"path":"src/keys/ephemeral-keys.js","kind":"require-call"}]},"src/pbkdf2.js":{"bytes":1130,"imports":[{"path":"node_modules/node-forge/lib/pbkdf2.js","kind":"require-call"},{"path":"node_modules/node-forge/lib/util.js","kind":"require-call"},{"path":"node_modules/err-code/index.js","kind":"require-call"}]},"src/index.js":{"bytes":249,"imports":[{"path":"src/hmac/index-browser.js","kind":"require-call"},{"path":"src/aes/index.js","kind":"require-call"},{"path":"src/keys/index.js","kind":"require-call"},{"path":"src/random-bytes.js","kind":"require-call"},{"path":"src/pbkdf2.js","kind":"require-call"}]}},"outputs":{"dist/index.min.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1308026},"dist/index.min.js":{"imports":[],"exports":[],"entryPoint":"src/index.js","inputs":{"src/webcrypto.js":{"bytesInOutput":436},"src/hmac/lengths.js":{"bytesInOutput":75},"src/hmac/index-browser.js":{"bytesInOutput":400},"node_modules/node-forge/lib/forge.js":{"bytesInOutput":65},"node_modules/node-forge/lib/baseN.js":{"bytesInOutput":1479},"node_modules/node-forge/lib/util.js":{"bytesInOutput":24825},"node_modules/node-forge/lib/cipher.js":{"bytesInOutput":1956},"node_modules/node-forge/lib/cipherModes.js":{"bytesInOutput":12659},"node_modules/node-forge/lib/aes.js":{"bytesInOutput":3930},"node_modules/@multiformats/base-x/src/index.js":{"bytesInOutput":1640},"node_modules/multibase/src/util.js":{"bytesInOutput":257},"node_modules/multibase/src/base.js":{"bytesInOutput":377},"node_modules/multibase/src/rfc4648.js":{"bytesInOutput":684},"node_modules/multibase/src/constants.js":{"bytesInOutput":1684},"node_modules/multibase/src/index.js":{"bytesInOutput":1164},"node_modules/uint8arrays/to-string.js":{"bytesInOutput":288},"node_modules/uint8arrays/from-string.js":{"bytesInOutput":294},"src/aes/ciphers-browser.js":{"bytesInOutput":498},"node_modules/err-code/index.js":{"bytesInOutput":470},"src/aes/cipher-mode.js":{"bytesInOutput":308},"src/aes/index.js":{"bytesInOutput":230},"node_modules/@protobufjs/aspromise/index.js":{"bytesInOutput":380},"node_modules/@protobufjs/base64/index.js":{"bytesInOutput":1225},"node_modules/@protobufjs/eventemitter/index.js":{"bytesInOutput":576},"node_modules/@protobufjs/float/index.js":{"bytesInOutput":3059},"node_modules/@protobufjs/inquire/index.js":{"bytesInOutput":231},"node_modules/@protobufjs/utf8/index.js":{"bytesInOutput":1082},"node_modules/@protobufjs/pool/index.js":{"bytesInOutput":214},"node_modules/protobufjs/src/util/longbits.js":{"bytesInOutput":1847},"node_modules/protobufjs/src/util/minimal.js":{"bytesInOutput":3023},"node_modules/protobufjs/src/writer.js":{"bytesInOutput":3250},"node_modules/protobufjs/src/writer_buffer.js":{"bytesInOutput":835},"node_modules/protobufjs/src/reader.js":{"bytesInOutput":3970},"node_modules/protobufjs/src/reader_buffer.js":{"bytesInOutput":483},"node_modules/protobufjs/src/rpc/service.js":{"bytesInOutput":1071},"node_modules/protobufjs/src/rpc.js":{"bytesInOutput":55},"node_modules/protobufjs/src/roots.js":{"bytesInOutput":48},"node_modules/protobufjs/src/index-minimal.js":{"bytesInOutput":301},"node_modules/protobufjs/minimal.js":{"bytesInOutput":50},"src/keys/keys.js":{"bytesInOutput":3544},"node_modules/node-forge/lib/oids.js":{"bytesInOutput":4914},"node_modules/node-forge/lib/asn1.js":{"bytesInOutput":11055},"node_modules/node-forge/lib/des.js":{"bytesInOutput":8848},"node_modules/node-forge/lib/md.js":{"bytesInOutput":98},"node_modules/node-forge/lib/hmac.js":{"bytesInOutput":1011},"(disabled):crypto":{"bytesInOutput":17},"node_modules/node-forge/lib/pbkdf2.js":{"bytesInOutput":1686},"node_modules/node-forge/lib/pem.js":{"bytesInOutput":2524},"node_modules/node-forge/lib/sha256.js":{"bytesInOutput":3121},"node_modules/node-forge/lib/prng.js":{"bytesInOutput":3550},"node_modules/node-forge/lib/random.js":{"bytesInOutput":1571},"node_modules/node-forge/lib/rc2.js":{"bytesInOutput":3015},"node_modules/node-forge/lib/jsbn.js":{"bytesInOutput":18990},"node_modules/node-forge/lib/sha1.js":{"bytesInOutput":2696},"node_modules/node-forge/lib/pkcs1.js":{"bytesInOutput":2283},"node_modules/node-forge/lib/prime.js":{"bytesInOutput":1989},"node_modules/node-forge/lib/rsa.js":{"bytesInOutput":17016},"node_modules/node-forge/lib/pbe.js":{"bytesInOutput":13532},"node_modules/uint8arrays/concat.js":{"bytesInOutput":177},"src/ciphers/aes-gcm.browser.js":{"bytesInOutput":1001},"src/keys/importer.js":{"bytesInOutput":165},"node_modules/multiformats/esm/src/bytes.js":{"bytesInOutput":312},"node_modules/multiformats/esm/vendor/varint.js":{"bytesInOutput":804},"node_modules/multiformats/esm/src/varint.js":{"bytesInOutput":90},"node_modules/multiformats/esm/src/hashes/digest.js":{"bytesInOutput":241},"node_modules/multiformats/esm/src/hashes/hasher.js":{"bytesInOutput":289},"node_modules/multiformats/esm/src/hashes/sha2-browser.js":{"bytesInOutput":275},"node_modules/uint8arrays/equals.js":{"bytesInOutput":187},"node_modules/node-forge/lib/sha512.js":{"bytesInOutput":7020},"node_modules/node-forge/lib/asn1-validator.js":{"bytesInOutput":1171},"node_modules/node-forge/lib/ed25519.js":{"bytesInOutput":13081},"node_modules/iso-random-stream/src/random.browser.js":{"bytesInOutput":282},"src/random-bytes.js":{"bytesInOutput":204},"src/util.js":{"bytesInOutput":622},"src/keys/rsa-utils.js":{"bytesInOutput":838},"src/keys/jwk2pem.js":{"bytesInOutput":320},"src/keys/rsa-browser.js":{"bytesInOutput":1624},"src/keys/exporter.js":{"bytesInOutput":165},"src/keys/rsa-class.js":{"bytesInOutput":2045},"node_modules/multiformats/esm/vendor/base-x.js":{"bytesInOutput":1636},"node_modules/multiformats/esm/src/bases/base.js":{"bytesInOutput":1307},"node_modules/multiformats/esm/src/bases/base58.js":{"bytesInOutput":383},"node_modules/multiformats/esm/src/hashes/identity.js":{"bytesInOutput":113},"src/keys/ed25519.js":{"bytesInOutput":540},"src/keys/ed25519-class.js":{"bytesInOutput":2065},"node_modules/secp256k1/lib/index.js":{"bytesInOutput":5686},"node_modules/elliptic/package.json":{"bytesInOutput":1780},"(disabled):node_modules/buffer/index.js":{"bytesInOutput":17},"node_modules/bn.js/lib/bn.js":{"bytesInOutput":43894},"node_modules/minimalistic-assert/index.js":{"bytesInOutput":183},"node_modules/minimalistic-crypto-utils/lib/utils.js":{"bytesInOutput":634},"node_modules/elliptic/lib/elliptic/utils.js":{"bytesInOutput":1079},"node_modules/brorand/index.js":{"bytesInOutput":925},"node_modules/elliptic/lib/elliptic/curve/base.js":{"bytesInOutput":4760},"node_modules/inherits/inherits_browser.js":{"bytesInOutput":332},"node_modules/elliptic/lib/elliptic/curve/short.js":{"bytesInOutput":12730},"node_modules/elliptic/lib/elliptic/curve/mont.js":{"bytesInOutput":2620},"node_modules/elliptic/lib/elliptic/curve/edwards.js":{"bytesInOutput":6186},"node_modules/elliptic/lib/elliptic/curve/index.js":{"bytesInOutput":95},"node_modules/hash.js/lib/hash/utils.js":{"bytesInOutput":3070},"node_modules/hash.js/lib/hash/common.js":{"bytesInOutput":1401},"node_modules/hash.js/lib/hash/sha/common.js":{"bytesInOutput":549},"node_modules/hash.js/lib/hash/sha/1.js":{"bytesInOutput":967},"node_modules/hash.js/lib/hash/sha/256.js":{"bytesInOutput":1905},"node_modules/hash.js/lib/hash/sha/224.js":{"bytesInOutput":440},"node_modules/hash.js/lib/hash/sha/512.js":{"bytesInOutput":4627},"node_modules/hash.js/lib/hash/sha/384.js":{"bytesInOutput":531},"node_modules/hash.js/lib/hash/sha.js":{"bytesInOutput":102},"node_modules/hash.js/lib/hash/ripemd.js":{"bytesInOutput":2010},"node_modules/hash.js/lib/hash/hmac.js":{"bytesInOutput":743},"node_modules/hash.js/lib/hash.js":{"bytesInOutput":244},"node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js":{"bytesInOutput":26159},"node_modules/elliptic/lib/elliptic/curves.js":{"bytesInOutput":5091},"node_modules/hmac-drbg/lib/hmac-drbg.js":{"bytesInOutput":1769},"node_modules/elliptic/lib/elliptic/ec/key.js":{"bytesInOutput":1728},"node_modules/elliptic/lib/elliptic/ec/signature.js":{"bytesInOutput":1618},"node_modules/elliptic/lib/elliptic/ec/index.js":{"bytesInOutput":3175},"node_modules/elliptic/lib/elliptic/eddsa/key.js":{"bytesInOutput":1363},"node_modules/elliptic/lib/elliptic/eddsa/signature.js":{"bytesInOutput":902},"node_modules/elliptic/lib/elliptic/eddsa/index.js":{"bytesInOutput":1787},"node_modules/elliptic/lib/elliptic.js":{"bytesInOutput":144},"node_modules/secp256k1/lib/elliptic.js":{"bytesInOutput":5333},"node_modules/secp256k1/elliptic.js":{"bytesInOutput":43},"src/keys/secp256k1.js":{"bytesInOutput":924},"src/keys/secp256k1-class.js":{"bytesInOutput":1431},"src/keys/key-stretcher.js":{"bytesInOutput":783},"src/keys/validate-curve-type.js":{"bytesInOutput":189},"src/keys/ecdh-browser.js":{"bytesInOutput":1209},"src/keys/ephemeral-keys.js":{"bytesInOutput":96},"src/keys/index.js":{"bytesInOutput":2091},"src/pbkdf2.js":{"bytesInOutput":356},"src/index.js":{"bytesInOutput":124}},"bytes":368140}}}

Error from Uncaught application error

Refreshing the page after loading a bundle causes this.

Uncaught application error:

----
Error: invalid state
    at component (https://www.bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:122921)
    at Gi (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:149980)
    at mu (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:196386)
    at cl (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:188919)
    at ul (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:188844)
    at Zu (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:185853)
    at Gu (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:182614)
    at Fl (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:204123)
    at https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:205368
    at tl (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:186200)
    at Bl (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:205353)
    at Object.render (https://www.bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js?__WB_REVISION__=c923091d24e9532e2239:2:208347)
    at Module.69 (https://www.bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:125613)
    at c (https://www.bundle-buddy.com/bundle?selected=src%2Fdocker.ts:1:1412)
    at Object.38 (https://www.bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:119295)
    at c (https://www.bundle-buddy.com/bundle?selected=src%2Fdocker.ts:1:1412)
    at r (https://www.bundle-buddy.com/bundle?selected=src%2Fdocker.ts:1:1273)
    at Array.t [as push] (https://www.bundle-buddy.com/bundle?selected=src%2Fdocker.ts:1:1136)
    at https://www.bundle-buddy.com/static/js/main.708ec90e.chunk.js?__WB_REVISION__=3f1d03f9d4c3b47f8276:1:73```

Distinguish color of filesize and module count

In the main table we got these amazing sparkline barcharts (i swear by these, generally).

they look like:
image

sometimes its representing to filesize.. and sometimes its module/import count. I feel like we should have two diff colors to make this a tad more clear.

my ugly attempt:

image

also fwiw Y position of them feels off to me. it's hardcoded at 15px but 11px feels more right to me.

Graph area too small, bundles fall outside of space and are unreachable

Problem: In large projects, some bundles are impossible to find in the graph area.
Example:

screen shot 2017-07-26 at 11 18 50 am

As you can see, I have my browser extremely maximized and yet some bundles are falling out to the right of the screen. When the browser window is made smaller, this is the outcome:

screen shot 2017-07-26 at 11 20 18 am

Notice that the bundles from the far left of the original screenshot are missing and many from the right are also missing.

Details:

Error from Uncaught application error

Not sure what's happening here. I just cloned the repo, ran yarn build, then npx serve -s build

Uncaught application error:

----
TypeError: Cannot read property 'key' of undefined
    at G.render (http://localhost:5000/static/js/5.ec9119e6.chunk.js:1:23789)
    at za (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:162000)
    at La (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:161793)
    at mu (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:197440)
    at cl (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:188919)
    at ul (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:188844)
    at Zu (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:185853)
    at http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:137238
    at t.unstable_runWithPriority (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:212818)
    at Wo (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:136947)
    at Qo (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:137183)
    at A (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:211756)
    at MessagePort.x.port1.onmessage (http://localhost:5000/static/js/2.d75fb8b9.chunk.js:2:210512)```

/esbuild doesnt work on first load

When I first load https://www.bundle-buddy.com/esbuild I get the following error, after visiting the homepage that endpoint then works perfectly.

You can replicate this by using incognito mode.

Screenshot 2024-01-03 at 10 11 04โ€ฏam

Bundle Classifications

Reference

webpack has 3 types of chunks (or as.most people call them, bundles) that are generated:

  • Entry Chunk: this is a bundle that contains the webpack bootstrap/runtime code in it.

  • Initial Chunk: a chunk that does not have a runtime, and is usually generated via some configuration feature. It is loaded sync

  • Normal Chunk: a chunk that does not have the runtime and is created by code-splitting (lazy). It is not called async on the page.

For the most part one can gather enough information with the source maps to classify a majority of the chunk types.

Proposal

I'd like to propose the creation of an API that will help to classify bundles into these three categories based on their source and runtime contents.

To classify each:

  • Entry Chunk: read source to see if it contains modules and runtime code in single bundle

  • Initial Chunk: Look for no runtime and only modules. Can typically be found by presence of modules wrapped in webpackJsonp function, however since this function name is configurable it's best to instead identify by lack of runtime. The second part is looking for the Entry chunk this chunk sync depends on. This will be identified by looking for the chunk initiator inside of the accompanying Entry chunk.

  • Normal Chunk: this can be classified by a bundle having no runtime and the accompanying Entry chunk having no chunk initializer inside of the entry chunk (therefore indicating that it is loaded completely independent of the accompanying Entry chunk)

Bonus Points

Since this tool is (mostly) webpack specific, we could also add an extra API that skips all this crazy classification work, and consumes a bit of metadata that describes all this info from webpack's emitted Stats object.

Static HTML report output

Hey there. Thanks for developing this great tool.

I'd like to integrate this into our team's build flow & a nice way to take advantage of your analysis would be to have a static HTML output (so that no server is required / the report could be passed around).

Is that something you've experimented w/ or have any recommendations regarding where one would start to implement that?

Missing "Synthetic" Async Bundles

When you use CommonsChunkPlugin() you can even remove duplication across async (lazy-loaded) chunks.

However I noticed that somewhere, the "async commons chunk" is ignored and not added to the viz (maybe missed in graph too?).

Steps to Reproduce:

  1. Clone this repo
  2. Comment out the AgressiveSplittingPlugin() (its so slow you'll get distracted and perf storm the plugin instead) from the webpack.config.js file, and add the property devtool: "source-map"
  3. Run yarn build See from results files like 0.0.bundle.js (should be a async commons chunk)
  4. Run bundle-buddy against the dist folder where assets and maps are output.

I'd help more with this for you but I'm working on some of the bundle type mapping code right now.

Here is a screen shot (for example the bundle I'm saying was missing is 0.0.bundle.js.map.
screen shot 2017-07-16 at 5 34 15 pm

Why exit with status code 1 when no duplication is detected?

The fact that No bundle duplication detected ๐Ÿ“ฏ sounds pretty successful makes me wonder why you don't exit with status code 0. If I want to use bundle-buddy in my build step my build would fail if no duplication is detected ๐Ÿ™ƒ

Invalid 302 redirect when attempting to load

Every time I try to open the URL for my local bundle-buddy instance my browser breaks.

Here's what it looks like in FF:

image

And in Chrome:

image

I investigated further, here's what I'm seeing:

  1. I run npx bundle-buddy dist/*.map
  2. bundle-buddy runs, and opens a new tab in my default browser to http://localhost:1024/?file=data_1560791818215
  3. That URL returns a 302 with a location header value of //?file=data_1560791818215
  4. The browser ignores that invalid 302 value and throws up its hands
> npm --versions
{ '*********': '1.0.0',
  npm: '6.9.0',
  ares: '1.15.0',
  cldr: '33.1',
  http_parser: '2.8.0',
  icu: '62.1',
  modules: '64',
  napi: '3',
  nghttp2: '1.34.0',
  node: '10.15.3',
  openssl: '1.1.0j',
  tz: '2018e',
  unicode: '11.0',
  uv: '1.23.2',
  v8: '6.8.275.32-node.51',
  zlib: '1.2.11' }
> node -p process.platform
win32

Nothing happens?

Hi, when I run bundle-buddy, after 3 minutes of doing something, it exits with `"no bundle duplication detected" and nothing else happens, how do I open the UI?

My bundle is quite large.

Error from stats.json

stats.json:

TypeError: Cannot read properties of null (reading 'length')
----
Error: importing graph contents: 
TypeError: Cannot read properties of null (reading 'length')
    at https://bundle-buddy.com/static/js/6.91f14622.chunk.js:1:13457
    at l (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:243533)
    at Generator._invoke (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:243286)
    at forEach.e.<computed> [as next] (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:243890)
    at r (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:71944)
    at u (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:72147)```

Error from 0

0:

TypeError: Failed to fetch
----
Error: importing source map: 
TypeError: Failed to fetch
    at https://bundle-buddy.com/static/js/6.91f14622.chunk.js:1:13088
    at l (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:243533)
    at Generator._invoke (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:243286)
    at forEach.e.<computed> [as throw] (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:243890)
    at r (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:71944)
    at l (https://bundle-buddy.com/static/js/3.2ccf6d4c.chunk.js:2:72183)```

CI integration: Add return code

Hey,

I'd love to use bundle-buddy to make sure we do not have duplicates (especially important when you have singleton modules such as a store/cache).

Would like to add a return code, or -quiet flag so that we can just detect the status and fail the build if we have duplicates.

Compatibility issues with latest esbuild version

Trying to load metadata file generated with esbuild version 0.15.12 results in an error:
image

This is probably caused by a non compatible metadata file format in the latest versions of the esbuid:
image

(i.e. instead if metadata.inputs should be metadata.metafile.inputs.

A puzzling situation

Background:

bundle-buddy works of off the following concept:
For every source file exposed by the source map

main.js
foo.js
bat.js
zap.js

We determine the size of the file by reading in the sourcemapped content, this gives us the ability to identify how large each file is. There is nothing new being done here as this is what source-map-explorer and other tools have been doing for a while.

Where bundle buddy is different is that where other tools use folder structure to show file relationships, we go a step further and look into the source to dependency graph to understand how the files are coming into the bundle (this information is exposed by webpack/rollup/rome already).

So in our example let's assume we have

main.js

import 'foo.js'
import 'bat.js'

and foo.js has

import 'zap.js'

We can then create a graph of the dependencies for each file.

main.js -> foo.js -> zap.js
main.js -> bat.js

By combining the graph of files + each files source weight we can being to expose some very dynamic information such as the transitive dependency weight of a given import.

Problem:

A project has the following

import * as Sentry from "@sentry/browser";

Looking into node_modules, the @sentry module ships with the following code:

dist/index.js
dist/index.js.map
.
.

When webpack is compiling this project webpack ONLY knows about the .js sources exposed through the module, however the sourcemaps that are included with the shipped js code from the @sentry module contain sourcemapping references back to the original ts/development sources that webpack does not know about at all.

This means when we get to the phase of joining the sourcemap information with the graph/dependency information from webpack that we hitting a problem. the sourcemaps know about sources that webpack does not know about this we are unable to determine to map N dist files to Y source map files.

As an example

dist/index.js is actually made up of
src/index.ts
src/index2.ts
src/index3.ts

This is a tricky situation for sure, I can think of several paths forward:

  1. Pull in the source of @sentry and consume the ts directly in the project so that webpack has perfect vision into the files and dependency graphs
  2. teach webpack/compilers to have a concept of a prebuilt composite file based on the sourcemap information

Overall this is an ugly situation and I am curious if anyone has any ideas.

Error when co-located source maps

Hey @samccone, I am trying to run bundle-buddy src/**/*.map but for all files its throwing Error processing src/folderName/fileName.js.map, TypeError: Cannot read property 'split' of null and ends with No bundle source maps were processed.

My source maps files are co-located with source files and not in public.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.