ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ GitHub ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π±ΠΎΡΠ° Π°ΡΠ°ΠΊΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ 12 Π°ΠΏΡΠ΅Π»Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ Amazon AWS, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° NPM. ΠΠ½Π°Π»ΠΈΠ· ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ Π°ΡΠ°ΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΌ ΠΊΠΎΠΏΠΈΡΠΌ Ρ ΠΎΡΡΠ° skimdb.npmjs.com ΠΈ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΠ Ρ ΡΡΡΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 100 ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ NPM ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 2015 Π³ΠΎΠ΄, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌ Ρ ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ, ΠΈΠΌΠ΅Π½Π° ΠΈ email.
Π₯ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΡΠΈΠΌΠΎΠ² PBKDF2 ΠΈΠ»ΠΈ SHA1 Ρ ΡΠΎΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² 2017 Π³ΠΎΠ΄Ρ Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎΠΉΠΊΠΈΠΉ ΠΊ ΠΏΠΎΠ΄Π±ΠΎΡΡ bcrypt. ΠΠΎΡΠ»Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ° ΠΎΡ Π²Π°ΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΡΠΎΠ»ΠΈ Π±ΡΠ»ΠΈ ΡΠ±ΡΠΎΡΠ΅Π½Ρ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ 1 ΠΌΠ°ΡΡΠ° Π² NPM Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π΄Π²ΡΡ ΡΠ°ΠΊΡΠΎΡΠ½Π°Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ email ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΡΠΊΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΡ ΠΏΠΎΠΏΠ°Π»ΠΈ Π²ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ-ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π°ΠΏΡΠ΅Π»Ρ 2021 Π³ΠΎΠ΄Π°, CSV-ΡΠ°ΠΉΠ»Ρ Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π²ΡΠ΅Ρ ΠΈΠΌΡΠ½ ΠΈ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² GitHub (ΠΈΠΌΠ΅Π½Π° Π½Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ). Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠΎ Π°Π½Π°Π»ΠΈΠ· ΡΠ»Π΅Π΄ΠΎΠ² ΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΡΡΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π΅ Π²ΡΡΠ²ΠΈΠ» Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² NPM-ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠΊΡΠΈΠ²Π½ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΡΠ°ΠΊΠ° Π±ΡΠ»Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° 12 Π°ΠΏΡΠ΅Π»Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠ°Π΄Π΅Π½Π½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² OAuth, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»Ρ Π΄Π²ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ GitHub-ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΎΡΠΎΠ² — Heroku ΠΈ Travis-CI. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠ΅ ΡΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² GitHub ΠΊΠ»ΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API Amazon Web Services, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° NPM. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ, Ρ ΡΠ°Π½ΡΡΠΈΠΌΡΡ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅ AWS S3.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΠΊΡΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°Π½Π΅Π΅ Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ
ΡΠ΅ΡΡΡΠ·Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
NPM — Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Π»ΠΎΠ³Π°Ρ
Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ»ΠΈΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ NPM, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ NPM. Π Ρ
ΠΎΠ΄Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ NPM Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π²Π΅Π΄Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² GitHub ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»ΠΈ Π²ΡΡΠ΅Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ
Π² Π»ΠΎΠ³ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ NPM. Π£ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π½Π΅Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΠ»Π° ΡΡΡΡΠ°Π½Π΅Π½Π°, Π° Π»ΠΎΠ³ΠΈ ΠΎΡΠΈΡΠ΅Π½Ρ Π΅ΡΡ Π΄ΠΎ Π°ΡΠ°ΠΊΠΈ Π½Π° NPM. ΠΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠ³Π°ΠΌ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΈΠΌΠ΅Π»ΠΈ Π»ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ GitHub.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru