macos-version
Advanced tools
Comparing version 5.2.1 to 6.0.0
151
index.d.ts
@@ -1,100 +0,93 @@ | ||
declare const macosVersion: { | ||
/** | ||
@returns The macOS version or `undefined` if the platform is not macOS. | ||
/** | ||
@returns The macOS version or `undefined` if the platform is not macOS. | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {macOSVersion} from 'macos-version'; | ||
macosVersion(); | ||
//=> '10.12.3' | ||
``` | ||
*/ | ||
(): string | undefined; | ||
macOSVersion(); | ||
//=> '10.12.3' | ||
``` | ||
*/ | ||
export function macOSVersion(): string | undefined; | ||
/** | ||
@returns Whether the specified [semver range](https://github.com/npm/node-semver#ranges) matches the macOS version. | ||
/** | ||
@returns Whether the specified [semver range](https://github.com/npm/node-semver#ranges) matches the macOS version. | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {isMacOSVersion} from 'macos-version'; | ||
macosVersion.is('>10.10'); | ||
//=> true | ||
``` | ||
*/ | ||
is(semverRange: string): boolean; | ||
isMacOSVersion('>10.10'); | ||
//=> true | ||
``` | ||
*/ | ||
export function isMacOSVersion(semverRange: string): boolean; | ||
/** | ||
@returns Whether the macOS version is greater than or equal to the specified version. | ||
/** | ||
@returns Whether the macOS version is greater than or equal to the specified version. | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {isMacOSVersionGreaterThanOrEqualTo} from 'macos-version'; | ||
macosVersion.isGreaterThanOrEqualTo('10.10'); | ||
//=> true | ||
``` | ||
*/ | ||
isGreaterThanOrEqualTo(version: string): boolean; | ||
isMacOSVersionGreaterThanOrEqualTo('10.10'); | ||
//=> true | ||
``` | ||
*/ | ||
export function isMacOSVersionGreaterThanOrEqualTo(version: string): boolean; | ||
/** | ||
Throws an error if the specified [semver range](https://github.com/npm/node-semver#ranges) does not match the macOS version. | ||
/** | ||
Throws an error if the specified [semver range](https://github.com/npm/node-semver#ranges) does not match the macOS version. | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {assertMacOSVersion} from 'macos-version'; | ||
macosVersion.assert('>=10.12.5'); | ||
//=> [Error: Requires macOS >=10.12.5] | ||
``` | ||
*/ | ||
assert(semverRange: string): void; | ||
assertMacOSVersion('>=10.12.5'); | ||
//=> [Error: Requires macOS >=10.12.5] | ||
``` | ||
*/ | ||
export function assertMacOSVersion(semverRange: string): void; | ||
/** | ||
Throws an error if the macOS version is not greater than or equal to the specified version. | ||
/** | ||
Throws an error if the macOS version is not greater than or equal to the specified version. | ||
_Prefer this over `.assert()` whenever possible as it outputs a more user-friendly error message._ | ||
_Prefer this over `.assert()` whenever possible as it outputs a more user-friendly error message._ | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {assertMacOSVersionGreaterThanOrEqualTo} from 'macos-version'; | ||
macosVersion.assertGreaterThanOrEqualTo('10.12.5'); | ||
//=> [Error: Requires macOS 10.12.5 or later] | ||
``` | ||
*/ | ||
assertGreaterThanOrEqualTo(version: string): void; | ||
assertMacOSVersionGreaterThanOrEqualTo('10.12.5'); | ||
//=> [Error: Requires macOS 10.12.5 or later] | ||
``` | ||
*/ | ||
export function assertMacOSVersionGreaterThanOrEqualTo(version: string): void; | ||
/** | ||
Throws an error if platform is not macOS. | ||
/** | ||
Throws an error if platform is not macOS. | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {assertMacOS} from 'macos-version'; | ||
macosVersion.assertMacOS(); | ||
//=> [Error: Requires macOS] | ||
``` | ||
*/ | ||
assertMacOS(): void; | ||
assertMacOS(); | ||
//=> [Error: Requires macOS] | ||
``` | ||
*/ | ||
export function assertMacOS(): void; | ||
/** | ||
Whether the platform is macOS. | ||
/** | ||
Whether the platform is macOS. | ||
@example | ||
``` | ||
import macosVersion = require('macos-version'); | ||
@example | ||
``` | ||
import {isMacOS} from 'macos-version'; | ||
if (macosVersion.isMacOS) { | ||
console.log('macOS'); | ||
} | ||
``` | ||
*/ | ||
readonly isMacOS: boolean; | ||
// TODO: remove this in the next major version | ||
default: typeof macosVersion; | ||
}; | ||
export = macosVersion; | ||
if (isMacOS) { | ||
console.log('macOS'); | ||
} | ||
``` | ||
*/ | ||
export const isMacOS: boolean; |
71
index.js
@@ -1,6 +0,7 @@ | ||
'use strict'; | ||
const fs = require('fs'); | ||
const semver = require('semver'); | ||
import process from 'node:process'; | ||
import fs from 'node:fs'; | ||
import semver from 'semver'; | ||
const isMacOS = process.platform === 'darwin'; | ||
export const isMacOS = process.platform === 'darwin'; | ||
let version; | ||
@@ -23,3 +24,3 @@ | ||
const parseVersion = plist => { | ||
const matches = /<key>ProductVersion<\/key>[\s]*<string>([\d.]+)<\/string>/.exec(plist); | ||
const matches = /<key>ProductVersion<\/key>\s*<string>([\d.]+)<\/string>/.exec(plist); | ||
if (!matches) { | ||
@@ -32,3 +33,3 @@ return; | ||
const getVersion = () => { | ||
export function macOSVersion() { | ||
if (!isMacOS) { | ||
@@ -46,19 +47,13 @@ return; | ||
version = matches; | ||
version = clean(matches); | ||
} | ||
if (version) { | ||
return clean(version); | ||
} | ||
}; | ||
return version; | ||
} | ||
module.exports = getVersion; | ||
// TODO: remove this in the next major version | ||
module.exports.default = getVersion; | ||
if (process.env.NODE_ENV === 'test') { | ||
macOSVersion._parseVersion = parseVersion; | ||
} | ||
getVersion._parseVersion = parseVersion; | ||
getVersion.isMacOS = isMacOS; | ||
getVersion.is = input => { | ||
export function isMacOSVersion(semverRange) { | ||
if (!isMacOS) { | ||
@@ -68,8 +63,8 @@ return false; | ||
input = input.replace('10.16', '11'); | ||
semverRange = semverRange.replace('10.16', '11'); | ||
return semver.satisfies(getVersion(), clean(input)); | ||
}; | ||
return semver.satisfies(macOSVersion(), clean(semverRange)); | ||
} | ||
getVersion.isGreaterThanOrEqualTo = input => { | ||
export function isMacOSVersionGreaterThanOrEqualTo(version) { | ||
if (!isMacOS) { | ||
@@ -79,27 +74,27 @@ return false; | ||
input = input.replace('10.16', '11'); | ||
version = version.replace('10.16', '11'); | ||
return semver.gte(getVersion(), clean(input)); | ||
}; | ||
return semver.gte(macOSVersion(), clean(version)); | ||
} | ||
getVersion.assert = input => { | ||
input = input.replace('10.16', '11'); | ||
export function assertMacOSVersion(semverRange) { | ||
semverRange = semverRange.replace('10.16', '11'); | ||
if (!getVersion.is(input)) { | ||
throw new Error(`Requires macOS ${input}`); | ||
if (!isMacOSVersion(semverRange)) { | ||
throw new Error(`Requires macOS ${semverRange}`); | ||
} | ||
}; | ||
} | ||
getVersion.assertGreaterThanOrEqualTo = input => { | ||
input = input.replace('10.16', '11'); | ||
export function assertMacOSVersionGreaterThanOrEqualTo(version) { | ||
version = version.replace('10.16', '11'); | ||
if (!getVersion.isGreaterThanOrEqualTo(input)) { | ||
throw new Error(`Requires macOS ${input} or later`); | ||
if (!isMacOSVersionGreaterThanOrEqualTo(version)) { | ||
throw new Error(`Requires macOS ${version} or later`); | ||
} | ||
}; | ||
} | ||
getVersion.assertMacOS = () => { | ||
export function assertMacOS() { | ||
if (!isMacOS) { | ||
throw new Error('Requires macOS'); | ||
} | ||
}; | ||
} |
{ | ||
"name": "macos-version", | ||
"version": "5.2.1", | ||
"version": "6.0.0", | ||
"description": "Get or check the current macOS version", | ||
@@ -13,4 +13,6 @@ "license": "MIT", | ||
}, | ||
"type": "module", | ||
"exports": "./index.js", | ||
"engines": { | ||
"node": ">=6" | ||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" | ||
}, | ||
@@ -39,9 +41,9 @@ "scripts": { | ||
"dependencies": { | ||
"semver": "^5.6.0" | ||
"semver": "^7.3.5" | ||
}, | ||
"devDependencies": { | ||
"ava": "^1.4.1", | ||
"tsd": "^0.7.1", | ||
"xo": "^0.24.0" | ||
"ava": "^3.15.0", | ||
"tsd": "^0.17.0", | ||
"xo": "^0.44.0" | ||
} | ||
} |
@@ -14,23 +14,31 @@ # macos-version | ||
```js | ||
const macosVersion = require('macos-version'); | ||
import { | ||
macOSVersion, | ||
isMacOSVersion, | ||
isMacOSVersionGreaterThanOrEqualTo, | ||
assertMacOSVersion, | ||
assertMacOSVersionGreaterThanOrEqualTo, | ||
assertMacOS, | ||
isMacOS, | ||
} from 'macos-version'; | ||
macosVersion(); | ||
macOSVersion(); | ||
//=> '10.12.3' | ||
macosVersion.is('>10.10'); | ||
isMacOSVersion('>10.10'); | ||
//=> true | ||
macosVersion.isGreaterThanOrEqualTo('10.10'); | ||
isMacOSVersionGreaterThanOrEqualTo('10.10'); | ||
//=> true | ||
macosVersion.assert('>=10.12.5'); | ||
assertMacOSVersion('>=10.12.5'); | ||
//=> [Error: Requires macOS >=10.12.5] | ||
macosVersion.assertGreaterThanOrEqualTo('10.12.5'); | ||
assertMacOSVersionGreaterThanOrEqualTo('10.12.5'); | ||
//=> [Error: Requires macOS 10.12.5 or later] | ||
macosVersion.assertMacOS(); | ||
assertMacOS(); | ||
//=> [Error: Requires macOS] | ||
if (macosVersion.isMacOS) { | ||
if (isMacOS) { | ||
console.log('macOS'); | ||
@@ -42,19 +50,19 @@ } | ||
### macosVersion() | ||
### macOSVersion() | ||
Returns the macOS version or `undefined` if the platform is not macOS. | ||
### macosVersion.is(semverRange) | ||
### isMacOSVersion(semverRange) | ||
Returns a `boolean` of whether the specified [semver range](https://github.com/npm/node-semver#ranges) matches the macOS version. | ||
### macosVersion.isGreaterThanOrEqualTo(version) | ||
### isMacOSVersionGreaterThanOrEqualTo(version) | ||
Returns a `boolean` of whether the macOS version is greater than or equal to the specified version. | ||
### macosVersion.assert(semverRange) | ||
### assertMacOSVersion(semverRange) | ||
Throws an error if the specified [semver range](https://github.com/npm/node-semver#ranges) does not match the macOS version. | ||
### macosVersion.assertGreaterThanOrEqualTo(version) | ||
### assertMacOSVersionGreaterThanOrEqualTo(version) | ||
@@ -65,7 +73,7 @@ Throws an error if the macOS version is not greater than or equal to the specified version. | ||
### macosVersion.assertMacOS() | ||
### assertMacOS() | ||
Throws an error if the platform is not macOS. | ||
### macosVersion.isMacOS | ||
### isMacOS | ||
@@ -72,0 +80,0 @@ Type: `boolean` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
7679
85
Yes
142
+ Addedsemver@7.6.3(transitive)
- Removedsemver@5.7.2(transitive)
Updatedsemver@^7.3.5