Skip to content

Conversion doesn't check types #116

@andy-zhou

Description

@andy-zhou

Please save me some time and use the following template. In 90% of all issues I can't reproduce the problem because I don't know what exactly you are doing, in which environment, or which y-* version is responsible. Just use the following template even if you think the problem is obvious.

Checklist

Describe the bug
A clear and concise description of what the bug is.

When converting from a Prosemirror Node to a YXmlFragment, y-prosemirror doesn't check that attributes it sets are actually strings.

const type = new Y.XmlElement(node.type.name)
for (const key in node.attrs) {
  const val = node.attrs[key]
  if (val !== null && key !== 'ychange') {
    type.setAttribute(key, val)[Kevin Jahns, 2 years ago:  revert toms refactor](https://sourcegraph.com/github.com/yjs/y-prosemirror/-/commit/e39c91e45e113220b5d66311a24c9397b7af0a25)
  }
}

This is problematic because a Prosemirror Node can have a non-string attribute, such as a number. Using YXmlElement.getElement(...) can therefore return a non-string which claims to be a string.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Open console
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment Information

  • Browser / Node.js [e.g. Chrome, Firefox, Node.js]
  • Yjs version and the versions of the y-* modules you are using [e.g. yjs v13.0.1, y-webrtc v1.2.1]. Use npm ls yjs to find out the exact version you are using.

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingv13-stale-issueRewriting y-prosemirror from scratch. Closing all issues related to the old implementation.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions