@homeostate/crdt-loro 0.1.2 → 0.1.3

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,24 @@
1
1
  # @homeostate/crdt-loro
2
2
 
3
+ ## 0.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 33c7b14: Mark the package side-effect free, so bundlers can drop modules that are not imported.
8
+ - fb76f77: Preserve complete Unicode code points when diffing and applying string edits. Deleting or
9
+ replacing supplementary characters such as emoji no longer corrupts text, deletes adjacent
10
+ characters, or throws in the supplied CRDT backends.
11
+
12
+ String `Change` offsets remain UTF-16 code units. A string deletion can now carry a numeric
13
+ UTF-16 deletion length in its third tuple entry; `undefined` still means one unit. Custom
14
+ backends consuming `getChanges` must honor this length in one operation rather than delete
15
+ one code unit per step. Array and object deletion semantics are unchanged.
16
+
17
+ - Updated dependencies [a643bbe]
18
+ - Updated dependencies [0bbf653]
19
+ - Updated dependencies [fb76f77]
20
+ - @homeostate/core@0.2.0
21
+
3
22
  ## 0.1.2
4
23
 
5
24
  ### Patch Changes
package/dist/patching.js CHANGED
@@ -49,6 +49,6 @@ const applyToText = (text, type, index, value) => {
49
49
  if (type === ChangeType.INSERT)
50
50
  text.insert(index, value);
51
51
  else if (type === ChangeType.DELETE)
52
- text.delete(index, 1);
52
+ text.delete(index, typeof value === "number" ? value : 1);
53
53
  };
54
54
  //# sourceMappingURL=patching.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,UAAU,EACV,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,SAA0B,EAC1B,QAAiB,EACX,EAAE;IACR,YAAY,CACV,SAAS,EACT,UAAU,CAAC,SAAS,CAAC,MAAM,EAAc,EAAE,QAAoB,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,SAA0B,EAAE,OAAiB,EAAQ,EAAE;IAC3E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,SAAS,YAAY,OAAO;YAC9B,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;aAC/C,IAAI,SAAS,YAAY,QAAQ;YACpC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;;YAChD,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,GAAY,EACZ,IAAgB,EAChB,GAAW,EACX,KAAc,EACR,EAAE;IACR,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,MAAM,CAAC;QACvB,KAAK,UAAU,CAAC,MAAM;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,UAAU,CAAC,MAAM;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,UAAU,CAAC,OAAO;YACrB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAoB,EAAE,KAAiB,CAAC,CAAC;YACjE,MAAM;IACV,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,IAAc,EACd,IAAgB,EAChB,KAAa,EACb,KAAc,EACR,EAAE;IACR,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,MAAM;YACpB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM;QAER,KAAK,UAAU,CAAC,MAAM;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM;QAER,KAAK,UAAU,CAAC,MAAM;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtB,MAAM;QAER,KAAK,UAAU,CAAC,OAAO;YACrB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAoB,EAAE,KAAiB,CAAC,CAAC;YACpE,MAAM;IACV,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,IAAc,EACd,IAAgB,EAChB,KAAa,EACb,KAAc,EACR,EAAE;IACR,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAe,CAAC,CAAC;SAC/D,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,UAAU,EACV,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,SAA0B,EAC1B,QAAiB,EACX,EAAE;IACR,YAAY,CACV,SAAS,EACT,UAAU,CAAC,SAAS,CAAC,MAAM,EAAc,EAAE,QAAoB,CAAC,CACjE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,SAA0B,EAAE,OAAiB,EAAQ,EAAE;IAC3E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,SAAS,YAAY,OAAO;YAC9B,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;aAC/C,IAAI,SAAS,YAAY,QAAQ;YACpC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;;YAChD,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,GAAa,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,GAAY,EACZ,IAAgB,EAChB,GAAW,EACX,KAAc,EACR,EAAE;IACR,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,MAAM,CAAC;QACvB,KAAK,UAAU,CAAC,MAAM;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,MAAM;QAER,KAAK,UAAU,CAAC,MAAM;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,MAAM;QAER,KAAK,UAAU,CAAC,OAAO;YACrB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAoB,EAAE,KAAiB,CAAC,CAAC;YACjE,MAAM;IACV,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,IAAc,EACd,IAAgB,EAChB,KAAa,EACb,KAAc,EACR,EAAE;IACR,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,MAAM;YACpB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM;QAER,KAAK,UAAU,CAAC,MAAM;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM;QAER,KAAK,UAAU,CAAC,MAAM;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtB,MAAM;QAER,KAAK,UAAU,CAAC,OAAO;YACrB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAoB,EAAE,KAAiB,CAAC,CAAC;YACpE,MAAM;IACV,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,IAAc,EACd,IAAgB,EAChB,KAAa,EACb,KAAc,EACR,EAAE;IACR,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAe,CAAC,CAAC;SAC/D,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homeostate/crdt-loro",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Loro CRDT backend for @homeostate/core",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -28,6 +28,7 @@
28
28
  "default": "./dist/index.js"
29
29
  }
30
30
  },
31
+ "sideEffects": false,
31
32
  "files": [
32
33
  "dist",
33
34
  "src",
@@ -41,7 +42,7 @@
41
42
  "access": "public"
42
43
  },
43
44
  "dependencies": {
44
- "@homeostate/core": "^0.1.2"
45
+ "@homeostate/core": "^0.2.0"
45
46
  },
46
47
  "peerDependencies": {
47
48
  "loro-crdt": "^1.0.0"
package/src/patching.ts CHANGED
@@ -86,5 +86,6 @@ const applyToText = (
86
86
  value: unknown,
87
87
  ): void => {
88
88
  if (type === ChangeType.INSERT) text.insert(index, value as string);
89
- else if (type === ChangeType.DELETE) text.delete(index, 1);
89
+ else if (type === ChangeType.DELETE)
90
+ text.delete(index, typeof value === "number" ? value : 1);
90
91
  };