ueberdosis / tiptap

The headless rich text editor framework for web artisans.
https://tiptap.dev
MIT License
26.65k stars 2.23k forks source link

[Bug]: StarterKit no longer installs dependencies, eg @tiptap/extension-bold #4616

Closed Nantris closed 7 months ago

Nantris commented 10 months ago

Which packages did you experience the bug in?

starter-kit

What Tiptap version are you using?

2.2.0-rc.4

What’s the bug you are facing?

We previously didn't have to install these individually, but now we do.

What browser are you using?

Chrome

Code example

No response

What did you expect to happen?

Upgrade to 2.2.0 should not require installing additional dependencies - OR it should be documented.

Anything to add? (optional)

No response

Did you update your dependencies?

Are you sponsoring us?

ideosyncretic commented 7 months ago

We have the same issue: StarterKit is causing runtime errors and a type error that resolve when we install the @tiptap/extension-document package separately.

@Slapbox you could try and see if that works for you, so you don't have to install all StarterKit dependencies individually.

StarterKit's type error occured regardless of any configurations or other extensions, even after I stripped the Editor down.

function MetaTextEditor({ doc, provider }: MetaTextEditorProps) {
  const editor = useEditor(
    {
      extensions: [StarterKit.configure({ ... })],
    },
    [],
  );
Screenshot 2024-02-06 at 16 58 02

The type error:

Type 'Extension<StarterKitOptions, any>' is not assignable to type 'AnyExtension'. Type 'Extension<StarterKitOptions, any>' is not assignable to type 'Mark<any, any>'. Types of property 'parent' are incompatible. Type 'Extension<any, any> | null' is not assignable to type 'Mark<any, any> | null'. Type 'Extension<any, any>' is not assignable to type 'Mark<any, any>'. The types of 'config.addCommands' are incompatible between these types. Type '((this: { name: string; options: any; storage: any; editor: Editor; parent: (() => Partial) | undefined; }) => Partial) | undefined' is not assignable to type '((this: { name: string; options: any; storage: any; editor: Editor; type: MarkType; parent: (() => Partial) | undefined; }) => Partial) | undefined'. Type '(this: { name: string; options: any; storage: any; editor: Editor; parent: (() => Partial) | undefined; }) => Partial' is not assignable to type '(this: { name: string; options: any; storage: any; editor: Editor; type: MarkType; parent: (() => Partial) | undefined; }) => Partial'. The 'this' types of each signature are incompatible. Type '{ name: string; options: any; storage: any; editor: Editor; type: MarkType; parent: (() => Partial) | undefined; }' is not assignable to type '{ name: string; options: any; storage: any; editor: Editor; parent: (() => Partial) | undefined; }'. Types of property 'editor' are incompatible. Type 'Editor' is missing the following properties from type 'Editor': $node, $nodes, $pos, $doc ts(2322)

When running our app we got these errors:

Uncaught TypeError: Cannot read properties of undefined (reading 'localsInner')
    at DecorationGroup.locals (index.js:4144:1)
    at iterDeco (index.js:1961:1)
    at NodeViewDesc.updateChildren (index.js:1287:1)
    at NodeViewDesc.updateInner (index.js:1384:1)
    at NodeViewDesc.update (index.js:1376:1)
    at EditorView.updateStateInner (index.js:5250:1)
    at EditorView.updateState (index.js:5203:1)
    at Editor.createView (index.js:3602:1)
    at new Editor (index.js:3438:1)
    at new Editor (index.js:131:1)
    at eval (index.js:201:1)
    at commitHookEffectListMount (react-dom.development.js:23150:1)
    at commitPassiveMountOnFiber (react-dom.development.js:24926:1)
    at commitPassiveMountEffects_complete (react-dom.development.js:24891:1)
    at commitPassiveMountEffects_begin (react-dom.development.js:24878:1)
    at commitPassiveMountEffects (react-dom.development.js:24866:1)
    at flushPassiveEffectsImpl (react-dom.development.js:27039:1)
    at flushPassiveEffects (react-dom.development.js:26984:1)
    at performSyncWorkOnRoot (react-dom.development.js:26076:1)
    at flushSyncCallbacks (react-dom.development.js:12042:1)
    at commitRootImpl (react-dom.development.js:26959:1)
    at commitRoot (react-dom.development.js:26682:1)
    at finishConcurrentRender (react-dom.development.js:25981:1)
    at performConcurrentWorkOnRoot (react-dom.development.js:25809:1)
    at workLoop (scheduler.development.js:266:1)
    at flushWork (scheduler.development.js:239:1)
    at MessagePort.performWorkUntilDeadline (scheduler.development.js:533:1)
The above error occurred in the <MetaTextEditor> component:

    at MetaTextEditor (webpack-internal:///./src/components/features/Library/Prompts/Authoring/Editors/MetaTextEditor/MetaTextEditor.tsx:73:11)
    at CollaborativeMetaTextEditor (webpack-internal:///./src/components/features/Library/Prompts/Authoring/Editors/MetaTextEditor/MetaTextEditor.tsx:39:11)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Stack/Stack.mjs:44:104)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Stack/Stack.mjs:44:104)
    at div
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Collapse/Collapse.mjs:44:94)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs:32:166)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at Provider (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/utils/create-safe-context/create-safe-context.mjs:18:23)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Accordion/AccordionItem/AccordionItem.mjs:31:168)
    at eval (webpack-internal:///./src/components/features/Library/Prompts/Authoring/Templates/PromptTemplates.tsx:352:11)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at Draggable (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:6338:60)
    at ConnectFunction (webpack-internal:///./node_modules/.pnpm/react-redux@8.1.3_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0_redux@4.2.1/node_modules/react-redux/es/components/connect.js:240:103)
    at PrivateDraggable (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:6628:28)
    at PublicDraggable (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:6636:34)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Flex/Flex.mjs:40:104)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at Provider (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/utils/create-safe-context/create-safe-context.mjs:18:23)
    at Accordion (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Accordion/Accordion.mjs:61:104)
    at Droppable (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:7256:71)
    at ConnectFunction (webpack-internal:///./node_modules/.pnpm/react-redux@8.1.3_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0_redux@4.2.1/node_modules/react-redux/es/components/connect.js:240:103)
    at Provider (webpack-internal:///./node_modules/.pnpm/react-redux@8.1.3_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0_redux@4.2.1/node_modules/react-redux/es/components/Provider.js:13:3)
    at App (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:6012:5)
    at ErrorBoundary (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:99:5)
    at DragDropContext (webpack-internal:///./node_modules/.pnpm/@hello-pangea+dnd@16.5.0_@types+react-dom@18.2.18_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@hello-pangea/dnd/dist/dnd.esm.js:6142:21)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Flex/Flex.mjs:40:104)
    at Object.apply (webpack-internal:///./node_modules/.pnpm/@legendapp+state@2.1.5_react@18.2.0/node_modules/@legendapp/state/react.mjs:540:24)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Stack/Stack.mjs:44:104)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Tabs/TabsPanel/TabsPanel.mjs:29:104)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at Provider (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/utils/create-safe-context/create-safe-context.mjs:18:23)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Tabs/Tabs.mjs:68:104)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/Stack/Stack.mjs:44:104)
    at main
    at form
    at Object.apply (webpack-internal:///./node_modules/.pnpm/@legendapp+state@2.1.5_react@18.2.0/node_modules/@legendapp/state/react.mjs:540:24)
    at Object.apply (webpack-internal:///./node_modules/.pnpm/@legendapp+state@2.1.5_react@18.2.0/node_modules/@legendapp/state/react.mjs:540:24)
    at main
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/AppShell/AppShellMain/AppShellMain.mjs:29:104)
    at div
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/Box/Box.mjs:37:5)
    at Provider (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/utils/create-safe-context/create-safe-context.mjs:18:23)
    at eval (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/components/AppShell/AppShell.mjs:66:104)
    at SignedIn (webpack-internal:///./node_modules/.pnpm/@clerk+clerk-react@4.30.4_react@18.2.0/node_modules/@clerk/clerk-react/dist/esm/components/controlComponents.js:32:21)
    at PrivateLayout (webpack-internal:///./src/components/layouts/Private/PrivateLayout.tsx:22:11)
    at SignedIn (webpack-internal:///./node_modules/.pnpm/@clerk+clerk-react@4.30.4_react@18.2.0/node_modules/@clerk/clerk-react/dist/esm/components/controlComponents.js:32:21)
    at MultisessionAppSupport (webpack-internal:///./node_modules/.pnpm/@clerk+clerk-react@4.30.4_react@18.2.0/node_modules/@clerk/clerk-react/dist/esm/components/controlComponents.js:131:35)
    at MantineThemeProvider (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs:28:3)
    at MantineProvider (webpack-internal:///./node_modules/.pnpm/@mantine+core@7.5.1_@mantine+hooks@7.5.1_@types+react@18.2.54_react-dom@18.2.0_react@18.2.0/node_modules/@mantine/core/esm/core/MantineProvider/MantineProvider.mjs:28:3)
    at SWRConfig (webpack-internal:///./node_modules/.pnpm/swr@2.2.0_react@18.2.0/node_modules/swr/_internal/dist/index.mjs:565:13)
    at OrganizationProvider (webpack-internal:///./node_modules/.pnpm/@clerk+shared@1.3.1_react@18.2.0/node_modules/@clerk/shared/dist/react/index.mjs:74:3)
    at ClerkContextProvider (webpack-internal:///./node_modules/.pnpm/@clerk+clerk-react@4.30.4_react@18.2.0/node_modules/@clerk/clerk-react/dist/esm/contexts/ClerkContextProvider.js:28:11)
    at ClerkProviderBase (webpack-internal:///./node_modules/.pnpm/@clerk+clerk-react@4.30.4_react@18.2.0/node_modules/@clerk/clerk-react/dist/esm/contexts/ClerkProvider.js:24:11)
    at Hoc (webpack-internal:///./node_modules/.pnpm/@clerk+clerk-react@4.30.4_react@18.2.0/node_modules/@clerk/clerk-react/dist/esm/utils/useMaxAllowedInstancesGuard.js:26:5)
    at ClerkNextOptionsProvider (webpack-internal:///./node_modules/.pnpm/@clerk+nextjs@4.29.6_next@14.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@clerk/nextjs/dist/esm/client-boundary/NextOptionsContext.js:16:11)
    at ClerkProvider (webpack-internal:///./node_modules/.pnpm/@clerk+nextjs@4.29.6_next@14.1.0_react-dom@18.2.0_react@18.2.0/node_modules/@clerk/nextjs/dist/esm/pages/ClerkProvider.js:22:26)
    at ClerkProvider
    at MyApp (webpack-internal:///./src/pages/_app.tsx:60:11)
    at Hydrate (webpack-internal:///./node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-query/build/lib/Hydrate.mjs:31:3)
    at QueryClientProvider (webpack-internal:///./node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs:48:3)
    at TRPCProvider (webpack-internal:///./node_modules/.pnpm/@trpc+react-query@10.45.0_@tanstack+react-query@4.36.1_@trpc+client@10.45.0_@trpc+server@10.4_p7sjsu57trs5veykkdlneabbke/node_modules/@trpc/react-query/dist/createHooksInternal-bdff7171.mjs:214:17)
    at WithTRPC (webpack-internal:///./node_modules/.pnpm/@trpc+next@10.45.0_@tanstack+react-query@4.36.1_@trpc+client@10.45.0_@trpc+react-query@10.45._3u2k6qqkjuuy4aaxqgc2zxsp3m/node_modules/@trpc/next/dist/index.mjs:40:83)
    at PathnameContextProviderAdapter (webpack-internal:///./node_modules/.pnpm/next@14.1.0_@babel+core@7.23.7_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/shared/lib/router/adapters.js:80:11)
    at ErrorBoundary (webpack-internal:///./node_modules/.pnpm/next@14.1.0_@babel+core@7.23.7_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js:26:6864)
    at ReactDevOverlay (webpack-internal:///./node_modules/.pnpm/next@14.1.0_@babel+core@7.23.7_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js:26:9247)
    at Container (webpack-internal:///./node_modules/.pnpm/next@14.1.0_@babel+core@7.23.7_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/client/index.js:80:1)
    at AppContainer (webpack-internal:///./node_modules/.pnpm/next@14.1.0_@babel+core@7.23.7_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/client/index.js:213:11)
    at Root (webpack-internal:///./node_modules/.pnpm/next@14.1.0_@babel+core@7.23.7_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/client/index.js:437:11)
svenadlung commented 7 months ago

Upgrade to 2.2.0 should not require installing additional dependencies - OR it should be documented.

@Slapbox I can't reproduce it :/ According to the package.json of StarterKit, all corresponding packages should be installed without you having to do it manually: https://github.com/ueberdosis/tiptap/blob/main/packages/starter-kit/package.json#L31

svenadlung commented 7 months ago

@ideosyncretic your error most likely has to do with the use of different ProseMirror package versions.

Please do the following:

If there are still problems, please check whether different versions of ProseMirror packages are registered somewhere, e.g. with npm ls prosemirror-view.

Nantris commented 7 months ago

We dropped StarterKit so I can no longer help with testing this unfortunately.

ideosyncretic commented 7 months ago

@svenadlung Thanks for the response!

We got the issue when upgrading all our TipTap packages from 2.1.12 to 2.2.1, including @tiptap/pm (no TipTap pro packages used), and we don't have prosemirror-view or any ProseMirror packages installed separately besides @tiptap/pm.

I went back to the old commit and it was indeed the lock file which caused the issue (we use pnpm) due to two versions of prosemirror-view, the older version coming from @tiptap/extension-collaboration-cursor and @tiptap/extension-collaboration.

Here is the lockfile after the upgrade, where there are differences in prosemirror-view versions in TipTap collaboration packages @tiptap/extension-collaboration-cursor@2.2.1 and @tiptap/extension-collaboration@2.2.1 vs @tiptap/pm@2.2.1, which use prosemirror-view@1.31.5 and prosemirror-view@1.32.7 respectively:

dependencies:
  '@tiptap/extension-code-block-lowlight':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.1)
  '@tiptap/extension-collaboration':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)(y-prosemirror@1.2.2)
  '@tiptap/extension-collaboration-cursor':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(y-prosemirror@1.2.2)
  '@tiptap/extension-link':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)
  '@tiptap/extension-list-keymap':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)
  '@tiptap/extension-mention':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)(@tiptap/suggestion@2.2.1)
  '@tiptap/extension-placeholder':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)
  '@tiptap/pm':
    specifier: ^2.2.1
    version: 2.2.1
  '@tiptap/react':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)(react-dom@18.2.0)(react@18.2.0)
  '@tiptap/starter-kit':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/pm@2.2.1)
  '@tiptap/suggestion':
    specifier: ^2.2.1
    version: 2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)
  y-prosemirror:
    specifier: ^1.2.2
    version: 1.2.2(prosemirror-model@1.19.2)(prosemirror-state@1.4.3)(prosemirror-view@1.31.5)(y-protocols@1.0.6)(yjs@13.6.11)

  /@tiptap/extension-collaboration-cursor@2.2.1(@tiptap/core@2.1.12)(y-prosemirror@1.2.2):
    resolution: {integrity: sha512-HAZ+NSshc9FG2ROgpU4E5Gn1N7YM6UtgSej/XGJgd6GmP5ZVZjOFzraBRERXj/OGsk9Mk8StQmoOMHgzNfbwdQ==}
    peerDependencies:
      '@tiptap/core': ^2.0.0
      y-prosemirror: ^1.2.1
    dependencies:
      '@tiptap/core': 2.1.12(@tiptap/pm@2.2.1)
      y-prosemirror: 1.2.2(prosemirror-model@1.19.2)(prosemirror-state@1.4.3)(prosemirror-view@1.31.5)(y-protocols@1.0.6)(yjs@13.6.11)
    dev: false

  /@tiptap/extension-collaboration@2.2.1(@tiptap/core@2.1.12)(@tiptap/pm@2.2.1)(y-prosemirror@1.2.2):
    resolution: {integrity: sha512-ZxEs6qTaKxVclU2wei3avX2YLcEyXWHiuoL9p5Q9fgha8Gx+WWmyhY6C+NDh94AK7EqaviP2SDgC25iX0RJmdw==}
    peerDependencies:
      '@tiptap/core': ^2.0.0
      '@tiptap/pm': ^2.0.0
      y-prosemirror: ^1.2.1
    dependencies:
      '@tiptap/core': 2.1.12(@tiptap/pm@2.2.1)
      '@tiptap/pm': 2.2.1
      y-prosemirror: 1.2.2(prosemirror-model@1.19.2)(prosemirror-state@1.4.3)(prosemirror-view@1.31.5)(y-protocols@1.0.6)(yjs@13.6.11)
    dev: false

  /@tiptap/pm@2.2.1:
    resolution: {integrity: sha512-jfbrvUlDZ5t6zgk7pXT6GtHX7v48PL6K9TfDEzROywJS2iXSt/0iHUi2Ap8u8hvfv4rBDO7m7LVLS0+rRa5Cyg==}
    dependencies:
      prosemirror-changeset: 2.2.1
      prosemirror-collab: 1.3.1
      prosemirror-commands: 1.5.2
      prosemirror-dropcursor: 1.8.1
      prosemirror-gapcursor: 1.3.2
      prosemirror-history: 1.3.2
      prosemirror-inputrules: 1.4.0
      prosemirror-keymap: 1.2.2
      prosemirror-markdown: 1.12.0
      prosemirror-menu: 1.2.4
      prosemirror-model: 1.19.4
      prosemirror-schema-basic: 1.2.2
      prosemirror-schema-list: 1.3.0
      prosemirror-state: 1.4.3
      prosemirror-tables: 1.3.5
      prosemirror-trailing-node: 2.0.7(prosemirror-model@1.19.4)(prosemirror-state@1.4.3)(prosemirror-view@1.32.7)
      prosemirror-transform: 1.8.0
      prosemirror-view: 1.32.7
    dev: false

  /prosemirror-dropcursor@1.8.1:
    resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==}
    dependencies:
      prosemirror-state: 1.4.3
      prosemirror-transform: 1.8.0
      prosemirror-view: 1.32.7
    dev: false

  /prosemirror-gapcursor@1.3.2:
    resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
    dependencies:
      prosemirror-keymap: 1.2.2
      prosemirror-model: 1.19.4
      prosemirror-state: 1.4.3
      prosemirror-view: 1.32.7
    dev: false

  /prosemirror-history@1.3.2:
    resolution: {integrity: sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==}
    dependencies:
      prosemirror-state: 1.4.3
      prosemirror-transform: 1.8.0
      prosemirror-view: 1.32.7
      rope-sequence: 1.3.4
    dev: false

  /prosemirror-state@1.4.3:
    resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
    dependencies:
      prosemirror-model: 1.19.4
      prosemirror-transform: 1.8.0
      prosemirror-view: 1.32.7
    dev: false

  /prosemirror-tables@1.3.5:
    resolution: {integrity: sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ==}
    dependencies:
      prosemirror-keymap: 1.2.2
      prosemirror-model: 1.19.4
      prosemirror-state: 1.4.3
      prosemirror-transform: 1.8.0
      prosemirror-view: 1.32.7
    dev: false

  /prosemirror-trailing-node@2.0.7(prosemirror-model@1.19.4)(prosemirror-state@1.4.3)(prosemirror-view@1.32.7):
    resolution: {integrity: sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==}
    peerDependencies:
      prosemirror-model: ^1.19.0
      prosemirror-state: ^1.4.2
      prosemirror-view: ^1.31.2
    dependencies:
      '@remirror/core-constants': 2.0.2
      '@remirror/core-helpers': 3.0.0
      escape-string-regexp: 4.0.0
      prosemirror-model: 1.19.4
      prosemirror-state: 1.4.3
      prosemirror-view: 1.32.7
    dev: false

  /prosemirror-view@1.31.5:
    resolution: {integrity: sha512-tobRCDeCp61elR1d97XE/JTL9FDIfswZpWeNs7GKJjAJvWyMGHWYFCq29850p6bbG2bckP+i9n1vT56RifosbA==}
    dependencies:
      prosemirror-model: 1.19.2
      prosemirror-state: 1.4.3
      prosemirror-transform: 1.7.3
    dev: false

  /prosemirror-view@1.32.7:
    resolution: {integrity: sha512-pvxiOoD4shW41X5bYDjRQk3DSG4fMqxh36yPMt7VYgU3dWRmqFzWJM/R6zeo1KtC8nyk717ZbQND3CC9VNeptw==}
    dependencies:
      prosemirror-model: 1.19.4
      prosemirror-state: 1.4.3
      prosemirror-transform: 1.8.0
    dev: false

  /y-prosemirror@1.2.2(prosemirror-model@1.19.2)(prosemirror-state@1.4.3)(prosemirror-view@1.31.5)(y-protocols@1.0.6)(yjs@13.6.11):
    resolution: {integrity: sha512-hHdnIAhfa8mIoLWtTkMDb6RBzN3lye1QVkaZwVm58sledAA1zTl+yyEtgkrY/sdH6SaQL0rsLj61zHjgr5D0HQ==}
    engines: {node: '>=16.0.0', npm: '>=8.0.0'}
    peerDependencies:
      prosemirror-model: ^1.7.1
      prosemirror-state: ^1.2.3
      prosemirror-view: ^1.9.10
      y-protocols: ^1.0.1
      yjs: ^13.5.38
    dependencies:
      lib0: 0.2.87
      prosemirror-model: 1.19.2
      prosemirror-state: 1.4.3
      prosemirror-view: 1.31.5
      y-protocols: 1.0.6(yjs@13.6.11)
      yjs: 13.6.11
    dev: false

Deleting and regenerating the lock file resolves the issue by updating TipTap collaboration packages that were using prosemirror-view@1.31.5 to use prosemirror-view@1.32.7.

Currently I've uninstalled StarterKit and installed all its dependencies individually for explicitness, though, even if it was not the cause of the issue.