# tiptap-collab-server

> A socket.io server for tiptap collaboration module. Handles multi-documents, users cursors, and hooks for programmers.

Latest version **1.3.1** (published 2020-11-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install tiptap-collab-server
pnpm add tiptap-collab-server
yarn add tiptap-collab-server
bun add tiptap-collab-server
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.1 |
| Published | 2020-11-06 |
| First published | 2020-09-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 41.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 35 |
| Author | Julien Aupart |
| Maintainers | julien1138 |
| Keywords | npm, node, javascript, tiptap, collaboration, server |

## Links

- npm: https://www.npmjs.com/package/tiptap-collab-server
- Repository: https://github.com/naept/tiptap-collab-server
- Homepage: https://github.com/naept/tiptap-collab-server#readme
- Issues: https://github.com/naept/tiptap-collab-server/issues
- npm.io page: https://npm.io/package/tiptap-collab-server

## Dependencies (5)

- [sinon](https://npm.io/package/sinon.md) ^9.0.3
- [express](https://npm.io/package/express.md) ^4.17.1
- [socket.io](https://npm.io/package/socket.io.md) ^2.3.0
- [prosemirror-model](https://npm.io/package/prosemirror-model.md) ^1.11.0
- [prosemirror-transform](https://npm.io/package/prosemirror-transform.md) ^1.2.8

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 1.3.1 (latest) — 2020-11-06
- 1.3.0 — 2020-10-16
- 1.2.3 — 2020-10-13
- 1.2.2 — 2020-10-06
- 1.2.1 — 2020-10-06
- 1.2.0 — 2020-10-05
- 1.1.1 — 2020-10-03
- 1.1.0 — 2020-10-02
- 1.0.0 — 2020-10-02
- 0.3.1 — 2020-09-25
- 0.3.0 — 2020-09-23
- 0.2.0 — 2020-09-23
- 0.1.3 — 2020-09-21
- 0.1.2 — 2020-09-17
- 0.1.1 — 2020-09-17

## README

# tiptap-collab-server
A socket.io server for [tiptap](https://github.com/ueberdosis/tiptap) collaboration module. Handles multi-documents, users's cursors, and hooks for programmers.

[![NPM Version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Codacy Badge][codacy-image]][codacy-url]
[![Coverage Status][coveralls-image]][coveralls-url]
[![Dev dependencies][david-dm-image]][david-dm-url]

A full tutorial for setting this up is available in [this article on Naept's blog](https://www.naept.com/en/blog/easy-collaborative-editor-with-tiptap-and-prosemirror/) or on [Medium](https://medium.com/@julien.aupart/easy-collaborative-editor-with-tiptap-and-prosemirror-baa3314636c6)

## Installation
```sh
npm install tiptap-collab-server
```

## Basic Setup
```js
import CollabServer from 'tiptap-collab-server'

new CollabServer({
  port: 6002,
  namespaceFilter: /^\/[a-zA-Z0-9_/-]+$/,
  lockDelay: 1000,
  lockRetries: 10,
})
  .connectionGuard(({
    namespaceName,
    roomName,
    clientID,
    requestHeaders,
    options,
  }, resolve) => {
    
    resolve();
  })
  .onClientConnect(({
    namespaceName,
    roomName, 
    clientID,
    requestHeaders,
    clientsCount,
  }, resolve) => {
    
    resolve();
  })
  .initDocument(({
    namespaceName,
    roomName,
    clientID,
    requestHeaders,
    clientsCount,
    version,
    doc,
  }, resolve) => {
    
    resolve({ version, doc });
  })
  .leaveDocument(({
    namespaceName,
    roomName,
    clientID,
    requestHeaders,
    clientsCount,
    version,
    doc,
    deleteDatabase,
  }, resolve) => {
    
    resolve();
  })
  .onClientDisconnect(({
    namespaceName,
    roomName,
    clientID,
    requestHeaders,
    clientsCount,
  }, resolve) => {
    
    resolve();
  })
  .serve();
```

## Tests
```sh
npm run test
```
Tests need node v12.x or higher.

Contributions are welcome.

## Contributing
Builds library for publication
```sh
npm run test
```

Compiles and starts example app for development
```sh
npm run serve-example
```
Issues and pull-requests are welcome and will be considered.

[npm-image]: https://img.shields.io/npm/v/tiptap-collab-server.svg
[npm-url]: https://npmjs.org/package/tiptap-collab-server
[travis-image]: https://travis-ci.org/naept/tiptap-collab-server.svg?branch=master
[travis-url]: https://travis-ci.org/naept/tiptap-collab-server
[codacy-image]:https://app.codacy.com/project/badge/Grade/65af967d2ca740fd98b7a393674f32c4
[codacy-url]:https://www.codacy.com/gh/naept/tiptap-collab-server?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=naept/tiptap-collab-server&amp;utm_campaign=Badge_Grade
[coveralls-image]:https://coveralls.io/repos/github/naept/tiptap-collab-server/badge.svg?branch=master
[coveralls-url]:https://coveralls.io/github/naept/tiptap-collab-server?branch=master
[david-dm-image]:https://david-dm.org/naept/tiptap-collab-server.svg
[david-dm-url]:https://david-dm.org/naept/tiptap-collab-server

---
_Source: https://npm.io/package/tiptap-collab-server · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
