New Reply

We have an issue with a (popular) non-url-friendly package name:

@angular/common

When requesting this package at NPM.org the following url (as generated by NPM install) works:
https://registry.npmjs.org/@angular%2fcommon

And this doesn't:
https://registry.npmjs.org/@angular/fcommon

When requesting the package in our (IIS hosted) ProGet server (names pacman) this doesn't work,
http://pacman/npm/npm/@angular%2fcommon

but this does:
http://pacman/npm/npm/@angular/common

We fixed this by using an IIS rewrite rule:

<rewrite>
    <rules>
        <rule name="Proget npm Resolve UrlEncode">
            <match url="^npm/(.+)/(.+)$" />
            <action type="Rewrite" url="/npm/{R:1}/{UrlDecode:{R:2}}" />
        </rule>
    </rules>
</rewrite>

Is smelling like either incorrect encoding/decoding at ProGets' part, do you agree?
Please note: we are not using the integrated ProGet server.

Product: ProGet
Version: 4.7.6

Looks related to:
http://inedo.com/support/questions/4680, but wasn't fixed in our case (we're running Version 4.7.6 (Build 5))

We of course can't reproduce it either...

Something before it gets to proget is munging the url. But I guess we'll just add a string.replace to unescape %2f in the URL. it might help, shouldn't hurt.

PG-763 in the next maintence release.

Answer Details

Preview: