@xwiki/cristal-realtime 1.2.0 → 1.4.0-1

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 (2) hide show
  1. package/dist/index.cjs +132 -124
  2. package/package.json +4 -4
package/dist/index.cjs CHANGED
@@ -258,9 +258,9 @@ var require_async_lock = __commonJS({
258
258
  }
259
259
  });
260
260
 
261
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js
261
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/constants.js
262
262
  var require_constants = __commonJS({
263
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js"(exports3, module3) {
263
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/constants.js"(exports3, module3) {
264
264
  "use strict";
265
265
  var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
266
266
  var hasBlob = typeof Blob !== "undefined";
@@ -281,9 +281,9 @@ var require_constants = __commonJS({
281
281
  }
282
282
  });
283
283
 
284
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js
284
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/buffer-util.js
285
285
  var require_buffer_util = __commonJS({
286
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js"(exports3, module3) {
286
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/buffer-util.js"(exports3, module3) {
287
287
  "use strict";
288
288
  var { EMPTY_BUFFER } = require_constants();
289
289
  var FastBuffer = Buffer[Symbol.species];
@@ -356,9 +356,9 @@ var require_buffer_util = __commonJS({
356
356
  }
357
357
  });
358
358
 
359
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js
359
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/limiter.js
360
360
  var require_limiter = __commonJS({
361
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js"(exports3, module3) {
361
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/limiter.js"(exports3, module3) {
362
362
  "use strict";
363
363
  var kDone = /* @__PURE__ */ Symbol("kDone");
364
364
  var kRun = /* @__PURE__ */ Symbol("kRun");
@@ -406,9 +406,9 @@ var require_limiter = __commonJS({
406
406
  }
407
407
  });
408
408
 
409
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js
409
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/permessage-deflate.js
410
410
  var require_permessage_deflate = __commonJS({
411
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js"(exports3, module3) {
411
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/permessage-deflate.js"(exports3, module3) {
412
412
  "use strict";
413
413
  var zlib = require("zlib");
414
414
  var bufferUtil = require_buffer_util();
@@ -422,7 +422,7 @@ var require_permessage_deflate = __commonJS({
422
422
  var kBuffers = /* @__PURE__ */ Symbol("buffers");
423
423
  var kError = /* @__PURE__ */ Symbol("error");
424
424
  var zlibLimiter;
425
- var PerMessageDeflate = class {
425
+ var PerMessageDeflate2 = class {
426
426
  /**
427
427
  * Creates a PerMessageDeflate instance.
428
428
  *
@@ -433,6 +433,9 @@ var require_permessage_deflate = __commonJS({
433
433
  * acknowledge disabling of client context takeover
434
434
  * @param {Number} [options.concurrencyLimit=10] The number of concurrent
435
435
  * calls to zlib
436
+ * @param {Boolean} [options.isServer=false] Create the instance in either
437
+ * server or client mode
438
+ * @param {Number} [options.maxPayload=0] The maximum allowed message length
436
439
  * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the
437
440
  * use of a custom server window size
438
441
  * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept
@@ -443,15 +446,12 @@ var require_permessage_deflate = __commonJS({
443
446
  * deflate
444
447
  * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on
445
448
  * inflate
446
- * @param {Boolean} [isServer=false] Create the instance in either server or
447
- * client mode
448
- * @param {Number} [maxPayload=0] The maximum allowed message length
449
449
  */
450
- constructor(options, isServer, maxPayload) {
451
- this._maxPayload = maxPayload | 0;
450
+ constructor(options) {
452
451
  this._options = options || {};
453
452
  this._threshold = this._options.threshold !== void 0 ? this._options.threshold : 1024;
454
- this._isServer = !!isServer;
453
+ this._maxPayload = this._options.maxPayload | 0;
454
+ this._isServer = !!this._options.isServer;
455
455
  this._deflate = null;
456
456
  this._inflate = null;
457
457
  this.params = null;
@@ -760,7 +760,7 @@ var require_permessage_deflate = __commonJS({
760
760
  });
761
761
  }
762
762
  };
763
- module3.exports = PerMessageDeflate;
763
+ module3.exports = PerMessageDeflate2;
764
764
  function deflateOnData(chunk) {
765
765
  this[kBuffers].push(chunk);
766
766
  this[kTotalLength] += chunk.length;
@@ -789,9 +789,9 @@ var require_permessage_deflate = __commonJS({
789
789
  }
790
790
  });
791
791
 
792
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js
792
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/validation.js
793
793
  var require_validation = __commonJS({
794
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js"(exports3, module3) {
794
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/validation.js"(exports3, module3) {
795
795
  "use strict";
796
796
  var { isUtf8 } = require("buffer");
797
797
  var { hasBlob } = require_constants();
@@ -990,12 +990,12 @@ var require_validation = __commonJS({
990
990
  }
991
991
  });
992
992
 
993
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js
993
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/receiver.js
994
994
  var require_receiver = __commonJS({
995
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js"(exports3, module3) {
995
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/receiver.js"(exports3, module3) {
996
996
  "use strict";
997
997
  var { Writable } = require("stream");
998
- var PerMessageDeflate = require_permessage_deflate();
998
+ var PerMessageDeflate2 = require_permessage_deflate();
999
999
  var {
1000
1000
  BINARY_TYPES,
1001
1001
  EMPTY_BUFFER,
@@ -1162,7 +1162,7 @@ var require_receiver = __commonJS({
1162
1162
  return;
1163
1163
  }
1164
1164
  const compressed = (buf[0] & 64) === 64;
1165
- if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {
1165
+ if (compressed && !this._extensions[PerMessageDeflate2.extensionName]) {
1166
1166
  const error = this.createError(
1167
1167
  RangeError,
1168
1168
  "RSV1 must be clear",
@@ -1406,7 +1406,7 @@ var require_receiver = __commonJS({
1406
1406
  * @private
1407
1407
  */
1408
1408
  decompress(data, cb) {
1409
- const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
1409
+ const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
1410
1410
  perMessageDeflate.decompress(data, this._fin, (err, buf) => {
1411
1411
  if (err) return cb(err);
1412
1412
  if (buf.length) {
@@ -1582,13 +1582,16 @@ var require_receiver = __commonJS({
1582
1582
  }
1583
1583
  });
1584
1584
 
1585
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js
1585
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/sender.js
1586
1586
  var require_sender = __commonJS({
1587
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js"(exports3, module3) {
1587
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/sender.js"(exports3, module3) {
1588
1588
  "use strict";
1589
1589
  var { Duplex } = require("stream");
1590
1590
  var { randomFillSync: randomFillSync2 } = require("crypto");
1591
- var PerMessageDeflate = require_permessage_deflate();
1591
+ var {
1592
+ types: { isUint8Array }
1593
+ } = require("util");
1594
+ var PerMessageDeflate2 = require_permessage_deflate();
1592
1595
  var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants();
1593
1596
  var { isBlob, isValidStatusCode } = require_validation();
1594
1597
  var { mask: applyMask, toBuffer } = require_buffer_util();
@@ -1741,8 +1744,10 @@ var require_sender = __commonJS({
1741
1744
  buf.writeUInt16BE(code, 0);
1742
1745
  if (typeof data === "string") {
1743
1746
  buf.write(data, 2);
1744
- } else {
1747
+ } else if (isUint8Array(data)) {
1745
1748
  buf.set(data, 2);
1749
+ } else {
1750
+ throw new TypeError("Second argument must be a string or a Uint8Array");
1746
1751
  }
1747
1752
  }
1748
1753
  const options = {
@@ -1872,7 +1877,7 @@ var require_sender = __commonJS({
1872
1877
  * @public
1873
1878
  */
1874
1879
  send(data, options, cb) {
1875
- const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
1880
+ const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
1876
1881
  let opcode = options.binary ? 2 : 1;
1877
1882
  let rsv1 = options.compress;
1878
1883
  let byteLength;
@@ -1996,7 +2001,7 @@ var require_sender = __commonJS({
1996
2001
  this.sendFrame(_Sender.frame(data, options), cb);
1997
2002
  return;
1998
2003
  }
1999
- const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
2004
+ const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
2000
2005
  this._bufferedBytes += options[kByteLength];
2001
2006
  this._state = DEFLATING;
2002
2007
  perMessageDeflate.compress(data, options.fin, (_, buf) => {
@@ -2070,9 +2075,9 @@ var require_sender = __commonJS({
2070
2075
  }
2071
2076
  });
2072
2077
 
2073
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js
2078
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/event-target.js
2074
2079
  var require_event_target = __commonJS({
2075
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js"(exports3, module3) {
2080
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/event-target.js"(exports3, module3) {
2076
2081
  "use strict";
2077
2082
  var { kForOnEventAttribute, kListener } = require_constants();
2078
2083
  var kCode = /* @__PURE__ */ Symbol("kCode");
@@ -2299,9 +2304,9 @@ var require_event_target = __commonJS({
2299
2304
  }
2300
2305
  });
2301
2306
 
2302
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js
2307
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/extension.js
2303
2308
  var require_extension = __commonJS({
2304
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js"(exports3, module3) {
2309
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/extension.js"(exports3, module3) {
2305
2310
  "use strict";
2306
2311
  var { tokenChars } = require_validation();
2307
2312
  function push(dest, name2, elem) {
@@ -2434,11 +2439,11 @@ var require_extension = __commonJS({
2434
2439
  return offers;
2435
2440
  }
2436
2441
  function format(extensions) {
2437
- return Object.keys(extensions).map((extension) => {
2438
- let configurations = extensions[extension];
2442
+ return Object.keys(extensions).map((extension2) => {
2443
+ let configurations = extensions[extension2];
2439
2444
  if (!Array.isArray(configurations)) configurations = [configurations];
2440
2445
  return configurations.map((params2) => {
2441
- return [extension].concat(
2446
+ return [extension2].concat(
2442
2447
  Object.keys(params2).map((k) => {
2443
2448
  let values = params2[k];
2444
2449
  if (!Array.isArray(values)) values = [values];
@@ -2452,9 +2457,9 @@ var require_extension = __commonJS({
2452
2457
  }
2453
2458
  });
2454
2459
 
2455
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js
2460
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/websocket.js
2456
2461
  var require_websocket = __commonJS({
2457
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js"(exports3, module3) {
2462
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/websocket.js"(exports3, module3) {
2458
2463
  "use strict";
2459
2464
  var EventEmitter = require("events");
2460
2465
  var https = require("https");
@@ -2464,7 +2469,7 @@ var require_websocket = __commonJS({
2464
2469
  var { randomBytes, createHash } = require("crypto");
2465
2470
  var { Duplex, Readable } = require("stream");
2466
2471
  var { URL } = require("url");
2467
- var PerMessageDeflate = require_permessage_deflate();
2472
+ var PerMessageDeflate2 = require_permessage_deflate();
2468
2473
  var Receiver2 = require_receiver();
2469
2474
  var Sender2 = require_sender();
2470
2475
  var { isBlob } = require_validation();
@@ -2672,8 +2677,8 @@ var require_websocket = __commonJS({
2672
2677
  this.emit("close", this._closeCode, this._closeMessage);
2673
2678
  return;
2674
2679
  }
2675
- if (this._extensions[PerMessageDeflate.extensionName]) {
2676
- this._extensions[PerMessageDeflate.extensionName].cleanup();
2680
+ if (this._extensions[PerMessageDeflate2.extensionName]) {
2681
+ this._extensions[PerMessageDeflate2.extensionName].cleanup();
2677
2682
  }
2678
2683
  this._receiver.removeAllListeners();
2679
2684
  this._readyState = _WebSocket.CLOSED;
@@ -2835,7 +2840,7 @@ var require_websocket = __commonJS({
2835
2840
  fin: true,
2836
2841
  ...options
2837
2842
  };
2838
- if (!this._extensions[PerMessageDeflate.extensionName]) {
2843
+ if (!this._extensions[PerMessageDeflate2.extensionName]) {
2839
2844
  opts.compress = false;
2840
2845
  }
2841
2846
  this._sender.send(data || EMPTY_BUFFER, opts, cb);
@@ -2961,7 +2966,7 @@ var require_websocket = __commonJS({
2961
2966
  } else {
2962
2967
  try {
2963
2968
  parsedUrl = new URL(address);
2964
- } catch (e) {
2969
+ } catch {
2965
2970
  throw new SyntaxError(`Invalid URL: ${address}`);
2966
2971
  }
2967
2972
  }
@@ -3009,13 +3014,13 @@ var require_websocket = __commonJS({
3009
3014
  opts.path = parsedUrl.pathname + parsedUrl.search;
3010
3015
  opts.timeout = opts.handshakeTimeout;
3011
3016
  if (opts.perMessageDeflate) {
3012
- perMessageDeflate = new PerMessageDeflate(
3013
- opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},
3014
- false,
3015
- opts.maxPayload
3016
- );
3017
+ perMessageDeflate = new PerMessageDeflate2({
3018
+ ...opts.perMessageDeflate,
3019
+ isServer: false,
3020
+ maxPayload: opts.maxPayload
3021
+ });
3017
3022
  opts.headers["Sec-WebSocket-Extensions"] = format({
3018
- [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
3023
+ [PerMessageDeflate2.extensionName]: perMessageDeflate.offer()
3019
3024
  });
3020
3025
  }
3021
3026
  if (protocols.length) {
@@ -3158,19 +3163,19 @@ var require_websocket = __commonJS({
3158
3163
  return;
3159
3164
  }
3160
3165
  const extensionNames = Object.keys(extensions);
3161
- if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate.extensionName) {
3166
+ if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate2.extensionName) {
3162
3167
  const message = "Server indicated an extension that was not requested";
3163
3168
  abortHandshake(websocket, socket, message);
3164
3169
  return;
3165
3170
  }
3166
3171
  try {
3167
- perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);
3172
+ perMessageDeflate.accept(extensions[PerMessageDeflate2.extensionName]);
3168
3173
  } catch (err) {
3169
3174
  const message = "Invalid Sec-WebSocket-Extensions header";
3170
3175
  abortHandshake(websocket, socket, message);
3171
3176
  return;
3172
3177
  }
3173
- websocket._extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
3178
+ websocket._extensions[PerMessageDeflate2.extensionName] = perMessageDeflate;
3174
3179
  }
3175
3180
  websocket.setSocket(socket, head, {
3176
3181
  allowSynchronousEvents: opts.allowSynchronousEvents,
@@ -3338,9 +3343,9 @@ var require_websocket = __commonJS({
3338
3343
  }
3339
3344
  });
3340
3345
 
3341
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js
3346
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/stream.js
3342
3347
  var require_stream = __commonJS({
3343
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js"(exports3, module3) {
3348
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/stream.js"(exports3, module3) {
3344
3349
  "use strict";
3345
3350
  var WebSocket2 = require_websocket();
3346
3351
  var { Duplex } = require("stream");
@@ -3436,9 +3441,9 @@ var require_stream = __commonJS({
3436
3441
  }
3437
3442
  });
3438
3443
 
3439
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js
3444
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/subprotocol.js
3440
3445
  var require_subprotocol = __commonJS({
3441
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js"(exports3, module3) {
3446
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/subprotocol.js"(exports3, module3) {
3442
3447
  "use strict";
3443
3448
  var { tokenChars } = require_validation();
3444
3449
  function parse(header) {
@@ -3481,17 +3486,17 @@ var require_subprotocol = __commonJS({
3481
3486
  }
3482
3487
  });
3483
3488
 
3484
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js
3489
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/websocket-server.js
3485
3490
  var require_websocket_server = __commonJS({
3486
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js"(exports3, module3) {
3491
+ "../node_modules/.pnpm/ws@8.20.1/node_modules/ws/lib/websocket-server.js"(exports3, module3) {
3487
3492
  "use strict";
3488
3493
  var EventEmitter = require("events");
3489
3494
  var http = require("http");
3490
3495
  var { Duplex } = require("stream");
3491
3496
  var { createHash } = require("crypto");
3492
- var extension = require_extension();
3493
- var PerMessageDeflate = require_permessage_deflate();
3494
- var subprotocol = require_subprotocol();
3497
+ var extension2 = require_extension();
3498
+ var PerMessageDeflate2 = require_permessage_deflate();
3499
+ var subprotocol2 = require_subprotocol();
3495
3500
  var WebSocket2 = require_websocket();
3496
3501
  var { CLOSE_TIMEOUT, GUID, kWebSocket } = require_constants();
3497
3502
  var keyRegex = /^[+/0-9A-Za-z]{22}==$/;
@@ -3714,7 +3719,7 @@ var require_websocket_server = __commonJS({
3714
3719
  let protocols = /* @__PURE__ */ new Set();
3715
3720
  if (secWebSocketProtocol !== void 0) {
3716
3721
  try {
3717
- protocols = subprotocol.parse(secWebSocketProtocol);
3722
+ protocols = subprotocol2.parse(secWebSocketProtocol);
3718
3723
  } catch (err) {
3719
3724
  const message = "Invalid Sec-WebSocket-Protocol header";
3720
3725
  abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);
@@ -3724,16 +3729,16 @@ var require_websocket_server = __commonJS({
3724
3729
  const secWebSocketExtensions = req.headers["sec-websocket-extensions"];
3725
3730
  const extensions = {};
3726
3731
  if (this.options.perMessageDeflate && secWebSocketExtensions !== void 0) {
3727
- const perMessageDeflate = new PerMessageDeflate(
3728
- this.options.perMessageDeflate,
3729
- true,
3730
- this.options.maxPayload
3731
- );
3732
+ const perMessageDeflate = new PerMessageDeflate2({
3733
+ ...this.options.perMessageDeflate,
3734
+ isServer: true,
3735
+ maxPayload: this.options.maxPayload
3736
+ });
3732
3737
  try {
3733
- const offers = extension.parse(secWebSocketExtensions);
3734
- if (offers[PerMessageDeflate.extensionName]) {
3735
- perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);
3736
- extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
3738
+ const offers = extension2.parse(secWebSocketExtensions);
3739
+ if (offers[PerMessageDeflate2.extensionName]) {
3740
+ perMessageDeflate.accept(offers[PerMessageDeflate2.extensionName]);
3741
+ extensions[PerMessageDeflate2.extensionName] = perMessageDeflate;
3737
3742
  }
3738
3743
  } catch (err) {
3739
3744
  const message = "Invalid or unacceptable Sec-WebSocket-Extensions header";
@@ -3804,10 +3809,10 @@ var require_websocket_server = __commonJS({
3804
3809
  ws._protocol = protocol;
3805
3810
  }
3806
3811
  }
3807
- if (extensions[PerMessageDeflate.extensionName]) {
3808
- const params2 = extensions[PerMessageDeflate.extensionName].params;
3809
- const value = extension.format({
3810
- [PerMessageDeflate.extensionName]: [params2]
3812
+ if (extensions[PerMessageDeflate2.extensionName]) {
3813
+ const params2 = extensions[PerMessageDeflate2.extensionName].params;
3814
+ const value = extension2.format({
3815
+ [PerMessageDeflate2.extensionName]: [params2]
3811
3816
  });
3812
3817
  headers.push(`Sec-WebSocket-Extensions: ${value}`);
3813
3818
  ws._extensions = extensions;
@@ -19095,7 +19100,7 @@ var require_mime_types = __commonJS({
19095
19100
  exports3.charset = charset;
19096
19101
  exports3.charsets = { lookup: charset };
19097
19102
  exports3.contentType = contentType;
19098
- exports3.extension = extension;
19103
+ exports3.extension = extension2;
19099
19104
  exports3.extensions = /* @__PURE__ */ Object.create(null);
19100
19105
  exports3.lookup = lookup;
19101
19106
  exports3.types = /* @__PURE__ */ Object.create(null);
@@ -19129,7 +19134,7 @@ var require_mime_types = __commonJS({
19129
19134
  }
19130
19135
  return mime;
19131
19136
  }
19132
- function extension(type2) {
19137
+ function extension2(type2) {
19133
19138
  if (!type2 || typeof type2 !== "string") {
19134
19139
  return false;
19135
19140
  }
@@ -19144,11 +19149,11 @@ var require_mime_types = __commonJS({
19144
19149
  if (!path || typeof path !== "string") {
19145
19150
  return false;
19146
19151
  }
19147
- var extension2 = extname("x." + path).toLowerCase().slice(1);
19148
- if (!extension2) {
19152
+ var extension3 = extname("x." + path).toLowerCase().slice(1);
19153
+ if (!extension3) {
19149
19154
  return false;
19150
19155
  }
19151
- return exports3.types[extension2] || false;
19156
+ return exports3.types[extension3] || false;
19152
19157
  }
19153
19158
  function populateMaps(extensions, types2) {
19154
19159
  Object.keys(db).forEach(function forEachMimeType(type2) {
@@ -19159,15 +19164,15 @@ var require_mime_types = __commonJS({
19159
19164
  }
19160
19165
  extensions[type2] = exts;
19161
19166
  for (var i = 0; i < exts.length; i++) {
19162
- var extension2 = exts[i];
19163
- types2[extension2] = _preferredType(extension2, types2[extension2], type2);
19167
+ var extension3 = exts[i];
19168
+ types2[extension3] = _preferredType(extension3, types2[extension3], type2);
19164
19169
  const legacyType = _preferredTypeLegacy(
19165
- extension2,
19166
- types2[extension2],
19170
+ extension3,
19171
+ types2[extension3],
19167
19172
  type2
19168
19173
  );
19169
- if (legacyType !== types2[extension2]) {
19170
- exports3._extensionConflicts.push([extension2, legacyType, types2[extension2]]);
19174
+ if (legacyType !== types2[extension3]) {
19175
+ exports3._extensionConflicts.push([extension3, legacyType, types2[extension3]]);
19171
19176
  }
19172
19177
  }
19173
19178
  });
@@ -19181,7 +19186,7 @@ var require_mime_types = __commonJS({
19181
19186
  var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
19182
19187
  var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
19183
19188
  var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
19184
- if (exports3.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports3.types[extension]?.slice(0, 12) === "application/")) {
19189
+ if (exports3.types[extension2] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports3.types[extension2]?.slice(0, 12) === "application/")) {
19185
19190
  return type0;
19186
19191
  }
19187
19192
  return score0 > score1 ? type0 : type1;
@@ -24909,8 +24914,8 @@ var require_application = __commonJS({
24909
24914
  if (typeof fn !== "function") {
24910
24915
  throw new Error("callback function required");
24911
24916
  }
24912
- var extension = ext[0] !== "." ? "." + ext : ext;
24913
- this.engines[extension] = fn;
24917
+ var extension2 = ext[0] !== "." ? "." + ext : ext;
24918
+ this.engines[extension2] = fn;
24914
24919
  return this;
24915
24920
  };
24916
24921
  app2.param = function param(name2, fn) {
@@ -27615,7 +27620,7 @@ var require_permessage_deflate2 = __commonJS({
27615
27620
  var kBuffers = /* @__PURE__ */ Symbol("buffers");
27616
27621
  var kError = /* @__PURE__ */ Symbol("error");
27617
27622
  var zlibLimiter;
27618
- var PerMessageDeflate = class {
27623
+ var PerMessageDeflate2 = class {
27619
27624
  /**
27620
27625
  * Creates a PerMessageDeflate instance.
27621
27626
  *
@@ -27952,7 +27957,7 @@ var require_permessage_deflate2 = __commonJS({
27952
27957
  });
27953
27958
  }
27954
27959
  };
27955
- module3.exports = PerMessageDeflate;
27960
+ module3.exports = PerMessageDeflate2;
27956
27961
  function deflateOnData(chunk) {
27957
27962
  this[kBuffers].push(chunk);
27958
27963
  this[kTotalLength] += chunk.length;
@@ -28038,7 +28043,7 @@ var require_receiver2 = __commonJS({
28038
28043
  "../node_modules/.pnpm/ws@7.5.10/node_modules/ws/lib/receiver.js"(exports3, module3) {
28039
28044
  "use strict";
28040
28045
  var { Writable } = require("stream");
28041
- var PerMessageDeflate = require_permessage_deflate2();
28046
+ var PerMessageDeflate2 = require_permessage_deflate2();
28042
28047
  var {
28043
28048
  BINARY_TYPES,
28044
28049
  EMPTY_BUFFER,
@@ -28184,7 +28189,7 @@ var require_receiver2 = __commonJS({
28184
28189
  );
28185
28190
  }
28186
28191
  const compressed = (buf[0] & 64) === 64;
28187
- if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {
28192
+ if (compressed && !this._extensions[PerMessageDeflate2.extensionName]) {
28188
28193
  this._loop = false;
28189
28194
  return error(
28190
28195
  RangeError,
@@ -28412,7 +28417,7 @@ var require_receiver2 = __commonJS({
28412
28417
  * @private
28413
28418
  */
28414
28419
  decompress(data, cb) {
28415
- const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
28420
+ const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
28416
28421
  perMessageDeflate.decompress(data, this._fin, (err, buf) => {
28417
28422
  if (err) return cb(err);
28418
28423
  if (buf.length) {
@@ -28549,7 +28554,7 @@ var require_sender2 = __commonJS({
28549
28554
  var net = require("net");
28550
28555
  var tls = require("tls");
28551
28556
  var { randomFillSync: randomFillSync2 } = require("crypto");
28552
- var PerMessageDeflate = require_permessage_deflate2();
28557
+ var PerMessageDeflate2 = require_permessage_deflate2();
28553
28558
  var { EMPTY_BUFFER } = require_constants2();
28554
28559
  var { isValidStatusCode } = require_validation2();
28555
28560
  var { mask: applyMask, toBuffer } = require_buffer_util2();
@@ -28773,7 +28778,7 @@ var require_sender2 = __commonJS({
28773
28778
  */
28774
28779
  send(data, options, cb) {
28775
28780
  const buf = toBuffer(data);
28776
- const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
28781
+ const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
28777
28782
  let opcode = options.binary ? 2 : 1;
28778
28783
  let rsv1 = options.compress;
28779
28784
  if (this._firstFragment) {
@@ -28837,7 +28842,7 @@ var require_sender2 = __commonJS({
28837
28842
  this.sendFrame(_Sender.frame(data, options), cb);
28838
28843
  return;
28839
28844
  }
28840
- const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
28845
+ const perMessageDeflate = this._extensions[PerMessageDeflate2.extensionName];
28841
28846
  this._bufferedBytes += data.length;
28842
28847
  this._deflating = true;
28843
28848
  perMessageDeflate.compress(data, options.fin, (_, buf) => {
@@ -29312,11 +29317,11 @@ var require_extension2 = __commonJS({
29312
29317
  return offers;
29313
29318
  }
29314
29319
  function format(extensions) {
29315
- return Object.keys(extensions).map((extension) => {
29316
- let configurations = extensions[extension];
29320
+ return Object.keys(extensions).map((extension2) => {
29321
+ let configurations = extensions[extension2];
29317
29322
  if (!Array.isArray(configurations)) configurations = [configurations];
29318
29323
  return configurations.map((params2) => {
29319
- return [extension].concat(
29324
+ return [extension2].concat(
29320
29325
  Object.keys(params2).map((k) => {
29321
29326
  let values = params2[k];
29322
29327
  if (!Array.isArray(values)) values = [values];
@@ -29342,7 +29347,7 @@ var require_websocket2 = __commonJS({
29342
29347
  var { randomBytes, createHash } = require("crypto");
29343
29348
  var { Readable } = require("stream");
29344
29349
  var { URL } = require("url");
29345
- var PerMessageDeflate = require_permessage_deflate2();
29350
+ var PerMessageDeflate2 = require_permessage_deflate2();
29346
29351
  var Receiver2 = require_receiver2();
29347
29352
  var Sender2 = require_sender2();
29348
29353
  var {
@@ -29530,8 +29535,8 @@ var require_websocket2 = __commonJS({
29530
29535
  this.emit("close", this._closeCode, this._closeMessage);
29531
29536
  return;
29532
29537
  }
29533
- if (this._extensions[PerMessageDeflate.extensionName]) {
29534
- this._extensions[PerMessageDeflate.extensionName].cleanup();
29538
+ if (this._extensions[PerMessageDeflate2.extensionName]) {
29539
+ this._extensions[PerMessageDeflate2.extensionName].cleanup();
29535
29540
  }
29536
29541
  this._receiver.removeAllListeners();
29537
29542
  this._readyState = _WebSocket.CLOSED;
@@ -29670,7 +29675,7 @@ var require_websocket2 = __commonJS({
29670
29675
  fin: true,
29671
29676
  ...options
29672
29677
  };
29673
- if (!this._extensions[PerMessageDeflate.extensionName]) {
29678
+ if (!this._extensions[PerMessageDeflate2.extensionName]) {
29674
29679
  opts.compress = false;
29675
29680
  }
29676
29681
  this._sender.send(data || EMPTY_BUFFER, opts, cb);
@@ -29816,13 +29821,13 @@ var require_websocket2 = __commonJS({
29816
29821
  opts.path = parsedUrl.pathname + parsedUrl.search;
29817
29822
  opts.timeout = opts.handshakeTimeout;
29818
29823
  if (opts.perMessageDeflate) {
29819
- perMessageDeflate = new PerMessageDeflate(
29824
+ perMessageDeflate = new PerMessageDeflate2(
29820
29825
  opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},
29821
29826
  false,
29822
29827
  opts.maxPayload
29823
29828
  );
29824
29829
  opts.headers["Sec-WebSocket-Extensions"] = format({
29825
- [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
29830
+ [PerMessageDeflate2.extensionName]: perMessageDeflate.offer()
29826
29831
  });
29827
29832
  }
29828
29833
  if (protocols) {
@@ -29950,19 +29955,19 @@ var require_websocket2 = __commonJS({
29950
29955
  }
29951
29956
  const extensionNames = Object.keys(extensions);
29952
29957
  if (extensionNames.length) {
29953
- if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate.extensionName) {
29958
+ if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate2.extensionName) {
29954
29959
  const message = "Server indicated an extension that was not requested";
29955
29960
  abortHandshake(websocket, socket, message);
29956
29961
  return;
29957
29962
  }
29958
29963
  try {
29959
- perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);
29964
+ perMessageDeflate.accept(extensions[PerMessageDeflate2.extensionName]);
29960
29965
  } catch (err) {
29961
29966
  const message = "Invalid Sec-WebSocket-Extensions header";
29962
29967
  abortHandshake(websocket, socket, message);
29963
29968
  return;
29964
29969
  }
29965
- websocket._extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
29970
+ websocket._extensions[PerMessageDeflate2.extensionName] = perMessageDeflate;
29966
29971
  }
29967
29972
  }
29968
29973
  websocket.setSocket(socket, head, opts.maxPayload);
@@ -30222,7 +30227,7 @@ var require_websocket_server2 = __commonJS({
30222
30227
  var net = require("net");
30223
30228
  var tls = require("tls");
30224
30229
  var { createHash } = require("crypto");
30225
- var PerMessageDeflate = require_permessage_deflate2();
30230
+ var PerMessageDeflate2 = require_permessage_deflate2();
30226
30231
  var WebSocket2 = require_websocket2();
30227
30232
  var { format, parse } = require_extension2();
30228
30233
  var { GUID, kWebSocket } = require_constants2();
@@ -30387,16 +30392,16 @@ var require_websocket_server2 = __commonJS({
30387
30392
  return abortHandshake(socket, 400);
30388
30393
  }
30389
30394
  if (this.options.perMessageDeflate) {
30390
- const perMessageDeflate = new PerMessageDeflate(
30395
+ const perMessageDeflate = new PerMessageDeflate2(
30391
30396
  this.options.perMessageDeflate,
30392
30397
  true,
30393
30398
  this.options.maxPayload
30394
30399
  );
30395
30400
  try {
30396
30401
  const offers = parse(req.headers["sec-websocket-extensions"]);
30397
- if (offers[PerMessageDeflate.extensionName]) {
30398
- perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);
30399
- extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
30402
+ if (offers[PerMessageDeflate2.extensionName]) {
30403
+ perMessageDeflate.accept(offers[PerMessageDeflate2.extensionName]);
30404
+ extensions[PerMessageDeflate2.extensionName] = perMessageDeflate;
30400
30405
  }
30401
30406
  } catch (err) {
30402
30407
  return abortHandshake(socket, 400);
@@ -30463,10 +30468,10 @@ var require_websocket_server2 = __commonJS({
30463
30468
  ws._protocol = protocol;
30464
30469
  }
30465
30470
  }
30466
- if (extensions[PerMessageDeflate.extensionName]) {
30467
- const params2 = extensions[PerMessageDeflate.extensionName].params;
30471
+ if (extensions[PerMessageDeflate2.extensionName]) {
30472
+ const params2 = extensions[PerMessageDeflate2.extensionName].params;
30468
30473
  const value = format({
30469
- [PerMessageDeflate.extensionName]: [params2]
30474
+ [PerMessageDeflate2.extensionName]: [params2]
30470
30475
  });
30471
30476
  headers.push(`Sec-WebSocket-Extensions: ${value}`);
30472
30477
  ws._extensions = extensions;
@@ -38571,10 +38576,13 @@ var v4_default = v4;
38571
38576
  // ../node_modules/.pnpm/@hocuspocus+server@2.15.3_y-protocols@1.0.7_yjs@13.6.30__yjs@13.6.30/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
38572
38577
  var import_http = require("http");
38573
38578
 
38574
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs
38579
+ // ../node_modules/.pnpm/ws@8.20.1/node_modules/ws/wrapper.mjs
38575
38580
  var import_stream = __toESM(require_stream(), 1);
38581
+ var import_extension = __toESM(require_extension(), 1);
38582
+ var import_permessage_deflate = __toESM(require_permessage_deflate(), 1);
38576
38583
  var import_receiver = __toESM(require_receiver(), 1);
38577
38584
  var import_sender = __toESM(require_sender(), 1);
38585
+ var import_subprotocol = __toESM(require_subprotocol(), 1);
38578
38586
  var import_websocket = __toESM(require_websocket(), 1);
38579
38587
  var import_websocket_server = __toESM(require_websocket_server(), 1);
38580
38588
 
@@ -40312,8 +40320,8 @@ var Hocuspocus = class {
40312
40320
  return this;
40313
40321
  }
40314
40322
  get requiresAuthentication() {
40315
- return !!this.configuration.extensions.find((extension) => {
40316
- return extension.onAuthenticate !== void 0;
40323
+ return !!this.configuration.extensions.find((extension2) => {
40324
+ return extension2.onAuthenticate !== void 0;
40317
40325
  });
40318
40326
  }
40319
40327
  /**
@@ -40391,9 +40399,9 @@ var Hocuspocus = class {
40391
40399
  console.log();
40392
40400
  console.log(` > HTTP: ${kleur_default.cyan(`${this.httpURL}`)}`);
40393
40401
  console.log(` > WebSocket: ${this.webSocketURL}`);
40394
- const extensions = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.extensions.map((extension) => {
40402
+ const extensions = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.extensions.map((extension2) => {
40395
40403
  var _a2, _b;
40396
- return (_a2 = extension.extensionName) !== null && _a2 !== void 0 ? _a2 : (_b = extension.constructor) === null || _b === void 0 ? void 0 : _b.name;
40404
+ return (_a2 = extension2.extensionName) !== null && _a2 !== void 0 ? _a2 : (_b = extension2.constructor) === null || _b === void 0 ? void 0 : _b.name;
40397
40405
  }).filter((name3) => name3).filter((name3) => name3 !== "Object");
40398
40406
  if (!extensions.length) {
40399
40407
  return;
@@ -40629,10 +40637,10 @@ var Hocuspocus = class {
40629
40637
  hooks(name2, payload, callback = null) {
40630
40638
  const { extensions } = this.configuration;
40631
40639
  let chain2 = Promise.resolve();
40632
- extensions.filter((extension) => typeof extension[name2] === "function").forEach((extension) => {
40640
+ extensions.filter((extension2) => typeof extension2[name2] === "function").forEach((extension2) => {
40633
40641
  chain2 = chain2.then(() => {
40634
40642
  var _a;
40635
- return (_a = extension[name2]) === null || _a === void 0 ? void 0 : _a.call(extension, payload);
40643
+ return (_a = extension2[name2]) === null || _a === void 0 ? void 0 : _a.call(extension2, payload);
40636
40644
  }).catch((error) => {
40637
40645
  if (error === null || error === void 0 ? void 0 : error.message) {
40638
40646
  console.error(`[${name2}]`, error.message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xwiki/cristal-realtime",
3
- "version": "1.2.0",
3
+ "version": "1.4.0-1",
4
4
  "license": "LGPL 2.1",
5
5
  "author": "XWiki Org Community <contact@xwiki.org>",
6
6
  "homepage": "https://cristal.xwiki.org/",
@@ -21,10 +21,10 @@
21
21
  "devDependencies": {
22
22
  "@types/express": "5.0.6",
23
23
  "@types/express-ws": "3.0.6",
24
- "esbuild": "0.27.4",
25
- "tsx": "4.21.0",
24
+ "esbuild": "0.28.0",
25
+ "tsx": "4.22.1",
26
26
  "typescript": "5.9.3",
27
- "vite": "7.3.1"
27
+ "vite": "7.3.2"
28
28
  },
29
29
  "scripts": {
30
30
  "build": "tsc --project tsconfig.json && esbuild ./src/index.ts --bundle --outfile=dist/index.cjs --platform=node",