All notable changes to this project will be documented in this file automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! This project adheres to Semantic Versioning.
- Update actions/setup-python digest to 65d7f2d [Self-hosted Renovate Bot]
- Pin actions/setup-node action to 1a4442c [Self-hosted Renovate Bot]
- Update dependency node-addon-api to v8 [Self-hosted Renovate Bot]
- Drop support for node < 18 [Thodoris Greasidis]
- Bump node-gyp [Otavio Jacobi]
- Replace deprecated flowzone input tests_run_on [Kyle Harding]
- Add support to node20 [Otávio Jacobi]
- Remove repo config from flowzone.yml [Kyle Harding]
- Update dependencies [ab77]
- fix build [Zane Hitchcox]
- support node 16 [Zane Hitchcox]
- Update dependency @types/mocha to 10.0.0 [Renovate Bot]
- Switch to Flowzone [ab77]
- Switching to Napi [Zane Hitchcox]
- Switching to Napi [Zane Hitchcox]
- Pass strings between methods as std::string instead of char * [Floris Bos]
- Support lsblk versions that do no support the pttype column [Alexis Svinartchouk]
- Update typescript to v4.1.2 [Alexis Svinartchouk]
- Add versionbot changelog [Alexis Svinartchouk]
- Make drivelist context aware [warpdesign]
- An empty string is a valid description [Alexis Svinartchouk]
- Add partitionTableType field: 'gpt', 'mbr' or null (windows) [Alexis Svinartchouk]
- Add partitionTableType field: 'gpt', 'mbr' or null (mac) [Alexis Svinartchouk]
- Add partitionTableType field: 'gpt', 'mbr' or null (linux) [Alexis Svinartchouk]
- Load bindings once [Alexis Svinartchouk]
- Mark APFS media as virtual and assign its mountpoints to the source drive [Alexis Svinartchouk]
- Remove gitter link [Alexis Svinartchouk]
- Rename resin -> balena [Alexis Svinartchouk]
- Update resin-lint to @balena/lint [Alexis Svinartchouk]
- Remove mz dependency, target node 10 [Alexis Svinartchouk]
- Fix lsblk --pairs parsing when a value has hexadecimal escapes [Alexis Svinartchouk]
- Avoid segfaulting on mac when some disk description fields are null [Alexis Svinartchouk]
- Fix tests [Alexis Svinartchouk]
- Fix typo in readme [Alexis Svinartchouk]
- Update nan to ^2.14 to fix builds targetting electron 6 [Alexis Svinartchouk]
- Update example in readme [Alexis Svinartchouk]
- Update resin-lint to ^3.0.1 [Alexis Svinartchouk]
- Unregister DASession callback to avoid crash [Robert Vojta]
- Fix DASession and NSMutableArray leaks on macOS [Alexis Svinartchouk]
- Fix isVirtual value on macOS [Robert Vojta]
- Fix macOS crash when SD card is ejected [Robert Vojta]
- Address PR comments [Alexis Svinartchouk]
- Try
lsblk --pairs
if parsinglsblk --json
fails [Alexis Svinartchouk] - Convert to typescript, use promises instead of callbacks [Alexis Svinartchouk]
- Fix parsing lsblk --pairs output for disks with no partition table [Alexis Svinartchouk]
- Update prebuild to ^8.1.2 [Alexis Svinartchouk]
- Remove unused diskutil file and its tests [Alexis Svinartchouk]
- Remove outdated docs. [Alexis Svinartchouk]
- Feat(mac): Native implementation for drivelist [Robin Andersson]
- Fix tests incorrect mountpoints [Lorenzo Alberto Maria Ambrosi]
- Fix devices mountpoints for lsblk in pairs mode [Lorenzo Alberto Maria Ambrosi]
- Fix tests incorrect device.size [Lorenzo Alberto Maria Ambrosi]
- Fix linting errors & add specs with plist return value assertions [Robin Andersson]
- Fix build on xcode 10.1 [Alexis Svinartchouk]
- Lsblk: Fix listing of empty mountpoints [Jonas Hermsmeier]
- Lsblk: Check
hotplug
to setisRemovable
[Jonas Hermsmeier] - Ci: Add .resinci.yml [John (Jack) Brown]
- Lsblk: Fix missing
devicePath
property [Jonas Hermsmeier]
- Feat(diskutil): Populate devicePath on Mac OS #297 [Jonas Hermsmeier]
- Fix(diskutil): Also probe Ejectable to determine removabililty #298 [Jonas Hermsmeier]
- Test(lsblk): Add test case for root device mountpoints #293 [Jonas Hermsmeier]
- Fix(lsblk): Enumerate mountpoints on root devices #293 [Jonas Hermsmeier]
- Fix(lsblk): Fall back to mountpoint if no label given #293 [Jonas Hermsmeier]
- Fix(lsblk): Resolve relative device names #293 [Jonas Hermsmeier]
- Fix(linux): Fix pair consolidation for lsblk #255 [Jonas Hermsmeier]
- Feat(lib): Use lsblk directly, parse json output #255 [Jonas Hermsmeier]
- Fix(linux): Add flag to lsblk to list all devices #287 [Jonas Hermsmeier]
- Fix(test): Add python requirements.txt for tests #288 [Jonas Hermsmeier]
- Fix(src): Fix nan callback deprecation warning #284 [Jonas Hermsmeier]
- Fix(ci): Fix Node version arg passed to prebuild script #280 [Jonas Hermsmeier]
- Upgrade(package): Bump prebuild dependencies #279 [Jonas Hermsmeier]
- Fix(ci): Only prebuild with Node 10 #279 [Jonas Hermsmeier]
- Feat(linux): Add unique device path #278 [User Name]
- Chore(ci): Build, test & publish releases for Node.js v10 #273 [Tim Perry]
- Fix(diskutil): Fall back to MediaName if EntryName is not available #270 [Jonas Hermsmeier]
- Fix(diskutil): Track & filter out device info errors #270 [Jonas Hermsmeier]
- Fix(diskutil): Added an error for diskutil returning null [grumpyoldman-io]
- Fix(diskutil): Fix ReferenceError when DeviceNode is undefined #266 [Jonas Hermsmeier]
- Upgrade(package): Bump dependencies #264 [Jonas Hermsmeier]
- Fix(diskutil): Use VolumeAllocationBlockSize if available #260 [Jonas Hermsmeier]
- Fix(test): Avoid test timeout on AppVeyor #259 [Jonas Hermsmeier]
- Test(diskutil): Add tests for devices without partitions #259 [Jonas Hermsmeier]
- Fix(diskutil): Support mountpoints without partitions #259 [Jonas Hermsmeier]
- Fix(diskutil): Fix handling of devices without partitions #259 [Jonas Hermsmeier]
- Fix(package): Remove obsolete bin entries #256 [Jonas Hermsmeier]
- Feat(lib): Use diskutil directly, parse plist output #253 [Jonas Hermsmeier]
- Upgrade(package): Bump dependencies #252 [Jonas Hermsmeier]
- Fix(windows): Impl IsSystemDevice() #250 [Jonas Hermsmeier]
- Fix crash on Windows 7 #249 [Jonas Hermsmeier]
- Fix(darwin): Use proper flag to enable extended regexes in
sed
Fixes #247 #248 [Andrew Scheller]
- Fix(darwin): Allow mountpoints containing space characters #246 [Andrew Scheller]
- Feat: Rewrite native bindings to use IOCTL #243 [Jonas Hermsmeier]
- Chore(package): Bump dependencies #242 [Jonas Hermsmeier]
- Refactor: Remove lodash #235 [Jonas Hermsmeier]
- Fix(package): Fix prebuild script being run on build #236 [Jonas Hermsmeier]
- Fix: Remove the final usage of perl from darwin.sh #238 [Andrew Scheller]
- Chore: pip on Travis OSX is now pip2 #239 [Andrew Scheller]
- Upgrade(package): Bump dependencies #232 [Jonas Hermsmeier]
- Fix(ci): Ensure the Travis box finds bash #230 [Jonas Hermsmeier]
- Chore(ci): Add CI deployment scripts #227 [Jonas Hermsmeier]
- Correctly execute macOS and GNU/Linux scripts inside directories mounted as
noexec
. #229 [Juan Cruz Viotti]
- Fix: Bring back support for Node.js v4 #225 [Zoltan Kochan]
- Chore(appveyor): Explicitly set base image #223 [Jonas Hermsmeier]
- Upgrade(package): Update dependencies #221 [Jonas Hermsmeier]
- Feat(package): Add prebuilds for native bindings #219 [Jonas Hermsmeier]
- Store GNU/Linux temporary scripts in
$XDG_RUNTIME_DIR
. #209 [Juan Cruz Viotti]
- Ensure all volume handles get closed on Windows. #212 [Juan Cruz Viotti]
- Fix(windows): log the volume we're working on #211 [Juan Cruz Viotti]
- Correctly handle BitLocker locked Windows volumes. #206 [Juan Cruz Viotti]
- Get more detailed error codes from the Windows implementation. [Juan Cruz Viotti]
- Fix "Couldn't scan the drives: An unknown error occurred" where there is a mounted virtual drive. [Juan Cruz Viotti]
- Fix "Couldn't initialize the scanner: An unknown error occurred" error. [Juan Cruz Viotti]
- Refactor(windows): don't use COM/WMI to retrieve a drive media type [Juan Cruz Viotti]
- Feat: add a
displayName
property to drive objects [Juan Cruz Viotti]
- Feat(windows): print HRESULT hex in debug information [Juan Cruz Viotti]
- Fix: small typo in EAGAIN error message [Juan Cruz Viotti]
- Fix: handle EAGAIN spawning errors [Juan Cruz Viotti]
- Refactor: reduce debug logging if unlink was successful [Juan Cruz Viotti]
- Feat(windows): print debugging information when DRIVELIST_DEBUG is set [Juan Cruz Viotti]
- Fix: property clean up tmp file after exec [Jonas Hermsmeier]
- Fix(windows): ERROR_NOT_READY on empty SD Card reader [Juan Cruz Viotti]
- Chore(package): Fix missing EOL in package.json [Jonas Hermsmeier]
- Fix(windows): all drives are interpreted as read-only [Juan Cruz Viotti]
- Refactor(windows): don't use WMI to list volumes [Juan Cruz Viotti]
- Fix(windows): detect read-only flag on SD Cards without a filesystem (#183) [Juan Cruz Viotti]
- Refactor(windows): Use an IOCTL to determine the partition type (#181) [Juan Cruz Viotti]
- Refactor(windows): implement volume::GetType() [Juan Cruz Viotti]
- Upgrade(package): Bump dependencies [Jonas Hermsmeier]
- Doc(README): Add npm monthly download count [Jonas Hermsmeier]
- Adapt changelog for versionbot [Kostas Lekkas]
- Doc(README): Fix Travis link, use Etcher chat [Jonas Hermsmeier]
- Fix perl taking all the CPU in macOS in some cases
- Join volume and device names as descriptions if they both exists on macOS
- Inline platform scripts as a JSON file.
- Correctly deal with unicode characters coming from drive descriptions
- Correctly deal with invalid escape sequences coming from drive descriptions
- Fix mountpoints getting cut if they contain a
#
in GNU/Linux and macOS
- Fix literal
\040
on mountpoints that contain spaces in GNU/Linux
- Fix awk expression that replaces periods with underscores before evaluating
udevadm
output in GNU/Linux.
- Increase debug logging in the case of script errors
- Prevent errors when unplugging drives while the scripts are running
- Catch the exit code of the wrapped VBScript on Windows.
Important: v5.0.11 and v5.0.12 were both published to NPM from a Windows
machine. This messed up the execution permissions of the drive detection
scripts, causing EACCES
errors.
This version is equal to v5.0.12, but was released from a UNIX based system.
- Ensure the Windows script has execution permissions.
- Omit empty SD Card readers on Windows.
- Don't include drive letters assigned to no file system in Windows mount points.
- Print platform scripts
stderr
output to a debug channel instead of throwing if the script exitted with code zero. - Fix bug where only the first mount point is reported on GNU/Linux.
- Ensure every potentially problematic value is double quoted in the GNU/Linux and macOS scripts.
- Fix "is not recognised as an internal or external command" errors on Windows.
- Interpret "Fixed" drives as system drives in macOS.
- Fix uncaught error caused by a weird Windows configuration edge where multiple partitions were reported to have the same drive letter.
- Fix system drives being detected as removable drives on Mac Mini.
- Replace periods with underscores before evaluating
udevadm
output in GNU/Linux.
- Fix
drivelist
not detecting mountpoints in Windows due to a space/tab YAML parsing issue.
- Don't require .NET VBScript classes in Windows platform script.
- Fix
YAMLException: bad indentation of a sequence entry
Windows error.
- Transform
mountpoint
into an array of objects calledmountpoints
. - Improve GNU/Linux detection performance.
- Correctly get SD Card readers descriptions in GNU/Linux.
- Ignore invalid YAML output from platform scripts.
- Group mount points of drives with multiple partitions in Windows.
- Switch project to JavaScript.
- Switch license to Apache 2.0.
- Ensure
%SYSTEMROOT%\System32
is in the%PATH%
before callingcscript.exe
on Windows.
- Default device name to device id if drive doesn't have an assigned letter in Windows.
- List all partition's mountpoints in OS X.
- Fix
blkid: command not found
in GNU/Linux.
- Fix
null
device when unplugging a device while detecting drives. - Expose a "raw" property in all devices.
- Attempt to display the volume name as description in OS X.
- Fix internal removable drives being considered "system" in macOS Sierra.
- Fix YAML error when a description contains question marks in GNU/Linux.
- Fix missing sizes in macOS Sierra.
- Handle mountpoints with spaces in GNU/Linux.
- Check if drive is removable when the drive has no file system in Windows.
- Make use of
df
to determine mountpoints in GNU/Linux.
- Add a property called
protected
.
- Prevent certain system drives to be detected as removable in GNU/Linux.
- Fix issue that caused some hard drives to be listed as removable drives.
- Show non-mountable disk drives in Windows.
- Parse size as a number representing bytes.
- Detect mount points of drives mounted by UUID on GNU/Linux.
- Keep once decimal in Windows drive sizes.
- Make sure MacBook's internal SDCard readers are marked as removable.
- Escape double quotes in description to prevent YAML errors.
- Improve the way we detect system drives in Windows.
- Use
udev
to determine if a drive is removable on GNU/Linux. - Mark internal and non-removable drives as system drives in OS X.
- Omit loop devices in GNU/Linux.
- Omit CD/DVD drives in GNU/Linux.
- Omit mounted DMG images in OS X.
- Add a display name property called
name
.
- Fix boolean values being surrounded by quotes.
- Trim trailing commas on GNU/Linux mountpoints.
- Support running inside Electron.
- Treat multiple mountpoint as a comma separated list of paths in GNU/Linux.
- Escape paths including spaces in unix based operating systems.
- Escape backslashes in Windows devices to avoid weird characters.
- Add example file for easy testing.
- Redesign Windows script to match the new output scheme.
- Refer to
osx
as Darwin everywhere. - Implement GNU/Linux scanning bash script.
- Unify parsing between all supported operating systems.
- Add
system
property to returned drives. - Remove
drivelist.isSystem()
predicate. - Fix issue that caused some OS X drives to not be detected.
- Handle edge case where OS X drives contain a description within parenthesis in
diskutil list
.
- Surround Windows script path in double quotes to avoid issues with paths incuding white space.
- Add
mountpoint
attribute to drives.
- Fix issue where a removable drive was detected as a system drive in Linux.
- Fix win32 issue where DeviceID gets part of the device description.
- Implement isSystem predicate.
- Prevent empty lsblk model crash the module. Return
undefined
description instead.
- Prevent empty wmic size crash the module. Return
undefined
size instead.
- Return non supported OS error to the callback instead of just throwing it.