Request for Mirror Synchronization Capability
Dear jsr maintainers,
Greetings from the cnpm team, the provider of stable and free npm registry package mirror services in China, including the frontend at https://npmmirror.com/ and the registry at https://registry.npmmirror.com/.
After testing, we have found that we cannot directly access the npm.jsr.io content within mainland China. In order to provide better services in collaboration with jsr in the future, we would like to request mirror synchronization capabilities similar to those offered by npm registry.
We rely on the changesStream interface provided by npm registry to deliver streaming version change information at https://replicate.npmjs.com/_changes.
Additionally, for frontend display purposes, we also hope to provide manifest interfaces to showcase metadata information.
Looking forward to your response.
Hey @elrrrrrrr
Yes we'd love to support whatever is necessary to support mirroring. I am not sure if we can provide that exact replicate.npmjsr.com interface, just because I think it may be tied to NPM's usage of couchdb? Do you know if there are docs on this?
Would an alternative change stream also work? We could provide a way for you to query the registry API for new NPM tarballs + updates to NPM version manifests (in a change stream style format). Let me know what exact info you need in the change stream :)
@lucacasonato
🤩
Here is the REPLICATE-API interface, which returns corresponding changes through a stream.
https://registry.npmmirror.com/_changes?since=1, we have also developed our own changesStream interface, which returns changes in JSON format, It also requires a since parameter for pagination.
Additionally, we noticed that the manifest does not contain data related to maintainers, which might introduce some differences. If there are already existing interfaces for updates, please inform us how to call them.
Lastly, we hope to find a way to return all npm tarball list for initialization purposes. such as ref .
🎉 We've been attempting some synchronization and adaptation work locally and have successfully completed it for a single package, happ pass.
Here are some of the services or changes we urgently need:
Maintainersin manifests, (all packages in the npm registry have maintainers information even security holder). Are there any plans to add a default value for this field, maybe like[email protected]?- There is a need for a way to export the names of all existing packages for init the mirror.
- We need a changesStream service. Currently, it seems
PACKAGE_VERSION_ADDevent is enough ?
🚀 we are eagerly anticipating the launch of the jsr mirror service as soon as possible.