@Hervé:

The NPM `deprecated` property exists in NPM registry package metadata. (Some of 
this is derived from package.json, but it is not the same as package.json.)

It is described here: 
https://github.com/npm/registry/blob/master/docs/responses/package-metadata.md

The library which NPM itself uses to retrieve this metadata is called 
'packument': https://github.com/vweevers/packument

NPM metadata lists all versions of a package. Each version object has an 
optional `deprecated` string property. This string is the deprecation warning 
message for that version. If the property is absent, NPM infers the package is 
still active.

(For comparison, this is simpler than NuGet's deprecation object which contains 
several fields.)

Example snippet:

{
    "name": "<package-name>",
    "modified": "2017-03-21T21:40:18.939Z",
    "dist-tags": {
        "latest": "<semver-compliant version string>",
        "<dist-tag-name>": "<semver-compliant version string>"
    },
    "versions": {
        "<version>": {
            "name": ...,
            "deprecated": "please don't use this"         // this version is 
deprecated
        },
        "<version>": {
           "name": ...                                     // this version is 
actively developed
        }
    }
}

The `npm deprecate` command essentially retrieves the package metadata with 
packument, sets the `deprecated` message on the specified version(s), and 
uploads it with packument.

The `npm outdated` command prints the message as a warning if it is seen.

Chris

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to