PokeAPI / pokeapi-js-wrapper

PokeAPI browser wrapper, fully async with built-in cache
Mozilla Public License 2.0
278 stars 44 forks source link

Upgrade all dependencies #58

Closed lbineau closed 2 months ago

lbineau commented 2 months ago

There are a lot of security issues raised by this package so I've upgraded all dependencies. Only chai packages couldn't be upgraded to the latest major version because it is using ESM. I only sticked with the latest minor version. I've npm run test and npm run build and everything seems to work.

Naramsim commented 2 months ago

Hi, could you also bump the patch version of the package?

Naramsim commented 2 months ago

Thanks!

Naramsim commented 2 months ago

Hi! A user seems to have a problem with this version 1.2.5, @isackender. Coul it be possible that the package is broken?

Preventively I unpublished the 1.2.5 from NPM. Still the lib can be found in this GH repo under the dist folder.

isackender commented 2 months ago

Hi, yes, as @Naramsim pointed out, my project broke two days ago. My code is:

<script src="https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js"></script>

<!-- Service worker -->
<script src="pokeapi-js-wrapper-sw.js"></script>

<!-- Initialize js wrapper -->
<script>
    const customOptions = {
        protocol: "https",
        versionPath: "/api/v2/",
        cache: true,
        timeout: 5 * 1000, // 5s
        cacheImages: true
    };
    const P = new Pokedex.Pokedex(customOptions);
</script>

<!-- Project code -->
<script src="/scripts/main.js"></script>

Which gives me this error (using Firefox):

Uncaught ReferenceError: require is not defined
    23          https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    n           https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    801         https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    n           https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    737         https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    n           https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
index.js:2:61271

When I switch to a previous version it works again perfectly (1.2.3 or 1.2.4 work fine).

<script src="https://unpkg.com/pokeapi-js-wrapper@1.2.3/dist/index.js"></script>
climaxmba commented 2 months ago

Hi, yes, as @Naramsim pointed out, my project broke two days ago. My code is:

<script src="https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js"></script>

<!-- Service worker -->
<script src="pokeapi-js-wrapper-sw.js"></script>

<!-- Initialize js wrapper -->
<script>
    const customOptions = {
        protocol: "https",
        versionPath: "/api/v2/",
        cache: true,
        timeout: 5 * 1000, // 5s
        cacheImages: true
    };
    const P = new Pokedex.Pokedex(customOptions);
</script>

<!-- Project code -->
<script src="/scripts/script.js"></script>

Which gives me this error (using Firefox):

Uncaught ReferenceError: require is not defined
    23          https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    n           https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    801         https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    n           https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    737         https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    n           https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
    <anonymous> https://unpkg.com/pokeapi-js-wrapper@1.2.5/dist/index.js:2
index.js:2:61271

When I switch to a previous version it works again perfectly (1.2.3 or 1.2.4 work fine).

<script src="https://unpkg.com/pokeapi-js-wrapper@1.2.3/dist/index.js"></script>

I've seen something like this when I was using a React package. Uninstalling or downgrading the broken dependency in this package should fix it.

Naramsim commented 2 months ago

I remember I had issues upgrading axios, because maybe it became a pure ESM package. Maybe that's the issue

lbineau commented 2 months ago

@Naramsim @climaxmba @isackender, After spending hours trying to understand why it outputs require in the UMD module and trying various config, I think I understood the issue.

Removing target: 'node' or switching it to target: 'web' properly remove any node related code (require()) and make it work properly.

Is this package supposed to be used in Node/browser/both? I'll be happy to create PR if it is supposed to work with browsers only.

Error target: 'node'

node target showing a console error: require is undefined

Success target: 'web'

web target showing a console.log success
climaxmba commented 2 months ago

Sure @lbineau, this package is meant for the browser only. There is a different package that's meant for Node.

lbineau commented 2 months ago

Here you go https://github.com/PokeAPI/pokeapi-js-wrapper/pull/61