@absolutejs/absolute 0.19.0-beta.1023 → 0.19.0-beta.1025
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/angular/browser.js +13 -17
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +595 -267
- package/dist/angular/index.js.map +11 -8
- package/dist/angular/server.js +577 -249
- package/dist/angular/server.js.map +11 -8
- package/dist/build.js +827 -735
- package/dist/build.js.map +11 -10
- package/dist/cli/config/server.js +49 -42
- package/dist/cli/index.js +366 -9
- package/dist/client/index.js +34 -20
- package/dist/client/index.js.map +6 -6
- package/dist/index.js +899 -800
- package/dist/index.js.map +12 -11
- package/dist/islands/index.js +416 -95
- package/dist/islands/index.js.map +10 -7
- package/dist/react/browser.js +13 -17
- package/dist/react/browser.js.map +3 -3
- package/dist/react/index.js +484 -156
- package/dist/react/index.js.map +12 -9
- package/dist/react/server.js +69 -62
- package/dist/react/server.js.map +5 -5
- package/dist/src/cli/scripts/tunnelRelay.d.ts +9 -0
- package/dist/src/client/preserveIslandMarkup.d.ts +4 -1
- package/dist/src/core/angularServerModule.d.ts +1 -0
- package/dist/src/dev/tunnel/client.d.ts +20 -0
- package/dist/src/dev/tunnel/protocol.d.ts +85 -0
- package/dist/src/dev/tunnel/relay.d.ts +28 -0
- package/dist/src/utils/loadConfig.d.ts +4 -0
- package/dist/svelte/index.js +389 -61
- package/dist/svelte/index.js.map +11 -8
- package/dist/svelte/server.js +50 -43
- package/dist/svelte/server.js.map +3 -3
- package/dist/types/angular.d.ts +3 -0
- package/dist/types/build.d.ts +11 -0
- package/dist/types/globals.d.ts +0 -1
- package/dist/vue/browser.js +13 -17
- package/dist/vue/browser.js.map +3 -3
- package/dist/vue/index.js +477 -153
- package/dist/vue/index.js.map +12 -9
- package/dist/vue/server.js +50 -43
- package/dist/vue/server.js.map +3 -3
- package/package.json +2 -6
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reverse-tunnel wire protocol (pure Bun, no third-party deps).
|
|
3
|
+
*
|
|
4
|
+
* A dev machine behind NAT cannot accept inbound connections, so the dev
|
|
5
|
+
* `client` dials OUT to a public `relay` over a single control WebSocket. The
|
|
6
|
+
* relay receives public HTTP requests and forwards each one down that socket;
|
|
7
|
+
* the client replays it against the local app and sends the response back.
|
|
8
|
+
*
|
|
9
|
+
* Stage 1 covers HTTP request/response (webhooks). WebSocket passthrough for
|
|
10
|
+
* telephony media streams is layered on later with additional message types.
|
|
11
|
+
*/
|
|
12
|
+
/** Control-channel path the client connects to on the relay. */
|
|
13
|
+
export declare const TUNNEL_CONTROL_PATH = "/__abs_tunnel/control";
|
|
14
|
+
/** Header the relay strips/sets; lets the app know its public origin. */
|
|
15
|
+
export declare const TUNNEL_FORWARDED_HOST_HEADER = "x-absolute-tunnel-host";
|
|
16
|
+
/** A forwarded HTTP request (relay → client). Body is base64 (binary-safe). */
|
|
17
|
+
export type TunnelRequestMessage = {
|
|
18
|
+
type: 'request';
|
|
19
|
+
id: string;
|
|
20
|
+
method: string;
|
|
21
|
+
/** Path + query, e.g. `/v1/sms/intake?x=1`. */
|
|
22
|
+
url: string;
|
|
23
|
+
headers: Record<string, string>;
|
|
24
|
+
bodyBase64?: string;
|
|
25
|
+
};
|
|
26
|
+
/** The client's response to a forwarded request (client → relay). */
|
|
27
|
+
export type TunnelResponseMessage = {
|
|
28
|
+
type: 'response';
|
|
29
|
+
id: string;
|
|
30
|
+
status: number;
|
|
31
|
+
headers: Record<string, string>;
|
|
32
|
+
bodyBase64?: string;
|
|
33
|
+
};
|
|
34
|
+
/** Client could not produce a response (local app down, fetch threw). */
|
|
35
|
+
export type TunnelErrorMessage = {
|
|
36
|
+
type: 'error';
|
|
37
|
+
id: string;
|
|
38
|
+
message: string;
|
|
39
|
+
};
|
|
40
|
+
/** Sent by the relay right after a successful auth handshake. */
|
|
41
|
+
export type TunnelReadyMessage = {
|
|
42
|
+
type: 'ready';
|
|
43
|
+
/** Public base URL the relay is reachable at, e.g. `https://x.app`. */
|
|
44
|
+
publicUrl: string;
|
|
45
|
+
};
|
|
46
|
+
/** A public WS connection opened; client should dial the local app (relay → client). */
|
|
47
|
+
export type TunnelWsOpenMessage = {
|
|
48
|
+
type: 'ws_open';
|
|
49
|
+
id: string;
|
|
50
|
+
/** Path + query of the upgraded request. */
|
|
51
|
+
url: string;
|
|
52
|
+
headers: Record<string, string>;
|
|
53
|
+
};
|
|
54
|
+
/** Result of the client opening the local WS (client → relay). */
|
|
55
|
+
export type TunnelWsOpenAckMessage = {
|
|
56
|
+
type: 'ws_open_ack';
|
|
57
|
+
id: string;
|
|
58
|
+
ok: boolean;
|
|
59
|
+
error?: string;
|
|
60
|
+
};
|
|
61
|
+
/** One WS frame, either direction. Binary frames are base64. */
|
|
62
|
+
export type TunnelWsDataMessage = {
|
|
63
|
+
type: 'ws_data';
|
|
64
|
+
id: string;
|
|
65
|
+
dataBase64: string;
|
|
66
|
+
binary: boolean;
|
|
67
|
+
};
|
|
68
|
+
/** A WS closed, either direction. */
|
|
69
|
+
export type TunnelWsCloseMessage = {
|
|
70
|
+
type: 'ws_close';
|
|
71
|
+
id: string;
|
|
72
|
+
code?: number;
|
|
73
|
+
reason?: string;
|
|
74
|
+
};
|
|
75
|
+
/** App-level keepalive (either direction). */
|
|
76
|
+
export type TunnelPingMessage = {
|
|
77
|
+
type: 'ping';
|
|
78
|
+
};
|
|
79
|
+
export type TunnelPongMessage = {
|
|
80
|
+
type: 'pong';
|
|
81
|
+
};
|
|
82
|
+
export type TunnelClientMessage = TunnelResponseMessage | TunnelErrorMessage | TunnelWsOpenAckMessage | TunnelWsDataMessage | TunnelWsCloseMessage | TunnelPongMessage | TunnelPingMessage;
|
|
83
|
+
export type TunnelServerMessage = TunnelRequestMessage | TunnelReadyMessage | TunnelWsOpenMessage | TunnelWsDataMessage | TunnelWsCloseMessage | TunnelPingMessage | TunnelPongMessage;
|
|
84
|
+
export declare const decodeTunnelMessage: (raw: string) => TunnelRequestMessage | TunnelResponseMessage | TunnelErrorMessage | TunnelReadyMessage | TunnelWsOpenMessage | TunnelWsOpenAckMessage | TunnelWsDataMessage | TunnelWsCloseMessage | TunnelPingMessage | TunnelPongMessage | null;
|
|
85
|
+
export declare const encodeTunnelMessage: (message: TunnelClientMessage | TunnelServerMessage) => string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type RelayOptions = {
|
|
2
|
+
/** Port the relay listens on (App Platform injects PORT). */
|
|
3
|
+
port?: number;
|
|
4
|
+
/** Shared secret the dev client must present (?token=). */
|
|
5
|
+
token: string;
|
|
6
|
+
/** Public base URL the relay is reachable at. Falls back to the request
|
|
7
|
+
* origin when omitted (App Platform: set APP_URL or pass explicitly). */
|
|
8
|
+
publicUrl?: string;
|
|
9
|
+
/** How long to wait for the dev client to answer a forwarded request. */
|
|
10
|
+
requestTimeoutMs?: number;
|
|
11
|
+
};
|
|
12
|
+
type ControlSocketData = {
|
|
13
|
+
control: true;
|
|
14
|
+
};
|
|
15
|
+
type PublicSocketData = {
|
|
16
|
+
control: false;
|
|
17
|
+
id: string;
|
|
18
|
+
url: string;
|
|
19
|
+
headers: Record<string, string>;
|
|
20
|
+
};
|
|
21
|
+
type SocketData = ControlSocketData | PublicSocketData;
|
|
22
|
+
/**
|
|
23
|
+
* Start the public reverse-tunnel relay. Holds one dev-client control socket
|
|
24
|
+
* and forwards every other inbound HTTP request — and public WebSocket — down
|
|
25
|
+
* it. Single-tenant: the shared `token` gates the control channel.
|
|
26
|
+
*/
|
|
27
|
+
export declare const startTunnelRelay: (options: RelayOptions) => Bun.Server<SocketData>;
|
|
28
|
+
export {};
|