ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° NPM 12.0, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΠΏΠΎΡΡΠ°Π²ΠΊΡ Node.js ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript. ΠΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°ΡΠ°ΠΊ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΠΉ, Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌΡΡ ΠΈΠ· ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠ»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² package.json ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ preinstall, install ΠΈΠ»ΠΈ postinstall, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° allowScripts ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½Π° Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«offΒ». ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ C/C++ ΠΊΠΎΠ΄Π° ΡΡΠΈΠ»ΠΈΡΠΎΠΉ node-gyp ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π° binding.gyp, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Β«βallow-gitΒ» ΠΈ Β«βallow-remoteΒ» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«noneΒ», ΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈΠ· Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΈ ΠΏΠΎ ΠΏΡΡΠΌΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ Π½Π° ΡΠ°ΠΉΡΡ Ρ tar-Π°ΡΡ ΠΈΠ²Π°ΠΌΠΈ.
ΠΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«npm approve-scriptsΒ», Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ, ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΡ Β«βallΒ» Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ. ΠΠ»Ρ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«npm approve-scripts βallow-scripts-pendingΒ», ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΡΡΠΈΡ Π½Π° Π·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«npm approve-scriptsΒ» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±Π΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π² package.json.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ Π·Π°ΠΏΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ NPM GAT-ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° (Granular Access Tokens), Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π±Π΅Π· Π΄Π²ΡΡ ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (2FA). ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π°Π²Π³ΡΡΡΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ, ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ email, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π²ΡΡ ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΌΠΈ.
Π ΡΠ½Π²Π°ΡΠ΅ 2027 Π³ΠΎΠ΄Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΡΡΠΌΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΠΎΠ±Ρ ΠΎΠ΄ΡΡΠΈΡ 2FA. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² staging-ΡΠ°Π·Π΄Π΅Π»Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π΄ΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΈΠ·Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΡΠ°Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ.
ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Β«Trusted PublishersΒ», ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° OpenID Connect (OIDC) ΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ
ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ
ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
