__package__ = 'plugins_pkg.npm' from typing import List from pydantic import InstanceOf from pydantic_pkgr import BinProvider, BinName, BinaryOverrides from abx.archivebox.base_binary import BaseBinary, env, apt, brew class NodeBinary(BaseBinary): name: BinName = 'node' binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env] overrides: BinaryOverrides = { apt.name: {'packages': ['nodejs']}, } NODE_BINARY = NodeBinary() class NpmBinary(BaseBinary): name: BinName = 'npm' binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env] overrides: BinaryOverrides = { apt.name: {'packages': ['npm']}, # already installed when nodejs is installed brew.name: {'install': lambda: None}, # already installed when nodejs is installed } NPM_BINARY = NpmBinary() class NpxBinary(BaseBinary): name: BinName = 'npx' binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env] overrides: BinaryOverrides = { apt.name: {'install': lambda: None}, # already installed when nodejs is installed brew.name: {'install': lambda: None}, # already installed when nodejs is installed } NPX_BINARY = NpxBinary()