@stacksjs/rpx 0.3.1 → 0.4.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/README.md +39 -5
- package/dist/cli.js +1008 -641
- package/dist/config.d.ts +2 -2
- package/dist/hosts.d.ts +3 -3
- package/dist/https.d.ts +9 -3
- package/dist/index.js +1234 -862
- package/dist/start.d.ts +6 -5
- package/dist/types.d.ts +34 -4
- package/dist/utils.d.ts +4 -4
- package/package.json +4 -4
package/dist/start.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import type { ProxySetupOptions, ReverseProxyOption, ReverseProxyOptions, SSLConfig } from './types';
|
|
1
|
+
import type { CleanupOptions, ProxySetupOptions, ReverseProxyConfigs, ReverseProxyOption, ReverseProxyOptions, SSLConfig, SingleReverseProxyConfig } from './types';
|
|
2
2
|
|
|
3
3
|
declare const activeServers: Set<http.Server | https.Server>;
|
|
4
|
-
export declare function cleanup(): Promise<void>;
|
|
4
|
+
export declare function cleanup(options?: CleanupOptions): Promise<void>;
|
|
5
5
|
declare function loadSSLConfig(options: ReverseProxyOption): Promise<SSLConfig | null>;
|
|
6
6
|
declare function isPortInUse(port: number, hostname: string, verbose?: boolean): Promise<boolean>;
|
|
7
7
|
declare function findAvailablePort(startPort: number, hostname: string, verbose?: boolean): Promise<number>;
|
|
8
8
|
declare function testConnection(hostname: string, port: number, verbose?: boolean): Promise<void>;
|
|
9
|
-
export declare function startServer(options
|
|
9
|
+
export declare function startServer(options: SingleReverseProxyConfig): Promise<void>;
|
|
10
10
|
declare function createProxyServer(from: string, to: string, fromPort: number, listenPort: number, hostname: string, sourceUrl: Pick<URL, 'hostname' | 'host'>, ssl: SSLConfig | null, verbose?: boolean,): Promise<void>;
|
|
11
11
|
export declare function setupReverseProxy(options: ProxySetupOptions): Promise<void>;
|
|
12
12
|
export declare function startHttpRedirectServer(verbose?: boolean): void;
|
|
13
|
-
export declare function startProxy(options
|
|
14
|
-
export declare function startProxies(options?: ReverseProxyOptions): void
|
|
13
|
+
export declare function startProxy(options: ReverseProxyOption): void;
|
|
14
|
+
export declare function startProxies(options?: ReverseProxyOptions): Promise<void>;
|
|
15
|
+
declare function isMultiProxyConfig(options: ReverseProxyConfigs): options is MultiReverseProxyConfig;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
import type { TlsConfig } from '@stacksjs/tlsx';
|
|
2
2
|
|
|
3
3
|
export type { TlsConfig };
|
|
4
|
-
export declare
|
|
4
|
+
export declare type CustomTlsConfig = Partial<Omit<TlsConfig, 'caCertPath' | 'certPath' | 'keyPath'>> &
|
|
5
|
+
Pick<TlsConfig, 'caCertPath' | 'certPath' | 'keyPath'>
|
|
6
|
+
export declare interface BaseReverseProxyConfig {
|
|
5
7
|
from: string
|
|
6
8
|
to: string
|
|
7
|
-
|
|
9
|
+
}
|
|
10
|
+
export declare interface CleanupOptions {
|
|
11
|
+
domains?: string[]
|
|
12
|
+
etcHostsCleanup?: boolean
|
|
13
|
+
verbose?: boolean
|
|
14
|
+
}
|
|
15
|
+
export declare interface SharedProxySettings {
|
|
16
|
+
https: boolean | CustomTlsConfig
|
|
8
17
|
etcHostsCleanup: boolean
|
|
9
18
|
verbose: boolean
|
|
19
|
+
_cachedSSLConfig?: SSLConfig | null
|
|
20
|
+
}
|
|
21
|
+
export declare interface SingleReverseProxyConfig extends BaseReverseProxyConfig, SharedProxySettings {}
|
|
22
|
+
export declare interface MultiReverseProxyConfig extends SharedProxySettings {
|
|
23
|
+
proxies: BaseReverseProxyConfig[]
|
|
10
24
|
}
|
|
11
|
-
export declare type
|
|
12
|
-
export type
|
|
25
|
+
export declare type ReverseProxyConfigs = SingleReverseProxyConfig | MultiReverseProxyConfig
|
|
26
|
+
export declare type BaseReverseProxyOption = Partial<BaseReverseProxyConfig>
|
|
27
|
+
export type PartialSharedSettings = Partial<SharedProxySettings>
|
|
28
|
+
export declare type MultiReverseProxyOption = MultiReverseProxyConfig
|
|
29
|
+
export declare type ReverseProxyOption = SingleReverseProxyConfig
|
|
30
|
+
export type ReverseProxyOptions = SingleReverseProxyConfig | MultiReverseProxyOption
|
|
13
31
|
export declare interface SSLConfig {
|
|
14
32
|
key: string
|
|
15
33
|
cert: string
|
|
@@ -21,4 +39,16 @@ export declare interface ProxySetupOptions extends Omit<ReverseProxyOption, 'fro
|
|
|
21
39
|
ssl: SSLConfig | null
|
|
22
40
|
from: string
|
|
23
41
|
to: string
|
|
42
|
+
}
|
|
43
|
+
export declare interface PortManager {
|
|
44
|
+
usedPorts: Set<number>
|
|
45
|
+
getNextAvailablePort: (startPort: number) => Promise<number>
|
|
46
|
+
}
|
|
47
|
+
export declare interface ProxySetupOptions extends Omit<ReverseProxyOption, 'from'> {
|
|
48
|
+
fromPort: number
|
|
49
|
+
sourceUrl: Pick<URL, 'hostname' | 'host'>
|
|
50
|
+
ssl: SSLConfig | null
|
|
51
|
+
from: string
|
|
52
|
+
to: string
|
|
53
|
+
portManager?: PortManager
|
|
24
54
|
}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
1
|
+
import type { ReverseProxyConfigs } from './types';
|
|
2
|
+
|
|
3
|
+
export declare function debugLog(category: string, message: string, verbose?: boolean): void;
|
|
4
|
+
export declare function extractDomains(options: ReverseProxyConfigs): string[];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/rpx",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.0",
|
|
5
5
|
"description": "A modern reverse proxy.",
|
|
6
6
|
"author": "Chris Breuer <chris@stacksjs.org>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -61,16 +61,16 @@
|
|
|
61
61
|
"preview:docs": "vitepress preview docs"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@stacksjs/tlsx": "^0.6
|
|
64
|
+
"@stacksjs/tlsx": "^0.7.6"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@stacksjs/cli": "^0.68.2",
|
|
68
68
|
"@stacksjs/eslint-config": "^3.8.1-beta.2",
|
|
69
69
|
"@stacksjs/storage": "^0.68.2",
|
|
70
70
|
"@types/bun": "^1.1.13",
|
|
71
|
-
"bun-config": "^0.2
|
|
71
|
+
"bun-config": "^0.3.2",
|
|
72
72
|
"bun-plugin-dtsx": "^0.21.8",
|
|
73
|
-
"typescript": "^5.
|
|
73
|
+
"typescript": "^5.7.2",
|
|
74
74
|
"vitepress": "^1.5.0"
|
|
75
75
|
},
|
|
76
76
|
"simple-git-hooks": {
|