рд╕реАрдбреАрдПрдирдЬреЗ рдореЗрдВ рднреЗрджреНрдпрддрд╛ рдЬрд┐рд╕рдиреЗ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рджреА

рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рдХреЗ рд╕реАрдбреАрдПрдирдЬреЗрдПрд╕ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреЗрджреНрдпрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реАрдбреАрдПрди рд╕рд░реНрд╡рд░ рдкрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЦрддрд░рд╛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд▓рдЧрднрдЧ 12.7% рд╕рд╛рдЗрдЯреЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реАрдбреАрдПрдирдЬреЗрдПрд╕ рд╕реЗрд╡рд╛ рдЧрд┐рдЯ рдпрд╛ рдПрдирдкреАрдПрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдореБрдлреНрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред GitHub рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд cdnjs рдШрдЯрдХреЛрдВ рдХреЗ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ tgz рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ NPM рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреЛ рднрд╛рд╖рд╛ рдореЗрдВ рдорд╛рдирдХ рд╕рдВрдЧреНрд░рд╣/рдЯрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрдереЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд┐рдП рдмрд┐рдирд╛, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред . рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреА рдЧрдИ рд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдирдкреИрдХ рдХрд░рддреА рд╣реИ, рддреЛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ "../../../../../../../tmp/test" рдЬреИрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬрд╣рд╛рдБ рддрдХ рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдордирдорд╛рдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред

рдпрд╣ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реАрдбреАрдПрдирдЬреЗ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдирдкреАрдПрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдкрде рдореЗрдВ "../" рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдбреАрдПрдирдЬреЗ рд╕рд░реНрд╡рд░ рдкрд░, рдПрдХ "рдСрдЯреЛрдЕрдкрдбреЗрдЯ" рдСрдкрд░реЗрд╢рди рд╕рдордп-рд╕рдордп рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рд╣реИрдВрдбрд▓рд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдирдкреИрдХ рдХрд░рддрд╛ рд╣реИред рдкрде "../" рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рд╕реЗрд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЙрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЕрдирдкреИрдХрд┐рдВрдЧ рдХреА рдЧрдИ рдереАред

Git рд╕реЗ рдЕрдкрдбреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдкрдбреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдиреЗ Git рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдиреЗ Git рдореЗрдВ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдХрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдХреА рд░реАрдбрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред

рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рд╣реИрдХрд░рд╡рди рдореЗрдВ рдкреБрд░рд╕реНрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдХрд┐рдВрдЧ рд╕реАрдбреАрдПрдирдЬреЗ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред CDN рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ test.js рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ /proc/self/maps рдлрд╝рд╛рдЗрд▓ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдкрдбреЗрдЯ рд╣реИрдВрдбрд▓рд░ рдиреЗ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ cdnjs рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ (test.js рдХреЛ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЬрдм рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ /proc/self/maps рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд╛рдкрд╕ рдХрд░ рджреА рдЧрдИ рдереА) ).

рдлрд╝рд╛рдЗрд▓ /proc/self/environ рдореЗрдВ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдЕрдзреНрдпрдпрди рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ GITHUB_REPO_API_KEY рдФрд░ WORKERS_KV_API_TOKEN рдХреЗ рдорд╛рди рд╢рд╛рдорд┐рд▓ рдереЗред рдкрд╣рд▓реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдиреЗ GitHub рдкрд░ robocdnjs рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП API рдХреБрдВрдЬреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХреАред рджреВрд╕рд░реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдиреЗ рдЯреЛрдХрди рдХреЛ рд╕реАрдбреАрдПрдирдЬреЗ рдореЗрдВ рдХреЗрд╡реА рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ред рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдорд▓рд╛рд╡рд░ рд╕реАрдбреАрдПрдирдЬреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рдордЭреМрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ