├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ └── publish.yaml ├── .gitignore ├── README.md ├── docs ├── .gitignore ├── babel.config.js ├── docs │ ├── advanced-guides │ │ └── ephemeral-data.md │ ├── api │ │ ├── client.md │ │ ├── game.md │ │ ├── invalid-action-error.md │ │ ├── phase.md │ │ └── server.md │ ├── architecture_diagram.drawio.svg │ ├── getting-started.md │ ├── integrating-with-airmeeple.md │ └── main-concepts │ │ ├── deployment.md │ │ ├── phases-complex-phase-tree.drawio.svg │ │ ├── phases-nested-phase-tree.drawio.svg │ │ ├── phases-phase-tree.drawio.svg │ │ ├── phases.md │ │ └── randomness.md ├── docusaurus.config.js ├── package.json ├── sidebars.js ├── src │ ├── css │ │ └── custom.css │ └── pages │ │ ├── index.js │ │ └── styles.module.css ├── static │ ├── .nojekyll │ └── img │ │ ├── ravens-fill.svg │ │ ├── undraw_docusaurus_mountain.svg │ │ ├── undraw_docusaurus_react.svg │ │ └── undraw_docusaurus_tree.svg ├── tutorial │ └── tutorial.md └── yarn.lock ├── jest.config.js ├── package.json ├── src ├── client-authentication-provider │ ├── ClientAuthenticationProvider.ts │ └── ClientURLAuthenticationProvider.ts ├── client-transport-layer │ ├── ClientSocketTransportLayer.ts │ └── ClientTransportLayer.ts ├── client │ ├── Client.ts │ ├── ClientMessage.ts │ └── index.ts ├── core │ ├── Core.test.ts │ ├── Core.ts │ ├── Game.ts │ ├── GameStatus.ts │ ├── OperationContext.ts │ ├── Phase.ts │ ├── SerializedGame.ts │ ├── SerializedPhase.ts │ ├── UserData.ts │ ├── errors │ │ ├── InvalidActionError.ts │ │ ├── InvalidStatusError.ts │ │ ├── MaxPlayersReachedError.ts │ │ ├── PlayerAlreadyInGameError.ts │ │ └── PlayerNotInGameError.ts │ └── index.ts ├── front-end │ └── GameComponent.tsx ├── index.ts ├── server-persistence-layer │ ├── AirMeepleServerPersistenceLayer.ts │ ├── DumbServerPersistenceLayer.ts │ └── ServerPersistenceLayer.ts ├── server-transport-layer │ ├── ServerSocketTransportLayer.ts │ └── ServerTransportLayer.ts ├── server │ ├── Server.test.ts │ ├── Server.ts │ ├── ServerMessage.ts │ └── index.ts └── test-utils │ ├── DumbAuthenticationProvider.ts │ ├── DumbClientTransportLayer.ts │ ├── DumbServerTransportLayer.ts │ ├── SimpleCounterGame.ts │ ├── ThreePhaseGame.ts │ └── flushPromises.ts ├── tsconfig.json └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | docs/ 3 | lib/ -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.github/workflows/publish.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/.github/workflows/publish.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/README.md -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/.gitignore -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/babel.config.js -------------------------------------------------------------------------------- /docs/docs/advanced-guides/ephemeral-data.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/advanced-guides/ephemeral-data.md -------------------------------------------------------------------------------- /docs/docs/api/client.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/api/client.md -------------------------------------------------------------------------------- /docs/docs/api/game.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/api/game.md -------------------------------------------------------------------------------- /docs/docs/api/invalid-action-error.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/api/invalid-action-error.md -------------------------------------------------------------------------------- /docs/docs/api/phase.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/api/phase.md -------------------------------------------------------------------------------- /docs/docs/api/server.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/api/server.md -------------------------------------------------------------------------------- /docs/docs/architecture_diagram.drawio.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/architecture_diagram.drawio.svg -------------------------------------------------------------------------------- /docs/docs/getting-started.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/getting-started.md -------------------------------------------------------------------------------- /docs/docs/integrating-with-airmeeple.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/integrating-with-airmeeple.md -------------------------------------------------------------------------------- /docs/docs/main-concepts/deployment.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/main-concepts/deployment.md -------------------------------------------------------------------------------- /docs/docs/main-concepts/phases-complex-phase-tree.drawio.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/main-concepts/phases-complex-phase-tree.drawio.svg -------------------------------------------------------------------------------- /docs/docs/main-concepts/phases-nested-phase-tree.drawio.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/main-concepts/phases-nested-phase-tree.drawio.svg -------------------------------------------------------------------------------- /docs/docs/main-concepts/phases-phase-tree.drawio.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/main-concepts/phases-phase-tree.drawio.svg -------------------------------------------------------------------------------- /docs/docs/main-concepts/phases.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/main-concepts/phases.md -------------------------------------------------------------------------------- /docs/docs/main-concepts/randomness.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docs/main-concepts/randomness.md -------------------------------------------------------------------------------- /docs/docusaurus.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/docusaurus.config.js -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/package.json -------------------------------------------------------------------------------- /docs/sidebars.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/sidebars.js -------------------------------------------------------------------------------- /docs/src/css/custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/src/css/custom.css -------------------------------------------------------------------------------- /docs/src/pages/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/src/pages/index.js -------------------------------------------------------------------------------- /docs/src/pages/styles.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/src/pages/styles.module.css -------------------------------------------------------------------------------- /docs/static/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/static/img/ravens-fill.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/static/img/ravens-fill.svg -------------------------------------------------------------------------------- /docs/static/img/undraw_docusaurus_mountain.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/static/img/undraw_docusaurus_mountain.svg -------------------------------------------------------------------------------- /docs/static/img/undraw_docusaurus_react.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/static/img/undraw_docusaurus_react.svg -------------------------------------------------------------------------------- /docs/static/img/undraw_docusaurus_tree.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/static/img/undraw_docusaurus_tree.svg -------------------------------------------------------------------------------- /docs/tutorial/tutorial.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/tutorial/tutorial.md -------------------------------------------------------------------------------- /docs/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/docs/yarn.lock -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/jest.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/package.json -------------------------------------------------------------------------------- /src/client-authentication-provider/ClientAuthenticationProvider.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client-authentication-provider/ClientAuthenticationProvider.ts -------------------------------------------------------------------------------- /src/client-authentication-provider/ClientURLAuthenticationProvider.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client-authentication-provider/ClientURLAuthenticationProvider.ts -------------------------------------------------------------------------------- /src/client-transport-layer/ClientSocketTransportLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client-transport-layer/ClientSocketTransportLayer.ts -------------------------------------------------------------------------------- /src/client-transport-layer/ClientTransportLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client-transport-layer/ClientTransportLayer.ts -------------------------------------------------------------------------------- /src/client/Client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client/Client.ts -------------------------------------------------------------------------------- /src/client/ClientMessage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client/ClientMessage.ts -------------------------------------------------------------------------------- /src/client/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/client/index.ts -------------------------------------------------------------------------------- /src/core/Core.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/Core.test.ts -------------------------------------------------------------------------------- /src/core/Core.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/Core.ts -------------------------------------------------------------------------------- /src/core/Game.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/Game.ts -------------------------------------------------------------------------------- /src/core/GameStatus.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/GameStatus.ts -------------------------------------------------------------------------------- /src/core/OperationContext.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/OperationContext.ts -------------------------------------------------------------------------------- /src/core/Phase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/Phase.ts -------------------------------------------------------------------------------- /src/core/SerializedGame.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/SerializedGame.ts -------------------------------------------------------------------------------- /src/core/SerializedPhase.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/SerializedPhase.ts -------------------------------------------------------------------------------- /src/core/UserData.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/UserData.ts -------------------------------------------------------------------------------- /src/core/errors/InvalidActionError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/errors/InvalidActionError.ts -------------------------------------------------------------------------------- /src/core/errors/InvalidStatusError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/errors/InvalidStatusError.ts -------------------------------------------------------------------------------- /src/core/errors/MaxPlayersReachedError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/errors/MaxPlayersReachedError.ts -------------------------------------------------------------------------------- /src/core/errors/PlayerAlreadyInGameError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/errors/PlayerAlreadyInGameError.ts -------------------------------------------------------------------------------- /src/core/errors/PlayerNotInGameError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/errors/PlayerNotInGameError.ts -------------------------------------------------------------------------------- /src/core/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/core/index.ts -------------------------------------------------------------------------------- /src/front-end/GameComponent.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/front-end/GameComponent.tsx -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/server-persistence-layer/AirMeepleServerPersistenceLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server-persistence-layer/AirMeepleServerPersistenceLayer.ts -------------------------------------------------------------------------------- /src/server-persistence-layer/DumbServerPersistenceLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server-persistence-layer/DumbServerPersistenceLayer.ts -------------------------------------------------------------------------------- /src/server-persistence-layer/ServerPersistenceLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server-persistence-layer/ServerPersistenceLayer.ts -------------------------------------------------------------------------------- /src/server-transport-layer/ServerSocketTransportLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server-transport-layer/ServerSocketTransportLayer.ts -------------------------------------------------------------------------------- /src/server-transport-layer/ServerTransportLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server-transport-layer/ServerTransportLayer.ts -------------------------------------------------------------------------------- /src/server/Server.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server/Server.test.ts -------------------------------------------------------------------------------- /src/server/Server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server/Server.ts -------------------------------------------------------------------------------- /src/server/ServerMessage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server/ServerMessage.ts -------------------------------------------------------------------------------- /src/server/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/server/index.ts -------------------------------------------------------------------------------- /src/test-utils/DumbAuthenticationProvider.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/test-utils/DumbAuthenticationProvider.ts -------------------------------------------------------------------------------- /src/test-utils/DumbClientTransportLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/test-utils/DumbClientTransportLayer.ts -------------------------------------------------------------------------------- /src/test-utils/DumbServerTransportLayer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/test-utils/DumbServerTransportLayer.ts -------------------------------------------------------------------------------- /src/test-utils/SimpleCounterGame.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/test-utils/SimpleCounterGame.ts -------------------------------------------------------------------------------- /src/test-utils/ThreePhaseGame.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/test-utils/ThreePhaseGame.ts -------------------------------------------------------------------------------- /src/test-utils/flushPromises.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/src/test-utils/flushPromises.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ravens-engine/core/HEAD/yarn.lock --------------------------------------------------------------------------------