Update checked-in dependencies
This commit is contained in:
parent
4fad06f438
commit
40a500c743
4168 changed files with 298222 additions and 374905 deletions
272
node_modules/open/index.d.ts
generated
vendored
272
node_modules/open/index.d.ts
generated
vendored
|
|
@ -1,153 +1,157 @@
|
|||
import {ChildProcess} from 'child_process';
|
||||
import {type ChildProcess} from 'node:child_process';
|
||||
|
||||
declare namespace open {
|
||||
interface Options {
|
||||
/**
|
||||
Wait for the opened app to exit before fulfilling the promise. If `false` it's fulfilled immediately when opening the app.
|
||||
|
||||
Note that it waits for the app to exit, not just for the window to close.
|
||||
|
||||
On Windows, you have to explicitly specify an app for it to be able to wait.
|
||||
|
||||
@default false
|
||||
*/
|
||||
readonly wait?: boolean;
|
||||
|
||||
/**
|
||||
__macOS only__
|
||||
|
||||
Do not bring the app to the foreground.
|
||||
|
||||
@default false
|
||||
*/
|
||||
readonly background?: boolean;
|
||||
|
||||
/**
|
||||
__macOS only__
|
||||
|
||||
Open a new instance of the app even it's already running.
|
||||
|
||||
A new instance is always opened on other platforms.
|
||||
|
||||
@default false
|
||||
*/
|
||||
readonly newInstance?: boolean;
|
||||
|
||||
/**
|
||||
Specify the `name` of the app to open the `target` with, and optionally, app `arguments`. `app` can be an array of apps to try to open and `name` can be an array of app names to try. If each app fails, the last error will be thrown.
|
||||
|
||||
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is `google chrome` on macOS, `google-chrome` on Linux and `chrome` on Windows. If possible, use [`open.apps`](#openapps) which auto-detects the correct binary to use.
|
||||
|
||||
You may also pass in the app's full path. For example on WSL, this can be `/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe` for the Windows installation of Chrome.
|
||||
|
||||
The app `arguments` are app dependent. Check the app's documentation for what arguments it accepts.
|
||||
*/
|
||||
readonly app?: App | readonly App[];
|
||||
|
||||
/**
|
||||
Allow the opened app to exit with nonzero exit code when the `wait` option is `true`.
|
||||
|
||||
We do not recommend setting this option. The convention for success is exit code zero.
|
||||
|
||||
@default false
|
||||
*/
|
||||
readonly allowNonzeroExitCode?: boolean;
|
||||
}
|
||||
|
||||
interface OpenAppOptions extends Omit<Options, 'app'> {
|
||||
/**
|
||||
Arguments passed to the app.
|
||||
|
||||
These arguments are app dependent. Check the app's documentation for what arguments it accepts.
|
||||
*/
|
||||
readonly arguments?: readonly string[];
|
||||
}
|
||||
|
||||
type AppName =
|
||||
| 'chrome'
|
||||
| 'firefox'
|
||||
| 'edge';
|
||||
|
||||
type App = {
|
||||
name: string | readonly string[];
|
||||
arguments?: readonly string[];
|
||||
};
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-redeclare
|
||||
declare const open: {
|
||||
export type Options = {
|
||||
/**
|
||||
Open stuff like URLs, files, executables. Cross-platform.
|
||||
Wait for the opened app to exit before fulfilling the promise. If `false` it's fulfilled immediately when opening the app.
|
||||
|
||||
Uses the command `open` on macOS, `start` on Windows and `xdg-open` on other platforms.
|
||||
Note that it waits for the app to exit, not just for the window to close.
|
||||
|
||||
There is a caveat for [double-quotes on Windows](https://github.com/sindresorhus/open#double-quotes-on-windows) where all double-quotes are stripped from the `target`.
|
||||
On Windows, you have to explicitly specify an app for it to be able to wait.
|
||||
|
||||
@param target - The thing you want to open. Can be a URL, file, or executable. Opens in the default app for the file type. For example, URLs open in your default browser.
|
||||
@returns The [spawned child process](https://nodejs.org/api/child_process.html#child_process_class_childprocess). You would normally not need to use this for anything, but it can be useful if you'd like to attach custom event listeners or perform other operations directly on the spawned process.
|
||||
|
||||
@example
|
||||
```
|
||||
import open = require('open');
|
||||
|
||||
// Opens the image in the default image viewer
|
||||
await open('unicorn.png', {wait: true});
|
||||
console.log('The image viewer app closed');
|
||||
|
||||
// Opens the url in the default browser
|
||||
await open('https://sindresorhus.com');
|
||||
|
||||
// Opens the URL in a specified browser.
|
||||
await open('https://sindresorhus.com', {app: {name: 'firefox'}});
|
||||
|
||||
// Specify app arguments.
|
||||
await open('https://sindresorhus.com', {app: {name: 'google chrome', arguments: ['--incognito']}});
|
||||
```
|
||||
@default false
|
||||
*/
|
||||
(
|
||||
target: string,
|
||||
options?: open.Options
|
||||
): Promise<ChildProcess>;
|
||||
readonly wait?: boolean;
|
||||
|
||||
/**
|
||||
An object containing auto-detected binary names for common apps. Useful to work around cross-platform differences.
|
||||
__macOS only__
|
||||
|
||||
@example
|
||||
```
|
||||
import open = require('open');
|
||||
Do not bring the app to the foreground.
|
||||
|
||||
await open('https://google.com', {
|
||||
app: {
|
||||
name: open.apps.chrome
|
||||
}
|
||||
});
|
||||
```
|
||||
@default false
|
||||
*/
|
||||
apps: Record<open.AppName, string | readonly string[]>;
|
||||
readonly background?: boolean;
|
||||
|
||||
/**
|
||||
Open an app. Cross-platform.
|
||||
__macOS only__
|
||||
|
||||
Uses the command `open` on macOS, `start` on Windows and `xdg-open` on other platforms.
|
||||
Open a new instance of the app even it's already running.
|
||||
|
||||
@param name - The app you want to open. Can be either builtin supported `open.apps` names or other name supported in platform.
|
||||
@returns The [spawned child process](https://nodejs.org/api/child_process.html#child_process_class_childprocess). You would normally not need to use this for anything, but it can be useful if you'd like to attach custom event listeners or perform other operations directly on the spawned process.
|
||||
A new instance is always opened on other platforms.
|
||||
|
||||
@example
|
||||
```
|
||||
const {apps, openApp} = require('open');
|
||||
|
||||
// Open Firefox
|
||||
await openApp(apps.firefox);
|
||||
|
||||
// Open Chrome incognito mode
|
||||
await openApp(apps.chrome, {arguments: ['--incognito']});
|
||||
|
||||
// Open Xcode
|
||||
await openApp('xcode');
|
||||
```
|
||||
@default false
|
||||
*/
|
||||
openApp: (name: open.App['name'], options?: open.OpenAppOptions) => Promise<ChildProcess>;
|
||||
readonly newInstance?: boolean;
|
||||
|
||||
/**
|
||||
Specify the `name` of the app to open the `target` with, and optionally, app `arguments`. `app` can be an array of apps to try to open and `name` can be an array of app names to try. If each app fails, the last error will be thrown.
|
||||
|
||||
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is `google chrome` on macOS, `google-chrome` on Linux and `chrome` on Windows. If possible, use `apps` which auto-detects the correct binary to use.
|
||||
|
||||
You may also pass in the app's full path. For example on WSL, this can be `/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe` for the Windows installation of Chrome.
|
||||
|
||||
The app `arguments` are app dependent. Check the app's documentation for what arguments it accepts.
|
||||
*/
|
||||
readonly app?: App | readonly App[];
|
||||
|
||||
/**
|
||||
Allow the opened app to exit with nonzero exit code when the `wait` option is `true`.
|
||||
|
||||
We do not recommend setting this option. The convention for success is exit code zero.
|
||||
|
||||
@default false
|
||||
*/
|
||||
readonly allowNonzeroExitCode?: boolean;
|
||||
};
|
||||
|
||||
export = open;
|
||||
export type OpenAppOptions = {
|
||||
/**
|
||||
Arguments passed to the app.
|
||||
|
||||
These arguments are app dependent. Check the app's documentation for what arguments it accepts.
|
||||
*/
|
||||
readonly arguments?: readonly string[];
|
||||
} & Omit<Options, 'app'>;
|
||||
|
||||
export type AppName =
|
||||
| 'chrome'
|
||||
| 'firefox'
|
||||
| 'edge'
|
||||
| 'browser'
|
||||
| 'browserPrivate';
|
||||
|
||||
export type App = {
|
||||
name: string | readonly string[];
|
||||
arguments?: readonly string[];
|
||||
};
|
||||
|
||||
/**
|
||||
An object containing auto-detected binary names for common apps. Useful to work around cross-platform differences.
|
||||
|
||||
@example
|
||||
```
|
||||
import open, {apps} from 'open';
|
||||
|
||||
await open('https://google.com', {
|
||||
app: {
|
||||
name: apps.chrome
|
||||
}
|
||||
});
|
||||
```
|
||||
*/
|
||||
export const apps: Record<AppName, string | readonly string[]>;
|
||||
|
||||
/**
|
||||
Open stuff like URLs, files, executables. Cross-platform.
|
||||
|
||||
Uses the command `open` on macOS, `start` on Windows and `xdg-open` on other platforms.
|
||||
|
||||
There is a caveat for [double-quotes on Windows](https://github.com/sindresorhus/open#double-quotes-on-windows) where all double-quotes are stripped from the `target`.
|
||||
|
||||
@param target - The thing you want to open. Can be a URL, file, or executable. Opens in the default app for the file type. For example, URLs open in your default browser.
|
||||
@returns The [spawned child process](https://nodejs.org/api/child_process.html#child_process_class_childprocess). You would normally not need to use this for anything, but it can be useful if you'd like to attach custom event listeners or perform other operations directly on the spawned process.
|
||||
|
||||
@example
|
||||
```
|
||||
import open, {apps} from 'open';
|
||||
|
||||
// Opens the image in the default image viewer.
|
||||
await open('unicorn.png', {wait: true});
|
||||
console.log('The image viewer app quit');
|
||||
|
||||
// Opens the URL in the default browser.
|
||||
await open('https://sindresorhus.com');
|
||||
|
||||
// Opens the URL in a specified browser.
|
||||
await open('https://sindresorhus.com', {app: {name: 'firefox'}});
|
||||
|
||||
// Specify app arguments.
|
||||
await open('https://sindresorhus.com', {app: {name: 'google chrome', arguments: ['--incognito']}});
|
||||
|
||||
// Opens the URL in the default browser in incognito mode.
|
||||
await open('https://sindresorhus.com', {app: {name: apps.browserPrivate}});
|
||||
```
|
||||
*/
|
||||
export default function open(
|
||||
target: string,
|
||||
options?: Options
|
||||
): Promise<ChildProcess>;
|
||||
|
||||
/**
|
||||
Open an app. Cross-platform.
|
||||
|
||||
Uses the command `open` on macOS, `start` on Windows and `xdg-open` on other platforms.
|
||||
|
||||
@param name - The app you want to open. Can be either builtin supported `apps` names or other name supported in platform.
|
||||
@returns The [spawned child process](https://nodejs.org/api/child_process.html#child_process_class_childprocess). You would normally not need to use this for anything, but it can be useful if you'd like to attach custom event listeners or perform other operations directly on the spawned process.
|
||||
|
||||
@example
|
||||
```
|
||||
import open, {openApp, apps} from 'open';
|
||||
|
||||
// Open Firefox.
|
||||
await openApp(apps.firefox);
|
||||
|
||||
// Open Chrome in incognito mode.
|
||||
await openApp(apps.chrome, {arguments: ['--incognito']});
|
||||
|
||||
// Open default browser.
|
||||
await openApp(apps.browser);
|
||||
|
||||
// Open default browser in incognito mode.
|
||||
await openApp(apps.browserPrivate);
|
||||
|
||||
// Open Xcode.
|
||||
await openApp('xcode');
|
||||
```
|
||||
*/
|
||||
export function openApp(name: App['name'], options?: OpenAppOptions): Promise<ChildProcess>;
|
||||
|
|
|
|||
124
node_modules/open/index.js
generated
vendored
124
node_modules/open/index.js
generated
vendored
|
|
@ -1,11 +1,17 @@
|
|||
const path = require('path');
|
||||
const childProcess = require('child_process');
|
||||
const {promises: fs, constants: fsConstants} = require('fs');
|
||||
const isWsl = require('is-wsl');
|
||||
const isDocker = require('is-docker');
|
||||
const defineLazyProperty = require('define-lazy-prop');
|
||||
import process from 'node:process';
|
||||
import {Buffer} from 'node:buffer';
|
||||
import path from 'node:path';
|
||||
import {fileURLToPath} from 'node:url';
|
||||
import childProcess from 'node:child_process';
|
||||
import fs from 'node:fs/promises';
|
||||
import {constants as fsConstants} from 'node:fs'; // TODO: Move this to the above import when targeting Node.js 18.
|
||||
import isWsl from 'is-wsl';
|
||||
import defineLazyProperty from 'define-lazy-prop';
|
||||
import defaultBrowser from 'default-browser';
|
||||
import isInsideContainer from 'is-inside-container';
|
||||
|
||||
// Path to included `xdg-open`.
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const localXdgOpenPath = path.join(__dirname, 'xdg-open');
|
||||
|
||||
const {platform, arch} = process;
|
||||
|
|
@ -75,17 +81,17 @@ const baseOpen = async options => {
|
|||
background: false,
|
||||
newInstance: false,
|
||||
allowNonzeroExitCode: false,
|
||||
...options
|
||||
...options,
|
||||
};
|
||||
|
||||
if (Array.isArray(options.app)) {
|
||||
return pTryEach(options.app, singleApp => baseOpen({
|
||||
...options,
|
||||
app: singleApp
|
||||
app: singleApp,
|
||||
}));
|
||||
}
|
||||
|
||||
let {name: app, arguments: appArguments = []} = options.app || {};
|
||||
let {name: app, arguments: appArguments = []} = options.app ?? {};
|
||||
appArguments = [...appArguments];
|
||||
|
||||
if (Array.isArray(app)) {
|
||||
|
|
@ -93,11 +99,50 @@ const baseOpen = async options => {
|
|||
...options,
|
||||
app: {
|
||||
name: appName,
|
||||
arguments: appArguments
|
||||
}
|
||||
arguments: appArguments,
|
||||
},
|
||||
}));
|
||||
}
|
||||
|
||||
if (app === 'browser' || app === 'browserPrivate') {
|
||||
// IDs from default-browser for macOS and windows are the same
|
||||
const ids = {
|
||||
'com.google.chrome': 'chrome',
|
||||
'google-chrome.desktop': 'chrome',
|
||||
'org.mozilla.firefox': 'firefox',
|
||||
'firefox.desktop': 'firefox',
|
||||
'com.microsoft.msedge': 'edge',
|
||||
'com.microsoft.edge': 'edge',
|
||||
'microsoft-edge.desktop': 'edge',
|
||||
};
|
||||
|
||||
// Incognito flags for each browser in `apps`.
|
||||
const flags = {
|
||||
chrome: '--incognito',
|
||||
firefox: '--private-window',
|
||||
edge: '--inPrivate',
|
||||
};
|
||||
|
||||
const browser = await defaultBrowser();
|
||||
if (browser.id in ids) {
|
||||
const browserName = ids[browser.id];
|
||||
|
||||
if (app === 'browserPrivate') {
|
||||
appArguments.push(flags[browserName]);
|
||||
}
|
||||
|
||||
return baseOpen({
|
||||
...options,
|
||||
app: {
|
||||
name: apps[browserName],
|
||||
arguments: appArguments,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
throw new Error(`${browser.name} is not supported as a default browser`);
|
||||
}
|
||||
|
||||
let command;
|
||||
const cliArguments = [];
|
||||
const childProcessOptions = {};
|
||||
|
|
@ -120,19 +165,19 @@ const baseOpen = async options => {
|
|||
if (app) {
|
||||
cliArguments.push('-a', app);
|
||||
}
|
||||
} else if (platform === 'win32' || (isWsl && !isDocker())) {
|
||||
} else if (platform === 'win32' || (isWsl && !isInsideContainer() && !app)) {
|
||||
const mountPoint = await getWslDrivesMountPoint();
|
||||
|
||||
command = isWsl ?
|
||||
`${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe` :
|
||||
`${process.env.SYSTEMROOT}\\System32\\WindowsPowerShell\\v1.0\\powershell`;
|
||||
command = isWsl
|
||||
? `${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`
|
||||
: `${process.env.SYSTEMROOT}\\System32\\WindowsPowerShell\\v1.0\\powershell`;
|
||||
|
||||
cliArguments.push(
|
||||
'-NoProfile',
|
||||
'-NonInteractive',
|
||||
'–ExecutionPolicy',
|
||||
'-ExecutionPolicy',
|
||||
'Bypass',
|
||||
'-EncodedCommand'
|
||||
'-EncodedCommand',
|
||||
);
|
||||
|
||||
if (!isWsl) {
|
||||
|
|
@ -148,9 +193,9 @@ const baseOpen = async options => {
|
|||
if (app) {
|
||||
// Double quote with double quotes to ensure the inner quotes are passed through.
|
||||
// Inner quotes are delimited for PowerShell interpretation with backticks.
|
||||
encodedArguments.push(`"\`"${app}\`""`, '-ArgumentList');
|
||||
encodedArguments.push(`"\`"${app}\`""`);
|
||||
if (options.target) {
|
||||
appArguments.unshift(options.target);
|
||||
appArguments.push(options.target);
|
||||
}
|
||||
} else if (options.target) {
|
||||
encodedArguments.push(`"${options.target}"`);
|
||||
|
|
@ -158,7 +203,7 @@ const baseOpen = async options => {
|
|||
|
||||
if (appArguments.length > 0) {
|
||||
appArguments = appArguments.map(arg => `"\`"${arg}\`""`);
|
||||
encodedArguments.push(appArguments.join(','));
|
||||
encodedArguments.push('-ArgumentList', appArguments.join(','));
|
||||
}
|
||||
|
||||
// Using Base64-encoded command, accepted by PowerShell, to allow special characters.
|
||||
|
|
@ -177,8 +222,8 @@ const baseOpen = async options => {
|
|||
exeLocalXdgOpen = true;
|
||||
} catch {}
|
||||
|
||||
const useSystemXdgOpen = process.versions.electron ||
|
||||
platform === 'android' || isBundled || !exeLocalXdgOpen;
|
||||
const useSystemXdgOpen = process.versions.electron
|
||||
?? (platform === 'android' || isBundled || !exeLocalXdgOpen);
|
||||
command = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;
|
||||
}
|
||||
|
||||
|
|
@ -209,7 +254,7 @@ const baseOpen = async options => {
|
|||
subprocess.once('error', reject);
|
||||
|
||||
subprocess.once('close', exitCode => {
|
||||
if (options.allowNonzeroExitCode && exitCode > 0) {
|
||||
if (!options.allowNonzeroExitCode && exitCode > 0) {
|
||||
reject(new Error(`Exited with code ${exitCode}`));
|
||||
return;
|
||||
}
|
||||
|
|
@ -231,16 +276,16 @@ const open = (target, options) => {
|
|||
|
||||
return baseOpen({
|
||||
...options,
|
||||
target
|
||||
target,
|
||||
});
|
||||
};
|
||||
|
||||
const openApp = (name, options) => {
|
||||
export const openApp = (name, options) => {
|
||||
if (typeof name !== 'string') {
|
||||
throw new TypeError('Expected a `name`');
|
||||
}
|
||||
|
||||
const {arguments: appArguments = []} = options || {};
|
||||
const {arguments: appArguments = []} = options ?? {};
|
||||
if (appArguments !== undefined && appArguments !== null && !Array.isArray(appArguments)) {
|
||||
throw new TypeError('Expected `appArguments` as Array type');
|
||||
}
|
||||
|
|
@ -249,8 +294,8 @@ const openApp = (name, options) => {
|
|||
...options,
|
||||
app: {
|
||||
name,
|
||||
arguments: appArguments
|
||||
}
|
||||
arguments: appArguments,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
|
|
@ -280,36 +325,37 @@ function detectPlatformBinary({[platform]: platformBinary}, {wsl}) {
|
|||
return detectArchBinary(platformBinary);
|
||||
}
|
||||
|
||||
const apps = {};
|
||||
export const apps = {};
|
||||
|
||||
defineLazyProperty(apps, 'chrome', () => detectPlatformBinary({
|
||||
darwin: 'google chrome',
|
||||
win32: 'chrome',
|
||||
linux: ['google-chrome', 'google-chrome-stable', 'chromium']
|
||||
linux: ['google-chrome', 'google-chrome-stable', 'chromium'],
|
||||
}, {
|
||||
wsl: {
|
||||
ia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',
|
||||
x64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe']
|
||||
}
|
||||
x64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'],
|
||||
},
|
||||
}));
|
||||
|
||||
defineLazyProperty(apps, 'firefox', () => detectPlatformBinary({
|
||||
darwin: 'firefox',
|
||||
win32: 'C:\\Program Files\\Mozilla Firefox\\firefox.exe',
|
||||
linux: 'firefox'
|
||||
linux: 'firefox',
|
||||
}, {
|
||||
wsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe'
|
||||
wsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe',
|
||||
}));
|
||||
|
||||
defineLazyProperty(apps, 'edge', () => detectPlatformBinary({
|
||||
darwin: 'microsoft edge',
|
||||
win32: 'msedge',
|
||||
linux: ['microsoft-edge', 'microsoft-edge-dev']
|
||||
linux: ['microsoft-edge', 'microsoft-edge-dev'],
|
||||
}, {
|
||||
wsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
|
||||
wsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',
|
||||
}));
|
||||
|
||||
open.apps = apps;
|
||||
open.openApp = openApp;
|
||||
defineLazyProperty(apps, 'browser', () => 'browser');
|
||||
|
||||
module.exports = open;
|
||||
defineLazyProperty(apps, 'browserPrivate', () => 'browserPrivate');
|
||||
|
||||
export default open;
|
||||
|
|
|
|||
22
node_modules/open/package.json
generated
vendored
22
node_modules/open/package.json
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "open",
|
||||
"version": "8.4.0",
|
||||
"version": "9.1.0",
|
||||
"description": "Open stuff like URLs, files, executables. Cross-platform.",
|
||||
"license": "MIT",
|
||||
"repository": "sindresorhus/open",
|
||||
|
|
@ -10,8 +10,13 @@
|
|||
"email": "sindresorhus@gmail.com",
|
||||
"url": "https://sindresorhus.com"
|
||||
},
|
||||
"type": "module",
|
||||
"exports": {
|
||||
"types": "./index.d.ts",
|
||||
"default": "./index.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
"node": ">=14.16"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "xo && tsd"
|
||||
|
|
@ -48,14 +53,15 @@
|
|||
"file"
|
||||
],
|
||||
"dependencies": {
|
||||
"define-lazy-prop": "^2.0.0",
|
||||
"is-docker": "^2.1.1",
|
||||
"default-browser": "^4.0.0",
|
||||
"define-lazy-prop": "^3.0.0",
|
||||
"is-inside-container": "^1.0.0",
|
||||
"is-wsl": "^2.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^15.0.0",
|
||||
"ava": "^3.15.0",
|
||||
"tsd": "^0.14.0",
|
||||
"xo": "^0.39.1"
|
||||
"@types/node": "^18.15.10",
|
||||
"ava": "^5.2.0",
|
||||
"tsd": "^0.28.0",
|
||||
"xo": "^0.53.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
85
node_modules/open/readme.md
generated
vendored
85
node_modules/open/readme.md
generated
vendored
|
|
@ -14,19 +14,21 @@ This package does not make any security guarantees. If you pass in untrusted inp
|
|||
- Supports app arguments.
|
||||
- Safer as it uses `spawn` instead of `exec`.
|
||||
- Fixes most of the original `node-open` issues.
|
||||
- Includes the latest [`xdg-open` script](https://cgit.freedesktop.org/xdg/xdg-utils/commit/?id=c55122295c2a480fa721a9614f0e2d42b2949c18) for Linux.
|
||||
- Includes the latest [`xdg-open` script](https://gitlab.freedesktop.org/xdg/xdg-utils/-/blob/master/scripts/xdg-open.in) for Linux.
|
||||
- Supports WSL paths to Windows apps.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
npm install open
|
||||
```
|
||||
$ npm install open
|
||||
```
|
||||
|
||||
**Warning:** This package is native [ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) and no longer provides a CommonJS export. If your project uses CommonJS, you will have to [convert to ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) or use the [dynamic `import()`](https://v8.dev/features/dynamic-import) function. Please don't open issues for questions regarding CommonJS / ESM.
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
const open = require('open');
|
||||
import open, {openApp, apps} from 'open';
|
||||
|
||||
// Opens the image in the default image viewer and waits for the opened app to quit.
|
||||
await open('unicorn.png', {wait: true});
|
||||
|
|
@ -41,11 +43,14 @@ await open('https://sindresorhus.com', {app: {name: 'firefox'}});
|
|||
// Specify app arguments.
|
||||
await open('https://sindresorhus.com', {app: {name: 'google chrome', arguments: ['--incognito']}});
|
||||
|
||||
// Open an app
|
||||
await open.openApp('xcode');
|
||||
// Opens the URL in the default browser in incognito mode.
|
||||
await open('https://sindresorhus.com', {app: {name: apps.browserPrivate}});
|
||||
|
||||
// Open an app with arguments
|
||||
await open.openApp(open.apps.chrome, {arguments: ['--incognito']});
|
||||
// Open an app.
|
||||
await openApp('xcode');
|
||||
|
||||
// Open an app with arguments.
|
||||
await openApp(apps.chrome, {arguments: ['--incognito']});
|
||||
```
|
||||
|
||||
## API
|
||||
|
|
@ -101,7 +106,7 @@ Type: `{name: string | string[], arguments?: string[]} | Array<{name: string | s
|
|||
|
||||
Specify the `name` of the app to open the `target` with, and optionally, app `arguments`. `app` can be an array of apps to try to open and `name` can be an array of app names to try. If each app fails, the last error will be thrown.
|
||||
|
||||
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is `google chrome` on macOS, `google-chrome` on Linux and `chrome` on Windows. If possible, use [`open.apps`](#openapps) which auto-detects the correct binary to use.
|
||||
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is `google chrome` on macOS, `google-chrome` on Linux and `chrome` on Windows. If possible, use [`apps`](#apps) which auto-detects the correct binary to use.
|
||||
|
||||
You may also pass in the app's full path. For example on WSL, this can be `/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe` for the Windows installation of Chrome.
|
||||
|
||||
|
|
@ -116,27 +121,7 @@ Allow the opened app to exit with nonzero exit code when the `wait` option is `t
|
|||
|
||||
We do not recommend setting this option. The convention for success is exit code zero.
|
||||
|
||||
### open.apps
|
||||
|
||||
An object containing auto-detected binary names for common apps. Useful to work around [cross-platform differences](#app).
|
||||
|
||||
```js
|
||||
const open = require('open');
|
||||
|
||||
await open('https://google.com', {
|
||||
app: {
|
||||
name: open.apps.chrome
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
#### Supported apps
|
||||
|
||||
- [`chrome`](https://www.google.com/chrome) - Web browser
|
||||
- [`firefox`](https://www.mozilla.org/firefox) - Web browser
|
||||
- [`edge`](https://www.microsoft.com/edge) - Web browser
|
||||
|
||||
### open.openApp(name, options?)
|
||||
### openApp(name, options?)
|
||||
|
||||
Open an app.
|
||||
|
||||
|
|
@ -146,7 +131,7 @@ Returns a promise for the [spawned child process](https://nodejs.org/api/child_p
|
|||
|
||||
Type: `string`
|
||||
|
||||
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is `google chrome` on macOS, `google-chrome` on Linux and `chrome` on Windows. If possible, use [`open.apps`](#openapps) which auto-detects the correct binary to use.
|
||||
The app name is platform dependent. Don't hard code it in reusable modules. For example, Chrome is `google chrome` on macOS, `google-chrome` on Linux and `chrome` on Windows. If possible, use [`apps`](#apps) which auto-detects the correct binary to use.
|
||||
|
||||
You may also pass in the app's full path. For example on WSL, this can be `/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe` for the Windows installation of Chrome.
|
||||
|
||||
|
|
@ -165,19 +150,33 @@ Arguments passed to the app.
|
|||
|
||||
These arguments are app dependent. Check the app's documentation for what arguments it accepts.
|
||||
|
||||
### apps
|
||||
|
||||
An object containing auto-detected binary names for common apps. Useful to work around [cross-platform differences](#app).
|
||||
|
||||
```js
|
||||
import open, {apps} from 'open';
|
||||
|
||||
await open('https://google.com', {
|
||||
app: {
|
||||
name: apps.chrome
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
`browser` and `browserPrivate` can also be used to access the user's default browser through [`default-browser`](https://github.com/sindresorhus/default-browser).
|
||||
|
||||
#### Supported apps
|
||||
|
||||
- [`chrome`](https://www.google.com/chrome) - Web browser
|
||||
- [`firefox`](https://www.mozilla.org/firefox) - Web browser
|
||||
- [`edge`](https://www.microsoft.com/edge) - Web browser
|
||||
- `browser` - Default web browser
|
||||
- `browserPrivate` - Default web browser in incognito mode
|
||||
|
||||
`browser` and `browserPrivate` only supports `chrome`, `firefox`, and `edge`.
|
||||
|
||||
## Related
|
||||
|
||||
- [open-cli](https://github.com/sindresorhus/open-cli) - CLI for this module
|
||||
- [open-editor](https://github.com/sindresorhus/open-editor) - Open files in your editor at a specific line and column
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<b>
|
||||
<a href="https://tidelift.com/subscription/pkg/npm-opn?utm_source=npm-opn&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
|
||||
</b>
|
||||
<br>
|
||||
<sub>
|
||||
Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
|
||||
</sub>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue