@rsdoctor/sdk 1.2.2 → 1.2.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiled/cors/index.d.ts +56 -0
- package/compiled/cors/index.js +550 -0
- package/compiled/cors/license +22 -0
- package/compiled/cors/package.json +1 -0
- package/compiled/dayjs/index.d.ts +428 -0
- package/compiled/dayjs/index.js +57 -0
- package/compiled/dayjs/license +21 -0
- package/compiled/dayjs/package.json +1 -0
- package/compiled/fs-extra/index.d.ts +1064 -0
- package/compiled/fs-extra/index.js +2839 -0
- package/compiled/fs-extra/license +15 -0
- package/compiled/fs-extra/package.json +1 -0
- package/compiled/json-cycle/index.d.ts +1 -0
- package/compiled/json-cycle/index.js +218 -0
- package/compiled/json-cycle/license +22 -0
- package/compiled/json-cycle/package.json +1 -0
- package/dist/336.cjs +351 -0
- package/dist/795.js +357 -0
- package/dist/index.cjs +7068 -0
- package/dist/index.cjs.LICENSE.txt +111 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6952 -0
- package/dist/index.js.LICENSE.txt +111 -0
- package/dist/{type/sdk → sdk}/index.d.ts +0 -1
- package/dist/{type/sdk → sdk}/multiple/controller.d.ts +0 -1
- package/dist/{type/sdk → sdk}/multiple/index.d.ts +0 -1
- package/dist/{type/sdk → sdk}/multiple/primary.d.ts +1 -2
- package/dist/{type/sdk → sdk}/multiple/server.d.ts +0 -1
- package/dist/{type/sdk → sdk}/sdk/core.d.ts +1 -2
- package/dist/{type/sdk → sdk}/sdk/index.d.ts +1 -4
- package/dist/{type/sdk → sdk}/sdk/types.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/alerts.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/base.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/bundle-diff.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/data.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/fs.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/graph.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/index.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/loader.d.ts +0 -2
- package/dist/{type/sdk → sdk}/server/apis/plugin.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/project.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/renderer.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/apis/resolver.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/fakeServer.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/index.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/router.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/socket/api.d.ts +1 -2
- package/dist/{type/sdk → sdk}/server/socket/index.d.ts +0 -1
- package/dist/{type/sdk → sdk}/server/utils.d.ts +0 -1
- package/dist/{type/sdk → sdk}/utils/base.d.ts +0 -1
- package/dist/{type/sdk → sdk}/utils/constant.d.ts +0 -1
- package/dist/{type/sdk → sdk}/utils/index.d.ts +0 -1
- package/dist/{type/sdk → sdk}/utils/openBrowser.d.ts +0 -1
- package/dist/{type/sdk → sdk}/utils/upload.d.ts +0 -1
- package/package.json +32 -23
- package/dist/cjs/index.js +0 -60
- package/dist/cjs/sdk/index.js +0 -69
- package/dist/cjs/sdk/multiple/controller.js +0 -75
- package/dist/cjs/sdk/multiple/index.js +0 -69
- package/dist/cjs/sdk/multiple/primary.js +0 -107
- package/dist/cjs/sdk/multiple/server.js +0 -47
- package/dist/cjs/sdk/sdk/core.js +0 -220
- package/dist/cjs/sdk/sdk/index.js +0 -513
- package/dist/cjs/sdk/sdk/types.js +0 -18
- package/dist/cjs/sdk/server/apis/alerts.js +0 -63
- package/dist/cjs/sdk/server/apis/base.js +0 -55
- package/dist/cjs/sdk/server/apis/bundle-diff.js +0 -87
- package/dist/cjs/sdk/server/apis/data.js +0 -77
- package/dist/cjs/sdk/server/apis/fs.js +0 -61
- package/dist/cjs/sdk/server/apis/graph.js +0 -149
- package/dist/cjs/sdk/server/apis/index.js +0 -132
- package/dist/cjs/sdk/server/apis/loader.js +0 -162
- package/dist/cjs/sdk/server/apis/plugin.js +0 -72
- package/dist/cjs/sdk/server/apis/project.js +0 -92
- package/dist/cjs/sdk/server/apis/renderer.js +0 -64
- package/dist/cjs/sdk/server/apis/resolver.js +0 -71
- package/dist/cjs/sdk/server/fakeServer.js +0 -44
- package/dist/cjs/sdk/server/index.js +0 -283
- package/dist/cjs/sdk/server/router.js +0 -114
- package/dist/cjs/sdk/server/socket/api.js +0 -55
- package/dist/cjs/sdk/server/socket/index.js +0 -105
- package/dist/cjs/sdk/server/utils.js +0 -65
- package/dist/cjs/sdk/utils/base.js +0 -66
- package/dist/cjs/sdk/utils/constant.js +0 -47
- package/dist/cjs/sdk/utils/index.js +0 -78
- package/dist/cjs/sdk/utils/openBrowser.js +0 -102
- package/dist/cjs/sdk/utils/upload.js +0 -39
- package/dist/esm/index.mjs +0 -1
- package/dist/esm/sdk/index.mjs +0 -2
- package/dist/esm/sdk/multiple/controller.mjs +0 -41
- package/dist/esm/sdk/multiple/index.mjs +0 -2
- package/dist/esm/sdk/multiple/primary.mjs +0 -63
- package/dist/esm/sdk/multiple/server.mjs +0 -13
- package/dist/esm/sdk/sdk/core.mjs +0 -175
- package/dist/esm/sdk/sdk/index.mjs +0 -407
- package/dist/esm/sdk/sdk/types.mjs +0 -0
- package/dist/esm/sdk/server/apis/alerts.mjs +0 -29
- package/dist/esm/sdk/server/apis/base.mjs +0 -21
- package/dist/esm/sdk/server/apis/bundle-diff.mjs +0 -53
- package/dist/esm/sdk/server/apis/data.mjs +0 -43
- package/dist/esm/sdk/server/apis/fs.mjs +0 -27
- package/dist/esm/sdk/server/apis/graph.mjs +0 -115
- package/dist/esm/sdk/server/apis/index.mjs +0 -9
- package/dist/esm/sdk/server/apis/loader.mjs +0 -128
- package/dist/esm/sdk/server/apis/plugin.mjs +0 -38
- package/dist/esm/sdk/server/apis/project.mjs +0 -58
- package/dist/esm/sdk/server/apis/renderer.mjs +0 -30
- package/dist/esm/sdk/server/apis/resolver.mjs +0 -37
- package/dist/esm/sdk/server/fakeServer.mjs +0 -10
- package/dist/esm/sdk/server/index.mjs +0 -170
- package/dist/esm/sdk/server/router.mjs +0 -80
- package/dist/esm/sdk/server/socket/api.mjs +0 -21
- package/dist/esm/sdk/server/socket/index.mjs +0 -71
- package/dist/esm/sdk/server/utils.mjs +0 -18
- package/dist/esm/sdk/utils/base.mjs +0 -21
- package/dist/esm/sdk/utils/constant.mjs +0 -3
- package/dist/esm/sdk/utils/index.mjs +0 -3
- package/dist/esm/sdk/utils/openBrowser.mjs +0 -50
- package/dist/esm/sdk/utils/upload.mjs +0 -5
- package/dist/type/index.d.ts +0 -2
- package/dist/type/index.d.ts.map +0 -1
- package/dist/type/sdk/index.d.ts.map +0 -1
- package/dist/type/sdk/multiple/controller.d.ts.map +0 -1
- package/dist/type/sdk/multiple/index.d.ts.map +0 -1
- package/dist/type/sdk/multiple/primary.d.ts.map +0 -1
- package/dist/type/sdk/multiple/server.d.ts.map +0 -1
- package/dist/type/sdk/sdk/core.d.ts.map +0 -1
- package/dist/type/sdk/sdk/index.d.ts.map +0 -1
- package/dist/type/sdk/sdk/types.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/alerts.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/base.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/bundle-diff.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/data.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/fs.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/graph.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/index.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/loader.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/plugin.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/project.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/renderer.d.ts.map +0 -1
- package/dist/type/sdk/server/apis/resolver.d.ts.map +0 -1
- package/dist/type/sdk/server/fakeServer.d.ts.map +0 -1
- package/dist/type/sdk/server/index.d.ts.map +0 -1
- package/dist/type/sdk/server/router.d.ts.map +0 -1
- package/dist/type/sdk/server/socket/api.d.ts.map +0 -1
- package/dist/type/sdk/server/socket/index.d.ts.map +0 -1
- package/dist/type/sdk/server/utils.d.ts.map +0 -1
- package/dist/type/sdk/utils/base.d.ts.map +0 -1
- package/dist/type/sdk/utils/constant.d.ts.map +0 -1
- package/dist/type/sdk/utils/index.d.ts.map +0 -1
- package/dist/type/sdk/utils/openBrowser.d.ts.map +0 -1
- package/dist/type/sdk/utils/upload.d.ts.map +0 -1
package/dist/795.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import node_process from "node:process";
|
|
2
|
+
import { Buffer } from "node:buffer";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import promises, { constants } from "node:fs/promises";
|
|
5
|
+
import node_os from "node:os";
|
|
6
|
+
export const __webpack_id__ = "795";
|
|
7
|
+
export const __webpack_ids__ = [
|
|
8
|
+
"795"
|
|
9
|
+
];
|
|
10
|
+
export const __webpack_modules__ = {
|
|
11
|
+
"../../node_modules/.pnpm/open@10.2.0/node_modules/open/index.js": function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
12
|
+
let isDockerCached, cachedResult;
|
|
13
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
14
|
+
default: ()=>node_modules_open
|
|
15
|
+
});
|
|
16
|
+
var external_node_path_ = __webpack_require__("node:path"), external_node_util_ = __webpack_require__("node:util"), external_node_child_process_ = __webpack_require__("node:child_process"), external_node_fs_ = __webpack_require__("node:fs");
|
|
17
|
+
function isInsideContainer() {
|
|
18
|
+
return void 0 === cachedResult && (cachedResult = (()=>{
|
|
19
|
+
try {
|
|
20
|
+
return external_node_fs_.default.statSync('/run/.containerenv'), !0;
|
|
21
|
+
} catch {
|
|
22
|
+
return !1;
|
|
23
|
+
}
|
|
24
|
+
})() || (void 0 === isDockerCached && (isDockerCached = function() {
|
|
25
|
+
try {
|
|
26
|
+
return external_node_fs_.default.statSync('/.dockerenv'), !0;
|
|
27
|
+
} catch {
|
|
28
|
+
return !1;
|
|
29
|
+
}
|
|
30
|
+
}() || function() {
|
|
31
|
+
try {
|
|
32
|
+
return external_node_fs_.default.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');
|
|
33
|
+
} catch {
|
|
34
|
+
return !1;
|
|
35
|
+
}
|
|
36
|
+
}()), isDockerCached)), cachedResult;
|
|
37
|
+
}
|
|
38
|
+
let isWsl = ()=>{
|
|
39
|
+
if ('linux' !== node_process.platform) return !1;
|
|
40
|
+
if (node_os.release().toLowerCase().includes('microsoft')) return !isInsideContainer();
|
|
41
|
+
try {
|
|
42
|
+
return !!external_node_fs_.default.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft') && !isInsideContainer();
|
|
43
|
+
} catch {
|
|
44
|
+
return !1;
|
|
45
|
+
}
|
|
46
|
+
}, is_wsl = node_process.env.__IS_WSL_TEST__ ? isWsl : isWsl(), wslDrivesMountPoint = (()=>{
|
|
47
|
+
let mountPoint, defaultMountPoint = '/mnt/';
|
|
48
|
+
return async function() {
|
|
49
|
+
if (mountPoint) return mountPoint;
|
|
50
|
+
let configFilePath = '/etc/wsl.conf', isConfigFileExists = !1;
|
|
51
|
+
try {
|
|
52
|
+
await promises.access(configFilePath, constants.F_OK), isConfigFileExists = !0;
|
|
53
|
+
} catch {}
|
|
54
|
+
if (!isConfigFileExists) return defaultMountPoint;
|
|
55
|
+
let configContent = await promises.readFile(configFilePath, {
|
|
56
|
+
encoding: 'utf8'
|
|
57
|
+
}), configMountPoint = /(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(configContent);
|
|
58
|
+
return configMountPoint ? mountPoint = (mountPoint = configMountPoint.groups.mountPoint.trim()).endsWith('/') ? mountPoint : `${mountPoint}/` : defaultMountPoint;
|
|
59
|
+
};
|
|
60
|
+
})(), powerShellPathFromWsl = async ()=>{
|
|
61
|
+
let mountPoint = await wslDrivesMountPoint();
|
|
62
|
+
return `${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`;
|
|
63
|
+
}, powerShellPath = async ()=>is_wsl ? powerShellPathFromWsl() : `${node_process.env.SYSTEMROOT || node_process.env.windir || String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
|
|
64
|
+
function defineLazyProperty(object, propertyName, valueGetter) {
|
|
65
|
+
let define = (value)=>Object.defineProperty(object, propertyName, {
|
|
66
|
+
value,
|
|
67
|
+
enumerable: !0,
|
|
68
|
+
writable: !0
|
|
69
|
+
});
|
|
70
|
+
return Object.defineProperty(object, propertyName, {
|
|
71
|
+
configurable: !0,
|
|
72
|
+
enumerable: !0,
|
|
73
|
+
get () {
|
|
74
|
+
let result = valueGetter();
|
|
75
|
+
return define(result), result;
|
|
76
|
+
},
|
|
77
|
+
set (value) {
|
|
78
|
+
define(value);
|
|
79
|
+
}
|
|
80
|
+
}), object;
|
|
81
|
+
}
|
|
82
|
+
let execFileAsync = (0, external_node_util_.promisify)(external_node_child_process_.execFile);
|
|
83
|
+
async function defaultBrowserId() {
|
|
84
|
+
if ('darwin' !== node_process.platform) throw Error('macOS only');
|
|
85
|
+
let { stdout } = await execFileAsync('defaults', [
|
|
86
|
+
'read',
|
|
87
|
+
'com.apple.LaunchServices/com.apple.launchservices.secure',
|
|
88
|
+
'LSHandlers'
|
|
89
|
+
]), match = /LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(stdout);
|
|
90
|
+
return match?.groups.id ?? 'com.apple.Safari';
|
|
91
|
+
}
|
|
92
|
+
let run_applescript_execFileAsync = (0, external_node_util_.promisify)(external_node_child_process_.execFile);
|
|
93
|
+
async function runAppleScript(script, { humanReadableOutput = !0 } = {}) {
|
|
94
|
+
if ('darwin' !== node_process.platform) throw Error('macOS only');
|
|
95
|
+
let { stdout } = await run_applescript_execFileAsync("osascript", [
|
|
96
|
+
'-e',
|
|
97
|
+
script,
|
|
98
|
+
humanReadableOutput ? [] : [
|
|
99
|
+
'-ss'
|
|
100
|
+
]
|
|
101
|
+
]);
|
|
102
|
+
return stdout.trim();
|
|
103
|
+
}
|
|
104
|
+
async function bundleName(bundleId) {
|
|
105
|
+
return runAppleScript(`tell application "Finder" to set app_path to application file id "${bundleId}" as string\ntell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`);
|
|
106
|
+
}
|
|
107
|
+
let windows_execFileAsync = (0, external_node_util_.promisify)(external_node_child_process_.execFile), windowsBrowserProgIds = {
|
|
108
|
+
AppXq0fevzme2pys62n3e0fbqa7peapykr8v: {
|
|
109
|
+
name: 'Edge',
|
|
110
|
+
id: 'com.microsoft.edge.old'
|
|
111
|
+
},
|
|
112
|
+
MSEdgeDHTML: {
|
|
113
|
+
name: 'Edge',
|
|
114
|
+
id: 'com.microsoft.edge'
|
|
115
|
+
},
|
|
116
|
+
MSEdgeHTM: {
|
|
117
|
+
name: 'Edge',
|
|
118
|
+
id: 'com.microsoft.edge'
|
|
119
|
+
},
|
|
120
|
+
'IE.HTTP': {
|
|
121
|
+
name: 'Internet Explorer',
|
|
122
|
+
id: 'com.microsoft.ie'
|
|
123
|
+
},
|
|
124
|
+
FirefoxURL: {
|
|
125
|
+
name: 'Firefox',
|
|
126
|
+
id: 'org.mozilla.firefox'
|
|
127
|
+
},
|
|
128
|
+
ChromeHTML: {
|
|
129
|
+
name: 'Chrome',
|
|
130
|
+
id: 'com.google.chrome'
|
|
131
|
+
},
|
|
132
|
+
BraveHTML: {
|
|
133
|
+
name: 'Brave',
|
|
134
|
+
id: 'com.brave.Browser'
|
|
135
|
+
},
|
|
136
|
+
BraveBHTML: {
|
|
137
|
+
name: 'Brave Beta',
|
|
138
|
+
id: 'com.brave.Browser.beta'
|
|
139
|
+
},
|
|
140
|
+
BraveSSHTM: {
|
|
141
|
+
name: 'Brave Nightly',
|
|
142
|
+
id: 'com.brave.Browser.nightly'
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
class UnknownBrowserError extends Error {
|
|
146
|
+
}
|
|
147
|
+
async function defaultBrowser(_execFileAsync = windows_execFileAsync) {
|
|
148
|
+
let { stdout } = await _execFileAsync('reg', [
|
|
149
|
+
'QUERY',
|
|
150
|
+
' HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice',
|
|
151
|
+
'/v',
|
|
152
|
+
'ProgId'
|
|
153
|
+
]), match = /ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(stdout);
|
|
154
|
+
if (!match) throw new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout)}`);
|
|
155
|
+
let { id } = match.groups, browser = windowsBrowserProgIds[id];
|
|
156
|
+
if (!browser) throw new UnknownBrowserError(`Unknown browser ID: ${id}`);
|
|
157
|
+
return browser;
|
|
158
|
+
}
|
|
159
|
+
let default_browser_execFileAsync = (0, external_node_util_.promisify)(external_node_child_process_.execFile);
|
|
160
|
+
async function default_browser_defaultBrowser() {
|
|
161
|
+
if ('darwin' === node_process.platform) {
|
|
162
|
+
let id = await defaultBrowserId();
|
|
163
|
+
return {
|
|
164
|
+
name: await bundleName(id),
|
|
165
|
+
id
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
if ('linux' === node_process.platform) {
|
|
169
|
+
let { stdout } = await default_browser_execFileAsync('xdg-mime', [
|
|
170
|
+
'query',
|
|
171
|
+
'default',
|
|
172
|
+
'x-scheme-handler/http'
|
|
173
|
+
]), id = stdout.trim();
|
|
174
|
+
return {
|
|
175
|
+
name: id.replace(/.desktop$/, '').replace('-', ' ').toLowerCase().replaceAll(/(?:^|\s|-)\S/g, (x)=>x.toUpperCase()),
|
|
176
|
+
id
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
if ('win32' === node_process.platform) return defaultBrowser();
|
|
180
|
+
throw Error('Only macOS, Linux, and Windows are supported');
|
|
181
|
+
}
|
|
182
|
+
let execFile = (0, external_node_util_.promisify)(external_node_child_process_.default.execFile), open_dirname = external_node_path_.default.dirname(fileURLToPath(import.meta.url)), localXdgOpenPath = external_node_path_.default.join(open_dirname, 'xdg-open'), { platform, arch } = node_process;
|
|
183
|
+
async function getWindowsDefaultBrowserFromWsl() {
|
|
184
|
+
let powershellPath = await powerShellPath(), rawCommand = String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`, encodedCommand = Buffer.from(rawCommand, 'utf16le').toString('base64'), { stdout } = await execFile(powershellPath, [
|
|
185
|
+
'-NoProfile',
|
|
186
|
+
'-NonInteractive',
|
|
187
|
+
'-ExecutionPolicy',
|
|
188
|
+
'Bypass',
|
|
189
|
+
'-EncodedCommand',
|
|
190
|
+
encodedCommand
|
|
191
|
+
], {
|
|
192
|
+
encoding: 'utf8'
|
|
193
|
+
}), progId = stdout.trim(), browserMap = {
|
|
194
|
+
ChromeHTML: 'com.google.chrome',
|
|
195
|
+
BraveHTML: 'com.brave.Browser',
|
|
196
|
+
MSEdgeHTM: 'com.microsoft.edge',
|
|
197
|
+
FirefoxURL: 'org.mozilla.firefox'
|
|
198
|
+
};
|
|
199
|
+
return browserMap[progId] ? {
|
|
200
|
+
id: browserMap[progId]
|
|
201
|
+
} : {};
|
|
202
|
+
}
|
|
203
|
+
let pTryEach = async (array, mapper)=>{
|
|
204
|
+
let latestError;
|
|
205
|
+
for (let item of array)try {
|
|
206
|
+
return await mapper(item);
|
|
207
|
+
} catch (error) {
|
|
208
|
+
latestError = error;
|
|
209
|
+
}
|
|
210
|
+
throw latestError;
|
|
211
|
+
}, baseOpen = async (options)=>{
|
|
212
|
+
let command;
|
|
213
|
+
if (Array.isArray((options = {
|
|
214
|
+
wait: !1,
|
|
215
|
+
background: !1,
|
|
216
|
+
newInstance: !1,
|
|
217
|
+
allowNonzeroExitCode: !1,
|
|
218
|
+
...options
|
|
219
|
+
}).app)) return pTryEach(options.app, (singleApp)=>baseOpen({
|
|
220
|
+
...options,
|
|
221
|
+
app: singleApp
|
|
222
|
+
}));
|
|
223
|
+
let { name: app, arguments: appArguments = [] } = options.app ?? {};
|
|
224
|
+
if (appArguments = [
|
|
225
|
+
...appArguments
|
|
226
|
+
], Array.isArray(app)) return pTryEach(app, (appName)=>baseOpen({
|
|
227
|
+
...options,
|
|
228
|
+
app: {
|
|
229
|
+
name: appName,
|
|
230
|
+
arguments: appArguments
|
|
231
|
+
}
|
|
232
|
+
}));
|
|
233
|
+
if ('browser' === app || 'browserPrivate' === app) {
|
|
234
|
+
let ids = {
|
|
235
|
+
'com.google.chrome': 'chrome',
|
|
236
|
+
'google-chrome.desktop': 'chrome',
|
|
237
|
+
'com.brave.Browser': 'brave',
|
|
238
|
+
'org.mozilla.firefox': 'firefox',
|
|
239
|
+
'firefox.desktop': 'firefox',
|
|
240
|
+
'com.microsoft.msedge': 'edge',
|
|
241
|
+
'com.microsoft.edge': 'edge',
|
|
242
|
+
'com.microsoft.edgemac': 'edge',
|
|
243
|
+
'microsoft-edge.desktop': 'edge'
|
|
244
|
+
}, browser = is_wsl ? await getWindowsDefaultBrowserFromWsl() : await default_browser_defaultBrowser();
|
|
245
|
+
if (browser.id in ids) {
|
|
246
|
+
let browserName = ids[browser.id];
|
|
247
|
+
return 'browserPrivate' === app && appArguments.push({
|
|
248
|
+
chrome: '--incognito',
|
|
249
|
+
brave: '--incognito',
|
|
250
|
+
firefox: '--private-window',
|
|
251
|
+
edge: '--inPrivate'
|
|
252
|
+
}[browserName]), baseOpen({
|
|
253
|
+
...options,
|
|
254
|
+
app: {
|
|
255
|
+
name: apps[browserName],
|
|
256
|
+
arguments: appArguments
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
throw Error(`${browser.name} is not supported as a default browser`);
|
|
261
|
+
}
|
|
262
|
+
let cliArguments = [], childProcessOptions = {};
|
|
263
|
+
if ('darwin' === platform) command = 'open', options.wait && cliArguments.push('--wait-apps'), options.background && cliArguments.push('--background'), options.newInstance && cliArguments.push('--new'), app && cliArguments.push('-a', app);
|
|
264
|
+
else if ('win32' !== platform && (!is_wsl || isInsideContainer() || app)) {
|
|
265
|
+
if (app) command = app;
|
|
266
|
+
else {
|
|
267
|
+
let exeLocalXdgOpen = !1;
|
|
268
|
+
try {
|
|
269
|
+
await promises.access(localXdgOpenPath, constants.X_OK), exeLocalXdgOpen = !0;
|
|
270
|
+
} catch {}
|
|
271
|
+
command = node_process.versions.electron ?? ('android' === platform || !open_dirname || '/' === open_dirname || !exeLocalXdgOpen) ? 'xdg-open' : localXdgOpenPath;
|
|
272
|
+
}
|
|
273
|
+
appArguments.length > 0 && cliArguments.push(...appArguments), options.wait || (childProcessOptions.stdio = 'ignore', childProcessOptions.detached = !0);
|
|
274
|
+
} else {
|
|
275
|
+
command = await powerShellPath(), cliArguments.push('-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-EncodedCommand'), is_wsl || (childProcessOptions.windowsVerbatimArguments = !0);
|
|
276
|
+
let encodedArguments = [
|
|
277
|
+
'Start'
|
|
278
|
+
];
|
|
279
|
+
options.wait && encodedArguments.push('-Wait'), app ? (encodedArguments.push(`"\`"${app}\`""`), options.target && appArguments.push(options.target)) : options.target && encodedArguments.push(`"${options.target}"`), appArguments.length > 0 && encodedArguments.push('-ArgumentList', (appArguments = appArguments.map((argument)=>`"\`"${argument}\`""`)).join(',')), options.target = Buffer.from(encodedArguments.join(' '), 'utf16le').toString('base64');
|
|
280
|
+
}
|
|
281
|
+
'darwin' === platform && appArguments.length > 0 && cliArguments.push('--args', ...appArguments), options.target && cliArguments.push(options.target);
|
|
282
|
+
let subprocess = external_node_child_process_.default.spawn(command, cliArguments, childProcessOptions);
|
|
283
|
+
return options.wait ? new Promise((resolve, reject)=>{
|
|
284
|
+
subprocess.once('error', reject), subprocess.once('close', (exitCode)=>{
|
|
285
|
+
if (!options.allowNonzeroExitCode && exitCode > 0) return void reject(Error(`Exited with code ${exitCode}`));
|
|
286
|
+
resolve(subprocess);
|
|
287
|
+
});
|
|
288
|
+
}) : (subprocess.unref(), subprocess);
|
|
289
|
+
};
|
|
290
|
+
function detectArchBinary(binary) {
|
|
291
|
+
if ('string' == typeof binary || Array.isArray(binary)) return binary;
|
|
292
|
+
let { [arch]: archBinary } = binary;
|
|
293
|
+
if (!archBinary) throw Error(`${arch} is not supported`);
|
|
294
|
+
return archBinary;
|
|
295
|
+
}
|
|
296
|
+
function detectPlatformBinary({ [platform]: platformBinary }, { wsl }) {
|
|
297
|
+
if (wsl && is_wsl) return detectArchBinary(wsl);
|
|
298
|
+
if (!platformBinary) throw Error(`${platform} is not supported`);
|
|
299
|
+
return detectArchBinary(platformBinary);
|
|
300
|
+
}
|
|
301
|
+
let apps = {};
|
|
302
|
+
defineLazyProperty(apps, 'chrome', ()=>detectPlatformBinary({
|
|
303
|
+
darwin: 'google chrome',
|
|
304
|
+
win32: 'chrome',
|
|
305
|
+
linux: [
|
|
306
|
+
'google-chrome',
|
|
307
|
+
'google-chrome-stable',
|
|
308
|
+
'chromium'
|
|
309
|
+
]
|
|
310
|
+
}, {
|
|
311
|
+
wsl: {
|
|
312
|
+
ia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',
|
|
313
|
+
x64: [
|
|
314
|
+
'/mnt/c/Program Files/Google/Chrome/Application/chrome.exe',
|
|
315
|
+
'/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
|
|
316
|
+
]
|
|
317
|
+
}
|
|
318
|
+
})), defineLazyProperty(apps, 'brave', ()=>detectPlatformBinary({
|
|
319
|
+
darwin: 'brave browser',
|
|
320
|
+
win32: 'brave',
|
|
321
|
+
linux: [
|
|
322
|
+
'brave-browser',
|
|
323
|
+
'brave'
|
|
324
|
+
]
|
|
325
|
+
}, {
|
|
326
|
+
wsl: {
|
|
327
|
+
ia32: '/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe',
|
|
328
|
+
x64: [
|
|
329
|
+
'/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe',
|
|
330
|
+
'/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe'
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
})), defineLazyProperty(apps, 'firefox', ()=>detectPlatformBinary({
|
|
334
|
+
darwin: 'firefox',
|
|
335
|
+
win32: String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,
|
|
336
|
+
linux: 'firefox'
|
|
337
|
+
}, {
|
|
338
|
+
wsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe'
|
|
339
|
+
})), defineLazyProperty(apps, 'edge', ()=>detectPlatformBinary({
|
|
340
|
+
darwin: 'microsoft edge',
|
|
341
|
+
win32: 'msedge',
|
|
342
|
+
linux: [
|
|
343
|
+
'microsoft-edge',
|
|
344
|
+
'microsoft-edge-dev'
|
|
345
|
+
]
|
|
346
|
+
}, {
|
|
347
|
+
wsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
|
|
348
|
+
})), defineLazyProperty(apps, 'browser', ()=>'browser'), defineLazyProperty(apps, 'browserPrivate', ()=>'browserPrivate');
|
|
349
|
+
let node_modules_open = (target, options)=>{
|
|
350
|
+
if ('string' != typeof target) throw TypeError('Expected a `target`');
|
|
351
|
+
return baseOpen({
|
|
352
|
+
...options,
|
|
353
|
+
target
|
|
354
|
+
});
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
};
|