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.
- package/CHANGELOG.md +45 -0
- package/README.md +158 -67
- package/bin/tunli +4 -5
- package/dist/api-client/ApiClient.d.ts +18 -0
- package/dist/api-client/ApiClient.d.ts.map +1 -0
- package/dist/api-client/ApiClient.js +100 -0
- package/dist/api-client/ApiClient.js.map +1 -0
- package/dist/api-client/types.d.ts +26 -0
- package/dist/api-client/types.d.ts.map +1 -0
- package/dist/api-client/types.js +2 -0
- package/dist/api-client/types.js.map +1 -0
- package/dist/api-client/utils.d.ts +4 -0
- package/dist/api-client/utils.d.ts.map +1 -0
- package/dist/api-client/utils.js +13 -0
- package/dist/api-client/utils.js.map +1 -0
- package/dist/cli-app/AppEventEmitter.d.ts +57 -0
- package/dist/cli-app/AppEventEmitter.d.ts.map +1 -0
- package/dist/cli-app/AppEventEmitter.js +11 -0
- package/dist/cli-app/AppEventEmitter.js.map +1 -0
- package/dist/cli-app/Dashboard.d.ts +4 -0
- package/dist/cli-app/Dashboard.d.ts.map +1 -0
- package/dist/cli-app/Dashboard.js +241 -0
- package/dist/cli-app/Dashboard.js.map +1 -0
- package/dist/cli-app/LiveLog.d.ts +4 -0
- package/dist/cli-app/LiveLog.d.ts.map +1 -0
- package/dist/cli-app/LiveLog.js +28 -0
- package/dist/cli-app/LiveLog.js.map +1 -0
- package/dist/cli-app/types.d.ts +10 -0
- package/dist/cli-app/types.d.ts.map +1 -0
- package/dist/cli-app/types.js +2 -0
- package/dist/cli-app/types.js.map +1 -0
- package/dist/cli-app/versionCheck.d.ts +4 -0
- package/dist/cli-app/versionCheck.d.ts.map +1 -0
- package/dist/cli-app/versionCheck.js +46 -0
- package/dist/cli-app/versionCheck.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +75 -0
- package/dist/client.js.map +1 -0
- package/dist/commander/Argument.d.ts +19 -0
- package/dist/commander/Argument.d.ts.map +1 -0
- package/dist/commander/Argument.js +25 -0
- package/dist/commander/Argument.js.map +1 -0
- package/dist/commander/Command.d.ts +23 -0
- package/dist/commander/Command.d.ts.map +1 -0
- package/dist/commander/Command.js +159 -0
- package/dist/commander/Command.js.map +1 -0
- package/dist/commander/InvalidArgumentError.d.ts +5 -0
- package/dist/commander/InvalidArgumentError.d.ts.map +1 -0
- package/dist/commander/InvalidArgumentError.js +8 -0
- package/dist/commander/InvalidArgumentError.js.map +1 -0
- package/dist/commander/Option.d.ts +15 -0
- package/dist/commander/Option.d.ts.map +1 -0
- package/dist/commander/Option.js +43 -0
- package/dist/commander/Option.js.map +1 -0
- package/dist/commander/index.d.ts +7 -0
- package/dist/commander/index.d.ts.map +1 -0
- package/dist/commander/index.js +5 -0
- package/dist/commander/index.js.map +1 -0
- package/dist/commander/types.d.ts +2 -0
- package/dist/commander/types.d.ts.map +1 -0
- package/dist/commander/types.js +2 -0
- package/dist/commander/types.js.map +1 -0
- package/dist/commands/CommandAuth/CommandAuth.d.ts +4 -0
- package/dist/commands/CommandAuth/CommandAuth.d.ts.map +1 -0
- package/dist/commands/CommandAuth/CommandAuth.js +24 -0
- package/dist/commands/CommandAuth/CommandAuth.js.map +1 -0
- package/dist/commands/CommandConfig/CommandConfig.d.ts +4 -0
- package/dist/commands/CommandConfig/CommandConfig.d.ts.map +1 -0
- package/dist/commands/CommandConfig/CommandConfig.js +37 -0
- package/dist/commands/CommandConfig/CommandConfig.js.map +1 -0
- package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.d.ts +4 -0
- package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.d.ts.map +1 -0
- package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.js +20 -0
- package/dist/commands/CommandConfig/sub-commands/configDeleteCommand.js.map +1 -0
- package/dist/commands/CommandConfig/sub-commands/configGetCommand.d.ts +5 -0
- package/dist/commands/CommandConfig/sub-commands/configGetCommand.d.ts.map +1 -0
- package/dist/commands/CommandConfig/sub-commands/configGetCommand.js +23 -0
- package/dist/commands/CommandConfig/sub-commands/configGetCommand.js.map +1 -0
- package/dist/commands/CommandConfig/sub-commands/configSetCommand.d.ts +4 -0
- package/dist/commands/CommandConfig/sub-commands/configSetCommand.d.ts.map +1 -0
- package/dist/commands/CommandConfig/sub-commands/configSetCommand.js +69 -0
- package/dist/commands/CommandConfig/sub-commands/configSetCommand.js.map +1 -0
- package/dist/commands/CommandConfig/types.d.ts +6 -0
- package/dist/commands/CommandConfig/types.d.ts.map +1 -0
- package/dist/commands/CommandConfig/types.js +2 -0
- package/dist/commands/CommandConfig/types.js.map +1 -0
- package/dist/commands/CommandConfig/utils/preparePrimaryOptions.d.ts +3 -0
- package/dist/commands/CommandConfig/utils/preparePrimaryOptions.d.ts.map +1 -0
- package/dist/commands/CommandConfig/utils/preparePrimaryOptions.js +8 -0
- package/dist/commands/CommandConfig/utils/preparePrimaryOptions.js.map +1 -0
- package/dist/commands/CommandConfig/utils/resolveConfig.d.ts +8 -0
- package/dist/commands/CommandConfig/utils/resolveConfig.d.ts.map +1 -0
- package/dist/commands/CommandConfig/utils/resolveConfig.js +33 -0
- package/dist/commands/CommandConfig/utils/resolveConfig.js.map +1 -0
- package/dist/commands/CommandConfig/utils/sharedOptions.d.ts +3 -0
- package/dist/commands/CommandConfig/utils/sharedOptions.d.ts.map +1 -0
- package/dist/commands/CommandConfig/utils/sharedOptions.js +14 -0
- package/dist/commands/CommandConfig/utils/sharedOptions.js.map +1 -0
- package/dist/commands/CommandDaemon/CommandDaemon.d.ts +4 -0
- package/dist/commands/CommandDaemon/CommandDaemon.d.ts.map +1 -0
- package/dist/commands/CommandDaemon/CommandDaemon.js +57 -0
- package/dist/commands/CommandDaemon/CommandDaemon.js.map +1 -0
- package/dist/commands/CommandDashboard/CommandDashboard.d.ts +4 -0
- package/dist/commands/CommandDashboard/CommandDashboard.d.ts.map +1 -0
- package/dist/commands/CommandDashboard/CommandDashboard.js +54 -0
- package/dist/commands/CommandDashboard/CommandDashboard.js.map +1 -0
- package/dist/commands/CommandHTTP/CommandHttp.d.ts +4 -0
- package/dist/commands/CommandHTTP/CommandHttp.d.ts.map +1 -0
- package/dist/commands/CommandHTTP/CommandHttp.js +50 -0
- package/dist/commands/CommandHTTP/CommandHttp.js.map +1 -0
- package/dist/commands/CommandInit/CommandInit.d.ts +4 -0
- package/dist/commands/CommandInit/CommandInit.d.ts.map +1 -0
- package/dist/commands/CommandInit/CommandInit.js +36 -0
- package/dist/commands/CommandInit/CommandInit.js.map +1 -0
- package/dist/commands/CommandList/CommandList.d.ts +4 -0
- package/dist/commands/CommandList/CommandList.d.ts.map +1 -0
- package/dist/commands/CommandList/CommandList.js +54 -0
- package/dist/commands/CommandList/CommandList.js.map +1 -0
- package/dist/commands/CommandLogs/CommandLogs.d.ts +4 -0
- package/dist/commands/CommandLogs/CommandLogs.d.ts.map +1 -0
- package/dist/commands/CommandLogs/CommandLogs.js +33 -0
- package/dist/commands/CommandLogs/CommandLogs.js.map +1 -0
- package/dist/commands/CommandProfile/CommandProfile.d.ts +5 -0
- package/dist/commands/CommandProfile/CommandProfile.d.ts.map +1 -0
- package/dist/commands/CommandProfile/CommandProfile.js +64 -0
- package/dist/commands/CommandProfile/CommandProfile.js.map +1 -0
- package/dist/commands/CommandRegister/CommandRegister.d.ts +4 -0
- package/dist/commands/CommandRegister/CommandRegister.d.ts.map +1 -0
- package/dist/commands/CommandRegister/CommandRegister.js +43 -0
- package/dist/commands/CommandRegister/CommandRegister.js.map +1 -0
- package/dist/commands/CommandRestart/CommandRestart.d.ts +4 -0
- package/dist/commands/CommandRestart/CommandRestart.d.ts.map +1 -0
- package/dist/commands/CommandRestart/CommandRestart.js +62 -0
- package/dist/commands/CommandRestart/CommandRestart.js.map +1 -0
- package/dist/commands/CommandServer/CommandServer.d.ts +4 -0
- package/dist/commands/CommandServer/CommandServer.d.ts.map +1 -0
- package/dist/commands/CommandServer/CommandServer.js +24 -0
- package/dist/commands/CommandServer/CommandServer.js.map +1 -0
- package/dist/commands/CommandStop/CommandStop.d.ts +4 -0
- package/dist/commands/CommandStop/CommandStop.d.ts.map +1 -0
- package/dist/commands/CommandStop/CommandStop.js +25 -0
- package/dist/commands/CommandStop/CommandStop.js.map +1 -0
- package/dist/commands/CommandUpdate/CommandUpdate.d.ts +4 -0
- package/dist/commands/CommandUpdate/CommandUpdate.d.ts.map +1 -0
- package/dist/commands/CommandUpdate/CommandUpdate.js +38 -0
- package/dist/commands/CommandUpdate/CommandUpdate.js.map +1 -0
- package/dist/commands/CommandUseProfile/CommandUseProfile.d.ts +4 -0
- package/dist/commands/CommandUseProfile/CommandUseProfile.d.ts.map +1 -0
- package/dist/commands/CommandUseProfile/CommandUseProfile.js +63 -0
- package/dist/commands/CommandUseProfile/CommandUseProfile.js.map +1 -0
- package/dist/commands/helper/Help.d.ts +4 -0
- package/dist/commands/helper/Help.d.ts.map +1 -0
- package/dist/commands/helper/Help.js +134 -0
- package/dist/commands/helper/Help.js.map +1 -0
- package/dist/commands/helper/Parser.d.ts +55 -0
- package/dist/commands/helper/Parser.d.ts.map +1 -0
- package/dist/commands/helper/Parser.js +280 -0
- package/dist/commands/helper/Parser.js.map +1 -0
- package/dist/commands/shared/allowDenyCidrCommand.d.ts +3 -0
- package/dist/commands/shared/allowDenyCidrCommand.d.ts.map +1 -0
- package/dist/commands/shared/allowDenyCidrCommand.js +10 -0
- package/dist/commands/shared/allowDenyCidrCommand.js.map +1 -0
- package/dist/commands/shared/configServersCommand.d.ts +4 -0
- package/dist/commands/shared/configServersCommand.d.ts.map +1 -0
- package/dist/commands/shared/configServersCommand.js +19 -0
- package/dist/commands/shared/configServersCommand.js.map +1 -0
- package/dist/commands/utils.d.ts +3 -0
- package/dist/commands/utils.d.ts.map +1 -0
- package/dist/commands/utils.js +17 -0
- package/dist/commands/utils.js.map +1 -0
- package/dist/config/ParsedConfig.d.ts +31 -0
- package/dist/config/ParsedConfig.d.ts.map +1 -0
- package/dist/config/ParsedConfig.js +116 -0
- package/dist/config/ParsedConfig.js.map +1 -0
- package/dist/config/ParsedGlobalConfig.d.ts +5 -0
- package/dist/config/ParsedGlobalConfig.d.ts.map +1 -0
- package/dist/config/ParsedGlobalConfig.js +7 -0
- package/dist/config/ParsedGlobalConfig.js.map +1 -0
- package/dist/config/ParsedLocalConfig.d.ts +5 -0
- package/dist/config/ParsedLocalConfig.d.ts.map +1 -0
- package/dist/config/ParsedLocalConfig.js +7 -0
- package/dist/config/ParsedLocalConfig.js.map +1 -0
- package/dist/config/ParsedProfileConfig.d.ts +46 -0
- package/dist/config/ParsedProfileConfig.d.ts.map +1 -0
- package/dist/config/ParsedProfileConfig.js +120 -0
- package/dist/config/ParsedProfileConfig.js.map +1 -0
- package/dist/config/ParsedServerConfig.d.ts +20 -0
- package/dist/config/ParsedServerConfig.d.ts.map +1 -0
- package/dist/config/ParsedServerConfig.js +55 -0
- package/dist/config/ParsedServerConfig.js.map +1 -0
- package/dist/config/TempProfileConfig.d.ts +8 -0
- package/dist/config/TempProfileConfig.d.ts.map +1 -0
- package/dist/config/TempProfileConfig.js +13 -0
- package/dist/config/TempProfileConfig.js.map +1 -0
- package/dist/config/utils.d.ts +2 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/config/utils.js +8 -0
- package/dist/config/utils.js.map +1 -0
- package/dist/config/validations/validateProfileConfig.d.ts +4 -0
- package/dist/config/validations/validateProfileConfig.d.ts.map +1 -0
- package/dist/config/validations/validateProfileConfig.js +76 -0
- package/dist/config/validations/validateProfileConfig.js.map +1 -0
- package/dist/core/FS/utils.d.ts +12 -0
- package/dist/core/FS/utils.d.ts.map +1 -0
- package/dist/core/FS/utils.js +55 -0
- package/dist/core/FS/utils.js.map +1 -0
- package/dist/daemon/DaemonClient.d.ts +16 -0
- package/dist/daemon/DaemonClient.d.ts.map +1 -0
- package/dist/daemon/DaemonClient.js +158 -0
- package/dist/daemon/DaemonClient.js.map +1 -0
- package/dist/daemon/DaemonServer.d.ts +8 -0
- package/dist/daemon/DaemonServer.d.ts.map +1 -0
- package/dist/daemon/DaemonServer.js +201 -0
- package/dist/daemon/DaemonServer.js.map +1 -0
- package/dist/daemon/protocol.d.ts +101 -0
- package/dist/daemon/protocol.d.ts.map +1 -0
- package/dist/daemon/protocol.js +2 -0
- package/dist/daemon/protocol.js.map +1 -0
- package/dist/daemon-main.d.ts +2 -0
- package/dist/daemon-main.d.ts.map +1 -0
- package/dist/daemon-main.js +13 -0
- package/dist/daemon-main.js.map +1 -0
- package/dist/launcher-main.d.ts +2 -0
- package/dist/launcher-main.d.ts.map +1 -0
- package/dist/launcher-main.js +57 -0
- package/dist/launcher-main.js.map +1 -0
- package/dist/lib/Flow/applyUpdate.d.ts +3 -0
- package/dist/lib/Flow/applyUpdate.d.ts.map +1 -0
- package/dist/lib/Flow/applyUpdate.js +34 -0
- package/dist/lib/Flow/applyUpdate.js.map +1 -0
- package/dist/lib/Flow/downloadBinaryUpdate.d.ts +3 -0
- package/dist/lib/Flow/downloadBinaryUpdate.d.ts.map +1 -0
- package/dist/lib/Flow/downloadBinaryUpdate.js +54 -0
- package/dist/lib/Flow/downloadBinaryUpdate.js.map +1 -0
- package/dist/lib/Flow/getLatestVersion.d.ts +2 -0
- package/dist/lib/Flow/getLatestVersion.d.ts.map +1 -0
- package/dist/lib/Flow/getLatestVersion.js +13 -0
- package/dist/lib/Flow/getLatestVersion.js.map +1 -0
- package/dist/lib/defs.d.ts +18 -0
- package/dist/lib/defs.d.ts.map +1 -0
- package/dist/lib/defs.js +33 -0
- package/dist/lib/defs.js.map +1 -0
- package/dist/logger/logger.d.ts +6 -0
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/logger/logger.js +34 -0
- package/dist/logger/logger.js.map +1 -0
- package/dist/output-formats/colors.d.ts +7 -0
- package/dist/output-formats/colors.d.ts.map +1 -0
- package/dist/output-formats/colors.js +8 -0
- package/dist/output-formats/colors.js.map +1 -0
- package/dist/output-formats/formatConfig.d.ts +3 -0
- package/dist/output-formats/formatConfig.d.ts.map +1 -0
- package/dist/output-formats/formatConfig.js +59 -0
- package/dist/output-formats/formatConfig.js.map +1 -0
- package/dist/output-formats/formatConfigPath.d.ts +4 -0
- package/dist/output-formats/formatConfigPath.d.ts.map +1 -0
- package/dist/output-formats/formatConfigPath.js +7 -0
- package/dist/output-formats/formatConfigPath.js.map +1 -0
- package/dist/output-formats/formatPath.d.ts +2 -0
- package/dist/output-formats/formatPath.d.ts.map +1 -0
- package/dist/output-formats/formatPath.js +6 -0
- package/dist/output-formats/formatPath.js.map +1 -0
- package/dist/output-formats/formatProfile.d.ts +3 -0
- package/dist/output-formats/formatProfile.d.ts.map +1 -0
- package/dist/output-formats/formatProfile.js +35 -0
- package/dist/output-formats/formatProfile.js.map +1 -0
- package/dist/output-formats/formatProfilesShort.d.ts +3 -0
- package/dist/output-formats/formatProfilesShort.d.ts.map +1 -0
- package/dist/output-formats/formatProfilesShort.js +19 -0
- package/dist/output-formats/formatProfilesShort.js.map +1 -0
- package/dist/output-formats/formatSaveResult.d.ts +4 -0
- package/dist/output-formats/formatSaveResult.d.ts.map +1 -0
- package/dist/output-formats/formatSaveResult.js +7 -0
- package/dist/output-formats/formatSaveResult.js.map +1 -0
- package/dist/output-formats/table.d.ts +8 -0
- package/dist/output-formats/table.d.ts.map +1 -0
- package/dist/output-formats/table.js +15 -0
- package/dist/output-formats/table.js.map +1 -0
- package/dist/package-json/packageJson.d.ts +6 -0
- package/dist/package-json/packageJson.d.ts.map +1 -0
- package/dist/package-json/packageJson.js +12 -0
- package/dist/package-json/packageJson.js.map +1 -0
- package/dist/proxy/Proxy.d.ts +6 -0
- package/dist/proxy/Proxy.d.ts.map +1 -0
- package/dist/proxy/Proxy.js +203 -0
- package/dist/proxy/Proxy.js.map +1 -0
- package/dist/sea-main.d.ts +2 -0
- package/dist/sea-main.d.ts.map +1 -0
- package/dist/sea-main.js +20 -0
- package/dist/sea-main.js.map +1 -0
- package/dist/types/types.d.ts +55 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +2 -0
- package/dist/types/types.js.map +1 -0
- package/dist/utils/arrayFunctions.d.ts +24 -0
- package/dist/utils/arrayFunctions.d.ts.map +1 -0
- package/dist/utils/arrayFunctions.js +43 -0
- package/dist/utils/arrayFunctions.js.map +1 -0
- package/dist/utils/assertFunctions.d.ts +7 -0
- package/dist/utils/assertFunctions.d.ts.map +1 -0
- package/dist/utils/assertFunctions.js +20 -0
- package/dist/utils/assertFunctions.js.map +1 -0
- package/dist/utils/checkFunctions.d.ts +34 -0
- package/dist/utils/checkFunctions.d.ts.map +1 -0
- package/dist/utils/checkFunctions.js +87 -0
- package/dist/utils/checkFunctions.js.map +1 -0
- package/dist/utils/cliFunctions.d.ts +10 -0
- package/dist/utils/cliFunctions.d.ts.map +1 -0
- package/dist/utils/cliFunctions.js +68 -0
- package/dist/utils/cliFunctions.js.map +1 -0
- package/dist/utils/hashFunctions.d.ts +10 -0
- package/dist/utils/hashFunctions.d.ts.map +1 -0
- package/dist/utils/hashFunctions.js +11 -0
- package/dist/utils/hashFunctions.js.map +1 -0
- package/dist/utils/npmFunctions.d.ts +3 -0
- package/dist/utils/npmFunctions.d.ts.map +1 -0
- package/dist/utils/npmFunctions.js +28 -0
- package/dist/utils/npmFunctions.js.map +1 -0
- package/dist/utils/stringFunctions.d.ts +12 -0
- package/dist/utils/stringFunctions.d.ts.map +1 -0
- package/dist/utils/stringFunctions.js +37 -0
- package/dist/utils/stringFunctions.js.map +1 -0
- package/package.json +39 -16
- package/client.js +0 -33
- package/src/cli-app/Dashboard.js +0 -220
- package/src/cli-app/Screen/FullScreenModal.js +0 -63
- package/src/cli-app/Screen.js +0 -140
- package/src/cli-app/elements/ElementNode.js +0 -97
- package/src/cli-app/elements/Line.js +0 -21
- package/src/cli-app/elements/List/List.js +0 -227
- package/src/cli-app/elements/List/ListCell.js +0 -83
- package/src/cli-app/elements/List/ListColumn.js +0 -52
- package/src/cli-app/elements/List/ListRow.js +0 -118
- package/src/cli-app/elements/Row.js +0 -38
- package/src/cli-app/helper/utils.js +0 -42
- package/src/commands/Action/addDelValuesAction.js +0 -56
- package/src/commands/CommandAuth.js +0 -32
- package/src/commands/CommandClearAll.js +0 -27
- package/src/commands/CommandConfig.js +0 -59
- package/src/commands/CommandHTTP.js +0 -192
- package/src/commands/CommandInvite.js +0 -38
- package/src/commands/CommandRefresh.js +0 -35
- package/src/commands/CommandRegister.js +0 -48
- package/src/commands/Option/DeleteOption.js +0 -6
- package/src/commands/Option/ProfileListOption.js +0 -65
- package/src/commands/Option/SelectConfigOption.js +0 -52
- package/src/commands/SubCommand/AllowDenyCidrCommand.js +0 -28
- package/src/commands/SubCommand/HostCommand.js +0 -22
- package/src/commands/SubCommand/PortCommand.js +0 -20
- package/src/commands/SubCommand/ProtocolCommand.js +0 -21
- package/src/commands/helper/AliasResolver.js +0 -13
- package/src/commands/helper/BindArgs.js +0 -53
- package/src/commands/helper/SharedArg.js +0 -32
- package/src/commands/utils.js +0 -96
- package/src/config/ConfigAbstract.js +0 -353
- package/src/config/ConfigManager.js +0 -70
- package/src/config/GlobalConfig.js +0 -14
- package/src/config/GlobalLocalShardConfigAbstract.js +0 -98
- package/src/config/LocalConfig.js +0 -7
- package/src/config/PropertyConfig.js +0 -122
- package/src/config/SystemConfig.js +0 -31
- package/src/core/FS/utils.js +0 -60
- package/src/core/Ref.js +0 -70
- package/src/lib/Flow/getCurrentIp.js +0 -18
- package/src/lib/Flow/getLatestVersion.js +0 -13
- package/src/lib/Flow/proxyUrl.js +0 -35
- package/src/lib/Flow/validateAuthToken.js +0 -19
- package/src/lib/HttpClient.js +0 -61
- package/src/lib/Proxy.js +0 -42
- package/src/lib/defs.js +0 -13
- package/src/net/IPV4.js +0 -139
- package/src/net/http/IncomingMessage.js +0 -92
- package/src/net/http/ServerResponse.js +0 -126
- package/src/net/http/TunliRequest.js +0 -1
- package/src/net/http/TunliResponse.js +0 -1
- package/src/net/http/TunnelRequest.js +0 -229
- package/src/net/http/TunnelResponse.js +0 -119
- package/src/tunnel-client/TunnelClient.js +0 -144
- package/src/utils/arrayFunctions.js +0 -45
- package/src/utils/checkFunctions.js +0 -182
- package/src/utils/cliFunctions.js +0 -63
- package/src/utils/createRequest.js +0 -12
- package/src/utils/hashFunctions.js +0 -9
- package/src/utils/httpFunction.js +0 -23
- package/src/utils/npmFunctions.js +0 -27
- package/src/utils/stringFunctions.js +0 -59
- package/types/index.d.ts +0 -119
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../src/lib/defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAA;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,kEAAkE,CAAA;AAE3G,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;AAE3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAA;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE;IAC7C,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,GAAG,CAAC;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACjG,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAK;QACvC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAA;IACvE,CAAC,QAAQ,mBAAmB,CAAC,GAAG,EAAE,KAAK,SAAS,IAAI,mBAAmB,CAAC,MAAM,EAAC;IAE/E,OAAO,YAAY,CAAA;AACrB,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AAEnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const logInfo: (message: string) => void;
|
|
2
|
+
export declare const logWarning: (message: string) => void;
|
|
3
|
+
export declare const logError: (message: string) => void;
|
|
4
|
+
export declare const logDebug: (message: string) => void;
|
|
5
|
+
export declare const logException: (e: unknown) => void;
|
|
6
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,SAEtC,CAAA;AACD,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,SAEzC,CAAA;AACD,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,SAEvC,CAAA;AACD,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,SAEvC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,GAAG,OAAO,SAItC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { appendFileSync } from 'fs';
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { GLOBAL_CONFIG_DIR } from "../lib/defs.js";
|
|
4
|
+
const log = (type, message) => {
|
|
5
|
+
const now = new Date();
|
|
6
|
+
const filename = `log-${now.getFullYear()}_${String(now.getMonth() + 1).padStart(2, '0')}_${String(now.getDate()).padStart(2, '0')}.log`;
|
|
7
|
+
const file = join(GLOBAL_CONFIG_DIR, filename);
|
|
8
|
+
const line = `[${now.toISOString()}] [${type.toUpperCase()}] ${message}\n`;
|
|
9
|
+
try {
|
|
10
|
+
appendFileSync(file, line, 'utf-8');
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// silently ignore — log dir may not exist yet
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export const logInfo = (message) => {
|
|
17
|
+
log('info', message);
|
|
18
|
+
};
|
|
19
|
+
export const logWarning = (message) => {
|
|
20
|
+
log('warning', message);
|
|
21
|
+
};
|
|
22
|
+
export const logError = (message) => {
|
|
23
|
+
log('error', message);
|
|
24
|
+
};
|
|
25
|
+
export const logDebug = (message) => {
|
|
26
|
+
log('debug', message);
|
|
27
|
+
};
|
|
28
|
+
export const logException = (e) => {
|
|
29
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
30
|
+
log('error', message);
|
|
31
|
+
if (e instanceof Error && e.stack)
|
|
32
|
+
log('error', e.stack);
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,IAAI,CAAA;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAEjD,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE;IAC5C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAA;IACxI,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,CAAA;IAC1E,IAAI,CAAC;QACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;AACH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE;IACzC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACtB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5C,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IAC1C,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACvB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IAC1C,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,EAAE;IACzC,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1D,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrB,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,KAAK;QAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAC1D,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const dim: import("chalk").ChalkInstance;
|
|
2
|
+
export declare const green: import("chalk").ChalkInstance;
|
|
3
|
+
export declare const proxyColor: (v: string) => string;
|
|
4
|
+
export declare const missingColor: (v: string) => string;
|
|
5
|
+
export declare const activeColor: (v: string) => string;
|
|
6
|
+
export declare const bold: import("chalk").ChalkInstance;
|
|
7
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/output-formats/colors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,+BAAwB,CAAA;AACxC,eAAO,MAAM,KAAK,+BAA0B,CAAA;AAE5C,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,MAA6D,CAAA;AACpG,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,KAAG,MAAuC,CAAA;AAChF,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,KAAG,MAAoD,CAAA;AAE5F,eAAO,MAAM,IAAI,+BAAyB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export const dim = chalk.dim.bind(chalk);
|
|
3
|
+
export const green = chalk.green.bind(chalk);
|
|
4
|
+
export const proxyColor = (v) => v === 'yes' ? green(v.padEnd(5)) : dim(v.padEnd(5));
|
|
5
|
+
export const missingColor = (v) => v.trim() === '-' ? dim(v) : v;
|
|
6
|
+
export const activeColor = (v) => v.trim() === '*' ? chalk.green.bold(v) : v;
|
|
7
|
+
export const bold = chalk.bold.bind(chalk);
|
|
8
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/output-formats/colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatConfig.d.ts","sourceRoot":"","sources":["../../src/output-formats/formatConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAA;AAKtD,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,KAAG,MA6DnD,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { col, heading, row, tableWidth } from '#output-formats/table';
|
|
2
|
+
import { activeColor, dim, missingColor, proxyColor } from '#output-formats/colors';
|
|
3
|
+
import { formatPath } from '#output-formats/formatPath';
|
|
4
|
+
export const formatConfig = (config) => {
|
|
5
|
+
const lines = [];
|
|
6
|
+
// compute widths upfront
|
|
7
|
+
const profileRows = config.profiles.map(p => ({
|
|
8
|
+
name: p.name,
|
|
9
|
+
protocol: p.protocol ?? '-',
|
|
10
|
+
host: p.host ?? '-',
|
|
11
|
+
port: p.port !== undefined ? String(p.port) : '-',
|
|
12
|
+
proxy: p.proxy !== undefined ? 'yes' : 'no',
|
|
13
|
+
}));
|
|
14
|
+
const pw = [
|
|
15
|
+
col(profileRows.map(r => r.name), 'NAME'),
|
|
16
|
+
col(profileRows.map(r => r.protocol), 'PROTOCOL'),
|
|
17
|
+
col(profileRows.map(r => r.host), 'HOST'),
|
|
18
|
+
col(profileRows.map(r => r.port), 'PORT'),
|
|
19
|
+
col(profileRows.map(r => r.proxy), 'PROXY'),
|
|
20
|
+
];
|
|
21
|
+
const pa = ['left', 'left', 'left', 'right', 'left'];
|
|
22
|
+
const pc = [undefined, missingColor, missingColor, missingColor, proxyColor];
|
|
23
|
+
const serverRows = config.servers.map(s => ({
|
|
24
|
+
name: s.name,
|
|
25
|
+
url: s.url ?? '-',
|
|
26
|
+
active: s.name === config.activeServer ? '*' : '',
|
|
27
|
+
}));
|
|
28
|
+
const sw = [
|
|
29
|
+
col(serverRows.map(r => r.name), 'NAME'),
|
|
30
|
+
col(serverRows.map(r => r.url), 'URL'),
|
|
31
|
+
col(serverRows.map(r => r.active), 'ACTIVE'),
|
|
32
|
+
];
|
|
33
|
+
const sc = [undefined, missingColor, activeColor];
|
|
34
|
+
const totalWidth = Math.max(tableWidth(pw), tableWidth(sw));
|
|
35
|
+
// Config header
|
|
36
|
+
lines.push('');
|
|
37
|
+
lines.push(heading('Config', totalWidth));
|
|
38
|
+
lines.push(`${dim('Path')} ${config.filepath ? formatPath(config.filepath) : '-'}`);
|
|
39
|
+
lines.push(`${dim('Type')} ${config.mode}`);
|
|
40
|
+
// Profiles table
|
|
41
|
+
lines.push('');
|
|
42
|
+
lines.push('');
|
|
43
|
+
lines.push(heading('Profiles', totalWidth));
|
|
44
|
+
lines.push(row(['NAME', 'PROTOCOL', 'HOST', 'PORT', 'PROXY'], pw, pa, pw.map(() => dim)));
|
|
45
|
+
for (const r of profileRows) {
|
|
46
|
+
lines.push(row([r.name, r.protocol, r.host, r.port, r.proxy], pw, pa, pc));
|
|
47
|
+
}
|
|
48
|
+
// Servers table
|
|
49
|
+
lines.push('');
|
|
50
|
+
lines.push('');
|
|
51
|
+
lines.push(heading('Servers', totalWidth));
|
|
52
|
+
lines.push(row(['NAME', 'URL', 'ACTIVE'], sw, [], sw.map(() => dim)));
|
|
53
|
+
for (const r of serverRows) {
|
|
54
|
+
lines.push(row([r.name, r.url, r.active], sw, [], sc));
|
|
55
|
+
}
|
|
56
|
+
lines.push('');
|
|
57
|
+
return lines.join('\n');
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=formatConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatConfig.js","sourceRoot":"","sources":["../../src/output-formats/formatConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ParsedProfileConfig } from "#config/ParsedProfileConfig";
|
|
2
|
+
import type { ParsedConfig } from "#config/ParsedConfig";
|
|
3
|
+
export declare const formatConfigPath: (profile: ParsedProfileConfig | ParsedConfig) => string;
|
|
4
|
+
//# sourceMappingURL=formatConfigPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatConfigPath.d.ts","sourceRoot":"","sources":["../../src/output-formats/formatConfigPath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAGvD,eAAO,MAAM,gBAAgB,GAAI,SAAS,mBAAmB,GAAG,YAAY,KAAG,MAG9E,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { dim } from "#output-formats/colors";
|
|
2
|
+
import { formatPath } from "#output-formats/formatPath";
|
|
3
|
+
export const formatConfigPath = (profile) => {
|
|
4
|
+
const path = profile.filepath ? formatPath(profile.filepath) : '-';
|
|
5
|
+
return `Config: ${path} ${dim(`(${profile.locationType})`)}`;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=formatConfigPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatConfigPath.js","sourceRoot":"","sources":["../../src/output-formats/formatConfigPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAG3C,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA2C,EAAU,EAAE;IACtF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAClE,OAAO,WAAW,IAAI,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE,CAAA;AAC9D,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatPath.d.ts","sourceRoot":"","sources":["../../src/output-formats/formatPath.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,KAAG,MAG7C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatPath.js","sourceRoot":"","sources":["../../src/output-formats/formatPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,IAAI,CAAA;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE;IACrD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AACjF,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatProfile.d.ts","sourceRoot":"","sources":["../../src/output-formats/formatProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAKpE,eAAO,MAAM,aAAa,GAAI,SAAS,mBAAmB,KAAG,MAkC5D,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { dim, missingColor, proxyColor } from '#output-formats/colors';
|
|
2
|
+
import { col, heading, row, tableWidth } from '#output-formats/table';
|
|
3
|
+
import { formatPath } from '#output-formats/formatPath';
|
|
4
|
+
export const formatProfile = (profile) => {
|
|
5
|
+
const lines = [];
|
|
6
|
+
const data = [{
|
|
7
|
+
name: profile.name,
|
|
8
|
+
protocol: profile.protocol ?? '-',
|
|
9
|
+
host: profile.host ?? '-',
|
|
10
|
+
port: profile.port !== undefined ? String(profile.port) : '-',
|
|
11
|
+
proxy: profile.proxy !== undefined ? 'yes' : 'no',
|
|
12
|
+
}];
|
|
13
|
+
const pw = [
|
|
14
|
+
col(data.map(r => r.name), 'NAME'),
|
|
15
|
+
col(data.map(r => r.protocol), 'PROTOCOL'),
|
|
16
|
+
col(data.map(r => r.host), 'HOST'),
|
|
17
|
+
col(data.map(r => r.port), 'PORT'),
|
|
18
|
+
col(data.map(r => r.proxy), 'PROXY'),
|
|
19
|
+
];
|
|
20
|
+
const pa = ['left', 'left', 'left', 'right', 'left'];
|
|
21
|
+
const pc = [undefined, missingColor, missingColor, missingColor, proxyColor];
|
|
22
|
+
lines.push('');
|
|
23
|
+
lines.push(heading('Profile', tableWidth(pw)));
|
|
24
|
+
lines.push(`${dim('Name')} ${profile.name}`);
|
|
25
|
+
lines.push(`${dim('File')} ${profile.filepath ? formatPath(profile.filepath) : '-'}`);
|
|
26
|
+
lines.push(`${dim('Scope')} ${profile.locationType}`);
|
|
27
|
+
lines.push('');
|
|
28
|
+
lines.push(row(['NAME', 'PROTOCOL', 'HOST', 'PORT', 'PROXY'], pw, pa, pw.map(() => dim)));
|
|
29
|
+
for (const r of data) {
|
|
30
|
+
lines.push(row([r.name, r.protocol, r.host, r.port, r.proxy], pw, pa, pc));
|
|
31
|
+
}
|
|
32
|
+
lines.push('');
|
|
33
|
+
return lines.join('\n');
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=formatProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatProfile.js","sourceRoot":"","sources":["../../src/output-formats/formatProfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatProfilesShort.d.ts","sourceRoot":"","sources":["../../src/output-formats/formatProfilesShort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAIvD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,YAAY,WAiBvD,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { bold, green } from "#output-formats/colors";
|
|
2
|
+
import { formatConfigPath } from "#output-formats/formatConfigPath";
|
|
3
|
+
export const formatProfilesShort = (config) => {
|
|
4
|
+
const profiles = config.profiles;
|
|
5
|
+
const active = config.defaultProfile;
|
|
6
|
+
const rows = [
|
|
7
|
+
'',
|
|
8
|
+
formatConfigPath(config),
|
|
9
|
+
'',
|
|
10
|
+
];
|
|
11
|
+
for (const profile of profiles) {
|
|
12
|
+
const marker = profile.name === active ? bold(green('* ')) : ' ';
|
|
13
|
+
const row = `${marker}${profile.name.padEnd(16)} ${profile.protocol}://${profile.host}:${profile.port}`;
|
|
14
|
+
rows.push(row);
|
|
15
|
+
}
|
|
16
|
+
rows.push('');
|
|
17
|
+
return rows.join("\n");
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=formatProfilesShort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatProfilesShort.js","sourceRoot":"","sources":["../../src/output-formats/formatProfilesShort.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAoB,EAAE,EAAE;IAE1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAA;IAEpC,MAAM,IAAI,GAAG;QACX,EAAE;QACF,gBAAgB,CAAC,MAAM,CAAC;QACxB,EAAE;KACH,CAAA;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACjE,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;QACvG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ParsedProfileConfig } from '#config/ParsedProfileConfig';
|
|
2
|
+
import type { ParsedConfig } from "#config/ParsedConfig";
|
|
3
|
+
export declare const formatSaveResult: (profile: ParsedProfileConfig | ParsedConfig) => string;
|
|
4
|
+
//# sourceMappingURL=formatSaveResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatSaveResult.d.ts","sourceRoot":"","sources":["../../src/output-formats/formatSaveResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAGpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,gBAAgB,GAAI,SAAS,mBAAmB,GAAG,YAAY,KAAG,MAG9E,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { formatPath } from '#output-formats/formatPath';
|
|
2
|
+
import { dim, green } from '#output-formats/colors';
|
|
3
|
+
export const formatSaveResult = (profile) => {
|
|
4
|
+
const path = profile.filepath ? formatPath(profile.filepath) : '-';
|
|
5
|
+
return `${green('Saved')} ${path} ${dim(`(${profile.locationType})`)}`;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=formatSaveResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatSaveResult.js","sourceRoot":"","sources":["../../src/output-formats/formatSaveResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,wBAAwB,CAAA;AAGjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA2C,EAAU,EAAE;IACtF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAClE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE,CAAA;AACzE,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type Align = 'left' | 'right';
|
|
2
|
+
export type ColorFn = (s: string) => string;
|
|
3
|
+
export declare const col: (values: string[], header: string) => number;
|
|
4
|
+
export declare const row: (cells: string[], widths: number[], aligns?: Align[], colors?: (ColorFn | undefined)[]) => string;
|
|
5
|
+
export declare const separator: (widths: number[]) => string;
|
|
6
|
+
export declare const tableWidth: (widths: number[]) => number;
|
|
7
|
+
export declare const heading: (title: string, total: number) => string;
|
|
8
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/output-formats/table.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AACpC,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;AAE3C,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,EAAE,QAAQ,MAAM,KAAG,MACA,CAAA;AAEvD,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,EAAE,SAAQ,KAAK,EAAO,EAAE,SAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,EAAO,KAAG,MAK1F,CAAA;AAE1B,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,KAAG,MACD,CAAA;AAE5C,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,KAAG,MACmB,CAAA;AAEjE,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAItD,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export const col = (values, header) => Math.max(header.length, ...values.map(v => v.length));
|
|
3
|
+
export const row = (cells, widths, aligns = [], colors = []) => cells.map((c, i) => {
|
|
4
|
+
const w = widths[i] ?? 0;
|
|
5
|
+
const padded = aligns[i] === 'right' ? c.padStart(w) : c.padEnd(w);
|
|
6
|
+
return colors[i]?.(padded) ?? padded;
|
|
7
|
+
}).join(' ').trimEnd();
|
|
8
|
+
export const separator = (widths) => widths.map(w => '-'.repeat(w)).join('---');
|
|
9
|
+
export const tableWidth = (widths) => widths.reduce((sum, w) => sum + w, 0) + (widths.length - 1) * 3;
|
|
10
|
+
export const heading = (title, total) => {
|
|
11
|
+
const prefix = `=== ${title} `;
|
|
12
|
+
const width = Math.max(total, prefix.length + 4);
|
|
13
|
+
return chalk.bold(prefix + '='.repeat(width - prefix.length));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/output-formats/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAE,MAAc,EAAU,EAAE,CAC9D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,MAAgB,EAAE,SAAkB,EAAE,EAAE,SAAkC,EAAE,EAAU,EAAE,CAC3H,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,MAAM,CAAA;AACtC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;AAE1B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAgB,EAAU,EAAE,CACpD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAgB,EAAU,EAAE,CACrD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,KAAa,EAAU,EAAE;IAC9D,MAAM,MAAM,GAAG,OAAO,KAAK,GAAG,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/package-json/packageJson.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,WAAW,GAAG,SAOhD,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { dirnameFromMeta, readJsonFile, searchFileInDirectoryTree } from "#core/FS/utils";
|
|
2
|
+
import { isSea } from 'node:sea';
|
|
3
|
+
export const readPackageJson = () => {
|
|
4
|
+
if (isSea()) {
|
|
5
|
+
return { name: 'tunli', version: __APP_VERSION__ };
|
|
6
|
+
}
|
|
7
|
+
const jsonPath = searchFileInDirectoryTree('package.json', dirnameFromMeta(import.meta));
|
|
8
|
+
if (!jsonPath)
|
|
9
|
+
return;
|
|
10
|
+
return readJsonFile(jsonPath);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=packageJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../src/package-json/packageJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,YAAY,EAAE,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAA;AAS9B,MAAM,CAAC,MAAM,eAAe,GAAG,GAA4B,EAAE;IAC3D,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAC,CAAA;IAClD,CAAC;IACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACxF,IAAI,CAAC,QAAQ;QAAE,OAAM;IACrB,OAAO,YAAY,CAAC,QAAQ,CAAgB,CAAA;AAC9C,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ProfileConfig } from "#types/types";
|
|
2
|
+
import { AppEventEmitter } from "#cli-app/AppEventEmitter";
|
|
3
|
+
export declare const createProxy: (config: ProfileConfig, appEventEmitter: AppEventEmitter) => Promise<{
|
|
4
|
+
disconnect: () => void;
|
|
5
|
+
}>;
|
|
6
|
+
//# sourceMappingURL=Proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AASzD,eAAO,MAAM,WAAW,GACtB,QAAQ,aAAa,EACrB,iBAAiB,eAAe,KAC/B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CA6NpC,CAAA"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import http from 'http';
|
|
2
|
+
import net from 'net';
|
|
3
|
+
import { io } from 'socket.io-client';
|
|
4
|
+
import { AppEventEmitter } from "#cli-app/AppEventEmitter";
|
|
5
|
+
import { PING_INTERVAL } from "#lib/defs";
|
|
6
|
+
export const createProxy = async (config, appEventEmitter) => {
|
|
7
|
+
const apiClient = config.apiClient;
|
|
8
|
+
const connectInfoResult = await apiClient.connectInfo();
|
|
9
|
+
if (connectInfoResult.error)
|
|
10
|
+
throw connectInfoResult.error;
|
|
11
|
+
const { socketUrl: TUNNEL_HOST, capturePath: TUNNEL_SOCKET_PATH, connectionPoolSize } = connectInfoResult.data;
|
|
12
|
+
const token = config.serverConfig.authToken;
|
|
13
|
+
appEventEmitter.emit('ready', {
|
|
14
|
+
proxyIdent: config.proxy.proxyIdent,
|
|
15
|
+
proxyURL: config.proxy.proxyURL,
|
|
16
|
+
target: config.target,
|
|
17
|
+
});
|
|
18
|
+
const createSocket = () => io(TUNNEL_HOST, {
|
|
19
|
+
path: TUNNEL_SOCKET_PATH,
|
|
20
|
+
auth: { token },
|
|
21
|
+
extraHeaders: {
|
|
22
|
+
'x-tunnel-id': config.proxy.proxyIdent,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
let connectedCount = 0;
|
|
26
|
+
let pingInterval;
|
|
27
|
+
let pingSocket;
|
|
28
|
+
const ping = () => {
|
|
29
|
+
if (!pingSocket)
|
|
30
|
+
return;
|
|
31
|
+
const start = Date.now();
|
|
32
|
+
pingSocket.volatile.emit('ping', () => appEventEmitter.emit('latency', Date.now() - start));
|
|
33
|
+
};
|
|
34
|
+
const sockets = Array.from({ length: connectionPoolSize }, createSocket);
|
|
35
|
+
for (const socket of sockets) {
|
|
36
|
+
socket.on('connect', () => {
|
|
37
|
+
connectedCount++;
|
|
38
|
+
if (connectedCount === 1) {
|
|
39
|
+
pingSocket = socket;
|
|
40
|
+
appEventEmitter.emit('connect');
|
|
41
|
+
ping();
|
|
42
|
+
pingInterval = setInterval(ping, PING_INTERVAL);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
socket.on('disconnect', (r) => {
|
|
46
|
+
if (pingSocket === socket) {
|
|
47
|
+
pingSocket = sockets.find(s => s.connected && s !== socket);
|
|
48
|
+
if (!pingSocket) {
|
|
49
|
+
clearInterval(pingInterval);
|
|
50
|
+
pingInterval = undefined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
connectedCount--;
|
|
54
|
+
if (connectedCount === 0) {
|
|
55
|
+
appEventEmitter.emit('disconnect', r);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
socket.on('connect_error', (e) => appEventEmitter.emit('connect_error', e));
|
|
59
|
+
socket.on('request', (requestId, meta) => {
|
|
60
|
+
const isUpgrade = meta.headers['upgrade']?.toLowerCase() === 'websocket';
|
|
61
|
+
appEventEmitter.emit('request', {
|
|
62
|
+
isUpgrade,
|
|
63
|
+
requestId,
|
|
64
|
+
...meta,
|
|
65
|
+
});
|
|
66
|
+
if (isUpgrade) {
|
|
67
|
+
forwardUpgrade(socket, requestId, meta);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const bodyChunks = [];
|
|
71
|
+
const onPipe = (id, chunk) => {
|
|
72
|
+
if (id === requestId)
|
|
73
|
+
bodyChunks.push(Buffer.from(chunk));
|
|
74
|
+
};
|
|
75
|
+
const onPipeError = (id, _err) => {
|
|
76
|
+
if (id === requestId)
|
|
77
|
+
cleanup();
|
|
78
|
+
};
|
|
79
|
+
const onPipeEnd = (id) => {
|
|
80
|
+
if (id !== requestId)
|
|
81
|
+
return;
|
|
82
|
+
cleanup();
|
|
83
|
+
forward();
|
|
84
|
+
};
|
|
85
|
+
const cleanup = () => {
|
|
86
|
+
socket.off('request-pipe', onPipe);
|
|
87
|
+
socket.off('request-pipe-end', onPipeEnd);
|
|
88
|
+
socket.off('request-pipe-error', onPipeError);
|
|
89
|
+
};
|
|
90
|
+
socket.on('request-pipe', onPipe);
|
|
91
|
+
socket.on('request-pipe-end', onPipeEnd);
|
|
92
|
+
socket.on('request-pipe-error', onPipeError);
|
|
93
|
+
const forward = () => {
|
|
94
|
+
const localReq = http.request({
|
|
95
|
+
host: config.target.host,
|
|
96
|
+
port: config.target.port,
|
|
97
|
+
method: meta.method,
|
|
98
|
+
path: meta.path,
|
|
99
|
+
headers: meta.headers
|
|
100
|
+
}, (localRes) => {
|
|
101
|
+
socket.emit('response', requestId, {
|
|
102
|
+
statusCode: localRes.statusCode,
|
|
103
|
+
statusMessage: localRes.statusMessage,
|
|
104
|
+
headers: localRes.headers,
|
|
105
|
+
httpVersion: localRes.httpVersion,
|
|
106
|
+
});
|
|
107
|
+
appEventEmitter.emit('response', {
|
|
108
|
+
host: config.target.host,
|
|
109
|
+
port: config.target.port,
|
|
110
|
+
method: meta.method,
|
|
111
|
+
path: meta.path,
|
|
112
|
+
headers: meta.headers,
|
|
113
|
+
requestId: requestId
|
|
114
|
+
}, {
|
|
115
|
+
statusCode: localRes.statusCode ?? 200,
|
|
116
|
+
statusMessage: localRes.statusMessage ?? 'OK',
|
|
117
|
+
headers: localRes.headers,
|
|
118
|
+
httpVersion: localRes.httpVersion,
|
|
119
|
+
});
|
|
120
|
+
localRes.on('data', (chunk) => socket.emit('response-pipe', requestId, chunk));
|
|
121
|
+
localRes.on('end', () => socket.emit('response-pipe-end', requestId));
|
|
122
|
+
localRes.on('error', (e) => socket.emit('response-pipe-error', requestId, e.message));
|
|
123
|
+
});
|
|
124
|
+
localReq.on('error', (e) => {
|
|
125
|
+
appEventEmitter.emit('request-error', e, {
|
|
126
|
+
isUpgrade: false,
|
|
127
|
+
requestId
|
|
128
|
+
});
|
|
129
|
+
socket.emit('request-error', requestId, e.message);
|
|
130
|
+
});
|
|
131
|
+
if (bodyChunks.length)
|
|
132
|
+
localReq.write(Buffer.concat(bodyChunks));
|
|
133
|
+
localReq.end();
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function forwardUpgrade(socket, requestId, meta) {
|
|
138
|
+
const tcpSocket = net.connect(config.target.port, config.target.host);
|
|
139
|
+
tcpSocket.once('connect', () => {
|
|
140
|
+
const rawHeaders = Object.entries(meta.headers)
|
|
141
|
+
.map(([k, v]) => `${k}: ${v}`)
|
|
142
|
+
.join('\r\n');
|
|
143
|
+
tcpSocket.write(`${meta.method} ${meta.path} HTTP/1.1\r\n${rawHeaders}\r\n\r\n`);
|
|
144
|
+
});
|
|
145
|
+
// Parse the HTTP 101 response, then switch to raw forwarding
|
|
146
|
+
let headerBuf = '';
|
|
147
|
+
let headersComplete = false;
|
|
148
|
+
const onData = (chunk) => {
|
|
149
|
+
if (headersComplete)
|
|
150
|
+
return;
|
|
151
|
+
headerBuf += chunk.toString('binary');
|
|
152
|
+
const headerEnd = headerBuf.indexOf('\r\n\r\n');
|
|
153
|
+
if (headerEnd === -1)
|
|
154
|
+
return;
|
|
155
|
+
headersComplete = true;
|
|
156
|
+
const lines = headerBuf.slice(0, headerEnd).split('\r\n');
|
|
157
|
+
const [, statusCodeStr, ...statusParts] = lines[0].split(' ');
|
|
158
|
+
const headers = {};
|
|
159
|
+
for (const line of lines.slice(1)) {
|
|
160
|
+
const colon = line.indexOf(':');
|
|
161
|
+
if (colon > -1)
|
|
162
|
+
headers[line.slice(0, colon).trim().toLowerCase()] = line.slice(colon + 1).trim();
|
|
163
|
+
}
|
|
164
|
+
const responseData = {
|
|
165
|
+
statusCode: Number(statusCodeStr),
|
|
166
|
+
statusMessage: statusParts.join(' '),
|
|
167
|
+
headers,
|
|
168
|
+
};
|
|
169
|
+
socket.emit('response', requestId, responseData);
|
|
170
|
+
// Remaining bytes after headers = start of WS frame data
|
|
171
|
+
const remaining = Buffer.from(headerBuf.slice(headerEnd + 4), 'binary');
|
|
172
|
+
if (remaining.length)
|
|
173
|
+
socket.emit('response-pipe', requestId, remaining);
|
|
174
|
+
tcpSocket.off('data', onData);
|
|
175
|
+
tcpSocket.on('data', (data) => socket.emit('response-pipe', requestId, data));
|
|
176
|
+
};
|
|
177
|
+
tcpSocket.on('data', onData);
|
|
178
|
+
tcpSocket.on('end', () => socket.emit('response-pipe-end', requestId));
|
|
179
|
+
tcpSocket.on('error', (e) => {
|
|
180
|
+
appEventEmitter.emit('request-error', e, {
|
|
181
|
+
isUpgrade: true,
|
|
182
|
+
requestId
|
|
183
|
+
});
|
|
184
|
+
socket.emit('request-error', requestId, e.message);
|
|
185
|
+
});
|
|
186
|
+
// end-user WS frames → local app
|
|
187
|
+
const onPipe = (id, chunk) => {
|
|
188
|
+
if (id === requestId)
|
|
189
|
+
tcpSocket.write(chunk);
|
|
190
|
+
};
|
|
191
|
+
const onPipeEnd = (id) => {
|
|
192
|
+
if (id === requestId) {
|
|
193
|
+
socket.off('request-pipe', onPipe);
|
|
194
|
+
tcpSocket.end();
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
socket.on('request-pipe', onPipe);
|
|
198
|
+
socket.once('request-pipe-end', onPipeEnd);
|
|
199
|
+
tcpSocket.once('close', () => socket.off('request-pipe', onPipe));
|
|
200
|
+
}
|
|
201
|
+
return { disconnect: () => sockets.forEach(s => s.disconnect()) };
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=Proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"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"}
|