ipfs / js-ipfs

IPFS implementation in JavaScript
https://js.ipfs.tech
Other
7.44k stars 1.25k forks source link

Version 54.0.2 of ipfs-http-client is not compatible with version 14 of Node.js anymore #4115

Closed claudiosdc closed 2 years ago

claudiosdc commented 2 years ago

Severity: Critical

Description:

If one builds an application that includes version 54.0.2 of the ipfs-http-client module and tries to run it on Node.js version 14, the following error will be triggered whenever the application tries to call any of the IPFS API methods exposed by the ipfs-http-client module: ReferenceError: AbortController is not defined.

This is due to the fact that the latest versions (9.0.3+) of the dependent ipfs-utils module assumes that the AbortController class is provided by Node.js, but that is only true for versions 15 and above of Node.js, not for version 14.

The problem is that on the package.json file of the ipfs-http-client module (for ver. 54.0.2) the dependent ipfs-utils module is referenced using the semver expression ^9.0.2, which includes the latest versions of the ipfs-utils module that are not compatible with Node.js ver. 14 anymore, while the engines entry of the package.json file specifies version 14 as the minimum supported Node.js version.

An easy fix would be to generate a patch update for version 54.0 of the ipfs-http-client module that would have its package.json file updated to reference the specific version 9.0.2 of the ipfs-utils module; in other words, change the semver expression from ^9.0.2 to 9.0.2.

Steps to reproduce the error:

Write an application that includes version 54.0.2 of the ipfs-http-client module and calls one of the exposed IPFS API methods. Then build it, and try to run it on Node.js version 14.

welcome[bot] commented 2 years ago

Thank you for submitting your first issue to this repository! A maintainer will be here shortly to triage and review. In the meantime, please double-check that you have provided all the necessary information to make this process easy! Any information that can help save additional round trips is useful! We currently aim to give initial feedback within two business days. If this does not happen, feel free to leave a comment. Please keep an eye on how this issue will be labeled, as labels give an overview of priorities, assignments and additional actions requested by the maintainers:

Finally, remember to use https://discuss.ipfs.io if you just need general support.

BigLep commented 2 years ago

@claudiosdc : that's correct - it isn't supported. Our supported versions are documented here: https://github.com/ipfs/community/blob/master/CONTRIBUTING_JS.md#supported-versions