tunli 0.0.27 → 0.2.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.
Files changed (388) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +158 -67
  3. package/bin/tunli +4 -5
  4. package/dist/api-client/ApiClient.d.ts +18 -0
  5. package/dist/api-client/ApiClient.d.ts.map +1 -0
  6. package/dist/api-client/ApiClient.js +100 -0
  7. package/dist/api-client/ApiClient.js.map +1 -0
  8. package/dist/api-client/types.d.ts +26 -0
  9. package/dist/api-client/types.d.ts.map +1 -0
  10. package/dist/api-client/types.js +2 -0
  11. package/dist/api-client/types.js.map +1 -0
  12. package/dist/api-client/utils.d.ts +4 -0
  13. package/dist/api-client/utils.d.ts.map +1 -0
  14. package/dist/api-client/utils.js +13 -0
  15. package/dist/api-client/utils.js.map +1 -0
  16. package/dist/cli-app/AppEventEmitter.d.ts +57 -0
  17. package/dist/cli-app/AppEventEmitter.d.ts.map +1 -0
  18. package/dist/cli-app/AppEventEmitter.js +11 -0
  19. package/dist/cli-app/AppEventEmitter.js.map +1 -0
  20. package/dist/cli-app/Dashboard.d.ts +4 -0
  21. package/dist/cli-app/Dashboard.d.ts.map +1 -0
  22. package/dist/cli-app/Dashboard.js +241 -0
  23. package/dist/cli-app/Dashboard.js.map +1 -0
  24. package/dist/cli-app/LiveLog.d.ts +4 -0
  25. package/dist/cli-app/LiveLog.d.ts.map +1 -0
  26. package/dist/cli-app/LiveLog.js +28 -0
  27. package/dist/cli-app/LiveLog.js.map +1 -0
  28. package/dist/cli-app/types.d.ts +10 -0
  29. package/dist/cli-app/types.d.ts.map +1 -0
  30. package/dist/cli-app/types.js +2 -0
  31. package/dist/cli-app/types.js.map +1 -0
  32. package/dist/cli-app/versionCheck.d.ts +4 -0
  33. package/dist/cli-app/versionCheck.d.ts.map +1 -0
  34. package/dist/cli-app/versionCheck.js +46 -0
  35. package/dist/cli-app/versionCheck.js.map +1 -0
  36. package/dist/client.d.ts +2 -0
  37. package/dist/client.d.ts.map +1 -0
  38. package/dist/client.js +75 -0
  39. package/dist/client.js.map +1 -0
  40. package/dist/commander/Argument.d.ts +19 -0
  41. package/dist/commander/Argument.d.ts.map +1 -0
  42. package/dist/commander/Argument.js +25 -0
  43. package/dist/commander/Argument.js.map +1 -0
  44. package/dist/commander/Command.d.ts +23 -0
  45. package/dist/commander/Command.d.ts.map +1 -0
  46. package/dist/commander/Command.js +159 -0
  47. package/dist/commander/Command.js.map +1 -0
  48. package/dist/commander/InvalidArgumentError.d.ts +5 -0
  49. package/dist/commander/InvalidArgumentError.d.ts.map +1 -0
  50. package/dist/commander/InvalidArgumentError.js +8 -0
  51. package/dist/commander/InvalidArgumentError.js.map +1 -0
  52. package/dist/commander/Option.d.ts +15 -0
  53. package/dist/commander/Option.d.ts.map +1 -0
  54. package/dist/commander/Option.js +43 -0
  55. package/dist/commander/Option.js.map +1 -0
  56. package/dist/commander/index.d.ts +7 -0
  57. package/dist/commander/index.d.ts.map +1 -0
  58. package/dist/commander/index.js +5 -0
  59. package/dist/commander/index.js.map +1 -0
  60. package/dist/commander/types.d.ts +2 -0
  61. package/dist/commander/types.d.ts.map +1 -0
  62. package/dist/commander/types.js +2 -0
  63. package/dist/commander/types.js.map +1 -0
  64. package/dist/commands/CommandAuth/CommandAuth.d.ts +4 -0
  65. package/dist/commands/CommandAuth/CommandAuth.d.ts.map +1 -0
  66. package/dist/commands/CommandAuth/CommandAuth.js +24 -0
  67. package/dist/commands/CommandAuth/CommandAuth.js.map +1 -0
  68. package/dist/commands/CommandConfig/CommandConfig.d.ts +4 -0
  69. package/dist/commands/CommandConfig/CommandConfig.d.ts.map +1 -0
  70. package/dist/commands/CommandConfig/CommandConfig.js +37 -0
  71. package/dist/commands/CommandConfig/CommandConfig.js.map +1 -0
  72. package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.d.ts +4 -0
  73. package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.d.ts.map +1 -0
  74. package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.js +20 -0
  75. package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.js.map +1 -0
  76. package/dist/commands/CommandConfig/sub-commands/configGetCommand.d.ts +5 -0
  77. package/dist/commands/CommandConfig/sub-commands/configGetCommand.d.ts.map +1 -0
  78. package/dist/commands/CommandConfig/sub-commands/configGetCommand.js +23 -0
  79. package/dist/commands/CommandConfig/sub-commands/configGetCommand.js.map +1 -0
  80. package/dist/commands/CommandConfig/sub-commands/configSetCommand.d.ts +4 -0
  81. package/dist/commands/CommandConfig/sub-commands/configSetCommand.d.ts.map +1 -0
  82. package/dist/commands/CommandConfig/sub-commands/configSetCommand.js +69 -0
  83. package/dist/commands/CommandConfig/sub-commands/configSetCommand.js.map +1 -0
  84. package/dist/commands/CommandConfig/types.d.ts +6 -0
  85. package/dist/commands/CommandConfig/types.d.ts.map +1 -0
  86. package/dist/commands/CommandConfig/types.js +2 -0
  87. package/dist/commands/CommandConfig/types.js.map +1 -0
  88. package/dist/commands/CommandConfig/utils/preparePrimaryOptions.d.ts +3 -0
  89. package/dist/commands/CommandConfig/utils/preparePrimaryOptions.d.ts.map +1 -0
  90. package/dist/commands/CommandConfig/utils/preparePrimaryOptions.js +8 -0
  91. package/dist/commands/CommandConfig/utils/preparePrimaryOptions.js.map +1 -0
  92. package/dist/commands/CommandConfig/utils/resolveConfig.d.ts +8 -0
  93. package/dist/commands/CommandConfig/utils/resolveConfig.d.ts.map +1 -0
  94. package/dist/commands/CommandConfig/utils/resolveConfig.js +33 -0
  95. package/dist/commands/CommandConfig/utils/resolveConfig.js.map +1 -0
  96. package/dist/commands/CommandConfig/utils/sharedOptions.d.ts +3 -0
  97. package/dist/commands/CommandConfig/utils/sharedOptions.d.ts.map +1 -0
  98. package/dist/commands/CommandConfig/utils/sharedOptions.js +14 -0
  99. package/dist/commands/CommandConfig/utils/sharedOptions.js.map +1 -0
  100. package/dist/commands/CommandDaemon/CommandDaemon.d.ts +4 -0
  101. package/dist/commands/CommandDaemon/CommandDaemon.d.ts.map +1 -0
  102. package/dist/commands/CommandDaemon/CommandDaemon.js +57 -0
  103. package/dist/commands/CommandDaemon/CommandDaemon.js.map +1 -0
  104. package/dist/commands/CommandDashboard/CommandDashboard.d.ts +4 -0
  105. package/dist/commands/CommandDashboard/CommandDashboard.d.ts.map +1 -0
  106. package/dist/commands/CommandDashboard/CommandDashboard.js +54 -0
  107. package/dist/commands/CommandDashboard/CommandDashboard.js.map +1 -0
  108. package/dist/commands/CommandHTTP/CommandHttp.d.ts +4 -0
  109. package/dist/commands/CommandHTTP/CommandHttp.d.ts.map +1 -0
  110. package/dist/commands/CommandHTTP/CommandHttp.js +50 -0
  111. package/dist/commands/CommandHTTP/CommandHttp.js.map +1 -0
  112. package/dist/commands/CommandInit/CommandInit.d.ts +4 -0
  113. package/dist/commands/CommandInit/CommandInit.d.ts.map +1 -0
  114. package/dist/commands/CommandInit/CommandInit.js +36 -0
  115. package/dist/commands/CommandInit/CommandInit.js.map +1 -0
  116. package/dist/commands/CommandList/CommandList.d.ts +4 -0
  117. package/dist/commands/CommandList/CommandList.d.ts.map +1 -0
  118. package/dist/commands/CommandList/CommandList.js +54 -0
  119. package/dist/commands/CommandList/CommandList.js.map +1 -0
  120. package/dist/commands/CommandLogs/CommandLogs.d.ts +4 -0
  121. package/dist/commands/CommandLogs/CommandLogs.d.ts.map +1 -0
  122. package/dist/commands/CommandLogs/CommandLogs.js +33 -0
  123. package/dist/commands/CommandLogs/CommandLogs.js.map +1 -0
  124. package/dist/commands/CommandProfile/CommandProfile.d.ts +5 -0
  125. package/dist/commands/CommandProfile/CommandProfile.d.ts.map +1 -0
  126. package/dist/commands/CommandProfile/CommandProfile.js +64 -0
  127. package/dist/commands/CommandProfile/CommandProfile.js.map +1 -0
  128. package/dist/commands/CommandRegister/CommandRegister.d.ts +4 -0
  129. package/dist/commands/CommandRegister/CommandRegister.d.ts.map +1 -0
  130. package/dist/commands/CommandRegister/CommandRegister.js +43 -0
  131. package/dist/commands/CommandRegister/CommandRegister.js.map +1 -0
  132. package/dist/commands/CommandRestart/CommandRestart.d.ts +4 -0
  133. package/dist/commands/CommandRestart/CommandRestart.d.ts.map +1 -0
  134. package/dist/commands/CommandRestart/CommandRestart.js +62 -0
  135. package/dist/commands/CommandRestart/CommandRestart.js.map +1 -0
  136. package/dist/commands/CommandServer/CommandServer.d.ts +4 -0
  137. package/dist/commands/CommandServer/CommandServer.d.ts.map +1 -0
  138. package/dist/commands/CommandServer/CommandServer.js +24 -0
  139. package/dist/commands/CommandServer/CommandServer.js.map +1 -0
  140. package/dist/commands/CommandStop/CommandStop.d.ts +4 -0
  141. package/dist/commands/CommandStop/CommandStop.d.ts.map +1 -0
  142. package/dist/commands/CommandStop/CommandStop.js +25 -0
  143. package/dist/commands/CommandStop/CommandStop.js.map +1 -0
  144. package/dist/commands/CommandUpdate/CommandUpdate.d.ts +4 -0
  145. package/dist/commands/CommandUpdate/CommandUpdate.d.ts.map +1 -0
  146. package/dist/commands/CommandUpdate/CommandUpdate.js +38 -0
  147. package/dist/commands/CommandUpdate/CommandUpdate.js.map +1 -0
  148. package/dist/commands/CommandUseProfile/CommandUseProfile.d.ts +4 -0
  149. package/dist/commands/CommandUseProfile/CommandUseProfile.d.ts.map +1 -0
  150. package/dist/commands/CommandUseProfile/CommandUseProfile.js +63 -0
  151. package/dist/commands/CommandUseProfile/CommandUseProfile.js.map +1 -0
  152. package/dist/commands/helper/Help.d.ts +4 -0
  153. package/dist/commands/helper/Help.d.ts.map +1 -0
  154. package/dist/commands/helper/Help.js +134 -0
  155. package/dist/commands/helper/Help.js.map +1 -0
  156. package/dist/commands/helper/Parser.d.ts +55 -0
  157. package/dist/commands/helper/Parser.d.ts.map +1 -0
  158. package/dist/commands/helper/Parser.js +280 -0
  159. package/dist/commands/helper/Parser.js.map +1 -0
  160. package/dist/commands/shared/allowDenyCidrCommand.d.ts +3 -0
  161. package/dist/commands/shared/allowDenyCidrCommand.d.ts.map +1 -0
  162. package/dist/commands/shared/allowDenyCidrCommand.js +10 -0
  163. package/dist/commands/shared/allowDenyCidrCommand.js.map +1 -0
  164. package/dist/commands/shared/configServersCommand.d.ts +4 -0
  165. package/dist/commands/shared/configServersCommand.d.ts.map +1 -0
  166. package/dist/commands/shared/configServersCommand.js +19 -0
  167. package/dist/commands/shared/configServersCommand.js.map +1 -0
  168. package/dist/commands/utils.d.ts +3 -0
  169. package/dist/commands/utils.d.ts.map +1 -0
  170. package/dist/commands/utils.js +17 -0
  171. package/dist/commands/utils.js.map +1 -0
  172. package/dist/config/ParsedConfig.d.ts +31 -0
  173. package/dist/config/ParsedConfig.d.ts.map +1 -0
  174. package/dist/config/ParsedConfig.js +116 -0
  175. package/dist/config/ParsedConfig.js.map +1 -0
  176. package/dist/config/ParsedGlobalConfig.d.ts +5 -0
  177. package/dist/config/ParsedGlobalConfig.d.ts.map +1 -0
  178. package/dist/config/ParsedGlobalConfig.js +7 -0
  179. package/dist/config/ParsedGlobalConfig.js.map +1 -0
  180. package/dist/config/ParsedLocalConfig.d.ts +5 -0
  181. package/dist/config/ParsedLocalConfig.d.ts.map +1 -0
  182. package/dist/config/ParsedLocalConfig.js +7 -0
  183. package/dist/config/ParsedLocalConfig.js.map +1 -0
  184. package/dist/config/ParsedProfileConfig.d.ts +46 -0
  185. package/dist/config/ParsedProfileConfig.d.ts.map +1 -0
  186. package/dist/config/ParsedProfileConfig.js +120 -0
  187. package/dist/config/ParsedProfileConfig.js.map +1 -0
  188. package/dist/config/ParsedServerConfig.d.ts +20 -0
  189. package/dist/config/ParsedServerConfig.d.ts.map +1 -0
  190. package/dist/config/ParsedServerConfig.js +55 -0
  191. package/dist/config/ParsedServerConfig.js.map +1 -0
  192. package/dist/config/TempProfileConfig.d.ts +8 -0
  193. package/dist/config/TempProfileConfig.d.ts.map +1 -0
  194. package/dist/config/TempProfileConfig.js +13 -0
  195. package/dist/config/TempProfileConfig.js.map +1 -0
  196. package/dist/config/utils.d.ts +2 -0
  197. package/dist/config/utils.d.ts.map +1 -0
  198. package/dist/config/utils.js +8 -0
  199. package/dist/config/utils.js.map +1 -0
  200. package/dist/config/validations/validateProfileConfig.d.ts +4 -0
  201. package/dist/config/validations/validateProfileConfig.d.ts.map +1 -0
  202. package/dist/config/validations/validateProfileConfig.js +76 -0
  203. package/dist/config/validations/validateProfileConfig.js.map +1 -0
  204. package/dist/core/FS/utils.d.ts +12 -0
  205. package/dist/core/FS/utils.d.ts.map +1 -0
  206. package/dist/core/FS/utils.js +55 -0
  207. package/dist/core/FS/utils.js.map +1 -0
  208. package/dist/daemon/DaemonClient.d.ts +16 -0
  209. package/dist/daemon/DaemonClient.d.ts.map +1 -0
  210. package/dist/daemon/DaemonClient.js +158 -0
  211. package/dist/daemon/DaemonClient.js.map +1 -0
  212. package/dist/daemon/DaemonServer.d.ts +8 -0
  213. package/dist/daemon/DaemonServer.d.ts.map +1 -0
  214. package/dist/daemon/DaemonServer.js +201 -0
  215. package/dist/daemon/DaemonServer.js.map +1 -0
  216. package/dist/daemon/protocol.d.ts +101 -0
  217. package/dist/daemon/protocol.d.ts.map +1 -0
  218. package/dist/daemon/protocol.js +2 -0
  219. package/dist/daemon/protocol.js.map +1 -0
  220. package/dist/daemon-main.d.ts +2 -0
  221. package/dist/daemon-main.d.ts.map +1 -0
  222. package/dist/daemon-main.js +13 -0
  223. package/dist/daemon-main.js.map +1 -0
  224. package/dist/launcher-main.d.ts +2 -0
  225. package/dist/launcher-main.d.ts.map +1 -0
  226. package/dist/launcher-main.js +57 -0
  227. package/dist/launcher-main.js.map +1 -0
  228. package/dist/lib/Flow/applyUpdate.d.ts +3 -0
  229. package/dist/lib/Flow/applyUpdate.d.ts.map +1 -0
  230. package/dist/lib/Flow/applyUpdate.js +34 -0
  231. package/dist/lib/Flow/applyUpdate.js.map +1 -0
  232. package/dist/lib/Flow/downloadBinaryUpdate.d.ts +3 -0
  233. package/dist/lib/Flow/downloadBinaryUpdate.d.ts.map +1 -0
  234. package/dist/lib/Flow/downloadBinaryUpdate.js +54 -0
  235. package/dist/lib/Flow/downloadBinaryUpdate.js.map +1 -0
  236. package/dist/lib/Flow/getLatestVersion.d.ts +2 -0
  237. package/dist/lib/Flow/getLatestVersion.d.ts.map +1 -0
  238. package/dist/lib/Flow/getLatestVersion.js +13 -0
  239. package/dist/lib/Flow/getLatestVersion.js.map +1 -0
  240. package/dist/lib/defs.d.ts +18 -0
  241. package/dist/lib/defs.d.ts.map +1 -0
  242. package/dist/lib/defs.js +33 -0
  243. package/dist/lib/defs.js.map +1 -0
  244. package/dist/logger/logger.d.ts +6 -0
  245. package/dist/logger/logger.d.ts.map +1 -0
  246. package/dist/logger/logger.js +34 -0
  247. package/dist/logger/logger.js.map +1 -0
  248. package/dist/output-formats/colors.d.ts +7 -0
  249. package/dist/output-formats/colors.d.ts.map +1 -0
  250. package/dist/output-formats/colors.js +8 -0
  251. package/dist/output-formats/colors.js.map +1 -0
  252. package/dist/output-formats/formatConfig.d.ts +3 -0
  253. package/dist/output-formats/formatConfig.d.ts.map +1 -0
  254. package/dist/output-formats/formatConfig.js +59 -0
  255. package/dist/output-formats/formatConfig.js.map +1 -0
  256. package/dist/output-formats/formatConfigPath.d.ts +4 -0
  257. package/dist/output-formats/formatConfigPath.d.ts.map +1 -0
  258. package/dist/output-formats/formatConfigPath.js +7 -0
  259. package/dist/output-formats/formatConfigPath.js.map +1 -0
  260. package/dist/output-formats/formatPath.d.ts +2 -0
  261. package/dist/output-formats/formatPath.d.ts.map +1 -0
  262. package/dist/output-formats/formatPath.js +6 -0
  263. package/dist/output-formats/formatPath.js.map +1 -0
  264. package/dist/output-formats/formatProfile.d.ts +3 -0
  265. package/dist/output-formats/formatProfile.d.ts.map +1 -0
  266. package/dist/output-formats/formatProfile.js +35 -0
  267. package/dist/output-formats/formatProfile.js.map +1 -0
  268. package/dist/output-formats/formatProfilesShort.d.ts +3 -0
  269. package/dist/output-formats/formatProfilesShort.d.ts.map +1 -0
  270. package/dist/output-formats/formatProfilesShort.js +19 -0
  271. package/dist/output-formats/formatProfilesShort.js.map +1 -0
  272. package/dist/output-formats/formatSaveResult.d.ts +4 -0
  273. package/dist/output-formats/formatSaveResult.d.ts.map +1 -0
  274. package/dist/output-formats/formatSaveResult.js +7 -0
  275. package/dist/output-formats/formatSaveResult.js.map +1 -0
  276. package/dist/output-formats/table.d.ts +8 -0
  277. package/dist/output-formats/table.d.ts.map +1 -0
  278. package/dist/output-formats/table.js +15 -0
  279. package/dist/output-formats/table.js.map +1 -0
  280. package/dist/package-json/packageJson.d.ts +6 -0
  281. package/dist/package-json/packageJson.d.ts.map +1 -0
  282. package/dist/package-json/packageJson.js +12 -0
  283. package/dist/package-json/packageJson.js.map +1 -0
  284. package/dist/proxy/Proxy.d.ts +6 -0
  285. package/dist/proxy/Proxy.d.ts.map +1 -0
  286. package/dist/proxy/Proxy.js +203 -0
  287. package/dist/proxy/Proxy.js.map +1 -0
  288. package/dist/sea-main.d.ts +2 -0
  289. package/dist/sea-main.d.ts.map +1 -0
  290. package/dist/sea-main.js +20 -0
  291. package/dist/sea-main.js.map +1 -0
  292. package/dist/types/types.d.ts +55 -0
  293. package/dist/types/types.d.ts.map +1 -0
  294. package/dist/types/types.js +2 -0
  295. package/dist/types/types.js.map +1 -0
  296. package/dist/utils/arrayFunctions.d.ts +24 -0
  297. package/dist/utils/arrayFunctions.d.ts.map +1 -0
  298. package/dist/utils/arrayFunctions.js +43 -0
  299. package/dist/utils/arrayFunctions.js.map +1 -0
  300. package/dist/utils/assertFunctions.d.ts +7 -0
  301. package/dist/utils/assertFunctions.d.ts.map +1 -0
  302. package/dist/utils/assertFunctions.js +20 -0
  303. package/dist/utils/assertFunctions.js.map +1 -0
  304. package/dist/utils/checkFunctions.d.ts +34 -0
  305. package/dist/utils/checkFunctions.d.ts.map +1 -0
  306. package/dist/utils/checkFunctions.js +87 -0
  307. package/dist/utils/checkFunctions.js.map +1 -0
  308. package/dist/utils/cliFunctions.d.ts +10 -0
  309. package/dist/utils/cliFunctions.d.ts.map +1 -0
  310. package/dist/utils/cliFunctions.js +68 -0
  311. package/dist/utils/cliFunctions.js.map +1 -0
  312. package/dist/utils/hashFunctions.d.ts +10 -0
  313. package/dist/utils/hashFunctions.d.ts.map +1 -0
  314. package/dist/utils/hashFunctions.js +11 -0
  315. package/dist/utils/hashFunctions.js.map +1 -0
  316. package/dist/utils/npmFunctions.d.ts +3 -0
  317. package/dist/utils/npmFunctions.d.ts.map +1 -0
  318. package/dist/utils/npmFunctions.js +28 -0
  319. package/dist/utils/npmFunctions.js.map +1 -0
  320. package/dist/utils/stringFunctions.d.ts +12 -0
  321. package/dist/utils/stringFunctions.d.ts.map +1 -0
  322. package/dist/utils/stringFunctions.js +37 -0
  323. package/dist/utils/stringFunctions.js.map +1 -0
  324. package/package.json +39 -16
  325. package/client.js +0 -33
  326. package/src/cli-app/Dashboard.js +0 -220
  327. package/src/cli-app/Screen/FullScreenModal.js +0 -63
  328. package/src/cli-app/Screen.js +0 -140
  329. package/src/cli-app/elements/ElementNode.js +0 -97
  330. package/src/cli-app/elements/Line.js +0 -21
  331. package/src/cli-app/elements/List/List.js +0 -227
  332. package/src/cli-app/elements/List/ListCell.js +0 -83
  333. package/src/cli-app/elements/List/ListColumn.js +0 -52
  334. package/src/cli-app/elements/List/ListRow.js +0 -118
  335. package/src/cli-app/elements/Row.js +0 -38
  336. package/src/cli-app/helper/utils.js +0 -42
  337. package/src/commands/Action/addDelValuesAction.js +0 -56
  338. package/src/commands/CommandAuth.js +0 -32
  339. package/src/commands/CommandClearAll.js +0 -27
  340. package/src/commands/CommandConfig.js +0 -59
  341. package/src/commands/CommandHTTP.js +0 -192
  342. package/src/commands/CommandInvite.js +0 -38
  343. package/src/commands/CommandRefresh.js +0 -35
  344. package/src/commands/CommandRegister.js +0 -48
  345. package/src/commands/Option/DeleteOption.js +0 -6
  346. package/src/commands/Option/ProfileListOption.js +0 -65
  347. package/src/commands/Option/SelectConfigOption.js +0 -52
  348. package/src/commands/SubCommand/AllowDenyCidrCommand.js +0 -28
  349. package/src/commands/SubCommand/HostCommand.js +0 -22
  350. package/src/commands/SubCommand/PortCommand.js +0 -20
  351. package/src/commands/SubCommand/ProtocolCommand.js +0 -21
  352. package/src/commands/helper/AliasResolver.js +0 -13
  353. package/src/commands/helper/BindArgs.js +0 -53
  354. package/src/commands/helper/SharedArg.js +0 -32
  355. package/src/commands/utils.js +0 -96
  356. package/src/config/ConfigAbstract.js +0 -353
  357. package/src/config/ConfigManager.js +0 -70
  358. package/src/config/GlobalConfig.js +0 -14
  359. package/src/config/GlobalLocalShardConfigAbstract.js +0 -98
  360. package/src/config/LocalConfig.js +0 -7
  361. package/src/config/PropertyConfig.js +0 -122
  362. package/src/config/SystemConfig.js +0 -31
  363. package/src/core/FS/utils.js +0 -60
  364. package/src/core/Ref.js +0 -70
  365. package/src/lib/Flow/getCurrentIp.js +0 -18
  366. package/src/lib/Flow/getLatestVersion.js +0 -13
  367. package/src/lib/Flow/proxyUrl.js +0 -35
  368. package/src/lib/Flow/validateAuthToken.js +0 -19
  369. package/src/lib/HttpClient.js +0 -61
  370. package/src/lib/Proxy.js +0 -42
  371. package/src/lib/defs.js +0 -13
  372. package/src/net/IPV4.js +0 -139
  373. package/src/net/http/IncomingMessage.js +0 -92
  374. package/src/net/http/ServerResponse.js +0 -126
  375. package/src/net/http/TunliRequest.js +0 -1
  376. package/src/net/http/TunliResponse.js +0 -1
  377. package/src/net/http/TunnelRequest.js +0 -229
  378. package/src/net/http/TunnelResponse.js +0 -119
  379. package/src/tunnel-client/TunnelClient.js +0 -144
  380. package/src/utils/arrayFunctions.js +0 -45
  381. package/src/utils/checkFunctions.js +0 -182
  382. package/src/utils/cliFunctions.js +0 -63
  383. package/src/utils/createRequest.js +0 -12
  384. package/src/utils/hashFunctions.js +0 -9
  385. package/src/utils/httpFunction.js +0 -23
  386. package/src/utils/npmFunctions.js +0 -27
  387. package/src/utils/stringFunctions.js +0 -59
  388. package/types/index.d.ts +0 -119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParsedProfileConfig.d.ts","sourceRoot":"","sources":["../../src/config/ParsedProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAG9C,qBAAa,mBAAmB;;IAkB9B,IAAI,MAAM,WAET;IAED,IAAI,QAAQ,uBAEX;IAED,IAAI,YAAY,mCAEf;gBAEW,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO;IAO9F,MAAM;IAIN,MAAM;IAIN,IAAI,QAAQ,IAAI,SAAS,GAAG,MAAM,EAAE,CAEnC;IAED,IAAI,SAAS,IAAI,SAAS,GAAG,MAAM,EAAE,CAEpC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAG9B;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAGhC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,IAAI,QAAQ,CAAC,QAAQ,EAwDL,MAAM,GAAG,SAAS,AAxDb,EAGpB;IAED,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,QAAQ,IAAI,WAAW,GAAG,SAAS;IAInC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMlC,IAAI,KAAK,IAAI,WAAW,GAAG,SAAS,CAEnC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,EAE3B;IAED,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAGD,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,IAAI,WAEP;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQ3C,IAAI;IAIJ,MAAM;gBAnJI,MAAM,GAAG,SAAS;eACnB,MAAM,GAAG,SAAS;eAClB,MAAM,GAAG,SAAS;mBACd,MAAM,GAAG,SAAS;mBAClB,MAAM,GAAG,SAAS;gBACrB,WAAW,GAAG,SAAS;oBACnB,MAAM,EAAE,GAAG,SAAS;mBACrB,MAAM,EAAE,GAAG,SAAS;;CAiJlC"}
@@ -0,0 +1,120 @@
1
+ export class ParsedProfileConfig {
2
+ #name;
3
+ #exists;
4
+ #config;
5
+ #data;
6
+ get target() {
7
+ return `${this.protocol}://${this.host}:${this.port}`;
8
+ }
9
+ get filepath() {
10
+ return this.#config.filepath;
11
+ }
12
+ get locationType() {
13
+ return this.#config.locationType;
14
+ }
15
+ constructor(config, name, data, exists) {
16
+ this.#name = name;
17
+ this.#data = data;
18
+ this.#exists = exists;
19
+ this.#config = config;
20
+ }
21
+ exists() {
22
+ return this.#exists;
23
+ }
24
+ delete() {
25
+ this.#data = undefined;
26
+ }
27
+ get denyCidr() {
28
+ return this.#data?.denyCidr;
29
+ }
30
+ get allowCidr() {
31
+ return this.#data?.allowCidr;
32
+ }
33
+ set denyCidr(denyCidr) {
34
+ this.#data ??= {};
35
+ this.#data.denyCidr = denyCidr;
36
+ }
37
+ set allowCidr(allowCidr) {
38
+ this.#data ??= {};
39
+ this.#data.allowCidr = allowCidr;
40
+ }
41
+ setPort(port) {
42
+ this.#data ??= {};
43
+ this.#data.port = port;
44
+ return this;
45
+ }
46
+ getPort() {
47
+ return this.#data?.port;
48
+ }
49
+ setHost(host) {
50
+ this.#data ??= {};
51
+ this.#data.host = host;
52
+ return this;
53
+ }
54
+ set protocol(protocol) {
55
+ this.#data ??= {};
56
+ this.#data.protocol = protocol;
57
+ }
58
+ getHost() {
59
+ return this.#data?.host;
60
+ }
61
+ getProtocol() {
62
+ return this.#data?.protocol;
63
+ }
64
+ getProxyURL() {
65
+ return this.#data?.proxyURL;
66
+ }
67
+ get proxyURL() {
68
+ return this.getProxyURL();
69
+ }
70
+ getProxy() {
71
+ return this.#data?.proxy;
72
+ }
73
+ setProxy(proxy) {
74
+ this.#data ??= {};
75
+ this.#data.proxy = proxy;
76
+ return this;
77
+ }
78
+ get proxy() {
79
+ return this.getProxy();
80
+ }
81
+ set proxy(proxy) {
82
+ this.setProxy(proxy);
83
+ }
84
+ getRelay() {
85
+ return this.#data?.relay;
86
+ }
87
+ get relay() {
88
+ return this.getRelay();
89
+ }
90
+ get port() {
91
+ return this.getPort();
92
+ }
93
+ get host() {
94
+ return this.getHost();
95
+ }
96
+ get protocol() {
97
+ return this.#data?.protocol;
98
+ }
99
+ get name() {
100
+ return this.#name;
101
+ }
102
+ update(data) {
103
+ this.#data = {
104
+ ...this.#data,
105
+ ...data
106
+ };
107
+ return this;
108
+ }
109
+ save() {
110
+ return this.#config.save();
111
+ }
112
+ toJSON() {
113
+ if (this.#data == null)
114
+ return;
115
+ if (!Object.keys(this.#data).length)
116
+ return;
117
+ return this.#data;
118
+ }
119
+ }
120
+ //# sourceMappingURL=ParsedProfileConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParsedProfileConfig.js","sourceRoot":"","sources":["../../src/config/ParsedProfileConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ParsedConfig } from "#config/ParsedConfig";
2
+ export declare class ParsedServerConfig {
3
+ #private;
4
+ constructor(config: ParsedConfig, name: string, data: Record<string, unknown>, exists: boolean);
5
+ exists(): boolean;
6
+ save(): void;
7
+ get name(): string;
8
+ getUrl(): string | undefined;
9
+ getAuthToken(): string | undefined;
10
+ delete(): void;
11
+ setUrl(url: string): this;
12
+ get url(): string | undefined;
13
+ get authToken(): string | undefined;
14
+ setAuthToken(authToken: string): this;
15
+ toJSON(): {
16
+ url?: string | undefined;
17
+ authToken?: string | undefined;
18
+ } | undefined;
19
+ }
20
+ //# sourceMappingURL=ParsedServerConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParsedServerConfig.d.ts","sourceRoot":"","sources":["../../src/config/ParsedServerConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,kBAAkB;;gBAUjB,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO;IAO9F,MAAM;IAIN,IAAI;IAIJ,IAAI,IAAI,WAEP;IAED,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,MAAM;IAIN,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC,MAAM;cAzDE,MAAM,GAAG,SAAS;oBACZ,MAAM,GAAG,SAAS;;CA6DjC"}
@@ -0,0 +1,55 @@
1
+ import {} from "#config/ParsedConfig";
2
+ export class ParsedServerConfig {
3
+ #name;
4
+ #exists;
5
+ #data;
6
+ #config;
7
+ constructor(config, name, data, exists) {
8
+ this.#name = name;
9
+ this.#data = data;
10
+ this.#exists = exists;
11
+ this.#config = config;
12
+ }
13
+ exists() {
14
+ return this.#exists;
15
+ }
16
+ save() {
17
+ return this.#config.save();
18
+ }
19
+ get name() {
20
+ return this.#name;
21
+ }
22
+ getUrl() {
23
+ return this.#data?.url;
24
+ }
25
+ getAuthToken() {
26
+ return this.#data?.authToken;
27
+ }
28
+ delete() {
29
+ this.#data = undefined;
30
+ }
31
+ setUrl(url) {
32
+ this.#data ??= {};
33
+ this.#data.url = url;
34
+ return this;
35
+ }
36
+ get url() {
37
+ return this.getUrl();
38
+ }
39
+ get authToken() {
40
+ return this.getAuthToken();
41
+ }
42
+ setAuthToken(authToken) {
43
+ this.#data ??= {};
44
+ this.#data.authToken = authToken;
45
+ return this;
46
+ }
47
+ toJSON() {
48
+ if (this.#data == null)
49
+ return;
50
+ if (!Object.keys(this.#data).length)
51
+ return;
52
+ return this.#data;
53
+ }
54
+ }
55
+ //# sourceMappingURL=ParsedServerConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParsedServerConfig.js","sourceRoot":"","sources":["../../src/config/ParsedServerConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,kBAAkB;IACpB,KAAK,CAAQ;IACb,OAAO,CAAS;IACzB,KAAK,CAGJ;IAEQ,OAAO,CAAc;IAE9B,YAAY,MAAoB,EAAE,IAAY,EAAE,IAA6B,EAAE,MAAe;QAC5F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA;IACxB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,CAAA;IAC9B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;IAC5B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,KAAK,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,OAAM;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;YAAE,OAAM;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { ParsedProfileConfig } from "#config/ParsedProfileConfig";
2
+ import type { ParsedConfig } from "#config/ParsedConfig";
3
+ export declare class TempProfileConfig extends ParsedProfileConfig {
4
+ constructor(config: ParsedConfig);
5
+ get name(): string;
6
+ save(): void;
7
+ }
8
+ //# sourceMappingURL=TempProfileConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TempProfileConfig.d.ts","sourceRoot":"","sources":["../../src/config/TempProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAE5C,MAAM,EAAE,YAAY;IAIhC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI;CAGL"}
@@ -0,0 +1,13 @@
1
+ import { ParsedProfileConfig } from "#config/ParsedProfileConfig";
2
+ export class TempProfileConfig extends ParsedProfileConfig {
3
+ constructor(config) {
4
+ super(config, '__TEMP__', {}, false);
5
+ }
6
+ get name() {
7
+ return this.target;
8
+ }
9
+ save() {
10
+ throw new Error('ich kann und darf nicht gespeichert werden');
11
+ }
12
+ }
13
+ //# sourceMappingURL=TempProfileConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TempProfileConfig.js","sourceRoot":"","sources":["../../src/config/TempProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAIhE,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAExD,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare function createLocalConfig(path: string): void;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,QAG7C"}
@@ -0,0 +1,8 @@
1
+ import { ensureDirectoryExists } from "#core/FS/utils";
2
+ import { dirname } from "path";
3
+ import * as fs from "node:fs";
4
+ export function createLocalConfig(path) {
5
+ ensureDirectoryExists(dirname(path));
6
+ fs.writeFileSync(path, JSON.stringify({}));
7
+ }
8
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;AAC5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Context, ProfileConfig } from "#types/types";
2
+ import type { ParsedProfileConfig } from "#config/ParsedProfileConfig";
3
+ export declare const validateProfileConfig: (ctx: Context, config: ParsedProfileConfig) => Promise<ProfileConfig>;
4
+ //# sourceMappingURL=validateProfileConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateProfileConfig.d.ts","sourceRoot":"","sources":["../../../src/config/validations/validateProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,aAAa,EAA6B,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAkDrE,eAAO,MAAM,qBAAqB,GAAU,KAAK,OAAO,EAAE,QAAQ,mBAAmB,KAAG,OAAO,CAAC,aAAa,CAgC5G,CAAA"}
@@ -0,0 +1,76 @@
1
+ import { DEFAULT_PROFILE_NAME, DEFAULT_SERVER_NAME } from "#lib/defs";
2
+ import { assertHost, assertPort, assertProtocol } from "#utils/assertFunctions";
3
+ function validateServerConfig(ctx, config) {
4
+ if (!config.exists() || !config.authToken || !config.url) {
5
+ ctx.logger.error(`Not registered with relay "${config.name}". Run \`tunli register\` to get started.`);
6
+ return ctx.exit(1);
7
+ }
8
+ return {
9
+ url: config.url,
10
+ authToken: config.authToken
11
+ };
12
+ }
13
+ function validateTarget(ctx, config) {
14
+ const protocol = config.protocol;
15
+ const host = config.host;
16
+ const port = config.port;
17
+ try {
18
+ assertProtocol(protocol);
19
+ }
20
+ catch (e) {
21
+ ctx.logger.error(e instanceof Error ? e.message : String(e));
22
+ return ctx.exit(1);
23
+ }
24
+ try {
25
+ assertHost(host);
26
+ }
27
+ catch (e) {
28
+ ctx.logger.error(e instanceof Error ? e.message : String(e));
29
+ return ctx.exit(1);
30
+ }
31
+ try {
32
+ assertPort(port);
33
+ }
34
+ catch (e) {
35
+ ctx.logger.error(e instanceof Error ? e.message : String(e));
36
+ return ctx.exit(1);
37
+ }
38
+ return {
39
+ protocol,
40
+ port,
41
+ host
42
+ };
43
+ }
44
+ export const validateProfileConfig = async (ctx, config) => {
45
+ const server = config.relay ?? ctx.config.global.activeServer ?? DEFAULT_SERVER_NAME;
46
+ const serverConf = validateServerConfig(ctx, ctx.config.global.server(server));
47
+ const target = validateTarget(ctx, config);
48
+ const profileName = config.name ?? DEFAULT_PROFILE_NAME;
49
+ const apiClient = ctx.apiClient.withServer(serverConf);
50
+ if (!config.proxy) {
51
+ const result = await apiClient.registerProxy(target, profileName);
52
+ if (result.error) {
53
+ ctx.logger.error(`Failed to create proxy: ${result.error.message}`);
54
+ return ctx.exit(1);
55
+ }
56
+ config.proxy = result.data;
57
+ }
58
+ else {
59
+ const result = await apiClient.renewProxy(target, profileName, config.proxy.proxyIdent);
60
+ if (result.error || !result.data) {
61
+ ctx.logger.error(`Failed to renew proxy registration: ${result.error?.message ?? 'no data returned'}`);
62
+ return ctx.exit(1);
63
+ }
64
+ }
65
+ return {
66
+ filepath: config.filepath ?? '-',
67
+ allowedCidr: config.allowCidr ?? [],
68
+ deniedCidr: config.denyCidr ?? [],
69
+ profileName,
70
+ serverConfig: serverConf,
71
+ apiClient,
72
+ proxy: config.proxy,
73
+ target
74
+ };
75
+ };
76
+ //# sourceMappingURL=validateProfileConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateProfileConfig.js","sourceRoot":"","sources":["../../../src/config/validations/validateProfileConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const ensureDirectoryExists: (directory: string) => void;
2
+ export declare const searchDirInDirectoryTree: (dirnameToSearch: string, dir?: string, excludeDirectories?: string[]) => string | null;
3
+ export declare const searchFileInDirectoryTree: (filenameToSearch: string, dir?: string, excludeDirectories?: string[]) => string | null;
4
+ export declare const readJsonFile: (configFilePath: string) => Record<string, unknown>;
5
+ export declare const dirnameFromMeta: (importMeta: {
6
+ url: string;
7
+ }) => string;
8
+ export declare const filenameFromMeta: (importMeta: {
9
+ url: string;
10
+ }) => string;
11
+ export declare const removeFile: (file: string) => void;
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/FS/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,SAItD,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,iBAAiB,MAAM,EAAE,YAAmB,EAAE,qBAAoB,MAAM,EAAO,kBAmBvH,CAAA;AACD,eAAO,MAAM,yBAAyB,GACpC,kBAAkB,MAAM,EACxB,YAAmB,EACnB,qBAAoB,MAAM,EAAO,kBAmBlC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,gBAAgB,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAM3E,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,YAAY;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,WAE1D,CAAA;AACD,eAAO,MAAM,gBAAgB,GAAI,YAAY;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,WAE3D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,SAEtC,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { existsSync, lstatSync, mkdirSync, readFileSync } from "fs";
2
+ import { dirname, join, parse } from "path";
3
+ import { fileURLToPath } from "url";
4
+ import * as fs from "node:fs";
5
+ export const ensureDirectoryExists = (directory) => {
6
+ if (!existsSync(directory)) {
7
+ mkdirSync(directory);
8
+ }
9
+ };
10
+ export const searchDirInDirectoryTree = (dirnameToSearch, dir = process.cwd(), excludeDirectories = []) => {
11
+ dir ??= process.cwd();
12
+ while (dir !== parse(dir).root) {
13
+ const configPath = join(dir, dirnameToSearch);
14
+ dir = dirname(dir);
15
+ if (excludeDirectories.includes(configPath)) {
16
+ continue;
17
+ }
18
+ if (existsSync(configPath) && lstatSync(configPath).isDirectory()) {
19
+ return configPath;
20
+ }
21
+ }
22
+ return null;
23
+ };
24
+ export const searchFileInDirectoryTree = (filenameToSearch, dir = process.cwd(), excludeDirectories = []) => {
25
+ dir ??= process.cwd();
26
+ while (dir !== parse(dir).root) {
27
+ const configPath = join(dir, filenameToSearch);
28
+ dir = dirname(dir);
29
+ if (excludeDirectories.includes(configPath)) {
30
+ continue;
31
+ }
32
+ if (existsSync(configPath) && lstatSync(configPath).isFile()) {
33
+ return configPath;
34
+ }
35
+ }
36
+ return null;
37
+ };
38
+ export const readJsonFile = (configFilePath) => {
39
+ try {
40
+ return JSON.parse(readFileSync(configFilePath, 'utf8'));
41
+ }
42
+ catch {
43
+ return {};
44
+ }
45
+ };
46
+ export const dirnameFromMeta = (importMeta) => {
47
+ return dirname(filenameFromMeta(importMeta));
48
+ };
49
+ export const filenameFromMeta = (importMeta) => {
50
+ return fileURLToPath(importMeta.url);
51
+ };
52
+ export const removeFile = (file) => {
53
+ fs.rmSync(file);
54
+ };
55
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/FS/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,IAAI,CAAC;AAClE,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,eAAuB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,qBAA+B,EAAE,EAAE,EAAE;IAE1H,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAA;IAErB,OAAO,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAE9C,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,SAAQ;QACV,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,gBAAwB,EACxB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,qBAA+B,EAAE,EACjC,EAAE;IAEF,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAA;IAErB,OAAO,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC/C,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,SAAQ;QACV,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7D,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,cAAsB,EAA2B,EAAE;IAC9E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAA2B,EAAE,EAAE;IAC7D,OAAO,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAA2B,EAAE,EAAE;IAC9D,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { DaemonRequest, DaemonResponse, TunnelInfo } from '#daemon/protocol';
2
+ import type { AppEventEmitter } from '#cli-app/AppEventEmitter';
3
+ export declare class DaemonClient {
4
+ send(request: DaemonRequest): Promise<DaemonResponse>;
5
+ static isRunning(): Promise<boolean>;
6
+ static spawnDaemon(): void;
7
+ static attach(profileName: string, appEmitter: AppEventEmitter): Promise<{
8
+ status: TunnelInfo['status'];
9
+ requestCount: number;
10
+ lastLatency?: number;
11
+ }>;
12
+ static start(): Promise<void>;
13
+ static stop(): Promise<void>;
14
+ static ensureRunning(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=DaemonClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaemonClient.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC/E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAA;AAO7D,qBAAa,YAAY;IAEjB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAyB3D,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAWpC,MAAM,CAAC,WAAW,IAAI,IAAI;IA0B1B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;WAmEzI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAUrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5C"}
@@ -0,0 +1,158 @@
1
+ import net from 'net';
2
+ import { spawn } from 'child_process';
3
+ import { fileURLToPath } from 'url';
4
+ import { dirname, join } from 'path';
5
+ import { isSea } from 'node:sea';
6
+ import { DAEMON_SOCKET_PATH } from '#lib/defs';
7
+ // Resolves daemon-main.ts (dev) or daemon-main.js (production) relative to this file.
8
+ // src/daemon/DaemonClient.ts → src/daemon-main.ts (one level up)
9
+ const ext = import.meta.url.endsWith('.ts') ? '.ts' : '.js';
10
+ const DAEMON_MAIN_PATH = join(dirname(fileURLToPath(import.meta.url)), `../daemon-main${ext}`);
11
+ export class DaemonClient {
12
+ async send(request) {
13
+ return new Promise((resolve, reject) => {
14
+ const socket = net.connect(DAEMON_SOCKET_PATH);
15
+ let buffer = '';
16
+ socket.on('connect', () => {
17
+ socket.write(JSON.stringify(request) + '\n');
18
+ });
19
+ socket.on('data', (chunk) => {
20
+ buffer += chunk.toString();
21
+ const nl = buffer.indexOf('\n');
22
+ if (nl === -1)
23
+ return;
24
+ socket.destroy();
25
+ try {
26
+ resolve(JSON.parse(buffer.slice(0, nl)));
27
+ }
28
+ catch {
29
+ reject(new Error('Invalid daemon response'));
30
+ }
31
+ });
32
+ socket.on('error', reject);
33
+ });
34
+ }
35
+ static isRunning() {
36
+ return new Promise((resolve) => {
37
+ const socket = net.connect(DAEMON_SOCKET_PATH);
38
+ socket.on('connect', () => {
39
+ socket.destroy();
40
+ resolve(true);
41
+ });
42
+ socket.on('error', () => resolve(false));
43
+ });
44
+ }
45
+ static spawnDaemon() {
46
+ if (isSea()) {
47
+ // SEA binary: spawn itself with TUNLI_DAEMON=1 to enter daemon mode
48
+ spawn(process.execPath, [], {
49
+ env: { ...process.env, TUNLI_DAEMON: '1' },
50
+ detached: true,
51
+ stdio: 'ignore',
52
+ }).unref();
53
+ return;
54
+ }
55
+ // Dev / plain-JS mode:
56
+ // tsx as binary: node /path/tsx daemon-main.ts
57
+ // tsx as loader: node --import tsx/esm daemon-main.ts
58
+ // production: node daemon-main.js
59
+ const isTsxBinary = (process.argv[1] ?? '').includes('tsx');
60
+ const nodeArgs = isTsxBinary
61
+ ? [process.argv[1], DAEMON_MAIN_PATH]
62
+ : [...process.execArgv, DAEMON_MAIN_PATH];
63
+ spawn(process.execPath, nodeArgs, { detached: true, stdio: 'ignore' }).unref();
64
+ }
65
+ // Attach to a running tunnel, streaming events into the given AppEventEmitter.
66
+ // Resolves with tunnel info when attach-ok is received.
67
+ // The socket stays open; events flow until the tunnel stops or process exits.
68
+ static attach(profileName, appEmitter) {
69
+ return new Promise((resolve, reject) => {
70
+ const socket = net.connect(DAEMON_SOCKET_PATH);
71
+ let buffer = '';
72
+ socket.on('connect', () => {
73
+ socket.write(JSON.stringify({ type: 'attach', profileName }) + '\n');
74
+ });
75
+ socket.on('data', (chunk) => {
76
+ buffer += chunk.toString();
77
+ let nl;
78
+ while ((nl = buffer.indexOf('\n')) !== -1) {
79
+ const line = buffer.slice(0, nl);
80
+ buffer = buffer.slice(nl + 1);
81
+ try {
82
+ const msg = JSON.parse(line);
83
+ if (msg.type === 'attach-ok') {
84
+ resolve({ status: msg.status, requestCount: msg.requestCount, ...(msg.lastLatency !== undefined && { lastLatency: msg.lastLatency }) });
85
+ continue;
86
+ }
87
+ if (msg.type === 'error') {
88
+ reject(new Error(msg.message));
89
+ socket.destroy();
90
+ return;
91
+ }
92
+ if (msg.type !== 'event')
93
+ continue;
94
+ switch (msg.event) {
95
+ case 'connect':
96
+ appEmitter.emit('connect');
97
+ break;
98
+ case 'disconnect':
99
+ appEmitter.emit('disconnect', msg.reason);
100
+ break;
101
+ case 'connect_error':
102
+ appEmitter.emit('connect_error', new Error(msg.message));
103
+ break;
104
+ case 'ready':
105
+ appEmitter.emit('ready', msg);
106
+ break;
107
+ case 'request':
108
+ appEmitter.emit('request', msg.data);
109
+ break;
110
+ case 'response':
111
+ appEmitter.emit('response', msg.req, msg.res);
112
+ break;
113
+ case 'request-error':
114
+ appEmitter.emit('request-error', new Error(msg.message), msg.meta);
115
+ break;
116
+ case 'client-blocked':
117
+ appEmitter.emit('client-blocked', msg.ip);
118
+ break;
119
+ case 'latency':
120
+ appEmitter.emit('latency', msg.ms);
121
+ break;
122
+ }
123
+ }
124
+ catch { /* malformed line */
125
+ }
126
+ }
127
+ });
128
+ socket.on('error', reject);
129
+ socket.on('close', () => appEmitter.emit('disconnect', 'daemon-closed'));
130
+ });
131
+ }
132
+ static async start() {
133
+ DaemonClient.spawnDaemon();
134
+ const deadline = Date.now() + 5000;
135
+ while (Date.now() < deadline) {
136
+ await new Promise(r => setTimeout(r, 100));
137
+ if (await DaemonClient.isRunning())
138
+ return;
139
+ }
140
+ throw new Error('Daemon did not start within 5 seconds');
141
+ }
142
+ static async stop() {
143
+ await new DaemonClient().send({ type: 'shutdown' });
144
+ const deadline = Date.now() + 5000;
145
+ while (Date.now() < deadline) {
146
+ await new Promise(r => setTimeout(r, 100));
147
+ if (!await DaemonClient.isRunning())
148
+ return;
149
+ }
150
+ throw new Error('Daemon did not stop within 5 seconds');
151
+ }
152
+ static async ensureRunning() {
153
+ if (await DaemonClient.isRunning())
154
+ return;
155
+ await DaemonClient.start();
156
+ }
157
+ }
158
+ //# sourceMappingURL=DaemonClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaemonClient.js","sourceRoot":"","sources":["../../src/daemon/DaemonClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Logger } from '#types/types';
2
+ import { ParsedGlobalConfig } from '#config/ParsedGlobalConfig';
3
+ export declare class DaemonServer {
4
+ #private;
5
+ constructor(globalConf: ParsedGlobalConfig, logger: Logger);
6
+ listen(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=DaemonServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaemonServer.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonServer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAA8B,MAAM,cAAc,CAAA;AAGrE,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAY7D,qBAAa,YAAY;;gBAOX,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM;IAKpD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAwM9B"}