@expo/osascript 2.5.2-canary-20260506-03817f5 → 2.6.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/build/index.d.ts +2 -1
- package/build/index.js +21 -14
- package/build/index.js.map +1 -1
- package/package.json +4 -4
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SpawnOptions, SpawnResult } from '@expo/spawn-async';
|
|
2
|
+
declare function escapeString(value: string): string;
|
|
2
3
|
declare function osascriptSpawnAsync(script: string | string[], opts?: SpawnOptions): Promise<SpawnResult>;
|
|
3
4
|
declare function isAppRunningAsync(appName: string): Promise<boolean>;
|
|
4
5
|
declare function safeIdOfAppAsync(appName: string): Promise<string | null>;
|
|
@@ -13,4 +14,4 @@ declare function openTerminalToSpecificFolderAsync(dir: string, inTab?: boolean)
|
|
|
13
14
|
declare function openFolderInTerminalAppAsync(dir: string, inTab?: boolean): Promise<SpawnResult>;
|
|
14
15
|
/** @deprecated */
|
|
15
16
|
declare function osascriptExecAsync(script: string | string[], opts?: SpawnOptions): Promise<string>;
|
|
16
|
-
export { chooseAppAsync, chooseEditorAppAsync, chooseTerminalAppAsync, osascriptExecAsync as execAsync, isAppRunningAsync, openFinderToFolderAsync, openFolderInTerminalAppAsync, openInAppAsync, openInEditorAsync, openItermToSpecificFolderAsync, openTerminalToSpecificFolderAsync, safeIdOfAppAsync, osascriptSpawnAsync as spawnAsync, };
|
|
17
|
+
export { chooseAppAsync, chooseEditorAppAsync, chooseTerminalAppAsync, escapeString, osascriptExecAsync as execAsync, isAppRunningAsync, openFinderToFolderAsync, openFolderInTerminalAppAsync, openInAppAsync, openInEditorAsync, openItermToSpecificFolderAsync, openTerminalToSpecificFolderAsync, safeIdOfAppAsync, osascriptSpawnAsync as spawnAsync, };
|
package/build/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.chooseAppAsync = chooseAppAsync;
|
|
7
7
|
exports.chooseEditorAppAsync = chooseEditorAppAsync;
|
|
8
8
|
exports.chooseTerminalAppAsync = chooseTerminalAppAsync;
|
|
9
|
+
exports.escapeString = escapeString;
|
|
9
10
|
exports.execAsync = osascriptExecAsync;
|
|
10
11
|
exports.isAppRunningAsync = isAppRunningAsync;
|
|
11
12
|
exports.openFinderToFolderAsync = openFinderToFolderAsync;
|
|
@@ -18,7 +19,17 @@ exports.safeIdOfAppAsync = safeIdOfAppAsync;
|
|
|
18
19
|
exports.spawnAsync = osascriptSpawnAsync;
|
|
19
20
|
const spawn_async_1 = __importDefault(require("@expo/spawn-async"));
|
|
20
21
|
const path_1 = __importDefault(require("path"));
|
|
21
|
-
|
|
22
|
+
function escapeString(value) {
|
|
23
|
+
return value
|
|
24
|
+
.replace(/\\/g, '\\\\')
|
|
25
|
+
.replace(/"/g, '\\"')
|
|
26
|
+
.replace(/\r/g, '\\r')
|
|
27
|
+
.replace(/\n/g, '\\n')
|
|
28
|
+
.replace(/\t/g, '\\t');
|
|
29
|
+
}
|
|
30
|
+
function shellQuote(value) {
|
|
31
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
32
|
+
}
|
|
22
33
|
function osascriptArgs(script) {
|
|
23
34
|
if (!Array.isArray(script)) {
|
|
24
35
|
script = [script];
|
|
@@ -34,12 +45,12 @@ async function osascriptSpawnAsync(script, opts) {
|
|
|
34
45
|
return await (0, spawn_async_1.default)('osascript', osascriptArgs(script), opts);
|
|
35
46
|
}
|
|
36
47
|
async function isAppRunningAsync(appName) {
|
|
37
|
-
const { stdout } = await osascriptSpawnAsync(`tell app "System Events" to count processes whose name is ${
|
|
48
|
+
const { stdout } = await osascriptSpawnAsync(`tell app "System Events" to count processes whose name is "${escapeString(appName)}"`);
|
|
38
49
|
return stdout.trim() !== '0';
|
|
39
50
|
}
|
|
40
51
|
async function safeIdOfAppAsync(appName) {
|
|
41
52
|
try {
|
|
42
|
-
const { stdout } = await osascriptSpawnAsync(`id of app ${
|
|
53
|
+
const { stdout } = await osascriptSpawnAsync(`id of app "${escapeString(appName)}"`);
|
|
43
54
|
return stdout.trim();
|
|
44
55
|
}
|
|
45
56
|
catch {
|
|
@@ -49,15 +60,13 @@ async function safeIdOfAppAsync(appName) {
|
|
|
49
60
|
async function openFinderToFolderAsync(dir, activate = true) {
|
|
50
61
|
await osascriptSpawnAsync([
|
|
51
62
|
'tell application "Finder"',
|
|
52
|
-
|
|
63
|
+
`open POSIX file "${escapeString(dir)}"`,
|
|
53
64
|
(activate && 'activate') || '',
|
|
54
65
|
'end tell',
|
|
55
66
|
]);
|
|
56
67
|
}
|
|
57
68
|
async function openInAppAsync(appName, pth) {
|
|
58
|
-
|
|
59
|
-
// console.log("cmd=", cmd);
|
|
60
|
-
return await osascriptSpawnAsync(cmd);
|
|
69
|
+
return await osascriptSpawnAsync(`tell app "${escapeString(appName)}" to open "${escapeString(path_1.default.resolve(pth))}"`);
|
|
61
70
|
}
|
|
62
71
|
async function chooseAppAsync(listOfAppNames) {
|
|
63
72
|
const runningAwaitables = [];
|
|
@@ -138,6 +147,7 @@ async function openInEditorAsync(pth, preferredEditor) {
|
|
|
138
147
|
return await openInAppAsync(appName, pth);
|
|
139
148
|
}
|
|
140
149
|
async function openItermToSpecificFolderAsync(dir) {
|
|
150
|
+
const shellCommand = escapeString(`cd ${shellQuote(dir)} && clear`);
|
|
141
151
|
return await osascriptSpawnAsync([
|
|
142
152
|
'tell application "iTerm"',
|
|
143
153
|
'make new terminal',
|
|
@@ -145,29 +155,26 @@ async function openItermToSpecificFolderAsync(dir) {
|
|
|
145
155
|
'activate current session',
|
|
146
156
|
'launch session "Default Session"',
|
|
147
157
|
'tell the last session',
|
|
148
|
-
|
|
149
|
-
// 'write text "clear"',
|
|
158
|
+
`write text "${shellCommand}"`,
|
|
150
159
|
'end tell',
|
|
151
160
|
'end tell',
|
|
152
161
|
'end tell',
|
|
153
162
|
]);
|
|
154
|
-
// exec("osascript -e 'tell application \"iTerm\"' -e 'make new terminal' -e 'tell the first terminal' -e 'activate current session' -e 'launch session \"Default Session\"' -e 'tell the last session' -e 'write text \"cd #{value}\"' -e 'write text \"clear\"' -e 'end tell' -e 'end tell' -e 'end tell' > /dev/null 2>&1")
|
|
155
163
|
}
|
|
156
164
|
async function openTerminalToSpecificFolderAsync(dir, inTab = false) {
|
|
165
|
+
const shellCommand = escapeString(`cd ${shellQuote(dir)} && clear`);
|
|
157
166
|
if (inTab) {
|
|
158
167
|
return await osascriptSpawnAsync([
|
|
159
168
|
'tell application "terminal"',
|
|
160
169
|
'tell application "System Events" to tell process "terminal" to keystroke "t" using command down',
|
|
161
|
-
|
|
162
|
-
util_1.default.inspect(dir) +
|
|
163
|
-
' && clear" in selected tab of the front window',
|
|
170
|
+
`do script with command "${shellCommand}" in selected tab of the front window`,
|
|
164
171
|
'end tell',
|
|
165
172
|
]);
|
|
166
173
|
}
|
|
167
174
|
else {
|
|
168
175
|
return await osascriptSpawnAsync([
|
|
169
176
|
'tell application "terminal"',
|
|
170
|
-
|
|
177
|
+
`do script "${shellCommand}"`,
|
|
171
178
|
'end tell',
|
|
172
179
|
'tell application "terminal" to activate',
|
|
173
180
|
]);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/osascript",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Tools for running an osascripts in Node",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -27,16 +27,16 @@
|
|
|
27
27
|
"node": ">=12"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@expo/spawn-async": "^1.
|
|
30
|
+
"@expo/spawn-async": "^1.8.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^22.14.0",
|
|
34
|
-
"expo-module-scripts": "56.0.
|
|
34
|
+
"expo-module-scripts": "56.0.2"
|
|
35
35
|
},
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "c4c9867a0bcbb188e55ecaec4998e38d33108a5d",
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "expo-module tsc",
|
|
42
42
|
"clean": "expo-module clean",
|