@flighthq/socket 0.5.1-next.1370.903f328 → 0.5.1-next.1404.457d1da
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 +2 -2
- package/dist/socket.d.ts +3 -3
- package/dist/socket.d.ts.map +1 -1
- package/dist/socket.js.map +1 -1
- package/package.json +5 -5
- package/src/enableSocketGuards.test.ts +4 -4
- package/src/explainSocketSendFailure.test.ts +5 -5
- package/src/socket.test.ts +9 -9
- package/src/socketHost.test.ts +6 -4
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/socket`. The `@fligh
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/socket@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/socket@0.5.1-next.1404.457d1da](https://github.com/flighthq/flight/tree/457d1da918a60be5853b84eb6c25530a66662cef/packages/socket)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/457d1da918a60be5853b84eb6c25530a66662cef/LICENSE.md)
|
package/dist/socket.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HostSocketCapability, Socket, SocketGuard, SocketOptions, SocketReadyState, SocketSignals, TcpSocketConnection, TcpSocketOptions } from '@flighthq/types/contract';
|
|
2
2
|
export declare function attachSocket(socket: Socket): void;
|
|
3
3
|
export declare function closeSocket(socket: Socket, code?: number, reason?: string): void;
|
|
4
|
-
export declare function createSocket(hostSocket: Readonly<
|
|
4
|
+
export declare function createSocket(hostSocket: Readonly<HostSocketCapability>, options: Readonly<SocketOptions>): Socket;
|
|
5
5
|
export declare function detachSocket(socket: Socket): void;
|
|
6
6
|
export declare function disposeSocket(socket: Socket): void;
|
|
7
7
|
export declare function enableSocketSignals(socket: Socket): SocketSignals;
|
|
8
8
|
export declare function getSocketReadyState(socket: Readonly<Socket>): SocketReadyState;
|
|
9
|
-
export declare function openTcpSocket(hostSocket: Readonly<
|
|
9
|
+
export declare function openTcpSocket(hostSocket: Readonly<HostSocketCapability>, options: Readonly<TcpSocketOptions>): TcpSocketConnection | null;
|
|
10
10
|
export declare function sendSocketMessage(socket: Readonly<Socket>, data: string | ArrayBuffer): boolean;
|
|
11
11
|
export declare function setSocketGuard(guard: SocketGuard | null): void;
|
|
12
12
|
//# sourceMappingURL=socket.d.ts.map
|
package/dist/socket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EAGN,WAAW,EAEX,aAAa,EACb,gBAAgB,EAEhB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGjD;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAShF;AAQD,wBAAgB,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,CAkBjH;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEjD;AAKD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASlD;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAcjE;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAE9E;AAKD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAC1C,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAClC,mBAAmB,GAAG,IAAI,CAE5B;AAKD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAQ/F;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAE9D"}
|
package/dist/socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAgBtE,oGAAoG;AACpG,oGAAoG;AACpG,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO;IACpC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,CAAC;AAED,mGAAmG;AACnG,uGAAuG;AACvG,iGAAiG;AACjG,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,IAAa,EAAE,MAAe;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO;IAChF,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,gGAAgG;AAChG,YAAY;AACZ,mGAAmG;AACnG,uFAAuF;AACvF,sGAAsG;AACtG,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/socket",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.1404.457d1da",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/log": "0.5.1-next.
|
|
43
|
-
"@flighthq/signals": "0.5.1-next.
|
|
44
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.1404.457d1da",
|
|
42
|
+
"@flighthq/log": "0.5.1-next.1404.457d1da",
|
|
43
|
+
"@flighthq/signals": "0.5.1-next.1404.457d1da",
|
|
44
|
+
"@flighthq/types": "0.5.1-next.1404.457d1da"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "^5.3.0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { addLogSink, createMemoryLogSink, getMemoryLogSinkEntries, removeLogSink } from '@flighthq/log/contract';
|
|
2
|
-
import type {
|
|
2
|
+
import type { HostSocketCapability, LogEntry } from '@flighthq/types/contract';
|
|
3
3
|
|
|
4
4
|
import { areSocketGuardsEnabled, disableSocketGuards, enableSocketGuards } from './enableSocketGuards';
|
|
5
5
|
import { closeSocket, createSocket, disposeSocket, enableSocketSignals, sendSocketMessage } from './socket';
|
|
@@ -15,7 +15,7 @@ function captureLog(run: () => void): readonly LogEntry[] {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function backend(hasConnection: boolean):
|
|
18
|
+
function backend(hasConnection: boolean): HostSocketCapability {
|
|
19
19
|
return {
|
|
20
20
|
openSocket() {
|
|
21
21
|
if (!hasConnection) return null;
|
|
@@ -28,8 +28,8 @@ afterEach(() => {
|
|
|
28
28
|
disableSocketGuards();
|
|
29
29
|
});
|
|
30
30
|
|
|
31
|
-
function hostOf(backend:
|
|
32
|
-
return { net: { socket: backend } } as { readonly net: { readonly socket:
|
|
31
|
+
function hostOf(backend: HostSocketCapability): { readonly net: { readonly socket: HostSocketCapability } } {
|
|
32
|
+
return { net: { socket: backend } } as { readonly net: { readonly socket: HostSocketCapability } };
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
describe('areSocketGuardsEnabled', () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HostSocketCapability, SocketEventSink } from '@flighthq/types/contract';
|
|
2
2
|
|
|
3
3
|
import { explainSocketSendFailure } from './explainSocketSendFailure';
|
|
4
4
|
import { createSocket, disposeSocket, sendSocketMessage } from './socket';
|
|
@@ -6,9 +6,9 @@ import { createSocket, disposeSocket, sendSocketMessage } from './socket';
|
|
|
6
6
|
function installBackend(
|
|
7
7
|
hasConnection: boolean,
|
|
8
8
|
sendResult = true,
|
|
9
|
-
): { host: { readonly net: { readonly socket:
|
|
9
|
+
): { host: { readonly net: { readonly socket: HostSocketCapability } }; sink: () => SocketEventSink } {
|
|
10
10
|
let sink!: SocketEventSink;
|
|
11
|
-
const backend:
|
|
11
|
+
const backend: HostSocketCapability = {
|
|
12
12
|
openSocket(_options, events) {
|
|
13
13
|
sink = events;
|
|
14
14
|
if (!hasConnection) return null;
|
|
@@ -21,8 +21,8 @@ function installBackend(
|
|
|
21
21
|
return { host: hostOf(backend), sink: () => sink };
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function hostOf(backend:
|
|
25
|
-
return { net: { socket: backend } } as { readonly net: { readonly socket:
|
|
24
|
+
function hostOf(backend: HostSocketCapability): { readonly net: { readonly socket: HostSocketCapability } } {
|
|
25
|
+
return { net: { socket: backend } } as { readonly net: { readonly socket: HostSocketCapability } };
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
describe('explainSocketSendFailure', () => {
|
package/src/socket.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { connectSignal } from '@flighthq/signals/contract';
|
|
2
2
|
import type {
|
|
3
|
-
|
|
3
|
+
HostSocketCapability,
|
|
4
4
|
SocketCloseInfo,
|
|
5
5
|
SocketConnection,
|
|
6
6
|
SocketEventSink,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from './socket';
|
|
24
24
|
|
|
25
25
|
interface FakeSocket {
|
|
26
|
-
backend:
|
|
26
|
+
backend: HostSocketCapability;
|
|
27
27
|
sink: SocketEventSink;
|
|
28
28
|
sent: (string | ArrayBuffer)[];
|
|
29
29
|
closes: { code?: number; reason?: string }[];
|
|
@@ -43,7 +43,7 @@ function fakeBackend(): FakeSocket {
|
|
|
43
43
|
sendReturns: true,
|
|
44
44
|
lastOptions: null,
|
|
45
45
|
sink: null as unknown as SocketEventSink,
|
|
46
|
-
backend: null as unknown as
|
|
46
|
+
backend: null as unknown as HostSocketCapability,
|
|
47
47
|
};
|
|
48
48
|
state.backend = {
|
|
49
49
|
openSocket(options, events): SocketConnection | null {
|
|
@@ -68,8 +68,8 @@ afterEach(() => {
|
|
|
68
68
|
setSocketGuard(null);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
-
function hostOf(backend:
|
|
72
|
-
return { net: { socket: backend } } as { readonly net: { readonly socket:
|
|
71
|
+
function hostOf(backend: HostSocketCapability): { readonly net: { readonly socket: HostSocketCapability } } {
|
|
72
|
+
return { net: { socket: backend } } as { readonly net: { readonly socket: HostSocketCapability } };
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
function tcpConnection(): TcpSocketConnection {
|
|
@@ -305,7 +305,7 @@ describe('openTcpSocket', () => {
|
|
|
305
305
|
const expected = tcpConnection();
|
|
306
306
|
const options: TcpSocketOptions = { host: 'db.internal', port: 5432 };
|
|
307
307
|
const openTcpSocketBackend = vi.fn(() => expected);
|
|
308
|
-
const backend:
|
|
308
|
+
const backend: HostSocketCapability = {
|
|
309
309
|
openSocket: vi.fn(() => null),
|
|
310
310
|
openTcpSocket: openTcpSocketBackend,
|
|
311
311
|
};
|
|
@@ -315,7 +315,7 @@ describe('openTcpSocket', () => {
|
|
|
315
315
|
});
|
|
316
316
|
|
|
317
317
|
it('returns null when the host carries no socket backend', () => {
|
|
318
|
-
const host = { net: {} } as { readonly net: { readonly socket:
|
|
318
|
+
const host = { net: {} } as { readonly net: { readonly socket: HostSocketCapability } };
|
|
319
319
|
expect(openTcpSocket(host.net.socket, { host: 'localhost', port: 9000 })).toBeNull();
|
|
320
320
|
});
|
|
321
321
|
|
|
@@ -323,7 +323,7 @@ describe('openTcpSocket', () => {
|
|
|
323
323
|
// Raw TCP must then report absence rather than falling through to openSocket and reinterpreting the
|
|
324
324
|
// endpoint as a WebSocket URL.
|
|
325
325
|
it('returns null for a framed-only backend without attempting framed openSocket', () => {
|
|
326
|
-
const backend:
|
|
326
|
+
const backend: HostSocketCapability = { openSocket: vi.fn(() => null) };
|
|
327
327
|
const openSocket = vi.spyOn(backend, 'openSocket');
|
|
328
328
|
|
|
329
329
|
expect(openTcpSocket(hostOf(backend).net.socket, { host: 'localhost', port: 9000 })).toBeNull();
|
|
@@ -331,7 +331,7 @@ describe('openTcpSocket', () => {
|
|
|
331
331
|
});
|
|
332
332
|
|
|
333
333
|
it('preserves an explicit null from a backend that cannot open the endpoint', () => {
|
|
334
|
-
const backend:
|
|
334
|
+
const backend: HostSocketCapability = {
|
|
335
335
|
openSocket: vi.fn(() => null),
|
|
336
336
|
openTcpSocket: vi.fn(() => null),
|
|
337
337
|
};
|
package/src/socketHost.test.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HostSocketCapability, SocketConnection, SocketEventSink } from '@flighthq/types/contract';
|
|
2
2
|
|
|
3
3
|
import { createSocket, getSocketReadyState } from './socket';
|
|
4
4
|
|
|
5
|
-
function recordingBackend(label: string, opened: string[]):
|
|
5
|
+
function recordingBackend(label: string, opened: string[]): HostSocketCapability {
|
|
6
6
|
return {
|
|
7
7
|
openSocket(_options, events: SocketEventSink): SocketConnection | null {
|
|
8
8
|
opened.push(label);
|
|
@@ -17,9 +17,11 @@ function recordingBackend(label: string, opened: string[]): HostSocketProvider {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
function hostWith(backend:
|
|
20
|
+
function hostWith(backend: HostSocketCapability | undefined): {
|
|
21
|
+
readonly net: { readonly socket: HostSocketCapability };
|
|
22
|
+
} {
|
|
21
23
|
return { net: backend === undefined ? {} : { socket: backend } } as {
|
|
22
|
-
readonly net: { readonly socket:
|
|
24
|
+
readonly net: { readonly socket: HostSocketCapability };
|
|
23
25
|
};
|
|
24
26
|
}
|
|
25
27
|
|