ΠΠ»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ Π»ΠΈΡΠ° ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° ΠΏΡΠΈΡ Π²Π°Π½Π°Ρ Π°ΠΊΠ°ΡΠ½ΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡ ΠΈ Π΄Π° ΠΏΡΡΠ½Π°Ρ Π΄Π²Π΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° NPM ΠΏΠ°ΠΊΠ΅ΡΠ° axios, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈ Node.js. ΠΠ°ΠΊΠ΅ΡΡΡ axios ΠΈΠΌΠ° Π½Π°Π΄ 100 ΠΌΠ»Π½ ΡΠ²Π°Π»ΡΠ½ΠΈΡ Π½Π° ΡΠ΅Π΄ΠΌΠΈΡΠ° ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ 174 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π±ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈ Π² Π²Π΅ΡΡΠΈΠΈΡΠ΅ Axios 1.14.1 ΠΈ 0.30.4 ΡΡΠ΅Π· Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΠ°Π»ΡΠΈΠ²Π°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ plain-crypto-js 4.2.1, ΡΡΠ΄ΡΡΠΆΠ°ΡΠ° ΠΊΠΎΠ΄ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅. ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π·Π° ΡΠ²Π°Π»ΡΠ½Π΅ Π½Π° 31 ΠΌΠ°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠΈ 3 ΡΠ°ΡΠ° β ΠΎΡ 03:21 Π΄ΠΎ 6:15 (MSK).
ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ»ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ Π² NPM Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π΄ΠΎΡΡΡΠΏ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° axios ("jasonsaayman"), Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠΉΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° GitHub Actions. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° ΠΏΡΠΈΡ Π²Π°Π½Π°Ρ ΡΠΎΠΊΠ΅Π½Π° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ NPM ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²Π»Π΅Π·Π»ΠΈ Π² Π°ΠΊΠ°ΡΠ½ΡΠ°, ΠΏΡΠΎΠΌΠ΅Π½ΡΠΉΠΊΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Ρ ΠΈΠΌΠ΅ΠΉΠ». ΠΠ°ΡΠΈΠ½ΡΡ, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Π΅ Π±ΠΈΠ» ΠΏΡΠΈΡ Π²Π°Π½Π°Ρ ΡΠΎΠΊΠ΅Π½ΡΡ Π·Π° Π΄ΠΎΡΡΡΠΏ, Π½Π΅ Π΅ ΡΡΠΎΡΠ½Π΅Π½.
ΠΠ»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π±ΠΈΠ» ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π² ΠΏΠ°ΠΊΠ΅ΡΠ° plain-crypto-js Π² ΡΠ°ΠΉΠ»Π° setup.js, Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π» ΡΠ΅ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π½Π° NPM ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΠ΅Π· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ postinstall (βpostinstall: Β«node setup.jsΒ»β) ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΡΠ½, ΠΊΠΎΠΉΡΠΎ Π°ΡΠ°ΠΊΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Windows, macOS ΠΈ Linux. ΠΠ° Π΄Π° ΡΠΊΡΠΈΠ΅ ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ ΡΠΈ, ΡΠ»Π΅Π΄ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ·ΡΡΠΈΠ²Π°Π» ΡΠ°ΠΉΠ»Π° setup.js ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ» package.json Ρ Π²Π΅ΡΡΠΈΡ Π±Π΅Π· postinstall-Ρ
ΡΠΊ. 
Π macOS Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈΡΡ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π» ΠΊΠ°ΡΠΎ Β«/Library/Caches/com.apple.act.mondΒ», Π² Windows β Β«%PROGRAMDATA%\wt.exeΒ», Π² Linux β Β«/tmp/ld.pyΒ». Π‘Π»Π΅Π΄ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π² Linux ΠΈ macOS Π½Π° Π²ΡΠ΅ΠΊΠΈ 60 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π» ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΠ°ΠΊΡΠ²Π°Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ shell ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ ΡΡΡΡΠ΅Π½Π΅/ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΡΡΡΠ²ΡΡ ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π² Linux ΠΈ macOS Π½Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π°Π»Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π΅ Π±ΠΈΠ»Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠ°ΡΠΎΠ»ΠΈ, ΡΠΎΠΊΠ΅Π½ΠΈ ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π·Π° Π΄ΠΎΡΡΡΠΏ. Π Windows ΡΡΠ·Π΄Π°Π²Π°Π» ΡΠ°ΠΉΠ» Β«%PROGRAMDATA%\system.batΒ», ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π» Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ
Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΡΡΡΠ²ΡΡ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΠΏΡΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
