From 9992397f9272fb253b3e64eff582c6884382c837 Mon Sep 17 00:00:00 2001 From: Eric Maciel Date: Thu, 17 Feb 2022 16:11:18 -0500 Subject: [PATCH] chore: restructuring of tests --- packages/bridge/.babelrc => .babelrc | 0 README.md | 2 +- lerna.json | 6 - package.json | 60 ++++-- packages/backend/.babelrc | 9 - packages/backend/License.md | 9 - packages/backend/package.json | 51 ----- packages/backend/tsconfig.json | 16 -- packages/bridge/License.md | 9 - packages/bridge/package.json | 67 ------- packages/bridge/tsconfig.json | 13 -- packages/client/.babelrc | 8 - packages/client/License.md | 9 - packages/client/package.json | 71 ------- packages/client/tsconfig.json | 15 -- packages/example/package.json | 58 ------ packages/example/public/favicon.ico | Bin 16958 -> 0 bytes packages/example/public/index.html | 29 --- packages/example/public/logo192.png | Bin 19315 -> 0 bytes packages/example/public/logo512.png | Bin 26578 -> 0 bytes packages/example/public/manifest.json | 25 --- packages/example/public/robots.txt | 2 - packages/example/server.js | 39 ---- packages/example/src/App.tsx | 56 ------ packages/example/src/Caret.tsx | 57 ------ packages/example/src/Client.tsx | 122 ----------- packages/example/src/Components.tsx | 93 --------- packages/example/src/EditorFrame.tsx | 189 ------------------ packages/example/src/Room.tsx | 73 ------- packages/example/src/index.tsx | 6 - packages/example/src/plugins/block.ts | 30 --- packages/example/src/plugins/link.ts | 73 ------- packages/example/src/plugins/mark.ts | 16 -- packages/example/src/react-app-env.d.ts | 1 - packages/example/tsconfig.extend.json | 11 - packages/example/tsconfig.json | 31 --- packages/example/tsconfig.production.json | 29 --- .../src => src/backend}/AutomergeBackend.ts | 7 +- .../backend}/AutomergeCollaboration.ts | 2 +- .../backend/src => src/backend}/index.ts | 2 +- .../src => src/backend}/utils/debug.ts | 0 .../backend}/utils/getActiveConnections.ts | 0 .../src => src/backend}/utils/index.ts | 0 .../src => src/bridge}/apply/apply.spec.ts | 0 .../bridge/src => src/bridge}/apply/index.ts | 0 .../src => src/bridge}/apply/node/index.ts | 0 .../bridge}/apply/node/insertNode.ts | 0 .../bridge}/apply/node/mergeNode.ts | 0 .../src => src/bridge}/apply/node/moveNode.ts | 0 .../bridge}/apply/node/removeNode.ts | 0 .../src => src/bridge}/apply/node/setNode.ts | 0 .../bridge}/apply/node/splitNode.ts | 0 .../bridge/src => src/bridge}/apply/text.ts | 0 .../bridge}/connection/connection.spec.ts | 0 .../src => src/bridge}/convert/constants.ts | 0 .../bridge}/convert/convert.spec.ts | 0 .../src => src/bridge}/convert/create.ts | 0 .../src => src/bridge}/convert/index.ts | 0 .../src => src/bridge}/convert/insert.ts | 0 .../src => src/bridge}/convert/remove.ts | 0 .../bridge/src => src/bridge}/convert/set.ts | 0 .../bridge/src => src/bridge}/cursor/index.ts | 0 {packages/bridge/src => src/bridge}/index.ts | 0 .../bridge/src => src/bridge}/model/index.ts | 0 .../bridge/src => src/bridge}/model/slate.ts | 0 .../bridge/src => src/bridge}/path/index.ts | 0 .../bridge/src => src/bridge}/utils/hexGen.ts | 0 .../bridge/src => src/bridge}/utils/index.ts | 0 .../src => src/bridge}/utils/testUtils.ts | 0 .../bridge/src => src/bridge}/utils/toSync.ts | 0 .../src => src/client}/automerge-connector.ts | 2 +- .../client/src => src/client}/client.spec.ts | 19 +- src/client/custom-slate-types.ts | 27 +++ {packages/client/src => src/client}/index.ts | 0 .../client/src => src/client}/interfaces.ts | 6 +- .../client}/test-json/deep-tree.json | 0 .../client/src => src/client}/useCursor.ts | 2 +- .../client/src => src/client}/useMounted.ts | 0 .../src => src/client}/withAutomerge.ts | 4 +- .../src => src/client}/withIOCollaboration.ts | 0 .../client/src => src/client}/withSocketIO.ts | 2 +- tsconfig.base.json => tsconfig.json | 4 +- 82 files changed, 91 insertions(+), 1271 deletions(-) rename packages/bridge/.babelrc => .babelrc (100%) delete mode 100644 lerna.json delete mode 100644 packages/backend/.babelrc delete mode 100644 packages/backend/License.md delete mode 100644 packages/backend/package.json delete mode 100644 packages/backend/tsconfig.json delete mode 100644 packages/bridge/License.md delete mode 100644 packages/bridge/package.json delete mode 100644 packages/bridge/tsconfig.json delete mode 100644 packages/client/.babelrc delete mode 100644 packages/client/License.md delete mode 100644 packages/client/package.json delete mode 100644 packages/client/tsconfig.json delete mode 100644 packages/example/package.json delete mode 100644 packages/example/public/favicon.ico delete mode 100644 packages/example/public/index.html delete mode 100644 packages/example/public/logo192.png delete mode 100644 packages/example/public/logo512.png delete mode 100644 packages/example/public/manifest.json delete mode 100644 packages/example/public/robots.txt delete mode 100644 packages/example/server.js delete mode 100644 packages/example/src/App.tsx delete mode 100644 packages/example/src/Caret.tsx delete mode 100644 packages/example/src/Client.tsx delete mode 100644 packages/example/src/Components.tsx delete mode 100644 packages/example/src/EditorFrame.tsx delete mode 100644 packages/example/src/Room.tsx delete mode 100644 packages/example/src/index.tsx delete mode 100644 packages/example/src/plugins/block.ts delete mode 100644 packages/example/src/plugins/link.ts delete mode 100644 packages/example/src/plugins/mark.ts delete mode 100644 packages/example/src/react-app-env.d.ts delete mode 100644 packages/example/tsconfig.extend.json delete mode 100644 packages/example/tsconfig.json delete mode 100644 packages/example/tsconfig.production.json rename {packages/backend/src => src/backend}/AutomergeBackend.ts (96%) rename {packages/backend/src => src/backend}/AutomergeCollaboration.ts (99%) rename {packages/backend/src => src/backend}/index.ts (72%) rename {packages/backend/src => src/backend}/utils/debug.ts (100%) rename {packages/backend/src => src/backend}/utils/getActiveConnections.ts (100%) rename {packages/backend/src => src/backend}/utils/index.ts (100%) rename {packages/bridge/src => src/bridge}/apply/apply.spec.ts (100%) rename {packages/bridge/src => src/bridge}/apply/index.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/index.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/insertNode.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/mergeNode.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/moveNode.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/removeNode.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/setNode.ts (100%) rename {packages/bridge/src => src/bridge}/apply/node/splitNode.ts (100%) rename {packages/bridge/src => src/bridge}/apply/text.ts (100%) rename {packages/bridge/src => src/bridge}/connection/connection.spec.ts (100%) rename {packages/bridge/src => src/bridge}/convert/constants.ts (100%) rename {packages/bridge/src => src/bridge}/convert/convert.spec.ts (100%) rename {packages/bridge/src => src/bridge}/convert/create.ts (100%) rename {packages/bridge/src => src/bridge}/convert/index.ts (100%) rename {packages/bridge/src => src/bridge}/convert/insert.ts (100%) rename {packages/bridge/src => src/bridge}/convert/remove.ts (100%) rename {packages/bridge/src => src/bridge}/convert/set.ts (100%) rename {packages/bridge/src => src/bridge}/cursor/index.ts (100%) rename {packages/bridge/src => src/bridge}/index.ts (100%) rename {packages/bridge/src => src/bridge}/model/index.ts (100%) rename {packages/bridge/src => src/bridge}/model/slate.ts (100%) rename {packages/bridge/src => src/bridge}/path/index.ts (100%) rename {packages/bridge/src => src/bridge}/utils/hexGen.ts (100%) rename {packages/bridge/src => src/bridge}/utils/index.ts (100%) rename {packages/bridge/src => src/bridge}/utils/testUtils.ts (100%) rename {packages/bridge/src => src/bridge}/utils/toSync.ts (100%) rename {packages/client/src => src/client}/automerge-connector.ts (99%) rename {packages/client/src => src/client}/client.spec.ts (95%) create mode 100644 src/client/custom-slate-types.ts rename {packages/client/src => src/client}/index.ts (100%) rename {packages/client/src => src/client}/interfaces.ts (85%) rename {packages/client/src => src/client}/test-json/deep-tree.json (100%) rename {packages/client/src => src/client}/useCursor.ts (97%) rename {packages/client/src => src/client}/useMounted.ts (100%) rename {packages/client/src => src/client}/withAutomerge.ts (94%) rename {packages/client/src => src/client}/withIOCollaboration.ts (100%) rename {packages/client/src => src/client}/withSocketIO.ts (97%) rename tsconfig.base.json => tsconfig.json (90%) diff --git a/packages/bridge/.babelrc b/.babelrc similarity index 100% rename from packages/bridge/.babelrc rename to .babelrc diff --git a/README.md b/README.md index 9aec0b2..94f2846 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ const decorator = useCursor(editor) ## Backend ```ts -const { AutomergeCollaboration } = require('@hiveteams/collab-backend') +const { AutomergeCollaboration } = require('backend/index') const collabBackend = new AutomergeCollaboration(options) ``` diff --git a/lerna.json b/lerna.json deleted file mode 100644 index fabbdd9..0000000 --- a/lerna.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "lerna": "2.7.1", - "version": "0.7.30", - "npmClient": "yarn", - "useWorkspaces": true -} diff --git a/package.json b/package.json index e3ed3f4..04d0ea5 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,11 @@ { + "name": "@hiveteams/collab", "private": true, - "description": "Slate collaborative plugin & microservice", + "description": "Slate collaborative editing", "scripts": { - "bootstrap": "lerna bootstrap", - "version": "auto-changelog -p ./packages/bridge/package.json --template changelog-template.hbs && git add CHANGELOG.md", - "clean": "rimraf ./packages/**/lib/ && rimraf ./packages/**/tsconfig.tsbuildinfo && lerna clean --yes", - "release": "yarn prebuild && yarn build && lerna version && lerna publish from-package", - "deploy:site": "git subtree push --prefix packages/example heroku master", - "dev": "lerna run --stream build:js && concurrently \"yarn watch\" \"lerna run dev --stream\"", - "build": "lerna run build:module --stream", - "watch": "lerna run --parallel watch", - "clean:module": "lerna clean --yes", - "prebuild": "yarn clean", - "test": "lerna run test --stream", - "format": "prettier --write" + "format": "prettier --write", + "test": "jest" }, - "workspaces": [ - "packages/*" - ], "author": "cudr", "license": "MIT", "repository": { @@ -32,19 +20,51 @@ }, "lint-staged": { "*.{js,jsx,ts,tsx,babelrc}": [ - "yarn run format", + "npm run format", "git add" ] }, "devDependencies": { + "@babel/cli": "^7.6.0", + "@babel/core": "^7.6.0", + "@babel/plugin-proposal-class-properties": "^7.5.5", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/preset-env": "^7.6.0", + "@babel/preset-typescript": "^7.6.0", "@commitlint/cli": "^9.0.1", "@commitlint/config-conventional": "^9.0.1", + "@types/jest": "^24.9.0", + "@types/lodash": "^4.14.178", + "@types/socket.io": "^2.1.4", "auto-changelog": "^2.1.0", - "concurrently": "^4.1.2", "husky": "^3.0.5", - "lerna": "^3.20.2", + "jest": "^24.9.0", "lint-staged": "^9.2.5", "prettier": "^1.18.2", - "rimraf": "^3.0.2" + "ts-jest": "^25.4.0", + "typescript": "^4.5.5" + }, + "dependencies": { + "automerge": "0.14.0", + "lodash": "4.17.21", + "slate": "0.72.8", + "slate-history": "0.66.0", + "socket.io": "^2.3.0" + }, + "jest": { + "preset": "ts-jest", + "globals": { + "ts-jest": { + "babelConfig": ".babelrc" + } + }, + "roots": [ + "/src" + ], + "transform": { + "^.+\\.ts?$": "ts-jest" + }, + "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$" } } diff --git a/packages/backend/.babelrc b/packages/backend/.babelrc deleted file mode 100644 index ff47042..0000000 --- a/packages/backend/.babelrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "presets": ["@babel/preset-env", "@babel/typescript"], - "plugins": [ - "@babel/plugin-transform-runtime", - "@babel/proposal-class-properties", - "@babel/proposal-object-rest-spread", - "@babel/plugin-proposal-optional-chaining" - ] -} diff --git a/packages/backend/License.md b/packages/backend/License.md deleted file mode 100644 index 8233070..0000000 --- a/packages/backend/License.md +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License - -Copyright © 2019–2020, [George Kukushin](https://github.com/cudr) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/backend/package.json b/packages/backend/package.json deleted file mode 100644 index 5d7b1b8..0000000 --- a/packages/backend/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "@hiveteams/collab-backend", - "version": "0.7.31", - "files": [ - "lib" - ], - "main": "lib/index.js", - "types": "lib/index.d.ts", - "description": "slate-collaborative backend", - "repository": { - "type": "git", - "url": "git+https://github.com/cudr/slate-collaborative.git" - }, - "publishConfig": { - "access": "public" - }, - "author": "cudr", - "license": "MIT", - "scripts": { - "prepublishOnly": "yarn run build:js", - "build:js": "./node_modules/typescript/bin/tsc -p ./tsconfig.json", - "watch": "yarn build:js -w" - }, - "dependencies": { - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/runtime": "^7.6.3", - "@hiveteams/collab-bridge": "^0.7.27", - "@types/debug": "^4.1.5", - "@types/lodash": "^4.14.150", - "@types/socket.io": "^2.1.4", - "automerge": "0.14.0", - "debug": "^4.2.0", - "lodash": "^4.17.15", - "slate": "0.72.8", - "socket.io": "^2.3.0", - "typescript": "4.5.5" - }, - "devDependencies": { - "@babel/cli": "^7.6.0", - "@babel/core": "^7.6.0", - "@babel/plugin-proposal-class-properties": "^7.5.5", - "@babel/plugin-proposal-object-rest-spread": "^7.5.5", - "@babel/plugin-transform-runtime": "^7.6.0", - "@babel/preset-env": "^7.6.0", - "@babel/preset-typescript": "^7.6.0" - }, - "directories": { - "lib": "lib" - }, - "gitHead": "89dd1657ba1b39db298e00a380f45089b8b52a91" -} diff --git a/packages/backend/tsconfig.json b/packages/backend/tsconfig.json deleted file mode 100644 index 504b502..0000000 --- a/packages/backend/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "include": ["./src/**/*"], - "compilerOptions": { - "rootDir": "./src", - "baseUrl": "./src", - "outDir": "./lib", - "composite": true, - "declaration": true, - "declarationMap": true, - "paths": { - "@hiveteams/collab-bridge": ["../../collab-bridge"] - } - }, - "references": [{ "path": "../bridge" }] -} diff --git a/packages/bridge/License.md b/packages/bridge/License.md deleted file mode 100644 index 8233070..0000000 --- a/packages/bridge/License.md +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License - -Copyright © 2019–2020, [George Kukushin](https://github.com/cudr) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/bridge/package.json b/packages/bridge/package.json deleted file mode 100644 index c2d685e..0000000 --- a/packages/bridge/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "@hiveteams/collab-bridge", - "version": "0.7.31", - "files": [ - "lib" - ], - "main": "lib/index.js", - "types": "lib/index.d.ts", - "description": "slate-collaborative bridge", - "repository": { - "type": "git", - "url": "git+https://github.com/cudr/slate-collaborative.git" - }, - "publishConfig": { - "access": "public" - }, - "author": "cudr", - "license": "MIT", - "scripts": { - "prepublishOnly": "yarn run build:module", - "build:module": "yarn run build:js", - "build:js": "./node_modules/typescript/bin/tsc -p ./tsconfig.json", - "watch": "yarn build:js -w", - "test": "jest" - }, - "dependencies": { - "automerge": "0.14.0", - "slate": "0.72.8", - "typescript": "4.5.5" - }, - "devDependencies": { - "@babel/cli": "^7.6.0", - "@babel/core": "^7.6.0", - "@babel/plugin-proposal-class-properties": "^7.5.5", - "@babel/plugin-proposal-object-rest-spread": "^7.5.5", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/preset-env": "^7.6.0", - "@babel/preset-typescript": "^7.6.0", - "@types/jest": "^24.9.0", - "jest": "^24.9.0", - "ts-jest": "^25.4.0" - }, - "directories": { - "lib": "lib" - }, - "keywords": [ - "slate", - "automerge", - "bridge" - ], - "jest": { - "preset": "ts-jest", - "globals": { - "ts-jest": { - "babelConfig": ".babelrc" - } - }, - "roots": [ - "/src" - ], - "transform": { - "^.+\\.ts?$": "ts-jest" - }, - "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$" - }, - "gitHead": "89dd1657ba1b39db298e00a380f45089b8b52a91" -} diff --git a/packages/bridge/tsconfig.json b/packages/bridge/tsconfig.json deleted file mode 100644 index c8f023c..0000000 --- a/packages/bridge/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "include": ["./src/**/*"], - "compilerOptions": { - "target": "es2019", - "module": "commonjs", - "rootDir": "./src", - "outDir": "./lib", - "composite": true, - "declaration": true, - "declarationMap": true - } -} diff --git a/packages/client/.babelrc b/packages/client/.babelrc deleted file mode 100644 index cc4cab9..0000000 --- a/packages/client/.babelrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "presets": ["@babel/env", "@babel/react", "@babel/typescript"], - "plugins": [ - "@babel/proposal-class-properties", - "@babel/proposal-object-rest-spread", - "@babel/plugin-proposal-optional-chaining" - ] -} diff --git a/packages/client/License.md b/packages/client/License.md deleted file mode 100644 index 8233070..0000000 --- a/packages/client/License.md +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License - -Copyright © 2019–2020, [George Kukushin](https://github.com/cudr) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/client/package.json b/packages/client/package.json deleted file mode 100644 index faa452a..0000000 --- a/packages/client/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "@hiveteams/collab-client", - "version": "0.7.30", - "files": [ - "lib" - ], - "main": "lib/index.js", - "types": "lib/index.d.ts", - "description": "slate-collaborative client", - "repository": { - "type": "git", - "url": "git+https://github.com/cudr/slate-collaborative.git" - }, - "publishConfig": { - "access": "public" - }, - "author": "cudr", - "license": "MIT", - "scripts": { - "prepublishOnly": "npm run build:module", - "build:module": "npm run build:types && npm run build:js", - "build:types": "tsc --emitDeclarationOnly", - "build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline", - "watch": "yarn build:js -w", - "test": "DEBUG=app* jest" - }, - "dependencies": { - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/preset-react": "^7.0.0", - "@hiveteams/collab-bridge": "^0.7.27", - "automerge": "0.14.0", - "lodash": "^4.17.20", - "slate": "0.72.8", - "slate-history": "0.66.0", - "socket.io-client": "^2.3.0", - "typescript": "4.5.5" - }, - "devDependencies": { - "@babel/cli": "^7.6.0", - "@babel/core": "^7.6.0", - "@babel/plugin-proposal-class-properties": "^7.5.5", - "@babel/plugin-proposal-object-rest-spread": "^7.5.5", - "@babel/preset-env": "^7.6.0", - "@babel/preset-typescript": "^7.6.0", - "@hiveteams/collab-backend": "^0.7.30", - "@types/jest": "^24.9.0", - "@types/react": "^16.9.34", - "@types/socket.io-client": "^1.4.32", - "jest": "^26.6.3", - "ts-jest": "^26.4.4" - }, - "directories": { - "lib": "lib" - }, - "gitHead": "89dd1657ba1b39db298e00a380f45089b8b52a91", - "jest": { - "preset": "ts-jest", - "globals": { - "ts-jest": { - "babelConfig": ".babelrc" - } - }, - "roots": [ - "/src" - ], - "transform": { - "^.+\\.ts?$": "ts-jest" - }, - "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$" - } -} diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json deleted file mode 100644 index 11681f8..0000000 --- a/packages/client/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "include": ["./src/**/*"], - "compilerOptions": { - "rootDir": "./src", - "baseUrl": "./src", - "outDir": "./lib", - "composite": true, - "paths": { - "@hiveteams/collab-bridge": ["../../collab-bridge"], - "@hiveteams/collab-backend": ["../../collab-backend"] - } - }, - "references": [{ "path": "../bridge" }, { "path": "../backend" }] -} diff --git a/packages/example/package.json b/packages/example/package.json deleted file mode 100644 index 95d8d1c..0000000 --- a/packages/example/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "@hiveteams/collab-example", - "version": "0.7.30", - "private": true, - "dependencies": { - "@emotion/core": "^10.0.17", - "@emotion/styled": "^10.0.17", - "@hiveteams/collab-backend": "^0.7.30", - "@hiveteams/collab-client": "^0.7.30", - "@types/faker": "^4.1.5", - "@types/is-url": "^1.2.28", - "@types/jest": "24.0.18", - "@types/node": "12.7.5", - "@types/randomcolor": "^0.5.4", - "@types/react-dom": "^16.9.6", - "concurrently": "^4.1.2", - "cross-env": "^6.0.3", - "express": "^4.17.1", - "faker": "^4.1.0", - "is-url": "^1.2.4", - "lodash": "^4.17.15", - "nodemon": "^1.19.2", - "randomcolor": "^0.5.4", - "react": "^16.9.0", - "react-dom": "^16.9.0", - "react-scripts": "3.1.2", - "slate": "0.58.3", - "slate-history": "0.58.3", - "slate-react": "0.58.3", - "typescript": "^3.8.3" - }, - "scripts": { - "start": "node server.js", - "start:cra": "react-scripts start", - "prebuild": "cp -f ./tsconfig.production.json ./tsconfig.json", - "build": "cross-env NODE_ENV=production && react-scripts build", - "dev": "concurrently \"yarn start:cra\" \"yarn serve\"", - "serve": "nodemon --watch ../backend/lib --inspect server.js" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "engines": { - "node": "12.x" - } -} diff --git a/packages/example/public/favicon.ico b/packages/example/public/favicon.ico deleted file mode 100644 index e39507c9b7601137a1c1b825596d3fa32fe9950d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 zcmeI4YlszP7{_Pb%FNOVGp*zp;-#ppq@pr*(XgT-DkTbwu&gjDyGW!~n+4JBgIE-j z9~2@Y2rDS)x{BRCq+P7gvNpSzc5zM1OY5F~|JixA*_WBKGiT-;cBB(OpP6^w=kkB& z^3FR8d0qqmH8*?wJJK6B$@7MKo;MC?@>)Rc{;%2dMxE3}SHu7R#*M(D*-Y>~e=015H{pF)3Cmy>91s1V`x=RhTg&!v{$N{m zPllUe9^3`eF&6fR$a+KV2eCa9R>N*6N6<;zMtB@b5E-+Ux)nQ|m+hlrE_?zzAYAtz z_EqmvI13uU_jlqPN&B-9r#l?ewm+o*nc;Y~*6q|R9ZjI?(`u?@f1#hQi31@#hKI1P zYrB$f+_AOzjkkDp)<227-=?fv=eGsI_rvY%cchFH9*9Sq&qRjtOsa$t`I-KXI? zl5YQn-*iyDdX}w+q`p!8bdOoQT1ofgl1DY`9)1j>YDwC*27is=eAt^YmU6xd1E3!I zN0a9}NUAlepRV^g@Lt9^7W)U{jDdRS*R`hlEqAqc6)}FxA&&Cvo|*zR)34Y8k6^3S z9QNBv9NoL&wraO^KBhrE^e@S&W@+D=f8a~ae_|Kgl#)?BFjw%T(Z_S;6BiBJ#y zEjiWvGjTL`hjmoD{RMH3f|}`9V8w?^U>8(dtNAS_#*Ca|JxQE?P!IhY=TE_ORAcqL zz6$i-zcOR2pYWdm{`slp09X#}Y{>H75`JgBh*+8nsu{<>gIa2?J#_sm*J1Etl{L5F z*S&6ITi5L!plc%S7<`3K3F@NX8G|dxoAx=d5g$E2{CY!H>!F#Tu}L!qn)kJ)tc!lj zgVi^w*CA=Gs`FiFf^O~3c&hzmcnZD&cWmSCw+-|?4r)FImIHee=$*sWulam4Xg>Y} zRGaSg888HTXt!roxSeg?4_X`PI=K@Tz~#9L*M;i%9VVH7Y=R62g4jAYPk^gk-{s~8ed21bI(sPY z!EC<_Zhq}+4XkfTe*UVHML1eaY!mznZvGEw8wR=OwsI^swi%+9GR%`LF zabvG}Ynt`Tny-?7kVE(RB5==v_CE%FkIn5oSS;+dpfPsyK2KZsJzlB)tjEaX>%xu$ z%@J-b+P@ES(Qk3EBOvP8t2NAN)-S8RB>t8QtGQt>xMQ%9HqE1%#~_HI?|lz}n@9Va zn=9Y#me8(uDsxM1V&m#ly>EctQ&ZPyK3KiuYmMdVe~Gq%kUDl& z?dET}v06)Q2De7NpWX_qV?X~qs# z3w9QCfLpWXXstym)@;YI{b4D%arV%515}KYQBG=is|R~HyaR6C+J6ozzN2y6*M-%( zb33?kUZZUg^eO!sFsliBG5iT`?K^0@6e4T4cI*+b5?p_+ zR=|)b4c3N@d#7B)F|9jlP}Fw zK72-;;RV#M^=#BPJkyobJ|OJ{)UTQ+Le$>{l4@U#e@WU!k$yqV4cIxb8XJA?ll`X?5*7`s+Jtcbp=fd#g26zn%s9ru{ZlS_^LCxYi6OK%uoq zjDhqFhAHqMEQeLF0+zvTFdj5k`-JwGF)(chpi|?awVl?A*6v&L-Pf$EGrYgAX)S`D za`0_-^>6W-%H>Y}*8yIsT<(yP!R7KU+5Z38_F%tjXY?jNd6xAy0=PH+5=+owP*>;4eW^89y?MZ5>{h<=`%9 z#>z$7+X*47Py}mi^T(#OL1{=9*fvk;e6hZzNYeSDO0o==ZyCHE*4jh;%`dI><61nk Z-2m%2=Qeg#Fs(Ae!1$x?_c5$X diff --git a/packages/example/public/index.html b/packages/example/public/index.html deleted file mode 100644 index ae8656d..0000000 --- a/packages/example/public/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - Slate-collaborative. Collaboration plugin and microservice - - - -
- - diff --git a/packages/example/public/logo192.png b/packages/example/public/logo192.png deleted file mode 100644 index b49f785f60a5e517e477780ae6ade8ae4f65da26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19315 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 diff --git a/packages/example/public/logo512.png b/packages/example/public/logo512.png deleted file mode 100644 index 5063bc70e03b537f6962eb24a7295cfb1813d551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26578 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 z 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 diff --git a/packages/example/public/manifest.json b/packages/example/public/manifest.json deleted file mode 100644 index 8be1445..0000000 --- a/packages/example/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "Slate collaborative", - "name": "collaborative plugin & microservice", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#db7093", - "background_color": "#ffffff" -} diff --git a/packages/example/public/robots.txt b/packages/example/public/robots.txt deleted file mode 100644 index 01b0f9a..0000000 --- a/packages/example/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * diff --git a/packages/example/server.js b/packages/example/server.js deleted file mode 100644 index a6606b7..0000000 --- a/packages/example/server.js +++ /dev/null @@ -1,39 +0,0 @@ -const { AutomergeCollaboration } = require('@hiveteams/collab-backend') -const express = require('express') - -const defaultValue = [ - { - type: 'paragraph', - children: [ - { - text: 'Hello collaborator!' - } - ] - } -] - -const PORT = process.env.PORT || 9000 - -const server = express() - .use(express.static('build')) - .listen(PORT, () => console.log(`Listening on ${PORT}`)) - -const config = { - entry: server, // or specify port to start io server - defaultValue, - saveFrequency: 2000, - onAuthRequest: async (query, socket) => { - // some query validation - return true - }, - onDocumentLoad: async pathname => { - // request initial document ValueJSON by pathnme - return defaultValue - }, - onDocumentSave: async (pathname, doc) => { - // save document - // console.log('onDocumentSave', pathname, doc) - } -} - -const connection = new AutomergeCollaboration(config) diff --git a/packages/example/src/App.tsx b/packages/example/src/App.tsx deleted file mode 100644 index 4f1400c..0000000 --- a/packages/example/src/App.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React, { useState, useEffect } from 'react' -import faker from 'faker' - -import styled from '@emotion/styled' - -import Room from './Room' - -const App = () => { - const [rooms, setRooms] = useState([]) - - const addRoom = () => setRooms(rooms.concat(faker.lorem.slug(4))) - - const removeRoom = (room: string) => () => - setRooms(rooms.filter(r => r !== room)) - - useEffect(() => { - addRoom() - }, []) - - return ( -
- - - Add Room - - - {rooms.map(room => ( - - ))} -
- ) -} - -export default App - -const Panel = styled.div` - display: flex; -` - -const Button = styled.button` - padding: 6px 14px; - display: block; - outline: none; - font-size: 14px; - max-width: 200px; - text-align: center; - color: palevioletred; - border: 2px solid palevioletred; -` - -const AddButton = styled(Button)` - margin-left: 0px; - color: violet; - margin-bottom: 10px; - border: 2px solid violet; -` diff --git a/packages/example/src/Caret.tsx b/packages/example/src/Caret.tsx deleted file mode 100644 index 8e0e59c..0000000 --- a/packages/example/src/Caret.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import React from 'react' - -interface Caret { - color: string - isForward: boolean - name: string -} - -const Caret: React.FC = ({ color, isForward, name }) => { - const cursorStyles = { - ...cursorStyleBase, - background: color, - left: isForward ? '100%' : '0%' - } - const caretStyles = { - ...caretStyleBase, - background: color, - left: isForward ? '100%' : '0%' - } - - caretStyles[isForward ? 'bottom' : 'top'] = 0 - - return ( - <> - - - - {name} - - - - - ) -} - -export default Caret - -const cursorStyleBase = { - position: 'absolute', - top: -2, - pointerEvents: 'none', - userSelect: 'none', - transform: 'translateY(-100%)', - fontSize: 10, - color: 'white', - background: 'palevioletred', - whiteSpace: 'nowrap' -} as any - -const caretStyleBase = { - position: 'absolute', - pointerEvents: 'none', - userSelect: 'none', - height: '1.2em', - width: 2, - background: 'palevioletred' -} as any diff --git a/packages/example/src/Client.tsx b/packages/example/src/Client.tsx deleted file mode 100644 index 92434ca..0000000 --- a/packages/example/src/Client.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react' - -import { createEditor, Node } from 'slate' -import { withHistory } from 'slate-history' -import { withReact } from 'slate-react' - -import randomColor from 'randomcolor' - -import styled from '@emotion/styled' - -import { withIOCollaboration, useCursor } from '@hiveteams/collab-client' - -import { Instance, Title, H4, Button } from './Components' - -import EditorFrame from './EditorFrame' - -import { withLinks } from './plugins/link' - -const defaultValue: Node[] = [ - { - type: 'paragraph', - children: [ - { - text: '' - } - ] - } -] - -interface ClientProps { - name: string - id: string - slug: string - removeUser: (id: any) => void -} - -const Client: React.FC = ({ id, name, slug, removeUser }) => { - const [value, setValue] = useState(defaultValue) - const [isOnline, setOnlineState] = useState(false) - - const color = useMemo( - () => - randomColor({ - luminosity: 'dark', - format: 'rgba', - alpha: 1 - }), - [] - ) - - const editor = useMemo(() => { - const slateEditor = withLinks(withReact(withHistory(createEditor()))) - - const origin = - process.env.NODE_ENV === 'production' - ? window.location.origin - : 'http://localhost:9000' - - const options = { - docId: '/' + slug, - cursorData: { - name, - color, - alphaColor: color.slice(0, -2) + '0.2)' - }, - url: `${origin}/${slug}`, - connectOpts: { - query: { - name, - token: id, - slug - } - }, - onConnect: () => setOnlineState(true), - onDisconnect: () => setOnlineState(false) - } - - return withIOCollaboration(slateEditor, options) - }, []) - - useEffect(() => { - editor.connect() - - return editor.destroy - }, []) - - const { decorate } = useCursor(editor) - - const toggleOnline = () => { - const { connect, disconnect } = editor - isOnline ? disconnect() : connect() - } - - return ( - - - <Head>Editor: {name}</Head> - <div style={{ display: 'flex', marginTop: 10, marginBottom: 10 }}> - <Button type="button" onClick={toggleOnline}> - Go {isOnline ? 'offline' : 'online'} - </Button> - <Button type="button" onClick={() => removeUser(id)}> - Remove - </Button> - </div> - - - setValue(value)} - /> - - ) -} - -export default Client - -const Head = styled(H4)` - margin-right: auto; -` diff --git a/packages/example/src/Components.tsx b/packages/example/src/Components.tsx deleted file mode 100644 index 38be5b7..0000000 --- a/packages/example/src/Components.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import styled from '@emotion/styled' - -export const RoomWrapper = styled.div` - padding-bottom: 10px; - border-bottom: 2px solid #e8e8e8; -` - -export const H4 = styled.h4` - margin: 0; - padding-right: 10px; -` - -export const Input = styled.input` - padding: 6px 14px; - font-size: 14px; - margin-top: 10px; - margin-bottom: 10px; - min-width: 240px; - outline: none; - border: 2px solid palevioletred; - margin-right: auto; -` - -export const Button = styled.button` - padding: 6px 14px; - display: block; - outline: none; - background-color: transparent; - font-size: 14px; - text-align: center; - color: palevioletred; - white-space: nowrap; - border: 2px solid palevioletred; - & + button { - margin-left: 10px; - } -` - -export const IconButton = styled(Button)((props: any) => ({ - color: props.active ? 'mediumvioletred' : 'lightpink', - border: 'none', - padding: 0 -})) - -export const Icon = styled.div`` - -export const Grid = styled.div` - display: grid; - grid-gap: 1vw; - grid-template-columns: 1fr 1fr; - @media (max-width: 767px) { - grid-template-columns: 1fr; - } -` - -export const Title = styled.div` - display: flex; - align-items: center; - margin-bottom: 10px; - @media (max-width: 767px) { - flex-wrap: wrap; - } -` - -export const Instance = styled.div<{ online: boolean }>` - background: ${props => - props.online ? 'rgba(128, 128, 128, 0.1)' : 'rgba(247, 0, 0, 0.2)'}; - padding: 20px 20px 30px; -` - -export const ClientFrame = styled.div` - box-shadow: 2px 2px 4px rgba(128, 128, 128, 0.2); - padding: 10px; - min-height: 70px; - margin-left: -10px; - margin-right: -10px; - background: white; - blockquote { - border-left: 2px solid #ddd; - margin-left: 0; - margin-right: 0; - padding-left: 10px; - color: #aaa; - font-style: italic; - } - a { - color: purple; - text-decoration: none; - } - a:visited { - color: darkmagenta; - } -` diff --git a/packages/example/src/EditorFrame.tsx b/packages/example/src/EditorFrame.tsx deleted file mode 100644 index 2db5d67..0000000 --- a/packages/example/src/EditorFrame.tsx +++ /dev/null @@ -1,189 +0,0 @@ -import React, { useCallback } from 'react' - -import { Node } from 'slate' - -import { - Slate, - ReactEditor, - Editable, - RenderLeafProps, - useSlate -} from 'slate-react' - -import { ClientFrame, IconButton, Icon } from './Components' - -import Caret from './Caret' - -import { isBlockActive, toggleBlock } from './plugins/block' -import { isMarkActive, toggleMark } from './plugins/mark' -import { isLinkActive, insertLink, unwrapLink } from './plugins/link' - -export interface EditorFrame { - editor: ReactEditor - value: Node[] - decorate: any - onChange: (value: Node[]) => void -} - -const renderElement = (props: any) => - -const EditorFrame: React.FC = ({ - editor, - value, - decorate, - onChange -}) => { - const renderLeaf = useCallback((props: any) => , [ - decorate - ]) - - return ( - - -
- - - - - - - - - - - - - -
- - -
-
- ) -} - -export default EditorFrame - -const Element: React.FC = ({ attributes, children, element }) => { - switch (element.type) { - case 'link': - return ( - - {children} - - ) - case 'block-quote': - return
{children}
- case 'bulleted-list': - return
    {children}
- case 'heading-one': - return

{children}

- case 'heading-two': - return

{children}

- case 'list-item': - return
  • {children}
  • - case 'numbered-list': - return
      {children}
    - default: - return

    {children}

    - } -} - -const Leaf: React.FC = ({ attributes, children, leaf }) => { - if (leaf.bold) { - children = {children} - } - - if (leaf.code) { - children = {children} - } - - if (leaf.italic) { - children = {children} - } - - if (leaf.underline) { - children = {children} - } - - return ( - - {leaf.isCaret ? : null} - {children} - - ) -} - -const BlockButton: React.FC = ({ format, icon }) => { - const editor = useSlate() - return ( - { - event.preventDefault() - toggleBlock(editor, format) - }} - > - {icon} - - ) -} - -const MarkButton: React.FC = ({ format, icon }) => { - const editor = useSlate() - return ( - { - event.preventDefault() - toggleMark(editor, format) - }} - > - {icon} - - ) -} - -const LinkButton = () => { - const editor = useSlate() - - const isActive = isLinkActive(editor) - - return ( - { - event.preventDefault() - - if (isActive) return unwrapLink(editor) - - const url = window.prompt('Enter the URL of the link:') - - url && insertLink(editor, url) - }} - > - link - - ) -} diff --git a/packages/example/src/Room.tsx b/packages/example/src/Room.tsx deleted file mode 100644 index b082543..0000000 --- a/packages/example/src/Room.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import React, { useState, ChangeEvent } from 'react' - -import faker from 'faker' -import debounce from 'lodash/debounce' - -import { RoomWrapper, H4, Title, Button, Grid, Input } from './Components' - -import Client from './Client' - -interface User { - id: string - name: string -} - -interface RoomProps { - slug: string - removeRoom: () => void -} - -const createUser = (): User => ({ - id: faker.random.uuid(), - name: `${faker.name.firstName()} ${faker.name.lastName()}` -}) - -const Room: React.FC = ({ slug, removeRoom }) => { - const [users, setUsers] = useState([createUser(), createUser()]) - const [roomSlug, setRoomSlug] = useState(slug) - const [isRemounted, setRemountState] = useState(false) - - const remount = debounce(() => { - setRemountState(true) - setTimeout(setRemountState, 50, false) - }, 300) - - const changeSlug = (e: ChangeEvent) => { - setRoomSlug(e.target.value) - remount() - } - - const addUser = () => setUsers(users => users.concat(createUser())) - - const removeUser = (userId: string) => - setUsers(users => users.filter((u: User) => u.id !== userId)) - - return ( - - - <H4>Document slug:</H4> - <Input type="text" value={roomSlug} onChange={changeSlug} /> - <Button type="button" onClick={addUser}> - Add random user - </Button> - <Button type="button" onClick={removeRoom}> - Remove Room - </Button> - - - {users.map((user: User) => - isRemounted ? null : ( - - ) - )} - - - ) -} - -export default Room diff --git a/packages/example/src/index.tsx b/packages/example/src/index.tsx deleted file mode 100644 index 69f4ddf..0000000 --- a/packages/example/src/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom' - -import App from './App' - -ReactDOM.render(, document.getElementById('root')) diff --git a/packages/example/src/plugins/block.ts b/packages/example/src/plugins/block.ts deleted file mode 100644 index 5edeea3..0000000 --- a/packages/example/src/plugins/block.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Transforms, Editor } from 'slate' - -const LIST_TYPES: string[] = ['numbered-list', 'bulleted-list'] - -export const toggleBlock = (editor: any, format: any) => { - const isActive = isBlockActive(editor, format) - const isList = LIST_TYPES.includes(format) - - Transforms.unwrapNodes(editor, { - match: n => LIST_TYPES.includes(n.type as any), - split: true - }) - - Transforms.setNodes(editor, { - type: isActive ? 'paragraph' : isList ? 'list-item' : format - }) - - if (!isActive && isList) { - const block = { type: format, children: [] } - Transforms.wrapNodes(editor, block) - } -} - -export const isBlockActive = (editor: any, format: any) => { - const [match] = Editor.nodes(editor, { - match: n => n.type === format - }) - - return !!match -} diff --git a/packages/example/src/plugins/link.ts b/packages/example/src/plugins/link.ts deleted file mode 100644 index eef086f..0000000 --- a/packages/example/src/plugins/link.ts +++ /dev/null @@ -1,73 +0,0 @@ -import isUrl from 'is-url' - -import { Transforms, Editor, Range } from 'slate' - -export interface LinkEditor extends Editor { - insertData: (data: any) => void -} - -export const withLinks = (editor: T) => { - const e = editor as T & LinkEditor - - const { insertData, insertText, isInline } = e - - e.isInline = (element: any) => { - return element.type === 'link' ? true : isInline(element) - } - - e.insertText = (text: string) => { - if (text && isUrl(text)) { - wrapLink(editor, text) - } else { - insertText(text) - } - } - - e.insertData = (data: any) => { - const text = data.getData('text/plain') - - if (text && isUrl(text)) { - wrapLink(editor, text) - } else { - insertData(data) - } - } - - return editor -} - -export const insertLink = (editor: Editor, href: string) => { - if (editor.selection) { - wrapLink(editor, href) - } -} - -export const isLinkActive = (editor: Editor) => { - const [link] = Editor.nodes(editor, { match: n => n.type === 'link' }) - return !!link -} - -export const unwrapLink = (editor: Editor) => { - Transforms.unwrapNodes(editor, { match: n => n.type === 'link' }) -} - -export const wrapLink = (editor: Editor, href: string) => { - if (isLinkActive(editor)) { - unwrapLink(editor) - } - - const { selection } = editor - const isCollapsed = selection && Range.isCollapsed(selection) - const link = { - type: 'link', - href, - children: isCollapsed ? [{ text: href }] : [] - } - - if (isCollapsed) { - Transforms.insertNodes(editor, link) - } else { - Transforms.wrapNodes(editor, link, { split: true }) - Transforms.collapse(editor, { edge: 'end' }) - } -} diff --git a/packages/example/src/plugins/mark.ts b/packages/example/src/plugins/mark.ts deleted file mode 100644 index 453b25f..0000000 --- a/packages/example/src/plugins/mark.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Editor } from 'slate' - -export const toggleMark = (editor: Editor, format: any) => { - const isActive = isMarkActive(editor, format) - - if (isActive) { - Editor.removeMark(editor, format) - } else { - Editor.addMark(editor, format, true) - } -} - -export const isMarkActive = (editor: Editor, format: any) => { - const marks = Editor.marks(editor) - return marks ? marks[format] === true : false -} diff --git a/packages/example/src/react-app-env.d.ts b/packages/example/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5..0000000 --- a/packages/example/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/example/tsconfig.extend.json b/packages/example/tsconfig.extend.json deleted file mode 100644 index e173fa3..0000000 --- a/packages/example/tsconfig.extend.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@hiveteams/collab-bridge": ["../../bridge"], - "@hiveteams/collab-client": ["../../client"] - } - }, - "references": [{ "path": "../client" }, { "path": "../backend" }] -} diff --git a/packages/example/tsconfig.json b/packages/example/tsconfig.json deleted file mode 100644 index f669705..0000000 --- a/packages/example/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "include": [ - "src/**/*" - ], - "extends": "./tsconfig.extend.json", - "compilerOptions": { - "rootDir": "../", - "baseUrl": "./src", - "allowJs": true, - "skipLibCheck": true, - "downlevelIteration": true, - "forceConsistentCasingInFileNames": true, - "isolatedModules": true, - "resolveJsonModule": true, - "declaration": false, - "declarationMap": false, - "noEmit": true, - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "module": "esnext", - "moduleResolution": "node", - "jsx": "react" - } -} diff --git a/packages/example/tsconfig.production.json b/packages/example/tsconfig.production.json deleted file mode 100644 index b72500e..0000000 --- a/packages/example/tsconfig.production.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./src", - "allowJs": true, - "skipLibCheck": true, - "downlevelIteration": true, - "forceConsistentCasingInFileNames": true, - "isolatedModules": true, - "resolveJsonModule": true, - "declaration": false, - "declarationMap": false, - "noEmit": true, - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "module": "esnext", - "moduleResolution": "node", - "jsx": "react" - }, - "exclude": ["node_modules"], - "include": ["**/*.ts", "**/*.tsx"] - } - \ No newline at end of file diff --git a/packages/backend/src/AutomergeBackend.ts b/src/backend/AutomergeBackend.ts similarity index 96% rename from packages/backend/src/AutomergeBackend.ts rename to src/backend/AutomergeBackend.ts index 5caa586..a1cf467 100644 --- a/packages/backend/src/AutomergeBackend.ts +++ b/src/backend/AutomergeBackend.ts @@ -2,12 +2,7 @@ import * as Automerge from 'automerge' import { Node } from 'slate' -import { - toCollabAction, - toSync, - SyncDoc, - CollabAction -} from '@hiveteams/collab-bridge' +import { toCollabAction, toSync, SyncDoc, CollabAction } from 'bridge/index' import { debugCollabBackend } from './utils/debug' /** diff --git a/packages/backend/src/AutomergeCollaboration.ts b/src/backend/AutomergeCollaboration.ts similarity index 99% rename from packages/backend/src/AutomergeCollaboration.ts rename to src/backend/AutomergeCollaboration.ts index 153aeaa..7a66ae3 100644 --- a/packages/backend/src/AutomergeCollaboration.ts +++ b/src/backend/AutomergeCollaboration.ts @@ -4,7 +4,7 @@ import { Node } from 'slate' import { Server } from 'http' import throttle from 'lodash/throttle' import flatten from 'lodash/flatten' -import { SyncDoc, CollabAction, toJS } from '@hiveteams/collab-bridge' +import { SyncDoc, CollabAction, toJS } from 'bridge/index' import { debugCollabBackend } from './utils/debug' import AutomergeBackend from './AutomergeBackend' import getActiveConnections from './utils/getActiveConnections' diff --git a/packages/backend/src/index.ts b/src/backend/index.ts similarity index 72% rename from packages/backend/src/index.ts rename to src/backend/index.ts index ce86a92..e6c2a40 100644 --- a/packages/backend/src/index.ts +++ b/src/backend/index.ts @@ -1,6 +1,6 @@ import AutomergeCollaboration, { IAutomergeMetaData } from './AutomergeCollaboration' -import getActiveConnections from 'utils/getActiveConnections' +import getActiveConnections from './utils/getActiveConnections' export { AutomergeCollaboration, IAutomergeMetaData, getActiveConnections } diff --git a/packages/backend/src/utils/debug.ts b/src/backend/utils/debug.ts similarity index 100% rename from packages/backend/src/utils/debug.ts rename to src/backend/utils/debug.ts diff --git a/packages/backend/src/utils/getActiveConnections.ts b/src/backend/utils/getActiveConnections.ts similarity index 100% rename from packages/backend/src/utils/getActiveConnections.ts rename to src/backend/utils/getActiveConnections.ts diff --git a/packages/backend/src/utils/index.ts b/src/backend/utils/index.ts similarity index 100% rename from packages/backend/src/utils/index.ts rename to src/backend/utils/index.ts diff --git a/packages/bridge/src/apply/apply.spec.ts b/src/bridge/apply/apply.spec.ts similarity index 100% rename from packages/bridge/src/apply/apply.spec.ts rename to src/bridge/apply/apply.spec.ts diff --git a/packages/bridge/src/apply/index.ts b/src/bridge/apply/index.ts similarity index 100% rename from packages/bridge/src/apply/index.ts rename to src/bridge/apply/index.ts diff --git a/packages/bridge/src/apply/node/index.ts b/src/bridge/apply/node/index.ts similarity index 100% rename from packages/bridge/src/apply/node/index.ts rename to src/bridge/apply/node/index.ts diff --git a/packages/bridge/src/apply/node/insertNode.ts b/src/bridge/apply/node/insertNode.ts similarity index 100% rename from packages/bridge/src/apply/node/insertNode.ts rename to src/bridge/apply/node/insertNode.ts diff --git a/packages/bridge/src/apply/node/mergeNode.ts b/src/bridge/apply/node/mergeNode.ts similarity index 100% rename from packages/bridge/src/apply/node/mergeNode.ts rename to src/bridge/apply/node/mergeNode.ts diff --git a/packages/bridge/src/apply/node/moveNode.ts b/src/bridge/apply/node/moveNode.ts similarity index 100% rename from packages/bridge/src/apply/node/moveNode.ts rename to src/bridge/apply/node/moveNode.ts diff --git a/packages/bridge/src/apply/node/removeNode.ts b/src/bridge/apply/node/removeNode.ts similarity index 100% rename from packages/bridge/src/apply/node/removeNode.ts rename to src/bridge/apply/node/removeNode.ts diff --git a/packages/bridge/src/apply/node/setNode.ts b/src/bridge/apply/node/setNode.ts similarity index 100% rename from packages/bridge/src/apply/node/setNode.ts rename to src/bridge/apply/node/setNode.ts diff --git a/packages/bridge/src/apply/node/splitNode.ts b/src/bridge/apply/node/splitNode.ts similarity index 100% rename from packages/bridge/src/apply/node/splitNode.ts rename to src/bridge/apply/node/splitNode.ts diff --git a/packages/bridge/src/apply/text.ts b/src/bridge/apply/text.ts similarity index 100% rename from packages/bridge/src/apply/text.ts rename to src/bridge/apply/text.ts diff --git a/packages/bridge/src/connection/connection.spec.ts b/src/bridge/connection/connection.spec.ts similarity index 100% rename from packages/bridge/src/connection/connection.spec.ts rename to src/bridge/connection/connection.spec.ts diff --git a/packages/bridge/src/convert/constants.ts b/src/bridge/convert/constants.ts similarity index 100% rename from packages/bridge/src/convert/constants.ts rename to src/bridge/convert/constants.ts diff --git a/packages/bridge/src/convert/convert.spec.ts b/src/bridge/convert/convert.spec.ts similarity index 100% rename from packages/bridge/src/convert/convert.spec.ts rename to src/bridge/convert/convert.spec.ts diff --git a/packages/bridge/src/convert/create.ts b/src/bridge/convert/create.ts similarity index 100% rename from packages/bridge/src/convert/create.ts rename to src/bridge/convert/create.ts diff --git a/packages/bridge/src/convert/index.ts b/src/bridge/convert/index.ts similarity index 100% rename from packages/bridge/src/convert/index.ts rename to src/bridge/convert/index.ts diff --git a/packages/bridge/src/convert/insert.ts b/src/bridge/convert/insert.ts similarity index 100% rename from packages/bridge/src/convert/insert.ts rename to src/bridge/convert/insert.ts diff --git a/packages/bridge/src/convert/remove.ts b/src/bridge/convert/remove.ts similarity index 100% rename from packages/bridge/src/convert/remove.ts rename to src/bridge/convert/remove.ts diff --git a/packages/bridge/src/convert/set.ts b/src/bridge/convert/set.ts similarity index 100% rename from packages/bridge/src/convert/set.ts rename to src/bridge/convert/set.ts diff --git a/packages/bridge/src/cursor/index.ts b/src/bridge/cursor/index.ts similarity index 100% rename from packages/bridge/src/cursor/index.ts rename to src/bridge/cursor/index.ts diff --git a/packages/bridge/src/index.ts b/src/bridge/index.ts similarity index 100% rename from packages/bridge/src/index.ts rename to src/bridge/index.ts diff --git a/packages/bridge/src/model/index.ts b/src/bridge/model/index.ts similarity index 100% rename from packages/bridge/src/model/index.ts rename to src/bridge/model/index.ts diff --git a/packages/bridge/src/model/slate.ts b/src/bridge/model/slate.ts similarity index 100% rename from packages/bridge/src/model/slate.ts rename to src/bridge/model/slate.ts diff --git a/packages/bridge/src/path/index.ts b/src/bridge/path/index.ts similarity index 100% rename from packages/bridge/src/path/index.ts rename to src/bridge/path/index.ts diff --git a/packages/bridge/src/utils/hexGen.ts b/src/bridge/utils/hexGen.ts similarity index 100% rename from packages/bridge/src/utils/hexGen.ts rename to src/bridge/utils/hexGen.ts diff --git a/packages/bridge/src/utils/index.ts b/src/bridge/utils/index.ts similarity index 100% rename from packages/bridge/src/utils/index.ts rename to src/bridge/utils/index.ts diff --git a/packages/bridge/src/utils/testUtils.ts b/src/bridge/utils/testUtils.ts similarity index 100% rename from packages/bridge/src/utils/testUtils.ts rename to src/bridge/utils/testUtils.ts diff --git a/packages/bridge/src/utils/toSync.ts b/src/bridge/utils/toSync.ts similarity index 100% rename from packages/bridge/src/utils/toSync.ts rename to src/bridge/utils/toSync.ts diff --git a/packages/client/src/automerge-connector.ts b/src/client/automerge-connector.ts similarity index 99% rename from packages/client/src/automerge-connector.ts rename to src/client/automerge-connector.ts index 97f59d3..462c955 100644 --- a/packages/client/src/automerge-connector.ts +++ b/src/client/automerge-connector.ts @@ -12,7 +12,7 @@ import { setCursor, toSlateOp, CursorData -} from '@hiveteams/collab-bridge' +} from 'src/bridge/index' import { AutomergeEditor } from './interfaces' /** diff --git a/packages/client/src/client.spec.ts b/src/client/client.spec.ts similarity index 95% rename from packages/client/src/client.spec.ts rename to src/client/client.spec.ts index 440f752..c2f4acb 100644 --- a/packages/client/src/client.spec.ts +++ b/src/client/client.spec.ts @@ -3,10 +3,13 @@ import { createServer } from 'http' import fs from 'fs' import isEqual from 'lodash/isEqual' import { createEditor, Editor, Element, Node, Transforms } from 'slate' -import { createDoc, SyncDoc, toJS, toSlateOp } from '@hiveteams/collab-bridge' -import AutomergeCollaboration, { - IAutomergeMetaData -} from '@hiveteams/collab-backend/lib/AutomergeCollaboration' + +import { createDoc, SyncDoc, toJS, toSlateOp, getTarget } from '../bridge/index' +import { + AutomergeCollaboration, + IAutomergeMetaData, + getActiveConnections +} from '../backend/index' import withIOCollaboration from './withIOCollaboration' import { AutomergeEditor, @@ -14,8 +17,6 @@ import { SocketIOPluginOptions, WithSocketIOEditor } from './interfaces' -import { getTarget } from '@hiveteams/collab-bridge/src/path' -import getActiveConnections from '@hiveteams/collab-backend/src/utils/getActiveConnections' const connectionSlug = 'test' const docId = `/${connectionSlug}` @@ -54,13 +55,13 @@ const collabBackend = new AutomergeCollaboration({ entry: server, defaultValue: defaultSlateJson, saveFrequency: 1000, - async onAuthRequest(query) { + async onAuthRequest(query: string) { return { _id: 'test-id', name: 'Eric' } }, - async onDocumentLoad(pathname) { + async onDocumentLoad(pathname: string) { return defaultSlateJson }, - onTrace(metaData, socket, computationFn) { + onTrace(metaData: any, socket: any, computationFn: () => void) { operationTraces.push(metaData) computationFn() } diff --git a/src/client/custom-slate-types.ts b/src/client/custom-slate-types.ts new file mode 100644 index 0000000..230648d --- /dev/null +++ b/src/client/custom-slate-types.ts @@ -0,0 +1,27 @@ +// This example is for an Editor with `ReactEditor` and `HistoryEditor` +import { BaseEditor, BaseRange } from 'slate' +import { HistoryEditor } from 'slate-history' + +export type CustomEditor = BaseEditor & HistoryEditor + +export type CustomElement = { + type?: string + children: CustomText[] +} + +export type CustomRange = { + isCaret?: boolean +} & BaseRange + +export type FormattedText = { text: string; bold?: true } + +export type CustomText = FormattedText + +declare module 'slate' { + interface CustomTypes { + Editor: CustomEditor + Element: CustomElement + Text: CustomText + Range: CustomRange + } +} diff --git a/packages/client/src/index.ts b/src/client/index.ts similarity index 100% rename from packages/client/src/index.ts rename to src/client/index.ts diff --git a/packages/client/src/interfaces.ts b/src/client/interfaces.ts similarity index 85% rename from packages/client/src/interfaces.ts rename to src/client/interfaces.ts index a936057..f03eaa9 100644 --- a/packages/client/src/interfaces.ts +++ b/src/client/interfaces.ts @@ -1,12 +1,12 @@ import Automerge from 'automerge' import { Editor } from 'slate' -import { CollabAction, CursorData, SyncDoc } from '@hiveteams/collab-bridge' +import { CollabAction, CursorData, SyncDoc } from 'bridge/index' export interface AutomergeOptions { docId: string cursorData?: CursorData preserveExternalHistory?: boolean - onError?: (msg: string | Error, data: any) => void + onError?: (msg: string | unknown, data: any) => void } export interface AutomergeEditor extends Editor { @@ -29,7 +29,7 @@ export interface AutomergeEditor extends Editor { onCursor: (data: any) => void - handleError: (err: Error | string, data?: any) => void + handleError: (err: unknown | string, data?: any) => void } export interface SocketIOPluginOptions { diff --git a/packages/client/src/test-json/deep-tree.json b/src/client/test-json/deep-tree.json similarity index 100% rename from packages/client/src/test-json/deep-tree.json rename to src/client/test-json/deep-tree.json diff --git a/packages/client/src/useCursor.ts b/src/client/useCursor.ts similarity index 97% rename from packages/client/src/useCursor.ts rename to src/client/useCursor.ts index a6a12a6..66f38e9 100644 --- a/packages/client/src/useCursor.ts +++ b/src/client/useCursor.ts @@ -2,7 +2,7 @@ import { useState, useCallback, useEffect, useMemo } from 'react' import { Text, Range, Path, NodeEntry } from 'slate' -import { toJS, Cursor, Cursors } from '@hiveteams/collab-bridge' +import { toJS, Cursor, Cursors } from 'bridge/index' import useMounted from './useMounted' import { AutomergeEditor } from './interfaces' diff --git a/packages/client/src/useMounted.ts b/src/client/useMounted.ts similarity index 100% rename from packages/client/src/useMounted.ts rename to src/client/useMounted.ts diff --git a/packages/client/src/withAutomerge.ts b/src/client/withAutomerge.ts similarity index 94% rename from packages/client/src/withAutomerge.ts rename to src/client/withAutomerge.ts index 4682a59..1a36c1b 100644 --- a/packages/client/src/withAutomerge.ts +++ b/src/client/withAutomerge.ts @@ -4,7 +4,7 @@ import { Editor } from 'slate' import { AutomergeConnector } from './automerge-connector' -import { CollabAction } from '@hiveteams/collab-bridge' +import { CollabAction } from 'bridge/index' import { AutomergeEditor, AutomergeOptions, @@ -31,7 +31,7 @@ const withAutomerge = ( * Helper function for handling errors */ - editor.handleError = (err: Error | string, data: any = {}) => { + editor.handleError = (err: unknown | string, data: any = {}) => { const { onError } = options if (onError) { onError(err, data) diff --git a/packages/client/src/withIOCollaboration.ts b/src/client/withIOCollaboration.ts similarity index 100% rename from packages/client/src/withIOCollaboration.ts rename to src/client/withIOCollaboration.ts diff --git a/packages/client/src/withSocketIO.ts b/src/client/withSocketIO.ts similarity index 97% rename from packages/client/src/withSocketIO.ts rename to src/client/withSocketIO.ts index c899d7c..1cdc1c5 100644 --- a/packages/client/src/withSocketIO.ts +++ b/src/client/withSocketIO.ts @@ -1,7 +1,7 @@ import io from 'socket.io-client' import Automerge from 'automerge' -import { CollabAction } from '@hiveteams/collab-bridge' +import { CollabAction } from 'bridge/index' import { AutomergeEditor, AutomergeOptions, diff --git a/tsconfig.base.json b/tsconfig.json similarity index 90% rename from tsconfig.base.json rename to tsconfig.json index a7a55f3..47adf3a 100644 --- a/tsconfig.base.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "rootDir": ".", - "baseUrl": "./packages", + "rootDir": "./src", + "baseUrl": "./src", "lib": ["dom", "dom.iterable", "esnext"], "allowSyntheticDefaultImports": true, "declaration": true,