@payloadcms/richtext-lexical 4.0.0-internal.38b7f1d → 4.0.0-internal.5d5a2b2

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 (581) hide show
  1. package/dist/@types/assets.d.js +2 -0
  2. package/dist/@types/assets.d.js.map +1 -0
  3. package/dist/cell/rscEntry.d.ts +1 -1
  4. package/dist/cell/rscEntry.d.ts.map +1 -1
  5. package/dist/cell/rscEntry.js +5 -5
  6. package/dist/cell/rscEntry.js.map +1 -1
  7. package/dist/exports/client/Field-VYBSMSRY.js +2 -0
  8. package/dist/exports/client/Field-VYBSMSRY.js.map +7 -0
  9. package/dist/exports/client/{RelationshipComponent-5RONAYJM.js → RelationshipComponent-YCPAKOL7.js} +2 -2
  10. package/dist/exports/client/RelationshipComponent-YCPAKOL7.js.map +7 -0
  11. package/dist/exports/client/bundled.css +1 -1
  12. package/dist/exports/client/chunk-5VIL27GI.js +2 -0
  13. package/dist/exports/client/chunk-5VIL27GI.js.map +7 -0
  14. package/dist/exports/client/{chunk-FTT5KJ6W.js → chunk-LH634DPU.js} +1 -1
  15. package/dist/exports/client/chunk-LH634DPU.js.map +7 -0
  16. package/dist/exports/client/{chunk-BZZVLW4U.js → chunk-RJ5MAOKZ.js} +1 -1
  17. package/dist/exports/client/chunk-RJ5MAOKZ.js.map +7 -0
  18. package/dist/exports/client/chunk-UD4DQ4AK.js +2 -0
  19. package/dist/exports/client/chunk-UD4DQ4AK.js.map +7 -0
  20. package/dist/exports/client/chunk-ZYXHC5CY.js +2 -0
  21. package/dist/exports/client/chunk-ZYXHC5CY.js.map +7 -0
  22. package/dist/exports/client/component-PHZQBOJE.js +2 -0
  23. package/dist/exports/client/component-PHZQBOJE.js.map +7 -0
  24. package/dist/exports/client/componentInline-R3EPNYWF.js +2 -0
  25. package/dist/exports/client/index.d.ts +1 -0
  26. package/dist/exports/client/index.d.ts.map +1 -1
  27. package/dist/exports/client/index.js +25 -25
  28. package/dist/exports/client/index.js.map +4 -4
  29. package/dist/exports/react/index.d.ts +1 -1
  30. package/dist/exports/react/index.d.ts.map +1 -1
  31. package/dist/exports/react/index.js.map +1 -1
  32. package/dist/exports/server/rsc.browser.d.ts +11 -0
  33. package/dist/exports/server/rsc.browser.d.ts.map +1 -0
  34. package/dist/exports/server/rsc.browser.js +10 -0
  35. package/dist/exports/server/rsc.browser.js.map +1 -0
  36. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
  37. package/dist/features/blockquote/server/index.d.ts +1 -4
  38. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  39. package/dist/features/blockquote/server/index.js +2 -0
  40. package/dist/features/blockquote/server/index.js.map +1 -1
  41. package/dist/features/blockquote/server/schema.d.ts +8 -0
  42. package/dist/features/blockquote/server/schema.d.ts.map +1 -0
  43. package/dist/features/blockquote/server/schema.js +15 -0
  44. package/dist/features/blockquote/server/schema.js.map +1 -0
  45. package/dist/features/blocks/client/component/index.d.ts +3 -2
  46. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  47. package/dist/features/blocks/client/component/index.js +17 -10
  48. package/dist/features/blocks/client/component/index.js.map +1 -1
  49. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
  50. package/dist/features/blocks/client/componentInline/index.d.ts +3 -2
  51. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  52. package/dist/features/blocks/client/componentInline/index.js +16 -9
  53. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  54. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
  55. package/dist/features/blocks/client/markdown/markdownTransformer.js +4 -4
  56. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
  57. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  58. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  59. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  60. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +2 -2
  61. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  62. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  63. package/dist/features/blocks/client/plugin/index.d.ts +1 -1
  64. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  65. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  66. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  67. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +1 -0
  68. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  69. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +1 -2
  70. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
  71. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
  72. package/dist/features/blocks/server/index.d.ts +1 -0
  73. package/dist/features/blocks/server/index.d.ts.map +1 -1
  74. package/dist/features/blocks/server/index.js +20 -66
  75. package/dist/features/blocks/server/index.js.map +1 -1
  76. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
  77. package/dist/features/blocks/server/markdown/markdownTransformer.js +4 -4
  78. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
  79. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -18
  80. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  81. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  82. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +2 -10
  83. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  84. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  85. package/dist/features/blocks/server/schema.d.ts +45 -0
  86. package/dist/features/blocks/server/schema.d.ts.map +1 -0
  87. package/dist/features/blocks/server/schema.js +139 -0
  88. package/dist/features/blocks/server/schema.js.map +1 -0
  89. package/dist/features/blocks/server/validate.d.ts +1 -2
  90. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  91. package/dist/features/blocks/server/validate.js.map +1 -1
  92. package/dist/features/converters/htmlToLexical/index.d.ts +1 -1
  93. package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
  94. package/dist/features/converters/htmlToLexical/index.js.map +1 -1
  95. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts +1 -1
  96. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.d.ts.map +1 -1
  97. package/dist/features/converters/lexicalToHtml/async/converters/blockquote.js.map +1 -1
  98. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts +1 -1
  99. package/dist/features/converters/lexicalToHtml/async/converters/heading.d.ts.map +1 -1
  100. package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
  101. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts +1 -1
  102. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.d.ts.map +1 -1
  103. package/dist/features/converters/lexicalToHtml/async/converters/horizontalRule.js.map +1 -1
  104. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts +1 -1
  105. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.d.ts.map +1 -1
  106. package/dist/features/converters/lexicalToHtml/async/converters/linebreak.js.map +1 -1
  107. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts +1 -1
  108. package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
  109. package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
  110. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts +1 -1
  111. package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
  112. package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
  113. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts +1 -1
  114. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.d.ts.map +1 -1
  115. package/dist/features/converters/lexicalToHtml/async/converters/paragraph.js.map +1 -1
  116. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts +1 -1
  117. package/dist/features/converters/lexicalToHtml/async/converters/tab.d.ts.map +1 -1
  118. package/dist/features/converters/lexicalToHtml/async/converters/tab.js.map +1 -1
  119. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts +1 -1
  120. package/dist/features/converters/lexicalToHtml/async/converters/table.d.ts.map +1 -1
  121. package/dist/features/converters/lexicalToHtml/async/converters/table.js +1 -1
  122. package/dist/features/converters/lexicalToHtml/async/converters/table.js.map +1 -1
  123. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts +1 -1
  124. package/dist/features/converters/lexicalToHtml/async/converters/text.d.ts.map +1 -1
  125. package/dist/features/converters/lexicalToHtml/async/converters/text.js.map +1 -1
  126. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts +1 -1
  127. package/dist/features/converters/lexicalToHtml/async/converters/upload.d.ts.map +1 -1
  128. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  129. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts +1 -1
  130. package/dist/features/converters/lexicalToHtml/async/defaultConverters.d.ts.map +1 -1
  131. package/dist/features/converters/lexicalToHtml/async/defaultConverters.js.map +1 -1
  132. package/dist/features/converters/lexicalToHtml/async/types.d.ts +15 -16
  133. package/dist/features/converters/lexicalToHtml/async/types.d.ts.map +1 -1
  134. package/dist/features/converters/lexicalToHtml/async/types.js.map +1 -1
  135. package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
  136. package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
  137. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts +1 -1
  138. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.d.ts.map +1 -1
  139. package/dist/features/converters/lexicalToHtml/sync/converters/blockquote.js.map +1 -1
  140. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts +1 -1
  141. package/dist/features/converters/lexicalToHtml/sync/converters/heading.d.ts.map +1 -1
  142. package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
  143. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts +1 -1
  144. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.d.ts.map +1 -1
  145. package/dist/features/converters/lexicalToHtml/sync/converters/horizontalRule.js.map +1 -1
  146. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts +1 -1
  147. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.d.ts.map +1 -1
  148. package/dist/features/converters/lexicalToHtml/sync/converters/linebreak.js.map +1 -1
  149. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts +1 -1
  150. package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
  151. package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
  152. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts +1 -1
  153. package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
  154. package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
  155. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts +1 -1
  156. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.d.ts.map +1 -1
  157. package/dist/features/converters/lexicalToHtml/sync/converters/paragraph.js.map +1 -1
  158. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts +1 -1
  159. package/dist/features/converters/lexicalToHtml/sync/converters/tab.d.ts.map +1 -1
  160. package/dist/features/converters/lexicalToHtml/sync/converters/tab.js.map +1 -1
  161. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts +1 -1
  162. package/dist/features/converters/lexicalToHtml/sync/converters/table.d.ts.map +1 -1
  163. package/dist/features/converters/lexicalToHtml/sync/converters/table.js +1 -1
  164. package/dist/features/converters/lexicalToHtml/sync/converters/table.js.map +1 -1
  165. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts +1 -1
  166. package/dist/features/converters/lexicalToHtml/sync/converters/text.d.ts.map +1 -1
  167. package/dist/features/converters/lexicalToHtml/sync/converters/text.js.map +1 -1
  168. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts +1 -1
  169. package/dist/features/converters/lexicalToHtml/sync/converters/upload.d.ts.map +1 -1
  170. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  171. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts +1 -1
  172. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.d.ts.map +1 -1
  173. package/dist/features/converters/lexicalToHtml/sync/defaultConverters.js.map +1 -1
  174. package/dist/features/converters/lexicalToHtml/sync/types.d.ts +15 -16
  175. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  176. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  177. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -4
  178. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  179. package/dist/features/converters/lexicalToJSX/Component/index.js +5 -4
  180. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  181. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts +1 -1
  182. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.d.ts.map +1 -1
  183. package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
  184. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts +1 -1
  185. package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
  186. package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
  187. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts +1 -1
  188. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.d.ts.map +1 -1
  189. package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
  190. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts +1 -1
  191. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.d.ts.map +1 -1
  192. package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
  193. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts +1 -1
  194. package/dist/features/converters/lexicalToJSX/converter/converters/link.d.ts.map +1 -1
  195. package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
  196. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts +1 -1
  197. package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
  198. package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
  199. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts +1 -1
  200. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.d.ts.map +1 -1
  201. package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
  202. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts +1 -1
  203. package/dist/features/converters/lexicalToJSX/converter/converters/tab.d.ts.map +1 -1
  204. package/dist/features/converters/lexicalToJSX/converter/converters/tab.js.map +1 -1
  205. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts +1 -1
  206. package/dist/features/converters/lexicalToJSX/converter/converters/table.d.ts.map +1 -1
  207. package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
  208. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts +1 -1
  209. package/dist/features/converters/lexicalToJSX/converter/converters/text.d.ts.map +1 -1
  210. package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
  211. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts +1 -1
  212. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  213. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  214. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts +1 -1
  215. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.d.ts.map +1 -1
  216. package/dist/features/converters/lexicalToJSX/converter/defaultConverters.js.map +1 -1
  217. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +1 -1
  218. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  219. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  220. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +13 -15
  221. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  222. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  223. package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
  224. package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +1 -1
  225. package/dist/features/converters/lexicalToPlaintext/shared/findConverterForNode.js.map +1 -1
  226. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts +13 -15
  227. package/dist/features/converters/lexicalToPlaintext/sync/types.d.ts.map +1 -1
  228. package/dist/features/converters/lexicalToPlaintext/sync/types.js.map +1 -1
  229. package/dist/features/converters/markdownToLexical/index.d.ts +1 -1
  230. package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
  231. package/dist/features/converters/markdownToLexical/index.js.map +1 -1
  232. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.css +4 -4
  233. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.css +1 -1
  234. package/dist/features/experimental_table/server/index.d.ts +1 -6
  235. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  236. package/dist/features/experimental_table/server/index.js +4 -0
  237. package/dist/features/experimental_table/server/index.js.map +1 -1
  238. package/dist/features/experimental_table/server/schema.d.ts +27 -0
  239. package/dist/features/experimental_table/server/schema.d.ts.map +1 -0
  240. package/dist/features/experimental_table/server/schema.js +107 -0
  241. package/dist/features/experimental_table/server/schema.js.map +1 -0
  242. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
  243. package/dist/features/heading/server/index.d.ts +2 -4
  244. package/dist/features/heading/server/index.d.ts.map +1 -1
  245. package/dist/features/heading/server/index.js +2 -0
  246. package/dist/features/heading/server/index.js.map +1 -1
  247. package/dist/features/heading/server/schema.d.ts +10 -0
  248. package/dist/features/heading/server/schema.d.ts.map +1 -0
  249. package/dist/features/heading/server/schema.js +37 -0
  250. package/dist/features/heading/server/schema.js.map +1 -0
  251. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  252. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  253. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  254. package/dist/features/horizontalRule/server/index.d.ts +1 -0
  255. package/dist/features/horizontalRule/server/index.d.ts.map +1 -1
  256. package/dist/features/horizontalRule/server/index.js +2 -0
  257. package/dist/features/horizontalRule/server/index.js.map +1 -1
  258. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -5
  259. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  260. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  261. package/dist/features/horizontalRule/server/schema.d.ts +7 -0
  262. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -0
  263. package/dist/features/horizontalRule/server/schema.js +25 -0
  264. package/dist/features/horizontalRule/server/schema.js.map +1 -0
  265. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
  266. package/dist/features/link/client/index.d.ts.map +1 -1
  267. package/dist/features/link/client/index.js.map +1 -1
  268. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  269. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  270. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  271. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  272. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +2 -2
  273. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +1 -1
  274. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -1
  275. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -1
  276. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  277. package/dist/features/link/markdownTransformer.d.ts +1 -1
  278. package/dist/features/link/markdownTransformer.d.ts.map +1 -1
  279. package/dist/features/link/markdownTransformer.js.map +1 -1
  280. package/dist/features/link/markdownTransformer.spec.js.map +1 -1
  281. package/dist/features/link/nodes/AutoLinkNode.d.ts +3 -3
  282. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  283. package/dist/features/link/nodes/AutoLinkNode.js +2 -1
  284. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  285. package/dist/features/link/nodes/LinkNode.d.ts +3 -3
  286. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  287. package/dist/features/link/nodes/LinkNode.js +2 -1
  288. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  289. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  290. package/dist/features/link/server/baseFields.js.map +1 -1
  291. package/dist/features/link/server/graphQLPopulationPromise.d.ts +1 -1
  292. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
  293. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -1
  294. package/dist/features/link/server/index.d.ts +2 -1
  295. package/dist/features/link/server/index.d.ts.map +1 -1
  296. package/dist/features/link/server/index.js +3 -0
  297. package/dist/features/link/server/index.js.map +1 -1
  298. package/dist/features/link/server/schema.d.ts +32 -0
  299. package/dist/features/link/server/schema.d.ts.map +1 -0
  300. package/dist/features/link/server/schema.js +169 -0
  301. package/dist/features/link/server/schema.js.map +1 -0
  302. package/dist/features/link/server/validate.d.ts +1 -1
  303. package/dist/features/link/server/validate.d.ts.map +1 -1
  304. package/dist/features/link/server/validate.js.map +1 -1
  305. package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
  306. package/dist/features/lists/checklist/server/index.js +3 -0
  307. package/dist/features/lists/checklist/server/index.js.map +1 -1
  308. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
  309. package/dist/features/lists/orderedList/server/index.js +3 -0
  310. package/dist/features/lists/orderedList/server/index.js.map +1 -1
  311. package/dist/features/lists/plugin/index.d.ts +0 -9
  312. package/dist/features/lists/plugin/index.d.ts.map +1 -1
  313. package/dist/features/lists/plugin/index.js.map +1 -1
  314. package/dist/features/lists/shared/markdown.d.ts.map +1 -1
  315. package/dist/features/lists/shared/schema.d.ts +18 -0
  316. package/dist/features/lists/shared/schema.d.ts.map +1 -0
  317. package/dist/features/lists/shared/schema.js +62 -0
  318. package/dist/features/lists/shared/schema.js.map +1 -0
  319. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
  320. package/dist/features/lists/unorderedList/server/index.js +3 -0
  321. package/dist/features/lists/unorderedList/server/index.js.map +1 -1
  322. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +1 -1
  323. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  324. package/dist/features/relationship/client/components/RelationshipComponent.js +2 -2
  325. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  326. package/dist/features/relationship/client/components/index.css +2 -2
  327. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  328. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  329. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  330. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  331. package/dist/features/relationship/client/plugins/index.d.ts +1 -1
  332. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
  333. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  334. package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
  335. package/dist/features/relationship/client/utils/useEnabledRelationships.js +9 -40
  336. package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
  337. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +1 -1
  338. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
  339. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
  340. package/dist/features/relationship/server/index.d.ts +1 -0
  341. package/dist/features/relationship/server/index.d.ts.map +1 -1
  342. package/dist/features/relationship/server/index.js +2 -0
  343. package/dist/features/relationship/server/index.js.map +1 -1
  344. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -10
  345. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  346. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  347. package/dist/features/relationship/server/schema.d.ts +28 -0
  348. package/dist/features/relationship/server/schema.d.ts.map +1 -0
  349. package/dist/features/relationship/server/schema.js +80 -0
  350. package/dist/features/relationship/server/schema.js.map +1 -0
  351. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +23 -0
  352. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -0
  353. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +34 -0
  354. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -0
  355. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
  356. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
  357. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
  358. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  359. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  360. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +1 -2
  361. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  362. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +4 -4
  363. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  364. package/dist/features/toolbars/types.d.ts +1 -1
  365. package/dist/features/toolbars/types.d.ts.map +1 -1
  366. package/dist/features/toolbars/types.js.map +1 -1
  367. package/dist/features/typesClient.d.ts +1 -1
  368. package/dist/features/typesClient.d.ts.map +1 -1
  369. package/dist/features/typesClient.js.map +1 -1
  370. package/dist/features/typesServer.d.ts +18 -41
  371. package/dist/features/typesServer.d.ts.map +1 -1
  372. package/dist/features/typesServer.js.map +1 -1
  373. package/dist/features/upload/client/component/index.css +13 -17
  374. package/dist/features/upload/client/component/index.d.ts +1 -1
  375. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  376. package/dist/features/upload/client/component/index.js +4 -4
  377. package/dist/features/upload/client/component/index.js.map +1 -1
  378. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  379. package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
  380. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  381. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  382. package/dist/features/upload/client/plugin/index.d.ts +1 -1
  383. package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
  384. package/dist/features/upload/client/plugin/index.js.map +1 -1
  385. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +1 -1
  386. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
  387. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
  388. package/dist/features/upload/server/index.d.ts +1 -0
  389. package/dist/features/upload/server/index.d.ts.map +1 -1
  390. package/dist/features/upload/server/index.js +3 -2
  391. package/dist/features/upload/server/index.js.map +1 -1
  392. package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -55
  393. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  394. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  395. package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -1
  396. package/dist/features/upload/server/nodes/conversions.js.map +1 -1
  397. package/dist/features/upload/server/schema.d.ts +52 -0
  398. package/dist/features/upload/server/schema.d.ts.map +1 -0
  399. package/dist/features/upload/server/schema.js +129 -0
  400. package/dist/features/upload/server/schema.js.map +1 -0
  401. package/dist/features/upload/server/validate.d.ts +1 -1
  402. package/dist/features/upload/server/validate.d.ts.map +1 -1
  403. package/dist/features/upload/server/validate.js.map +1 -1
  404. package/dist/field/Diff/converters/link.d.ts +1 -1
  405. package/dist/field/Diff/converters/link.d.ts.map +1 -1
  406. package/dist/field/Diff/converters/link.js.map +1 -1
  407. package/dist/field/Diff/converters/listitem/index.css +44 -8
  408. package/dist/field/Diff/converters/listitem/index.d.ts +1 -1
  409. package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
  410. package/dist/field/Diff/converters/listitem/index.js.map +1 -1
  411. package/dist/field/Diff/converters/relationship/index.css +76 -36
  412. package/dist/field/Diff/converters/relationship/index.d.ts +1 -1
  413. package/dist/field/Diff/converters/relationship/index.d.ts.map +1 -1
  414. package/dist/field/Diff/converters/relationship/index.js +10 -28
  415. package/dist/field/Diff/converters/relationship/index.js.map +1 -1
  416. package/dist/field/Diff/converters/unknown/index.js.map +1 -1
  417. package/dist/field/Diff/converters/upload/index.css +106 -43
  418. package/dist/field/Diff/converters/upload/index.d.ts +1 -1
  419. package/dist/field/Diff/converters/upload/index.d.ts.map +1 -1
  420. package/dist/field/Diff/converters/upload/index.js +6 -2
  421. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  422. package/dist/field/Diff/index.css +116 -61
  423. package/dist/field/Diff/index.js.map +1 -1
  424. package/dist/field/Field.d.ts +1 -1
  425. package/dist/field/Field.d.ts.map +1 -1
  426. package/dist/field/Field.js +3 -4
  427. package/dist/field/Field.js.map +1 -1
  428. package/dist/field/RenderLexical/index.d.ts +2 -2
  429. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  430. package/dist/field/RenderLexical/index.js.map +1 -1
  431. package/dist/field/RichTextViewProvider.d.ts +1 -1
  432. package/dist/field/RichTextViewProvider.d.ts.map +1 -1
  433. package/dist/field/RichTextViewProvider.js.map +1 -1
  434. package/dist/field/bundled.css +1 -1
  435. package/dist/field/clientEntry.d.ts +29 -0
  436. package/dist/field/clientEntry.d.ts.map +1 -0
  437. package/dist/field/clientEntry.js +86 -0
  438. package/dist/field/clientEntry.js.map +1 -0
  439. package/dist/field/index.css +9 -12
  440. package/dist/field/index.d.ts +1 -1
  441. package/dist/field/index.d.ts.map +1 -1
  442. package/dist/field/index.js +1 -1
  443. package/dist/field/index.js.map +1 -1
  444. package/dist/field/rscEntry.d.ts +1 -1
  445. package/dist/field/rscEntry.d.ts.map +1 -1
  446. package/dist/field/rscEntry.js +2 -0
  447. package/dist/field/rscEntry.js.map +1 -1
  448. package/dist/hooks.d.ts +6 -0
  449. package/dist/hooks.d.ts.map +1 -0
  450. package/dist/hooks.js +548 -0
  451. package/dist/hooks.js.map +1 -0
  452. package/dist/index.d.ts +11 -8
  453. package/dist/index.d.ts.map +1 -1
  454. package/dist/index.js +56 -622
  455. package/dist/index.js.map +1 -1
  456. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  457. package/dist/lexical/LexicalEditor.js +36 -2
  458. package/dist/lexical/LexicalEditor.js.map +1 -1
  459. package/dist/lexical/LexicalProvider.d.ts +1 -1
  460. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  461. package/dist/lexical/LexicalProvider.js +22 -7
  462. package/dist/lexical/LexicalProvider.js.map +1 -1
  463. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  464. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  465. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  466. package/dist/lexical/config/client/loader.d.ts +1 -1
  467. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  468. package/dist/lexical/config/client/loader.js +5 -1
  469. package/dist/lexical/config/client/loader.js.map +1 -1
  470. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  471. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  472. package/dist/lexical/config/client/sanitize.js.map +1 -1
  473. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  474. package/dist/lexical/config/server/sanitize.js +9 -11
  475. package/dist/lexical/config/server/sanitize.js.map +1 -1
  476. package/dist/lexical/config/types.d.ts +1 -1
  477. package/dist/lexical/config/types.d.ts.map +1 -1
  478. package/dist/lexical/config/types.js.map +1 -1
  479. package/dist/lexical/nodes/index.d.ts +1 -1
  480. package/dist/lexical/nodes/index.d.ts.map +1 -1
  481. package/dist/lexical/nodes/index.js.map +1 -1
  482. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +1 -1
  483. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  484. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  485. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  486. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
  487. package/dist/lexical/theme/EditorTheme.css +4 -4
  488. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
  489. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  490. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  491. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  492. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
  493. package/dist/types/builtInNodes.d.ts +14 -0
  494. package/dist/types/builtInNodes.d.ts.map +1 -0
  495. package/dist/types/builtInNodes.js +203 -0
  496. package/dist/types/builtInNodes.js.map +1 -0
  497. package/dist/{types.d.ts → types/index.d.ts} +25 -26
  498. package/dist/types/index.d.ts.map +1 -0
  499. package/dist/types/index.js +2 -0
  500. package/dist/types/index.js.map +1 -0
  501. package/dist/types/jsonSchemaHelpers.d.ts +30 -0
  502. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -0
  503. package/dist/types/jsonSchemaHelpers.js +58 -0
  504. package/dist/types/jsonSchemaHelpers.js.map +1 -0
  505. package/dist/types/nodeTypes.d.ts +128 -0
  506. package/dist/types/nodeTypes.d.ts.map +1 -0
  507. package/dist/types/nodeTypes.js +6 -0
  508. package/dist/types/nodeTypes.js.map +1 -0
  509. package/dist/types/schema.d.ts +6 -0
  510. package/dist/types/schema.d.ts.map +1 -0
  511. package/dist/types/schema.js +83 -0
  512. package/dist/types/schema.js.map +1 -0
  513. package/dist/utilities/buildEditorState.d.ts +18 -4
  514. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  515. package/dist/utilities/buildEditorState.js +8 -0
  516. package/dist/utilities/buildEditorState.js.map +1 -1
  517. package/dist/utilities/buildInitialState.d.ts +2 -1
  518. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  519. package/dist/utilities/buildInitialState.js.map +1 -1
  520. package/dist/utilities/createClientFeature.d.ts +1 -1
  521. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  522. package/dist/utilities/createClientFeature.js.map +1 -1
  523. package/dist/utilities/editorConfigFactory.d.ts +1 -1
  524. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  525. package/dist/utilities/editorConfigFactory.js.map +1 -1
  526. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  527. package/dist/utilities/fieldsDrawer/Drawer.js +19 -10
  528. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  529. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -1
  530. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  531. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -7
  532. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  533. package/dist/utilities/fieldsDrawer/index.css +12 -0
  534. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +29 -0
  535. package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -0
  536. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js +97 -0
  537. package/dist/utilities/fieldsDrawer/useDrawerSubmit.js.map +1 -0
  538. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
  539. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  540. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
  541. package/dist/utilities/generateImportMap.d.ts +1 -1
  542. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  543. package/dist/utilities/generateImportMap.js +7 -3
  544. package/dist/utilities/generateImportMap.js.map +1 -1
  545. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  546. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  547. package/dist/utilities/initLexicalFeatures.d.ts +1 -1
  548. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -1
  549. package/dist/utilities/initLexicalFeatures.js.map +1 -1
  550. package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
  551. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  552. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  553. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  554. package/dist/validate/index.d.ts.map +1 -1
  555. package/package.json +14 -13
  556. package/dist/exports/client/Field-PJW7KUJG.js +0 -2
  557. package/dist/exports/client/Field-PJW7KUJG.js.map +0 -7
  558. package/dist/exports/client/RelationshipComponent-5RONAYJM.js.map +0 -7
  559. package/dist/exports/client/chunk-44G3K3W7.js +0 -2
  560. package/dist/exports/client/chunk-44G3K3W7.js.map +0 -7
  561. package/dist/exports/client/chunk-BZZVLW4U.js.map +0 -7
  562. package/dist/exports/client/chunk-FTT5KJ6W.js.map +0 -7
  563. package/dist/exports/client/chunk-INBEEENE.js +0 -2
  564. package/dist/exports/client/chunk-INBEEENE.js.map +0 -7
  565. package/dist/exports/client/chunk-QJ5EETIB.js +0 -2
  566. package/dist/exports/client/chunk-QJ5EETIB.js.map +0 -7
  567. package/dist/exports/client/component-53Y3RYR5.js +0 -2
  568. package/dist/exports/client/component-53Y3RYR5.js.map +0 -7
  569. package/dist/exports/client/componentInline-PM4PLNUK.js +0 -2
  570. package/dist/features/link/nodes/types.d.ts +0 -27
  571. package/dist/features/link/nodes/types.d.ts.map +0 -1
  572. package/dist/features/link/nodes/types.js +0 -2
  573. package/dist/features/link/nodes/types.js.map +0 -1
  574. package/dist/nodeTypes.d.ts +0 -74
  575. package/dist/nodeTypes.d.ts.map +0 -1
  576. package/dist/nodeTypes.js +0 -5
  577. package/dist/nodeTypes.js.map +0 -1
  578. package/dist/types.d.ts.map +0 -1
  579. package/dist/types.js +0 -2
  580. package/dist/types.js.map +0 -1
  581. /package/dist/exports/client/{componentInline-PM4PLNUK.js.map → componentInline-R3EPNYWF.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"baseFields.js","names":["validateUrl","validateUrlMinimal","getBaseFields","config","enabledCollections","disabledCollections","maxDepth","enabledRelations","collections","filter","slug","includes","map","admin","enableRichTextLink","hidden","baseFields","name","type","label","t","required","description","defaultValue","options","value","hooks","beforeChange","encodeURIComponent","validate","siblingData","linkType","length","push","condition","_data","_siblingData","filterOptions","relationTo","req","user","find","baseFilter","baseListFilter","limit","page","sort"],"sources":["../../../../src/features/link/server/baseFields.ts"],"sourcesContent":["import type {\n CollectionSlug,\n FieldAffectingData,\n RadioField,\n SanitizedConfig,\n TextField,\n TextFieldSingleValidation,\n TypedUser,\n} from 'payload'\n\nimport type { LinkFields } from '../nodes/types.js'\n\nimport { validateUrl, validateUrlMinimal } from '../../../lexical/utils/url.js'\n\nexport const getBaseFields = (\n config: SanitizedConfig,\n enabledCollections?: CollectionSlug[],\n disabledCollections?: CollectionSlug[],\n maxDepth?: number,\n): FieldAffectingData[] => {\n let enabledRelations: CollectionSlug[]\n\n /**\n * Figure out which relations should be enabled (enabledRelations) based on a collection's admin.enableRichTextLink property,\n * or the Link Feature's enabledCollections and disabledCollections properties which override it.\n */\n if (enabledCollections) {\n enabledRelations = enabledCollections\n } else if (disabledCollections) {\n enabledRelations = config.collections\n .filter(({ slug }) => !disabledCollections.includes(slug))\n .map(({ slug }) => slug)\n } else {\n enabledRelations = config.collections\n .filter(({ admin: { enableRichTextLink, hidden } }) => {\n if (typeof hidden !== 'function' && hidden) {\n return false\n }\n return enableRichTextLink\n })\n .map(({ slug }) => slug)\n }\n\n const baseFields: FieldAffectingData[] = [\n {\n name: 'text',\n type: 'text',\n label: ({ t }) => t('fields:textToDisplay'),\n required: true,\n },\n {\n name: 'linkType',\n type: 'radio',\n admin: {\n description: ({ t }) => t('fields:chooseBetweenCustomTextOrDocument'),\n },\n defaultValue: 'custom',\n label: ({ t }) => t('fields:linkType'),\n options: [\n {\n label: ({ t }) => t('fields:customURL'),\n value: 'custom',\n },\n ],\n required: true,\n } as RadioField,\n {\n name: 'url',\n type: 'text',\n hooks: {\n beforeChange: [\n ({ value }) => {\n if (!value) {\n return\n }\n\n if (!validateUrl(value)) {\n return encodeURIComponent(value)\n }\n return value\n },\n ],\n },\n label: ({ t }) => t('fields:enterURL'),\n required: true,\n validate: ((value: string, options) => {\n if ((options?.siblingData as LinkFields)?.linkType === 'internal') {\n return // no validation needed, as no url should exist for internal links\n }\n if (!validateUrlMinimal(value)) {\n return 'Invalid URL'\n }\n }) as TextFieldSingleValidation,\n },\n ]\n\n // Only display internal link-specific fields / options / conditions if there are enabled relations\n if (enabledRelations?.length) {\n ;(baseFields[1] as RadioField).options.push({\n label: ({ t }) => t('fields:internalLink'),\n value: 'internal',\n })\n ;(baseFields[2] as TextField).admin = {\n condition: (_data, _siblingData) => {\n return _siblingData.linkType !== 'internal'\n },\n }\n\n baseFields.push({\n name: 'doc',\n admin: {\n condition: (_data, _siblingData) => {\n return _siblingData.linkType === 'internal'\n },\n },\n // when admin.hidden is a function we need to dynamically call hidden with the user to know if the collection should be shown\n type: 'relationship',\n filterOptions:\n !enabledCollections && !disabledCollections\n ? async ({ relationTo, req, user }) => {\n const admin = config.collections.find(({ slug }) => slug === relationTo)?.admin\n\n const hidden = admin?.hidden\n if (typeof hidden === 'function' && hidden({ user } as { user: TypedUser })) {\n return false\n }\n\n const baseFilter = admin?.baseFilter ?? admin?.baseListFilter\n return (\n (await baseFilter?.({\n limit: 0,\n page: 1,\n req,\n sort: 'id',\n })) ?? true\n )\n }\n : null,\n label: ({ t }) => t('fields:chooseDocumentToLink'),\n maxDepth,\n relationTo: enabledRelations,\n required: true,\n })\n }\n\n baseFields.push({\n name: 'newTab',\n type: 'checkbox',\n label: ({ t }) => t('fields:openInNewTab'),\n })\n\n return baseFields\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"baseFields.js","names":["validateUrl","validateUrlMinimal","getBaseFields","config","enabledCollections","disabledCollections","maxDepth","enabledRelations","collections","filter","slug","includes","map","admin","enableRichTextLink","hidden","baseFields","name","type","label","t","required","description","defaultValue","options","value","hooks","beforeChange","encodeURIComponent","validate","siblingData","linkType","length","push","condition","_data","_siblingData","filterOptions","relationTo","req","user","find","baseFilter","baseListFilter","limit","page","sort"],"sources":["../../../../src/features/link/server/baseFields.ts"],"sourcesContent":["import type {\n CollectionSlug,\n FieldAffectingData,\n RadioField,\n SanitizedConfig,\n TextField,\n TextFieldSingleValidation,\n TypedUser,\n} from 'payload'\n\nimport type { LinkFields } from './schema.js'\n\nimport { validateUrl, validateUrlMinimal } from '../../../lexical/utils/url.js'\n\nexport const getBaseFields = (\n config: SanitizedConfig,\n enabledCollections?: CollectionSlug[],\n disabledCollections?: CollectionSlug[],\n maxDepth?: number,\n): FieldAffectingData[] => {\n let enabledRelations: CollectionSlug[]\n\n /**\n * Figure out which relations should be enabled (enabledRelations) based on a collection's admin.enableRichTextLink property,\n * or the Link Feature's enabledCollections and disabledCollections properties which override it.\n */\n if (enabledCollections) {\n enabledRelations = enabledCollections\n } else if (disabledCollections) {\n enabledRelations = config.collections\n .filter(({ slug }) => !disabledCollections.includes(slug))\n .map(({ slug }) => slug)\n } else {\n enabledRelations = config.collections\n .filter(({ admin: { enableRichTextLink, hidden } }) => {\n if (typeof hidden !== 'function' && hidden) {\n return false\n }\n return enableRichTextLink\n })\n .map(({ slug }) => slug)\n }\n\n const baseFields: FieldAffectingData[] = [\n {\n name: 'text',\n type: 'text',\n label: ({ t }) => t('fields:textToDisplay'),\n required: true,\n },\n {\n name: 'linkType',\n type: 'radio',\n admin: {\n description: ({ t }) => t('fields:chooseBetweenCustomTextOrDocument'),\n },\n defaultValue: 'custom',\n label: ({ t }) => t('fields:linkType'),\n options: [\n {\n label: ({ t }) => t('fields:customURL'),\n value: 'custom',\n },\n ],\n required: true,\n } as RadioField,\n {\n name: 'url',\n type: 'text',\n hooks: {\n beforeChange: [\n ({ value }) => {\n if (!value) {\n return\n }\n\n if (!validateUrl(value)) {\n return encodeURIComponent(value)\n }\n return value\n },\n ],\n },\n label: ({ t }) => t('fields:enterURL'),\n required: true,\n validate: ((value: string, options) => {\n if ((options?.siblingData as LinkFields)?.linkType === 'internal') {\n return // no validation needed, as no url should exist for internal links\n }\n if (!validateUrlMinimal(value)) {\n return 'Invalid URL'\n }\n }) as TextFieldSingleValidation,\n },\n ]\n\n // Only display internal link-specific fields / options / conditions if there are enabled relations\n if (enabledRelations?.length) {\n ;(baseFields[1] as RadioField).options.push({\n label: ({ t }) => t('fields:internalLink'),\n value: 'internal',\n })\n ;(baseFields[2] as TextField).admin = {\n condition: (_data, _siblingData) => {\n return _siblingData.linkType !== 'internal'\n },\n }\n\n baseFields.push({\n name: 'doc',\n admin: {\n condition: (_data, _siblingData) => {\n return _siblingData.linkType === 'internal'\n },\n },\n // when admin.hidden is a function we need to dynamically call hidden with the user to know if the collection should be shown\n type: 'relationship',\n filterOptions:\n !enabledCollections && !disabledCollections\n ? async ({ relationTo, req, user }) => {\n const admin = config.collections.find(({ slug }) => slug === relationTo)?.admin\n\n const hidden = admin?.hidden\n if (typeof hidden === 'function' && hidden({ user } as { user: TypedUser })) {\n return false\n }\n\n const baseFilter = admin?.baseFilter ?? admin?.baseListFilter\n return (\n (await baseFilter?.({\n limit: 0,\n page: 1,\n req,\n sort: 'id',\n })) ?? true\n )\n }\n : null,\n label: ({ t }) => t('fields:chooseDocumentToLink'),\n maxDepth,\n relationTo: enabledRelations,\n required: true,\n })\n }\n\n baseFields.push({\n name: 'newTab',\n type: 'checkbox',\n label: ({ t }) => t('fields:openInNewTab'),\n })\n\n return baseFields\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { PopulationPromise } from '../../typesServer.js';
2
- import type { SerializedLinkNode } from '../nodes/types.js';
3
2
  import type { LinkFeatureServerProps } from './index.js';
3
+ import type { SerializedLinkNode } from './schema.js';
4
4
  export declare const linkPopulationPromiseHOC: (props: LinkFeatureServerProps) => PopulationPromise<SerializedLinkNode>;
5
5
  //# sourceMappingURL=graphQLPopulationPromise.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphQLPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/graphQLPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAIxD,eAAO,MAAM,wBAAwB,UAC5B,sBAAsB,KAC5B,iBAAiB,CAAC,kBAAkB,CA8CtC,CAAA"}
1
+ {"version":3,"file":"graphQLPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/graphQLPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,eAAO,MAAM,wBAAwB,GACnC,OAAO,sBAAsB,KAC5B,iBAAiB,CAAC,kBAAkB,CA8CtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphQLPopulationPromise.js","names":["recursivelyPopulateFieldsForGraphQL","linkPopulationPromiseHOC","props","context","currentDepth","depth","draft","editorPopulationPromises","field","fieldPromises","findMany","flattenLocales","node","overrideAccess","parentIsLocalized","populationPromises","req","showHiddenFields","fields","length","Array","isArray","data","localized","siblingDoc"],"sources":["../../../../src/features/link/server/graphQLPopulationPromise.ts"],"sourcesContent":["import type { PopulationPromise } from '../../typesServer.js'\nimport type { SerializedLinkNode } from '../nodes/types.js'\nimport type { LinkFeatureServerProps } from './index.js'\n\nimport { recursivelyPopulateFieldsForGraphQL } from '../../../populateGraphQL/recursivelyPopulateFieldsForGraphQL.js'\n\nexport const linkPopulationPromiseHOC = (\n props: LinkFeatureServerProps,\n): PopulationPromise<SerializedLinkNode> => {\n return ({\n context,\n currentDepth,\n depth,\n draft,\n editorPopulationPromises,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n node,\n overrideAccess,\n parentIsLocalized,\n populationPromises,\n req,\n showHiddenFields,\n }) => {\n if (!props.fields?.length) {\n return\n }\n\n /**\n * Should populate all fields, including the doc field (for internal links), as it's treated like a normal field\n */\n if (Array.isArray(props.fields)) {\n recursivelyPopulateFieldsForGraphQL({\n context,\n currentDepth,\n data: node.fields,\n depth,\n draft,\n editorPopulationPromises,\n fieldPromises,\n fields: props.fields,\n findMany,\n flattenLocales,\n overrideAccess,\n parentIsLocalized: parentIsLocalized || field.localized || false,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: node.fields,\n })\n }\n }\n}\n"],"mappings":"AAIA,SAASA,mCAAmC,QAAQ;AAEpD,OAAO,MAAMC,wBAAA,GACXC,KAAA;EAEA,OAAO,CAAC;IACNC,OAAO;IACPC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,wBAAwB;IACxBC,KAAK;IACLC,aAAa;IACbC,QAAQ;IACRC,cAAc;IACdC,IAAI;IACJC,cAAc;IACdC,iBAAiB;IACjBC,kBAAkB;IAClBC,GAAG;IACHC;EAAgB,CACjB;IACC,IAAI,CAACf,KAAA,CAAMgB,MAAM,EAAEC,MAAA,EAAQ;MACzB;IACF;IAEA;;;IAGA,IAAIC,KAAA,CAAMC,OAAO,CAACnB,KAAA,CAAMgB,MAAM,GAAG;MAC/BlB,mCAAA,CAAoC;QAClCG,OAAA;QACAC,YAAA;QACAkB,IAAA,EAAMV,IAAA,CAAKM,MAAM;QACjBb,KAAA;QACAC,KAAA;QACAC,wBAAA;QACAE,aAAA;QACAS,MAAA,EAAQhB,KAAA,CAAMgB,MAAM;QACpBR,QAAA;QACAC,cAAA;QACAE,cAAA;QACAC,iBAAA,EAAmBA,iBAAA,IAAqBN,KAAA,CAAMe,SAAS,IAAI;QAC3DR,kBAAA;QACAC,GAAA;QACAC,gBAAA;QACAO,UAAA,EAAYZ,IAAA,CAAKM;MACnB;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"graphQLPopulationPromise.js","names":["recursivelyPopulateFieldsForGraphQL","linkPopulationPromiseHOC","props","context","currentDepth","depth","draft","editorPopulationPromises","field","fieldPromises","findMany","flattenLocales","node","overrideAccess","parentIsLocalized","populationPromises","req","showHiddenFields","fields","length","Array","isArray","data","localized","siblingDoc"],"sources":["../../../../src/features/link/server/graphQLPopulationPromise.ts"],"sourcesContent":["import type { PopulationPromise } from '../../typesServer.js'\nimport type { LinkFeatureServerProps } from './index.js'\nimport type { SerializedLinkNode } from './schema.js'\n\nimport { recursivelyPopulateFieldsForGraphQL } from '../../../populateGraphQL/recursivelyPopulateFieldsForGraphQL.js'\n\nexport const linkPopulationPromiseHOC = (\n props: LinkFeatureServerProps,\n): PopulationPromise<SerializedLinkNode> => {\n return ({\n context,\n currentDepth,\n depth,\n draft,\n editorPopulationPromises,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n node,\n overrideAccess,\n parentIsLocalized,\n populationPromises,\n req,\n showHiddenFields,\n }) => {\n if (!props.fields?.length) {\n return\n }\n\n /**\n * Should populate all fields, including the doc field (for internal links), as it's treated like a normal field\n */\n if (Array.isArray(props.fields)) {\n recursivelyPopulateFieldsForGraphQL({\n context,\n currentDepth,\n data: node.fields,\n depth,\n draft,\n editorPopulationPromises,\n fieldPromises,\n fields: props.fields,\n findMany,\n flattenLocales,\n overrideAccess,\n parentIsLocalized: parentIsLocalized || field.localized || false,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: node.fields,\n })\n }\n }\n}\n"],"mappings":"AAIA,SAASA,mCAAmC,QAAQ;AAEpD,OAAO,MAAMC,wBAAA,GACXC,KAAA;EAEA,OAAO,CAAC;IACNC,OAAO;IACPC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,wBAAwB;IACxBC,KAAK;IACLC,aAAa;IACbC,QAAQ;IACRC,cAAc;IACdC,IAAI;IACJC,cAAc;IACdC,iBAAiB;IACjBC,kBAAkB;IAClBC,GAAG;IACHC;EAAgB,CACjB;IACC,IAAI,CAACf,KAAA,CAAMgB,MAAM,EAAEC,MAAA,EAAQ;MACzB;IACF;IAEA;;;IAGA,IAAIC,KAAA,CAAMC,OAAO,CAACnB,KAAA,CAAMgB,MAAM,GAAG;MAC/BlB,mCAAA,CAAoC;QAClCG,OAAA;QACAC,YAAA;QACAkB,IAAA,EAAMV,IAAA,CAAKM,MAAM;QACjBb,KAAA;QACAC,KAAA;QACAC,wBAAA;QACAE,aAAA;QACAS,MAAA,EAAQhB,KAAA,CAAMgB,MAAM;QACpBR,QAAA;QACAC,cAAA;QACAE,cAAA;QACAC,iBAAA,EAAmBA,iBAAA,IAAqBN,KAAA,CAAMe,SAAS,IAAI;QAC3DR,kBAAA;QACAC,GAAA;QACAC,gBAAA;QACAO,UAAA,EAAYZ,IAAA,CAAKM;MACnB;IACF;EACF;AACF","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import type { CollectionSlug, Field, FieldAffectingData, SanitizedConfig } from 'payload';
2
2
  import type { ClientProps } from '../client/index.js';
3
- import type { SerializedLinkNode } from '../nodes/types.js';
3
+ import { type SerializedLinkNode } from './schema.js';
4
+ export type { LinkFields, SerializedAutoLinkNode, SerializedLinkNode } from './schema.js';
4
5
  export type ExclusiveLinkCollectionsProps = {
5
6
  /**
6
7
  * The collections that should be disabled for internal linking. Overrides the `enableRichTextLink` property in the collection config.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,KAAK,EACL,kBAAkB,EAElB,eAAe,EAChB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAY3D,MAAM,MAAM,6BAA6B,GACrC;IACE;;;QAGI;IACJ,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;IAGtC,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC3B,GACD;IAEE,mBAAmB,CAAC,EAAE,KAAK,CAAA;IAE3B;;;QAGI;IACJ,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAEL,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC;;;OAGG;IACH,MAAM,CAAC,EACH,CAAC,CAAC,IAAI,EAAE;QACN,MAAM,EAAE,eAAe,CAAA;QACvB,aAAa,EAAE,kBAAkB,EAAE,CAAA;KACpC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,GACrC,KAAK,EAAE,CAAA;IACX;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;IACtE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,6BAA6B,CAAA;AAEjC,eAAO,MAAM,WAAW,2HA6GtB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,KAAK,EACL,kBAAkB,EAElB,eAAe,EAChB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AASrD,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAA;AAIpB,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEzF,MAAM,MAAM,6BAA6B,GACrC;IACE;;;QAGI;IACJ,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;IAGtC,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC3B,GACD;IAEE,mBAAmB,CAAC,EAAE,KAAK,CAAA;IAE3B;;;QAGI;IACJ,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;CACtC,CAAA;AAEL,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC;;;OAGG;IACH,MAAM,CAAC,EACH,CAAC,CAAC,IAAI,EAAE;QACN,MAAM,EAAE,eAAe,CAAA;QACvB,aAAa,EAAE,kBAAkB,EAAE,CAAA;KACpC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,GACrC,KAAK,EAAE,CAAA;IACX;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;IACtE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,6BAA6B,CAAA;AAEjC,eAAO,MAAM,WAAW,2HA+GtB,CAAA"}
@@ -6,6 +6,7 @@ import { AutoLinkNode } from '../nodes/AutoLinkNode.js';
6
6
  import { LinkNode } from '../nodes/LinkNode.js';
7
7
  import { linkPopulationPromiseHOC } from './graphQLPopulationPromise.js';
8
8
  import { i18n } from './i18n.js';
9
+ import { createAutoLinkNodeJSONSchema, createLinkNodeJSONSchema } from './schema.js';
9
10
  import { transformExtraFields } from './transformExtraFields.js';
10
11
  import { linkValidation } from './validate.js';
11
12
  export const LinkFeature = createServerFeature({
@@ -68,6 +69,7 @@ export const LinkFeature = createServerFeature({
68
69
  internalDocToHref: props.internalDocToHref
69
70
  })],
70
71
  nodes: [props?.disableAutoLinks === true ? null : createNode({
72
+ jsonSchema: createAutoLinkNodeJSONSchema(sanitizedFieldsWithoutText),
71
73
  node: AutoLinkNode,
72
74
  // Since AutoLinkNodes are just internal links, they need no hooks or graphQL population promises
73
75
  validations: [linkValidation(props, sanitizedFieldsWithoutText)]
@@ -81,6 +83,7 @@ export const LinkFeature = createServerFeature({
81
83
  return node?.fields;
82
84
  },
83
85
  graphQLPopulationPromises: [linkPopulationPromiseHOC(props)],
86
+ jsonSchema: createLinkNodeJSONSchema(sanitizedFieldsWithoutText),
84
87
  node: LinkNode,
85
88
  validations: [linkValidation(props, sanitizedFieldsWithoutText)]
86
89
  })].filter(Boolean),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["sanitizeFields","createServerFeature","createNode","createLinkMarkdownTransformer","AutoLinkNode","LinkNode","linkPopulationPromiseHOC","i18n","transformExtraFields","linkValidation","LinkFeature","feature","config","_config","isRoot","parentIsLocalized","props","validRelationships","collections","map","c","slug","_transformedFields","fields","enabledCollections","disabledCollections","maxDepth","sanitizedFields","requireFieldLevelRichTextEditor","sanitizedFieldsWithoutText","filter","field","name","linkTypeField","linkURLField","defaultLinkType","defaultValue","undefined","defaultLinkURL","ClientFeature","clientFeatureProps","disableAutoLinks","generateSchemaMap","Array","isArray","length","schemaMap","Map","set","markdownTransformers","internalDocToHref","nodes","node","validations","getSubFields","getSubFieldsData","graphQLPopulationPromises","Boolean","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/link/server/index.ts"],"sourcesContent":["import type {\n CollectionSlug,\n Config,\n Field,\n FieldAffectingData,\n FieldSchemaMap,\n SanitizedConfig,\n} from 'payload'\n\nimport { sanitizeFields } from 'payload'\n\nimport type { NodeWithHooks } from '../../typesServer.js'\nimport type { ClientProps } from '../client/index.js'\nimport type { SerializedLinkNode } from '../nodes/types.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { createLinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { LinkNode } from '../nodes/LinkNode.js'\nimport { linkPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { transformExtraFields } from './transformExtraFields.js'\nimport { linkValidation } from './validate.js'\n\nexport type ExclusiveLinkCollectionsProps =\n | {\n /**\n * The collections that should be disabled for internal linking. Overrides the `enableRichTextLink` property in the collection config.\n * When this property is set, `enabledCollections` will not be available.\n **/\n disabledCollections?: CollectionSlug[]\n\n // Ensures that enabledCollections is not available when disabledCollections is set\n enabledCollections?: never\n }\n | {\n // Ensures that disabledCollections is not available when enabledCollections is set\n disabledCollections?: never\n\n /**\n * The collections that should be enabled for internal linking. Overrides the `enableRichTextLink` property in the collection config\n * When this property is set, `disabledCollections` will not be available.\n **/\n enabledCollections?: CollectionSlug[]\n }\n\nexport type LinkFeatureServerProps = {\n /**\n * Disables the automatic creation of links from URLs pasted into the editor, as well\n * as auto link nodes.\n *\n * If set to 'creationOnly', only the creation of new auto link nodes will be disabled.\n * Existing auto link nodes will still be editable.\n *\n * @default false\n */\n disableAutoLinks?: 'creationOnly' | true\n /**\n * A function or array defining additional fields for the link feature. These will be\n * displayed in the link editor drawer.\n */\n fields?:\n | ((args: {\n config: SanitizedConfig\n defaultFields: FieldAffectingData[]\n }) => (Field | FieldAffectingData)[])\n | Field[]\n /**\n * Resolves an internal link node to a URL string for use in the markdown converter.\n * Internal links store a doc reference rather than a URL, so without this the markdown\n * output will have an empty href: `[link text]()`.\n */\n internalDocToHref?: (args: { linkNode: SerializedLinkNode }) => string\n /**\n * Sets a maximum population depth for the internal doc default field of link, regardless of the remaining depth when the field is reached.\n * This behaves exactly like the maxDepth properties of relationship and upload fields.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n} & ExclusiveLinkCollectionsProps\n\nexport const LinkFeature = createServerFeature<\n LinkFeatureServerProps,\n LinkFeatureServerProps,\n ClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n if (!props) {\n props = {}\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const _transformedFields = transformExtraFields(\n props.fields ? props.fields : null,\n _config,\n props.enabledCollections,\n props.disabledCollections,\n props.maxDepth,\n )\n\n const sanitizedFields = await sanitizeFields({\n config: _config as unknown as Config,\n fields: _transformedFields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n props.fields = sanitizedFields\n\n // the text field is not included in the node data.\n // Thus, for tasks like validation, we do not want to pass it a text field in the schema which will never have data.\n // Otherwise, it will cause a validation error (field is required).\n const sanitizedFieldsWithoutText = sanitizedFields.filter(\n (field) => !('name' in field) || field.name !== 'text',\n )\n\n let linkTypeField: Field | null = null\n let linkURLField: Field | null = null\n\n for (const field of sanitizedFields) {\n if ('name' in field && field.name === 'linkType') {\n linkTypeField = field\n }\n\n if ('name' in field && field.name === 'url') {\n linkURLField = field\n }\n }\n\n const defaultLinkType = linkTypeField\n ? 'defaultValue' in linkTypeField && typeof linkTypeField.defaultValue === 'string'\n ? linkTypeField.defaultValue\n : 'custom'\n : undefined\n\n const defaultLinkURL = linkURLField\n ? 'defaultValue' in linkURLField && typeof linkURLField.defaultValue === 'string'\n ? linkURLField.defaultValue\n : 'https://'\n : undefined\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#LinkFeatureClient',\n clientFeatureProps: {\n defaultLinkType,\n defaultLinkURL,\n disableAutoLinks: props.disableAutoLinks,\n disabledCollections: props.disabledCollections,\n enabledCollections: props.enabledCollections,\n } as ClientProps,\n generateSchemaMap: () => {\n if (!sanitizedFields || !Array.isArray(sanitizedFields) || sanitizedFields.length === 0) {\n return null\n }\n\n const schemaMap: FieldSchemaMap = new Map()\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n i18n,\n markdownTransformers: [\n createLinkMarkdownTransformer({ internalDocToHref: props.internalDocToHref }),\n ],\n nodes: [\n props?.disableAutoLinks === true\n ? null\n : createNode({\n node: AutoLinkNode,\n // Since AutoLinkNodes are just internal links, they need no hooks or graphQL population promises\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\n }),\n createNode({\n getSubFields: () => {\n return sanitizedFieldsWithoutText\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [linkPopulationPromiseHOC(props)],\n node: LinkNode,\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\n }),\n ].filter(Boolean) as Array<NodeWithHooks>,\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'link',\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["sanitizeFields","createServerFeature","createNode","createLinkMarkdownTransformer","AutoLinkNode","LinkNode","linkPopulationPromiseHOC","i18n","createAutoLinkNodeJSONSchema","createLinkNodeJSONSchema","transformExtraFields","linkValidation","LinkFeature","feature","config","_config","isRoot","parentIsLocalized","props","validRelationships","collections","map","c","slug","_transformedFields","fields","enabledCollections","disabledCollections","maxDepth","sanitizedFields","requireFieldLevelRichTextEditor","sanitizedFieldsWithoutText","filter","field","name","linkTypeField","linkURLField","defaultLinkType","defaultValue","undefined","defaultLinkURL","ClientFeature","clientFeatureProps","disableAutoLinks","generateSchemaMap","Array","isArray","length","schemaMap","Map","set","markdownTransformers","internalDocToHref","nodes","jsonSchema","node","validations","getSubFields","getSubFieldsData","graphQLPopulationPromises","Boolean","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/link/server/index.ts"],"sourcesContent":["import type {\n CollectionSlug,\n Config,\n Field,\n FieldAffectingData,\n FieldSchemaMap,\n SanitizedConfig,\n} from 'payload'\n\nimport { sanitizeFields } from 'payload'\n\nimport type { NodeWithHooks } from '../../typesServer.js'\nimport type { ClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { createLinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { LinkNode } from '../nodes/LinkNode.js'\nimport { linkPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport {\n createAutoLinkNodeJSONSchema,\n createLinkNodeJSONSchema,\n type SerializedLinkNode,\n} from './schema.js'\nimport { transformExtraFields } from './transformExtraFields.js'\nimport { linkValidation } from './validate.js'\n\nexport type { LinkFields, SerializedAutoLinkNode, SerializedLinkNode } from './schema.js'\n\nexport type ExclusiveLinkCollectionsProps =\n | {\n /**\n * The collections that should be disabled for internal linking. Overrides the `enableRichTextLink` property in the collection config.\n * When this property is set, `enabledCollections` will not be available.\n **/\n disabledCollections?: CollectionSlug[]\n\n // Ensures that enabledCollections is not available when disabledCollections is set\n enabledCollections?: never\n }\n | {\n // Ensures that disabledCollections is not available when enabledCollections is set\n disabledCollections?: never\n\n /**\n * The collections that should be enabled for internal linking. Overrides the `enableRichTextLink` property in the collection config\n * When this property is set, `disabledCollections` will not be available.\n **/\n enabledCollections?: CollectionSlug[]\n }\n\nexport type LinkFeatureServerProps = {\n /**\n * Disables the automatic creation of links from URLs pasted into the editor, as well\n * as auto link nodes.\n *\n * If set to 'creationOnly', only the creation of new auto link nodes will be disabled.\n * Existing auto link nodes will still be editable.\n *\n * @default false\n */\n disableAutoLinks?: 'creationOnly' | true\n /**\n * A function or array defining additional fields for the link feature. These will be\n * displayed in the link editor drawer.\n */\n fields?:\n | ((args: {\n config: SanitizedConfig\n defaultFields: FieldAffectingData[]\n }) => (Field | FieldAffectingData)[])\n | Field[]\n /**\n * Resolves an internal link node to a URL string for use in the markdown converter.\n * Internal links store a doc reference rather than a URL, so without this the markdown\n * output will have an empty href: `[link text]()`.\n */\n internalDocToHref?: (args: { linkNode: SerializedLinkNode }) => string\n /**\n * Sets a maximum population depth for the internal doc default field of link, regardless of the remaining depth when the field is reached.\n * This behaves exactly like the maxDepth properties of relationship and upload fields.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n} & ExclusiveLinkCollectionsProps\n\nexport const LinkFeature = createServerFeature<\n LinkFeatureServerProps,\n LinkFeatureServerProps,\n ClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n if (!props) {\n props = {}\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const _transformedFields = transformExtraFields(\n props.fields ? props.fields : null,\n _config,\n props.enabledCollections,\n props.disabledCollections,\n props.maxDepth,\n )\n\n const sanitizedFields = await sanitizeFields({\n config: _config as unknown as Config,\n fields: _transformedFields,\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n props.fields = sanitizedFields\n\n // the text field is not included in the node data.\n // Thus, for tasks like validation, we do not want to pass it a text field in the schema which will never have data.\n // Otherwise, it will cause a validation error (field is required).\n const sanitizedFieldsWithoutText = sanitizedFields.filter(\n (field) => !('name' in field) || field.name !== 'text',\n )\n\n let linkTypeField: Field | null = null\n let linkURLField: Field | null = null\n\n for (const field of sanitizedFields) {\n if ('name' in field && field.name === 'linkType') {\n linkTypeField = field\n }\n\n if ('name' in field && field.name === 'url') {\n linkURLField = field\n }\n }\n\n const defaultLinkType = linkTypeField\n ? 'defaultValue' in linkTypeField && typeof linkTypeField.defaultValue === 'string'\n ? linkTypeField.defaultValue\n : 'custom'\n : undefined\n\n const defaultLinkURL = linkURLField\n ? 'defaultValue' in linkURLField && typeof linkURLField.defaultValue === 'string'\n ? linkURLField.defaultValue\n : 'https://'\n : undefined\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#LinkFeatureClient',\n clientFeatureProps: {\n defaultLinkType,\n defaultLinkURL,\n disableAutoLinks: props.disableAutoLinks,\n disabledCollections: props.disabledCollections,\n enabledCollections: props.enabledCollections,\n } as ClientProps,\n generateSchemaMap: () => {\n if (!sanitizedFields || !Array.isArray(sanitizedFields) || sanitizedFields.length === 0) {\n return null\n }\n\n const schemaMap: FieldSchemaMap = new Map()\n schemaMap.set('fields', {\n fields: sanitizedFields,\n })\n\n return schemaMap\n },\n i18n,\n markdownTransformers: [\n createLinkMarkdownTransformer({ internalDocToHref: props.internalDocToHref }),\n ],\n nodes: [\n props?.disableAutoLinks === true\n ? null\n : createNode({\n jsonSchema: createAutoLinkNodeJSONSchema(sanitizedFieldsWithoutText),\n node: AutoLinkNode,\n // Since AutoLinkNodes are just internal links, they need no hooks or graphQL population promises\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\n }),\n createNode({\n getSubFields: () => {\n return sanitizedFieldsWithoutText\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [linkPopulationPromiseHOC(props)],\n jsonSchema: createLinkNodeJSONSchema(sanitizedFieldsWithoutText),\n node: LinkNode,\n validations: [linkValidation(props, sanitizedFieldsWithoutText)],\n }),\n ].filter(Boolean) as Array<NodeWithHooks>,\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'link',\n})\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ import type { SerializedLexicalNode } from 'lexical';
2
+ import type { DefaultDocumentIDType, Field } from 'payload';
3
+ import type { SerializedLexicalElementBase } from '../../../types/nodeTypes.js';
4
+ import type { JSONSchemaFn } from '../../typesServer.js';
5
+ export type LinkFields = {
6
+ /** Custom fields added via `LinkFeature`'s `fields` prop. */
7
+ [k: string]: unknown;
8
+ doc?: {
9
+ relationTo: string;
10
+ /** Document ID, or the full doc when populated by the afterRead hook. */
11
+ value: {
12
+ [k: string]: unknown;
13
+ id: DefaultDocumentIDType;
14
+ } | DefaultDocumentIDType;
15
+ } | null;
16
+ linkType: 'custom' | 'internal';
17
+ newTab: boolean;
18
+ url?: string;
19
+ };
20
+ export interface SerializedLinkNode<TChildren extends SerializedLexicalNode = SerializedLexicalNode, TFields = LinkFields> extends SerializedLexicalElementBase<TChildren> {
21
+ fields: TFields;
22
+ /** @todo make required in 4.0 and type AutoLinkNode differently */
23
+ id?: string;
24
+ type: 'link';
25
+ }
26
+ export interface SerializedAutoLinkNode<TChildren extends SerializedLexicalNode = SerializedLexicalNode, TFields = LinkFields> extends SerializedLexicalElementBase<TChildren> {
27
+ fields: TFields;
28
+ type: 'autolink';
29
+ }
30
+ export declare const createLinkNodeJSONSchema: (sanitizedFieldsWithoutText: Field[]) => JSONSchemaFn;
31
+ export declare const createAutoLinkNodeJSONSchema: (sanitizedFieldsWithoutText: Field[]) => JSONSchemaFn;
32
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAK3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExE,MAAM,MAAM,UAAU,GAAG;IACvB,6DAA6D;IAC7D,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,yEAAyE;QACzE,KAAK,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YAAC,EAAE,EAAE,qBAAqB,CAAA;SAAE,GAAG,qBAAqB,CAAA;KACnF,GAAG,IAAI,CAAA;IACR,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,WAAW,kBAAkB,CACjC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,EAC/D,OAAO,GAAG,UAAU,CACpB,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,MAAM,EAAE,OAAO,CAAA;IACf,mEAAmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,sBAAsB,CACrC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,EAC/D,OAAO,GAAG,UAAU,CACpB,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;CACjB;AAqHD,eAAO,MAAM,wBAAwB,GAClC,4BAA4B,KAAK,EAAE,KAAG,YActC,CAAA;AAEH,eAAO,MAAM,4BAA4B,GACtC,4BAA4B,KAAK,EAAE,KAAG,YAatC,CAAA"}
@@ -0,0 +1,169 @@
1
+ import { createHash } from 'crypto';
2
+ import { fieldsToJSONSchema, flattenAllFields } from 'payload';
3
+ /**
4
+ * MUST stay byte-for-byte in sync with the runtime `LinkFields`, `SerializedLinkNode`,
5
+ * and `SerializedAutoLinkNode` declared above.
6
+ */
7
+ const LINK_NODES_TS = `export interface LexicalLinkFields {
8
+ [k: string]: unknown;
9
+ doc?: {
10
+ relationTo: string;
11
+ value: Config['db']['defaultIDType'] | { [k: string]: unknown; id: Config['db']['defaultIDType'] };
12
+ } | null;
13
+ linkType: 'custom' | 'internal';
14
+ newTab: boolean;
15
+ url?: string;
16
+ }
17
+ export interface SerializedLinkNode<TChildren, TFields = LexicalLinkFields> extends SerializedLexicalElementBase<TChildren> {
18
+ type: 'link';
19
+ fields: TFields;
20
+ id?: string;
21
+ }
22
+ export interface SerializedAutoLinkNode<TChildren, TFields = LexicalLinkFields> extends SerializedLexicalElementBase<TChildren> {
23
+ type: 'autolink';
24
+ fields: TFields;
25
+ }`;
26
+ const buildLinkFieldsJSONSchema = (sanitizedFieldsWithoutText, {
27
+ collectionIDFieldTypes,
28
+ config,
29
+ i18n,
30
+ interfaceNameDefinitions,
31
+ typeStringDefinitions
32
+ }) => {
33
+ const flattenedExtraFields = flattenAllFields({
34
+ fields: sanitizedFieldsWithoutText
35
+ });
36
+ const userFieldsSchema = flattenedExtraFields.length > 0 && config ? fieldsToJSONSchema({
37
+ collectionIDFieldTypes,
38
+ config,
39
+ fields: flattenedExtraFields,
40
+ i18n,
41
+ interfaceNameDefinitions,
42
+ typeStringDefinitions
43
+ }) : {
44
+ properties: {},
45
+ required: []
46
+ };
47
+ return {
48
+ type: 'object',
49
+ additionalProperties: false,
50
+ properties: {
51
+ ...userFieldsSchema.properties,
52
+ doc: {
53
+ oneOf: [{
54
+ type: 'object',
55
+ additionalProperties: false,
56
+ properties: {
57
+ relationTo: {
58
+ type: 'string'
59
+ },
60
+ value: {
61
+ oneOf: [{
62
+ type: 'string'
63
+ }, {
64
+ type: 'number'
65
+ },
66
+ // Populated form (afterRead inflates `value` into the doc).
67
+ {
68
+ type: 'object',
69
+ additionalProperties: true,
70
+ properties: {
71
+ id: {
72
+ type: ['string', 'number']
73
+ }
74
+ },
75
+ required: ['id']
76
+ }]
77
+ }
78
+ },
79
+ required: ['relationTo', 'value']
80
+ }, {
81
+ type: 'null'
82
+ }]
83
+ },
84
+ linkType: {
85
+ type: 'string',
86
+ enum: ['custom', 'internal']
87
+ },
88
+ newTab: {
89
+ type: 'boolean'
90
+ },
91
+ url: {
92
+ type: 'string'
93
+ }
94
+ },
95
+ // `linkType`/`newTab` are already in `userFieldsSchema.required`; use Set to dedupe,
96
+ // so `required` stays unique (draft 2020-12 enforces `uniqueItems`).
97
+ required: [...new Set(['linkType', 'newTab', ...userFieldsSchema.required])]
98
+ };
99
+ };
100
+ /** Fields auto-attached by `LinkFeature` (see `transformExtraFields`). */
101
+ const STANDARD_LINK_FIELD_NAMES = new Set(['doc', 'linkType', 'newTab', 'url']);
102
+ const hashLinkFields = schema => createHash('sha256').update(JSON.stringify(schema)).digest('hex').slice(0, 8).toUpperCase();
103
+ /**
104
+ * With custom link fields, emit a `LexicalLinkFields_<hash>` interface (hashed by its own content)
105
+ * so the link node picks up their real shape. Without any, reuse the default `LexicalLinkFields` for
106
+ * cross-alias assignability.
107
+ */
108
+ const resolveLinkFieldsRef = (sanitizedFieldsWithoutText, args) => {
109
+ const fieldsSchema = buildLinkFieldsJSONSchema(sanitizedFieldsWithoutText, args);
110
+ const hasUserExtras = sanitizedFieldsWithoutText.some(field => 'name' in field && !STANDARD_LINK_FIELD_NAMES.has(field.name));
111
+ if (!hasUserExtras) {
112
+ return {
113
+ fieldsRef: fieldsSchema,
114
+ fieldsTypeName: 'LexicalLinkFields'
115
+ };
116
+ }
117
+ const fieldsTypeName = `LexicalLinkFields_${hashLinkFields(fieldsSchema)}`;
118
+ args.interfaceNameDefinitions.set(fieldsTypeName, fieldsSchema);
119
+ return {
120
+ fieldsRef: {
121
+ $ref: `#/$defs/${fieldsTypeName}`
122
+ },
123
+ fieldsTypeName
124
+ };
125
+ };
126
+ export const createLinkNodeJSONSchema = sanitizedFieldsWithoutText => args => {
127
+ const {
128
+ elementNodeSchema,
129
+ nodeUnionName,
130
+ typeStringDefinitions
131
+ } = args;
132
+ typeStringDefinitions.add(LINK_NODES_TS);
133
+ const {
134
+ fieldsRef,
135
+ fieldsTypeName
136
+ } = resolveLinkFieldsRef(sanitizedFieldsWithoutText, args);
137
+ return elementNodeSchema({
138
+ nodeType: 'link',
139
+ properties: {
140
+ id: {
141
+ type: 'string'
142
+ },
143
+ fields: fieldsRef
144
+ },
145
+ required: ['fields'],
146
+ tsType: `SerializedLinkNode<${nodeUnionName}, ${fieldsTypeName}>`
147
+ });
148
+ };
149
+ export const createAutoLinkNodeJSONSchema = sanitizedFieldsWithoutText => args => {
150
+ const {
151
+ elementNodeSchema,
152
+ nodeUnionName,
153
+ typeStringDefinitions
154
+ } = args;
155
+ typeStringDefinitions.add(LINK_NODES_TS);
156
+ const {
157
+ fieldsRef,
158
+ fieldsTypeName
159
+ } = resolveLinkFieldsRef(sanitizedFieldsWithoutText, args);
160
+ return elementNodeSchema({
161
+ nodeType: 'autolink',
162
+ properties: {
163
+ fields: fieldsRef
164
+ },
165
+ required: ['fields'],
166
+ tsType: `SerializedAutoLinkNode<${nodeUnionName}, ${fieldsTypeName}>`
167
+ });
168
+ };
169
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":["createHash","fieldsToJSONSchema","flattenAllFields","LINK_NODES_TS","buildLinkFieldsJSONSchema","sanitizedFieldsWithoutText","collectionIDFieldTypes","config","i18n","interfaceNameDefinitions","typeStringDefinitions","flattenedExtraFields","fields","userFieldsSchema","length","properties","required","type","additionalProperties","doc","oneOf","relationTo","value","id","linkType","enum","newTab","url","Set","STANDARD_LINK_FIELD_NAMES","hashLinkFields","schema","update","JSON","stringify","digest","slice","toUpperCase","resolveLinkFieldsRef","args","fieldsSchema","hasUserExtras","some","field","has","name","fieldsRef","fieldsTypeName","set","$ref","createLinkNodeJSONSchema","elementNodeSchema","nodeUnionName","add","nodeType","tsType","createAutoLinkNodeJSONSchema"],"sources":["../../../../src/features/link/server/schema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { SerializedLexicalNode } from 'lexical'\nimport type { DefaultDocumentIDType, Field } from 'payload'\n\nimport { createHash } from 'crypto'\nimport { fieldsToJSONSchema, flattenAllFields } from 'payload'\n\nimport type { SerializedLexicalElementBase } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaArgs, JSONSchemaFn } from '../../typesServer.js'\n\nexport type LinkFields = {\n /** Custom fields added via `LinkFeature`'s `fields` prop. */\n [k: string]: unknown\n doc?: {\n relationTo: string\n /** Document ID, or the full doc when populated by the afterRead hook. */\n value: { [k: string]: unknown; id: DefaultDocumentIDType } | DefaultDocumentIDType\n } | null\n linkType: 'custom' | 'internal'\n newTab: boolean\n url?: string\n}\n\nexport interface SerializedLinkNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n TFields = LinkFields,\n> extends SerializedLexicalElementBase<TChildren> {\n fields: TFields\n /** @todo make required in 4.0 and type AutoLinkNode differently */\n id?: string\n type: 'link'\n}\n\nexport interface SerializedAutoLinkNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n TFields = LinkFields,\n> extends SerializedLexicalElementBase<TChildren> {\n fields: TFields\n type: 'autolink'\n}\n\n/**\n * MUST stay byte-for-byte in sync with the runtime `LinkFields`, `SerializedLinkNode`,\n * and `SerializedAutoLinkNode` declared above.\n */\nconst LINK_NODES_TS = `export interface LexicalLinkFields {\n [k: string]: unknown;\n doc?: {\n relationTo: string;\n value: Config['db']['defaultIDType'] | { [k: string]: unknown; id: Config['db']['defaultIDType'] };\n } | null;\n linkType: 'custom' | 'internal';\n newTab: boolean;\n url?: string;\n}\nexport interface SerializedLinkNode<TChildren, TFields = LexicalLinkFields> extends SerializedLexicalElementBase<TChildren> {\n type: 'link';\n fields: TFields;\n id?: string;\n}\nexport interface SerializedAutoLinkNode<TChildren, TFields = LexicalLinkFields> extends SerializedLexicalElementBase<TChildren> {\n type: 'autolink';\n fields: TFields;\n}`\n\nconst buildLinkFieldsJSONSchema = (\n sanitizedFieldsWithoutText: Field[],\n {\n collectionIDFieldTypes,\n config,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n }: JSONSchemaArgs,\n): JSONSchema4 => {\n const flattenedExtraFields = flattenAllFields({ fields: sanitizedFieldsWithoutText })\n const userFieldsSchema =\n flattenedExtraFields.length > 0 && config\n ? fieldsToJSONSchema({\n collectionIDFieldTypes,\n config,\n fields: flattenedExtraFields,\n i18n,\n interfaceNameDefinitions,\n typeStringDefinitions,\n })\n : { properties: {}, required: [] }\n\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...userFieldsSchema.properties,\n doc: {\n oneOf: [\n {\n type: 'object',\n additionalProperties: false,\n properties: {\n relationTo: { type: 'string' },\n value: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n // Populated form (afterRead inflates `value` into the doc).\n {\n type: 'object',\n additionalProperties: true,\n properties: { id: { type: ['string', 'number'] } },\n required: ['id'],\n },\n ],\n },\n },\n required: ['relationTo', 'value'],\n },\n { type: 'null' },\n ],\n },\n linkType: { type: 'string', enum: ['custom', 'internal'] },\n newTab: { type: 'boolean' },\n url: { type: 'string' },\n },\n // `linkType`/`newTab` are already in `userFieldsSchema.required`; use Set to dedupe,\n // so `required` stays unique (draft 2020-12 enforces `uniqueItems`).\n required: [...new Set(['linkType', 'newTab', ...userFieldsSchema.required])],\n }\n}\n\n/** Fields auto-attached by `LinkFeature` (see `transformExtraFields`). */\nconst STANDARD_LINK_FIELD_NAMES = new Set(['doc', 'linkType', 'newTab', 'url'])\n\nconst hashLinkFields = (schema: JSONSchema4): string =>\n createHash('sha256').update(JSON.stringify(schema)).digest('hex').slice(0, 8).toUpperCase()\n\n/**\n * With custom link fields, emit a `LexicalLinkFields_<hash>` interface (hashed by its own content)\n * so the link node picks up their real shape. Without any, reuse the default `LexicalLinkFields` for\n * cross-alias assignability.\n */\nconst resolveLinkFieldsRef = (\n sanitizedFieldsWithoutText: Field[],\n args: JSONSchemaArgs,\n): { fieldsRef: JSONSchema4; fieldsTypeName: string } => {\n const fieldsSchema = buildLinkFieldsJSONSchema(sanitizedFieldsWithoutText, args)\n const hasUserExtras = sanitizedFieldsWithoutText.some(\n (field) => 'name' in field && !STANDARD_LINK_FIELD_NAMES.has(field.name),\n )\n if (!hasUserExtras) {\n return { fieldsRef: fieldsSchema, fieldsTypeName: 'LexicalLinkFields' }\n }\n const fieldsTypeName = `LexicalLinkFields_${hashLinkFields(fieldsSchema)}`\n args.interfaceNameDefinitions.set(fieldsTypeName, fieldsSchema)\n return { fieldsRef: { $ref: `#/$defs/${fieldsTypeName}` }, fieldsTypeName }\n}\n\nexport const createLinkNodeJSONSchema =\n (sanitizedFieldsWithoutText: Field[]): JSONSchemaFn =>\n (args) => {\n const { elementNodeSchema, nodeUnionName, typeStringDefinitions } = args\n typeStringDefinitions.add(LINK_NODES_TS)\n const { fieldsRef, fieldsTypeName } = resolveLinkFieldsRef(sanitizedFieldsWithoutText, args)\n return elementNodeSchema({\n nodeType: 'link',\n properties: {\n id: { type: 'string' },\n fields: fieldsRef,\n },\n required: ['fields'],\n tsType: `SerializedLinkNode<${nodeUnionName}, ${fieldsTypeName}>`,\n })\n }\n\nexport const createAutoLinkNodeJSONSchema =\n (sanitizedFieldsWithoutText: Field[]): JSONSchemaFn =>\n (args) => {\n const { elementNodeSchema, nodeUnionName, typeStringDefinitions } = args\n typeStringDefinitions.add(LINK_NODES_TS)\n const { fieldsRef, fieldsTypeName } = resolveLinkFieldsRef(sanitizedFieldsWithoutText, args)\n return elementNodeSchema({\n nodeType: 'autolink',\n properties: {\n fields: fieldsRef,\n },\n required: ['fields'],\n tsType: `SerializedAutoLinkNode<${nodeUnionName}, ${fieldsTypeName}>`,\n })\n }\n"],"mappings":"AAIA,SAASA,UAAU,QAAQ;AAC3B,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ;AAoCrD;;;;AAIA,MAAMC,aAAA,GAAgB;;;;;;;;;;;;;;;;;;EAkBpB;AAEF,MAAMC,yBAAA,GAA4BA,CAChCC,0BAAA,EACA;EACEC,sBAAsB;EACtBC,MAAM;EACNC,IAAI;EACJC,wBAAwB;EACxBC;AAAqB,CACN;EAEjB,MAAMC,oBAAA,GAAuBT,gBAAA,CAAiB;IAAEU,MAAA,EAAQP;EAA2B;EACnF,MAAMQ,gBAAA,GACJF,oBAAA,CAAqBG,MAAM,GAAG,KAAKP,MAAA,GAC/BN,kBAAA,CAAmB;IACjBK,sBAAA;IACAC,MAAA;IACAK,MAAA,EAAQD,oBAAA;IACRH,IAAA;IACAC,wBAAA;IACAC;EACF,KACA;IAAEK,UAAA,EAAY,CAAC;IAAGC,QAAA,EAAU;EAAG;EAErC,OAAO;IACLC,IAAA,EAAM;IACNC,oBAAA,EAAsB;IACtBH,UAAA,EAAY;MACV,GAAGF,gBAAA,CAAiBE,UAAU;MAC9BI,GAAA,EAAK;QACHC,KAAA,EAAO,CACL;UACEH,IAAA,EAAM;UACNC,oBAAA,EAAsB;UACtBH,UAAA,EAAY;YACVM,UAAA,EAAY;cAAEJ,IAAA,EAAM;YAAS;YAC7BK,KAAA,EAAO;cACLF,KAAA,EAAO,CACL;gBAAEH,IAAA,EAAM;cAAS,GACjB;gBAAEA,IAAA,EAAM;cAAS;cACjB;cACA;gBACEA,IAAA,EAAM;gBACNC,oBAAA,EAAsB;gBACtBH,UAAA,EAAY;kBAAEQ,EAAA,EAAI;oBAAEN,IAAA,EAAM,CAAC,UAAU;kBAAU;gBAAE;gBACjDD,QAAA,EAAU,CAAC;cACb;YAEJ;UACF;UACAA,QAAA,EAAU,CAAC,cAAc;QAC3B,GACA;UAAEC,IAAA,EAAM;QAAO;MAEnB;MACAO,QAAA,EAAU;QAAEP,IAAA,EAAM;QAAUQ,IAAA,EAAM,CAAC,UAAU;MAAY;MACzDC,MAAA,EAAQ;QAAET,IAAA,EAAM;MAAU;MAC1BU,GAAA,EAAK;QAAEV,IAAA,EAAM;MAAS;IACxB;IACA;IACA;IACAD,QAAA,EAAU,C,GAAI,IAAIY,GAAA,CAAI,CAAC,YAAY,U,GAAaf,gBAAA,CAAiBG,QAAQ,CAAC;EAC5E;AACF;AAEA;AACA,MAAMa,yBAAA,GAA4B,IAAID,GAAA,CAAI,CAAC,OAAO,YAAY,UAAU,MAAM;AAE9E,MAAME,cAAA,GAAkBC,MAAA,IACtB/B,UAAA,CAAW,UAAUgC,MAAM,CAACC,IAAA,CAAKC,SAAS,CAACH,MAAA,GAASI,MAAM,CAAC,OAAOC,KAAK,CAAC,GAAG,GAAGC,WAAW;AAE3F;;;;;AAKA,MAAMC,oBAAA,GAAuBA,CAC3BjC,0BAAA,EACAkC,IAAA;EAEA,MAAMC,YAAA,GAAepC,yBAAA,CAA0BC,0BAAA,EAA4BkC,IAAA;EAC3E,MAAME,aAAA,GAAgBpC,0BAAA,CAA2BqC,IAAI,CAClDC,KAAA,IAAU,UAAUA,KAAA,IAAS,CAACd,yBAAA,CAA0Be,GAAG,CAACD,KAAA,CAAME,IAAI;EAEzE,IAAI,CAACJ,aAAA,EAAe;IAClB,OAAO;MAAEK,SAAA,EAAWN,YAAA;MAAcO,cAAA,EAAgB;IAAoB;EACxE;EACA,MAAMA,cAAA,GAAiB,qBAAqBjB,cAAA,CAAeU,YAAA,GAAe;EAC1ED,IAAA,CAAK9B,wBAAwB,CAACuC,GAAG,CAACD,cAAA,EAAgBP,YAAA;EAClD,OAAO;IAAEM,SAAA,EAAW;MAAEG,IAAA,EAAM,WAAWF,cAAA;IAAiB;IAAGA;EAAe;AAC5E;AAEA,OAAO,MAAMG,wBAAA,GACV7C,0BAAA,IACAkC,IAAA;EACC,MAAM;IAAEY,iBAAiB;IAAEC,aAAa;IAAE1C;EAAqB,CAAE,GAAG6B,IAAA;EACpE7B,qBAAA,CAAsB2C,GAAG,CAAClD,aAAA;EAC1B,MAAM;IAAE2C,SAAS;IAAEC;EAAc,CAAE,GAAGT,oBAAA,CAAqBjC,0BAAA,EAA4BkC,IAAA;EACvF,OAAOY,iBAAA,CAAkB;IACvBG,QAAA,EAAU;IACVvC,UAAA,EAAY;MACVQ,EAAA,EAAI;QAAEN,IAAA,EAAM;MAAS;MACrBL,MAAA,EAAQkC;IACV;IACA9B,QAAA,EAAU,CAAC,SAAS;IACpBuC,MAAA,EAAQ,sBAAsBH,aAAA,KAAkBL,cAAA;EAClD;AACF;AAEF,OAAO,MAAMS,4BAAA,GACVnD,0BAAA,IACAkC,IAAA;EACC,MAAM;IAAEY,iBAAiB;IAAEC,aAAa;IAAE1C;EAAqB,CAAE,GAAG6B,IAAA;EACpE7B,qBAAA,CAAsB2C,GAAG,CAAClD,aAAA;EAC1B,MAAM;IAAE2C,SAAS;IAAEC;EAAc,CAAE,GAAGT,oBAAA,CAAqBjC,0BAAA,EAA4BkC,IAAA;EACvF,OAAOY,iBAAA,CAAkB;IACvBG,QAAA,EAAU;IACVvC,UAAA,EAAY;MACVH,MAAA,EAAQkC;IACV;IACA9B,QAAA,EAAU,CAAC,SAAS;IACpBuC,MAAA,EAAQ,0BAA0BH,aAAA,KAAkBL,cAAA;EACtD;AACF","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { Field } from 'payload';
2
2
  import type { NodeValidation } from '../../typesServer.js';
3
- import type { SerializedAutoLinkNode, SerializedLinkNode } from '../nodes/types.js';
4
3
  import type { LinkFeatureServerProps } from './index.js';
4
+ import type { SerializedAutoLinkNode, SerializedLinkNode } from './schema.js';
5
5
  export declare const linkValidation: (props: LinkFeatureServerProps, sanitizedFieldsWithoutText: Field[]) => NodeValidation<SerializedAutoLinkNode | SerializedLinkNode>;
6
6
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExD,eAAO,MAAM,cAAc,UAClB,sBAAsB,8BACD,KAAK,EAAE,KAClC,cAAc,CAAC,sBAAsB,GAAG,kBAAkB,CA4C5D,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/features/link/server/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE7E,eAAO,MAAM,cAAc,GACzB,OAAO,sBAAsB,EAC7B,4BAA4B,KAAK,EAAE,KAClC,cAAc,CAAC,sBAAsB,GAAG,kBAAkB,CA4C5D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","linkValidation","props","sanitizedFieldsWithoutText","node","validation","options","id","collectionSlug","data","operation","preferences","req","result","fields","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/link/server/validate.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { SerializedAutoLinkNode, SerializedLinkNode } from '../nodes/types.js'\nimport type { LinkFeatureServerProps } from './index.js'\n\nexport const linkValidation = (\n props: LinkFeatureServerProps,\n sanitizedFieldsWithoutText: Field[],\n): NodeValidation<SerializedAutoLinkNode | SerializedLinkNode> => {\n return async ({\n node,\n validation: {\n options: { id, collectionSlug, data, operation, preferences, req },\n },\n }) => {\n /**\n * Run fieldSchemasToFormState as that properly validates link fields and link sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: node.fields,\n documentData: data,\n fields: sanitizedFieldsWithoutText, // Sanitized in feature.server.ts\n fieldSchemaMap: undefined,\n initialBlockData: node.fields,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAMxC,OAAO,MAAMC,cAAA,GAAiBA,CAC5BC,KAAA,EACAC,0BAAA;EAEA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE;EACnE,CACF;IACC;;;IAIA,MAAMC,MAAA,GAAS,MAAMb,uBAAA,CAAwB;MAC3CO,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,IAAA,CAAKU,MAAM;MACjBC,YAAA,EAAcN,IAAA;MACdK,MAAA,EAAQX,0BAAA;MACRa,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBd,IAAA,CAAKU,MAAM;MAC7BJ,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1ES,WAAA,EAAa,CAAC;MACdR,WAAA;MACAS,eAAA,EAAiB;MACjBR,GAAA;MACAS,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYX,MAAA,EAAQ;MAC7B,MAAMY,UAAA,GAAaZ,MAAM,CAACW,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","linkValidation","props","sanitizedFieldsWithoutText","node","validation","options","id","collectionSlug","data","operation","preferences","req","result","fields","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/link/server/validate.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { LinkFeatureServerProps } from './index.js'\nimport type { SerializedAutoLinkNode, SerializedLinkNode } from './schema.js'\n\nexport const linkValidation = (\n props: LinkFeatureServerProps,\n sanitizedFieldsWithoutText: Field[],\n): NodeValidation<SerializedAutoLinkNode | SerializedLinkNode> => {\n return async ({\n node,\n validation: {\n options: { id, collectionSlug, data, operation, preferences, req },\n },\n }) => {\n /**\n * Run fieldSchemasToFormState as that properly validates link fields and link sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: node.fields,\n documentData: data,\n fields: sanitizedFieldsWithoutText, // Sanitized in feature.server.ts\n fieldSchemaMap: undefined,\n initialBlockData: node.fields,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAMxC,OAAO,MAAMC,cAAA,GAAiBA,CAC5BC,KAAA,EACAC,0BAAA;EAEA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE;EACnE,CACF;IACC;;;IAIA,MAAMC,MAAA,GAAS,MAAMb,uBAAA,CAAwB;MAC3CO,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,IAAA,CAAKU,MAAM;MACjBC,YAAA,EAAcN,IAAA;MACdK,MAAA,EAAQX,0BAAA;MACRa,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBd,IAAA,CAAKU,MAAM;MAC7BJ,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1ES,WAAA,EAAa,CAAC;MACdR,WAAA;MACAS,eAAA,EAAiB;MACjBR,GAAA;MACAS,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYX,MAAA,EAAQ;MAC7B,MAAMY,UAAA,GAAaZ,MAAM,CAACW,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/lists/checklist/server/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,kGAmB3B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/lists/checklist/server/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,gBAAgB,kGAqB3B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { ListItemNode, ListNode } from '@lexical/list';
2
2
  import { createServerFeature } from '../../../../utilities/createServerFeature.js';
3
3
  import { createNode } from '../../../typeUtilities.js';
4
+ import { listItemNodeJSONSchema, listNodeJSONSchema } from '../../shared/schema.js';
4
5
  import { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js';
5
6
  import { CHECK_LIST } from '../markdownTransformers.js';
6
7
  import { i18n } from './i18n.js';
@@ -13,8 +14,10 @@ export const ChecklistFeature = createServerFeature({
13
14
  i18n,
14
15
  markdownTransformers: [CHECK_LIST],
15
16
  nodes: shouldRegisterListBaseNodes('checklist', featureProviderMap) ? [createNode({
17
+ jsonSchema: listNodeJSONSchema,
16
18
  node: ListNode
17
19
  }), createNode({
20
+ jsonSchema: listItemNodeJSONSchema,
18
21
  node: ListItemNode
19
22
  })] : []
20
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ListItemNode","ListNode","createServerFeature","createNode","shouldRegisterListBaseNodes","CHECK_LIST","i18n","ChecklistFeature","feature","featureProviderMap","ClientFeature","markdownTransformers","nodes","node","key"],"sources":["../../../../../src/features/lists/checklist/server/index.ts"],"sourcesContent":["import { ListItemNode, ListNode } from '@lexical/list'\n\nimport { createServerFeature } from '../../../../utilities/createServerFeature.js'\nimport { createNode } from '../../../typeUtilities.js'\nimport { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js'\nimport { CHECK_LIST } from '../markdownTransformers.js'\nimport { i18n } from './i18n.js'\n\nexport const ChecklistFeature = createServerFeature({\n feature: ({ featureProviderMap }) => {\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#ChecklistFeatureClient',\n i18n,\n markdownTransformers: [CHECK_LIST],\n nodes: shouldRegisterListBaseNodes('checklist', featureProviderMap)\n ? [\n createNode({\n node: ListNode,\n }),\n createNode({\n node: ListItemNode,\n }),\n ]\n : [],\n }\n },\n key: 'checklist',\n})\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,QAAQ,QAAQ;AAEvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,UAAU,QAAQ;AAC3B,SAASC,IAAI,QAAQ;AAErB,OAAO,MAAMC,gBAAA,GAAmBL,mBAAA,CAAoB;EAClDM,OAAA,EAASA,CAAC;IAAEC;EAAkB,CAAE;IAC9B,OAAO;MACLC,aAAA,EAAe;MACfJ,IAAA;MACAK,oBAAA,EAAsB,CAACN,UAAA,CAAW;MAClCO,KAAA,EAAOR,2BAAA,CAA4B,aAAaK,kBAAA,IAC5C,CACEN,UAAA,CAAW;QACTU,IAAA,EAAMZ;MACR,IACAE,UAAA,CAAW;QACTU,IAAA,EAAMb;MACR,GACD,GACD;IACN;EACF;EACAc,GAAA,EAAK;AACP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ListItemNode","ListNode","createServerFeature","createNode","listItemNodeJSONSchema","listNodeJSONSchema","shouldRegisterListBaseNodes","CHECK_LIST","i18n","ChecklistFeature","feature","featureProviderMap","ClientFeature","markdownTransformers","nodes","jsonSchema","node","key"],"sources":["../../../../../src/features/lists/checklist/server/index.ts"],"sourcesContent":["import { ListItemNode, ListNode } from '@lexical/list'\n\nimport { createServerFeature } from '../../../../utilities/createServerFeature.js'\nimport { createNode } from '../../../typeUtilities.js'\nimport { listItemNodeJSONSchema, listNodeJSONSchema } from '../../shared/schema.js'\nimport { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js'\nimport { CHECK_LIST } from '../markdownTransformers.js'\nimport { i18n } from './i18n.js'\n\nexport const ChecklistFeature = createServerFeature({\n feature: ({ featureProviderMap }) => {\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#ChecklistFeatureClient',\n i18n,\n markdownTransformers: [CHECK_LIST],\n nodes: shouldRegisterListBaseNodes('checklist', featureProviderMap)\n ? [\n createNode({\n jsonSchema: listNodeJSONSchema,\n node: ListNode,\n }),\n createNode({\n jsonSchema: listItemNodeJSONSchema,\n node: ListItemNode,\n }),\n ]\n : [],\n }\n },\n key: 'checklist',\n})\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,QAAQ,QAAQ;AAEvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,sBAAsB,EAAEC,kBAAkB,QAAQ;AAC3D,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,UAAU,QAAQ;AAC3B,SAASC,IAAI,QAAQ;AAErB,OAAO,MAAMC,gBAAA,GAAmBP,mBAAA,CAAoB;EAClDQ,OAAA,EAASA,CAAC;IAAEC;EAAkB,CAAE;IAC9B,OAAO;MACLC,aAAA,EAAe;MACfJ,IAAA;MACAK,oBAAA,EAAsB,CAACN,UAAA,CAAW;MAClCO,KAAA,EAAOR,2BAAA,CAA4B,aAAaK,kBAAA,IAC5C,CACER,UAAA,CAAW;QACTY,UAAA,EAAYV,kBAAA;QACZW,IAAA,EAAMf;MACR,IACAE,UAAA,CAAW;QACTY,UAAA,EAAYX,sBAAA;QACZY,IAAA,EAAMhB;MACR,GACD,GACD;IACN;EACF;EACAiB,GAAA,EAAK;AACP","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/lists/orderedList/server/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,kGAmB7B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/lists/orderedList/server/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kBAAkB,kGAqB7B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { ListItemNode, ListNode } from '@lexical/list';
2
2
  import { createServerFeature } from '../../../../utilities/createServerFeature.js';
3
3
  import { createNode } from '../../../typeUtilities.js';
4
+ import { listItemNodeJSONSchema, listNodeJSONSchema } from '../../shared/schema.js';
4
5
  import { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js';
5
6
  import { ORDERED_LIST } from '../markdownTransformer.js';
6
7
  import { i18n } from './i18n.js';
@@ -13,8 +14,10 @@ export const OrderedListFeature = createServerFeature({
13
14
  i18n,
14
15
  markdownTransformers: [ORDERED_LIST],
15
16
  nodes: shouldRegisterListBaseNodes('ordered', featureProviderMap) ? [createNode({
17
+ jsonSchema: listNodeJSONSchema,
16
18
  node: ListNode
17
19
  }), createNode({
20
+ jsonSchema: listItemNodeJSONSchema,
18
21
  node: ListItemNode
19
22
  })] : []
20
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ListItemNode","ListNode","createServerFeature","createNode","shouldRegisterListBaseNodes","ORDERED_LIST","i18n","OrderedListFeature","feature","featureProviderMap","ClientFeature","markdownTransformers","nodes","node","key"],"sources":["../../../../../src/features/lists/orderedList/server/index.ts"],"sourcesContent":["import { ListItemNode, ListNode } from '@lexical/list'\n\nimport { createServerFeature } from '../../../../utilities/createServerFeature.js'\nimport { createNode } from '../../../typeUtilities.js'\nimport { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js'\nimport { ORDERED_LIST } from '../markdownTransformer.js'\nimport { i18n } from './i18n.js'\n\nexport const OrderedListFeature = createServerFeature({\n feature: ({ featureProviderMap }) => {\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#OrderedListFeatureClient',\n i18n,\n markdownTransformers: [ORDERED_LIST],\n nodes: shouldRegisterListBaseNodes('ordered', featureProviderMap)\n ? [\n createNode({\n node: ListNode,\n }),\n createNode({\n node: ListItemNode,\n }),\n ]\n : [],\n }\n },\n key: 'orderedList',\n})\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,QAAQ,QAAQ;AAEvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,YAAY,QAAQ;AAC7B,SAASC,IAAI,QAAQ;AAErB,OAAO,MAAMC,kBAAA,GAAqBL,mBAAA,CAAoB;EACpDM,OAAA,EAASA,CAAC;IAAEC;EAAkB,CAAE;IAC9B,OAAO;MACLC,aAAA,EAAe;MACfJ,IAAA;MACAK,oBAAA,EAAsB,CAACN,YAAA,CAAa;MACpCO,KAAA,EAAOR,2BAAA,CAA4B,WAAWK,kBAAA,IAC1C,CACEN,UAAA,CAAW;QACTU,IAAA,EAAMZ;MACR,IACAE,UAAA,CAAW;QACTU,IAAA,EAAMb;MACR,GACD,GACD;IACN;EACF;EACAc,GAAA,EAAK;AACP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ListItemNode","ListNode","createServerFeature","createNode","listItemNodeJSONSchema","listNodeJSONSchema","shouldRegisterListBaseNodes","ORDERED_LIST","i18n","OrderedListFeature","feature","featureProviderMap","ClientFeature","markdownTransformers","nodes","jsonSchema","node","key"],"sources":["../../../../../src/features/lists/orderedList/server/index.ts"],"sourcesContent":["import { ListItemNode, ListNode } from '@lexical/list'\n\nimport { createServerFeature } from '../../../../utilities/createServerFeature.js'\nimport { createNode } from '../../../typeUtilities.js'\nimport { listItemNodeJSONSchema, listNodeJSONSchema } from '../../shared/schema.js'\nimport { shouldRegisterListBaseNodes } from '../../shared/shouldRegisterListBaseNodes.js'\nimport { ORDERED_LIST } from '../markdownTransformer.js'\nimport { i18n } from './i18n.js'\n\nexport const OrderedListFeature = createServerFeature({\n feature: ({ featureProviderMap }) => {\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#OrderedListFeatureClient',\n i18n,\n markdownTransformers: [ORDERED_LIST],\n nodes: shouldRegisterListBaseNodes('ordered', featureProviderMap)\n ? [\n createNode({\n jsonSchema: listNodeJSONSchema,\n node: ListNode,\n }),\n createNode({\n jsonSchema: listItemNodeJSONSchema,\n node: ListItemNode,\n }),\n ]\n : [],\n }\n },\n key: 'orderedList',\n})\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,QAAQ,QAAQ;AAEvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,sBAAsB,EAAEC,kBAAkB,QAAQ;AAC3D,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,YAAY,QAAQ;AAC7B,SAASC,IAAI,QAAQ;AAErB,OAAO,MAAMC,kBAAA,GAAqBP,mBAAA,CAAoB;EACpDQ,OAAA,EAASA,CAAC;IAAEC;EAAkB,CAAE;IAC9B,OAAO;MACLC,aAAA,EAAe;MACfJ,IAAA;MACAK,oBAAA,EAAsB,CAACN,YAAA,CAAa;MACpCO,KAAA,EAAOR,2BAAA,CAA4B,WAAWK,kBAAA,IAC1C,CACER,UAAA,CAAW;QACTY,UAAA,EAAYV,kBAAA;QACZW,IAAA,EAAMf;MACR,IACAE,UAAA,CAAW;QACTY,UAAA,EAAYX,sBAAA;QACZY,IAAA,EAAMhB;MACR,GACD,GACD;IACN;EACF;EACAiB,GAAA,EAAK;AACP","ignoreList":[]}
@@ -1,12 +1,3 @@
1
- import type { SerializedListItemNode as _SerializedListItemNode, SerializedListNode as _SerializedListNode } from '@lexical/list';
2
- import type { SerializedLexicalNode } from 'lexical';
3
- import type { StronglyTypedElementNode } from '../../../nodeTypes.js';
4
1
  import type { PluginComponent } from '../../typesClient.js';
5
- export type SerializedListItemNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {
6
- checked?: boolean;
7
- } & StronglyTypedElementNode<_SerializedListItemNode, 'listitem', T>;
8
- export type SerializedListNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {
9
- checked?: boolean;
10
- } & StronglyTypedElementNode<_SerializedListNode, 'list', T>;
11
2
  export declare const LexicalListPlugin: PluginComponent<undefined>;
12
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/plugin/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,IAAI,uBAAuB,EACjD,kBAAkB,IAAI,mBAAmB,EAC1C,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAKpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,wBAAwB,CAAC,uBAAuB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IACxF,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAE5D,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAExD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/plugin/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAExD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ListPlugin","React","LexicalListPlugin","_jsx"],"sources":["../../../../src/features/lists/plugin/index.tsx"],"sourcesContent":["'use client'\nimport type {\n SerializedListItemNode as _SerializedListItemNode,\n SerializedListNode as _SerializedListNode,\n} from '@lexical/list'\nimport type { SerializedLexicalNode } from 'lexical'\n\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { StronglyTypedElementNode } from '../../../nodeTypes.js'\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport type SerializedListItemNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListItemNode, 'listitem', T>\n\nexport type SerializedListNode<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n checked?: boolean\n} & StronglyTypedElementNode<_SerializedListNode, 'list', T>\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\n}\n"],"mappings":"AAAA;;;AAOA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAalB,OAAO,MAAMC,iBAAA,GAAgDA,CAAA;EAC3D,oBAAOC,IAAA,CAACH,UAAA;AACV","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ListPlugin","React","LexicalListPlugin","_jsx"],"sources":["../../../../src/features/lists/plugin/index.tsx"],"sourcesContent":["'use client'\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\n}\n"],"mappings":"AAAA;;;AACA,SAASA,UAAU,QAAQ;AAC3B,OAAOC,KAAA,MAAW;AAIlB,OAAO,MAAMC,iBAAA,GAAgDA,CAAA;EAC3D,oBAAOC,IAAA,CAACH,UAAA;AACV","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/shared/markdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAA;AAKrG,eAAO,MAAM,WAAW,aAAc,QAAQ,KAAG,kBAAkB,CAAC,SAAS,CA6B5E,CAAA;AAED,eAAO,MAAM,UAAU,aACX,QAAQ,kBACF,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,SACtC,MAAM,KACZ,MA2BF,CAAA"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/shared/markdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAA;AAKrG,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,KAAG,kBAAkB,CAAC,SAAS,CA6B5E,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,UAAU,QAAQ,EAClB,gBAAgB,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,EAC7C,OAAO,MAAM,KACZ,MA2BF,CAAA"}
@@ -0,0 +1,18 @@
1
+ import type { SerializedLexicalNode } from 'lexical';
2
+ import type { SerializedLexicalElementBase } from '../../../types/nodeTypes.js';
3
+ import type { JSONSchemaFn } from '../../typesServer.js';
4
+ export interface SerializedListItemNode<TChildren extends SerializedLexicalNode = SerializedLexicalNode> extends SerializedLexicalElementBase<TChildren> {
5
+ checked?: boolean;
6
+ type: 'listitem';
7
+ value: number;
8
+ }
9
+ export interface SerializedListNode<TChildren extends SerializedLexicalNode = SerializedLexicalNode> extends SerializedLexicalElementBase<TChildren> {
10
+ checked?: boolean;
11
+ listType: 'bullet' | 'check' | 'number';
12
+ start: number;
13
+ tag: 'ol' | 'ul';
14
+ type: 'list';
15
+ }
16
+ export declare const listNodeJSONSchema: JSONSchemaFn;
17
+ export declare const listItemNodeJSONSchema: JSONSchemaFn;
18
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/shared/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,MAAM,WAAW,sBAAsB,CACrC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB,CAAC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CACjG,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAkBD,eAAO,MAAM,kBAAkB,EAAE,YAiBhC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,YAepC,CAAA"}