@thomasfosterau/effect-richtext 0.0.0-stage → 0.1.0

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 (176) hide show
  1. package/LICENSE +48 -0
  2. package/README.md +118 -2
  3. package/dist/_virtual/_rolldown/runtime.js +12 -0
  4. package/dist/commands/commands.d.ts +323 -0
  5. package/dist/commands/commands.js +722 -0
  6. package/dist/commands/internal.js +43 -0
  7. package/dist/commands/keymaps.d.ts +46 -0
  8. package/dist/commands/keymaps.js +64 -0
  9. package/dist/commands.d.ts +3 -0
  10. package/dist/commands.js +3 -0
  11. package/dist/compat/commands.d.ts +250 -0
  12. package/dist/compat/commands.js +275 -0
  13. package/dist/compat/internal/core.d.ts +20 -0
  14. package/dist/compat/internal/core.js +148 -0
  15. package/dist/compat/internal/props.js +82 -0
  16. package/dist/compat/keymap.d.ts +21 -0
  17. package/dist/compat/keymap.js +38 -0
  18. package/dist/compat/model.d.ts +893 -0
  19. package/dist/compat/model.js +1212 -0
  20. package/dist/compat/orderedmap.d.ts +74 -0
  21. package/dist/compat/orderedmap.js +124 -0
  22. package/dist/compat/schema-basic.d.ts +38 -0
  23. package/dist/compat/schema-basic.js +238 -0
  24. package/dist/compat/schema-list.d.ts +81 -0
  25. package/dist/compat/schema-list.js +156 -0
  26. package/dist/compat/state.d.ts +415 -0
  27. package/dist/compat/state.js +689 -0
  28. package/dist/compat/test-builder.d.ts +98 -0
  29. package/dist/compat/test-builder.js +197 -0
  30. package/dist/compat/transform.d.ts +458 -0
  31. package/dist/compat/transform.js +803 -0
  32. package/dist/compat/view.d.ts +411 -0
  33. package/dist/compat/view.js +409 -0
  34. package/dist/dropcursor.d.ts +46 -0
  35. package/dist/dropcursor.js +176 -0
  36. package/dist/extensions/defaults.d.ts +716 -0
  37. package/dist/extensions/defaults.js +209 -0
  38. package/dist/extensions/editor.d.ts +246 -0
  39. package/dist/extensions/editor.js +271 -0
  40. package/dist/extensions/extension.d.ts +375 -0
  41. package/dist/extensions/extension.js +233 -0
  42. package/dist/extensions.d.ts +4 -0
  43. package/dist/extensions.js +4 -0
  44. package/dist/gapcursor.d.ts +66 -0
  45. package/dist/gapcursor.js +273 -0
  46. package/dist/history.d.ts +178 -0
  47. package/dist/history.js +412 -0
  48. package/dist/html.d.ts +158 -0
  49. package/dist/html.js +164 -0
  50. package/dist/inputrules.d.ts +271 -0
  51. package/dist/inputrules.js +321 -0
  52. package/dist/internal/attempt.js +15 -0
  53. package/dist/internal/json.js +29 -0
  54. package/dist/keymap/keymap.d.ts +130 -0
  55. package/dist/keymap/keymap.js +159 -0
  56. package/dist/keymap.d.ts +2 -0
  57. package/dist/keymap.js +1 -0
  58. package/dist/markdown/errors.d.ts +23 -0
  59. package/dist/markdown/errors.js +26 -0
  60. package/dist/markdown/from_markdown.d.ts +185 -0
  61. package/dist/markdown/from_markdown.js +266 -0
  62. package/dist/markdown/schema.d.ts +522 -0
  63. package/dist/markdown/schema.js +292 -0
  64. package/dist/markdown/to_markdown.d.ts +251 -0
  65. package/dist/markdown/to_markdown.js +413 -0
  66. package/dist/markdown.d.ts +5 -0
  67. package/dist/markdown.js +5 -0
  68. package/dist/model/attrsCodec.js +48 -0
  69. package/dist/model/comparedeep.js +17 -0
  70. package/dist/model/content.d.ts +232 -0
  71. package/dist/model/content.js +630 -0
  72. package/dist/model/diff.js +66 -0
  73. package/dist/model/dom.d.ts +3 -0
  74. package/dist/model/errors.d.ts +90 -0
  75. package/dist/model/errors.js +76 -0
  76. package/dist/model/fragment.d.ts +131 -0
  77. package/dist/model/fragment.js +262 -0
  78. package/dist/model/from_dom.d.ts +299 -0
  79. package/dist/model/from_dom.js +618 -0
  80. package/dist/model/json.d.ts +37 -0
  81. package/dist/model/json.js +126 -0
  82. package/dist/model/mark.d.ts +73 -0
  83. package/dist/model/mark.js +121 -0
  84. package/dist/model/node.d.ts +267 -0
  85. package/dist/model/node.js +434 -0
  86. package/dist/model/replace.d.ts +78 -0
  87. package/dist/model/replace.js +207 -0
  88. package/dist/model/resolvedpos.d.ts +196 -0
  89. package/dist/model/resolvedpos.js +305 -0
  90. package/dist/model/schema.d.ts +740 -0
  91. package/dist/model/schema.js +451 -0
  92. package/dist/model/to_dom.d.ts +169 -0
  93. package/dist/model/to_dom.js +238 -0
  94. package/dist/model.d.ts +12 -0
  95. package/dist/model.js +12 -0
  96. package/dist/placeholder.d.ts +53 -0
  97. package/dist/placeholder.js +79 -0
  98. package/dist/reactive/observer.d.ts +54 -0
  99. package/dist/reactive/observer.js +61 -0
  100. package/dist/reactive/selectors.d.ts +22 -0
  101. package/dist/reactive/selectors.js +61 -0
  102. package/dist/reactive/stateref.d.ts +72 -0
  103. package/dist/reactive/stateref.js +71 -0
  104. package/dist/reactive/streams.d.ts +83 -0
  105. package/dist/reactive/streams.js +85 -0
  106. package/dist/reactive.d.ts +16 -0
  107. package/dist/reactive.js +26 -0
  108. package/dist/schema-basic.d.ts +448 -0
  109. package/dist/schema-basic.js +269 -0
  110. package/dist/schema-list/commands.d.ts +66 -0
  111. package/dist/schema-list/commands.js +203 -0
  112. package/dist/schema-list.d.ts +92 -0
  113. package/dist/schema-list.js +100 -0
  114. package/dist/state/errors.d.ts +39 -0
  115. package/dist/state/errors.js +32 -0
  116. package/dist/state/plugin.d.ts +232 -0
  117. package/dist/state/plugin.js +82 -0
  118. package/dist/state/selection.d.ts +297 -0
  119. package/dist/state/selection.js +486 -0
  120. package/dist/state/state.d.ts +212 -0
  121. package/dist/state/state.js +489 -0
  122. package/dist/state/transaction.d.ts +145 -0
  123. package/dist/state/transaction.js +195 -0
  124. package/dist/state.d.ts +6 -0
  125. package/dist/state.js +6 -0
  126. package/dist/test-builder.d.ts +3582 -0
  127. package/dist/test-builder.js +239 -0
  128. package/dist/transform/attr_step.d.ts +60 -0
  129. package/dist/transform/attr_step.js +105 -0
  130. package/dist/transform/errors.d.ts +50 -0
  131. package/dist/transform/errors.js +35 -0
  132. package/dist/transform/map.d.ts +182 -0
  133. package/dist/transform/map.js +280 -0
  134. package/dist/transform/mark.js +98 -0
  135. package/dist/transform/mark_set_step.js +69 -0
  136. package/dist/transform/mark_step.d.ts +113 -0
  137. package/dist/transform/mark_step.js +225 -0
  138. package/dist/transform/replace.d.ts +18 -0
  139. package/dist/transform/replace.js +381 -0
  140. package/dist/transform/replace_step.d.ts +109 -0
  141. package/dist/transform/replace_step.js +175 -0
  142. package/dist/transform/step.d.ts +157 -0
  143. package/dist/transform/step.js +168 -0
  144. package/dist/transform/structure.d.ts +89 -0
  145. package/dist/transform/structure.js +350 -0
  146. package/dist/transform/transform.d.ts +248 -0
  147. package/dist/transform/transform.js +373 -0
  148. package/dist/transform.d.ts +10 -0
  149. package/dist/transform.js +10 -0
  150. package/dist/view/browser.js +39 -0
  151. package/dist/view/capturekeys.js +282 -0
  152. package/dist/view/clipboard.d.ts +8 -0
  153. package/dist/view/clipboard.js +245 -0
  154. package/dist/view/decoration.d.ts +339 -0
  155. package/dist/view/decoration.js +566 -0
  156. package/dist/view/dom.d.ts +18 -0
  157. package/dist/view/dom.js +140 -0
  158. package/dist/view/domchange.js +295 -0
  159. package/dist/view/domcoords.d.ts +22 -0
  160. package/dist/view/domcoords.js +448 -0
  161. package/dist/view/domobserver.d.ts +47 -0
  162. package/dist/view/domobserver.js +328 -0
  163. package/dist/view/errors.d.ts +18 -0
  164. package/dist/view/errors.js +21 -0
  165. package/dist/view/input.d.ts +58 -0
  166. package/dist/view/input.js +704 -0
  167. package/dist/view/selection.js +198 -0
  168. package/dist/view/view.d.ts +699 -0
  169. package/dist/view/view.js +623 -0
  170. package/dist/view/viewdesc.d.ts +236 -0
  171. package/dist/view/viewdesc.js +1205 -0
  172. package/dist/view-css.d.ts +43 -0
  173. package/dist/view-css.js +124 -0
  174. package/dist/view.d.ts +6 -0
  175. package/dist/view.js +4 -0
  176. package/package.json +206 -3
@@ -0,0 +1,43 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Scope from "effect/Scope";
3
+ /**
4
+ * The CSS the editor view needs to behave correctly (whitespace
5
+ * handling, selected-node outlines, hidden selections, …). Include it
6
+ * once in every document containing editors.
7
+ *
8
+ * @since 0.1.0
9
+ * @category styles
10
+ */
11
+ export declare const viewCSS: string;
12
+ /**
13
+ * Add a `<style>` element with the given CSS to the document's head.
14
+ * Returns a function that removes it again.
15
+ *
16
+ * @since 0.1.0
17
+ * @category utils
18
+ */
19
+ export declare const injectCSSUnsafe: (doc: Document, css: string) => (() => void);
20
+ /**
21
+ * Add a `<style>` element with the given CSS to the document's head for
22
+ * the lifetime of the current scope.
23
+ *
24
+ * @since 0.1.0
25
+ * @category utils
26
+ */
27
+ export declare const injectCSS: (doc: Document, css: string) => Effect.Effect<HTMLStyleElement, never, Scope.Scope>;
28
+ /**
29
+ * Add the view's stylesheet (`viewCSS`) to the document for the
30
+ * lifetime of the current scope.
31
+ *
32
+ * @since 0.1.0
33
+ * @category utils
34
+ */
35
+ export declare const injectViewCSS: (doc: Document) => Effect.Effect<HTMLStyleElement, never, Scope.Scope>;
36
+ /**
37
+ * Add the view's stylesheet (`viewCSS`) to the document. Returns a
38
+ * function that removes it again.
39
+ *
40
+ * @since 0.1.0
41
+ * @category utils
42
+ */
43
+ export declare const injectViewCSSUnsafe: (doc: Document) => (() => void);
@@ -0,0 +1,124 @@
1
+ import * as Effect from "effect/Effect";
2
+ // src/view-css.ts
3
+ /**
4
+ * The editor view's stylesheet (`prosemirror-view`'s
5
+ * `style/prosemirror.css`), as a string, plus helpers to add
6
+ * stylesheets to a document.
7
+ *
8
+ * ```ts skip-type-checking
9
+ * // Scoped: the style element is removed when the scope closes.
10
+ * yield* injectViewCSS(document)
11
+ * // Or, outside of Effect:
12
+ * const remove = injectViewCSSUnsafe(document)
13
+ * ```
14
+ *
15
+ * @since 0.1.0
16
+ */
17
+ /**
18
+ * The CSS the editor view needs to behave correctly (whitespace
19
+ * handling, selected-node outlines, hidden selections, …). Include it
20
+ * once in every document containing editors.
21
+ *
22
+ * @since 0.1.0
23
+ * @category styles
24
+ */
25
+ const viewCSS = `.ProseMirror {
26
+ position: relative;
27
+ }
28
+
29
+ .ProseMirror {
30
+ word-wrap: break-word;
31
+ white-space: pre-wrap;
32
+ white-space: break-spaces;
33
+ -webkit-font-variant-ligatures: none;
34
+ font-variant-ligatures: none;
35
+ font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
36
+ }
37
+
38
+ .ProseMirror pre {
39
+ white-space: pre-wrap;
40
+ }
41
+
42
+ .ProseMirror li {
43
+ position: relative;
44
+ }
45
+
46
+ .ProseMirror-hideselection *::selection { background: transparent; }
47
+ .ProseMirror-hideselection *::-moz-selection { background: transparent; }
48
+ .ProseMirror-hideselection { caret-color: transparent; }
49
+
50
+ /* See https://code.haverbeke.berlin/prosemirror/prosemirror/issues/1421#issuecomment-1759320191 */
51
+ .ProseMirror [draggable][contenteditable=false] { user-select: text }
52
+
53
+ .ProseMirror-selectednode {
54
+ outline: 2px solid #8cf;
55
+ }
56
+
57
+ /* Make sure li selections wrap around markers */
58
+
59
+ li.ProseMirror-selectednode {
60
+ outline: none;
61
+ }
62
+
63
+ li.ProseMirror-selectednode:after {
64
+ content: "";
65
+ position: absolute;
66
+ left: -32px;
67
+ right: -2px; top: -2px; bottom: -2px;
68
+ border: 2px solid #8cf;
69
+ pointer-events: none;
70
+ }
71
+
72
+ /* Protect against generic img rules */
73
+
74
+ img.ProseMirror-separator {
75
+ display: inline !important;
76
+ border: none !important;
77
+ margin: 0 !important;
78
+ }
79
+ `;
80
+ /**
81
+ * Add a `<style>` element with the given CSS to the document's head.
82
+ * Returns a function that removes it again.
83
+ *
84
+ * @since 0.1.0
85
+ * @category utils
86
+ */
87
+ const injectCSSUnsafe = (doc, css) => {
88
+ const style = doc.createElement("style");
89
+ style.textContent = css;
90
+ doc.head.appendChild(style);
91
+ return () => {
92
+ style.remove();
93
+ };
94
+ };
95
+ /**
96
+ * Add a `<style>` element with the given CSS to the document's head for
97
+ * the lifetime of the current scope.
98
+ *
99
+ * @since 0.1.0
100
+ * @category utils
101
+ */
102
+ const injectCSS = (doc, css) => Effect.acquireRelease(Effect.sync(() => {
103
+ const style = doc.createElement("style");
104
+ style.textContent = css;
105
+ doc.head.appendChild(style);
106
+ return style;
107
+ }), (style) => Effect.sync(() => style.remove()));
108
+ /**
109
+ * Add the view's stylesheet (`viewCSS`) to the document for the
110
+ * lifetime of the current scope.
111
+ *
112
+ * @since 0.1.0
113
+ * @category utils
114
+ */
115
+ const injectViewCSS = (doc) => injectCSS(doc, viewCSS);
116
+ /**
117
+ * Add the view's stylesheet (`viewCSS`) to the document. Returns a
118
+ * function that removes it again.
119
+ *
120
+ * @since 0.1.0
121
+ * @category utils
122
+ */
123
+ const injectViewCSSUnsafe = (doc) => injectCSSUnsafe(doc, viewCSS);
124
+ export { injectCSS, injectCSSUnsafe, injectViewCSS, injectViewCSSUnsafe, viewCSS };
package/dist/view.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Decoration, DecorationAttrs, DecorationGroup, DecorationMapOptions, DecorationSet, DecorationSource, DecorationType, InlineDecorationSpec, InlineType, NodeType, WidgetConstructor, WidgetDecorationSpec, WidgetType, viewDecorations } from "./view/decoration.js";
2
+ import { Rect, TextblockDir } from "./view/domcoords.js";
3
+ import { ViewError, isViewError } from "./view/errors.js";
4
+ import { ClipboardSerialization, ClipboardSerializer, DOMEventMap, DirectEditorProps, EditorProps, EditorView, EditorViewTypeId, HandlerResult, MarkViews, NodeViews, PosAtCoords, ViewPlace, ViewUpdate, __endComposition, __parseFromClipboard } from "./view/view.js";
5
+ import { MarkView, MarkViewConstructor, NodeView, NodeViewConstructor, ViewMutationRecord } from "./view/viewdesc.js";
6
+ export { ClipboardSerialization, ClipboardSerializer, DOMEventMap, Decoration, DecorationAttrs, DecorationGroup, DecorationMapOptions, DecorationSet, DecorationSource, DecorationType, DirectEditorProps, EditorProps, EditorView, EditorViewTypeId, HandlerResult, InlineDecorationSpec, InlineType, type MarkView, type MarkViewConstructor, MarkViews, NodeType, type NodeView, type NodeViewConstructor, NodeViews, PosAtCoords, type Rect, type TextblockDir, ViewError, type ViewMutationRecord, ViewPlace, ViewUpdate, WidgetConstructor, WidgetDecorationSpec, WidgetType, __endComposition, __parseFromClipboard, isViewError, viewDecorations };
package/dist/view.js ADDED
@@ -0,0 +1,4 @@
1
+ import { Decoration, DecorationGroup, DecorationSet, InlineType, NodeType, WidgetType, viewDecorations } from "./view/decoration.js";
2
+ import { ViewError, isViewError } from "./view/errors.js";
3
+ import { EditorView, EditorViewTypeId, __endComposition, __parseFromClipboard } from "./view/view.js";
4
+ export { Decoration, DecorationGroup, DecorationSet, EditorView, EditorViewTypeId, InlineType, NodeType, ViewError, WidgetType, __endComposition, __parseFromClipboard, isViewError, viewDecorations };
package/package.json CHANGED
@@ -1,6 +1,209 @@
1
1
  {
2
+ "$schema": "https://www.schemastore.org/package",
2
3
  "name": "@thomasfosterau/effect-richtext",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
4
+ "version": "0.1.0",
5
+ "description": "An Effect-native reimplementation of the ProseMirror rich text editing toolkit: typed schemas and documents, transforms, editor state, a DOM view, keymaps, commands, history, input rules, Markdown and HTML serializers, typed extensions and a ProseMirror-compatible facade.",
6
+ "keywords": [
7
+ "contenteditable",
8
+ "editor",
9
+ "effect",
10
+ "markdown",
11
+ "prosemirror",
12
+ "rich-text",
13
+ "typescript",
14
+ "wysiwyg"
15
+ ],
16
+ "homepage": "https://github.com/thomasfosterau/effect-richtext#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/thomasfosterau/effect-richtext/issues"
19
+ },
20
+ "license": "MIT",
21
+ "author": "Thomas Foster <me@thomasfoster.au>",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/thomasfosterau/effect-richtext.git"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "README.md",
29
+ "LICENSE"
30
+ ],
31
+ "type": "module",
32
+ "sideEffects": [
33
+ "./dist/test-builder.js",
34
+ "./dist/gapcursor.js",
35
+ "./dist/compat/*.js"
36
+ ],
37
+ "exports": {
38
+ "./package.json": "./package.json",
39
+ "./model": {
40
+ "types": "./dist/model.d.ts",
41
+ "default": "./dist/model.js"
42
+ },
43
+ "./transform": {
44
+ "types": "./dist/transform.d.ts",
45
+ "default": "./dist/transform.js"
46
+ },
47
+ "./state": {
48
+ "types": "./dist/state.d.ts",
49
+ "default": "./dist/state.js"
50
+ },
51
+ "./view": {
52
+ "types": "./dist/view.d.ts",
53
+ "default": "./dist/view.js"
54
+ },
55
+ "./view-css": {
56
+ "types": "./dist/view-css.d.ts",
57
+ "default": "./dist/view-css.js"
58
+ },
59
+ "./keymap": {
60
+ "types": "./dist/keymap.d.ts",
61
+ "default": "./dist/keymap.js"
62
+ },
63
+ "./commands": {
64
+ "types": "./dist/commands.d.ts",
65
+ "default": "./dist/commands.js"
66
+ },
67
+ "./history": {
68
+ "types": "./dist/history.d.ts",
69
+ "default": "./dist/history.js"
70
+ },
71
+ "./inputrules": {
72
+ "types": "./dist/inputrules.d.ts",
73
+ "default": "./dist/inputrules.js"
74
+ },
75
+ "./gapcursor": {
76
+ "types": "./dist/gapcursor.d.ts",
77
+ "default": "./dist/gapcursor.js"
78
+ },
79
+ "./dropcursor": {
80
+ "types": "./dist/dropcursor.d.ts",
81
+ "default": "./dist/dropcursor.js"
82
+ },
83
+ "./schema-basic": {
84
+ "types": "./dist/schema-basic.d.ts",
85
+ "default": "./dist/schema-basic.js"
86
+ },
87
+ "./schema-list": {
88
+ "types": "./dist/schema-list.d.ts",
89
+ "default": "./dist/schema-list.js"
90
+ },
91
+ "./markdown": {
92
+ "types": "./dist/markdown.d.ts",
93
+ "default": "./dist/markdown.js"
94
+ },
95
+ "./test-builder": {
96
+ "types": "./dist/test-builder.d.ts",
97
+ "default": "./dist/test-builder.js"
98
+ },
99
+ "./html": {
100
+ "types": "./dist/html.d.ts",
101
+ "default": "./dist/html.js"
102
+ },
103
+ "./placeholder": {
104
+ "types": "./dist/placeholder.d.ts",
105
+ "default": "./dist/placeholder.js"
106
+ },
107
+ "./reactive": {
108
+ "types": "./dist/reactive.d.ts",
109
+ "default": "./dist/reactive.js"
110
+ },
111
+ "./extensions": {
112
+ "types": "./dist/extensions.d.ts",
113
+ "default": "./dist/extensions.js"
114
+ },
115
+ "./compat/model": {
116
+ "types": "./dist/compat/model.d.ts",
117
+ "default": "./dist/compat/model.js"
118
+ },
119
+ "./compat/transform": {
120
+ "types": "./dist/compat/transform.d.ts",
121
+ "default": "./dist/compat/transform.js"
122
+ },
123
+ "./compat/state": {
124
+ "types": "./dist/compat/state.d.ts",
125
+ "default": "./dist/compat/state.js"
126
+ },
127
+ "./compat/view": {
128
+ "types": "./dist/compat/view.d.ts",
129
+ "default": "./dist/compat/view.js"
130
+ },
131
+ "./compat/keymap": {
132
+ "types": "./dist/compat/keymap.d.ts",
133
+ "default": "./dist/compat/keymap.js"
134
+ },
135
+ "./compat/commands": {
136
+ "types": "./dist/compat/commands.d.ts",
137
+ "default": "./dist/compat/commands.js"
138
+ },
139
+ "./compat/schema-basic": {
140
+ "types": "./dist/compat/schema-basic.d.ts",
141
+ "default": "./dist/compat/schema-basic.js"
142
+ },
143
+ "./compat/schema-list": {
144
+ "types": "./dist/compat/schema-list.d.ts",
145
+ "default": "./dist/compat/schema-list.js"
146
+ },
147
+ "./compat/test-builder": {
148
+ "types": "./dist/compat/test-builder.d.ts",
149
+ "default": "./dist/compat/test-builder.js"
150
+ },
151
+ "./compat/orderedmap": {
152
+ "types": "./dist/compat/orderedmap.d.ts",
153
+ "default": "./dist/compat/orderedmap.js"
154
+ }
155
+ },
156
+ "publishConfig": {
157
+ "access": "public"
158
+ },
159
+ "dependencies": {
160
+ "markdown-it": "^15.0.3",
161
+ "rope-sequence": "^1.3.4",
162
+ "w3c-keyname": "^2.2.8"
163
+ },
164
+ "devDependencies": {
165
+ "@changesets/changelog-github": "^1.0.1",
166
+ "@changesets/cli": "^3.0.3",
167
+ "@effect/docgen": "^4.1.2",
168
+ "@effect/language-service": "^0.87.5",
169
+ "@effect/platform-node": "4.1.2",
170
+ "@effect/tsgo": "0.67.3",
171
+ "@effect/vitest": "4.1.2",
172
+ "@enfect/oxlint": "0.10.0",
173
+ "@types/node": "^26.6.6",
174
+ "@typescript/native": "npm:typescript@7.0.2",
175
+ "@vitest/browser-playwright": "5.1.0",
176
+ "@vitest/coverage-istanbul": "5.1.0",
177
+ "effect": "4.1.2",
178
+ "fallow": "3.40.0",
179
+ "happy-dom": "^21.0.4",
180
+ "playwright": "^1.64.1",
181
+ "prosemirror-commands": "^1.7.2",
182
+ "prosemirror-history": "^1.5.1",
183
+ "prosemirror-model": "^1.25.12",
184
+ "prosemirror-schema-list": "^1.6.0",
185
+ "prosemirror-state": "^1.4.4",
186
+ "prosemirror-test-builder": "^1.1.1",
187
+ "prosemirror-transform": "^1.12.5",
188
+ "prosemirror-view": "^1.42.9",
189
+ "tsx": "^4.23.15",
190
+ "typescript": "npm:@typescript/typescript6@6.0.2",
191
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.5.0",
192
+ "vite-plus": "1.5.0",
193
+ "vitest": "5.1.0"
194
+ },
195
+ "peerDependencies": {
196
+ "effect": "^4.0.0"
197
+ },
198
+ "engines": {
199
+ "node": ">=22",
200
+ "pnpm": ">=11"
201
+ },
202
+ "scripts": {
203
+ "changeset": "changeset",
204
+ "version": "changeset version && vp fmt && pnpm install --lockfile-only",
205
+ "release": "vp run build && pnpm publish --access public --no-git-checks --ignore-scripts && changeset tag",
206
+ "fallow": "fallow --summary",
207
+ "fallow:audit": "fallow audit"
208
+ }
6
209
  }