nport 2.1.1 → 2.1.2
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/dist/bin-manager.js +1 -209
- package/dist/index.js +68 -91
- package/package.json +7 -7
- package/CHANGELOG.md +0 -449
- package/dist/analytics.d.ts +0 -59
- package/dist/analytics.js +0 -193
- package/dist/analytics.js.map +0 -1
- package/dist/api.d.ts +0 -20
- package/dist/api.js +0 -85
- package/dist/api.js.map +0 -1
- package/dist/args.d.ts +0 -44
- package/dist/args.js +0 -127
- package/dist/args.js.map +0 -1
- package/dist/bin-manager.d.ts +0 -1
- package/dist/bin-manager.js.map +0 -1
- package/dist/binary.d.ts +0 -42
- package/dist/binary.js +0 -119
- package/dist/binary.js.map +0 -1
- package/dist/config-manager.d.ts +0 -54
- package/dist/config-manager.js +0 -129
- package/dist/config-manager.js.map +0 -1
- package/dist/config.d.ts +0 -25
- package/dist/config.js +0 -59
- package/dist/config.js.map +0 -1
- package/dist/constants.d.ts +0 -61
- package/dist/constants.js +0 -86
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.js.map +0 -1
- package/dist/lang.d.ts +0 -38
- package/dist/lang.js +0 -217
- package/dist/lang.js.map +0 -1
- package/dist/state.d.ts +0 -82
- package/dist/state.js +0 -139
- package/dist/state.js.map +0 -1
- package/dist/tunnel.d.ts +0 -16
- package/dist/tunnel.js +0 -101
- package/dist/tunnel.js.map +0 -1
- package/dist/types/analytics.d.ts +0 -91
- package/dist/types/analytics.js +0 -8
- package/dist/types/analytics.js.map +0 -1
- package/dist/types/config.d.ts +0 -89
- package/dist/types/config.js +0 -8
- package/dist/types/config.js.map +0 -1
- package/dist/types/i18n.d.ts +0 -75
- package/dist/types/i18n.js +0 -5
- package/dist/types/i18n.js.map +0 -1
- package/dist/types/index.d.ts +0 -10
- package/dist/types/index.js +0 -7
- package/dist/types/index.js.map +0 -1
- package/dist/types/tunnel.d.ts +0 -74
- package/dist/types/tunnel.js +0 -8
- package/dist/types/tunnel.js.map +0 -1
- package/dist/types/version.d.ts +0 -25
- package/dist/types/version.js +0 -5
- package/dist/types/version.js.map +0 -1
- package/dist/ui.d.ts +0 -54
- package/dist/ui.js +0 -120
- package/dist/ui.js.map +0 -1
- package/dist/version.d.ts +0 -16
- package/dist/version.js +0 -49
- package/dist/version.js.map +0 -1
package/dist/config-manager.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
/**
|
|
5
|
-
* Configuration Manager
|
|
6
|
-
*
|
|
7
|
-
* Handles persistent storage of user preferences in ~/.nport/config.json.
|
|
8
|
-
*/
|
|
9
|
-
class ConfigManager {
|
|
10
|
-
configDir;
|
|
11
|
-
configFile;
|
|
12
|
-
oldLangFile;
|
|
13
|
-
config;
|
|
14
|
-
constructor() {
|
|
15
|
-
this.configDir = path.join(os.homedir(), '.nport');
|
|
16
|
-
this.configFile = path.join(this.configDir, 'config.json');
|
|
17
|
-
this.oldLangFile = path.join(this.configDir, 'lang');
|
|
18
|
-
this.config = this.loadConfig();
|
|
19
|
-
this.migrateOldConfig();
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Loads configuration from the JSON file.
|
|
23
|
-
*/
|
|
24
|
-
loadConfig() {
|
|
25
|
-
try {
|
|
26
|
-
if (fs.existsSync(this.configFile)) {
|
|
27
|
-
const data = fs.readFileSync(this.configFile, 'utf8');
|
|
28
|
-
return JSON.parse(data);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
console.warn('Warning: Could not load config file, using defaults');
|
|
33
|
-
}
|
|
34
|
-
return {};
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Migrates old configuration files to the new unified format.
|
|
38
|
-
*/
|
|
39
|
-
migrateOldConfig() {
|
|
40
|
-
try {
|
|
41
|
-
if (!this.config.language && fs.existsSync(this.oldLangFile)) {
|
|
42
|
-
const oldLang = fs.readFileSync(this.oldLangFile, 'utf8').trim();
|
|
43
|
-
if (oldLang && ['en', 'vi'].includes(oldLang)) {
|
|
44
|
-
this.config.language = oldLang;
|
|
45
|
-
this.saveConfig();
|
|
46
|
-
try {
|
|
47
|
-
fs.unlinkSync(this.oldLangFile);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// Ignore if can't delete
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
// Ignore migration errors
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Saves the current configuration to disk.
|
|
61
|
-
*/
|
|
62
|
-
saveConfig() {
|
|
63
|
-
try {
|
|
64
|
-
if (!fs.existsSync(this.configDir)) {
|
|
65
|
-
fs.mkdirSync(this.configDir, { recursive: true });
|
|
66
|
-
}
|
|
67
|
-
fs.writeFileSync(this.configFile, JSON.stringify(this.config, null, 2), 'utf8');
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
console.warn('Warning: Could not save configuration');
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Gets the saved backend URL.
|
|
77
|
-
*/
|
|
78
|
-
getBackendUrl() {
|
|
79
|
-
return this.config.backendUrl ?? null;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Sets or clears the backend URL.
|
|
83
|
-
*/
|
|
84
|
-
setBackendUrl(url) {
|
|
85
|
-
if (!url) {
|
|
86
|
-
delete this.config.backendUrl;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.config.backendUrl = url;
|
|
90
|
-
}
|
|
91
|
-
return this.saveConfig();
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Gets the saved language preference.
|
|
95
|
-
*/
|
|
96
|
-
getLanguage() {
|
|
97
|
-
return this.config.language ?? null;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Sets or clears the language preference.
|
|
101
|
-
*/
|
|
102
|
-
setLanguage(lang) {
|
|
103
|
-
if (!lang) {
|
|
104
|
-
delete this.config.language;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.config.language = lang;
|
|
108
|
-
}
|
|
109
|
-
return this.saveConfig();
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Gets a copy of all configuration.
|
|
113
|
-
*/
|
|
114
|
-
getAll() {
|
|
115
|
-
return { ...this.config };
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Clears all configuration.
|
|
119
|
-
*/
|
|
120
|
-
clear() {
|
|
121
|
-
this.config = {};
|
|
122
|
-
return this.saveConfig();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Singleton instance
|
|
127
|
-
*/
|
|
128
|
-
export const configManager = new ConfigManager();
|
|
129
|
-
//# sourceMappingURL=config-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { AppConfig, PlatformConfig, PathsConfig, LogPatterns, NetworkConfig } from './types/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Application configuration constants
|
|
4
|
-
*/
|
|
5
|
-
export declare const CONFIG: AppConfig;
|
|
6
|
-
/**
|
|
7
|
-
* Platform-specific configuration
|
|
8
|
-
*/
|
|
9
|
-
export declare const PLATFORM: PlatformConfig;
|
|
10
|
-
/**
|
|
11
|
-
* File system paths
|
|
12
|
-
*/
|
|
13
|
-
export declare const PATHS: PathsConfig;
|
|
14
|
-
/**
|
|
15
|
-
* Log patterns for filtering cloudflared output
|
|
16
|
-
*/
|
|
17
|
-
export declare const LOG_PATTERNS: LogPatterns;
|
|
18
|
-
/**
|
|
19
|
-
* Network warning configuration
|
|
20
|
-
*/
|
|
21
|
-
export declare const NETWORK_CONFIG: NetworkConfig;
|
|
22
|
-
/**
|
|
23
|
-
* Tunnel timeout in milliseconds
|
|
24
|
-
*/
|
|
25
|
-
export declare const TUNNEL_TIMEOUT_MS: number;
|
package/dist/config.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import { fileURLToPath } from 'url';
|
|
3
|
-
import { createRequire } from 'module';
|
|
4
|
-
import { DEFAULT_BACKEND_URL, DEFAULT_PORT, SUBDOMAIN_PREFIX, TUNNEL_TIMEOUT_HOURS, UPDATE_CHECK_TIMEOUT, LOG_PATTERNS as SHARED_LOG_PATTERNS, NETWORK_WARNING, } from './constants.js';
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = path.dirname(path.dirname(__filename));
|
|
7
|
-
const require = createRequire(import.meta.url);
|
|
8
|
-
const packageJson = require('../package.json');
|
|
9
|
-
/**
|
|
10
|
-
* Gets the backend URL based on priority order.
|
|
11
|
-
*/
|
|
12
|
-
function getBackendUrl() {
|
|
13
|
-
if (process.env.NPORT_BACKEND_URL) {
|
|
14
|
-
return process.env.NPORT_BACKEND_URL;
|
|
15
|
-
}
|
|
16
|
-
return DEFAULT_BACKEND_URL;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Application configuration constants
|
|
20
|
-
*/
|
|
21
|
-
export const CONFIG = {
|
|
22
|
-
PACKAGE_NAME: packageJson.name,
|
|
23
|
-
CURRENT_VERSION: packageJson.version,
|
|
24
|
-
BACKEND_URL: getBackendUrl(),
|
|
25
|
-
DEFAULT_PORT,
|
|
26
|
-
SUBDOMAIN_PREFIX,
|
|
27
|
-
TUNNEL_TIMEOUT_HOURS,
|
|
28
|
-
UPDATE_CHECK_TIMEOUT,
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Platform-specific configuration
|
|
32
|
-
*/
|
|
33
|
-
export const PLATFORM = {
|
|
34
|
-
IS_WINDOWS: process.platform === 'win32',
|
|
35
|
-
BIN_NAME: process.platform === 'win32' ? 'cloudflared.exe' : 'cloudflared',
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* File system paths
|
|
39
|
-
*/
|
|
40
|
-
export const PATHS = {
|
|
41
|
-
BIN_DIR: path.join(__dirname, 'bin'),
|
|
42
|
-
BIN_PATH: path.join(__dirname, 'bin', PLATFORM.BIN_NAME),
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Log patterns for filtering cloudflared output
|
|
46
|
-
*/
|
|
47
|
-
export const LOG_PATTERNS = SHARED_LOG_PATTERNS;
|
|
48
|
-
/**
|
|
49
|
-
* Network warning configuration
|
|
50
|
-
*/
|
|
51
|
-
export const NETWORK_CONFIG = {
|
|
52
|
-
WARNING_THRESHOLD: NETWORK_WARNING.THRESHOLD,
|
|
53
|
-
WARNING_COOLDOWN: NETWORK_WARNING.COOLDOWN,
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Tunnel timeout in milliseconds
|
|
57
|
-
*/
|
|
58
|
-
export const TUNNEL_TIMEOUT_MS = CONFIG.TUNNEL_TIMEOUT_HOURS * 60 * 60 * 1000;
|
|
59
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,IAAI,mBAAmB,EACnC,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAO/C,MAAM,WAAW,GAAgB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACvC,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAc;IAC/B,YAAY,EAAE,WAAW,CAAC,IAAI;IAC9B,eAAe,EAAE,WAAW,CAAC,OAAO;IACpC,WAAW,EAAE,aAAa,EAAE;IAC5B,YAAY;IACZ,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAmB;IACtC,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;IACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa;CAC3E,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAgB;IAChC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;IACpC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACzD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS;IAC5C,gBAAgB,EAAE,eAAe,CAAC,QAAQ;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
|
package/dist/constants.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared constants used across the application
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Default backend API URL
|
|
6
|
-
*/
|
|
7
|
-
export declare const DEFAULT_BACKEND_URL = "https://api.nport.link";
|
|
8
|
-
/**
|
|
9
|
-
* Default port if not specified
|
|
10
|
-
*/
|
|
11
|
-
export declare const DEFAULT_PORT = 8080;
|
|
12
|
-
/**
|
|
13
|
-
* Prefix for random subdomains
|
|
14
|
-
*/
|
|
15
|
-
export declare const SUBDOMAIN_PREFIX = "user-";
|
|
16
|
-
/**
|
|
17
|
-
* Auto-cleanup timeout in hours
|
|
18
|
-
*/
|
|
19
|
-
export declare const TUNNEL_TIMEOUT_HOURS = 4;
|
|
20
|
-
/**
|
|
21
|
-
* Timeout for npm version check in milliseconds
|
|
22
|
-
*/
|
|
23
|
-
export declare const UPDATE_CHECK_TIMEOUT = 3000;
|
|
24
|
-
/**
|
|
25
|
-
* Analytics request timeout in milliseconds
|
|
26
|
-
*/
|
|
27
|
-
export declare const ANALYTICS_TIMEOUT = 2000;
|
|
28
|
-
/**
|
|
29
|
-
* Network warning configuration
|
|
30
|
-
*/
|
|
31
|
-
export declare const NETWORK_WARNING: {
|
|
32
|
-
/** Number of errors before showing warning */
|
|
33
|
-
readonly THRESHOLD: 5;
|
|
34
|
-
/** Minimum ms between warnings */
|
|
35
|
-
readonly COOLDOWN: 30000;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Log patterns for filtering cloudflared output
|
|
39
|
-
*/
|
|
40
|
-
export declare const LOG_PATTERNS: {
|
|
41
|
-
readonly SUCCESS: readonly ["Registered tunnel connection"];
|
|
42
|
-
readonly ERROR: readonly ["ERR", "error"];
|
|
43
|
-
readonly NETWORK_WARNING: readonly ["failed to accept QUIC stream", "failed to dial to edge with quic", "failed to accept incoming stream requests", "Failed to dial a quic connection", "timeout: no recent network activity", "failed to dial to edge", "quic:"];
|
|
44
|
-
readonly IGNORE: readonly ["Cannot determine default origin certificate path", "No file cert.pem", "origincert option", "TUNNEL_ORIGIN_CERT", "context canceled", "failed to run the datagram handler", "failed to serve tunnel connection", "Connection terminated", "no more connections active and exiting", "Serve tunnel error", "accept stream listener encountered a failure", "Retrying connection", "icmp router terminated", "use of closed network connection", "Application error 0x0"];
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Available language codes
|
|
48
|
-
*/
|
|
49
|
-
export declare const AVAILABLE_LANGUAGES: readonly ["en", "vi"];
|
|
50
|
-
/**
|
|
51
|
-
* GitHub repository URL
|
|
52
|
-
*/
|
|
53
|
-
export declare const GITHUB_URL = "https://github.com/tuanngocptn/nport";
|
|
54
|
-
/**
|
|
55
|
-
* Website URL
|
|
56
|
-
*/
|
|
57
|
-
export declare const WEBSITE_URL = "https://nport.link";
|
|
58
|
-
/**
|
|
59
|
-
* Buy Me a Coffee URL
|
|
60
|
-
*/
|
|
61
|
-
export declare const COFFEE_URL = "https://buymeacoffee.com/tuanngocptn";
|
package/dist/constants.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared constants used across the application
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Default backend API URL
|
|
6
|
-
*/
|
|
7
|
-
export const DEFAULT_BACKEND_URL = 'https://api.nport.link';
|
|
8
|
-
/**
|
|
9
|
-
* Default port if not specified
|
|
10
|
-
*/
|
|
11
|
-
export const DEFAULT_PORT = 8080;
|
|
12
|
-
/**
|
|
13
|
-
* Prefix for random subdomains
|
|
14
|
-
*/
|
|
15
|
-
export const SUBDOMAIN_PREFIX = 'user-';
|
|
16
|
-
/**
|
|
17
|
-
* Auto-cleanup timeout in hours
|
|
18
|
-
*/
|
|
19
|
-
export const TUNNEL_TIMEOUT_HOURS = 4;
|
|
20
|
-
/**
|
|
21
|
-
* Timeout for npm version check in milliseconds
|
|
22
|
-
*/
|
|
23
|
-
export const UPDATE_CHECK_TIMEOUT = 3000;
|
|
24
|
-
/**
|
|
25
|
-
* Analytics request timeout in milliseconds
|
|
26
|
-
*/
|
|
27
|
-
export const ANALYTICS_TIMEOUT = 2000;
|
|
28
|
-
/**
|
|
29
|
-
* Network warning configuration
|
|
30
|
-
*/
|
|
31
|
-
export const NETWORK_WARNING = {
|
|
32
|
-
/** Number of errors before showing warning */
|
|
33
|
-
THRESHOLD: 5,
|
|
34
|
-
/** Minimum ms between warnings */
|
|
35
|
-
COOLDOWN: 30000,
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Log patterns for filtering cloudflared output
|
|
39
|
-
*/
|
|
40
|
-
export const LOG_PATTERNS = {
|
|
41
|
-
SUCCESS: ['Registered tunnel connection'],
|
|
42
|
-
ERROR: ['ERR', 'error'],
|
|
43
|
-
NETWORK_WARNING: [
|
|
44
|
-
'failed to accept QUIC stream',
|
|
45
|
-
'failed to dial to edge with quic',
|
|
46
|
-
'failed to accept incoming stream requests',
|
|
47
|
-
'Failed to dial a quic connection',
|
|
48
|
-
'timeout: no recent network activity',
|
|
49
|
-
'failed to dial to edge',
|
|
50
|
-
'quic:',
|
|
51
|
-
],
|
|
52
|
-
IGNORE: [
|
|
53
|
-
'Cannot determine default origin certificate path',
|
|
54
|
-
'No file cert.pem',
|
|
55
|
-
'origincert option',
|
|
56
|
-
'TUNNEL_ORIGIN_CERT',
|
|
57
|
-
'context canceled',
|
|
58
|
-
'failed to run the datagram handler',
|
|
59
|
-
'failed to serve tunnel connection',
|
|
60
|
-
'Connection terminated',
|
|
61
|
-
'no more connections active and exiting',
|
|
62
|
-
'Serve tunnel error',
|
|
63
|
-
'accept stream listener encountered a failure',
|
|
64
|
-
'Retrying connection',
|
|
65
|
-
'icmp router terminated',
|
|
66
|
-
'use of closed network connection',
|
|
67
|
-
'Application error 0x0',
|
|
68
|
-
],
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Available language codes
|
|
72
|
-
*/
|
|
73
|
-
export const AVAILABLE_LANGUAGES = ['en', 'vi'];
|
|
74
|
-
/**
|
|
75
|
-
* GitHub repository URL
|
|
76
|
-
*/
|
|
77
|
-
export const GITHUB_URL = 'https://github.com/tuanngocptn/nport';
|
|
78
|
-
/**
|
|
79
|
-
* Website URL
|
|
80
|
-
*/
|
|
81
|
-
export const WEBSITE_URL = 'https://nport.link';
|
|
82
|
-
/**
|
|
83
|
-
* Buy Me a Coffee URL
|
|
84
|
-
*/
|
|
85
|
-
export const COFFEE_URL = 'https://buymeacoffee.com/tuanngocptn';
|
|
86
|
-
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,8CAA8C;IAC9C,SAAS,EAAE,CAAC;IACZ,kCAAkC;IAClC,QAAQ,EAAE,KAAK;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CAAC,8BAA8B,CAAC;IACzC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE;QACf,8BAA8B;QAC9B,kCAAkC;QAClC,2CAA2C;QAC3C,kCAAkC;QAClC,qCAAqC;QACrC,wBAAwB;QACxB,OAAO;KACR;IACD,MAAM,EAAE;QACN,kDAAkD;QAClD,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,oCAAoC;QACpC,mCAAmC;QACnC,uBAAuB;QACvB,wCAAwC;QACxC,oBAAoB;QACpB,8CAA8C;QAC9C,qBAAqB;QACrB,wBAAwB;QACxB,kCAAkC;QAClC,uBAAuB;KACxB;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,sCAAsC,CAAC"}
|
package/dist/index.d.ts
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lang.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { LanguageCode, TranslationKeys, TranslationVariables } from './types/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Language Manager
|
|
4
|
-
*/
|
|
5
|
-
declare class LanguageManager {
|
|
6
|
-
private currentLanguage;
|
|
7
|
-
private readonly availableLanguages;
|
|
8
|
-
/**
|
|
9
|
-
* Gets a translated string with variable substitution.
|
|
10
|
-
*/
|
|
11
|
-
t(key: keyof TranslationKeys, vars?: TranslationVariables): string;
|
|
12
|
-
/**
|
|
13
|
-
* Loads saved language preference.
|
|
14
|
-
*/
|
|
15
|
-
private loadLanguagePreference;
|
|
16
|
-
/**
|
|
17
|
-
* Saves language preference.
|
|
18
|
-
*/
|
|
19
|
-
private saveLanguagePreference;
|
|
20
|
-
/**
|
|
21
|
-
* Sets the current language.
|
|
22
|
-
*/
|
|
23
|
-
setLanguage(lang: string): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Gets the current language code.
|
|
26
|
-
*/
|
|
27
|
-
getLanguage(): LanguageCode;
|
|
28
|
-
/**
|
|
29
|
-
* Prompts user to select a language.
|
|
30
|
-
*/
|
|
31
|
-
promptLanguageSelection(): Promise<LanguageCode>;
|
|
32
|
-
/**
|
|
33
|
-
* Initializes the language system.
|
|
34
|
-
*/
|
|
35
|
-
initialize(cliLanguage?: string | null): Promise<LanguageCode>;
|
|
36
|
-
}
|
|
37
|
-
export declare const lang: LanguageManager;
|
|
38
|
-
export {};
|
package/dist/lang.js
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import readline from 'readline';
|
|
2
|
-
import { AVAILABLE_LANGUAGES } from './constants.js';
|
|
3
|
-
import { configManager } from './config-manager.js';
|
|
4
|
-
/**
|
|
5
|
-
* Translation strings for all supported languages
|
|
6
|
-
*/
|
|
7
|
-
const TRANSLATIONS = {
|
|
8
|
-
en: {
|
|
9
|
-
header: 'N P O R T ⚡️ Free & Open Source from Vietnam ❤️',
|
|
10
|
-
creatingTunnel: 'Creating tunnel for port {port}...',
|
|
11
|
-
checkingUpdates: 'Checking for updates...',
|
|
12
|
-
tunnelLive: '🚀 WE LIVE BABY!',
|
|
13
|
-
connection1: ' ✔ [1/2] Connection established...',
|
|
14
|
-
connection2: ' ✔ [2/2] Compression enabled...',
|
|
15
|
-
timeRemaining: '⏱️ Time: {hours}h remaining',
|
|
16
|
-
footerTitle: '🔥 KEEP THE VIBE ALIVE?',
|
|
17
|
-
footerSubtitle: '(Made with ❤️ in Vietnam)',
|
|
18
|
-
dropStar: '⭐️ Drop a Star: ',
|
|
19
|
-
sendCoffee: '☕️ Buy Coffee: ',
|
|
20
|
-
newVersion: '🚨 NEW VERSION (v{version}) detected!',
|
|
21
|
-
updateCommand: '> npm install -g nport@latest',
|
|
22
|
-
tunnelShutdown: '🛑 TUNNEL SHUTDOWN.',
|
|
23
|
-
cleaningUp: 'Cleaning up... ',
|
|
24
|
-
cleanupDone: 'Done.',
|
|
25
|
-
cleanupFailed: 'Failed.',
|
|
26
|
-
subdomainReleased: 'Subdomain... Released. 🗑️',
|
|
27
|
-
serverBusy: '(Server might be down or busy)',
|
|
28
|
-
goodbyeTitle: '👋 BEFORE YOU GO...',
|
|
29
|
-
goodbyeMessage: 'Thanks for using NPort!',
|
|
30
|
-
website: '🌐 Website: ',
|
|
31
|
-
author: '👤 Author: ',
|
|
32
|
-
changeLanguage: '🌍 Language: ',
|
|
33
|
-
changeLanguageHint: 'nport --language',
|
|
34
|
-
versionTitle: 'NPort v{version}',
|
|
35
|
-
versionSubtitle: 'Free & open source ngrok alternative',
|
|
36
|
-
versionLatest: '✔ You\'re running the latest version!',
|
|
37
|
-
versionAvailable: '🚨 New version available: v{version}',
|
|
38
|
-
versionUpdate: 'Update now: ',
|
|
39
|
-
learnMore: 'Learn more: ',
|
|
40
|
-
languagePrompt: '\n🌍 Language Selection / Chọn ngôn ngữ\n',
|
|
41
|
-
languageQuestion: 'Choose your language (1-2): ',
|
|
42
|
-
languageEnglish: '1. English',
|
|
43
|
-
languageVietnamese: '2. Tiếng Việt (Vietnamese)',
|
|
44
|
-
languageInvalid: 'Invalid choice. Using English by default.',
|
|
45
|
-
languageSaved: '✔ Language preference saved!',
|
|
46
|
-
networkIssueTitle: '\n⚠️ NETWORK CONNECTIVITY ISSUE DETECTED',
|
|
47
|
-
networkIssueDesc: ' Cloudflared is having trouble maintaining a stable connection to Cloudflare\'s edge servers.',
|
|
48
|
-
networkIssueTunnel: ' 📡 Your tunnel is still working, but connection quality may be affected.',
|
|
49
|
-
networkIssueReasons: '\n 💡 Possible reasons:',
|
|
50
|
-
networkIssueReason1: ' • Unstable internet connection or high packet loss',
|
|
51
|
-
networkIssueReason2: ' • Firewall/Router blocking UDP traffic (QUIC protocol)',
|
|
52
|
-
networkIssueReason3: ' • ISP throttling or network congestion',
|
|
53
|
-
networkIssueFix: '\n 🔧 What to try:',
|
|
54
|
-
networkIssueFix1: ' • Check your internet connection stability',
|
|
55
|
-
networkIssueFix2: ' • Try connecting from a different network',
|
|
56
|
-
networkIssueFix3: ' • Disable VPN/Proxy if you\'re using one',
|
|
57
|
-
networkIssueFix4: ' • The tunnel will automatically fallback to HTTP/2 if QUIC fails',
|
|
58
|
-
networkIssueIgnore: '\n ℹ️ This is usually not critical - your tunnel should continue working normally.\n',
|
|
59
|
-
},
|
|
60
|
-
vi: {
|
|
61
|
-
header: 'N P O R T ⚡️ Việt Nam Mãi Đỉnh ❤️',
|
|
62
|
-
creatingTunnel: '🛠️ Đang khởi động cổng {port}... Chuẩn bị bay nào!',
|
|
63
|
-
checkingUpdates: '🔍 Đang dò la bản cập nhật mới... Đợi tí sắp có quà!',
|
|
64
|
-
tunnelLive: '🚀 BẬT MODE TỐC HÀNH! ĐANG BAY RỒI NÈ!',
|
|
65
|
-
connection1: ' ✔ [1/2] Đang cắm dây mạng vũ trụ...',
|
|
66
|
-
connection2: ' ✔ [2/2] Đang bơm siêu nén khí tốc độ ánh sáng...',
|
|
67
|
-
timeRemaining: '⏱️ Tăng tốc thần sầu: Còn {hours}h để quẩy!',
|
|
68
|
-
footerTitle: '🔥 LƯU DANH SỬ SÁCH! ĐỪNG QUÊN STAR ⭐️',
|
|
69
|
-
footerSubtitle: '(Made in Việt Nam, chuẩn không cần chỉnh! ❤️)',
|
|
70
|
-
dropStar: '⭐️ Thả Star: ',
|
|
71
|
-
sendCoffee: '☕️ Tặng Coffee: ',
|
|
72
|
-
newVersion: '🚀 BẢN MỚI (v{version}) vừa hạ cánh!',
|
|
73
|
-
updateCommand: '💡 Gõ liền: npm install -g nport@latest',
|
|
74
|
-
tunnelShutdown: '🛑 Đã tới giờ \'chốt\' deal rồi cả nhà ơi...',
|
|
75
|
-
cleaningUp: 'Đang dọn dẹp chiến trường... 🧹',
|
|
76
|
-
cleanupDone: 'Xịn xò! Đã dọn xong rồi nè.',
|
|
77
|
-
cleanupFailed: 'Oằn trời, dọn không nổi!',
|
|
78
|
-
subdomainReleased: 'Subdomain... Xí xoá! Tạm biệt nhé 🗑️✨',
|
|
79
|
-
serverBusy: '(Có thể server đang bận order trà sữa)',
|
|
80
|
-
goodbyeTitle: '👋 GẶP LẠI BẠN Ở ĐƯỜNG BĂNG KHÁC...',
|
|
81
|
-
goodbyeMessage: 'Cảm ơn đã quẩy NPort! Lần sau chơi tiếp nha 😘',
|
|
82
|
-
website: '🌐 Sân chơi chính: ',
|
|
83
|
-
author: '👤 Nhà tài trợ: ',
|
|
84
|
-
changeLanguage: '🌍 Đổi ngôn ngữ: ',
|
|
85
|
-
changeLanguageHint: 'nport --language',
|
|
86
|
-
versionTitle: 'NPort v{version}',
|
|
87
|
-
versionSubtitle: 'Hơn cả Ngrok - Ma-de in Việt Nam',
|
|
88
|
-
versionLatest: '🎉 Chúc mừng! Đang cùng server với bản mới nhất!',
|
|
89
|
-
versionAvailable: '🌟 Vèo vèo: Có bản mới v{version} vừa cập bến!',
|
|
90
|
-
versionUpdate: 'Update khẩn trương lẹ làng: ',
|
|
91
|
-
learnMore: 'Khám phá thêm cho nóng: ',
|
|
92
|
-
languagePrompt: '\n🌍 Chọn lựa ngôn ngữ ngay bên dưới nào!\n',
|
|
93
|
-
languageQuestion: 'Chớp lấy một lựa chọn nha (1-2): ',
|
|
94
|
-
languageEnglish: '1. English (Chuẩn quốc tế!)',
|
|
95
|
-
languageVietnamese: '2. Tiếng Việt (Đỉnh của chóp)',
|
|
96
|
-
languageInvalid: 'Ơ hơ, chọn sai rồi! Mặc định Tiếng Việt luôn cho nóng.',
|
|
97
|
-
languageSaved: '🎯 Xong rồi! Lưu ngôn ngữ thành công!',
|
|
98
|
-
networkIssueTitle: '\n⚠️ PHÁT HIỆN VẤN ĐỀ MẠNG',
|
|
99
|
-
networkIssueDesc: ' Cloudflared đang gặp khó khăn khi giữ kết nối ổn định tới Cloudflare edge servers.',
|
|
100
|
-
networkIssueTunnel: ' 📡 Tunnel của bạn vẫn hoạt động, nhưng chất lượng kết nối có thể bị ảnh hưởng.',
|
|
101
|
-
networkIssueReasons: '\n 💡 Có thể do:',
|
|
102
|
-
networkIssueReason1: ' • Mạng internet không ổn định hoặc mất gói tin',
|
|
103
|
-
networkIssueReason2: ' • Firewall/Router chặn UDP traffic (giao thức QUIC)',
|
|
104
|
-
networkIssueReason3: ' • Nhà mạng throttle hoặc tắc nghẽn mạng',
|
|
105
|
-
networkIssueFix: '\n 🔧 Thử các cách sau:',
|
|
106
|
-
networkIssueFix1: ' • Kiểm tra kết nối internet của bạn',
|
|
107
|
-
networkIssueFix2: ' • Thử đổi sang mạng khác (ví dụ: 4G/5G)',
|
|
108
|
-
networkIssueFix3: ' • Tắt VPN/Proxy nếu đang bật',
|
|
109
|
-
networkIssueFix4: ' • Tunnel sẽ tự động chuyển sang HTTP/2 nếu QUIC fail',
|
|
110
|
-
networkIssueIgnore: '\n ℹ️ Lỗi này thường không nghiêm trọng - tunnel vẫn hoạt động bình thường.\n',
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* Language Manager
|
|
115
|
-
*/
|
|
116
|
-
class LanguageManager {
|
|
117
|
-
currentLanguage = 'en';
|
|
118
|
-
availableLanguages = AVAILABLE_LANGUAGES;
|
|
119
|
-
/**
|
|
120
|
-
* Gets a translated string with variable substitution.
|
|
121
|
-
*/
|
|
122
|
-
t(key, vars = {}) {
|
|
123
|
-
const translations = TRANSLATIONS[this.currentLanguage] || TRANSLATIONS.en;
|
|
124
|
-
let text = translations[key] || TRANSLATIONS.en[key] || key;
|
|
125
|
-
Object.keys(vars).forEach(varKey => {
|
|
126
|
-
const value = vars[varKey];
|
|
127
|
-
if (value !== undefined) {
|
|
128
|
-
text = text.replace(`{${varKey}}`, String(value));
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
return text;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Loads saved language preference.
|
|
135
|
-
*/
|
|
136
|
-
loadLanguagePreference() {
|
|
137
|
-
const lang = configManager.getLanguage();
|
|
138
|
-
if (lang && this.availableLanguages.includes(lang)) {
|
|
139
|
-
return lang;
|
|
140
|
-
}
|
|
141
|
-
return null;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Saves language preference.
|
|
145
|
-
*/
|
|
146
|
-
saveLanguagePreference(lang) {
|
|
147
|
-
configManager.setLanguage(lang);
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Sets the current language.
|
|
151
|
-
*/
|
|
152
|
-
setLanguage(lang) {
|
|
153
|
-
if (this.availableLanguages.includes(lang)) {
|
|
154
|
-
this.currentLanguage = lang;
|
|
155
|
-
return true;
|
|
156
|
-
}
|
|
157
|
-
return false;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Gets the current language code.
|
|
161
|
-
*/
|
|
162
|
-
getLanguage() {
|
|
163
|
-
return this.currentLanguage;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Prompts user to select a language.
|
|
167
|
-
*/
|
|
168
|
-
async promptLanguageSelection() {
|
|
169
|
-
return new Promise((resolve) => {
|
|
170
|
-
const rl = readline.createInterface({
|
|
171
|
-
input: process.stdin,
|
|
172
|
-
output: process.stdout
|
|
173
|
-
});
|
|
174
|
-
console.log(this.t('languagePrompt'));
|
|
175
|
-
console.log(` ${this.t('languageEnglish')}`);
|
|
176
|
-
console.log(` ${this.t('languageVietnamese')}\n`);
|
|
177
|
-
rl.question(`${this.t('languageQuestion')}`, (answer) => {
|
|
178
|
-
rl.close();
|
|
179
|
-
const choice = answer.trim();
|
|
180
|
-
let selectedLang = 'en';
|
|
181
|
-
if (choice === '1') {
|
|
182
|
-
selectedLang = 'en';
|
|
183
|
-
}
|
|
184
|
-
else if (choice === '2') {
|
|
185
|
-
selectedLang = 'vi';
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
console.log(`\n${this.t('languageInvalid')}\n`);
|
|
189
|
-
}
|
|
190
|
-
this.setLanguage(selectedLang);
|
|
191
|
-
this.saveLanguagePreference(selectedLang);
|
|
192
|
-
console.log(`${this.t('languageSaved')}\n`);
|
|
193
|
-
resolve(selectedLang);
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Initializes the language system.
|
|
199
|
-
*/
|
|
200
|
-
async initialize(cliLanguage = null) {
|
|
201
|
-
if (cliLanguage && cliLanguage !== 'prompt' && this.setLanguage(cliLanguage)) {
|
|
202
|
-
this.saveLanguagePreference(cliLanguage);
|
|
203
|
-
return cliLanguage;
|
|
204
|
-
}
|
|
205
|
-
if (cliLanguage === 'prompt') {
|
|
206
|
-
return await this.promptLanguageSelection();
|
|
207
|
-
}
|
|
208
|
-
const savedLang = this.loadLanguagePreference();
|
|
209
|
-
if (savedLang) {
|
|
210
|
-
this.setLanguage(savedLang);
|
|
211
|
-
return savedLang;
|
|
212
|
-
}
|
|
213
|
-
return await this.promptLanguageSelection();
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
export const lang = new LanguageManager();
|
|
217
|
-
//# sourceMappingURL=lang.js.map
|
package/dist/lang.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../src/lang.ts"],"names":[],"mappings":"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"}
|