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.
Files changed (288) hide show
  1. package/devtools/dev.mjs +44 -0
  2. package/devtools/devtools.mjs +540 -0
  3. package/devtools/source-inspector.mjs +201 -0
  4. package/dist/cjs/cli/daemon.cjs +136 -0
  5. package/dist/cjs/cli/daemon.js +112 -0
  6. package/dist/cjs/cli/daemon.js.map +6 -0
  7. package/dist/cjs/cli/daemon.native.js +173 -0
  8. package/dist/cjs/cli/daemon.native.js.map +1 -0
  9. package/dist/cjs/createHandleRequest.cjs +15 -8
  10. package/dist/cjs/createHandleRequest.js +10 -6
  11. package/dist/cjs/createHandleRequest.js.map +1 -1
  12. package/dist/cjs/createHandleRequest.native.js +8 -3
  13. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  14. package/dist/cjs/daemon/index.cjs +24 -0
  15. package/dist/cjs/daemon/index.js +21 -0
  16. package/dist/cjs/daemon/index.js.map +6 -0
  17. package/dist/cjs/daemon/index.native.js +27 -0
  18. package/dist/cjs/daemon/index.native.js.map +1 -0
  19. package/dist/cjs/daemon/ipc.cjs +235 -0
  20. package/dist/cjs/daemon/ipc.js +204 -0
  21. package/dist/cjs/daemon/ipc.js.map +6 -0
  22. package/dist/cjs/daemon/ipc.native.js +276 -0
  23. package/dist/cjs/daemon/ipc.native.js.map +1 -0
  24. package/dist/cjs/daemon/picker.cjs +223 -0
  25. package/dist/cjs/daemon/picker.js +191 -0
  26. package/dist/cjs/daemon/picker.js.map +6 -0
  27. package/dist/cjs/daemon/picker.native.js +308 -0
  28. package/dist/cjs/daemon/picker.native.js.map +1 -0
  29. package/dist/cjs/daemon/proxy.cjs +75 -0
  30. package/dist/cjs/daemon/proxy.js +70 -0
  31. package/dist/cjs/daemon/proxy.js.map +6 -0
  32. package/dist/cjs/daemon/proxy.native.js +81 -0
  33. package/dist/cjs/daemon/proxy.native.js.map +1 -0
  34. package/dist/cjs/daemon/registry.cjs +85 -0
  35. package/dist/cjs/daemon/registry.js +81 -0
  36. package/dist/cjs/daemon/registry.js.map +6 -0
  37. package/dist/cjs/daemon/registry.native.js +120 -0
  38. package/dist/cjs/daemon/registry.native.js.map +1 -0
  39. package/dist/cjs/daemon/server.cjs +178 -0
  40. package/dist/cjs/daemon/server.js +179 -0
  41. package/dist/cjs/daemon/server.js.map +6 -0
  42. package/dist/cjs/daemon/server.native.js +200 -0
  43. package/dist/cjs/daemon/server.native.js.map +1 -0
  44. package/dist/cjs/daemon/tui.cjs +223 -0
  45. package/dist/cjs/daemon/tui.js +192 -0
  46. package/dist/cjs/daemon/tui.js.map +6 -0
  47. package/dist/cjs/daemon/tui.native.js +234 -0
  48. package/dist/cjs/daemon/tui.native.js.map +1 -0
  49. package/dist/cjs/daemon/types.cjs +16 -0
  50. package/dist/cjs/daemon/types.js +14 -0
  51. package/dist/cjs/daemon/types.js.map +6 -0
  52. package/dist/cjs/daemon/types.native.js +19 -0
  53. package/dist/cjs/daemon/types.native.js.map +1 -0
  54. package/dist/cjs/daemon/utils.cjs +74 -0
  55. package/dist/cjs/daemon/utils.js +65 -0
  56. package/dist/cjs/daemon/utils.js.map +6 -0
  57. package/dist/cjs/daemon/utils.native.js +83 -0
  58. package/dist/cjs/daemon/utils.native.js.map +1 -0
  59. package/dist/cjs/fork/createMemoryHistory.cjs +22 -8
  60. package/dist/cjs/fork/createMemoryHistory.js +20 -6
  61. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  62. package/dist/cjs/fork/createMemoryHistory.native.js +22 -8
  63. package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
  64. package/dist/cjs/fork/useLinking.cjs +52 -13
  65. package/dist/cjs/fork/useLinking.js +35 -10
  66. package/dist/cjs/fork/useLinking.js.map +1 -1
  67. package/dist/cjs/index.cjs +6 -2
  68. package/dist/cjs/index.js +4 -2
  69. package/dist/cjs/index.js.map +2 -2
  70. package/dist/cjs/index.native.js +6 -2
  71. package/dist/cjs/index.native.js.map +1 -1
  72. package/dist/cjs/router/linkingConfig.cjs +13 -2
  73. package/dist/cjs/router/linkingConfig.js +14 -5
  74. package/dist/cjs/router/linkingConfig.js.map +1 -1
  75. package/dist/cjs/router/linkingConfig.native.js +10 -1
  76. package/dist/cjs/router/linkingConfig.native.js.map +1 -1
  77. package/dist/cjs/router/routeMask.cjs +137 -0
  78. package/dist/cjs/router/routeMask.js +127 -0
  79. package/dist/cjs/router/routeMask.js.map +6 -0
  80. package/dist/cjs/router/routeMask.native.js +160 -0
  81. package/dist/cjs/router/routeMask.native.js.map +1 -0
  82. package/dist/cjs/router/router.cjs +26 -3
  83. package/dist/cjs/router/router.js +23 -3
  84. package/dist/cjs/router/router.js.map +1 -1
  85. package/dist/cjs/router/router.native.js +26 -3
  86. package/dist/cjs/router/router.native.js.map +1 -1
  87. package/dist/cjs/server/PreloadScripts.native.js +45 -39
  88. package/dist/cjs/server/PreloadScripts.native.js.map +1 -6
  89. package/dist/cjs/vite/DevHead.cjs +2 -909
  90. package/dist/cjs/vite/DevHead.js +1 -917
  91. package/dist/cjs/vite/DevHead.js.map +1 -1
  92. package/dist/cjs/vite/DevHead.native.js +1 -882
  93. package/dist/cjs/vite/DevHead.native.js.map +1 -1
  94. package/dist/cjs/vite/one.cjs +4 -1
  95. package/dist/cjs/vite/one.js +4 -2
  96. package/dist/cjs/vite/one.js.map +1 -1
  97. package/dist/cjs/vite/one.native.js +4 -1
  98. package/dist/cjs/vite/one.native.js.map +1 -1
  99. package/dist/cjs/vite/plugins/devtoolsPlugin.cjs +55 -0
  100. package/dist/cjs/vite/plugins/devtoolsPlugin.js +49 -0
  101. package/dist/cjs/vite/plugins/devtoolsPlugin.js.map +6 -0
  102. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js +58 -0
  103. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -0
  104. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -6
  105. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +1 -6
  106. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  107. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
  108. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  109. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -1
  110. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +5 -1
  111. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  112. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +8 -1
  113. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  114. package/dist/esm/cli/daemon.js +89 -0
  115. package/dist/esm/cli/daemon.js.map +6 -0
  116. package/dist/esm/cli/daemon.mjs +102 -0
  117. package/dist/esm/cli/daemon.mjs.map +1 -0
  118. package/dist/esm/cli/daemon.native.js +136 -0
  119. package/dist/esm/cli/daemon.native.js.map +1 -0
  120. package/dist/esm/createHandleRequest.js +10 -5
  121. package/dist/esm/createHandleRequest.js.map +1 -1
  122. package/dist/esm/createHandleRequest.mjs +15 -8
  123. package/dist/esm/createHandleRequest.mjs.map +1 -1
  124. package/dist/esm/createHandleRequest.native.js +8 -3
  125. package/dist/esm/createHandleRequest.native.js.map +1 -1
  126. package/dist/esm/daemon/index.js +8 -0
  127. package/dist/esm/daemon/index.js.map +6 -0
  128. package/dist/esm/daemon/index.mjs +8 -0
  129. package/dist/esm/daemon/index.mjs.map +1 -0
  130. package/dist/esm/daemon/index.native.js +8 -0
  131. package/dist/esm/daemon/index.native.js.map +1 -0
  132. package/dist/esm/daemon/ipc.js +192 -0
  133. package/dist/esm/daemon/ipc.js.map +6 -0
  134. package/dist/esm/daemon/ipc.mjs +191 -0
  135. package/dist/esm/daemon/ipc.mjs.map +1 -0
  136. package/dist/esm/daemon/ipc.native.js +229 -0
  137. package/dist/esm/daemon/ipc.native.js.map +1 -0
  138. package/dist/esm/daemon/picker.js +169 -0
  139. package/dist/esm/daemon/picker.js.map +6 -0
  140. package/dist/esm/daemon/picker.mjs +186 -0
  141. package/dist/esm/daemon/picker.mjs.map +1 -0
  142. package/dist/esm/daemon/picker.native.js +268 -0
  143. package/dist/esm/daemon/picker.native.js.map +1 -0
  144. package/dist/esm/daemon/proxy.js +47 -0
  145. package/dist/esm/daemon/proxy.js.map +6 -0
  146. package/dist/esm/daemon/proxy.mjs +40 -0
  147. package/dist/esm/daemon/proxy.mjs.map +1 -0
  148. package/dist/esm/daemon/proxy.native.js +43 -0
  149. package/dist/esm/daemon/proxy.native.js.map +1 -0
  150. package/dist/esm/daemon/registry.js +65 -0
  151. package/dist/esm/daemon/registry.js.map +6 -0
  152. package/dist/esm/daemon/registry.mjs +53 -0
  153. package/dist/esm/daemon/registry.mjs.map +1 -0
  154. package/dist/esm/daemon/registry.native.js +85 -0
  155. package/dist/esm/daemon/registry.native.js.map +1 -0
  156. package/dist/esm/daemon/server.js +167 -0
  157. package/dist/esm/daemon/server.js.map +6 -0
  158. package/dist/esm/daemon/server.mjs +143 -0
  159. package/dist/esm/daemon/server.mjs.map +1 -0
  160. package/dist/esm/daemon/server.native.js +162 -0
  161. package/dist/esm/daemon/server.native.js.map +1 -0
  162. package/dist/esm/daemon/tui.js +171 -0
  163. package/dist/esm/daemon/tui.js.map +6 -0
  164. package/dist/esm/daemon/tui.mjs +187 -0
  165. package/dist/esm/daemon/tui.mjs.map +1 -0
  166. package/dist/esm/daemon/tui.native.js +195 -0
  167. package/dist/esm/daemon/tui.native.js.map +1 -0
  168. package/dist/esm/daemon/types.js +1 -0
  169. package/dist/esm/daemon/types.js.map +6 -0
  170. package/dist/esm/daemon/types.mjs +2 -0
  171. package/dist/esm/daemon/types.mjs.map +1 -0
  172. package/dist/esm/daemon/types.native.js +2 -0
  173. package/dist/esm/daemon/types.native.js.map +1 -0
  174. package/dist/esm/daemon/utils.js +42 -0
  175. package/dist/esm/daemon/utils.js.map +6 -0
  176. package/dist/esm/daemon/utils.mjs +39 -0
  177. package/dist/esm/daemon/utils.mjs.map +1 -0
  178. package/dist/esm/daemon/utils.native.js +45 -0
  179. package/dist/esm/daemon/utils.native.js.map +1 -0
  180. package/dist/esm/fork/createMemoryHistory.js +20 -6
  181. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  182. package/dist/esm/fork/createMemoryHistory.mjs +22 -8
  183. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  184. package/dist/esm/fork/createMemoryHistory.native.js +22 -8
  185. package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
  186. package/dist/esm/fork/useLinking.js +35 -9
  187. package/dist/esm/fork/useLinking.js.map +1 -1
  188. package/dist/esm/fork/useLinking.mjs +52 -13
  189. package/dist/esm/fork/useLinking.mjs.map +1 -1
  190. package/dist/esm/index.js +4 -0
  191. package/dist/esm/index.js.map +1 -1
  192. package/dist/esm/index.mjs +3 -1
  193. package/dist/esm/index.mjs.map +1 -1
  194. package/dist/esm/index.native.js +3 -1
  195. package/dist/esm/index.native.js.map +1 -1
  196. package/dist/esm/router/linkingConfig.js +14 -4
  197. package/dist/esm/router/linkingConfig.js.map +1 -1
  198. package/dist/esm/router/linkingConfig.mjs +12 -1
  199. package/dist/esm/router/linkingConfig.mjs.map +1 -1
  200. package/dist/esm/router/linkingConfig.native.js +10 -1
  201. package/dist/esm/router/linkingConfig.native.js.map +1 -1
  202. package/dist/esm/router/routeMask.js +111 -0
  203. package/dist/esm/router/routeMask.js.map +6 -0
  204. package/dist/esm/router/routeMask.mjs +108 -0
  205. package/dist/esm/router/routeMask.mjs.map +1 -0
  206. package/dist/esm/router/routeMask.native.js +128 -0
  207. package/dist/esm/router/routeMask.native.js.map +1 -0
  208. package/dist/esm/router/router.js +23 -2
  209. package/dist/esm/router/router.js.map +1 -1
  210. package/dist/esm/router/router.mjs +24 -3
  211. package/dist/esm/router/router.mjs.map +1 -1
  212. package/dist/esm/router/router.native.js +24 -3
  213. package/dist/esm/router/router.native.js.map +1 -1
  214. package/dist/esm/server/PreloadScripts.native.js +29 -33
  215. package/dist/esm/server/PreloadScripts.native.js.map +1 -6
  216. package/dist/esm/vite/DevHead.js +1 -917
  217. package/dist/esm/vite/DevHead.js.map +1 -1
  218. package/dist/esm/vite/DevHead.mjs +2 -909
  219. package/dist/esm/vite/DevHead.mjs.map +1 -1
  220. package/dist/esm/vite/DevHead.native.js +0 -881
  221. package/dist/esm/vite/DevHead.native.js.map +1 -1
  222. package/dist/esm/vite/one.js +4 -1
  223. package/dist/esm/vite/one.js.map +1 -1
  224. package/dist/esm/vite/one.mjs +4 -1
  225. package/dist/esm/vite/one.mjs.map +1 -1
  226. package/dist/esm/vite/one.native.js +4 -1
  227. package/dist/esm/vite/one.native.js.map +1 -1
  228. package/dist/esm/vite/plugins/devtoolsPlugin.js +33 -0
  229. package/dist/esm/vite/plugins/devtoolsPlugin.js.map +6 -0
  230. package/dist/esm/vite/plugins/devtoolsPlugin.mjs +31 -0
  231. package/dist/esm/vite/plugins/devtoolsPlugin.mjs.map +1 -0
  232. package/dist/esm/vite/plugins/devtoolsPlugin.native.js +31 -0
  233. package/dist/esm/vite/plugins/devtoolsPlugin.native.js.map +1 -0
  234. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +1 -6
  235. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  236. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -6
  237. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  238. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -6
  239. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  240. package/dist/esm/vite/plugins/virtualEntryPlugin.js +5 -1
  241. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  242. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +7 -1
  243. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  244. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +8 -1
  245. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  246. package/package.json +12 -10
  247. package/src/createHandleRequest.ts +16 -3
  248. package/src/fork/createMemoryHistory.tsx +39 -4
  249. package/src/fork/useLinking.ts +83 -12
  250. package/src/index.ts +3 -0
  251. package/src/router/linkingConfig.ts +21 -4
  252. package/src/router/routeMask.ts +293 -0
  253. package/src/router/router.ts +53 -1
  254. package/src/vite/DevHead.tsx +1 -924
  255. package/src/vite/one.ts +4 -0
  256. package/src/vite/plugins/devtoolsPlugin.ts +45 -0
  257. package/src/vite/plugins/fileSystemRouterPlugin.tsx +2 -7
  258. package/src/vite/plugins/virtualEntryPlugin.ts +12 -3
  259. package/src/vite/types.ts +1 -0
  260. package/types/cli/daemon.d.ts.map +1 -0
  261. package/types/createHandleRequest.d.ts.map +1 -1
  262. package/types/daemon/index.d.ts.map +1 -0
  263. package/types/daemon/ipc.d.ts.map +1 -0
  264. package/types/daemon/picker.d.ts.map +1 -0
  265. package/types/daemon/proxy.d.ts.map +1 -0
  266. package/types/daemon/registry.d.ts.map +1 -0
  267. package/types/daemon/server.d.ts.map +1 -0
  268. package/types/daemon/tui.d.ts.map +1 -0
  269. package/types/daemon/types.d.ts.map +1 -0
  270. package/types/daemon/utils.d.ts.map +1 -0
  271. package/types/fork/createMemoryHistory.d.ts +6 -2
  272. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  273. package/types/fork/useLinking.d.ts.map +1 -1
  274. package/types/index.d.ts +2 -0
  275. package/types/index.d.ts.map +1 -1
  276. package/types/router/linkingConfig.d.ts.map +1 -1
  277. package/types/router/routeMask.d.ts +130 -0
  278. package/types/router/routeMask.d.ts.map +1 -0
  279. package/types/router/router.d.ts +23 -0
  280. package/types/router/router.d.ts.map +1 -1
  281. package/types/vite/DevHead.d.ts.map +1 -1
  282. package/types/vite/one.d.ts.map +1 -1
  283. package/types/vite/plugins/devtoolsPlugin.d.ts +5 -0
  284. package/types/vite/plugins/devtoolsPlugin.d.ts.map +1 -0
  285. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  286. package/types/vite/plugins/virtualEntryPlugin.d.ts +1 -3
  287. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  288. package/types/vite/types.d.ts.map +1 -1
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf,
8
+ __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: !0
13
+ });
14
+ },
15
+ __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: !0
30
+ }) : target, mod)),
31
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: !0
33
+ }), mod);
34
+ var picker_exports = {};
35
+ __export(picker_exports, {
36
+ getBootedSimulators: () => getBootedSimulators,
37
+ pickServer: () => pickServer,
38
+ resolvePendingPicker: () => resolvePendingPicker,
39
+ showPicker: () => showPicker
40
+ });
41
+ module.exports = __toCommonJS(picker_exports);
42
+ var import_child_process = require("child_process"),
43
+ import_util = require("util"),
44
+ readline = __toESM(require("readline"), 1),
45
+ execAsync = (0, import_util.promisify)(import_child_process.exec),
46
+ activePickerContext = null,
47
+ rl = null,
48
+ stdinDataListener = null;
49
+ async function getBootedSimulators() {
50
+ try {
51
+ var {
52
+ stdout
53
+ } = await execAsync("xcrun simctl list devices booted -j"),
54
+ data = JSON.parse(stdout),
55
+ simulators = [],
56
+ _iteratorNormalCompletion = !0,
57
+ _didIteratorError = !1,
58
+ _iteratorError = void 0;
59
+ try {
60
+ for (var _iterator = Object.entries(data.devices || {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
61
+ var [runtime, devices] = _step.value,
62
+ versionMatch = runtime.match(/iOS-(\d+)-(\d+)/),
63
+ iosVersion = versionMatch ? `${versionMatch[1]}.${versionMatch[2]}` : void 0,
64
+ _iteratorNormalCompletion1 = !0,
65
+ _didIteratorError1 = !1,
66
+ _iteratorError1 = void 0;
67
+ try {
68
+ for (var _iterator1 = devices[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
69
+ var device = _step1.value;
70
+ device.state === "Booted" && simulators.push({
71
+ name: device.name,
72
+ udid: device.udid,
73
+ state: device.state,
74
+ iosVersion
75
+ });
76
+ }
77
+ } catch (err) {
78
+ _didIteratorError1 = !0, _iteratorError1 = err;
79
+ } finally {
80
+ try {
81
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
82
+ } finally {
83
+ if (_didIteratorError1) throw _iteratorError1;
84
+ }
85
+ }
86
+ }
87
+ } catch (err) {
88
+ _didIteratorError = !0, _iteratorError = err;
89
+ } finally {
90
+ try {
91
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
92
+ } finally {
93
+ if (_didIteratorError) throw _iteratorError;
94
+ }
95
+ }
96
+ return simulators;
97
+ } catch {
98
+ return [];
99
+ }
100
+ }
101
+ async function showMacOSDialog(bundleId, servers) {
102
+ if (process.platform !== "darwin") return null;
103
+ var simulators = await getBootedSimulators(),
104
+ simInfo = "";
105
+ if (simulators.length > 0) {
106
+ var seen = /* @__PURE__ */new Set(),
107
+ uniqueSims = [],
108
+ _iteratorNormalCompletion = !0,
109
+ _didIteratorError = !1,
110
+ _iteratorError = void 0;
111
+ try {
112
+ for (var _iterator = simulators[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
113
+ var sim = _step.value,
114
+ key = `${sim.name}-${sim.iosVersion || ""}`;
115
+ seen.has(key) || (seen.add(key), uniqueSims.push(sim.iosVersion ? `${sim.name} (iOS ${sim.iosVersion})` : sim.name));
116
+ }
117
+ } catch (err) {
118
+ _didIteratorError = !0, _iteratorError = err;
119
+ } finally {
120
+ try {
121
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
122
+ } finally {
123
+ if (_didIteratorError) throw _iteratorError;
124
+ }
125
+ }
126
+ uniqueSims.length === 1 ? simInfo = `\\n\\nFrom: ${uniqueSims[0]}` : simInfo = `\\n\\nActive simulators: ${uniqueSims.slice(0, 3).join(", ")}${uniqueSims.length > 3 ? "..." : ""}`;
127
+ }
128
+ var choices = servers.map(function (s, i) {
129
+ var shortRoot = s.root.replace(process.env.HOME || "", "~");
130
+ return `${i + 1}. ${shortRoot} (port ${s.port})`;
131
+ }),
132
+ choicesStr = choices.map(function (c) {
133
+ return `"${c.replace(/"/g, '\\"')}"`;
134
+ }).join(", "),
135
+ prompt = `${bundleId} bundle requested${simInfo}\\n\\nWhich project should serve it?`,
136
+ script = `choose from list {${choicesStr}} with title "one daemon" with prompt "${prompt}" default items {"${choices[0].replace(/"/g, '\\"')}"}`;
137
+ try {
138
+ var {
139
+ stdout
140
+ } = await execAsync(`osascript -e '${script}'`),
141
+ result = stdout.trim();
142
+ if (result === "false" || !result) return null;
143
+ var match = result.match(/^(\d+)\./);
144
+ if (match) {
145
+ var index = parseInt(match[1], 10) - 1;
146
+ if (index >= 0 && index < servers.length) return {
147
+ server: servers[index],
148
+ remember: !1
149
+ };
150
+ }
151
+ return null;
152
+ } catch {
153
+ return null;
154
+ }
155
+ }
156
+ function showPicker(context) {
157
+ if (activePickerContext = context, process.platform === "darwin") {
158
+ showMacOSDialog(context.bundleId, context.servers).then(function (result) {
159
+ result ? (cleanupPicker(), context.onSelect(result.server, result.remember)) : activePickerContext === context && showTerminalPicker(context);
160
+ });
161
+ return;
162
+ }
163
+ showTerminalPicker(context);
164
+ }
165
+ function showTerminalPicker(context) {
166
+ console.log(`
167
+ ` + "\u2500".repeat(60)), console.log(`\u{1F500} ${context.bundleId} bundle requested`), console.log("\u2500".repeat(60)), getBootedSimulators().then(function (sims) {
168
+ if (sims.length > 0) {
169
+ var seen = /* @__PURE__ */new Set(),
170
+ uniqueSims = [],
171
+ _iteratorNormalCompletion = !0,
172
+ _didIteratorError = !1,
173
+ _iteratorError = void 0;
174
+ try {
175
+ for (var _iterator = sims[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
176
+ var sim = _step.value,
177
+ key = `${sim.name}-${sim.iosVersion || ""}`;
178
+ seen.has(key) || (seen.add(key), uniqueSims.push(sim));
179
+ }
180
+ } catch (err) {
181
+ _didIteratorError = !0, _iteratorError = err;
182
+ } finally {
183
+ try {
184
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
185
+ } finally {
186
+ if (_didIteratorError) throw _iteratorError;
187
+ }
188
+ }
189
+ if (uniqueSims.length === 1) {
190
+ var sim1 = uniqueSims[0];
191
+ console.log(`
192
+ From: ${sim1.name}${sim1.iosVersion ? ` (iOS ${sim1.iosVersion})` : ""}`);
193
+ } else {
194
+ console.log(`
195
+ Active simulators:`);
196
+ var _iteratorNormalCompletion1 = !0,
197
+ _didIteratorError1 = !1,
198
+ _iteratorError1 = void 0;
199
+ try {
200
+ for (var _iterator1 = uniqueSims.slice(0, 5)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
201
+ var sim2 = _step1.value;
202
+ console.log(` \u2022 ${sim2.name}${sim2.iosVersion ? ` (iOS ${sim2.iosVersion})` : ""}`);
203
+ }
204
+ } catch (err) {
205
+ _didIteratorError1 = !0, _iteratorError1 = err;
206
+ } finally {
207
+ try {
208
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
209
+ } finally {
210
+ if (_didIteratorError1) throw _iteratorError1;
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }), console.log(`
216
+ Which project should serve it?`), context.servers.forEach(function (server, i) {
217
+ var shortRoot = server.root.replace(process.env.HOME || "", "~");
218
+ console.log(` [${i + 1}] ${shortRoot} (port ${server.port})`);
219
+ }), console.log(`
220
+ Press 1-` + context.servers.length + " to select"), console.log("Or 'r' + number to remember (e.g., 'r1')"), console.log(`Press 'c' to cancel
221
+ `), setupKeyboardInput();
222
+ }
223
+ function setupKeyboardInput() {
224
+ if (!rl) {
225
+ rl = readline.createInterface({
226
+ input: process.stdin,
227
+ output: process.stdout
228
+ }), process.stdin.isTTY && process.stdin.setRawMode(!0), process.stdin.resume();
229
+ var buffer = "";
230
+ stdinDataListener = function (key) {
231
+ var str = key.toString();
232
+ if (str === "") {
233
+ cancelPicker();
234
+ return;
235
+ }
236
+ if (str === "\x1B") {
237
+ cancelPicker();
238
+ return;
239
+ }
240
+ if (str === "\x7F") {
241
+ buffer = buffer.slice(0, -1);
242
+ return;
243
+ }
244
+ if (str === "\r" || str === `
245
+ `) {
246
+ processInput(buffer), buffer = "";
247
+ return;
248
+ }
249
+ 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 = "");
250
+ }, process.stdin.on("data", stdinDataListener);
251
+ }
252
+ }
253
+ function processInput(input) {
254
+ if (activePickerContext) {
255
+ var remember = input.toLowerCase().startsWith("r"),
256
+ numStr = remember ? input.slice(1) : input,
257
+ num = parseInt(numStr, 10);
258
+ if (isNaN(num) || num < 1 || num > activePickerContext.servers.length) {
259
+ console.log(`Invalid selection: ${input}`);
260
+ return;
261
+ }
262
+ var server = activePickerContext.servers[num - 1],
263
+ context = activePickerContext;
264
+ cleanupPicker(), context.onSelect(server, remember);
265
+ }
266
+ }
267
+ function cancelPicker() {
268
+ var context = activePickerContext;
269
+ cleanupPicker(), context && context.onCancel();
270
+ }
271
+ function cleanupPicker() {
272
+ activePickerContext = null, stdinDataListener && (process.stdin.removeListener("data", stdinDataListener), stdinDataListener = null), rl && (rl.close(), rl = null), process.stdin.isTTY && process.stdin.setRawMode(!1);
273
+ }
274
+ var pendingPickerResolvers = /* @__PURE__ */new Map();
275
+ function resolvePendingPicker(bundleId, serverId) {
276
+ var resolver = pendingPickerResolvers.get(bundleId);
277
+ if (!resolver || !activePickerContext) return !1;
278
+ var server = activePickerContext.servers.find(function (s) {
279
+ return s.id === serverId;
280
+ });
281
+ return server ? (pendingPickerResolvers.delete(bundleId), cleanupPicker(), resolver.resolve(server), !0) : !1;
282
+ }
283
+ function pickServer(bundleId, servers) {
284
+ return new Promise(function (resolve, reject) {
285
+ pendingPickerResolvers.set(bundleId, {
286
+ resolve: function (server) {
287
+ return resolve({
288
+ server,
289
+ remember: !1
290
+ });
291
+ },
292
+ reject
293
+ }), showPicker({
294
+ bundleId,
295
+ servers,
296
+ onSelect: function (server, remember) {
297
+ pendingPickerResolvers.delete(bundleId), resolve({
298
+ server,
299
+ remember
300
+ });
301
+ },
302
+ onCancel: function () {
303
+ pendingPickerResolvers.delete(bundleId), reject(new Error("Selection cancelled"));
304
+ }
305
+ });
306
+ });
307
+ }
308
+ //# sourceMappingURL=picker.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","picker_exports","__export","getBootedSimulators","pickServer","resolvePendingPicker","showPicker","module","exports","import_child_process","require","import_util","readline","__toESM","execAsync","promisify","exec","activePickerContext","rl","stdinDataListener","stdout","data","JSON","parse","simulators","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","devices","Symbol","iterator","_step","next","done","runtime","versionMatch","match","iosVersion","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","device","state","push","name","udid","err","return","showMacOSDialog","bundleId","servers","process","platform","simInfo","length","seen","Set","uniqueSims","sim","key","has","add","slice","join","choices","map","s","i","shortRoot","root","replace","env","HOME","port","choicesStr","c","prompt","script","result","trim","index","parseInt","server","remember","context","then","cleanupPicker","onSelect","showTerminalPicker","console","log","repeat","sims","sim1","sim2","forEach","setupKeyboardInput","createInterface","input","stdin","output","isTTY","setRawMode","resume","buffer"],"sources":["../../../src/daemon/picker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,75 @@
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 proxy_exports = {};
33
+ __export(proxy_exports, {
34
+ proxyHttpRequest: () => proxyHttpRequest,
35
+ proxyWebSocket: () => proxyWebSocket
36
+ });
37
+ module.exports = __toCommonJS(proxy_exports);
38
+ var http = __toESM(require("node:http"), 1),
39
+ net = __toESM(require("node:net"), 1);
40
+ function proxyHttpRequest(req, res, target) {
41
+ const options = {
42
+ hostname: "localhost",
43
+ port: target.port,
44
+ path: req.url,
45
+ method: req.method,
46
+ headers: {
47
+ ...req.headers,
48
+ // preserve original host but add forwarded headers
49
+ "x-forwarded-host": req.headers.host,
50
+ "x-forwarded-for": req.socket.remoteAddress
51
+ }
52
+ },
53
+ proxyReq = http.request(options, proxyRes => {
54
+ res.writeHead(proxyRes.statusCode || 500, proxyRes.headers), proxyRes.pipe(res);
55
+ });
56
+ proxyReq.on("error", err => {
57
+ console.error(`[daemon] Proxy error to port ${target.port}:`, err.message), res.headersSent || (res.writeHead(502), res.end(`Bad Gateway: ${err.message}`));
58
+ }), req.pipe(proxyReq);
59
+ }
60
+ function proxyWebSocket(req, socket, head, target) {
61
+ const proxySocket = net.connect(target.port, "localhost", () => {
62
+ const reqLines = [`${req.method} ${req.url} HTTP/1.1`, ...Object.entries(req.headers).map(([k, v]) => Array.isArray(v) ? `${k}: ${v.join(", ")}` : `${k}: ${v}`), "", ""];
63
+ proxySocket.write(reqLines.join(`\r
64
+ `)), head.length && proxySocket.write(head), socket.pipe(proxySocket), proxySocket.pipe(socket);
65
+ });
66
+ proxySocket.on("error", err => {
67
+ console.error(`[daemon] WebSocket proxy error to port ${target.port}:`, err.message), socket.end();
68
+ }), socket.on("error", err => {
69
+ console.error("[daemon] Client socket error:", err.message), proxySocket.end();
70
+ }), socket.on("close", () => {
71
+ proxySocket.end();
72
+ }), proxySocket.on("close", () => {
73
+ socket.end();
74
+ });
75
+ }
@@ -0,0 +1,70 @@
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 proxy_exports = {};
24
+ __export(proxy_exports, {
25
+ proxyHttpRequest: () => proxyHttpRequest,
26
+ proxyWebSocket: () => proxyWebSocket
27
+ });
28
+ module.exports = __toCommonJS(proxy_exports);
29
+ var http = __toESM(require("node:http"), 1), net = __toESM(require("node:net"), 1);
30
+ function proxyHttpRequest(req, res, target) {
31
+ const options = {
32
+ hostname: "localhost",
33
+ port: target.port,
34
+ path: req.url,
35
+ method: req.method,
36
+ headers: {
37
+ ...req.headers,
38
+ // preserve original host but add forwarded headers
39
+ "x-forwarded-host": req.headers.host,
40
+ "x-forwarded-for": req.socket.remoteAddress
41
+ }
42
+ }, proxyReq = http.request(options, (proxyRes) => {
43
+ res.writeHead(proxyRes.statusCode || 500, proxyRes.headers), proxyRes.pipe(res);
44
+ });
45
+ proxyReq.on("error", (err) => {
46
+ console.error(`[daemon] Proxy error to port ${target.port}:`, err.message), res.headersSent || (res.writeHead(502), res.end(`Bad Gateway: ${err.message}`));
47
+ }), req.pipe(proxyReq);
48
+ }
49
+ function proxyWebSocket(req, socket, head, target) {
50
+ const proxySocket = net.connect(target.port, "localhost", () => {
51
+ const reqLines = [
52
+ `${req.method} ${req.url} HTTP/1.1`,
53
+ ...Object.entries(req.headers).map(([k, v]) => Array.isArray(v) ? `${k}: ${v.join(", ")}` : `${k}: ${v}`),
54
+ "",
55
+ ""
56
+ ];
57
+ proxySocket.write(reqLines.join(`\r
58
+ `)), head.length && proxySocket.write(head), socket.pipe(proxySocket), proxySocket.pipe(socket);
59
+ });
60
+ proxySocket.on("error", (err) => {
61
+ console.error(`[daemon] WebSocket proxy error to port ${target.port}:`, err.message), socket.end();
62
+ }), socket.on("error", (err) => {
63
+ console.error("[daemon] Client socket error:", err.message), proxySocket.end();
64
+ }), socket.on("close", () => {
65
+ proxySocket.end();
66
+ }), proxySocket.on("close", () => {
67
+ socket.end();
68
+ });
69
+ }
70
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/daemon/proxy.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,WAAsB,kCACtB,MAAqB;AAGd,SAAS,iBACd,KACA,KACA,QACM;AACN,QAAM,UAA+B;AAAA,IACnC,UAAU;AAAA,IACV,MAAM,OAAO;AAAA,IACb,MAAM,IAAI;AAAA,IACV,QAAQ,IAAI;AAAA,IACZ,SAAS;AAAA,MACP,GAAG,IAAI;AAAA;AAAA,MAEP,oBAAoB,IAAI,QAAQ;AAAA,MAChC,mBAAmB,IAAI,OAAO;AAAA,IAChC;AAAA,EACF,GAEM,WAAW,KAAK,QAAQ,SAAS,CAAC,aAAa;AACnD,QAAI,UAAU,SAAS,cAAc,KAAK,SAAS,OAAO,GAC1D,SAAS,KAAK,GAAG;AAAA,EACnB,CAAC;AAED,WAAS,GAAG,SAAS,CAAC,QAAQ;AAC5B,YAAQ,MAAM,gCAAgC,OAAO,IAAI,KAAK,IAAI,OAAO,GACpE,IAAI,gBACP,IAAI,UAAU,GAAG,GACjB,IAAI,IAAI,gBAAgB,IAAI,OAAO,EAAE;AAAA,EAEzC,CAAC,GAED,IAAI,KAAK,QAAQ;AACnB;AAEO,SAAS,eACd,KACA,QACA,MACA,QACM;AACN,QAAM,cAAc,IAAI,QAAQ,OAAO,MAAM,aAAa,MAAM;AAE9D,UAAM,WAAW;AAAA,MACf,GAAG,IAAI,MAAM,IAAI,IAAI,GAAG;AAAA,MACxB,GAAG,OAAO,QAAQ,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MACnC,MAAM,QAAQ,CAAC,IAAU,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAC3C,GAAG,CAAC,KAAK,CAAC,EAClB;AAAA,MACD;AAAA,MACA;AAAA,IACF;AAEA,gBAAY,MAAM,SAAS,KAAK;AAAA,CAAM,CAAC,GACnC,KAAK,UACP,YAAY,MAAM,IAAI,GAIxB,OAAO,KAAK,WAAW,GACvB,YAAY,KAAK,MAAM;AAAA,EACzB,CAAC;AAED,cAAY,GAAG,SAAS,CAAC,QAAQ;AAC/B,YAAQ,MAAM,0CAA0C,OAAO,IAAI,KAAK,IAAI,OAAO,GACnF,OAAO,IAAI;AAAA,EACb,CAAC,GAED,OAAO,GAAG,SAAS,CAAC,QAAQ;AAC1B,YAAQ,MAAM,iCAAiC,IAAI,OAAO,GAC1D,YAAY,IAAI;AAAA,EAClB,CAAC,GAED,OAAO,GAAG,SAAS,MAAM;AACvB,gBAAY,IAAI;AAAA,EAClB,CAAC,GAED,YAAY,GAAG,SAAS,MAAM;AAC5B,WAAO,IAAI;AAAA,EACb,CAAC;AACH;",
5
+ "names": []
6
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf,
8
+ __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: !0
13
+ });
14
+ },
15
+ __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: !0
30
+ }) : target, mod)),
31
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: !0
33
+ }), mod);
34
+ var proxy_exports = {};
35
+ __export(proxy_exports, {
36
+ proxyHttpRequest: () => proxyHttpRequest,
37
+ proxyWebSocket: () => proxyWebSocket
38
+ });
39
+ module.exports = __toCommonJS(proxy_exports);
40
+ var http = __toESM(require("http"), 1),
41
+ net = __toESM(require("net"), 1);
42
+ function proxyHttpRequest(req, res, target) {
43
+ var options = {
44
+ hostname: "localhost",
45
+ port: target.port,
46
+ path: req.url,
47
+ method: req.method,
48
+ headers: {
49
+ ...req.headers,
50
+ // preserve original host but add forwarded headers
51
+ "x-forwarded-host": req.headers.host,
52
+ "x-forwarded-for": req.socket.remoteAddress
53
+ }
54
+ },
55
+ proxyReq = http.request(options, function (proxyRes) {
56
+ res.writeHead(proxyRes.statusCode || 500, proxyRes.headers), proxyRes.pipe(res);
57
+ });
58
+ proxyReq.on("error", function (err) {
59
+ console.error(`[daemon] Proxy error to port ${target.port}:`, err.message), res.headersSent || (res.writeHead(502), res.end(`Bad Gateway: ${err.message}`));
60
+ }), req.pipe(proxyReq);
61
+ }
62
+ function proxyWebSocket(req, socket, head, target) {
63
+ var proxySocket = net.connect(target.port, "localhost", function () {
64
+ var reqLines = [`${req.method} ${req.url} HTTP/1.1`, ...Object.entries(req.headers).map(function (param) {
65
+ var [k, v] = param;
66
+ return Array.isArray(v) ? `${k}: ${v.join(", ")}` : `${k}: ${v}`;
67
+ }), "", ""];
68
+ proxySocket.write(reqLines.join(`\r
69
+ `)), head.length && proxySocket.write(head), socket.pipe(proxySocket), proxySocket.pipe(socket);
70
+ });
71
+ proxySocket.on("error", function (err) {
72
+ console.error(`[daemon] WebSocket proxy error to port ${target.port}:`, err.message), socket.end();
73
+ }), socket.on("error", function (err) {
74
+ console.error("[daemon] Client socket error:", err.message), proxySocket.end();
75
+ }), socket.on("close", function () {
76
+ proxySocket.end();
77
+ }), proxySocket.on("close", function () {
78
+ socket.end();
79
+ });
80
+ }
81
+ //# sourceMappingURL=proxy.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","proxy_exports","__export","proxyHttpRequest","proxyWebSocket","module","exports","http","__toESM","require","net","req","res","target","options","hostname","port","path","url","method","headers","host","socket","remoteAddress","proxyReq","request","proxyRes","writeHead","statusCode","pipe","on","err","console","error","message","headersSent","end","head","proxySocket","connect","reqLines","Object","entries","map","param","k","v","Array","isArray","join","write","length"],"sources":["../../../src/daemon/proxy.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;EAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;IAAAC,KAAA;EAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAEAC,MAAA,CAAAC,OAAsB,GAAAV,YAAA,CAAAK,aAAA;AAIf,IAAAM,IAAA,GAASC,OAAA,CAAAC,OACd,OACA,GACA;EAAAC,GAAA,GACMF,OAAA,CAAAC,OAAA;AACN,SAAMN,gBAA+BA,CAAAQ,GAAA,EAAAC,GAAA,EAAAC,MAAA;EAAA,IACnCC,OAAA,GAAU;MACVC,QAAM,aAAO;MACbC,IAAA,EAAMH,MAAI,CAAAG,IAAA;MACVC,IAAA,EAAAN,GAAQ,CAAAO,GAAI;MACZC,MAAA,EAAAR,GAAS,CAAAQ,MAAA;MAAAC,OACJ,EAAI;QAAA,GAAAT,GAAA,CAAAS,OAAA;QAEP;QACA,oBAAmBT,GAAI,CAAAS,OAAO,CAAAC,IAAA;QAChC,mBAAAV,GAAA,CAAAW,MAAA,CAAAC;MACF;IAGE;IAAAC,QAAI,GAAAjB,IAAU,CAAAkB,OAAS,CAAAX,OAAA,YAAmBY,QAAS;MAEpDd,GAAA,CAAAe,SAAA,CAAAD,QAAA,CAAAE,UAAA,SAAAF,QAAA,CAAAN,OAAA,GAAAM,QAAA,CAAAG,IAAA,CAAAjB,GAAA;IAED;EACEY,QAAA,CAAAM,EAAQ,QAAM,YAAAC,GAAA;IAKfC,OAEG,CAAAC,KAAK,iCAAQpB,MAAA,CAAAG,IAAA,KAAAe,GAAA,CAAAG,OAAA,GAAAtB,GAAA,CAAAuB,WAAA,KAAAvB,GAAA,CAAAe,SAAA,OAAAf,GAAA,CAAAwB,GAAA,iBAAAL,GAAA,CAAAG,OAAA;EACnB,IAAAvB,GAAA,CAAAkB,IAAA,CAAAL,QAAA;AAEO;AAML,SAAMpB,cAAcA,CAAAO,GAAI,EAAAW,MAAQ,EAAAe,IAAO,EAAAxB,MAAM;EAE3C,IAAAyB,WAAM,GAAA5B,GAAW,CAAA6B,OAAA,CAAA1B,MAAA,CAAAG,IAAA;IAAA,IACfwB,QAAO,GAAM,CACb,GAAG7B,GAAA,CAAAQ,MAAO,IAAAR,GAAQ,CAAAO,GAAI,WAAa,EAInC,GAAAuB,MAAA,CAAAC,OAAA,CAAA/B,GAAA,CAAAS,OAAA,EAAAuB,GAAA,WAAAC,KAAA;MACA,KAAAC,CAAA,EAAAC,CAAA,IAAAF,KAAA;MACF,OAAAG,KAAA,CAAAC,OAAA,CAAAF,CAAA,OAAAD,CAAA,KAAAC,CAAA,CAAAG,IAAA,cAAAJ,CAAA,KAAAC,CAAA;IAEA,IACI,IAOL,GAED;IACER,WAAQ,CAAAY,KAAM,CAAAV,QAAA,CAAAS,IAAA;AACH,EACb,CAAC,EAAAZ,IAED,CAAAc,MAAU,IAAAb,WAAU,CAAAY,KAAQ,CAAAb,IAAA,GAAAf,MAAA,CAAAO,IAAA,CAAAS,WAAA,GAAAA,WAAA,CAAAT,IAAA,CAAAP,MAAA;EAC1B;EAEFgB,WAEO,CAAAR,EAAG,UAAS,UAAMC,GAAA;IACvBC,OAAA,CAAAC,KAAY,2CAAIpB,MAAA,CAAAG,IAAA,KAAAe,GAAA,CAAAG,OAAA,GAAAZ,MAAA,CAAAc,GAAA;EAClB,CAAC,GAEDd,MAAA,CAAAQ,EAAA,QAAe,YAASC,GAAM;IAC5BC,OAAO,CAAAC,KAAI,kCAAAF,GAAA,CAAAG,OAAA,GAAAI,WAAA,CAAAF,GAAA;EACb,CAAC,GAAAd,MAAA,CAAAQ,EAAA;IACHQ,WAAA,CAAAF,GAAA","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var registry_exports = {};
22
+ __export(registry_exports, {
23
+ clearRoute: () => clearRoute,
24
+ createRegistry: () => createRegistry,
25
+ findServerById: () => findServerById,
26
+ findServersByBundleId: () => findServersByBundleId,
27
+ getAllRoutes: () => getAllRoutes,
28
+ getAllServers: () => getAllServers,
29
+ getRoute: () => getRoute,
30
+ registerServer: () => registerServer,
31
+ setRoute: () => setRoute,
32
+ unregisterServer: () => unregisterServer
33
+ });
34
+ module.exports = __toCommonJS(registry_exports);
35
+ let idCounter = 0;
36
+ function createRegistry() {
37
+ return {
38
+ servers: /* @__PURE__ */new Map(),
39
+ routes: /* @__PURE__ */new Map()
40
+ };
41
+ }
42
+ function registerServer(state, opts) {
43
+ const id = `server-${++idCounter}`,
44
+ registration = {
45
+ id,
46
+ port: opts.port,
47
+ bundleId: opts.bundleId,
48
+ root: opts.root,
49
+ registeredAt: Date.now()
50
+ };
51
+ return state.servers.set(id, registration), registration;
52
+ }
53
+ function unregisterServer(state, id) {
54
+ const deleted = state.servers.delete(id);
55
+ for (const [key, route] of state.routes) route.serverId === id && state.routes.delete(key);
56
+ return deleted;
57
+ }
58
+ function findServersByBundleId(state, bundleId) {
59
+ const matches = [];
60
+ for (const server of state.servers.values()) server.bundleId === bundleId && matches.push(server);
61
+ return matches;
62
+ }
63
+ function findServerById(state, id) {
64
+ return state.servers.get(id);
65
+ }
66
+ function setRoute(state, key, serverId) {
67
+ const binding = {
68
+ key,
69
+ serverId,
70
+ createdAt: Date.now()
71
+ };
72
+ return state.routes.set(key, binding), binding;
73
+ }
74
+ function getRoute(state, key) {
75
+ return state.routes.get(key);
76
+ }
77
+ function clearRoute(state, key) {
78
+ return state.routes.delete(key);
79
+ }
80
+ function getAllServers(state) {
81
+ return Array.from(state.servers.values());
82
+ }
83
+ function getAllRoutes(state) {
84
+ return Array.from(state.routes.values());
85
+ }