Skip to content

Latest commit

 

History

History
476 lines (244 loc) · 16 KB

CHANGELOG.md

File metadata and controls

476 lines (244 loc) · 16 KB

1.10.2 (2024-10-11)

Bug fixes

Allow Transform.join to clear incompatible inline content from the node after the join.

1.10.1 (2024-10-10)

Bug fixes

Fix an issue where a deleteRange heuristic could produce unexpected deletion shapes.

Make Transform.join convert between newlines and line break replacement nodes when necessary.

1.10.0 (2024-08-13)

New features

setBlockType can now take a function that computes attributes for the new nodes, instead of a static attribute object.

1.9.0 (2024-05-06)

Bug fixes

Fix an issue in ReplaceAroundStep.map that broke mapping steps that wrapped content over steps that inserted content at the start of the step.

New features

setBlockMarkup now uses the linebreak equivalent node defined in the schema.

1.8.0 (2023-10-01)

New features

The new DocAttrStep can be used to set attributes on the document's top node.

Transform.setDocAttribute can be used to create a DocAttrStep in a transform.

1.7.5 (2023-08-22)

Bug fixes

Fix a failure in replaceRange to drop wrapper nodes when the same wrapper is already present.

1.7.4 (2023-07-28)

Bug fixes

When using setBlockType to convert a code block to a type of node that doesn't contain code, replace newlines with spaces.

1.7.3 (2023-06-01)

Bug fixes

Fix a bug in canSplit that made it interpret the typesAfter argument incorrectly on splits of depth greater than 1.

1.7.2 (2023-05-17)

Bug fixes

Include CommonJS type declarations in the package to please new TypeScript resolution settings.

1.7.1 (2023-01-20)

Bug fixes

Keep content in isolating nodes inside their parent when fitting a replace step.

Transform.setNodeMarkup will no longer clear the node's marks when it isn't given an array of marks.

1.7.0 (2022-08-16)

New features

The new AttrStep (and Transform.setNodeAttribute) can be used to set individual attributes on a node.

AddNodeMarkStep and RemoveNodeMarkStep can now be used to add and remove marks on individual nodes. Transform.addNodeMark/removeNodeMark provide an interface to these in transform objects.

1.6.0 (2022-06-01)

Bug fixes

Allow replace steps to be mapped through changes that delete content next to their start and end points, as long as no delete spans across those points.

New features

MapResult objects now provide information about whether the tokens before, after, and around the position were deleted.

1.5.0 (2022-05-30)

New features

Include TypeScript type declarations.

1.4.2 (2022-04-05)

Bug fixes

Make replacements that span to the end of a textblock more consistent with those ending in the middle of the block.

1.4.1 (2022-03-31)

Bug fixes

replaceRange will now close multiple defining parent nodes when appropriate.

1.4.0 (2022-03-21)

New features

Node specs can now use the definingForContent and definingAsContext properties to opt in to specific parts of the existing defining behavior.

1.3.4 (2022-02-04)

Bug fixes

Make sure that constructing an empty StepMap returns StepMap.empty.

1.3.3 (2021-09-29)

Bug fixes

Fix an inconsistency in deleteRange where it would delete the parent node for ranges covering all textblocks in a given parent.

1.3.2 (2021-04-06)

Bug fixes

Fix a regression in dropPoint that caused it to dereference undefined in some circumstances.

1.3.1 (2021-04-01)

Bug fixes

Fix a crash in Transform.replaceRange when called with under specific circumstances.

Fix an issue where dropPoint could return an invalid drop point.

1.3.0 (2021-03-31)

New features

The various properties of subclasses of Step (ReplaceStep, ReplaceAroundStep, AddMarkStep, and RemoveMarkStep) are now part of the public interface.

1.2.12 (2021-02-20)

Bug fixes

Fix a bug where merging replace steps with the structure flag could create steps that couldn't be applied.

1.2.11 (2021-02-06)

Bug fixes

Fix an issue in Transform.removeMark where the mark type was passed through to be removed instead of the mark itself.

1.2.10 (2021-02-05)

Bug fixes

Fix an issue where Transform.removeMark, when given a mark type, would only remove the first instance from nodes that had multiple marks of the type.

1.2.9 (2021-01-19)

Bug fixes

Fix an issue where AddMarkStep would mark inline nodes with content.

1.2.8 (2020-08-11)

Bug fixes

Fix an issue where fitting a slice at the top level of the document would, in some circumstances, crash.

1.2.7 (2020-07-09)

Bug fixes

Fix an issue where in some cases replace fitting would insert an additional bogus node when fitting content into nodes with strict content restrictions.

1.2.6 (2020-06-10)

Bug fixes

Fix an issue where creating a replace step would sometimes fail due to unmatchable close tokens after the replaced range.

1.2.5 (2020-04-15)

Bug fixes

Rewrite the slice-fitting code used by replaceStep to handle a few more corner cases.

1.2.4 (2020-03-10)

Bug fixes

Fix joinPoint to return check whether the parent node allows a given join.

1.2.3 (2019-12-03)

Bug fixes

Fix a crash in deleteRange that occurred when deleting a region that spans to the ends of two nodes at different depths.

1.2.2 (2019-11-20)

Bug fixes

Rename ES module files to use a .js extension, since Webpack gets confused by .mjs

1.2.1 (2019-11-19)

Bug fixes

The file referred to in the package's module field now is compiled down to ES5.

1.2.0 (2019-11-08)

New features

Add a module field to package json file.

1.1.6 (2019-11-01)

Bug fixes

Fixes an issue where deleting a range from the start of block A to the end of block B would leave you with an empty block of type B.

1.1.5 (2019-10-02)

Bug fixes

Fix crash in building replace steps for open-ended slices with complicated node content expressions.

1.1.4 (2019-08-26)

Bug fixes

Mapping.invert is now part of the documented API (it was intented to be public from the start, but a typo prevented it from showing up in the docs).

Fix an issue where a replace could needlessly drop content when the first node of the slice didn't fit the target context.

replaceRange now more aggressively expands the replaced region if replace fails to place the slice.

1.1.3 (2018-07-03)

Bug fixes

Replacing from a code block into a paragraph that has marks, or similar scenarios that would join content with the wrong marks into a node, no longer crashes.

1.1.2 (2018-06-29)

Bug fixes

Fix issue where replaceRange might create invalid nodes.

1.1.1 (2018-06-26)

Bug fixes

Fix issues in the new dropPoint function.

1.1.0 (2018-06-20)

New features

Transform.getMirror, usable in obscure circumstances for inspecting the mirroring structure or a transform, is now a public method.

New utility function dropPoint, which tries to find a valid position for dropping a slice near a given document position.

1.0.10 (2018-04-15)

Bug fixes

Transform.setBlockType no longer drops marks on the nodes it updates.

1.0.9 (2018-04-05)

Bug fixes

Fix a bug that made replaceStep unable to generate wrapper nodes in some circumstances.

1.0.8 (2018-04-04)

Bug fixes

Fixes an issue where replaceStep could generate slices that internally violated the schema.

1.0.7 (2018-03-21)

Bug fixes

Transform.deleteRange will cover unmatched opening at the start of the deleted range.

1.0.6 (2018-03-15)

Bug fixes

Throw errors, rather than constructing invalid objects, when deserializing from invalid JSON data.

1.0.5 (2018-03-14)

Bug fixes

replaceStep will now return null rather than an empty step when it fails to place the slice.

Avoid duplicating defining parent nodes in replaceRange.

1.0.4 (2018-02-23)

Bug fixes

Fix overeager closing of destination nodes when fitting a slice during replacing.

1.0.3 (2018-02-23)

Bug fixes

Fix a problem where slice-placing didn't handle content matches correctly and might generate invalid steps or fail to generate steps though a valid one exists.

Allows adjacent nodes from an inserted slice to be placed in different parent nodes, allowing Transform.replace to create fits that weren't previously found.

1.0.2 (2018-01-24)

Bug fixes

Fixes a crash in replace.

1.0.1 (2017-11-10)

Bug fixes

The errors raised by Transform.step now properly inherit from Error.

1.0.0 (2017-10-13)

Bug fixes

When setBlockType comes across a textblock that can't be changed due to schema constraints, it skips it instead of failing.

canSplit now returns false when the requested split goes through isolating nodes.

0.24.0 (2017-09-25)

Breaking changes

The setNodeType method on transforms is now more descriptively called setNodeMarkup. The old name will continue to work with a warning until the next release.

0.23.0 (2017-09-13)

Breaking changes

Step.toJSON no longer has a default implementation.

Steps no longer have an offset method. Map them through a map created with StepMap.offset instead.

The clearMarkup method on Transform is no longer supported (you probably needed clearIncompatible anyway).

Bug fixes

Pasting a list item at the start of a non-empty textblock now wraps the textblock in a list.

Marks on open nodes at the left of a slice are no longer dropped by Transform.replace.

New features

StepMap now has a static method offset, which can be used to create a map that offsets all positions by a given distance.

Transform objects now have a clearIncompatible method that can help make sure a node's content matches another node type.

0.22.2 (2017-07-06)

Bug fixes

Fix another bug in the way canSplit interpreted its typesAfter argument.

0.22.1 (2017-07-03)

Bug fixes

Fix crash in canSplit when an array containing null fields is passed as fourth argument.

0.22.0 (2017-06-29)

Bug fixes

canSplit now returns false when given custom after-split node types that don't match the content at that point.

Fixes canLift incorrectly returning null when lifting into an isolating node.

0.21.1 (2017-05-16)

Bug fixes

addMark no longer assumes marks always exclude only themselves.

replaceRange](https://prosemirror.net/docs/ref/version/0.21.0.html#transform.Transform.replaceRange) and deleteRange will no longer expand the range across isolating node boundaries.

0.20.0 (2017-04-03)

Bug fixes

Fixes issue where replacing would sometimes unexpectedly split nodes.

0.18.0 (2017-02-24)

New features

Transform.setNodeType now takes an optional argument to set the new node's attributes.

Steps now provide an offset method, which makes it possible to create a copy the step with its position offset by a given amount.

docChanged is now a property on the Transform class, rather than its Transaction subclass.

Mapping instances now have invert and appendMappingInverted methods to make mapping through them in reverse easier.

0.15.0 (2016-12-10)

Bug fixes

Fix bug where pasted/inserted content would sometimes get incorrectly closed at the right side.

0.13.0 (2016-11-11)

Bug fixes

Fix issue where Transform.replace would, in specific circumstances, unneccessarily drop content.

New features

The new Transform method replaceRange, replaceRangeWith, and deleteRange provide a way to replace and delete content in a 'do what I mean' way, automatically expanding the replaced region over empty parent nodes and including the parent nodes in the inserted content when appropriate.

0.12.1 (2016-11-01)

Bug fixes

Fix bug in Transform.setBlockType when used in a transform that already has steps.

0.12.0 (2016-10-21)

Breaking changes

Mapped positions now count as deleted when the token to the side specified by the assoc parameter is deleted, rather than when both tokens around them are deleted. (This is usually what you already wanted anyway.)

0.11.0 (2016-09-21)

Breaking changes

Moved into a separate module.

The Remapping class was renamed to Mapping and works differently (simpler, grows in only one direction, and has provision for mapping through only a part of it).

Transform objects now build up a Mapping instead of an array of maps.

PosMap was renamed to StepMap to make it clearer that this applies only to a single step (as opposed to Mapping.

The arguments to canSplit and split were changed to make it possible to specify multiple split-off node types for splits with a depth greater than 1.

Rename joinable to canJoin.

New features

Steps can now be merged in some circumstances, which can be useful when storing a lot of them.