
Security News
Re-Enabled GitHub Actions Expose Thousands of Repositories to Mini Shai-Hulud
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.
node-package-field-info
Advanced tools
Shared core for node-exports-info and node-imports-info: maps node version ranges to feature categories and looks up per-category flags.
Shared core for node-exports-info and node-imports-info: maps node version ranges to feature categories and looks up per-category flags.
Each of those packages is essentially data — a ranges map of node semver range → category, plus per-flag tables of which categories support which feature. This package provides the (otherwise duplicated) logic that operates on that data, as factory functions: pass in the data, get back the accessor.
Each entry point is a factory: call it with a package's data, and it returns the corresponding accessor function.
node-package-field-info/makeGetCategory: (ranges) => (nodeVersion?) => category. Returns the latest category matching the version (defaulting to the current node version); throws if none match.node-package-field-info/makeGetCategoriesForRange: (ranges) => (range) => category[]. Returns the categories whose range overlaps the given range.node-package-field-info/makeGetRange: (ranges) => (category) => range. Returns the range for a category; throws for an unknown category.node-package-field-info/makeGetRangePairs: (ranges) => () => [range, category][]. Returns the range/category pairs.node-package-field-info/makeIsCategory: (ranges) => (category) => boolean. Returns whether a value is a known category.node-package-field-info/makeGetCategoryFlags: (isCategory, flagTables) => (category) => flags. Returns an object of boolean flags (one per key in flagTables); throws for an unknown category.node-package-field-info/makeGetConditionsForCategory: (isCategory, conditionTables) => (category, moduleSystem?) => conditions. Returns the array of supported conditions (or null) for a category, optionally narrowed to 'require'/'import'; throws for an unknown category. conditionTables is { addonsCategories, moduleSyncCategories, nullCategories, defaultOnlyCategories }.node-package-field-info/makeGetCategoryInfo: (getConditionsForCategory, getCategoryFlags) => (category, moduleSystem?) => { conditions, flags }. Combines the two into one lookup.The ranges object maps a node semver version range to a category, ordered most-recent first:
{
__proto__: null,
'>= 3': 'c',
'2.x': 'b',
'< 2': 'a',
}
The flagTables object maps a flag name to the set of categories that support it:
{
foo: { __proto__: null, b: true, c: true },
bar: { __proto__: null, c: true },
}
var makeGetCategory = require('node-package-field-info/makeGetCategory');
var ranges = { __proto__: null, '>= 3': 'c', '2.x': 'b', '< 2': 'a' };
var getCategory = makeGetCategory(ranges);
getCategory('2.5.0'); // 'b'
node-exports-info: info about node exports field supportnode-imports-info: info about node imports field supportSimply clone the repo, npm install, and run npm test
FAQs
Shared core for node-exports-info and node-imports-info: maps node version ranges to feature categories and looks up per-category flags.
The npm package node-package-field-info receives a total of 39 weekly downloads. As such, node-package-field-info popularity was classified as not popular.
We found that node-package-field-info demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.

Research
/Security News
The compromise affects MemTensor's MemOS, an open source memory framework for large language models (LLMs) and AI agents. Both npm package @memtensor/memos-cloud-openclaw-plugin and the PyPI package MemoryOS are compromised. They drop cross-platform Go binaries that exfiltrate developer secrets.