Ваше мышление верно, но карет относится к основной версии 0
по-другому: он допускает только обновления в патчах, а для 0.0.x
он вообще не допускает обновлений.
Например, ^0.0.3
разрешит только точно версию 0.0.3
.
Для версий, больших или равных 0,1,0, но меньших 1,0,0, каретка принимает ту же самуюповедение как тильда и допускает гибкость в версиях патчей (только).
Например, ^0.1.3
разрешит все версии от 0.1.3
до следующего второстепенного, 0.2.0
.
Причина этого в том, что перед первым выпуском 1.0.0
другой патч или младший номер не гарантирует, что изменения не будут нарушены.
источник