braid-text 0.2.3 → 0.2.4

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 (3) hide show
  1. package/index.js +17 -6
  2. package/package.json +1 -1
  3. package/test.js +2 -0
package/index.js CHANGED
@@ -865,17 +865,28 @@ function dt_get(doc, version, agent = null) {
865
865
  ) {
866
866
  for (; i < I; i++) {
867
867
  let version = versions[i].join("-")
868
- if (!after_versions[version]) new_doc.mergeBytes(
868
+ if (after_versions[version]) continue
869
+ let og_i = i
870
+ let content = []
871
+ if (op_run.content?.[i - base_i]) content.push(op_run.content[i - base_i])
872
+ if (!!op_run.content === op_run.fwd)
873
+ while (i + 1 < I && !after_versions[versions[i + 1].join("-")]) {
874
+ i++
875
+ if (op_run.content?.[i - base_i]) content.push(op_run.content[i - base_i])
876
+ }
877
+ content = content.length ? content.join("") : null
878
+
879
+ new_doc.mergeBytes(
869
880
  dt_create_bytes(
870
881
  version,
871
- parentss[i].map((x) => x.join("-")),
882
+ parentss[og_i].map((x) => x.join("-")),
872
883
  op_run.fwd ?
873
884
  (op_run.content ?
874
- op_run.start + (i - base_i) :
885
+ op_run.start + (og_i - base_i) :
875
886
  op_run.start) :
876
887
  op_run.end - 1 - (i - base_i),
877
- op_run.content?.[i - base_i] != null ? 0 : 1,
878
- op_run.content?.[i - base_i]
888
+ op_run.content ? 0 : i - og_i + 1,
889
+ content
879
890
  )
880
891
  )
881
892
  }
@@ -1568,7 +1579,7 @@ function decode_filename(encodedFilename) {
1568
1579
  function validate_version_array(x) {
1569
1580
  if (!Array.isArray(x)) throw new Error(`invalid version array: not an array`)
1570
1581
  x.sort()
1571
- for (xx of x) validate_actor_seq(xx)
1582
+ for (var xx of x) validate_actor_seq(xx)
1572
1583
  }
1573
1584
 
1574
1585
  function validate_actor_seq(x) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "braid-text",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Library for collaborative text over http using braid.",
5
5
  "author": "Braid Working Group",
6
6
  "repository": "braid-org/braidjs",
package/test.js CHANGED
@@ -16,6 +16,7 @@ async function main() {
16
16
  let best_seed = NaN
17
17
  let best_n = Infinity
18
18
  let base = Math.floor(Math.random() * 10000000)
19
+ let st = Date.now()
19
20
 
20
21
  let og_log = console.log
21
22
  console.log = () => {}
@@ -113,6 +114,7 @@ async function main() {
113
114
  }
114
115
  }
115
116
  og_log(`best_seed = ${best_seed}, best_n = ${best_n}`)
117
+ og_log(`time = ${Date.now() - st}`)
116
118
  }
117
119
 
118
120
  function make_random_edit(doc) {