* Zod EVERYWHERE
* Add no-unused-vars rule to eslint in front
* Add no-unused-vars rule to eslint in pusher
* Add no-unused-vars rule to eslint in back
* Remove unused PlayerTexture guards
* Fix data providing on room connection
Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re>
* Wrap websockets with HyperExpress
* Add endpoints on pusher to resolve wokas
* getting textures urls from pusher
* Adding OpenAPI documentation for the pusher.
The pusher now exposes a "/openapi" endpoint and a "/swagger-ui/" endpoint.
* revert FRONT_URL
* playerTextures metadata is being loaded via Phaser.Loader
* fetch textures every time character or customize scene is open
* Heavy changes: refactoring the pusher to always send the textures (and the front to accept them)
* Sending character layer details to admin
* Cleaning commented code
* Fixing regex
* Fix woka endpoints on pusher
* Change error wording on pusher
* Working on integration of the woka-list with the new admin endpoint.
* Switching from "name" to "id" in texture object + using zod for woka/list validation
* Add position on default woka data
* Remove async on pusher option method
* Fix woka list url
* add options for /register
* Fxiing loading the Woka list
* Actually returning something in logout-callback
* Copying messages to back too
* remove customize button if no body parts are available (#1952)
* remove customize button if no body parts are available
* remove unused position field from PlayerTexturesCollection interface
* removed unused label field
* fix LocalUser test
* little PlayerTextures class refactor
* Fixing linting
* Fixing missing Openapi packages in prod
* Fixing back build
Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
* Add returns on pusher endpoints
Co-authored-by: Alexis Faizeau <a.faizeau@workadventu.re>
Co-authored-by: Hanusiak Piotr <piotr@ltmp.co>
Co-authored-by: Piotr Hanusiak <wacneg@gmail.com>
A great deal of the complexity of the current code is that we must chain
2 reactive values (one in the map "GameScene.MapPlayersByKey" and one in
the snapshot store).
The new generic MapStore class can be used to listen to stores inside a map.
When the store inside the map, or the map itself is modified, the
resulting store is updated.
Implementation of LayersFlattener
Implementation of Setting properties of a layer form script
Update show/hide layer form script
Update unit test of LayersIteratorTest
This class iterates recursively over layers, flattening groups.
This enables us to simplify the code when we iterate layers. We can remove all recursive function calls in the GameScene code (it is delegated to the LayersIterator)