@replit/river 0.23.13 → 0.23.14
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/{chunk-SX6HI63Q.js → chunk-BEALFLCB.js} +2 -2
- package/dist/{chunk-S4DUN7KK.js → chunk-D2DHRRBN.js} +41 -20
- package/dist/chunk-D2DHRRBN.js.map +1 -0
- package/dist/{chunk-ES4XO2XD.js → chunk-GCCRVSMR.js} +33 -4
- package/dist/chunk-GCCRVSMR.js.map +1 -0
- package/dist/{chunk-KFTGQ3QC.js → chunk-GN4YEXT7.js} +2 -2
- package/dist/{chunk-2FNLANTJ.js → chunk-O2AVDJCQ.js} +10 -2
- package/dist/{chunk-2FNLANTJ.js.map → chunk-O2AVDJCQ.js.map} +1 -1
- package/dist/{chunk-XM656KMN.js → chunk-OTVTKAN6.js} +46 -3
- package/dist/chunk-OTVTKAN6.js.map +1 -0
- package/dist/{chunk-ZUKDZY54.js → chunk-WUL63FR6.js} +89 -25
- package/dist/chunk-WUL63FR6.js.map +1 -0
- package/dist/{chunk-4QZOW4DH.js → chunk-YCLZWES2.js} +2 -2
- package/dist/{client-dd5c9dd0.d.ts → client-e13979ac.d.ts} +1 -1
- package/dist/{connection-39816c00.d.ts → connection-5d0978ce.d.ts} +1 -1
- package/dist/{connection-40318f22.d.ts → connection-e57e98ea.d.ts} +1 -1
- package/dist/{handshake-e428d1c8.d.ts → handshake-5665ffd3.d.ts} +13 -0
- package/dist/router/index.cjs +16 -1
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.d.cts +7 -7
- package/dist/router/index.d.ts +7 -7
- package/dist/router/index.js +2 -2
- package/dist/{server-ebf80863.d.ts → server-1cfc88d1.d.ts} +1 -1
- package/dist/{services-f406b3aa.d.ts → services-86c4d10d.d.ts} +2 -2
- package/dist/transport/impls/uds/client.cjs +113 -18
- package/dist/transport/impls/uds/client.cjs.map +1 -1
- package/dist/transport/impls/uds/client.d.cts +3 -3
- package/dist/transport/impls/uds/client.d.ts +3 -3
- package/dist/transport/impls/uds/client.js +5 -5
- package/dist/transport/impls/uds/server.cjs +157 -23
- package/dist/transport/impls/uds/server.cjs.map +1 -1
- package/dist/transport/impls/uds/server.d.cts +3 -3
- package/dist/transport/impls/uds/server.d.ts +3 -3
- package/dist/transport/impls/uds/server.js +5 -5
- package/dist/transport/impls/ws/client.cjs +113 -18
- package/dist/transport/impls/ws/client.cjs.map +1 -1
- package/dist/transport/impls/ws/client.d.cts +3 -3
- package/dist/transport/impls/ws/client.d.ts +3 -3
- package/dist/transport/impls/ws/client.js +5 -5
- package/dist/transport/impls/ws/server.cjs +157 -23
- package/dist/transport/impls/ws/server.cjs.map +1 -1
- package/dist/transport/impls/ws/server.d.cts +3 -3
- package/dist/transport/impls/ws/server.d.ts +3 -3
- package/dist/transport/impls/ws/server.js +5 -5
- package/dist/transport/index.cjs +202 -40
- package/dist/transport/index.cjs.map +1 -1
- package/dist/transport/index.d.cts +3 -3
- package/dist/transport/index.d.ts +3 -3
- package/dist/transport/index.js +5 -5
- package/dist/util/testHelpers.cjs +9 -1
- package/dist/util/testHelpers.cjs.map +1 -1
- package/dist/util/testHelpers.d.cts +3 -3
- package/dist/util/testHelpers.d.ts +3 -3
- package/dist/util/testHelpers.js +3 -3
- package/package.json +13 -14
- package/dist/chunk-ES4XO2XD.js.map +0 -1
- package/dist/chunk-S4DUN7KK.js.map +0 -1
- package/dist/chunk-XM656KMN.js.map +0 -1
- package/dist/chunk-ZUKDZY54.js.map +0 -1
- /package/dist/{chunk-SX6HI63Q.js.map → chunk-BEALFLCB.js.map} +0 -0
- /package/dist/{chunk-KFTGQ3QC.js.map → chunk-GN4YEXT7.js.map} +0 -0
- /package/dist/{chunk-4QZOW4DH.js.map → chunk-YCLZWES2.js.map} +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ProtocolError,
|
|
3
3
|
Transport
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OTVTKAN6.js";
|
|
5
5
|
import {
|
|
6
6
|
defaultServerTransportOptions
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-O2AVDJCQ.js";
|
|
8
8
|
import {
|
|
9
9
|
ControlMessageHandshakeRequestSchema,
|
|
10
10
|
PROTOCOL_VERSION,
|
|
11
|
+
SESSION_STATE_MISMATCH,
|
|
11
12
|
coerceErrorString,
|
|
12
13
|
handshakeResponseMessage
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GCCRVSMR.js";
|
|
14
15
|
|
|
15
16
|
// transport/server.ts
|
|
16
17
|
import { SpanStatusCode } from "@opentelemetry/api";
|
|
@@ -134,9 +135,13 @@ var ServerTransport = class extends Transport {
|
|
|
134
135
|
message: "malformed handshake meta"
|
|
135
136
|
});
|
|
136
137
|
const reason = "received malformed handshake metadata";
|
|
137
|
-
const responseMsg = handshakeResponseMessage(
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
const responseMsg = handshakeResponseMessage({
|
|
139
|
+
from: this.clientId,
|
|
140
|
+
to: from,
|
|
141
|
+
status: {
|
|
142
|
+
ok: false,
|
|
143
|
+
reason
|
|
144
|
+
}
|
|
140
145
|
});
|
|
141
146
|
conn.send(this.codec.toBuffer(responseMsg));
|
|
142
147
|
this.log?.warn(`received malformed handshake metadata from ${from}`, {
|
|
@@ -160,9 +165,13 @@ var ServerTransport = class extends Transport {
|
|
|
160
165
|
code: SpanStatusCode.ERROR,
|
|
161
166
|
message: reason
|
|
162
167
|
});
|
|
163
|
-
const responseMsg = handshakeResponseMessage(
|
|
164
|
-
|
|
165
|
-
|
|
168
|
+
const responseMsg = handshakeResponseMessage({
|
|
169
|
+
from: this.clientId,
|
|
170
|
+
to: from,
|
|
171
|
+
status: {
|
|
172
|
+
ok: false,
|
|
173
|
+
reason
|
|
174
|
+
}
|
|
166
175
|
});
|
|
167
176
|
conn.send(this.codec.toBuffer(responseMsg));
|
|
168
177
|
this.log?.warn(`rejected handshake from ${from}`, {
|
|
@@ -194,9 +203,13 @@ var ServerTransport = class extends Transport {
|
|
|
194
203
|
message: "invalid handshake request"
|
|
195
204
|
});
|
|
196
205
|
const reason = "received invalid handshake msg";
|
|
197
|
-
const responseMsg2 = handshakeResponseMessage(
|
|
198
|
-
|
|
199
|
-
|
|
206
|
+
const responseMsg2 = handshakeResponseMessage({
|
|
207
|
+
from: this.clientId,
|
|
208
|
+
to: parsed.from,
|
|
209
|
+
status: {
|
|
210
|
+
ok: false,
|
|
211
|
+
reason
|
|
212
|
+
}
|
|
200
213
|
});
|
|
201
214
|
conn.send(this.codec.toBuffer(responseMsg2));
|
|
202
215
|
this.log?.warn(reason, {
|
|
@@ -222,9 +235,13 @@ var ServerTransport = class extends Transport {
|
|
|
222
235
|
message: "incorrect protocol version"
|
|
223
236
|
});
|
|
224
237
|
const reason = `incorrect version (got: ${gotVersion} wanted ${PROTOCOL_VERSION})`;
|
|
225
|
-
const responseMsg2 = handshakeResponseMessage(
|
|
226
|
-
|
|
227
|
-
|
|
238
|
+
const responseMsg2 = handshakeResponseMessage({
|
|
239
|
+
from: this.clientId,
|
|
240
|
+
to: parsed.from,
|
|
241
|
+
status: {
|
|
242
|
+
ok: false,
|
|
243
|
+
reason
|
|
244
|
+
}
|
|
228
245
|
});
|
|
229
246
|
conn.send(this.codec.toBuffer(responseMsg2));
|
|
230
247
|
this.log?.warn(
|
|
@@ -244,20 +261,67 @@ var ServerTransport = class extends Transport {
|
|
|
244
261
|
if (parsedMetadata === false) {
|
|
245
262
|
return false;
|
|
246
263
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
264
|
+
let session;
|
|
265
|
+
let isTransparentReconnect;
|
|
266
|
+
if (!parsed.payload.expectedSessionState) {
|
|
267
|
+
({ session, isTransparentReconnect } = this.getOrCreateSession({
|
|
268
|
+
to: parsed.from,
|
|
269
|
+
conn,
|
|
270
|
+
sessionId: parsed.payload.sessionId,
|
|
271
|
+
propagationCtx: parsed.tracing
|
|
272
|
+
}));
|
|
273
|
+
} else if (parsed.payload.expectedSessionState.reconnect) {
|
|
274
|
+
const existingSession = this.getExistingSession({
|
|
275
|
+
to: parsed.from,
|
|
276
|
+
sessionId: parsed.payload.sessionId,
|
|
277
|
+
nextExpectedSeq: parsed.payload.expectedSessionState.nextExpectedSeq
|
|
278
|
+
});
|
|
279
|
+
if (existingSession === false) {
|
|
280
|
+
conn.telemetry?.span.setStatus({
|
|
281
|
+
code: SpanStatusCode.ERROR,
|
|
282
|
+
message: SESSION_STATE_MISMATCH
|
|
283
|
+
});
|
|
284
|
+
const reason = SESSION_STATE_MISMATCH;
|
|
285
|
+
const responseMsg2 = handshakeResponseMessage({
|
|
286
|
+
from: this.clientId,
|
|
287
|
+
to: parsed.from,
|
|
288
|
+
status: {
|
|
289
|
+
ok: false,
|
|
290
|
+
reason
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
conn.send(this.codec.toBuffer(responseMsg2));
|
|
294
|
+
this.log?.warn(
|
|
295
|
+
`'received handshake msg with incompatible existing session state: ${parsed.payload.sessionId}`,
|
|
296
|
+
{ ...conn.loggingMetadata, clientId: this.clientId }
|
|
297
|
+
);
|
|
298
|
+
this.protocolError(ProtocolError.HandshakeFailed, reason);
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
session = existingSession;
|
|
302
|
+
isTransparentReconnect = false;
|
|
303
|
+
} else {
|
|
304
|
+
const createdSession = this.createNewSession({
|
|
305
|
+
to: parsed.from,
|
|
306
|
+
conn,
|
|
307
|
+
sessionId: parsed.payload.sessionId,
|
|
308
|
+
propagationCtx: parsed.tracing
|
|
309
|
+
});
|
|
310
|
+
session = createdSession;
|
|
311
|
+
isTransparentReconnect = false;
|
|
312
|
+
}
|
|
253
313
|
this.sessionHandshakeMetadata.set(session, parsedMetadata);
|
|
254
314
|
this.log?.debug(
|
|
255
315
|
`handshake from ${parsed.from} ok, responding with handshake success`,
|
|
256
316
|
conn.loggingMetadata
|
|
257
317
|
);
|
|
258
|
-
const responseMsg = handshakeResponseMessage(
|
|
259
|
-
|
|
260
|
-
|
|
318
|
+
const responseMsg = handshakeResponseMessage({
|
|
319
|
+
from: this.clientId,
|
|
320
|
+
to: parsed.from,
|
|
321
|
+
status: {
|
|
322
|
+
ok: true,
|
|
323
|
+
sessionId: session.id
|
|
324
|
+
}
|
|
261
325
|
});
|
|
262
326
|
conn.send(this.codec.toBuffer(responseMsg));
|
|
263
327
|
this.onConnect(conn, session, isTransparentReconnect);
|
|
@@ -268,4 +332,4 @@ var ServerTransport = class extends Transport {
|
|
|
268
332
|
export {
|
|
269
333
|
ServerTransport
|
|
270
334
|
};
|
|
271
|
-
//# sourceMappingURL=chunk-
|
|
335
|
+
//# sourceMappingURL=chunk-WUL63FR6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../transport/server.ts"],"sourcesContent":["import { SpanStatusCode } from '@opentelemetry/api';\nimport { ParsedMetadata } from '../router/context';\nimport { ServerHandshakeOptions } from '../router/handshake';\nimport {\n ControlMessageHandshakeRequestSchema,\n PROTOCOL_VERSION,\n SESSION_STATE_MISMATCH,\n TransportClientId,\n handshakeResponseMessage,\n} from './message';\nimport {\n ProvidedServerTransportOptions,\n ServerTransportOptions,\n defaultServerTransportOptions,\n} from './options';\nimport { Connection, Session } from './session';\nimport { Transport } from './transport';\nimport { coerceErrorString } from '../util/stringify';\nimport { Static } from '@sinclair/typebox';\nimport { Value } from '@sinclair/typebox/value';\nimport { ProtocolError } from './events';\n\nexport abstract class ServerTransport<\n ConnType extends Connection,\n> extends Transport<ConnType> {\n /**\n * The options for this transport.\n */\n protected options: ServerTransportOptions;\n\n /**\n * Optional handshake options for the server.\n */\n handshakeExtensions?: ServerHandshakeOptions;\n\n /**\n * A map of session handshake data for each session.\n */\n sessionHandshakeMetadata: WeakMap<Session<ConnType>, ParsedMetadata>;\n\n constructor(\n clientId: TransportClientId,\n providedOptions?: ProvidedServerTransportOptions,\n ) {\n super(clientId, providedOptions);\n this.options = {\n ...defaultServerTransportOptions,\n ...providedOptions,\n };\n this.sessionHandshakeMetadata = new WeakMap();\n this.log?.info(`initiated server transport`, {\n clientId: this.clientId,\n protocolVersion: PROTOCOL_VERSION,\n });\n }\n\n extendHandshake(options: ServerHandshakeOptions) {\n this.handshakeExtensions = options;\n }\n\n protected handleConnection(conn: ConnType) {\n if (this.getStatus() !== 'open') return;\n\n this.log?.info(`new incoming connection`, {\n ...conn.loggingMetadata,\n clientId: this.clientId,\n });\n\n let session: Session<ConnType> | undefined = undefined;\n const client = () => session?.to ?? 'unknown';\n\n // kill the conn after the grace period if we haven't received a handshake\n const handshakeTimeout = setTimeout(() => {\n if (!session) {\n this.log?.warn(\n `connection to ${client()} timed out waiting for handshake, closing`,\n {\n ...conn.loggingMetadata,\n clientId: this.clientId,\n connectedTo: client(),\n },\n );\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'handshake timeout',\n });\n conn.close();\n }\n }, this.options.sessionDisconnectGraceMs);\n\n const buffer: Array<Uint8Array> = [];\n let receivedHandshakeMessage = false;\n\n const handshakeHandler = (data: Uint8Array) => {\n // if we've already received, just buffer the data\n if (receivedHandshakeMessage) {\n buffer.push(data);\n return;\n }\n\n receivedHandshakeMessage = true;\n clearTimeout(handshakeTimeout);\n\n void this.receiveHandshakeRequestMessage(data, conn).then(\n (maybeSession) => {\n if (!maybeSession) {\n conn.close();\n return;\n }\n\n session = maybeSession;\n\n // when we are done handshake sequence,\n // remove handshake listener and use the normal message listener\n const dataHandler = (data: Uint8Array) => {\n const parsed = this.parseMsg(data, conn);\n if (!parsed) {\n conn.close();\n return;\n }\n\n this.handleMsg(parsed, conn);\n };\n\n // process any data we missed\n for (const data of buffer) {\n dataHandler(data);\n }\n\n conn.removeDataListener(handshakeHandler);\n conn.addDataListener(dataHandler);\n buffer.length = 0;\n },\n );\n };\n\n conn.addDataListener(handshakeHandler);\n conn.addCloseListener(() => {\n if (!session) return;\n this.log?.info(`connection to ${client()} disconnected`, {\n ...conn.loggingMetadata,\n clientId: this.clientId,\n });\n this.onDisconnect(conn, session);\n });\n\n conn.addErrorListener((err) => {\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'connection error',\n });\n if (!session) return;\n this.log?.warn(\n `connection to ${client()} got an error: ${coerceErrorString(err)}`,\n { ...conn.loggingMetadata, clientId: this.clientId },\n );\n });\n }\n\n private async validateHandshakeMetadata(\n conn: ConnType,\n session: Session<ConnType> | undefined,\n rawMetadata: Static<\n typeof ControlMessageHandshakeRequestSchema\n >['metadata'],\n from: TransportClientId,\n ): Promise<ParsedMetadata | false> {\n let parsedMetadata: ParsedMetadata = {};\n if (this.handshakeExtensions) {\n // check that the metadata that was sent is the correct shape\n if (!Value.Check(this.handshakeExtensions.schema, rawMetadata)) {\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'malformed handshake meta',\n });\n const reason = 'received malformed handshake metadata';\n const responseMsg = handshakeResponseMessage({\n from: this.clientId,\n to: from,\n status: {\n ok: false,\n reason,\n },\n });\n conn.send(this.codec.toBuffer(responseMsg));\n this.log?.warn(`received malformed handshake metadata from ${from}`, {\n ...conn.loggingMetadata,\n clientId: this.clientId,\n validationErrors: [\n ...Value.Errors(this.handshakeExtensions.schema, rawMetadata),\n ],\n });\n this.protocolError(ProtocolError.HandshakeFailed, reason);\n return false;\n }\n\n const previousParsedMetadata = session\n ? this.sessionHandshakeMetadata.get(session)\n : undefined;\n\n parsedMetadata = await this.handshakeExtensions.validate(\n rawMetadata,\n previousParsedMetadata,\n );\n\n // handler rejected the connection\n if (parsedMetadata === false) {\n const reason = 'rejected by handshake handler';\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: reason,\n });\n const responseMsg = handshakeResponseMessage({\n from: this.clientId,\n to: from,\n status: {\n ok: false,\n reason,\n },\n });\n conn.send(this.codec.toBuffer(responseMsg));\n this.log?.warn(`rejected handshake from ${from}`, {\n ...conn.loggingMetadata,\n clientId: this.clientId,\n });\n this.protocolError(ProtocolError.HandshakeFailed, reason);\n return false;\n }\n }\n\n return parsedMetadata;\n }\n\n async receiveHandshakeRequestMessage(\n data: Uint8Array,\n conn: ConnType,\n ): Promise<Session<ConnType> | false> {\n const parsed = this.parseMsg(data, conn);\n if (!parsed) {\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'non-transport message',\n });\n this.protocolError(\n ProtocolError.HandshakeFailed,\n 'received non-transport message',\n );\n return false;\n }\n\n if (!Value.Check(ControlMessageHandshakeRequestSchema, parsed.payload)) {\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'invalid handshake request',\n });\n const reason = 'received invalid handshake msg';\n const responseMsg = handshakeResponseMessage({\n from: this.clientId,\n to: parsed.from,\n status: {\n ok: false,\n reason,\n },\n });\n conn.send(this.codec.toBuffer(responseMsg));\n this.log?.warn(reason, {\n ...conn.loggingMetadata,\n clientId: this.clientId,\n // safe to this.log metadata here as we remove the payload\n // before passing it to user-land\n transportMessage: parsed,\n validationErrors: [\n ...Value.Errors(ControlMessageHandshakeRequestSchema, parsed.payload),\n ],\n });\n this.protocolError(\n ProtocolError.HandshakeFailed,\n 'invalid handshake request',\n );\n return false;\n }\n\n // double check protocol version here\n const gotVersion = parsed.payload.protocolVersion;\n if (gotVersion !== PROTOCOL_VERSION) {\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'incorrect protocol version',\n });\n\n const reason = `incorrect version (got: ${gotVersion} wanted ${PROTOCOL_VERSION})`;\n const responseMsg = handshakeResponseMessage({\n from: this.clientId,\n to: parsed.from,\n status: {\n ok: false,\n reason,\n },\n });\n conn.send(this.codec.toBuffer(responseMsg));\n this.log?.warn(\n `received handshake msg with incompatible protocol version (got: ${gotVersion}, expected: ${PROTOCOL_VERSION})`,\n { ...conn.loggingMetadata, clientId: this.clientId },\n );\n this.protocolError(ProtocolError.HandshakeFailed, reason);\n return false;\n }\n\n const oldSession = this.sessions.get(parsed.from);\n const parsedMetadata = await this.validateHandshakeMetadata(\n conn,\n oldSession,\n parsed.payload.metadata,\n parsed.from,\n );\n\n if (parsedMetadata === false) {\n return false;\n }\n\n let session: Session<ConnType>;\n let isTransparentReconnect: boolean;\n if (!parsed.payload.expectedSessionState) {\n // TODO: remove once we have upgraded all clients.\n ({ session, isTransparentReconnect } = this.getOrCreateSession({\n to: parsed.from,\n conn,\n sessionId: parsed.payload.sessionId,\n propagationCtx: parsed.tracing,\n }));\n } else if (parsed.payload.expectedSessionState.reconnect) {\n // this has to be an existing session. if it doesn't match what we expect, reject the\n // handshake\n const existingSession = this.getExistingSession({\n to: parsed.from,\n sessionId: parsed.payload.sessionId,\n nextExpectedSeq: parsed.payload.expectedSessionState.nextExpectedSeq,\n });\n if (existingSession === false) {\n conn.telemetry?.span.setStatus({\n code: SpanStatusCode.ERROR,\n message: SESSION_STATE_MISMATCH,\n });\n\n const reason = SESSION_STATE_MISMATCH;\n const responseMsg = handshakeResponseMessage({\n from: this.clientId,\n to: parsed.from,\n status: {\n ok: false,\n reason,\n },\n });\n conn.send(this.codec.toBuffer(responseMsg));\n this.log?.warn(\n `'received handshake msg with incompatible existing session state: ${parsed.payload.sessionId}`,\n { ...conn.loggingMetadata, clientId: this.clientId },\n );\n this.protocolError(ProtocolError.HandshakeFailed, reason);\n return false;\n }\n session = existingSession;\n isTransparentReconnect = false;\n } else {\n // this has to be a new session. if one already exists, it will be replaced silently\n const createdSession = this.createNewSession({\n to: parsed.from,\n conn,\n sessionId: parsed.payload.sessionId,\n propagationCtx: parsed.tracing,\n });\n session = createdSession;\n isTransparentReconnect = false;\n }\n\n this.sessionHandshakeMetadata.set(session, parsedMetadata);\n\n this.log?.debug(\n `handshake from ${parsed.from} ok, responding with handshake success`,\n conn.loggingMetadata,\n );\n const responseMsg = handshakeResponseMessage({\n from: this.clientId,\n to: parsed.from,\n status: {\n ok: true,\n sessionId: session.id,\n },\n });\n conn.send(this.codec.toBuffer(responseMsg));\n this.onConnect(conn, session, isTransparentReconnect);\n\n return session;\n }\n}\n"],"mappings":"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","names":["data","responseMsg"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Connection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-O2AVDJCQ.js";
|
|
4
4
|
|
|
5
5
|
// transport/transforms/messageFraming.ts
|
|
6
6
|
import { Transform } from "node:stream";
|
|
@@ -103,4 +103,4 @@ var UdsConnection = class extends Connection {
|
|
|
103
103
|
export {
|
|
104
104
|
UdsConnection
|
|
105
105
|
};
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-YCLZWES2.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as Connection, T as Transport, j as ClientTransportOptions, L as LeakyBucketRateLimit, k as ClientHandshakeOptions, b as ProvidedClientTransportOptions, S as Session } from './handshake-
|
|
1
|
+
import { C as Connection, T as Transport, j as ClientTransportOptions, L as LeakyBucketRateLimit, k as ClientHandshakeOptions, b as ProvidedClientTransportOptions, S as Session } from './handshake-5665ffd3.js';
|
|
2
2
|
import { c as TransportClientId } from './index-ea74cdbb.js';
|
|
3
3
|
|
|
4
4
|
declare abstract class ClientTransport<ConnType extends Connection> extends Transport<ConnType> {
|
|
@@ -151,7 +151,9 @@ declare class Session<ConnType extends Connection> {
|
|
|
151
151
|
closeHandshakingConnection(expectedHandshakingConn?: ConnType): void;
|
|
152
152
|
close(): void;
|
|
153
153
|
get connected(): boolean;
|
|
154
|
+
get nextExpectedAck(): number;
|
|
154
155
|
get nextExpectedSeq(): number;
|
|
156
|
+
advanceAckForTesting(by: number): void;
|
|
155
157
|
constructMsg<Payload>(partialMsg: PartialTransportMessage<Payload>): TransportMessage<Payload>;
|
|
156
158
|
inspectSendBuffer(): ReadonlyArray<OpaqueTransportMessage>;
|
|
157
159
|
}
|
|
@@ -341,6 +343,17 @@ declare abstract class Transport<ConnType extends Connection> {
|
|
|
341
343
|
*/
|
|
342
344
|
protected onConnect(conn: ConnType, session: Session<ConnType>, isTransparentReconnect: boolean): void;
|
|
343
345
|
protected createSession(to: TransportClientId, conn?: ConnType, propagationCtx?: PropagationContext): Session<ConnType>;
|
|
346
|
+
protected createNewSession({ to, conn, sessionId, propagationCtx, }: {
|
|
347
|
+
to: TransportClientId;
|
|
348
|
+
conn: ConnType;
|
|
349
|
+
sessionId: string;
|
|
350
|
+
propagationCtx?: PropagationContext;
|
|
351
|
+
}): Session<ConnType>;
|
|
352
|
+
protected getExistingSession({ to, sessionId, nextExpectedSeq, }: {
|
|
353
|
+
to: TransportClientId;
|
|
354
|
+
sessionId: string;
|
|
355
|
+
nextExpectedSeq: number;
|
|
356
|
+
}): false | Session<ConnType>;
|
|
344
357
|
protected getOrCreateSession({ to, conn, handshakingConn, sessionId, propagationCtx, }: {
|
|
345
358
|
to: TransportClientId;
|
|
346
359
|
conn?: ConnType;
|
package/dist/router/index.cjs
CHANGED
|
@@ -1104,6 +1104,21 @@ var ControlMessageHandshakeRequestSchema = import_typebox3.Type.Object({
|
|
|
1104
1104
|
type: import_typebox3.Type.Literal("HANDSHAKE_REQ"),
|
|
1105
1105
|
protocolVersion: import_typebox3.Type.String(),
|
|
1106
1106
|
sessionId: import_typebox3.Type.String(),
|
|
1107
|
+
/**
|
|
1108
|
+
* Specifies what the server's expected session state (from the pov of the client). This can be
|
|
1109
|
+
* used by the server to know whether this is a new or a reestablished connection, and whether it
|
|
1110
|
+
* is compatible with what it already has.
|
|
1111
|
+
*/
|
|
1112
|
+
expectedSessionState: import_typebox3.Type.Optional(
|
|
1113
|
+
import_typebox3.Type.Object({
|
|
1114
|
+
/**
|
|
1115
|
+
* reconnect is set to true if the client explicitly wants to reestablish an existing
|
|
1116
|
+
* connection.
|
|
1117
|
+
*/
|
|
1118
|
+
reconnect: import_typebox3.Type.Boolean(),
|
|
1119
|
+
nextExpectedSeq: import_typebox3.Type.Integer()
|
|
1120
|
+
})
|
|
1121
|
+
),
|
|
1107
1122
|
metadata: import_typebox3.Type.Optional(import_typebox3.Type.Unknown())
|
|
1108
1123
|
});
|
|
1109
1124
|
var ControlMessageHandshakeResponseSchema = import_typebox3.Type.Object({
|
|
@@ -1172,7 +1187,7 @@ function Err(error) {
|
|
|
1172
1187
|
var import_api = require("@opentelemetry/api");
|
|
1173
1188
|
|
|
1174
1189
|
// package.json
|
|
1175
|
-
var version = "0.23.
|
|
1190
|
+
var version = "0.23.14";
|
|
1176
1191
|
|
|
1177
1192
|
// tracing/index.ts
|
|
1178
1193
|
function getPropagationContext(ctx) {
|