As somas de verificação disponíveis no registro do NPM fornecem dois recursos: elas permitem que você verifique se o download não está corrompido e, se for possível verificar as somas de verificação fora da banda, se os arquivos baixados não foram alterados. A menos que os arquivos do NPM sejam criados de forma reproduzível, as verificações não permitem que você verifique se um arquivo criado por você mesmo usando npm pack
contém o que deveria.
O problema com os tarballs é que eles contêm metadados: a propriedade, as permissões e os registros de data e hora dos arquivos armazenados, conforme armazenados por tar
e, além disso, metadados de compactação . Se os valores para todos eles forem pré-acordados, eles podem ser especificados para substituir os valores obtidos do sistema de arquivos, mas isso requer um pré-contrato.
Para comparar o conteúdo de duas tarballs arbitrárias, a única forma confiável é extrair seu conteúdo e comparar isso.