Разработчик представил на GitHub NotShazam — реализацию алгоритма распознавания песен Shazam, основанную на Go. Алгоритм интегрирует API Spotify и YouTube для поиска и загрузки песен.
У пустого пакета npm «-» обнаружили 700 тысяч загрузок

Эксперты Bleeping Computer обнаружили, что у пустого пакета npm «-» более 700 тысяч загрузок. Причем их количество все время возрастает с каждым днем. Вероятно, разработчики и пользователи его случайно устанавливают, когда ставят лишний пробел между «i» и "-" при установке флагов в нужных им пакетах с помощью пакетного менеджера npm.
Пакет Everything, охватывающий зависимостями все пакеты в репозитории NPM, случайно чуть не сломал NPM

В конце декабря 2023 года и в начале января 2024 года NPM-пакет Everything от разработчика PatrickJS, охватывающий зависимостями все пакеты в репозитории NPM, случайно чуть не сломал NPM под девизом «мы оживили демона». Сообщество разработчиков Node.js оперативно сделало веб-сайт про эту ситуацию.
В NPM ввели обязательную двухфакторную аутентификацию для сопровождающих значимых пакетов

GitHub внедрил обязательное применение в репозитории NPM двухфакторной аутентификации к учётным записям разработчиков, сопровождающих пакеты с более чем 1 млн загрузок в неделю или используемых в качестве зависимости у более чем 500 пакетов.
GitHub купил npm

Пакетный менеджер npm становится частью GitHub. Объявления об этом появились и в блоге GitHub, и в блоге npm.
В блоге npm основатель проекта Айзек Шлютер подчёркивает «npm, который вы знаете, никуда не девается». Он выражает уверенность, что для проекта это перемена к лучшему, и сообщает, что сам продолжит работать над ним.
Исследователи обнаружили «фабрику» вредоносных пакетов npm
Checkmarx обнаружили угрозу, связанную с деятельностью злоумышленника RED-LILI, отметившегося созданием и доставкой сотен вредоносных пакетов в экосистему NPM в режиме автоматизации, что вызывает серьёзные опасения в контексте атак на цепочки зависимостей, особенно на фоне последних инцидентов с саботажем отдельных разработчиков.
Из каталога NPM удалили четыре зловредных пакета

В четверг, 16 октября, команда безопасности npm удалила с портала четыре пакета JavaScript, содержащие вредоносный код.
Разработчик выпустил инструмент, решающий проблему «путаницы манифестов» в NPM
Разработчик представил утилиту, решающую проблему «путаницы манифестов» в NPM. На прошлой неделе стало известно, что злоумышленники могут прятать вредоносный код в зависимостях пакетов.
Специалисты Sonatype обнаружили NPM-пакеты, распространявшие под видом Noblox.js вымогательское ПО и инфостилеры

Не успели специалисты Sonatype обнаружить в этом месяце вредоносное ПО для майнинга криптовалюты в трех JavaScript-библиотеках, загруженных в официальный репозиторий NPM, как появилась новая напасть. Речь пойдет о еще двух NPM-пакетах — noblox.js-proxy и noblox.js-proxies. Злоумышленники воспользовались известным способом, когда написание слова очень близко к написанию известных названий, в данном случае — пакета Noblox.js.proxied. Или так называемый тайпсквоттинг, когда злоумышленник или просто ловкий делец пользуется ошибками в написании, при которых не сразу заметна ошибка, и пользователь считает легитимным написание того или иного названия, в данном случае API обертку для Roblox под названием noblox.js-proxied.
Злоумышленники используют вредоносные npm-пакеты для кражи пользовательских данных

Исследователи из Reversing Labs рассказали, что злоумышленники публикуют вредоносные npm-пакеты для кражи пользовательских данных с сайтов и приложений. При этом хакеры выбирают для атаки названия популярных пакетов, чтобы смутить пользователей и заставить скачать шпионское программное обеспечение вместо оригинального.
GitHub запустил бета-тестирование улучшенного механизма 2FA для npm-аккаунтов

По информации Bleeping Computer, веб-сервис для хостинга IT-проектов и их совместной разработки GitHub запустил бета-тестирование улучшенного механизма двухфакторной аутентификации (2FA) для всех npm-аккаунтов.
Ещё один однострочный пакет npm сломал экосистему JavaScript
Библиотека is-promise состоит из двух строк кода, а разработчики могут использовать её в своих проектах с помощью однострочного вызова.
declare function isPromise<T, S>(obj: Promise<T> | S): obj is Promise<T>;
export default isPromise;
Предназначение библиотеки состоит в проверке, что JavaScript-объект является типом Promise, то есть представляет собой конечное завершение асинхронной операции и её результирующее значение.
Популярность npm-пакета '-' продолжает расти

В августе 2021 года внимание сообщества привлёк странный однобуквенный пакет '-' («минус»), у которого было более 700 000 скачиваний и 56 входящих зависимостей, то есть на тот момент 56 других пакетов зависели от «минуса».
Особую загадочность делу придавал тот факт, что пакет был по сути пустой и не содержал ничего, кроме шаблонных конструкций (название, номер версии и т. д.).
За прошедшее время популярность «минуса» значительно выросла. На 11 марта 2022 года (16:00) от него зависят уже 185 пакетов.
Пользователям стало проще отслеживать происхождение npm-пакетов

В блоге GitHub рассказали, что теперь пользователи могут видеть происхождение npm-пакетов. Обновление призвано повысить безопасность и информирование пользователей, а злоумышленникам будет сложнее выдавать вредоносный код за популярные библиотеки.
Деструктивные действия разработчика npm-пакета node-ipc привели к проблемам по всему миру

По информации Linux.org.ru, деструктивные действия разработчика npm-пакета node-ipc привели к проблемам по всему миру.
Дорогая, я уменьшил пакет npm

При разработке программного обеспечения исходный код почти всегда поставляется в виде файлов .tar.gz или .tgz. Но gzip начинает устаревать, уступая место более новым, более современным алгоритмам сжатия, таким как Brotli и ZStandard. Теперь представьте себе мир, в котором npm использует один из этих новых алгоритмов. В статье поговорим о сжатии и возможности модернизации стратегии сжатия npm.
13 приёмов работы с npm, которые помогают экономить время
npm init
или npx create-react-app
стало привычным способом начала работы над практически любым JavaScript-проектом. Это может быть сервер, клиент, или даже настольное приложение.Но утилита npm способна не только на инициализацию проектов или на установку пакетов. Автор материала, перевод которого мы сегодня публикуем, хочет рассказать о 13 хитростях npm, которые позволят выжать из этой системы всё, что можно. Здесь будут рассмотрены приёмы разного масштаба — от использования сокращений команд до настройки поведения
npm init
.
Многие программисты пользуются npm ежедневно. Это значит, что в долгосрочной перспективе изменить что-то в лучшую сторону может даже небольшая экономия времени. Этот материал рассчитан, преимущественно, на начинающих разработчиков и на разработчиков среднего уровня. Однако даже если вы — профессионал, автор материала надеется, что вы сможете найти здесь пару интересных вещей, с которыми вы раньше не сталкивались.
Если вы совершенно не знакомы с npm — знайте, что интересующая нас программа устанавливается вместе с Node.js. Если вы работаете в Windows, то, чтобы воспроизвести кое-что из того, о чём здесь пойдёт речь, рекомендуется установить Git Bash.
Основные команды bash, git, npm и yarn, а также немного о package.json и semver
Предлагаю вашему вниманию небольшую шпаргалку по основным командам bash, git, npm, yarn, package.json и semver.
Условные обозначения: [dir-name] — означает название директории, | — означает «или».
Рекомендую вводить каждую команду в терминале и внимательно изучать вывод, так вы быстро их запомните и определите, какие команды вам нужны, а какие нет.
Приношу извинения за возможные ошибки и опечатки. Буду рад любым замечаниям и предложениям.
Без дальнейших предисловий.
Оглавление:
Lock-файлы npm
Всем привет! В прошлом посте мы рассмотрели экосистему npm в качестве источника хаоса в нашем проекте, и научились с умом подходить к выбору зависимостей, чтобы минимизировать наши риски. Сегодня мы пойдем дальше и рассмотрим lock-файлы npm, которые помогают повысить стабильность проекта в процессе работы над ним.
Как npm обеспечивает безопасность
Всем привет! В предыдущих постах мы подробно поговорили про выбор зависимостей и использование lock-файлов в npm, однако я только вскользь касался вопросов безопасности. Пришло время исправить этот недочет: этот и следующий посты будут полностью посвящены безопасности в npm! И для начала мы рассмотрим, как безопасность обеспечивается на уровне инфраструктуры npm и экосистемы в целом.