@dxos/edge-client 0.8.4-main.b97322e → 0.8.4-main.bc674ce

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.
Files changed (42) hide show
  1. package/dist/lib/browser/{chunk-LMP5TVOP.mjs → chunk-VESGVCLQ.mjs} +8 -4
  2. package/dist/lib/browser/{chunk-LMP5TVOP.mjs.map → chunk-VESGVCLQ.mjs.map} +3 -3
  3. package/dist/lib/browser/edge-ws-muxer.mjs +1 -1
  4. package/dist/lib/browser/index.mjs +561 -289
  5. package/dist/lib/browser/index.mjs.map +4 -4
  6. package/dist/lib/browser/meta.json +1 -1
  7. package/dist/lib/browser/testing/index.mjs +1 -1
  8. package/dist/lib/browser/testing/index.mjs.map +2 -2
  9. package/dist/lib/node-esm/{chunk-X7J46ISZ.mjs → chunk-JTBFRYNM.mjs} +8 -4
  10. package/dist/lib/node-esm/{chunk-X7J46ISZ.mjs.map → chunk-JTBFRYNM.mjs.map} +3 -3
  11. package/dist/lib/node-esm/edge-ws-muxer.mjs +1 -1
  12. package/dist/lib/node-esm/index.mjs +561 -289
  13. package/dist/lib/node-esm/index.mjs.map +4 -4
  14. package/dist/lib/node-esm/meta.json +1 -1
  15. package/dist/lib/node-esm/testing/index.mjs +1 -1
  16. package/dist/lib/node-esm/testing/index.mjs.map +2 -2
  17. package/dist/types/src/edge-client.d.ts +15 -15
  18. package/dist/types/src/edge-client.d.ts.map +1 -1
  19. package/dist/types/src/edge-http-client.d.ts +29 -4
  20. package/dist/types/src/edge-http-client.d.ts.map +1 -1
  21. package/dist/types/src/edge-ws-connection.d.ts +19 -0
  22. package/dist/types/src/edge-ws-connection.d.ts.map +1 -1
  23. package/dist/types/src/edge-ws-muxer.d.ts.map +1 -1
  24. package/dist/types/src/http-client.d.ts +10 -7
  25. package/dist/types/src/http-client.d.ts.map +1 -1
  26. package/dist/types/src/index.d.ts +4 -3
  27. package/dist/types/src/index.d.ts.map +1 -1
  28. package/dist/types/src/testing/test-utils.d.ts +3 -3
  29. package/dist/types/src/testing/test-utils.d.ts.map +1 -1
  30. package/dist/types/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +25 -17
  32. package/src/edge-client.test.ts +4 -4
  33. package/src/edge-client.ts +73 -42
  34. package/src/edge-http-client.test.ts +1 -1
  35. package/src/edge-http-client.ts +202 -42
  36. package/src/edge-ws-connection.ts +119 -6
  37. package/src/edge-ws-muxer.ts +1 -1
  38. package/src/http-client.test.ts +11 -7
  39. package/src/http-client.ts +18 -8
  40. package/src/index.ts +4 -3
  41. package/src/testing/test-utils.ts +8 -8
  42. package/src/websocket.test.ts +1 -1
@@ -2,10 +2,14 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type HttpClient } from '@effect/platform';
6
- import { type HttpClientError } from '@effect/platform/HttpClientError';
7
- import { type HttpClientResponse } from '@effect/platform/HttpClientResponse';
8
- import { Context, Duration, Effect, Layer, Schedule } from 'effect';
5
+ import type * as HttpClient from '@effect/platform/HttpClient';
6
+ import type * as HttpClientError from '@effect/platform/HttpClientError';
7
+ import type * as HttpClientResponse from '@effect/platform/HttpClientResponse';
8
+ import * as Context from 'effect/Context';
9
+ import * as Duration from 'effect/Duration';
10
+ import * as Effect from 'effect/Effect';
11
+ import * as Layer from 'effect/Layer';
12
+ import * as Schedule from 'effect/Schedule';
9
13
 
10
14
  import { log } from '@dxos/log';
11
15
 
@@ -28,7 +32,7 @@ export class HttpConfig extends Context.Tag('HttpConfig')<HttpConfig, RetryOptio
28
32
 
29
33
  // HOC pattern.
30
34
  export const withRetry = (
31
- effect: Effect.Effect<HttpClientResponse, HttpClientError, HttpClient.HttpClient>,
35
+ effect: Effect.Effect<HttpClientResponse.HttpClientResponse, HttpClientError.HttpClientError, HttpClient.HttpClient>,
32
36
  {
33
37
  timeout = Duration.millis(1_000),
34
38
  retryBaseDelay = Duration.millis(1_000),
@@ -48,14 +52,20 @@ export const withRetry = (
48
52
  );
49
53
  };
50
54
 
51
- export const withRetryConfig = (effect: Effect.Effect<HttpClientResponse, HttpClientError, HttpClient.HttpClient>) =>
55
+ export const withRetryConfig = (
56
+ effect: Effect.Effect<HttpClientResponse.HttpClientResponse, HttpClientError.HttpClientError, HttpClient.HttpClient>,
57
+ ) =>
52
58
  Effect.gen(function* () {
53
59
  const config = yield* HttpConfig;
54
60
  return yield* withRetry(effect, config);
55
61
  });
56
62
 
57
- export const withLogging = <A extends HttpClientResponse, E, R>(effect: Effect.Effect<A, E, R>) =>
58
- effect.pipe(Effect.tap((res) => log.info('response', { status: res.status })));
63
+ export const withLogging = <A extends HttpClientResponse.HttpClientResponse, E, R>(effect: Effect.Effect<A, E, R>) =>
64
+ effect.pipe(
65
+ Effect.tap((res) => {
66
+ log.info('response', { status: res.status });
67
+ }),
68
+ );
59
69
 
60
70
  /**
61
71
  *
package/src/index.ts CHANGED
@@ -4,11 +4,12 @@
4
4
 
5
5
  export * from '@dxos/protocols/buf/dxos/edge/messenger_pb';
6
6
 
7
- export * from './edge-client';
7
+ export * from './auth';
8
8
  export * from './defs';
9
- export * from './protocol';
9
+ export * from './edge-client';
10
10
  export * from './errors';
11
- export * from './auth';
11
+ export * from './protocol';
12
12
  export * from './edge-http-client';
13
13
  export * from './edge-identity';
14
14
  export * from './edge-ws-muxer';
15
+ export * from './http-client';
@@ -8,7 +8,7 @@ import { Trigger } from '@dxos/async';
8
8
  import { log } from '@dxos/log';
9
9
  import { EdgeWebsocketProtocol } from '@dxos/protocols';
10
10
  import { buf } from '@dxos/protocols/buf';
11
- import { MessageSchema, TextMessageSchema, type Message } from '@dxos/protocols/buf/dxos/edge/messenger_pb';
11
+ import { type Message, MessageSchema, TextMessageSchema } from '@dxos/protocols/buf/dxos/edge/messenger_pb';
12
12
 
13
13
  import { protocol } from '../defs';
14
14
  import { WebSocketMuxer } from '../edge-ws-muxer';
@@ -16,13 +16,13 @@ import { toUint8Array } from '../protocol';
16
16
 
17
17
  export const DEFAULT_PORT = 8080;
18
18
 
19
- type TestEdgeWsServerParams = {
19
+ type TestEdgeWsServerProps = {
20
20
  admitConnection?: Trigger;
21
21
  payloadDecoder?: (payload: Uint8Array) => any;
22
22
  messageHandler?: (payload: any) => Promise<Uint8Array | undefined>;
23
23
  };
24
24
 
25
- export const createTestEdgeWsServer = async (port = DEFAULT_PORT, params?: TestEdgeWsServerParams) => {
25
+ export const createTestEdgeWsServer = async (port = DEFAULT_PORT, params?: TestEdgeWsServerProps) => {
26
26
  const wsServer = new WebSocket.Server({
27
27
  port,
28
28
  verifyClient: createConnectionDelayHandler(params),
@@ -36,11 +36,11 @@ export const createTestEdgeWsServer = async (port = DEFAULT_PORT, params?: TestE
36
36
  const closeTrigger = new Trigger();
37
37
  const sendResponseMessage = createResponseSender(() => connection!.muxer);
38
38
 
39
- wsServer.on('connection', (ws) => {
39
+ wsServer.on('connection', (ws: WebSocket) => {
40
40
  const muxer = new WebSocketMuxer(ws);
41
41
  connection = { ws, muxer };
42
- ws.on('error', (err) => log.catch(err));
43
- ws.on('message', async (data) => {
42
+ ws.on('error', (err: Error) => log.catch(err));
43
+ ws.on('message', async (data: any) => {
44
44
  if (String(data) === '__ping__') {
45
45
  ws.send('__pong__');
46
46
  return;
@@ -86,7 +86,7 @@ export const createTestEdgeWsServer = async (port = DEFAULT_PORT, params?: TestE
86
86
  };
87
87
  };
88
88
 
89
- const createConnectionDelayHandler = (params: TestEdgeWsServerParams | undefined) => {
89
+ const createConnectionDelayHandler = (params: TestEdgeWsServerProps | undefined) => {
90
90
  return (_: any, callback: (admit: boolean) => void) => {
91
91
  if (params?.admitConnection) {
92
92
  log('delaying edge connection admission');
@@ -116,7 +116,7 @@ const createResponseSender = (connection: () => WebSocketMuxer) => {
116
116
  };
117
117
  };
118
118
 
119
- const decodePayload = async (request: Message, params: TestEdgeWsServerParams | undefined) => {
119
+ const decodePayload = async (request: Message, params: TestEdgeWsServerProps | undefined) => {
120
120
  const requestPayload = params?.payloadDecoder
121
121
  ? params.payloadDecoder(request.payload!.value!)
122
122
  : protocol.getPayload(request, TextMessageSchema);
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import WebSocket from 'isomorphic-ws';
6
- import { describe, expect, test, onTestFinished } from 'vitest';
6
+ import { describe, expect, onTestFinished, test } from 'vitest';
7
7
 
8
8
  import { Trigger, TriggerState } from '@dxos/async';
9
9