@dxos/edge-client 0.8.4-main.84f28bd → 0.8.4-main.b97322e

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/edge-client",
3
- "version": "0.8.4-main.84f28bd",
3
+ "version": "0.8.4-main.b97322e",
4
4
  "description": "EDGE Client",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -39,24 +39,24 @@
39
39
  "README.md"
40
40
  ],
41
41
  "dependencies": {
42
- "@effect/platform": "^0.87.12",
42
+ "@effect/platform": "^0.89.0",
43
43
  "isomorphic-ws": "^5.0.0",
44
44
  "ws": "^8.14.2",
45
- "@dxos/async": "0.8.4-main.84f28bd",
46
- "@dxos/context": "0.8.4-main.84f28bd",
47
- "@dxos/credentials": "0.8.4-main.84f28bd",
48
- "@dxos/debug": "0.8.4-main.84f28bd",
49
- "@dxos/crypto": "0.8.4-main.84f28bd",
50
- "@dxos/invariant": "0.8.4-main.84f28bd",
51
- "@dxos/keyring": "0.8.4-main.84f28bd",
52
- "@dxos/keys": "0.8.4-main.84f28bd",
53
- "@dxos/log": "0.8.4-main.84f28bd",
54
- "@dxos/node-std": "0.8.4-main.84f28bd",
55
- "@dxos/protocols": "0.8.4-main.84f28bd",
56
- "@dxos/util": "0.8.4-main.84f28bd"
45
+ "@dxos/async": "0.8.4-main.b97322e",
46
+ "@dxos/context": "0.8.4-main.b97322e",
47
+ "@dxos/credentials": "0.8.4-main.b97322e",
48
+ "@dxos/crypto": "0.8.4-main.b97322e",
49
+ "@dxos/debug": "0.8.4-main.b97322e",
50
+ "@dxos/invariant": "0.8.4-main.b97322e",
51
+ "@dxos/keys": "0.8.4-main.b97322e",
52
+ "@dxos/keyring": "0.8.4-main.b97322e",
53
+ "@dxos/log": "0.8.4-main.b97322e",
54
+ "@dxos/protocols": "0.8.4-main.b97322e",
55
+ "@dxos/node-std": "0.8.4-main.b97322e",
56
+ "@dxos/util": "0.8.4-main.b97322e"
57
57
  },
58
58
  "devDependencies": {
59
- "@dxos/test-utils": "0.8.4-main.84f28bd"
59
+ "@dxos/test-utils": "0.8.4-main.b97322e"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "effect": "^3.13.3"
@@ -164,6 +164,10 @@ export class EdgeHttpClient {
164
164
  // OAuth and credentials
165
165
  //
166
166
 
167
+ public async listFunctions(args?: EdgeHttpGetArgs): Promise<any> {
168
+ return this._call(new URL('/functions', this.baseUrl), { ...args, method: 'GET' });
169
+ }
170
+
167
171
  public async initiateOAuthFlow(
168
172
  body: InitiateOAuthFlowRequest,
169
173
  args?: EdgeHttpGetArgs,
@@ -30,6 +30,7 @@ export class EdgeWsConnection extends Resource {
30
30
  private _inactivityTimeoutCtx: Context | undefined;
31
31
  private _ws: WebSocket | undefined;
32
32
  private _wsMuxer: WebSocketMuxer | undefined;
33
+ private _lastReceivedMessageTimestamp = Date.now();
33
34
 
34
35
  constructor(
35
36
  private readonly _identity: EdgeIdentity,
@@ -111,6 +112,7 @@ export class EdgeWsConnection extends Resource {
111
112
  log.verbose('message ignored on closed connection', { event: event.type });
112
113
  return;
113
114
  }
115
+ this._lastReceivedMessageTimestamp = Date.now();
114
116
  if (event.data === '__pong__') {
115
117
  this._rescheduleHeartbeatTimeout();
116
118
  return;
@@ -172,8 +174,14 @@ export class EdgeWsConnection extends Resource {
172
174
  this._inactivityTimeoutCtx,
173
175
  () => {
174
176
  if (this.isOpen) {
175
- log.warn('restart due to inactivity timeout');
176
- this._callbacks.onRestartRequired();
177
+ if (Date.now() - this._lastReceivedMessageTimestamp > SIGNAL_KEEPALIVE_TIMEOUT) {
178
+ log.warn('restart due to inactivity timeout', {
179
+ lastReceivedMessageTimestamp: this._lastReceivedMessageTimestamp,
180
+ });
181
+ this._callbacks.onRestartRequired();
182
+ } else {
183
+ this._rescheduleHeartbeatTimeout();
184
+ }
177
185
  }
178
186
  },
179
187
  SIGNAL_KEEPALIVE_TIMEOUT,
@@ -18,7 +18,6 @@ describe('HttpClient', () => {
18
18
  server = await createTestServer(responseHandler((attempt) => (attempt > 2 ? { value: 100 } : false)));
19
19
  });
20
20
 
21
- // eslint-disable-next-line mocha/no-top-level-hooks
22
21
  afterEach(() => {
23
22
  server?.close();
24
23
  server = undefined;