@whitewall/blip-sdk 0.0.175 → 0.0.177

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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/sender/http/httpsender.js +26 -7
  3. package/dist/cjs/sender/http/httpsender.js.map +1 -1
  4. package/dist/cjs/sender/security.js +6 -0
  5. package/dist/cjs/sender/security.js.map +1 -1
  6. package/dist/cjs/sender/sender.js +4 -2
  7. package/dist/cjs/sender/sender.js.map +1 -1
  8. package/dist/cjs/sender/sessionnegotiator.js +11 -4
  9. package/dist/cjs/sender/sessionnegotiator.js.map +1 -1
  10. package/dist/cjs/sender/tcp/tcpsender.js +60 -15
  11. package/dist/cjs/sender/tcp/tcpsender.js.map +1 -1
  12. package/dist/cjs/sender/transporttls.js +16 -0
  13. package/dist/cjs/sender/transporttls.js.map +1 -0
  14. package/dist/cjs/sender/websocket/websocketsender.js +2 -0
  15. package/dist/cjs/sender/websocket/websocketsender.js.map +1 -1
  16. package/dist/esm/sender/http/httpsender.js +26 -7
  17. package/dist/esm/sender/http/httpsender.js.map +1 -1
  18. package/dist/esm/sender/security.js +5 -1
  19. package/dist/esm/sender/security.js.map +1 -1
  20. package/dist/esm/sender/sender.js +4 -2
  21. package/dist/esm/sender/sender.js.map +1 -1
  22. package/dist/esm/sender/sessionnegotiator.js +11 -4
  23. package/dist/esm/sender/sessionnegotiator.js.map +1 -1
  24. package/dist/esm/sender/tcp/tcpsender.js +60 -15
  25. package/dist/esm/sender/tcp/tcpsender.js.map +1 -1
  26. package/dist/esm/sender/transporttls.js +13 -0
  27. package/dist/esm/sender/transporttls.js.map +1 -0
  28. package/dist/esm/sender/websocket/websocketsender.js +2 -0
  29. package/dist/esm/sender/websocket/websocketsender.js.map +1 -1
  30. package/dist/types/sender/http/httpsender.d.ts +4 -3
  31. package/dist/types/sender/http/httpsender.d.ts.map +1 -1
  32. package/dist/types/sender/security.d.ts +12 -1
  33. package/dist/types/sender/security.d.ts.map +1 -1
  34. package/dist/types/sender/sender.d.ts +2 -2
  35. package/dist/types/sender/sender.d.ts.map +1 -1
  36. package/dist/types/sender/sessionnegotiator.d.ts +1 -0
  37. package/dist/types/sender/sessionnegotiator.d.ts.map +1 -1
  38. package/dist/types/sender/tcp/tcpsender.d.ts.map +1 -1
  39. package/dist/types/sender/transporttls.d.ts +13 -0
  40. package/dist/types/sender/transporttls.d.ts.map +1 -0
  41. package/dist/types/sender/websocket/websocketsender.d.ts +2 -1
  42. package/dist/types/sender/websocket/websocketsender.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/sender/http/httpsender.ts +34 -9
  45. package/src/sender/security.ts +21 -0
  46. package/src/sender/sender.ts +9 -7
  47. package/src/sender/sessionnegotiator.ts +19 -5
  48. package/src/sender/tcp/tcpsender.ts +72 -19
  49. package/src/sender/transporttls.ts +16 -0
  50. package/src/sender/websocket/websocketsender.ts +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sessionnegotiator.js","sourceRoot":"","sources":["../../../src/sender/sessionnegotiator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionnegotiator.js","sourceRoot":"","sources":["../../../src/sender/sessionnegotiator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
+ import { logger } from "../../utils/logger.js";
1
2
  import { BlipError } from "../bliperror.js";
2
3
  import { RetryableError } from "../retryableerror.js";
3
4
  import { ConnectionSender, OpenConnectionSender } from "../sender.js";
4
5
  import { SessionNegotiator } from "../sessionnegotiator.js";
5
6
  import { EnvelopeThrottler } from "../throttler.js";
7
+ import { buildTlsConnectOptions } from "../transporttls.js";
6
8
  import { tryParseJSON } from "./json-parser.js";
7
9
  /**
8
10
  * @remarks
@@ -16,13 +18,21 @@ export class TCPSender extends OpenConnectionSender {
16
18
  constructor(options) {
17
19
  super(options);
18
20
  const prefix = options.tenantId ? `${options.tenantId}.` : '';
19
- this.connectionHandle = new TCPHandle(`${prefix}tcp.${this.domain}`, 443, (socket) => {
21
+ const host = `${prefix}tcp.${this.domain}`;
22
+ const auth = options.authentication;
23
+ const tlsOptions = auth.scheme === 'transport' ? { ...buildTlsConnectOptions(auth), servername: host } : null;
24
+ this.connectionHandle = new TCPHandle(host, 443, () => {
20
25
  this.sessionNegotiator = new SessionNegotiator(this, (session) => {
21
- socket.write(JSON.stringify(session));
26
+ this.connectionHandle
27
+ .get()
28
+ .then((s) => s.write(JSON.stringify(session)))
29
+ .catch((err) => logger.warn('TCPSender', 'Failed to write session frame', err));
22
30
  });
31
+ const upgradeToTls = tlsOptions ? () => this.connectionHandle.upgradeToTls(tlsOptions) : undefined;
23
32
  return this.sessionNegotiator.negotiate({
24
33
  node: options.node,
25
- authentication: options.authentication,
34
+ authentication: auth,
35
+ upgradeToTls,
26
36
  });
27
37
  }, () => this.envelopeResolver.rejectPendingEnvelopes('Connection was closed'), (envelope) => {
28
38
  if (this.sessionNegotiator?.negotiating) {
@@ -88,8 +98,11 @@ class TCPHandle {
88
98
  currentSocketPromise = null;
89
99
  closing = false;
90
100
  connectionAttempts = 0;
101
+ buffer = Buffer.alloc(0);
102
+ onMessage;
91
103
  constructor(host, port, onConnected, onClose, onMessage) {
92
- this.currentSocketPromise = this.connect(host, port, onConnected, onClose, onMessage);
104
+ this.onMessage = onMessage;
105
+ this.currentSocketPromise = this.connect(host, port, onConnected, onClose);
93
106
  }
94
107
  get() {
95
108
  if (!this.currentSocketPromise) {
@@ -104,10 +117,43 @@ class TCPHandle {
104
117
  current.end().removeAllListeners().destroySoon();
105
118
  }
106
119
  }
107
- async connect(host, port, onConnected, onClose, onMessage) {
120
+ async upgradeToTls(options) {
121
+ if (!this.currentSocketPromise) {
122
+ throw new Error('Cannot upgrade: no active socket.');
123
+ }
124
+ const plain = await this.currentSocketPromise;
125
+ plain.removeAllListeners('data');
126
+ this.buffer = Buffer.alloc(0);
127
+ const { connect: tlsConnect } = await import('node:tls');
128
+ const secured = tlsConnect({ ...options, socket: plain });
129
+ await new Promise((resolve, reject) => {
130
+ const onError = (err) => {
131
+ secured.off('secureConnect', onConnect);
132
+ reject(err);
133
+ };
134
+ const onConnect = () => {
135
+ secured.off('error', onError);
136
+ resolve();
137
+ };
138
+ secured.once('secureConnect', onConnect);
139
+ secured.once('error', onError);
140
+ });
141
+ this.attachDataListener(secured);
142
+ this.currentSocketPromise = Promise.resolve(secured);
143
+ }
144
+ attachDataListener(socket) {
145
+ socket.on('data', (chunk) => {
146
+ const result = tryParseJSON(this.buffer.length === 0 ? chunk : Buffer.concat([this.buffer, chunk]));
147
+ this.buffer = result.remainingBuffer;
148
+ for (const parsed of result.parsedObjects) {
149
+ this.onMessage(parsed);
150
+ }
151
+ });
152
+ }
153
+ async connect(host, port, onConnected, onClose) {
108
154
  const { connect } = await import('node:net');
109
155
  const socket = connect({ host, port }).setKeepAlive(true);
110
- let buffer = Buffer.alloc(0);
156
+ this.buffer = Buffer.alloc(0);
111
157
  await new Promise((resolve) => {
112
158
  socket.once('connect', () => {
113
159
  resolve();
@@ -118,26 +164,25 @@ class TCPHandle {
118
164
  }
119
165
  });
120
166
  socket.once('close', () => {
167
+ socket.removeAllListeners('data');
121
168
  if (!this.closing) {
122
169
  onClose();
123
170
  this.connectionAttempts++;
124
171
  if (this.connectionAttempts < 3) {
125
- this.currentSocketPromise = this.connect(host, port, onConnected, onClose, onMessage);
172
+ this.currentSocketPromise = this.connect(host, port, onConnected, onClose);
126
173
  }
127
174
  else {
128
175
  throw new Error('Failed to connect/reconnect to TCP socket');
129
176
  }
130
177
  }
131
178
  });
132
- socket.on('data', (chunk) => {
133
- const result = tryParseJSON(buffer.length === 0 ? chunk : Buffer.concat([buffer, chunk]));
134
- buffer = result.remainingBuffer;
135
- for (const parsed of result.parsedObjects) {
136
- onMessage(parsed);
137
- }
138
- });
179
+ this.attachDataListener(socket);
139
180
  });
140
- await onConnected(socket);
181
+ // sendSession callbacks read currentSocketPromise via .get(); resolve it
182
+ // before onConnected runs so negotiate() can write the 'new' session frame
183
+ // (otherwise we deadlock waiting on the outer connect() promise).
184
+ this.currentSocketPromise = Promise.resolve(socket);
185
+ await onConnected();
141
186
  this.connectionAttempts = 0;
142
187
  return socket;
143
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tcpsender.js","sourceRoot":"","sources":["../../../../src/sender/tcp/tcpsender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tcpsender.js","sourceRoot":"","sources":["../../../../src/sender/tcp/tcpsender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export function buildTlsConnectOptions(auth) {
2
+ const toBuf = (v) => (typeof v === 'string' ? v : Buffer.from(v));
3
+ const toBufOrArray = (v) => Array.isArray(v) ? v.map(toBuf) : v !== undefined ? toBuf(v) : undefined;
4
+ return {
5
+ pfx: auth.pfx ? [{ buf: Buffer.from(auth.pfx), passphrase: auth.passphrase }] : undefined,
6
+ cert: auth.cert !== undefined ? toBuf(auth.cert) : undefined,
7
+ key: auth.key !== undefined ? toBuf(auth.key) : undefined,
8
+ ca: toBufOrArray(auth.ca),
9
+ passphrase: auth.passphrase,
10
+ rejectUnauthorized: auth.rejectUnauthorized ?? true,
11
+ };
12
+ }
13
+ //# sourceMappingURL=transporttls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transporttls.js","sourceRoot":"","sources":["../../../src/sender/transporttls.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAChE,MAAM,KAAK,GAAG,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACtF,MAAM,YAAY,GAAG,CAAC,CAAgC,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE5E,OAAO;QACH,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACzF,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5D,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;KACtD,CAAA;AACL,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { logger } from "../../utils/logger.js";
2
2
  import { BlipError } from "../bliperror.js";
3
3
  import { RetryableError } from "../retryableerror.js";
4
+ import { assertNonTransportAuth } from "../security.js";
4
5
  import { ConnectionSender, OpenConnectionSender } from "../sender.js";
5
6
  import { SessionNegotiator } from "../sessionnegotiator.js";
6
7
  import { EnvelopeThrottler } from "../throttler.js";
@@ -9,6 +10,7 @@ export class WebSocketSender extends OpenConnectionSender {
9
10
  connectionHandle;
10
11
  constructor(options) {
11
12
  super(options);
13
+ assertNonTransportAuth(options.authentication, 'WebSocketSender');
12
14
  const prefix = options.tenantId ? `${options.tenantId}.` : '';
13
15
  this.connectionHandle = new WebSocketHandle(`wss://${prefix}ws.${this.domain}`, (webSocket) => {
14
16
  this.sessionNegotiator = new SessionNegotiator(this, (session) => {
@@ -1 +1 @@
1
- {"version":3,"file":"websocketsender.js","sourceRoot":"","sources":["../../../../src/sender/websocket/websocketsender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocketsender.js","sourceRoot":"","sources":["../../../../src/sender/websocket/websocketsender.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import type { Command, CommandMethods, Message, MessageTypes } from '../../types/index.ts';
1
+ import { type Command, type CommandMethods, type Message, type MessageTypes } from '../../types/index.ts';
2
+ import { type NonTransportAuthentication } from '../security.ts';
2
3
  import { ConnectionSender, type ConnectionSenderConstructor, type Sender } from '../sender.ts';
3
4
  export declare class HttpSender extends ConnectionSender implements Sender {
4
5
  private readonly baseurl;
5
- private readonly token;
6
+ private readonly authHeaders;
6
7
  private readonly throttler;
7
- constructor(options: ConstructorParameters<ConnectionSenderConstructor>[0]);
8
+ constructor(options: ConstructorParameters<ConnectionSenderConstructor<HttpSender, NonTransportAuthentication>>[0]);
8
9
  sendMessage<Type extends MessageTypes>(message: Message<Type>): Promise<void>;
9
10
  sendCommand(command: Command<CommandMethods>): Promise<unknown>;
10
11
  static login: {
@@ -1 +1 @@
1
- {"version":3,"file":"httpsender.d.ts","sourceRoot":"","sources":["../../../../src/sender/http/httpsender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAA0B,MAAM,sBAAsB,CAAA;AAGlH,OAAO,EAAE,gBAAgB,EAAE,KAAK,2BAA2B,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAG9F,qBAAa,UAAW,SAAQ,gBAAiB,YAAW,MAAM;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAExC,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAenE,WAAW,CAAC,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7E,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBtE,OAAc,KAAK;;;MAAqC;YAE1C,KAAK;YAWL,oBAAoB;CAwBrC"}
1
+ {"version":3,"file":"httpsender.d.ts","sourceRoot":"","sources":["../../../../src/sender/http/httpsender.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,YAAY,EAGpB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAA0B,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,KAAK,2BAA2B,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAG9F,qBAAa,UAAW,SAAQ,gBAAiB,YAAW,MAAM;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAGhD,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IA+BnG,WAAW,CAAC,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7E,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBtE,OAAc,KAAK;;;MAAqC;YAE1C,KAAK;YAWL,oBAAoB;CAwBrC"}
@@ -18,5 +18,16 @@ export interface PlainAuthentication {
18
18
  scheme: 'plain';
19
19
  password: string;
20
20
  }
21
- export type Authentication = GuestAuthentication | KeyAuthentication | ExternalAuthentication | PlainAuthentication | TokenAuthentication;
21
+ export interface TransportAuthentication {
22
+ scheme: 'transport';
23
+ pfx?: Uint8Array;
24
+ cert?: Uint8Array | string;
25
+ key?: Uint8Array | string;
26
+ ca?: Uint8Array | string | Array<Uint8Array | string>;
27
+ passphrase?: string;
28
+ rejectUnauthorized?: boolean;
29
+ }
30
+ export type Authentication = GuestAuthentication | KeyAuthentication | ExternalAuthentication | PlainAuthentication | TokenAuthentication | TransportAuthentication;
31
+ export type NonTransportAuthentication = Exclude<Authentication, TransportAuthentication>;
32
+ export declare function assertNonTransportAuth(auth: unknown, senderName: string): void;
22
33
  //# sourceMappingURL=security.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/sender/security.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAGD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,cAAc,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,CAAA"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/sender/security.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAGD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAC1B,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IACzB,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAA;IACrD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,MAAM,cAAc,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,CAAA;AAE7B,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAA;AAEzF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAM9E"}
@@ -7,9 +7,9 @@ export interface Sender {
7
7
  sendMessage<Type extends MessageTypes>(message: Message<Type>): Promise<void>;
8
8
  sendCommand(command: Command<CommandMethods>): Promise<unknown>;
9
9
  }
10
- export type ConnectionSenderConstructor<TSender = Sender> = new (options: {
10
+ export type ConnectionSenderConstructor<TSender = Sender, TAuth extends Authentication = Authentication> = new (options: {
11
11
  node: NodeLike;
12
- authentication: Authentication;
12
+ authentication: TAuth;
13
13
  tenantId?: string;
14
14
  }) => TSender;
15
15
  export declare class ConnectionSender {
@@ -1 +1 @@
1
- {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../../src/sender/sender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../../src/sender/sender.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export declare class SessionNegotiator {
20
20
  negotiate(options: {
21
21
  node: NodeLike;
22
22
  authentication: Authentication;
23
+ upgradeToTls?: () => Promise<void>;
23
24
  }): Promise<void>;
24
25
  handleEnvelope(envelope: Envelope): void;
25
26
  ensurePresence(currentCommandUri?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sessionnegotiator.d.ts","sourceRoot":"","sources":["../../../src/sender/sessionnegotiator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,EAAE,IAAI,CAAA;IAChB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACnC,CAAA;AAED,qBAAa,iBAAiB;IAQtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IARzB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAQ;IAC3C,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAE/C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,sBAAsB,CAAyE;gBAGlF,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAG/C,SAAS,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwE3F,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAO3B,cAAc,CAAC,iBAAiB,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC3D,MAAM;IAWb,IAAW,WAAW,IAAI,OAAO,CAEhC;YAEa,sBAAsB;CAWvC"}
1
+ {"version":3,"file":"sessionnegotiator.d.ts","sourceRoot":"","sources":["../../../src/sender/sessionnegotiator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,EAAE,IAAI,CAAA;IAChB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACnC,CAAA;AAED,qBAAa,iBAAiB;IAQtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IARzB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAQ;IAC3C,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAO;IAE/C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,sBAAsB,CAAyE;gBAGlF,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAG/C,SAAS,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,QAAQ,CAAA;QACd,cAAc,EAAE,cAAc,CAAA;QAC9B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KACrC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFV,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAO3B,cAAc,CAAC,iBAAiB,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC3D,MAAM;IAWb,IAAW,WAAW,IAAI,OAAO,CAEhC;YAEa,sBAAsB;CAWvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tcpsender.d.ts","sourceRoot":"","sources":["../../../../src/sender/tcp/tcpsender.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,OAAO,EACP,cAAc,EAGd,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACzB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAoB,KAAK,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAKvG;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,oBAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;gBAE1C,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA0B7D,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,WAAW,CAAC,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASnF,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BzD,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,KAAK;IAMlB,OAAc,KAAK;;;MAAoC;YAEzC,eAAe;CAahC"}
1
+ {"version":3,"file":"tcpsender.d.ts","sourceRoot":"","sources":["../../../../src/sender/tcp/tcpsender.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,OAAO,EACP,cAAc,EAGd,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACzB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAoB,KAAK,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAMvG;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,oBAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;gBAE1C,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAoC7D,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,WAAW,CAAC,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASnF,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BzD,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,KAAK;IAMlB,OAAc,KAAK;;;MAAoC;YAEzC,eAAe;CAahC"}
@@ -0,0 +1,13 @@
1
+ import type { TransportAuthentication } from './security.ts';
2
+ export declare function buildTlsConnectOptions(auth: TransportAuthentication): {
3
+ pfx: {
4
+ buf: Buffer<ArrayBuffer>;
5
+ passphrase: string | undefined;
6
+ }[] | undefined;
7
+ cert: string | Buffer<ArrayBuffer> | undefined;
8
+ key: string | Buffer<ArrayBuffer> | undefined;
9
+ ca: string | Buffer<ArrayBuffer> | (string | Buffer<ArrayBuffer>)[] | undefined;
10
+ passphrase: string | undefined;
11
+ rejectUnauthorized: boolean;
12
+ };
13
+ //# sourceMappingURL=transporttls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transporttls.d.ts","sourceRoot":"","sources":["../../../src/sender/transporttls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAE5D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB;;;;;;;;;;EAanE"}
@@ -1,9 +1,10 @@
1
1
  import type { Command, CommandMethods, Message, MessageTypes, Notification, UnknownCommandResponse } from '../../types/index.ts';
2
+ import { type NonTransportAuthentication } from '../security.ts';
2
3
  import { type ConnectionSenderConstructor, OpenConnectionSender } from '../sender.ts';
3
4
  export declare class WebSocketSender extends OpenConnectionSender {
4
5
  private readonly throttler;
5
6
  private readonly connectionHandle;
6
- constructor(options: ConstructorParameters<ConnectionSenderConstructor>[0]);
7
+ constructor(options: ConstructorParameters<ConnectionSenderConstructor<WebSocketSender, NonTransportAuthentication>>[0]);
7
8
  sendMessage<Type extends MessageTypes>(message: Message<Type>): Promise<void>;
8
9
  sendCommand(command: Command<CommandMethods>): Promise<unknown>;
9
10
  sendNotification(notification: Notification): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"websocketsender.d.ts","sourceRoot":"","sources":["../../../../src/sender/websocket/websocketsender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,cAAc,EAGd,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACzB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAoB,KAAK,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAIvG,qBAAa,eAAgB,SAAQ,oBAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAEhD,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA0B7D,WAAW,CAAC,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASnF,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBzD,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,KAAK;IAMlB,OAAc,KAAK;;;MAA0C;YAE/C,eAAe;CAehC"}
1
+ {"version":3,"file":"websocketsender.d.ts","sourceRoot":"","sources":["../../../../src/sender/websocket/websocketsender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,cAAc,EAGd,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACzB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAA0B,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAoB,KAAK,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAIvG,qBAAa,eAAgB,SAAQ,oBAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAGxD,OAAO,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IA6BlG,WAAW,CAAC,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASnF,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBzD,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,KAAK;IAMlB,OAAc,KAAK;;;MAA0C;YAE/C,eAAe;CAehC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitewall/blip-sdk",
3
- "version": "0.0.175",
3
+ "version": "0.0.177",
4
4
  "description": "Blip API wrapper",
5
5
  "exports": {
6
6
  "types": "./dist/types/index.d.ts",
@@ -1,26 +1,51 @@
1
- import type { Command, CommandMethods, Message, MessageTypes, UnknownCommandResponse } from '../../types/index.ts'
1
+ import {
2
+ type Command,
3
+ type CommandMethods,
4
+ type Message,
5
+ type MessageTypes,
6
+ Node,
7
+ type UnknownCommandResponse,
8
+ } from '../../types/index.ts'
2
9
  import { BlipError } from '../bliperror.ts'
3
10
  import { RetryableError } from '../retryableerror.ts'
11
+ import { assertNonTransportAuth, type NonTransportAuthentication } from '../security.ts'
4
12
  import { ConnectionSender, type ConnectionSenderConstructor, type Sender } from '../sender.ts'
5
13
  import { EnvelopeThrottler } from '../throttler.ts'
6
14
 
7
15
  export class HttpSender extends ConnectionSender implements Sender {
8
16
  private readonly baseurl: string
9
- private readonly token: string
17
+ private readonly authHeaders: Record<string, string>
10
18
  private readonly throttler = new EnvelopeThrottler()
11
19
 
12
- constructor(options: ConstructorParameters<ConnectionSenderConstructor>[0]) {
20
+ constructor(
21
+ options: ConstructorParameters<ConnectionSenderConstructor<HttpSender, NonTransportAuthentication>>[0],
22
+ ) {
13
23
  super(options)
24
+ assertNonTransportAuth(options.authentication, 'HttpSender')
14
25
 
15
26
  const prefix = options.tenantId ? `${options.tenantId}.` : ''
16
27
  this.baseurl = `https://${prefix}http.${this.domain}`
17
28
 
18
- if (options.authentication.scheme === 'key') {
19
- this.token = HttpSender.createToken(options.node, options.authentication.key)
20
- } else if (options.authentication.scheme === 'token') {
21
- this.token = options.authentication.token
29
+ const auth = options.authentication
30
+ const identity = Node.from(options.node).toIdentity()
31
+
32
+ if (auth.scheme === 'key') {
33
+ this.authHeaders = { Authorization: `Key ${HttpSender.createToken(options.node, auth.key)}` }
34
+ } else if (auth.scheme === 'token') {
35
+ this.authHeaders = { Authorization: `Key ${auth.token}` }
36
+ } else if (auth.scheme === 'external') {
37
+ this.authHeaders = {
38
+ Authorization: `Bearer ${auth.token}`,
39
+ 'http-session-authentication-external-issuer': auth.issuer,
40
+ 'http-session-identity': identity,
41
+ }
42
+ } else if (auth.scheme === 'plain') {
43
+ const basicAuth = `${identity}:${auth.password}`
44
+ this.authHeaders = { Authorization: `Basic ${Buffer.from(basicAuth).toString('base64')}` }
45
+ } else if (auth.scheme === 'guest') {
46
+ this.authHeaders = {}
22
47
  } else {
23
- throw new Error('HttpSender only supports key or token authentication')
48
+ throw new Error('Unsupported authentication scheme')
24
49
  }
25
50
  }
26
51
 
@@ -62,7 +87,7 @@ export class HttpSender extends ConnectionSender implements Sender {
62
87
  method: 'POST',
63
88
  headers: {
64
89
  'Content-Type': 'application/json',
65
- Authorization: `Key ${this.token}`,
90
+ ...this.authHeaders,
66
91
  },
67
92
  body,
68
93
  })
@@ -25,9 +25,30 @@ export interface PlainAuthentication {
25
25
  password: string
26
26
  }
27
27
 
28
+ export interface TransportAuthentication {
29
+ scheme: 'transport'
30
+ pfx?: Uint8Array
31
+ cert?: Uint8Array | string
32
+ key?: Uint8Array | string
33
+ ca?: Uint8Array | string | Array<Uint8Array | string>
34
+ passphrase?: string
35
+ rejectUnauthorized?: boolean
36
+ }
37
+
28
38
  export type Authentication =
29
39
  | GuestAuthentication
30
40
  | KeyAuthentication
31
41
  | ExternalAuthentication
32
42
  | PlainAuthentication
33
43
  | TokenAuthentication
44
+ | TransportAuthentication
45
+
46
+ export type NonTransportAuthentication = Exclude<Authentication, TransportAuthentication>
47
+
48
+ export function assertNonTransportAuth(auth: unknown, senderName: string): void {
49
+ if ((auth as { scheme?: string } | null | undefined)?.scheme === 'transport') {
50
+ throw new Error(
51
+ `${senderName} does not support the 'transport' scheme: TLS terminates before any application-layer negotiation, so a client certificate cannot be reliably delivered upstream. Use TCPSender.`,
52
+ )
53
+ }
54
+ }
@@ -20,17 +20,20 @@ export interface Sender {
20
20
  sendCommand(command: Command<CommandMethods>): Promise<unknown>
21
21
  }
22
22
 
23
- export type ConnectionSenderConstructor<TSender = Sender> = new (options: {
24
- node: NodeLike
25
- authentication: Authentication
26
- tenantId?: string
27
- }) => TSender
23
+ export type ConnectionSenderConstructor<
24
+ TSender = Sender,
25
+ TAuth extends Authentication = Authentication,
26
+ > = new (options: { node: NodeLike; authentication: TAuth; tenantId?: string }) => TSender
27
+
28
+ const ROOT_AUTHORITIES: ReadonlyArray<BlipDomain> = ['msging.net', 'blip.ai', '0mn.io']
28
29
 
29
30
  export class ConnectionSender {
30
31
  private readonly _domain: BlipDomain
31
32
 
32
33
  constructor(options: ConstructorParameters<ConnectionSenderConstructor>[0]) {
33
- this._domain = (Node.from(options.node).domain as BlipDomain) ?? 'msging.net'
34
+ const nodeDomain = Node.from(options.node).domain ?? 'msging.net'
35
+ this._domain =
36
+ ROOT_AUTHORITIES.find((root) => nodeDomain === root || nodeDomain.endsWith(`.${root}`)) ?? 'msging.net'
34
37
  }
35
38
 
36
39
  public get domain() {
@@ -74,7 +77,6 @@ export class ConnectionSender {
74
77
  tenantId = tenantIdOrUndefined
75
78
  }
76
79
 
77
- // biome-ignore lint/complexity/noThisInStatic: fair use-case
78
80
  return new this({
79
81
  node,
80
82
  authentication: {
@@ -23,7 +23,11 @@ export class SessionNegotiator {
23
23
  private readonly sendSession: (session: Session) => void,
24
24
  ) {}
25
25
 
26
- public async negotiate(options: { node: NodeLike; authentication: Authentication }): Promise<void> {
26
+ public async negotiate(options: {
27
+ node: NodeLike
28
+ authentication: Authentication
29
+ upgradeToTls?: () => Promise<void>
30
+ }): Promise<void> {
27
31
  const timeout = setTimeout(async () => {
28
32
  if (this.negotiating) {
29
33
  await this.sender.close()
@@ -37,19 +41,27 @@ export class SessionNegotiator {
37
41
  } as Session)
38
42
 
39
43
  const negotiation = await this.waitForSessionResponse()
44
+ const wantsTls = options.authentication.scheme === 'transport' && !!options.upgradeToTls
45
+
40
46
  let authenticating: Session
41
47
  if (negotiation.state === 'negotiating') {
42
- if (!negotiation.encryptionOptions?.includes('none')) {
43
- throw new Error('Unsupported encryption options')
48
+ const desiredEncryption = wantsTls ? 'tls' : 'none'
49
+ if (!negotiation.encryptionOptions?.includes(desiredEncryption)) {
50
+ throw new Error(`Unsupported encryption options (wanted '${desiredEncryption}')`)
44
51
  }
45
52
 
46
53
  this.sendSession({
47
54
  id: negotiation.id,
48
55
  state: 'negotiating',
49
- encryption: 'none',
56
+ encryption: desiredEncryption,
50
57
  compression: negotiation.compressionOptions?.at(-1),
51
58
  })
52
59
  await this.waitForSessionResponse()
60
+
61
+ if (wantsTls) {
62
+ await options.upgradeToTls!()
63
+ }
64
+
53
65
  authenticating = await this.waitForSessionResponse()
54
66
  } else if (negotiation.state === 'authenticating') {
55
67
  authenticating = negotiation
@@ -71,7 +83,9 @@ export class SessionNegotiator {
71
83
  )
72
84
  }
73
85
 
74
- const { scheme, ...authenticationOptions } = options.authentication
86
+ const { scheme, ...rest } = options.authentication
87
+ // 'transport' authenticates via mTLS; LIME spec requires an empty payload here.
88
+ const authenticationOptions = scheme === 'transport' ? {} : rest
75
89
  this.sendSession({
76
90
  id: authenticating.id,
77
91
  from: options.node,