@xwiki/cristal-realtime 0.20.0-rc.0 → 0.21.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,17 @@
1
1
  # @xwiki/cristal-realtime
2
2
 
3
+ ## 0.21.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Cristal 0.21 Release
8
+
9
+ ## 0.20.0
10
+
11
+ ### Minor Changes
12
+
13
+ - Cristal 0.20 Release
14
+
3
15
  ## 0.20.0-rc.0
4
16
 
5
17
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -30651,10 +30651,10 @@ var require_express_ws = __commonJS({
30651
30651
  }
30652
30652
  });
30653
30653
 
30654
- // ../node_modules/.pnpm/@hocuspocus+server@2.15.2_y-protocols@1.0.6_yjs@13.6.26__yjs@13.6.26/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
30654
+ // ../node_modules/.pnpm/@hocuspocus+server@2.15.3_y-protocols@1.0.6_yjs@13.6.27__yjs@13.6.27/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
30655
30655
  var import_async_lock = __toESM(require_async_lock(), 1);
30656
30656
 
30657
- // ../node_modules/.pnpm/@hocuspocus+common@2.15.2/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
30657
+ // ../node_modules/.pnpm/@hocuspocus+common@2.15.3/node_modules/@hocuspocus/common/dist/hocuspocus-common.esm.js
30658
30658
  var floor = Math.floor;
30659
30659
  var min = (a, b) => a < b ? a : b;
30660
30660
  var max = (a, b) => a > b ? a : b;
@@ -30791,7 +30791,7 @@ var WsReadyStates;
30791
30791
  WsReadyStates2[WsReadyStates2["Closed"] = 3] = "Closed";
30792
30792
  })(WsReadyStates || (WsReadyStates = {}));
30793
30793
 
30794
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/map.js
30794
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.js
30795
30795
  var create2 = () => /* @__PURE__ */ new Map();
30796
30796
  var copy = (m) => {
30797
30797
  const r = create2();
@@ -30816,10 +30816,10 @@ var any = (m, f) => {
30816
30816
  return false;
30817
30817
  };
30818
30818
 
30819
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/set.js
30819
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.js
30820
30820
  var create3 = () => /* @__PURE__ */ new Set();
30821
30821
 
30822
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/array.js
30822
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.js
30823
30823
  var last = (arr) => arr[arr.length - 1];
30824
30824
  var appendTo = (dest, src) => {
30825
30825
  for (let i = 0; i < src.length; i++) {
@@ -30829,7 +30829,7 @@ var appendTo = (dest, src) => {
30829
30829
  var from = Array.from;
30830
30830
  var isArray = Array.isArray;
30831
30831
 
30832
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/observable.js
30832
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.js
30833
30833
  var ObservableV2 = class {
30834
30834
  constructor() {
30835
30835
  this._observers = create2();
@@ -30900,7 +30900,7 @@ var ObservableV2 = class {
30900
30900
  }
30901
30901
  };
30902
30902
 
30903
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/math.js
30903
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.js
30904
30904
  var floor2 = Math.floor;
30905
30905
  var abs = Math.abs;
30906
30906
  var min2 = (a, b) => a < b ? a : b;
@@ -30908,7 +30908,7 @@ var max2 = (a, b) => a > b ? a : b;
30908
30908
  var isNaN2 = Number.isNaN;
30909
30909
  var isNegativeZero = (n) => n !== 0 ? n < 0 : 1 / n < 0;
30910
30910
 
30911
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/binary.js
30911
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.js
30912
30912
  var BIT1 = 1;
30913
30913
  var BIT2 = 2;
30914
30914
  var BIT3 = 4;
@@ -30950,7 +30950,7 @@ var BITS29 = BIT30 - 1;
30950
30950
  var BITS30 = BIT31 - 1;
30951
30951
  var BITS31 = 2147483647;
30952
30952
 
30953
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/number.js
30953
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.js
30954
30954
  var MAX_SAFE_INTEGER2 = Number.MAX_SAFE_INTEGER;
30955
30955
  var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
30956
30956
  var LOWEST_INT32 = 1 << 31;
@@ -30958,7 +30958,7 @@ var isInteger = Number.isInteger || ((num) => typeof num === "number" && isFinit
30958
30958
  var isNaN3 = Number.isNaN;
30959
30959
  var parseInt2 = Number.parseInt;
30960
30960
 
30961
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/string.js
30961
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.js
30962
30962
  var fromCharCode = String.fromCharCode;
30963
30963
  var fromCodePoint = String.fromCodePoint;
30964
30964
  var MAX_UTF16_CHARACTER = fromCharCode(65535);
@@ -30988,7 +30988,7 @@ if (utf8TextDecoder2 && utf8TextDecoder2.decode(new Uint8Array()).length === 1)
30988
30988
  utf8TextDecoder2 = null;
30989
30989
  }
30990
30990
 
30991
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/encoding.js
30991
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.js
30992
30992
  var Encoder = class {
30993
30993
  constructor() {
30994
30994
  this.cpos = 0;
@@ -31295,7 +31295,7 @@ var StringEncoder = class {
31295
31295
  }
31296
31296
  };
31297
31297
 
31298
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/error.js
31298
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.js
31299
31299
  var create4 = (s) => new Error(s);
31300
31300
  var methodUnimplemented = () => {
31301
31301
  throw create4("Method unimplemented");
@@ -31304,7 +31304,7 @@ var unexpectedCase = () => {
31304
31304
  throw create4("Unexpected case");
31305
31305
  };
31306
31306
 
31307
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/decoding.js
31307
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.js
31308
31308
  var errorUnexpectedEndOfArray2 = create4("Unexpected end of array");
31309
31309
  var errorIntegerOutOfRange2 = create4("Integer out of Range");
31310
31310
  var Decoder = class {
@@ -31547,7 +31547,7 @@ var StringDecoder = class {
31547
31547
  }
31548
31548
  };
31549
31549
 
31550
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/webcrypto.node.js
31550
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.node.js
31551
31551
  var import_node_crypto = require("node:crypto");
31552
31552
  var subtle = (
31553
31553
  /** @type {any} */
@@ -31558,7 +31558,7 @@ var getRandomValues = (
31558
31558
  import_node_crypto.webcrypto.getRandomValues.bind(import_node_crypto.webcrypto)
31559
31559
  );
31560
31560
 
31561
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/random.js
31561
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.js
31562
31562
  var uint32 = () => getRandomValues(new Uint32Array(1))[0];
31563
31563
  var uuidv4Template = "10000000-1000-4000-8000" + -1e11;
31564
31564
  var uuidv4 = () => uuidv4Template.replace(
@@ -31567,20 +31567,20 @@ var uuidv4 = () => uuidv4Template.replace(
31567
31567
  (c) => (c ^ uint32() & 15 >> c / 4).toString(16)
31568
31568
  );
31569
31569
 
31570
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/time.js
31570
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.js
31571
31571
  var getUnixTime = Date.now;
31572
31572
 
31573
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/promise.js
31573
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.js
31574
31574
  var create5 = (f) => (
31575
31575
  /** @type {Promise<T>} */
31576
31576
  new Promise(f)
31577
31577
  );
31578
31578
  var all = Promise.all.bind(Promise);
31579
31579
 
31580
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/conditions.js
31580
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.js
31581
31581
  var undefinedToNull = (v) => v === void 0 ? null : v;
31582
31582
 
31583
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/storage.js
31583
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.js
31584
31584
  var VarStoragePolyfill = class {
31585
31585
  constructor() {
31586
31586
  this.map = /* @__PURE__ */ new Map();
@@ -31610,7 +31610,7 @@ try {
31610
31610
  }
31611
31611
  var varStorage = _localStorage;
31612
31612
 
31613
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/object.js
31613
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.js
31614
31614
  var assign = Object.assign;
31615
31615
  var keys = Object.keys;
31616
31616
  var forEach = (obj, f) => {
@@ -31646,7 +31646,7 @@ var deepFreeze = (o) => {
31646
31646
  return freeze(o);
31647
31647
  };
31648
31648
 
31649
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/function.js
31649
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.js
31650
31650
  var callAll = (fs, args2, i = 0) => {
31651
31651
  try {
31652
31652
  for (; i < fs.length; i++) {
@@ -31661,7 +31661,7 @@ var callAll = (fs, args2, i = 0) => {
31661
31661
  var id = (a) => a;
31662
31662
  var isOneOf = (value, options) => options.includes(value);
31663
31663
 
31664
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/environment.js
31664
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.js
31665
31665
  var isNode = typeof process !== "undefined" && process.release && /node|io\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === "[object process]";
31666
31666
  var isMac = typeof navigator !== "undefined" ? /Mac/.test(navigator.platform) : false;
31667
31667
  var params;
@@ -31714,7 +31714,7 @@ var forceColor = isNode && isOneOf(process.env.FORCE_COLOR, ["true", "1", "2"]);
31714
31714
  var supportsColor = forceColor || !hasParam("--no-colors") && // @todo deprecate --no-colors
31715
31715
  !hasConf("no-color") && (!isNode || process.stdout.isTTY) && (!isNode || hasParam("--color") || getVariable("COLORTERM") !== null || (getVariable("TERM") || "").includes("color"));
31716
31716
 
31717
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/buffer.js
31717
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.js
31718
31718
  var createUint8ArrayFromLen = (len) => new Uint8Array(len);
31719
31719
  var copyUint8Array = (uint8Array) => {
31720
31720
  const newBuf = createUint8ArrayFromLen(uint8Array.byteLength);
@@ -31722,10 +31722,10 @@ var copyUint8Array = (uint8Array) => {
31722
31722
  return newBuf;
31723
31723
  };
31724
31724
 
31725
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/symbol.js
31725
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.js
31726
31726
  var create6 = Symbol;
31727
31727
 
31728
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/logging.common.js
31728
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.js
31729
31729
  var BOLD = create6();
31730
31730
  var UNBOLD = create6();
31731
31731
  var BLUE = create6();
@@ -31767,7 +31767,7 @@ var computeNoColorLoggingArgs = (args2) => {
31767
31767
  };
31768
31768
  var lastLoggingTime = getUnixTime();
31769
31769
 
31770
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/logging.node.js
31770
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.node.js
31771
31771
  var _nodeStyleMap = {
31772
31772
  [BOLD]: "\x1B[1m",
31773
31773
  [UNBOLD]: "\x1B[2m",
@@ -31823,7 +31823,7 @@ var warn = (...args2) => {
31823
31823
  console.warn(...computeLoggingArgs(args2));
31824
31824
  };
31825
31825
 
31826
- // ../node_modules/.pnpm/lib0@0.2.109/node_modules/lib0/iterator.js
31826
+ // ../node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.js
31827
31827
  var createIterator = (next) => ({
31828
31828
  /**
31829
31829
  * @return {IterableIterator<T>}
@@ -31846,7 +31846,7 @@ var iteratorMap = (iterator, fmap) => createIterator(() => {
31846
31846
  return { done, value: done ? void 0 : fmap(value) };
31847
31847
  });
31848
31848
 
31849
- // ../node_modules/.pnpm/yjs@13.6.26/node_modules/yjs/dist/yjs.mjs
31849
+ // ../node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.mjs
31850
31850
  var DeleteItem = class {
31851
31851
  /**
31852
31852
  * @param {number} clock
@@ -34580,6 +34580,8 @@ var typeMapSet = (transaction, parent, key, value) => {
34580
34580
  case Boolean:
34581
34581
  case Array:
34582
34582
  case String:
34583
+ case Date:
34584
+ case BigInt:
34583
34585
  content = new ContentAny([value]);
34584
34586
  break;
34585
34587
  case Uint8Array:
@@ -38455,7 +38457,7 @@ function v4(options, buf, offset) {
38455
38457
  }
38456
38458
  var v4_default = v4;
38457
38459
 
38458
- // ../node_modules/.pnpm/@hocuspocus+server@2.15.2_y-protocols@1.0.6_yjs@13.6.26__yjs@13.6.26/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
38460
+ // ../node_modules/.pnpm/@hocuspocus+server@2.15.3_y-protocols@1.0.6_yjs@13.6.27__yjs@13.6.27/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
38459
38461
  var import_http = require("http");
38460
38462
 
38461
38463
  // ../node_modules/.pnpm/ws@8.18.2/node_modules/ws/wrapper.mjs
@@ -38465,7 +38467,7 @@ var import_sender = __toESM(require_sender(), 1);
38465
38467
  var import_websocket = __toESM(require_websocket(), 1);
38466
38468
  var import_websocket_server = __toESM(require_websocket_server(), 1);
38467
38469
 
38468
- // ../node_modules/.pnpm/@hocuspocus+server@2.15.2_y-protocols@1.0.6_yjs@13.6.26__yjs@13.6.26/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
38470
+ // ../node_modules/.pnpm/@hocuspocus+server@2.15.3_y-protocols@1.0.6_yjs@13.6.27__yjs@13.6.27/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js
38469
38471
  var import_url = require("url");
38470
38472
  var BIT83 = 128;
38471
38473
  var BITS73 = 127;
@@ -39678,7 +39680,7 @@ var Document = class extends Doc {
39678
39680
  };
39679
39681
  var name = "@hocuspocus/server";
39680
39682
  var description = "plug & play collaboration backend";
39681
- var version = "2.15.2";
39683
+ var version = "2.15.3";
39682
39684
  var homepage = "https://hocuspocus.dev";
39683
39685
  var keywords = [
39684
39686
  "hocuspocus",
@@ -39706,7 +39708,7 @@ var files = [
39706
39708
  "dist"
39707
39709
  ];
39708
39710
  var dependencies = {
39709
- "@hocuspocus/common": "^2.15.2",
39711
+ "@hocuspocus/common": "^2.15.3",
39710
39712
  "async-lock": "^1.3.1",
39711
39713
  kleur: "^4.1.4",
39712
39714
  lib0: "^0.2.47",
@@ -40537,6 +40539,9 @@ var Hocuspocus = class {
40537
40539
  if (!this.documents.has(documentName))
40538
40540
  return;
40539
40541
  await this.hooks("beforeUnloadDocument", { instance: this, documentName });
40542
+ if (document2.getConnectionsCount() > 0) {
40543
+ return;
40544
+ }
40540
40545
  this.documents.delete(documentName);
40541
40546
  document2.destroy();
40542
40547
  await this.hooks("afterUnloadDocument", { instance: this, documentName });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xwiki/cristal-realtime",
3
- "version": "0.20.0-rc.0",
3
+ "version": "0.21.0",
4
4
  "license": "LGPL 2.1",
5
5
  "author": "XWiki Org Community <contact@xwiki.org>",
6
6
  "homepage": "https://cristal.xwiki.org/",
@@ -14,17 +14,17 @@
14
14
  },
15
15
  "type": "module",
16
16
  "dependencies": {
17
- "@hocuspocus/server": "2.15.2",
17
+ "@hocuspocus/server": "2.15.3",
18
18
  "express": "5.1.0",
19
19
  "express-ws": "5.0.2"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/express": "5.0.3",
23
23
  "@types/express-ws": "3.0.5",
24
- "esbuild": "0.25.5",
24
+ "esbuild": "0.25.8",
25
25
  "tsx": "4.20.3",
26
- "typescript": "5.8.3",
27
- "vite": "7.0.0"
26
+ "typescript": "5.9.2",
27
+ "vite": "7.0.6"
28
28
  },
29
29
  "scripts": {
30
30
  "build": "tsc --project tsconfig.json && esbuild ./src/index.ts --bundle --outfile=dist/index.cjs --platform=node",
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- /*
1
+ /**
2
2
  * See the LICENSE file distributed with this work for additional
3
3
  * information regarding copyright ownership.
4
4
  *