@xwiki/cristal-realtime 0.14.0 → 0.15.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @xwiki/cristal-realtime
2
2
 
3
+ ## 0.15.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Cristal 0.15 Release
8
+
3
9
  ## 0.14.0
4
10
 
5
11
  ### Minor Changes
package/dist/index.js CHANGED
@@ -18303,9 +18303,9 @@ var require_text = __commonJS({
18303
18303
  }
18304
18304
  });
18305
18305
 
18306
- // ../node_modules/.pnpm/es-object-atoms@1.0.0/node_modules/es-object-atoms/index.js
18306
+ // ../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js
18307
18307
  var require_es_object_atoms = __commonJS({
18308
- "../node_modules/.pnpm/es-object-atoms@1.0.0/node_modules/es-object-atoms/index.js"(exports3, module3) {
18308
+ "../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js"(exports3, module3) {
18309
18309
  "use strict";
18310
18310
  module3.exports = Object;
18311
18311
  }
@@ -18367,46 +18367,78 @@ var require_uri = __commonJS({
18367
18367
  }
18368
18368
  });
18369
18369
 
18370
- // ../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/abs.js
18370
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js
18371
18371
  var require_abs = __commonJS({
18372
- "../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/abs.js"(exports3, module3) {
18372
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js"(exports3, module3) {
18373
18373
  "use strict";
18374
18374
  module3.exports = Math.abs;
18375
18375
  }
18376
18376
  });
18377
18377
 
18378
- // ../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/floor.js
18378
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js
18379
18379
  var require_floor = __commonJS({
18380
- "../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/floor.js"(exports3, module3) {
18380
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js"(exports3, module3) {
18381
18381
  "use strict";
18382
18382
  module3.exports = Math.floor;
18383
18383
  }
18384
18384
  });
18385
18385
 
18386
- // ../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/max.js
18386
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js
18387
18387
  var require_max = __commonJS({
18388
- "../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/max.js"(exports3, module3) {
18388
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js"(exports3, module3) {
18389
18389
  "use strict";
18390
18390
  module3.exports = Math.max;
18391
18391
  }
18392
18392
  });
18393
18393
 
18394
- // ../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/min.js
18394
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js
18395
18395
  var require_min = __commonJS({
18396
- "../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/min.js"(exports3, module3) {
18396
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js"(exports3, module3) {
18397
18397
  "use strict";
18398
18398
  module3.exports = Math.min;
18399
18399
  }
18400
18400
  });
18401
18401
 
18402
- // ../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/pow.js
18402
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js
18403
18403
  var require_pow = __commonJS({
18404
- "../node_modules/.pnpm/math-intrinsics@1.0.0/node_modules/math-intrinsics/pow.js"(exports3, module3) {
18404
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js"(exports3, module3) {
18405
18405
  "use strict";
18406
18406
  module3.exports = Math.pow;
18407
18407
  }
18408
18408
  });
18409
18409
 
18410
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js
18411
+ var require_round = __commonJS({
18412
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js"(exports3, module3) {
18413
+ "use strict";
18414
+ module3.exports = Math.round;
18415
+ }
18416
+ });
18417
+
18418
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js
18419
+ var require_isNaN = __commonJS({
18420
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js"(exports3, module3) {
18421
+ "use strict";
18422
+ module3.exports = Number.isNaN || function isNaN4(a) {
18423
+ return a !== a;
18424
+ };
18425
+ }
18426
+ });
18427
+
18428
+ // ../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js
18429
+ var require_sign = __commonJS({
18430
+ "../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js"(exports3, module3) {
18431
+ "use strict";
18432
+ var $isNaN = require_isNaN();
18433
+ module3.exports = function sign(number) {
18434
+ if ($isNaN(number) || number === 0) {
18435
+ return number;
18436
+ }
18437
+ return number < 0 ? -1 : 1;
18438
+ };
18439
+ }
18440
+ });
18441
+
18410
18442
  // ../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js
18411
18443
  var require_gOPD = __commonJS({
18412
18444
  "../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js"(exports3, module3) {
@@ -18526,6 +18558,23 @@ var require_has_symbols = __commonJS({
18526
18558
  }
18527
18559
  });
18528
18560
 
18561
+ // ../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js
18562
+ var require_Reflect_getPrototypeOf = __commonJS({
18563
+ "../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js"(exports3, module3) {
18564
+ "use strict";
18565
+ module3.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
18566
+ }
18567
+ });
18568
+
18569
+ // ../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js
18570
+ var require_Object_getPrototypeOf = __commonJS({
18571
+ "../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js"(exports3, module3) {
18572
+ "use strict";
18573
+ var $Object = require_es_object_atoms();
18574
+ module3.exports = $Object.getPrototypeOf || null;
18575
+ }
18576
+ });
18577
+
18529
18578
  // ../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js
18530
18579
  var require_implementation = __commonJS({
18531
18580
  "../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports3, module3) {
@@ -18664,17 +18713,22 @@ var require_call_bind_apply_helpers = __commonJS({
18664
18713
  }
18665
18714
  });
18666
18715
 
18667
- // ../node_modules/.pnpm/dunder-proto@1.0.0/node_modules/dunder-proto/get.js
18716
+ // ../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js
18668
18717
  var require_get = __commonJS({
18669
- "../node_modules/.pnpm/dunder-proto@1.0.0/node_modules/dunder-proto/get.js"(exports3, module3) {
18718
+ "../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js"(exports3, module3) {
18670
18719
  "use strict";
18671
18720
  var callBind = require_call_bind_apply_helpers();
18672
18721
  var gOPD = require_gopd();
18673
- var hasProtoAccessor = (
18674
- /** @type {{ __proto__?: typeof Array.prototype }} */
18675
- [].__proto__ === Array.prototype
18676
- );
18677
- var desc = hasProtoAccessor && gOPD && gOPD(
18722
+ var hasProtoAccessor;
18723
+ try {
18724
+ hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */
18725
+ [].__proto__ === Array.prototype;
18726
+ } catch (e) {
18727
+ if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") {
18728
+ throw e;
18729
+ }
18730
+ }
18731
+ var desc = !!hasProtoAccessor && gOPD && gOPD(
18678
18732
  Object.prototype,
18679
18733
  /** @type {keyof typeof Object.prototype} */
18680
18734
  "__proto__"
@@ -18690,6 +18744,26 @@ var require_get = __commonJS({
18690
18744
  }
18691
18745
  });
18692
18746
 
18747
+ // ../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js
18748
+ var require_get_proto = __commonJS({
18749
+ "../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js"(exports3, module3) {
18750
+ "use strict";
18751
+ var reflectGetProto = require_Reflect_getPrototypeOf();
18752
+ var originalGetProto = require_Object_getPrototypeOf();
18753
+ var getDunderProto = require_get();
18754
+ module3.exports = reflectGetProto ? function getProto(O) {
18755
+ return reflectGetProto(O);
18756
+ } : originalGetProto ? function getProto(O) {
18757
+ if (!O || typeof O !== "object" && typeof O !== "function") {
18758
+ throw new TypeError("getProto: not an object");
18759
+ }
18760
+ return originalGetProto(O);
18761
+ } : getDunderProto ? function getProto(O) {
18762
+ return getDunderProto(O);
18763
+ } : null;
18764
+ }
18765
+ });
18766
+
18693
18767
  // ../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js
18694
18768
  var require_hasown = __commonJS({
18695
18769
  "../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js"(exports3, module3) {
@@ -18701,9 +18775,9 @@ var require_hasown = __commonJS({
18701
18775
  }
18702
18776
  });
18703
18777
 
18704
- // ../node_modules/.pnpm/get-intrinsic@1.2.6/node_modules/get-intrinsic/index.js
18778
+ // ../node_modules/.pnpm/get-intrinsic@1.2.7/node_modules/get-intrinsic/index.js
18705
18779
  var require_get_intrinsic = __commonJS({
18706
- "../node_modules/.pnpm/get-intrinsic@1.2.6/node_modules/get-intrinsic/index.js"(exports3, module3) {
18780
+ "../node_modules/.pnpm/get-intrinsic@1.2.7/node_modules/get-intrinsic/index.js"(exports3, module3) {
18707
18781
  "use strict";
18708
18782
  var undefined2;
18709
18783
  var $Object = require_es_object_atoms();
@@ -18719,6 +18793,8 @@ var require_get_intrinsic = __commonJS({
18719
18793
  var max4 = require_max();
18720
18794
  var min4 = require_min();
18721
18795
  var pow = require_pow();
18796
+ var round = require_round();
18797
+ var sign = require_sign();
18722
18798
  var $Function = Function;
18723
18799
  var getEvalledConstructor = function(expressionSyntax) {
18724
18800
  try {
@@ -18744,8 +18820,9 @@ var require_get_intrinsic = __commonJS({
18744
18820
  }
18745
18821
  }() : throwTypeError;
18746
18822
  var hasSymbols = require_has_symbols()();
18747
- var getDunderProto = require_get();
18748
- var getProto = typeof Reflect === "function" && Reflect.getPrototypeOf || $Object.getPrototypeOf || getDunderProto;
18823
+ var getProto = require_get_proto();
18824
+ var $ObjectGPO = require_Object_getPrototypeOf();
18825
+ var $ReflectGPO = require_Reflect_getPrototypeOf();
18749
18826
  var $apply = require_functionApply();
18750
18827
  var $call = require_functionCall();
18751
18828
  var needsEval = {};
@@ -18823,11 +18900,15 @@ var require_get_intrinsic = __commonJS({
18823
18900
  "%Function.prototype.call%": $call,
18824
18901
  "%Function.prototype.apply%": $apply,
18825
18902
  "%Object.defineProperty%": $defineProperty,
18903
+ "%Object.getPrototypeOf%": $ObjectGPO,
18826
18904
  "%Math.abs%": abs2,
18827
18905
  "%Math.floor%": floor4,
18828
18906
  "%Math.max%": max4,
18829
18907
  "%Math.min%": min4,
18830
- "%Math.pow%": pow
18908
+ "%Math.pow%": pow,
18909
+ "%Math.round%": round,
18910
+ "%Math.sign%": sign,
18911
+ "%Reflect.getPrototypeOf%": $ReflectGPO
18831
18912
  };
18832
18913
  if (getProto) {
18833
18914
  try {
@@ -29513,10 +29594,10 @@ var require_express_ws = __commonJS({
29513
29594
  }
29514
29595
  });
29515
29596
 
29516
- // ../node_modules/.pnpm/@hocuspocus+server@2.15.0_y-protocols@1.0.6_yjs@13.6.23__yjs@13.6.23/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
29597
+ // ../node_modules/.pnpm/@hocuspocus+server@2.15.2_y-protocols@1.0.6_yjs@13.6.23__yjs@13.6.23/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
29517
29598
  var import_async_lock = __toESM(require_async_lock(), 1);
29518
29599
 
29519
- // ../node_modules/.pnpm/@hocuspocus+common@2.15.0/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
29600
+ // ../node_modules/.pnpm/@hocuspocus+common@2.15.2/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
29520
29601
  var floor = Math.floor;
29521
29602
  var min = (a, b) => a < b ? a : b;
29522
29603
  var max = (a, b) => a > b ? a : b;
@@ -37308,7 +37389,7 @@ function v4(options, buf, offset) {
37308
37389
  }
37309
37390
  var v4_default = v4;
37310
37391
 
37311
- // ../node_modules/.pnpm/@hocuspocus+server@2.15.0_y-protocols@1.0.6_yjs@13.6.23__yjs@13.6.23/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
37392
+ // ../node_modules/.pnpm/@hocuspocus+server@2.15.2_y-protocols@1.0.6_yjs@13.6.23__yjs@13.6.23/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
37312
37393
  var import_http = require("http");
37313
37394
 
37314
37395
  // ../node_modules/.pnpm/ws@8.18.0/node_modules/ws/wrapper.mjs
@@ -37318,7 +37399,7 @@ var import_sender = __toESM(require_sender(), 1);
37318
37399
  var import_websocket = __toESM(require_websocket(), 1);
37319
37400
  var import_websocket_server = __toESM(require_websocket_server(), 1);
37320
37401
 
37321
- // ../node_modules/.pnpm/@hocuspocus+server@2.15.0_y-protocols@1.0.6_yjs@13.6.23__yjs@13.6.23/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
37402
+ // ../node_modules/.pnpm/@hocuspocus+server@2.15.2_y-protocols@1.0.6_yjs@13.6.23__yjs@13.6.23/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
37322
37403
  var import_url = require("url");
37323
37404
  var BIT83 = 128;
37324
37405
  var BITS73 = 127;
@@ -38019,7 +38100,7 @@ var MessageReceiver = class {
38019
38100
  type: MessageType.Awareness,
38020
38101
  category: "Update"
38021
38102
  });
38022
- applyAwarenessUpdate(document2.awareness, message.readVarUint8Array(), connection);
38103
+ applyAwarenessUpdate(document2.awareness, message.readVarUint8Array(), connection === null || connection === void 0 ? void 0 : connection.webSocket);
38023
38104
  break;
38024
38105
  }
38025
38106
  case MessageType.QueryAwareness: {
@@ -38531,7 +38612,7 @@ var Document = class extends Doc {
38531
38612
  };
38532
38613
  var name = "@hocuspocus/server";
38533
38614
  var description = "plug & play collaboration backend";
38534
- var version = "2.15.0";
38615
+ var version = "2.15.2";
38535
38616
  var homepage = "https://hocuspocus.dev";
38536
38617
  var keywords = [
38537
38618
  "hocuspocus",
@@ -38559,7 +38640,7 @@ var files = [
38559
38640
  "dist"
38560
38641
  ];
38561
38642
  var dependencies = {
38562
- "@hocuspocus/common": "^2.15.0",
38643
+ "@hocuspocus/common": "^2.15.2",
38563
38644
  "async-lock": "^1.3.1",
38564
38645
  kleur: "^4.1.4",
38565
38646
  lib0: "^0.2.47",
@@ -39157,10 +39238,14 @@ var Hocuspocus = class {
39157
39238
  * Get the total number of active connections
39158
39239
  */
39159
39240
  getConnectionsCount() {
39160
- return Array.from(this.documents.values()).reduce((acc, document2) => {
39161
- acc += document2.getConnectionsCount();
39162
- return acc;
39241
+ const uniqueSocketIds = /* @__PURE__ */ new Set();
39242
+ const totalDirectConnections = Array.from(this.documents.values()).reduce((acc, document2) => {
39243
+ document2.getConnections().forEach(({ socketId }) => {
39244
+ uniqueSocketIds.add(socketId);
39245
+ });
39246
+ return acc + document2.directConnectionsCount;
39163
39247
  }, 0);
39248
+ return uniqueSocketIds.size + totalDirectConnections;
39164
39249
  }
39165
39250
  /**
39166
39251
  * Force close one or more connections
@@ -39344,11 +39429,11 @@ var Hocuspocus = class {
39344
39429
  storeDocumentHooks(document2, hookPayload, immediately) {
39345
39430
  return this.debouncer.debounce(`onStoreDocument-${document2.name}`, () => {
39346
39431
  return this.hooks("onStoreDocument", hookPayload).then(() => {
39347
- this.hooks("afterStoreDocument", hookPayload).then(() => {
39432
+ this.hooks("afterStoreDocument", hookPayload).then(async () => {
39348
39433
  if (document2.getConnectionsCount() > 0) {
39349
39434
  return;
39350
39435
  }
39351
- this.unloadDocument(document2);
39436
+ await this.unloadDocument(document2);
39352
39437
  });
39353
39438
  }).catch((error) => {
39354
39439
  console.error("Caught error during storeDocumentHooks", error);
@@ -39381,13 +39466,14 @@ var Hocuspocus = class {
39381
39466
  });
39382
39467
  return chain2;
39383
39468
  }
39384
- unloadDocument(document2) {
39469
+ async unloadDocument(document2) {
39385
39470
  const documentName = document2.name;
39386
39471
  if (!this.documents.has(documentName))
39387
39472
  return;
39473
+ await this.hooks("beforeUnloadDocument", { instance: this, documentName });
39388
39474
  this.documents.delete(documentName);
39389
39475
  document2.destroy();
39390
- this.hooks("afterUnloadDocument", { instance: this, documentName });
39476
+ await this.hooks("afterUnloadDocument", { instance: this, documentName });
39391
39477
  }
39392
39478
  enableDebugging() {
39393
39479
  this.debugger.enable();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xwiki/cristal-realtime",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "license": "LGPL 2.1",
5
5
  "author": "XWiki Org Community <contact@xwiki.org>",
6
6
  "homepage": "https://cristal.xwiki.org/",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "type": "module",
16
16
  "dependencies": {
17
- "@hocuspocus/server": "2.15.0",
17
+ "@hocuspocus/server": "2.15.2",
18
18
  "express": "4.21.2",
19
19
  "express-ws": "5.0.2"
20
20
  },
@@ -24,7 +24,7 @@
24
24
  "esbuild": "0.24.2",
25
25
  "tsx": "4.19.2",
26
26
  "typescript": "5.7.3",
27
- "vite": "6.0.11"
27
+ "vite": "6.1.0"
28
28
  },
29
29
  "scripts": {
30
30
  "build": "tsc --project tsconfig.json && esbuild ./src/index.ts --bundle --outfile=dist/index.js --platform=node",