one 1.2.83 → 1.2.84
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/devtools/dev.mjs +44 -0
- package/devtools/devtools.mjs +540 -0
- package/devtools/source-inspector.mjs +201 -0
- package/dist/cjs/cli/daemon.cjs +136 -0
- package/dist/cjs/cli/daemon.js +112 -0
- package/dist/cjs/cli/daemon.js.map +6 -0
- package/dist/cjs/cli/daemon.native.js +173 -0
- package/dist/cjs/cli/daemon.native.js.map +1 -0
- package/dist/cjs/createHandleRequest.cjs +15 -8
- package/dist/cjs/createHandleRequest.js +10 -6
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +8 -3
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/daemon/index.cjs +24 -0
- package/dist/cjs/daemon/index.js +21 -0
- package/dist/cjs/daemon/index.js.map +6 -0
- package/dist/cjs/daemon/index.native.js +27 -0
- package/dist/cjs/daemon/index.native.js.map +1 -0
- package/dist/cjs/daemon/ipc.cjs +235 -0
- package/dist/cjs/daemon/ipc.js +204 -0
- package/dist/cjs/daemon/ipc.js.map +6 -0
- package/dist/cjs/daemon/ipc.native.js +276 -0
- package/dist/cjs/daemon/ipc.native.js.map +1 -0
- package/dist/cjs/daemon/picker.cjs +223 -0
- package/dist/cjs/daemon/picker.js +191 -0
- package/dist/cjs/daemon/picker.js.map +6 -0
- package/dist/cjs/daemon/picker.native.js +308 -0
- package/dist/cjs/daemon/picker.native.js.map +1 -0
- package/dist/cjs/daemon/proxy.cjs +75 -0
- package/dist/cjs/daemon/proxy.js +70 -0
- package/dist/cjs/daemon/proxy.js.map +6 -0
- package/dist/cjs/daemon/proxy.native.js +81 -0
- package/dist/cjs/daemon/proxy.native.js.map +1 -0
- package/dist/cjs/daemon/registry.cjs +85 -0
- package/dist/cjs/daemon/registry.js +81 -0
- package/dist/cjs/daemon/registry.js.map +6 -0
- package/dist/cjs/daemon/registry.native.js +120 -0
- package/dist/cjs/daemon/registry.native.js.map +1 -0
- package/dist/cjs/daemon/server.cjs +178 -0
- package/dist/cjs/daemon/server.js +179 -0
- package/dist/cjs/daemon/server.js.map +6 -0
- package/dist/cjs/daemon/server.native.js +200 -0
- package/dist/cjs/daemon/server.native.js.map +1 -0
- package/dist/cjs/daemon/tui.cjs +223 -0
- package/dist/cjs/daemon/tui.js +192 -0
- package/dist/cjs/daemon/tui.js.map +6 -0
- package/dist/cjs/daemon/tui.native.js +234 -0
- package/dist/cjs/daemon/tui.native.js.map +1 -0
- package/dist/cjs/daemon/types.cjs +16 -0
- package/dist/cjs/daemon/types.js +14 -0
- package/dist/cjs/daemon/types.js.map +6 -0
- package/dist/cjs/daemon/types.native.js +19 -0
- package/dist/cjs/daemon/types.native.js.map +1 -0
- package/dist/cjs/daemon/utils.cjs +74 -0
- package/dist/cjs/daemon/utils.js +65 -0
- package/dist/cjs/daemon/utils.js.map +6 -0
- package/dist/cjs/daemon/utils.native.js +83 -0
- package/dist/cjs/daemon/utils.native.js.map +1 -0
- package/dist/cjs/fork/createMemoryHistory.cjs +22 -8
- package/dist/cjs/fork/createMemoryHistory.js +20 -6
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +22 -8
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/useLinking.cjs +52 -13
- package/dist/cjs/fork/useLinking.js +35 -10
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/index.cjs +6 -2
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/index.native.js +6 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/router/linkingConfig.cjs +13 -2
- package/dist/cjs/router/linkingConfig.js +14 -5
- package/dist/cjs/router/linkingConfig.js.map +1 -1
- package/dist/cjs/router/linkingConfig.native.js +10 -1
- package/dist/cjs/router/linkingConfig.native.js.map +1 -1
- package/dist/cjs/router/routeMask.cjs +137 -0
- package/dist/cjs/router/routeMask.js +127 -0
- package/dist/cjs/router/routeMask.js.map +6 -0
- package/dist/cjs/router/routeMask.native.js +160 -0
- package/dist/cjs/router/routeMask.native.js.map +1 -0
- package/dist/cjs/router/router.cjs +26 -3
- package/dist/cjs/router/router.js +23 -3
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +26 -3
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/server/PreloadScripts.native.js +45 -39
- package/dist/cjs/server/PreloadScripts.native.js.map +1 -6
- package/dist/cjs/vite/DevHead.cjs +2 -909
- package/dist/cjs/vite/DevHead.js +1 -917
- package/dist/cjs/vite/DevHead.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js +1 -882
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +4 -1
- package/dist/cjs/vite/one.js +4 -2
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +4 -1
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/devtoolsPlugin.cjs +55 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.js +49 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js +58 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +1 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +5 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +8 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/cli/daemon.js +89 -0
- package/dist/esm/cli/daemon.js.map +6 -0
- package/dist/esm/cli/daemon.mjs +102 -0
- package/dist/esm/cli/daemon.mjs.map +1 -0
- package/dist/esm/cli/daemon.native.js +136 -0
- package/dist/esm/cli/daemon.native.js.map +1 -0
- package/dist/esm/createHandleRequest.js +10 -5
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +15 -8
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +8 -3
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/daemon/index.js +8 -0
- package/dist/esm/daemon/index.js.map +6 -0
- package/dist/esm/daemon/index.mjs +8 -0
- package/dist/esm/daemon/index.mjs.map +1 -0
- package/dist/esm/daemon/index.native.js +8 -0
- package/dist/esm/daemon/index.native.js.map +1 -0
- package/dist/esm/daemon/ipc.js +192 -0
- package/dist/esm/daemon/ipc.js.map +6 -0
- package/dist/esm/daemon/ipc.mjs +191 -0
- package/dist/esm/daemon/ipc.mjs.map +1 -0
- package/dist/esm/daemon/ipc.native.js +229 -0
- package/dist/esm/daemon/ipc.native.js.map +1 -0
- package/dist/esm/daemon/picker.js +169 -0
- package/dist/esm/daemon/picker.js.map +6 -0
- package/dist/esm/daemon/picker.mjs +186 -0
- package/dist/esm/daemon/picker.mjs.map +1 -0
- package/dist/esm/daemon/picker.native.js +268 -0
- package/dist/esm/daemon/picker.native.js.map +1 -0
- package/dist/esm/daemon/proxy.js +47 -0
- package/dist/esm/daemon/proxy.js.map +6 -0
- package/dist/esm/daemon/proxy.mjs +40 -0
- package/dist/esm/daemon/proxy.mjs.map +1 -0
- package/dist/esm/daemon/proxy.native.js +43 -0
- package/dist/esm/daemon/proxy.native.js.map +1 -0
- package/dist/esm/daemon/registry.js +65 -0
- package/dist/esm/daemon/registry.js.map +6 -0
- package/dist/esm/daemon/registry.mjs +53 -0
- package/dist/esm/daemon/registry.mjs.map +1 -0
- package/dist/esm/daemon/registry.native.js +85 -0
- package/dist/esm/daemon/registry.native.js.map +1 -0
- package/dist/esm/daemon/server.js +167 -0
- package/dist/esm/daemon/server.js.map +6 -0
- package/dist/esm/daemon/server.mjs +143 -0
- package/dist/esm/daemon/server.mjs.map +1 -0
- package/dist/esm/daemon/server.native.js +162 -0
- package/dist/esm/daemon/server.native.js.map +1 -0
- package/dist/esm/daemon/tui.js +171 -0
- package/dist/esm/daemon/tui.js.map +6 -0
- package/dist/esm/daemon/tui.mjs +187 -0
- package/dist/esm/daemon/tui.mjs.map +1 -0
- package/dist/esm/daemon/tui.native.js +195 -0
- package/dist/esm/daemon/tui.native.js.map +1 -0
- package/dist/esm/daemon/types.js +1 -0
- package/dist/esm/daemon/types.js.map +6 -0
- package/dist/esm/daemon/types.mjs +2 -0
- package/dist/esm/daemon/types.mjs.map +1 -0
- package/dist/esm/daemon/types.native.js +2 -0
- package/dist/esm/daemon/types.native.js.map +1 -0
- package/dist/esm/daemon/utils.js +42 -0
- package/dist/esm/daemon/utils.js.map +6 -0
- package/dist/esm/daemon/utils.mjs +39 -0
- package/dist/esm/daemon/utils.mjs.map +1 -0
- package/dist/esm/daemon/utils.native.js +45 -0
- package/dist/esm/daemon/utils.native.js.map +1 -0
- package/dist/esm/fork/createMemoryHistory.js +20 -6
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +22 -8
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +22 -8
- package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/esm/fork/useLinking.js +35 -9
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +52 -13
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/router/linkingConfig.js +14 -4
- package/dist/esm/router/linkingConfig.js.map +1 -1
- package/dist/esm/router/linkingConfig.mjs +12 -1
- package/dist/esm/router/linkingConfig.mjs.map +1 -1
- package/dist/esm/router/linkingConfig.native.js +10 -1
- package/dist/esm/router/linkingConfig.native.js.map +1 -1
- package/dist/esm/router/routeMask.js +111 -0
- package/dist/esm/router/routeMask.js.map +6 -0
- package/dist/esm/router/routeMask.mjs +108 -0
- package/dist/esm/router/routeMask.mjs.map +1 -0
- package/dist/esm/router/routeMask.native.js +128 -0
- package/dist/esm/router/routeMask.native.js.map +1 -0
- package/dist/esm/router/router.js +23 -2
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +24 -3
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +24 -3
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/server/PreloadScripts.native.js +29 -33
- package/dist/esm/server/PreloadScripts.native.js.map +1 -6
- package/dist/esm/vite/DevHead.js +1 -917
- package/dist/esm/vite/DevHead.js.map +1 -1
- package/dist/esm/vite/DevHead.mjs +2 -909
- package/dist/esm/vite/DevHead.mjs.map +1 -1
- package/dist/esm/vite/DevHead.native.js +0 -881
- package/dist/esm/vite/DevHead.native.js.map +1 -1
- package/dist/esm/vite/one.js +4 -1
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +4 -1
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +4 -1
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/devtoolsPlugin.js +33 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.mjs +31 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.native.js +31 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +1 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +5 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +7 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +8 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +12 -10
- package/src/createHandleRequest.ts +16 -3
- package/src/fork/createMemoryHistory.tsx +39 -4
- package/src/fork/useLinking.ts +83 -12
- package/src/index.ts +3 -0
- package/src/router/linkingConfig.ts +21 -4
- package/src/router/routeMask.ts +293 -0
- package/src/router/router.ts +53 -1
- package/src/vite/DevHead.tsx +1 -924
- package/src/vite/one.ts +4 -0
- package/src/vite/plugins/devtoolsPlugin.ts +45 -0
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +2 -7
- package/src/vite/plugins/virtualEntryPlugin.ts +12 -3
- package/src/vite/types.ts +1 -0
- package/types/cli/daemon.d.ts.map +1 -0
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/daemon/index.d.ts.map +1 -0
- package/types/daemon/ipc.d.ts.map +1 -0
- package/types/daemon/picker.d.ts.map +1 -0
- package/types/daemon/proxy.d.ts.map +1 -0
- package/types/daemon/registry.d.ts.map +1 -0
- package/types/daemon/server.d.ts.map +1 -0
- package/types/daemon/tui.d.ts.map +1 -0
- package/types/daemon/types.d.ts.map +1 -0
- package/types/daemon/utils.d.ts.map +1 -0
- package/types/fork/createMemoryHistory.d.ts +6 -2
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/router/linkingConfig.d.ts.map +1 -1
- package/types/router/routeMask.d.ts +130 -0
- package/types/router/routeMask.d.ts.map +1 -0
- package/types/router/router.d.ts +23 -0
- package/types/router/router.d.ts.map +1 -1
- package/types/vite/DevHead.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/devtoolsPlugin.d.ts +5 -0
- package/types/vite/plugins/devtoolsPlugin.d.ts.map +1 -0
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts +1 -3
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts.map +1 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
6
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: !0
|
|
11
|
+
});
|
|
12
|
+
},
|
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: !0
|
|
28
|
+
}) : target, mod)),
|
|
29
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
30
|
+
value: !0
|
|
31
|
+
}), mod);
|
|
32
|
+
var picker_exports = {};
|
|
33
|
+
__export(picker_exports, {
|
|
34
|
+
getBootedSimulators: () => getBootedSimulators,
|
|
35
|
+
pickServer: () => pickServer,
|
|
36
|
+
resolvePendingPicker: () => resolvePendingPicker,
|
|
37
|
+
showPicker: () => showPicker
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(picker_exports);
|
|
40
|
+
var import_node_child_process = require("node:child_process"),
|
|
41
|
+
import_node_util = require("node:util"),
|
|
42
|
+
readline = __toESM(require("node:readline"), 1);
|
|
43
|
+
const execAsync = (0, import_node_util.promisify)(import_node_child_process.exec);
|
|
44
|
+
let activePickerContext = null,
|
|
45
|
+
rl = null,
|
|
46
|
+
stdinDataListener = null;
|
|
47
|
+
async function getBootedSimulators() {
|
|
48
|
+
try {
|
|
49
|
+
const {
|
|
50
|
+
stdout
|
|
51
|
+
} = await execAsync("xcrun simctl list devices booted -j"),
|
|
52
|
+
data = JSON.parse(stdout),
|
|
53
|
+
simulators = [];
|
|
54
|
+
for (const [runtime, devices] of Object.entries(data.devices || {})) {
|
|
55
|
+
const versionMatch = runtime.match(/iOS-(\d+)-(\d+)/),
|
|
56
|
+
iosVersion = versionMatch ? `${versionMatch[1]}.${versionMatch[2]}` : void 0;
|
|
57
|
+
for (const device of devices) device.state === "Booted" && simulators.push({
|
|
58
|
+
name: device.name,
|
|
59
|
+
udid: device.udid,
|
|
60
|
+
state: device.state,
|
|
61
|
+
iosVersion
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return simulators;
|
|
65
|
+
} catch {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function showMacOSDialog(bundleId, servers) {
|
|
70
|
+
if (process.platform !== "darwin") return null;
|
|
71
|
+
const simulators = await getBootedSimulators();
|
|
72
|
+
let simInfo = "";
|
|
73
|
+
if (simulators.length > 0) {
|
|
74
|
+
const seen = /* @__PURE__ */new Set(),
|
|
75
|
+
uniqueSims = [];
|
|
76
|
+
for (const sim of simulators) {
|
|
77
|
+
const key = `${sim.name}-${sim.iosVersion || ""}`;
|
|
78
|
+
seen.has(key) || (seen.add(key), uniqueSims.push(sim.iosVersion ? `${sim.name} (iOS ${sim.iosVersion})` : sim.name));
|
|
79
|
+
}
|
|
80
|
+
uniqueSims.length === 1 ? simInfo = `\\n\\nFrom: ${uniqueSims[0]}` : simInfo = `\\n\\nActive simulators: ${uniqueSims.slice(0, 3).join(", ")}${uniqueSims.length > 3 ? "..." : ""}`;
|
|
81
|
+
}
|
|
82
|
+
const choices = servers.map((s, i) => {
|
|
83
|
+
const shortRoot = s.root.replace(process.env.HOME || "", "~");
|
|
84
|
+
return `${i + 1}. ${shortRoot} (port ${s.port})`;
|
|
85
|
+
}),
|
|
86
|
+
choicesStr = choices.map(c => `"${c.replace(/"/g, '\\"')}"`).join(", "),
|
|
87
|
+
prompt = `${bundleId} bundle requested${simInfo}\\n\\nWhich project should serve it?`,
|
|
88
|
+
script = `choose from list {${choicesStr}} with title "one daemon" with prompt "${prompt}" default items {"${choices[0].replace(/"/g, '\\"')}"}`;
|
|
89
|
+
try {
|
|
90
|
+
const {
|
|
91
|
+
stdout
|
|
92
|
+
} = await execAsync(`osascript -e '${script}'`),
|
|
93
|
+
result = stdout.trim();
|
|
94
|
+
if (result === "false" || !result) return null;
|
|
95
|
+
const match = result.match(/^(\d+)\./);
|
|
96
|
+
if (match) {
|
|
97
|
+
const index = parseInt(match[1], 10) - 1;
|
|
98
|
+
if (index >= 0 && index < servers.length) return {
|
|
99
|
+
server: servers[index],
|
|
100
|
+
remember: !1
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
} catch {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function showPicker(context) {
|
|
109
|
+
if (activePickerContext = context, process.platform === "darwin") {
|
|
110
|
+
showMacOSDialog(context.bundleId, context.servers).then(result => {
|
|
111
|
+
result ? (cleanupPicker(), context.onSelect(result.server, result.remember)) : activePickerContext === context && showTerminalPicker(context);
|
|
112
|
+
});
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
showTerminalPicker(context);
|
|
116
|
+
}
|
|
117
|
+
function showTerminalPicker(context) {
|
|
118
|
+
console.log(`
|
|
119
|
+
` + "\u2500".repeat(60)), console.log(`\u{1F500} ${context.bundleId} bundle requested`), console.log("\u2500".repeat(60)), getBootedSimulators().then(sims => {
|
|
120
|
+
if (sims.length > 0) {
|
|
121
|
+
const seen = /* @__PURE__ */new Set(),
|
|
122
|
+
uniqueSims = [];
|
|
123
|
+
for (const sim of sims) {
|
|
124
|
+
const key = `${sim.name}-${sim.iosVersion || ""}`;
|
|
125
|
+
seen.has(key) || (seen.add(key), uniqueSims.push(sim));
|
|
126
|
+
}
|
|
127
|
+
if (uniqueSims.length === 1) {
|
|
128
|
+
const sim = uniqueSims[0];
|
|
129
|
+
console.log(`
|
|
130
|
+
From: ${sim.name}${sim.iosVersion ? ` (iOS ${sim.iosVersion})` : ""}`);
|
|
131
|
+
} else {
|
|
132
|
+
console.log(`
|
|
133
|
+
Active simulators:`);
|
|
134
|
+
for (const sim of uniqueSims.slice(0, 5)) console.log(` \u2022 ${sim.name}${sim.iosVersion ? ` (iOS ${sim.iosVersion})` : ""}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}), console.log(`
|
|
138
|
+
Which project should serve it?`), context.servers.forEach((server, i) => {
|
|
139
|
+
const shortRoot = server.root.replace(process.env.HOME || "", "~");
|
|
140
|
+
console.log(` [${i + 1}] ${shortRoot} (port ${server.port})`);
|
|
141
|
+
}), console.log(`
|
|
142
|
+
Press 1-` + context.servers.length + " to select"), console.log("Or 'r' + number to remember (e.g., 'r1')"), console.log(`Press 'c' to cancel
|
|
143
|
+
`), setupKeyboardInput();
|
|
144
|
+
}
|
|
145
|
+
function setupKeyboardInput() {
|
|
146
|
+
if (rl) return;
|
|
147
|
+
rl = readline.createInterface({
|
|
148
|
+
input: process.stdin,
|
|
149
|
+
output: process.stdout
|
|
150
|
+
}), process.stdin.isTTY && process.stdin.setRawMode(!0), process.stdin.resume();
|
|
151
|
+
let buffer = "";
|
|
152
|
+
stdinDataListener = key => {
|
|
153
|
+
const str = key.toString();
|
|
154
|
+
if (str === "") {
|
|
155
|
+
cancelPicker();
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (str === "\x1B") {
|
|
159
|
+
cancelPicker();
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (str === "\x7F") {
|
|
163
|
+
buffer = buffer.slice(0, -1);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (str === "\r" || str === `
|
|
167
|
+
`) {
|
|
168
|
+
processInput(buffer), buffer = "";
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
buffer += str, buffer.length === 1 && /^[1-9]$/.test(buffer) || buffer.length === 2 && /^r[1-9]$/i.test(buffer) ? (processInput(buffer), buffer = "") : buffer.toLowerCase() === "c" && (cancelPicker(), buffer = "");
|
|
172
|
+
}, process.stdin.on("data", stdinDataListener);
|
|
173
|
+
}
|
|
174
|
+
function processInput(input) {
|
|
175
|
+
if (!activePickerContext) return;
|
|
176
|
+
const remember = input.toLowerCase().startsWith("r"),
|
|
177
|
+
numStr = remember ? input.slice(1) : input,
|
|
178
|
+
num = parseInt(numStr, 10);
|
|
179
|
+
if (isNaN(num) || num < 1 || num > activePickerContext.servers.length) {
|
|
180
|
+
console.log(`Invalid selection: ${input}`);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const server = activePickerContext.servers[num - 1],
|
|
184
|
+
context = activePickerContext;
|
|
185
|
+
cleanupPicker(), context.onSelect(server, remember);
|
|
186
|
+
}
|
|
187
|
+
function cancelPicker() {
|
|
188
|
+
const context = activePickerContext;
|
|
189
|
+
cleanupPicker(), context && context.onCancel();
|
|
190
|
+
}
|
|
191
|
+
function cleanupPicker() {
|
|
192
|
+
activePickerContext = null, stdinDataListener && (process.stdin.removeListener("data", stdinDataListener), stdinDataListener = null), rl && (rl.close(), rl = null), process.stdin.isTTY && process.stdin.setRawMode(!1);
|
|
193
|
+
}
|
|
194
|
+
let pendingPickerResolvers = /* @__PURE__ */new Map();
|
|
195
|
+
function resolvePendingPicker(bundleId, serverId) {
|
|
196
|
+
const resolver = pendingPickerResolvers.get(bundleId);
|
|
197
|
+
if (!resolver || !activePickerContext) return !1;
|
|
198
|
+
const server = activePickerContext.servers.find(s => s.id === serverId);
|
|
199
|
+
return server ? (pendingPickerResolvers.delete(bundleId), cleanupPicker(), resolver.resolve(server), !0) : !1;
|
|
200
|
+
}
|
|
201
|
+
function pickServer(bundleId, servers) {
|
|
202
|
+
return new Promise((resolve, reject) => {
|
|
203
|
+
pendingPickerResolvers.set(bundleId, {
|
|
204
|
+
resolve: server => resolve({
|
|
205
|
+
server,
|
|
206
|
+
remember: !1
|
|
207
|
+
}),
|
|
208
|
+
reject
|
|
209
|
+
}), showPicker({
|
|
210
|
+
bundleId,
|
|
211
|
+
servers,
|
|
212
|
+
onSelect: (server, remember) => {
|
|
213
|
+
pendingPickerResolvers.delete(bundleId), resolve({
|
|
214
|
+
server,
|
|
215
|
+
remember
|
|
216
|
+
});
|
|
217
|
+
},
|
|
218
|
+
onCancel: () => {
|
|
219
|
+
pendingPickerResolvers.delete(bundleId), reject(new Error("Selection cancelled"));
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
21
|
+
mod
|
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
23
|
+
var picker_exports = {};
|
|
24
|
+
__export(picker_exports, {
|
|
25
|
+
getBootedSimulators: () => getBootedSimulators,
|
|
26
|
+
pickServer: () => pickServer,
|
|
27
|
+
resolvePendingPicker: () => resolvePendingPicker,
|
|
28
|
+
showPicker: () => showPicker
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(picker_exports);
|
|
31
|
+
var import_node_child_process = require("node:child_process"), import_node_util = require("node:util"), readline = __toESM(require("node:readline"), 1);
|
|
32
|
+
const execAsync = (0, import_node_util.promisify)(import_node_child_process.exec);
|
|
33
|
+
let activePickerContext = null, rl = null, stdinDataListener = null;
|
|
34
|
+
async function getBootedSimulators() {
|
|
35
|
+
try {
|
|
36
|
+
const { stdout } = await execAsync("xcrun simctl list devices booted -j"), data = JSON.parse(stdout), simulators = [];
|
|
37
|
+
for (const [runtime, devices] of Object.entries(data.devices || {})) {
|
|
38
|
+
const versionMatch = runtime.match(/iOS-(\d+)-(\d+)/), iosVersion = versionMatch ? `${versionMatch[1]}.${versionMatch[2]}` : void 0;
|
|
39
|
+
for (const device of devices)
|
|
40
|
+
device.state === "Booted" && simulators.push({
|
|
41
|
+
name: device.name,
|
|
42
|
+
udid: device.udid,
|
|
43
|
+
state: device.state,
|
|
44
|
+
iosVersion
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return simulators;
|
|
48
|
+
} catch {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async function showMacOSDialog(bundleId, servers) {
|
|
53
|
+
if (process.platform !== "darwin")
|
|
54
|
+
return null;
|
|
55
|
+
const simulators = await getBootedSimulators();
|
|
56
|
+
let simInfo = "";
|
|
57
|
+
if (simulators.length > 0) {
|
|
58
|
+
const seen = /* @__PURE__ */ new Set(), uniqueSims = [];
|
|
59
|
+
for (const sim of simulators) {
|
|
60
|
+
const key = `${sim.name}-${sim.iosVersion || ""}`;
|
|
61
|
+
seen.has(key) || (seen.add(key), uniqueSims.push(sim.iosVersion ? `${sim.name} (iOS ${sim.iosVersion})` : sim.name));
|
|
62
|
+
}
|
|
63
|
+
uniqueSims.length === 1 ? simInfo = `\\n\\nFrom: ${uniqueSims[0]}` : simInfo = `\\n\\nActive simulators: ${uniqueSims.slice(0, 3).join(", ")}${uniqueSims.length > 3 ? "..." : ""}`;
|
|
64
|
+
}
|
|
65
|
+
const choices = servers.map((s, i) => {
|
|
66
|
+
const shortRoot = s.root.replace(process.env.HOME || "", "~");
|
|
67
|
+
return `${i + 1}. ${shortRoot} (port ${s.port})`;
|
|
68
|
+
}), choicesStr = choices.map((c) => `"${c.replace(/"/g, '\\"')}"`).join(", "), prompt = `${bundleId} bundle requested${simInfo}\\n\\nWhich project should serve it?`, script = `choose from list {${choicesStr}} with title "one daemon" with prompt "${prompt}" default items {"${choices[0].replace(/"/g, '\\"')}"}`;
|
|
69
|
+
try {
|
|
70
|
+
const { stdout } = await execAsync(`osascript -e '${script}'`), result = stdout.trim();
|
|
71
|
+
if (result === "false" || !result)
|
|
72
|
+
return null;
|
|
73
|
+
const match = result.match(/^(\d+)\./);
|
|
74
|
+
if (match) {
|
|
75
|
+
const index = parseInt(match[1], 10) - 1;
|
|
76
|
+
if (index >= 0 && index < servers.length)
|
|
77
|
+
return { server: servers[index], remember: !1 };
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
} catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function showPicker(context) {
|
|
85
|
+
if (activePickerContext = context, process.platform === "darwin") {
|
|
86
|
+
showMacOSDialog(context.bundleId, context.servers).then((result) => {
|
|
87
|
+
result ? (cleanupPicker(), context.onSelect(result.server, result.remember)) : activePickerContext === context && showTerminalPicker(context);
|
|
88
|
+
});
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
showTerminalPicker(context);
|
|
92
|
+
}
|
|
93
|
+
function showTerminalPicker(context) {
|
|
94
|
+
console.log(`
|
|
95
|
+
` + "\u2500".repeat(60)), console.log(`\u{1F500} ${context.bundleId} bundle requested`), console.log("\u2500".repeat(60)), getBootedSimulators().then((sims) => {
|
|
96
|
+
if (sims.length > 0) {
|
|
97
|
+
const seen = /* @__PURE__ */ new Set(), uniqueSims = [];
|
|
98
|
+
for (const sim of sims) {
|
|
99
|
+
const key = `${sim.name}-${sim.iosVersion || ""}`;
|
|
100
|
+
seen.has(key) || (seen.add(key), uniqueSims.push(sim));
|
|
101
|
+
}
|
|
102
|
+
if (uniqueSims.length === 1) {
|
|
103
|
+
const sim = uniqueSims[0];
|
|
104
|
+
console.log(`
|
|
105
|
+
From: ${sim.name}${sim.iosVersion ? ` (iOS ${sim.iosVersion})` : ""}`);
|
|
106
|
+
} else {
|
|
107
|
+
console.log(`
|
|
108
|
+
Active simulators:`);
|
|
109
|
+
for (const sim of uniqueSims.slice(0, 5))
|
|
110
|
+
console.log(` \u2022 ${sim.name}${sim.iosVersion ? ` (iOS ${sim.iosVersion})` : ""}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}), console.log(`
|
|
114
|
+
Which project should serve it?`), context.servers.forEach((server, i) => {
|
|
115
|
+
const shortRoot = server.root.replace(process.env.HOME || "", "~");
|
|
116
|
+
console.log(` [${i + 1}] ${shortRoot} (port ${server.port})`);
|
|
117
|
+
}), console.log(`
|
|
118
|
+
Press 1-` + context.servers.length + " to select"), console.log("Or 'r' + number to remember (e.g., 'r1')"), console.log(`Press 'c' to cancel
|
|
119
|
+
`), setupKeyboardInput();
|
|
120
|
+
}
|
|
121
|
+
function setupKeyboardInput() {
|
|
122
|
+
if (rl) return;
|
|
123
|
+
rl = readline.createInterface({
|
|
124
|
+
input: process.stdin,
|
|
125
|
+
output: process.stdout
|
|
126
|
+
}), process.stdin.isTTY && process.stdin.setRawMode(!0), process.stdin.resume();
|
|
127
|
+
let buffer = "";
|
|
128
|
+
stdinDataListener = (key) => {
|
|
129
|
+
const str = key.toString();
|
|
130
|
+
if (str === "") {
|
|
131
|
+
cancelPicker();
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (str === "\x1B") {
|
|
135
|
+
cancelPicker();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (str === "\x7F") {
|
|
139
|
+
buffer = buffer.slice(0, -1);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (str === "\r" || str === `
|
|
143
|
+
`) {
|
|
144
|
+
processInput(buffer), buffer = "";
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
buffer += str, buffer.length === 1 && /^[1-9]$/.test(buffer) || buffer.length === 2 && /^r[1-9]$/i.test(buffer) ? (processInput(buffer), buffer = "") : buffer.toLowerCase() === "c" && (cancelPicker(), buffer = "");
|
|
148
|
+
}, process.stdin.on("data", stdinDataListener);
|
|
149
|
+
}
|
|
150
|
+
function processInput(input) {
|
|
151
|
+
if (!activePickerContext) return;
|
|
152
|
+
const remember = input.toLowerCase().startsWith("r"), numStr = remember ? input.slice(1) : input, num = parseInt(numStr, 10);
|
|
153
|
+
if (isNaN(num) || num < 1 || num > activePickerContext.servers.length) {
|
|
154
|
+
console.log(`Invalid selection: ${input}`);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const server = activePickerContext.servers[num - 1], context = activePickerContext;
|
|
158
|
+
cleanupPicker(), context.onSelect(server, remember);
|
|
159
|
+
}
|
|
160
|
+
function cancelPicker() {
|
|
161
|
+
const context = activePickerContext;
|
|
162
|
+
cleanupPicker(), context && context.onCancel();
|
|
163
|
+
}
|
|
164
|
+
function cleanupPicker() {
|
|
165
|
+
activePickerContext = null, stdinDataListener && (process.stdin.removeListener("data", stdinDataListener), stdinDataListener = null), rl && (rl.close(), rl = null), process.stdin.isTTY && process.stdin.setRawMode(!1);
|
|
166
|
+
}
|
|
167
|
+
let pendingPickerResolvers = /* @__PURE__ */ new Map();
|
|
168
|
+
function resolvePendingPicker(bundleId, serverId) {
|
|
169
|
+
const resolver = pendingPickerResolvers.get(bundleId);
|
|
170
|
+
if (!resolver || !activePickerContext) return !1;
|
|
171
|
+
const server = activePickerContext.servers.find((s) => s.id === serverId);
|
|
172
|
+
return server ? (pendingPickerResolvers.delete(bundleId), cleanupPicker(), resolver.resolve(server), !0) : !1;
|
|
173
|
+
}
|
|
174
|
+
function pickServer(bundleId, servers) {
|
|
175
|
+
return new Promise((resolve, reject) => {
|
|
176
|
+
pendingPickerResolvers.set(bundleId, {
|
|
177
|
+
resolve: (server) => resolve({ server, remember: !1 }),
|
|
178
|
+
reject
|
|
179
|
+
}), showPicker({
|
|
180
|
+
bundleId,
|
|
181
|
+
servers,
|
|
182
|
+
onSelect: (server, remember) => {
|
|
183
|
+
pendingPickerResolvers.delete(bundleId), resolve({ server, remember });
|
|
184
|
+
},
|
|
185
|
+
onCancel: () => {
|
|
186
|
+
pendingPickerResolvers.delete(bundleId), reject(new Error("Selection cancelled"));
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=picker.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/daemon/picker.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|