3box / 3box-js

3Box JavaScript SDK: User identities, storage, messaging
MIT License
207 stars 65 forks source link

Chatbox example is not working #906

Open rstuven opened 4 years ago

rstuven commented 4 years ago

Describe the bug After MetaMask sign in, the app doesn't show chatbox.

To Reproduce Steps to reproduce the behavior:

  1. git clone git@github.com:3box/3box-chatbox-react.git && cd 3box-chatbox-react
  2. npm install && npm run start
  3. Open http://localhost:8080/
  4. Sign in using MetaMask
  5. Error in console log.

Desktop (please complete the following information):

Additional context

Network log Request: `GET https://beta.3box.io/address-server/odbAddress/0xba8398ce00912922de4ab30caad9a9227872e47a` Response: `200` ``` {"status":"success","data":{"rootStoreAddress":"/orbitdb/QmWiw1B9nG1MC8P8oQZanryGFyB3zMEgb1sh8Z5m4i8rZv/1220464eca31591c31f07450fc5e718a7b592065c4d0ba84520b573ea7b81860632f.root","did":"did:3:bafyreiheopnbxwz24uqukjg4ku7povwffsxybx253v23slkuwm5ybqtsx4"}} ```
Console log ``` generating 2048-bit RSA keypair... VM48508:1 Fetch finished loading: GET "https://beta.3box.io/address-server/odbAddress/0x1ac6348a404a061dfb1a2709d68361f9f3770004". rfc4648.js:56 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined at encode (rfc4648.js:56) at Object.encode (rfc4648.js:86) at Base.encode (base.js:14) at Function.encode (index.js:42) at ./node_modules/ipfs-repo/src/blockstore-utils.js.exports.cidToKey (blockstore-utils.js:19) at Object.get (blockstore.js:43) at loadOrFetchFromNetwork (index.js:200) at Bitswap.get (index.js:231) at BlockService.get (index.js:96) at IPLDResolver.get (index.js:136) encode @ rfc4648.js:56 encode @ rfc4648.js:86 encode @ base.js:14 encode @ index.js:42 ./node_modules/ipfs-repo/src/blockstore-utils.js.exports.cidToKey @ blockstore-utils.js:19 get @ blockstore.js:43 loadOrFetchFromNetwork @ index.js:200 get @ index.js:231 get @ index.js:96 get @ index.js:136 get @ get.js:15 (anonymous) @ utils.js:180 readCbor @ index.js:79 read @ index.js:127 fromMultihash @ entry.js:145 (anonymous) @ entry-io.js:140 fetchEntry @ entry-io.js:81 (anonymous) @ index.js:57 setTimeout (async) load @ Replicator.js:107 sync @ Store.js:314 async function (async) sync @ Store.js:313 _onMessage @ OrbitDB.js:258 onMessage @ OrbitDB.js:273 _handleMessage @ exchange-heads.js:20 emit @ events.js:153 _messageHandler @ direct-channel.js:84 emit @ events.js:153 (anonymous) @ pubsub.js:221 _emitMessage @ pubsub.js:219 _processRpcMessage @ pubsub.js:215 _processRpcMessage @ index.js:155 (anonymous) @ pubsub.js:200 async function (async) (anonymous) @ pubsub.js:190 _onRpc @ pubsub.js:174 (anonymous) @ pubsub.js:121 async function (async) (anonymous) @ pubsub.js:118 rawPipe @ index.js:4 pipe @ index.js:49 _processMessages @ pubsub.js:114 _onIncomingStream @ index.js:181 async function (async) _onIncomingStream @ index.js:174 _onStream @ upgrader.js:313 onStream @ upgrader.js:235 async function (async) onStream @ upgrader.js:231 _handleIncoming @ mplex.js:202 (anonymous) @ mplex.js:151 async function (async) (anonymous) @ mplex.js:149 rawPipe @ index.js:4 pipe @ index.js:49 (anonymous) @ mplex.js:144 (anonymous) @ index.js:18 rawPipe @ index.js:4 pipe @ index.js:49 _createConnection @ upgrader.js:261 upgradeOutbound @ upgrader.js:189 async function (async) upgradeOutbound @ upgrader.js:168 dial @ index.js:45 async function (async) dial @ index.js:41 dial @ transport-manager.js:87 dialAction @ index.js:140 (anonymous) @ dial-request.js:58 async function (async) (anonymous) @ dial-request.js:54 run @ dial-request.js:53 _createPendingDial @ index.js:158 connectToPeer @ index.js:75 dialProtocol @ index.js:300 dial @ index.js:276 connect @ connect.js:7 (anonymous) @ utils.js:180 _callee31$ @ 3box.js:1905 tryCatch @ runtime.js:63 invoke @ runtime.js:293 (anonymous) @ runtime.js:118 asyncGeneratorStep @ asyncToGenerator.js:3 _next @ asyncToGenerator.js:25 Promise.then (async) asyncGeneratorStep @ asyncToGenerator.js:13 _next @ asyncToGenerator.js:25 (anonymous) @ asyncToGenerator.js:32 (anonymous) @ asyncToGenerator.js:21 getIPFS @ 3box.js:1926 _callee27$ @ 3box.js:1717 tryCatch @ runtime.js:63 invoke @ runtime.js:293 (anonymous) @ runtime.js:118 asyncGeneratorStep @ asyncToGenerator.js:3 _next @ asyncToGenerator.js:25 Promise.then (async) asyncGeneratorStep @ asyncToGenerator.js:13 _next @ asyncToGenerator.js:25 (anonymous) @ asyncToGenerator.js:32 (anonymous) @ asyncToGenerator.js:21 create @ 3box.js:1741 _callee30$ @ 3box.js:1830 tryCatch @ runtime.js:63 invoke @ runtime.js:293 (anonymous) @ runtime.js:118 asyncGeneratorStep @ asyncToGenerator.js:3 _next @ asyncToGenerator.js:25 (anonymous) @ asyncToGenerator.js:32 (anonymous) @ asyncToGenerator.js:21 openBox @ 3box.js:1849 _callee$ @ Example.js:29 tryCatch @ runtime.js:63 invoke @ runtime.js:293 (anonymous) @ runtime.js:118 asyncGeneratorStep @ bootstrap:856 _next @ bootstrap:856 Promise.then (async) asyncGeneratorStep @ bootstrap:856 _next @ bootstrap:856 (anonymous) @ bootstrap:856 (anonymous) @ bootstrap:856 componentDidMount @ Example.js:22 ```
$ npm ls --depth=1 ``` 3box-chatbox-react@0.3.0 /Users/rstuven/lab/3box-chatbox-react ├─┬ 3box@1.21.0 │ ├── 3box-orbitdb-plugins@2.1.2 │ ├── 3box-shared-cache@1.1.0 │ ├── 3id-blockchain-utils@0.4.1 │ ├── 3id-connect@0.1.0 │ ├── 3id-resolver@1.0.1 deduped │ ├── @babel/runtime@7.11.2 deduped │ ├── @ethersproject/hdnode@5.0.2 │ ├── @ethersproject/wallet@5.0.2 │ ├── did-jwt@4.5.1 │ ├── did-resolver@1.1.0 deduped │ ├── events@3.2.0 │ ├── graphql-request@1.8.2 │ ├── https-did-resolver@1.0.0 │ ├── ipfs@0.46.1 │ ├── ipfs-did-document@1.2.3 │ ├── ipfs-log@4.6.4 │ ├── ipfs-pubsub-room@2.0.1 │ ├── ipfs-repo@3.0.3 │ ├── is-ipfs@1.0.3 │ ├── js-sha256@0.9.0 │ ├── levelup@4.4.0 │ ├── libp2p-pubsub@0.4.7 │ ├── lodash.merge@4.6.2 │ ├── muport-did-resolver@1.0.3 │ ├── node-fetch@2.6.1 │ ├── orbit-db@0.24.2 │ ├── orbit-db-cache@0.3.0 │ ├── orbit-db-identity-provider@0.3.1 │ ├── orbit-db-storage-adapter@0.5.3 │ ├── p-timeout@3.2.0 │ ├── store@2.0.12 │ ├── tweetnacl@1.0.3 │ └── tweetnacl-util@0.15.1 ├─┬ 3id-resolver@1.0.1 │ ├── @babel/runtime@7.11.2 deduped │ ├── base64url@3.0.1 │ ├── did-jwt@4.5.1 deduped │ ├── did-resolver@1.1.0 deduped │ └── ipfs-did-document@1.2.3 deduped ├─┬ @babel/cli@7.11.6 │ ├── chokidar@2.1.8 │ ├── commander@4.1.1 │ ├── convert-source-map@1.7.0 │ ├── fs-readdir-recursive@1.1.0 │ ├── glob@7.1.6 │ ├── lodash@4.17.20 │ ├── make-dir@2.1.0 │ ├── slash@2.0.0 │ └── source-map@0.5.7 ├─┬ @babel/core@7.11.6 │ ├── @babel/code-frame@7.10.4 │ ├── @babel/generator@7.11.6 │ ├── @babel/helper-module-transforms@7.11.0 │ ├── @babel/helpers@7.10.4 │ ├── @babel/parser@7.11.5 │ ├── @babel/template@7.10.4 │ ├── @babel/traverse@7.11.5 │ ├── @babel/types@7.11.5 │ ├── convert-source-map@1.7.0 deduped │ ├── debug@4.1.1 │ ├── gensync@1.0.0-beta.1 │ ├── json5@2.1.3 │ ├── lodash@4.17.20 deduped │ ├── resolve@1.17.0 │ ├── semver@5.7.1 │ └── source-map@0.5.7 deduped ├─┬ @babel/plugin-proposal-class-properties@7.10.4 │ ├── @babel/helper-create-class-features-plugin@7.10.5 │ └── @babel/helper-plugin-utils@7.10.4 ├─┬ @babel/preset-env@7.11.5 │ ├── @babel/compat-data@7.11.0 │ ├── @babel/helper-compilation-targets@7.10.4 │ ├── @babel/helper-module-imports@7.10.4 │ ├── @babel/helper-plugin-utils@7.10.4 deduped │ ├── @babel/plugin-proposal-async-generator-functions@7.10.5 │ ├── @babel/plugin-proposal-class-properties@7.10.4 deduped │ ├── @babel/plugin-proposal-dynamic-import@7.10.4 │ ├── @babel/plugin-proposal-export-namespace-from@7.10.4 │ ├── @babel/plugin-proposal-json-strings@7.10.4 │ ├── @babel/plugin-proposal-logical-assignment-operators@7.11.0 │ ├── @babel/plugin-proposal-nullish-coalescing-operator@7.10.4 │ ├── @babel/plugin-proposal-numeric-separator@7.10.4 │ ├── @babel/plugin-proposal-object-rest-spread@7.11.0 │ ├── @babel/plugin-proposal-optional-catch-binding@7.10.4 │ ├── @babel/plugin-proposal-optional-chaining@7.11.0 │ ├── @babel/plugin-proposal-private-methods@7.10.4 │ ├── @babel/plugin-proposal-unicode-property-regex@7.10.4 │ ├── @babel/plugin-syntax-async-generators@7.8.4 │ ├── @babel/plugin-syntax-class-properties@7.10.4 │ ├── @babel/plugin-syntax-dynamic-import@7.8.3 │ ├── @babel/plugin-syntax-export-namespace-from@7.8.3 │ ├── @babel/plugin-syntax-json-strings@7.8.3 │ ├── @babel/plugin-syntax-logical-assignment-operators@7.10.4 │ ├── @babel/plugin-syntax-nullish-coalescing-operator@7.8.3 │ ├── @babel/plugin-syntax-numeric-separator@7.10.4 │ ├── @babel/plugin-syntax-object-rest-spread@7.8.3 │ ├── @babel/plugin-syntax-optional-catch-binding@7.8.3 │ ├── @babel/plugin-syntax-optional-chaining@7.8.3 │ ├── @babel/plugin-syntax-top-level-await@7.10.4 │ ├── @babel/plugin-transform-arrow-functions@7.10.4 │ ├── @babel/plugin-transform-async-to-generator@7.10.4 │ ├── @babel/plugin-transform-block-scoped-functions@7.10.4 │ ├── @babel/plugin-transform-block-scoping@7.11.1 │ ├── @babel/plugin-transform-classes@7.10.4 │ ├── @babel/plugin-transform-computed-properties@7.10.4 │ ├── @babel/plugin-transform-destructuring@7.10.4 │ ├── @babel/plugin-transform-dotall-regex@7.10.4 │ ├── @babel/plugin-transform-duplicate-keys@7.10.4 │ ├── @babel/plugin-transform-exponentiation-operator@7.10.4 │ ├── @babel/plugin-transform-for-of@7.10.4 │ ├── @babel/plugin-transform-function-name@7.10.4 │ ├── @babel/plugin-transform-literals@7.10.4 │ ├── @babel/plugin-transform-member-expression-literals@7.10.4 │ ├── @babel/plugin-transform-modules-amd@7.10.5 │ ├── @babel/plugin-transform-modules-commonjs@7.10.4 │ ├── @babel/plugin-transform-modules-systemjs@7.10.5 │ ├── @babel/plugin-transform-modules-umd@7.10.4 │ ├── @babel/plugin-transform-named-capturing-groups-regex@7.10.4 │ ├── @babel/plugin-transform-new-target@7.10.4 │ ├── @babel/plugin-transform-object-super@7.10.4 │ ├── @babel/plugin-transform-parameters@7.10.5 │ ├── @babel/plugin-transform-property-literals@7.10.4 │ ├── @babel/plugin-transform-regenerator@7.10.4 │ ├── @babel/plugin-transform-reserved-words@7.10.4 │ ├── @babel/plugin-transform-shorthand-properties@7.10.4 │ ├── @babel/plugin-transform-spread@7.11.0 │ ├── @babel/plugin-transform-sticky-regex@7.10.4 │ ├── @babel/plugin-transform-template-literals@7.10.5 │ ├── @babel/plugin-transform-typeof-symbol@7.10.4 │ ├── @babel/plugin-transform-unicode-escapes@7.10.4 │ ├── @babel/plugin-transform-unicode-regex@7.10.4 │ ├── @babel/preset-modules@0.1.4 │ ├── @babel/types@7.11.5 deduped │ ├── browserslist@4.14.1 │ ├── core-js-compat@3.6.5 │ ├── invariant@2.2.4 │ ├── levenary@1.1.1 │ └── semver@5.7.1 deduped ├─┬ @babel/preset-react@7.10.4 │ ├── @babel/helper-plugin-utils@7.10.4 deduped │ ├── @babel/plugin-transform-react-display-name@7.10.4 │ ├── @babel/plugin-transform-react-jsx@7.10.4 │ ├── @babel/plugin-transform-react-jsx-development@7.11.5 │ ├── @babel/plugin-transform-react-jsx-self@7.10.4 │ ├── @babel/plugin-transform-react-jsx-source@7.10.5 │ └── @babel/plugin-transform-react-pure-annotations@7.10.4 ├─┬ @babel/register@7.11.5 │ ├── find-cache-dir@2.1.0 │ ├── lodash@4.17.20 deduped │ ├── make-dir@2.1.0 deduped │ ├── pirates@4.0.1 │ └── source-map-support@0.5.19 ├─┬ @babel/runtime@7.11.2 │ └── regenerator-runtime@0.13.7 ├── UNMET PEER DEPENDENCY @types/react@^15.0.0 || ^16.0.0 ├── babel-core@7.0.0-bridge.0 ├─┬ babel-eslint@10.1.0 │ ├── @babel/code-frame@7.10.4 deduped │ ├── @babel/parser@7.11.5 deduped │ ├── @babel/traverse@7.11.5 deduped │ ├── @babel/types@7.11.5 deduped │ ├── eslint-visitor-keys@1.3.0 │ └── resolve@1.17.0 deduped ├─┬ babel-jest@23.6.0 │ ├── babel-plugin-istanbul@4.1.6 │ └── babel-preset-jest@23.2.0 ├─┬ babel-loader@8.1.0 │ ├── find-cache-dir@2.1.0 deduped │ ├── loader-utils@1.4.0 │ ├── mkdirp@0.5.5 │ ├── pify@4.0.1 │ └── schema-utils@2.7.1 ├─┬ chai@4.2.0 │ ├── assertion-error@1.1.0 │ ├── check-error@1.0.2 │ ├── deep-eql@3.0.1 │ ├── get-func-name@2.0.0 │ ├── pathval@1.1.0 │ └── type-detect@4.0.8 ├─┬ clean-webpack-plugin@0.1.19 │ └── rimraf@2.6.3 ├─┬ css-loader@1.0.1 │ ├── babel-code-frame@6.26.0 │ ├── css-selector-tokenizer@0.7.3 │ ├── icss-utils@2.1.0 │ ├── loader-utils@1.4.0 deduped │ ├── lodash@4.17.20 deduped │ ├── postcss@6.0.23 │ ├── postcss-modules-extract-imports@1.2.1 │ ├── postcss-modules-local-by-default@1.2.0 │ ├── postcss-modules-scope@1.1.0 │ ├── postcss-modules-values@1.3.0 │ ├── postcss-value-parser@3.3.1 │ └── source-list-map@2.0.1 ├── did-resolver@1.1.0 ├─┬ emoji-js@3.5.0 │ └── emoji-datasource@4.1.0 ├─┬ enzyme@3.11.0 │ ├── array.prototype.flat@1.2.3 │ ├── cheerio@1.0.0-rc.3 │ ├── enzyme-shallow-equal@1.0.4 │ ├── function.prototype.name@1.1.2 │ ├── has@1.0.3 │ ├── html-element-map@1.2.0 │ ├── is-boolean-object@1.0.1 │ ├── is-callable@1.2.0 │ ├── is-number-object@1.0.4 │ ├── is-regex@1.1.1 │ ├── is-string@1.0.5 │ ├── is-subset@0.1.1 │ ├── lodash.escape@4.0.1 │ ├── lodash.isequal@4.5.0 │ ├── object-inspect@1.8.0 │ ├── object-is@1.1.2 │ ├── object.assign@4.1.0 │ ├── object.entries@1.1.2 │ ├── object.values@1.1.1 │ ├── raf@3.4.1 │ ├── rst-selector-parser@2.2.3 │ └── string.prototype.trim@1.2.1 ├─┬ enzyme-adapter-react-16@1.15.4 │ ├── enzyme-adapter-utils@1.13.1 │ ├── enzyme-shallow-equal@1.0.4 deduped │ ├── has@1.0.3 deduped │ ├── object.assign@4.1.0 deduped │ ├── object.values@1.1.1 deduped │ ├── prop-types@15.7.2 deduped │ ├── react-is@16.13.1 │ ├── react-test-renderer@16.13.1 deduped │ └── semver@5.7.1 deduped ├─┬ eslint@5.16.0 │ ├── @babel/code-frame@7.10.4 deduped │ ├── ajv@6.12.4 │ ├── chalk@2.4.2 │ ├── cross-spawn@6.0.5 │ ├── debug@4.1.1 │ ├── doctrine@3.0.0 │ ├── eslint-scope@4.0.3 │ ├── eslint-utils@1.4.3 │ ├── eslint-visitor-keys@1.3.0 deduped │ ├── espree@5.0.1 │ ├── esquery@1.3.1 │ ├── esutils@2.0.3 │ ├── file-entry-cache@5.0.1 │ ├── functional-red-black-tree@1.0.1 │ ├── glob@7.1.6 deduped │ ├── globals@11.12.0 │ ├── ignore@4.0.6 │ ├── import-fresh@3.2.1 │ ├── imurmurhash@0.1.4 │ ├── inquirer@6.5.2 │ ├── js-yaml@3.14.0 │ ├── json-stable-stringify-without-jsonify@1.0.1 │ ├── levn@0.3.0 │ ├── lodash@4.17.20 deduped │ ├── minimatch@3.0.4 │ ├── mkdirp@0.5.5 deduped │ ├── natural-compare@1.4.0 │ ├── optionator@0.8.3 │ ├── path-is-inside@1.0.2 │ ├── progress@2.0.3 │ ├── regexpp@2.0.1 │ ├── semver@5.7.1 deduped │ ├── strip-ansi@4.0.0 │ ├── strip-json-comments@2.0.1 │ ├── table@5.4.6 │ └── text-table@0.2.0 ├─┬ eslint-plugin-react@7.20.6 │ ├── array-includes@3.1.1 │ ├── array.prototype.flatmap@1.2.3 │ ├── doctrine@2.1.0 │ ├── has@1.0.3 deduped │ ├── jsx-ast-utils@2.4.1 │ ├── object.entries@1.1.2 deduped │ ├── object.fromentries@2.0.2 │ ├── object.values@1.1.1 deduped │ ├── prop-types@15.7.2 deduped │ ├── resolve@1.17.0 deduped │ └── string.prototype.matchall@4.0.2 ├─┬ ethereum-blockies-base64@1.0.2 │ └── pnglib@0.0.1 ├─┬ file-loader@4.3.0 │ ├── loader-utils@1.4.0 deduped │ └── schema-utils@2.7.1 deduped ├─┬ istanbul-reports@2.2.7 │ └── html-escaper@2.0.2 ├─┬ jest-cli@23.6.0 │ ├── ansi-escapes@3.2.0 │ ├── chalk@2.4.2 deduped │ ├── exit@0.1.2 │ ├── glob@7.1.6 deduped │ ├── graceful-fs@4.2.4 │ ├── import-local@1.0.0 │ ├── is-ci@1.2.1 │ ├── istanbul-api@1.3.7 │ ├── istanbul-lib-coverage@1.2.1 │ ├── istanbul-lib-instrument@1.10.2 │ ├── istanbul-lib-source-maps@1.2.6 │ ├── jest-changed-files@23.4.2 │ ├── jest-config@23.6.0 │ ├── jest-environment-jsdom@23.4.0 │ ├── jest-get-type@22.4.3 │ ├── jest-haste-map@23.6.0 │ ├── jest-message-util@23.4.0 │ ├── jest-regex-util@23.3.0 │ ├── jest-resolve-dependencies@23.6.0 │ ├── jest-runner@23.6.0 │ ├── jest-runtime@23.6.0 │ ├── jest-snapshot@23.6.0 │ ├── jest-util@23.4.0 │ ├── jest-validate@23.6.0 │ ├── jest-watcher@23.4.0 │ ├── jest-worker@23.2.0 │ ├── micromatch@2.3.11 │ ├── node-notifier@5.4.3 │ ├── prompts@0.1.14 │ ├── realpath-native@1.1.0 │ ├── rimraf@2.6.3 deduped │ ├── slash@1.0.0 │ ├── string-length@2.0.0 │ ├── strip-ansi@4.0.0 │ ├── which@1.3.1 │ └── yargs@11.1.1 ├─┬ node-sass@4.14.1 │ ├── async-foreach@0.1.3 │ ├── chalk@1.1.3 │ ├── cross-spawn@3.0.1 │ ├── gaze@1.1.3 │ ├── get-stdin@4.0.1 │ ├── glob@7.1.6 deduped │ ├── in-publish@2.0.1 │ ├── lodash@4.17.20 deduped │ ├── meow@3.7.0 │ ├── mkdirp@0.5.5 deduped │ ├── nan@2.14.1 │ ├── node-gyp@3.8.0 │ ├── npmlog@4.1.2 │ ├── request@2.88.2 │ ├── sass-graph@2.2.5 │ ├── stdout-stream@1.4.1 │ └── true-case-path@1.0.3 ├─┬ prop-types@15.7.2 │ ├── loose-envify@1.4.0 │ ├── object-assign@4.1.1 │ └── react-is@16.13.1 deduped ├─┬ react@16.13.1 │ ├── loose-envify@1.4.0 deduped │ ├── object-assign@4.1.1 │ └── prop-types@15.7.2 deduped ├── react-addons-test-utils@15.6.2 ├─┬ UNMET PEER DEPENDENCY react-dom@16.13.1 │ ├── loose-envify@1.4.0 deduped │ ├── object-assign@4.1.1 │ ├── prop-types@15.7.2 deduped │ └── scheduler@0.19.1 ├─┬ react-hot-loader@4.12.21 │ ├── fast-levenshtein@2.0.6 │ ├── global@4.4.0 │ ├── hoist-non-react-statics@3.3.2 │ ├── loader-utils@1.4.0 deduped │ ├── prop-types@15.7.2 deduped │ ├── react-lifecycles-compat@3.0.4 │ ├── shallowequal@1.1.0 │ └── source-map@0.7.3 ├─┬ react-inlinesvg@1.2.0 │ ├── exenv@1.2.2 │ └── react-from-dom@0.3.1 ├─┬ react-linkify@1.0.0-alpha │ ├── linkify-it@2.2.0 │ └── tlds@1.209.0 ├─┬ react-test-renderer@16.13.1 │ ├── object-assign@4.1.1 │ ├── prop-types@15.7.2 deduped │ ├── react-is@16.13.1 deduped │ └── scheduler@0.19.1 deduped ├── regenerator-runtime@0.12.1 ├─┬ sass-loader@7.3.1 │ ├── clone-deep@4.0.1 │ ├── loader-utils@1.4.0 deduped │ ├── neo-async@2.6.2 │ ├── pify@4.0.1 deduped │ └── semver@6.3.0 ├─┬ source-map-explorer@2.5.0 │ ├── btoa@1.2.1 │ ├── chalk@4.1.0 │ ├── convert-source-map@1.7.0 deduped │ ├── ejs@3.1.5 │ ├── escape-html@1.0.3 │ ├── glob@7.1.6 deduped │ ├── gzip-size@5.1.1 │ ├── lodash@4.17.20 deduped │ ├── open@7.2.1 │ ├── source-map@0.7.3 │ ├── temp@0.9.1 │ └── yargs@15.4.1 ├─┬ style-loader@0.23.1 │ ├── loader-utils@1.4.0 deduped │ └── schema-utils@1.0.0 ├─┬ svg-inline-loader@0.8.2 │ ├── loader-utils@1.4.0 deduped │ ├── object-assign@4.1.1 │ └── simple-html-tokenizer@0.1.1 ├─┬ webpack@4.44.1 │ ├── @webassemblyjs/ast@1.9.0 │ ├── @webassemblyjs/helper-module-context@1.9.0 │ ├── @webassemblyjs/wasm-edit@1.9.0 │ ├── @webassemblyjs/wasm-parser@1.9.0 │ ├── acorn@6.4.1 │ ├── ajv@6.12.4 deduped │ ├── ajv-keywords@3.5.2 │ ├── chrome-trace-event@1.0.2 │ ├── enhanced-resolve@4.3.0 │ ├── eslint-scope@4.0.3 deduped │ ├── json-parse-better-errors@1.0.2 │ ├── loader-runner@2.4.0 │ ├── loader-utils@1.4.0 deduped │ ├── memory-fs@0.4.1 │ ├── micromatch@3.1.10 │ ├── mkdirp@0.5.5 deduped │ ├── neo-async@2.6.2 deduped │ ├── node-libs-browser@2.2.1 │ ├── schema-utils@1.0.0 │ ├── tapable@1.1.3 │ ├── terser-webpack-plugin@1.4.5 │ ├── watchpack@1.7.4 │ └── webpack-sources@1.4.3 ├─┬ webpack-cli@3.3.12 │ ├── chalk@2.4.2 deduped │ ├── cross-spawn@6.0.5 │ ├── enhanced-resolve@4.3.0 deduped │ ├── findup-sync@3.0.0 │ ├── global-modules@2.0.0 │ ├── import-local@2.0.0 │ ├── interpret@1.4.0 │ ├── loader-utils@1.4.0 deduped │ ├── supports-color@6.1.0 │ ├── v8-compile-cache@2.1.1 │ └── yargs@13.3.2 └─┬ webpack-dev-server@3.11.0 ├── ansi-html@0.0.7 ├── bonjour@3.5.0 ├── chokidar@2.1.8 deduped ├── compression@1.7.4 ├── connect-history-api-fallback@1.6.0 ├── debug@4.1.1 ├── del@4.1.1 ├── express@4.17.1 ├── html-entities@1.3.1 ├── http-proxy-middleware@0.19.1 ├── import-local@2.0.0 ├── internal-ip@4.3.0 ├── ip@1.1.5 ├── is-absolute-url@3.0.3 ├── killable@1.0.1 ├── loglevel@1.7.0 ├── opn@5.5.0 ├── p-retry@3.0.1 ├── portfinder@1.0.28 ├── schema-utils@1.0.0 ├── selfsigned@1.10.7 ├── semver@6.3.0 ├── serve-index@1.9.1 ├── sockjs@0.3.20 ├── sockjs-client@1.4.0 ├── spdy@4.0.2 ├── strip-ansi@3.0.1 ├── supports-color@6.1.0 ├── url@0.11.0 ├── webpack-dev-middleware@3.7.2 ├── webpack-log@2.0.0 ├── ws@6.2.1 └── yargs@13.3.2 npm ERR! peer dep missing: react-dom@^15.4.2, required by react-addons-test-utils@15.6.2 npm ERR! peer dep missing: @types/react@^15.0.0 || ^16.0.0, required by react-hot-loader@4.12.21 npm ERR! peer dep missing: bufferutil@^4.0.1, required by ws@7.2.3 npm ERR! peer dep missing: utf-8-validate@^5.0.2, required by ws@7.2.3 npm ERR! peer dep missing: bufferutil@^4.0.1, required by ws@7.2.3 npm ERR! peer dep missing: utf-8-validate@^5.0.2, required by ws@7.2.3 npm ERR! peer dep missing: bufferutil@^4.0.1, required by ws@7.3.1 npm ERR! peer dep missing: utf-8-validate@^5.0.2, required by ws@7.3.1 ```
rstuven commented 4 years ago

I found the root cause: Some dependencies (see below) are installing cids@1.0.0, which removes the buffer property from the CID class, while others still depend on that property.

$ npm ls cids    
3box-chatbox-react@0.3.0 /Users/rstuven/lab/3box-chatbox-react
├─┬ 3box@1.21.0
...
│ ├─┬ ipfs-log@4.6.4
│ │ └─┬ orbit-db-io@0.3.0
│ │   ├── cids@1.0.0 
│ │   └─┬ ipld-dag-pb@0.20.0
│ │     └── cids@1.0.0 
...

My workaround was to install a previous version of ipfs-log:

npm install ipfs-log@4.6.2