@stacksjs/rpx 0.4.0 → 0.5.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 +34 -34
- package/dist/cli.js +355 -228
- package/dist/config.d.ts +3 -2
- package/dist/https.d.ts +13 -8
- package/dist/index.d.ts +7 -1
- package/dist/index.js +499 -356
- package/dist/start.d.ts +3 -5
- package/dist/types.d.ts +26 -19
- package/dist/utils.d.ts +7 -2
- package/package.json +4 -4
package/dist/start.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import type { CleanupOptions, ProxySetupOptions,
|
|
1
|
+
import type { CleanupOptions, ProxySetupOptions, ReverseProxyOption, ReverseProxyOptions, SSLConfig, SingleReverseProxyConfig } from './types';
|
|
2
2
|
|
|
3
3
|
declare const activeServers: Set<http.Server | https.Server>;
|
|
4
4
|
export declare function cleanup(options?: CleanupOptions): Promise<void>;
|
|
5
|
-
declare function loadSSLConfig(options: ReverseProxyOption): Promise<SSLConfig | null>;
|
|
6
5
|
declare function isPortInUse(port: number, hostname: string, verbose?: boolean): Promise<boolean>;
|
|
7
6
|
declare function findAvailablePort(startPort: number, hostname: string, verbose?: boolean): Promise<number>;
|
|
8
7
|
declare function testConnection(hostname: string, port: number, verbose?: boolean): Promise<void>;
|
|
9
8
|
export declare function startServer(options: SingleReverseProxyConfig): Promise<void>;
|
|
10
|
-
declare function createProxyServer(from: string, to: string, fromPort: number, listenPort: number, hostname: string, sourceUrl: Pick<URL, 'hostname' | 'host'>, ssl: SSLConfig | null, verbose?: boolean
|
|
9
|
+
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
10
|
export declare function setupReverseProxy(options: ProxySetupOptions): Promise<void>;
|
|
12
11
|
export declare function startHttpRedirectServer(verbose?: boolean): void;
|
|
13
12
|
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;
|
|
13
|
+
export declare function startProxies(options?: ReverseProxyOptions): Promise<void>;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,50 +1,57 @@
|
|
|
1
|
-
import type { TlsConfig } from '@stacksjs/tlsx';
|
|
1
|
+
import type { TlsConfig, TlsOption } from '@stacksjs/tlsx';
|
|
2
2
|
|
|
3
|
-
export type { TlsConfig }
|
|
4
|
-
export declare type CustomTlsConfig = Partial<Omit<TlsConfig, 'caCertPath' | 'certPath' | 'keyPath'>> &
|
|
5
|
-
Pick<TlsConfig, 'caCertPath' | 'certPath' | 'keyPath'>
|
|
3
|
+
export type { TlsConfig, TlsOption }
|
|
6
4
|
export declare interface BaseReverseProxyConfig {
|
|
7
5
|
from: string
|
|
8
6
|
to: string
|
|
9
7
|
}
|
|
10
|
-
export declare
|
|
8
|
+
export declare type BaseReverseProxyOptions = Partial<BaseReverseProxyConfig>
|
|
9
|
+
|
|
10
|
+
export interface CleanupOptions {
|
|
11
11
|
domains?: string[]
|
|
12
12
|
etcHostsCleanup?: boolean
|
|
13
13
|
verbose?: boolean
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
|
|
16
|
+
export interface SharedProxyConfig {
|
|
17
|
+
https: boolean | TlsOption
|
|
17
18
|
etcHostsCleanup: boolean
|
|
18
19
|
verbose: boolean
|
|
19
20
|
_cachedSSLConfig?: SSLConfig | null
|
|
20
21
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
22
|
+
export type SharedProxyOptions = Partial<SharedProxyConfig>
|
|
23
|
+
|
|
24
|
+
export interface SingleReverseProxyConfig extends BaseReverseProxyConfig, SharedProxyConfig {}
|
|
25
|
+
export interface MultiReverseProxyConfig extends SharedProxyConfig {
|
|
23
26
|
proxies: BaseReverseProxyConfig[]
|
|
24
27
|
}
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export type ReverseProxyOptions = SingleReverseProxyConfig |
|
|
31
|
-
|
|
28
|
+
export type ReverseProxyConfig = SingleReverseProxyConfig
|
|
29
|
+
export type ReverseProxyConfigs = SingleReverseProxyConfig | MultiReverseProxyConfig
|
|
30
|
+
|
|
31
|
+
export type BaseReverseProxyOption = Partial<BaseReverseProxyConfig>
|
|
32
|
+
export type ReverseProxyOption = Partial<SingleReverseProxyConfig>
|
|
33
|
+
export type ReverseProxyOptions = Partial<SingleReverseProxyConfig> | Partial<MultiReverseProxyConfig>
|
|
34
|
+
|
|
35
|
+
export interface SSLConfig {
|
|
32
36
|
key: string
|
|
33
37
|
cert: string
|
|
34
38
|
ca?: string | string[]
|
|
35
39
|
}
|
|
36
|
-
|
|
40
|
+
|
|
41
|
+
export interface ProxySetupOptions extends Omit<ReverseProxyOption, 'from'> {
|
|
37
42
|
fromPort: number
|
|
38
43
|
sourceUrl: Pick<URL, 'hostname' | 'host'>
|
|
39
44
|
ssl: SSLConfig | null
|
|
40
45
|
from: string
|
|
41
46
|
to: string
|
|
42
47
|
}
|
|
43
|
-
|
|
48
|
+
|
|
49
|
+
export interface PortManager {
|
|
44
50
|
usedPorts: Set<number>
|
|
45
51
|
getNextAvailablePort: (startPort: number) => Promise<number>
|
|
46
52
|
}
|
|
47
|
-
|
|
53
|
+
|
|
54
|
+
export interface ProxySetupOptions extends Omit<ReverseProxyOption, 'from'> {
|
|
48
55
|
fromPort: number
|
|
49
56
|
sourceUrl: Pick<URL, 'hostname' | 'host'>
|
|
50
57
|
ssl: SSLConfig | null
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReverseProxyOption } from './types';
|
|
2
2
|
|
|
3
3
|
export declare function debugLog(category: string, message: string, verbose?: boolean): void;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function extractHostname(options: ReverseProxyOption | ReverseProxyOptions): string[];
|
|
5
|
+
declare interface RootCA {
|
|
6
|
+
certificate: string
|
|
7
|
+
privateKey: string
|
|
8
|
+
}
|
|
9
|
+
export declare function isValidRootCA(value: unknown): value is RootCA;
|
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.5.0",
|
|
5
5
|
"description": "A modern reverse proxy.",
|
|
6
6
|
"author": "Chris Breuer <chris@stacksjs.org>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -61,15 +61,15 @@
|
|
|
61
61
|
"preview:docs": "vitepress preview docs"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@stacksjs/tlsx": "^0.
|
|
64
|
+
"@stacksjs/tlsx": "^0.8.3"
|
|
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
|
-
"@types/bun": "^1.1.
|
|
70
|
+
"@types/bun": "^1.1.14",
|
|
71
71
|
"bun-config": "^0.3.2",
|
|
72
|
-
"bun-plugin-dtsx": "^0.21.
|
|
72
|
+
"bun-plugin-dtsx": "^0.21.9",
|
|
73
73
|
"typescript": "^5.7.2",
|
|
74
74
|
"vitepress": "^1.5.0"
|
|
75
75
|
},
|