chore: version packages#1032
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
loro-crdt-map@1.13.7
loro-crdt-map
1.13.6
Patch Changes
1.13.5
Patch Changes
1727258: Improve text insert and snapshot import performance by avoiding duplicate text boundary validation and skipping eager imported change block parsing.
52d8168: Recover two per-operation editing slowdowns regressed since 1.11.
Both are constant-factor regressions on the per-op (auto-commit) editing path
introduced by the lazy-snapshot work in perf: reduce snapshot read memory retention #985, measured against the 1.11.1
release.
MapHandler/ListHandler/MovableListHandlerinsert validated itsvalue with
ensure_no_regular_container_value, which heap-allocated aVecon each call even for scalar values (the common case). A scalar fast-path now
skips the allocation and traversal entirely.
map create 10^4 key:~19.4ms -> ~10.7ms.
TextHandler::len/len_unicode/len_utf16)took two
DocStatelocks — one to check whether the container state wasdecoded, then another to query the length. These are now consolidated into a
single
DocState::get_text_lenthat takes one lock and one container-storelookup. The lazy-snapshot memory behavior is preserved: a still-lazy
container reads its cached length metadata without materializing the full
richtext state.
bench_text B4 apply(per-op text editing): ~389ms -> ~352ms.1.13.4
Patch Changes
4d577ad: Fix two O(n^2) editing slowdowns.
validated each position by materializing the entire
[0, pos)prefix string,making every
insert/delete/splice/markO(n) and a run of edits O(n^2)(regression since 1.12.0). The boundary check now reads the rope's prefix
caches via the cursor (O(log n)). Unicode-indexed editing was unaffected.
one event batch (e.g. random-position inserts, or many distinct map-key
writes), building the event cloned the growing accumulated diff on every
compose — O(n^2) in the number of fragments. The diffs are now composed in
place. This affected text, map and list events.
scanned the chunk char-by-char, so editing/slicing a large contiguous chunk
(a big insert, a loaded document, or a long run of typed text that merges into
one chunk) was O(chunk length) per op. Chunks that contain no astral-plane
characters (UTF-16) or are pure ASCII (UTF-8) now convert in O(1), covering
essentially all real-world text (ASCII/Latin/CJK).
1.13.0
Minor Changes
ensureMergeable{Counter,Map,List,MovableList,Text,Tree}onLoroMap. A mergeable child lives at a deterministicContainerIDderived from(parent, key, kind), and its visibility is driven by a binary ref the parent map stores at the key, so deletes and kind conflicts resolve through the map's regular LWW.getOrCreateContaineris deprecated for lazy map-child creation; migrate those call sites toensureMergeable*.setContainerandinsertContainerregular semantics are unchanged.1.12.4
Patch Changes
1.12.2
Patch Changes
cc587ed: Add a browser package remapping so Vite/Rolldown production builds load WASM without top-level await or circular wasm wrapper chunks.
Also make the base64 entry easier to bundle with plain esbuild, Rollup, and Next.js Webpack by avoiding static Node builtin
require()calls and top-level await in browser bundles.8f57f4c: Reduce memory usage for read-only access to snapshot-imported documents by avoiding unnecessary lazy container state initialization.
1.12.0
Minor Changes
7dfda87: Make update imports atomic across oplog and document state application.
importandimport_json_updatesnow roll back imported oplog changes when state application fails, so malformed updates do not leave the document with oplog/state divergence.Patch Changes
64aa97c: Harden encoding, snapshot, and import paths against malformed input
import_json_updates): out-of-range compressed peer indices now returnDecodeErrorinstead of being silently accepted as raw peer IDs; mismatchedJsonOpContentvs container type returnsDecodeErrorinstead of panicking.decode_op): malformed op streams (missing delete iterators, type mismatches) now returnDecodeDataCorruptionErrorinstead of panicking.decode_snapshot_blob_meta): truncated or oversized section lengths now returnDecodeDataCorruptionErrorinstead of panicking on slice indexing.import_all): corruptedVersionVector/Frontiersmetadata now returnsDecodeDataCorruptionErrorinstead of panicking.LoroValueKind::from_u8,read_str): invalid byte values and invalid UTF-8 now returnDecodeDataCorruptionErrorinstead of panicking.LoroDoc::diff(): checkout failures during diff calculation are now propagated asLoroErrorinstead of panicking; state restore usesunwrap()to fail-fast on internal errors.try_get_text/list/map/tree/movable_list/counter: now returnNonefor wrong root container types instead of panicking.LoroError::OutOfBoundinstead of panicking.mov_after/mov_beforeon deleted node: returnsTreeNodeDeletedOrNotExistinstead of panicking.JsonChange::op_len: empty ops array returns0instead of panicking.renew_peer_id: avoids theoretical collision withPeerID::MAX.0977ad1: Fix lock-order panics when JavaScript callbacks re-enter Loro APIs.
opCount()no longer reacquires the OpLog lock while the current thread already holds a higher-order lock.LoroText.iter()snapshots text chunks before invoking the user callback, so callback code can safely read or mutate the document.ef100e6: Reduce memory spikes when exporting snapshots from shallow documents.
When a shallow document is re-exported from its existing shallow root with only a small tail of updates, Loro now reuses the stored shallow-root state instead of decoding all containers just to re-encode the same state.
933d5d6: feat: add clearRedo and clearUndo methods
feat(undo): add clearRedo and clearUndo methods #921
17dc6c0: Fix several edge-case contract violations in document, text, and JSONPath APIs.
value(...)comparisons now handle boolean values consistently with other scalar comparisons.ExpandType::BeforeandExpandType::Bothat documented insertion boundaries.LoroError::OutOfBoundinstead of panicking.1.11.1
Patch Changes
1.10.8
Patch Changes
1.10.6
Patch Changes
1.10.5
Patch Changes
1.10.4
Patch Changes
1.10.3
Patch Changes
1.10.2
Patch Changes
1.10.1
Patch Changes
1.10.0
Minor Changes
ce16b52: feat: add sliceDelta method to slice a span of richtext feat: add sliceDelta method to slice a span of richtext #862
Use
text.sliceDelta(start, end)when you need a Quill-style delta for only part of a rich text field (for example, to copy a styled snippet). The method takes UTF-16 indices; usesliceDeltaUtf8if you want to slice by UTF-8 byte offsets instead.Patch Changes
1.9.0
Minor Changes
10a405b: feat: JSONPath rfc9535 feat(jsonpath): rfc9535 #848
Thanks to @zolero for the thorough implementation of JSONPath support!
LoroDoc now supports querying and mutating document data using JSONPath, following the RFC 9535 specification.
🧩 API
📚 Query Examples
Example data setup
10a405b: refactor!: remove deprecated encoding format in v0.x refactor!: remove deprecated encoding format in v0.x #849
Patch Changes
1.8.9
Patch Changes
loro-crdt@1.13.7
Patch Changes