Skip to content

Commit

Permalink
feat(shared state server): added shared state server (#2056)
Browse files Browse the repository at this point in the history
* feat(shared state): moved sharedb test project to monorepo

* refactor: typings

* feat: integrate shared state into rest example

* refactor: code improvements

* refactor: shared state server now class

* feat: library metadata extension

* feat: authentication in websocket

* feat: authorization

* feat: load schemas from library

* feat: logic checker stub

* feat: first logic checker implementation

* feat: implemented logical operators and more tests

* refactor: removed old schemas

* refactor: simplified logic checker structure

* fix: fixed logic checker issues and added tests

* feat: op logic checks

* fix: logic checks

* feat: logic check for snapshot

* feat: added access level to integration

* feat: hooks in core

* feat: implemented clearing content state

* feat: implemented create check

* feat: snapshot logic test, $in and $nin work on arrays

* chore: deps updated react-scripts to v5

* refactor: cleanup

* refactor: moved validator storage to own class

* refactor: minor chanes

* refactor: removed dependency on ContentManager

* refactor: moved middleware to its own files

* fix: adapted example code

* feat: add get auth route

* refactor: debug logs

* fix: made logic check $in more tolerant

* feat: snapshot data in op logic test

* fix: always allow server ops

* refactor: refactoring and documentation

* refactor: logs in debug module

* refactor: removed custom typing of ShareDB context

* refactor: change concurrent build phases to reduce memory peak

* refactor: added shared state server to build artifacts

* refactor: shared state example only optional

* refactor: removed old access level injection

* refactor: added state extension property to library schema

* chore: updated package lock

* docs: added propsal doc
  • Loading branch information
sr258 authored Feb 25, 2022
1 parent ec9845e commit 3924d44
Show file tree
Hide file tree
Showing 36 changed files with 6,181 additions and 2,208 deletions.
2 changes: 2 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ jobs:
- packages/h5p-react/node_modules
- packages/h5p-server/build
- packages/h5p-server/node_modules
- packages/h5p-shared-state-server/build
- packages/h5p-shared-state-server/node_modules
- packages/h5p-webcomponents/build
- packages/h5p-webcomponents/node_modules
- packages/h5p-rest-example-client/node_modules
Expand Down
3 changes: 2 additions & 1 deletion jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ module.exports = {
roots: [
'<rootDir>/packages/h5p-express/test',
'<rootDir>/packages/h5p-server/test',
'<rootDir>/packages/h5p-html-exporter/test'
'<rootDir>/packages/h5p-html-exporter/test',
'<rootDir>/packages/h5p-shared-state-server/test'
],

// Allows you to use a custom runner instead of Jest's default test runner
Expand Down
12 changes: 7 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@
"url": "https://github.com/Lumieducation/H5P-Nodejs-library"
},
"scripts": {
"build:h5p-server": "npm run build --prefix packages/h5p-server",
"build:h5p-examples": "npm run build --prefix packages/h5p-examples",
"build:h5p-express": "npm run build --prefix packages/h5p-express",
"build:h5p-html-exporter": "npm run build --prefix packages/h5p-html-exporter",
"build:h5p-react": "npm run build --prefix packages/h5p-react",
"build:h5p-webcomponents": "npm run build --prefix packages/h5p-webcomponents",
"build:h5p-redis-lock": "npm run build --prefix packages/h5p-redis-lock",
"build": "npm run build --prefix packages/h5p-server && concurrently \"npm run build --prefix packages/h5p-express\" \"npm run build --prefix packages/h5p-html-exporter\" \"npm run build --prefix packages/h5p-redis-lock\" \"npm run build --prefix packages/h5p-mongos3\" && concurrently \"npm run build --prefix packages/h5p-examples\" \"npm run build:h5p-webcomponents\" && npm run build:h5p-react",
"build:h5p-server": "npm run build --prefix packages/h5p-server",
"build:h5p-shared-state-server": "npm run build --prefix packages/h5p-shared-state-server",
"build:h5p-webcomponents": "npm run build --prefix packages/h5p-webcomponents",
"build": "npm run build --prefix packages/h5p-server && concurrently \"npm run build --prefix packages/h5p-express\" \"npm run build --prefix packages/h5p-html-exporter\" \"npm run build --prefix packages/h5p-redis-lock\" \"npm run build --prefix packages/h5p-mongos3\" && concurrently \"npm run build --prefix packages/h5p-shared-state-server\" \"npm run build --prefix packages/h5p-examples\" \"npm run build:h5p-webcomponents\" && npm run build:h5p-react",
"download:content-type-cache": "ts-node scripts/update-real-content-type-cache.ts",
"download:content": "node scripts/download-examples.js test/data/content-type-cache/real-content-types.json test/data/hub-content",
"download:h5p": "sh scripts/install.sh",
Expand All @@ -25,6 +26,7 @@
"lint:main": "eslint -c .eslintrc.js --ext .ts packages --quiet",
"lint:rest-client": "npm run lint --prefix packages/h5p-rest-example-client",
"lint": "concurrently \"npm:lint:main\" \"npm:lint:rest-client\" \"npm:lint:docs\"",
"localize": "./localize.sh",
"postinstall": "npx lerna bootstrap && concurrently \"npm run build\" \"npm run download:content-type-cache && npm run download:h5p\"",
"pre-commit": "concurrently \"npm:lint\" \"npm:format\"",
"prepare": "husky install",
Expand All @@ -44,15 +46,15 @@
"test:e2e": "npm run test:e2e --prefix packages/h5p-examples",
"test:h5p-mongos3": "npm test --prefix packages/h5p-mongos3",
"test:h5p-redis-lock": "npm test --prefix packages/h5p-redis-lock",
"test:h5p-shared-state-server": "jest packages/h5p-shared-state-server/test",
"test:html-exporter": "jest --config packages/h5p-html-exporter/jest.config.js --maxWorkers=${BUILD_WORKERS-`nproc`}",
"test:integration": "npx jest --config jest.integration.config.js --maxWorkers=${BUILD_WORKERS-`nproc`} && npm run test:h5p-redis-lock",
"test:server+upload": "npm run test:server+upload --prefix packages/h5p-server",
"test:upload": "npm run test:upload --prefix packages/h5p-server",
"test:watch:h5p-express": "npm run test:watch --prefix packages/h5p-express",
"test:watch:h5p-mongos3": "npm run test:watch --prefix packages/h5p-mongos3",
"test:watch": "jest --watch --logHeapUsage --maxWorkers=${BUILD_WORKERS-`nproc`}",
"test": "jest --maxWorkers=${BUILD_WORKERS-`nproc`}",
"localize": "./localize.sh"
"test": "jest --maxWorkers=${BUILD_WORKERS-`nproc`}"
},
"release": {
"branch": "release"
Expand Down
Loading

0 comments on commit 3924d44

Please sign in to comment.