Hornwitser
7814656241
Add ESLint check to travis integration
...
Invoke the lint package.json script during travis integration check.
2020-06-17 20:59:37 +02:00
Hornwitser
e9f5cae4f0
Fix misc problems detected by ESLint
...
Reformat and clean up issues detected by ESLint.
2020-06-17 20:59:37 +02:00
Hornwitser
8cb21c5fa8
Add dangling commas
...
Ensure multiline object and array litterals are consistenly typed out
with dangling commas for the last element.
2020-06-17 20:59:37 +02:00
Hornwitser
3e4f0b6b5e
Fix indents
...
Fix incorrectly indented code as detected by ESLint.
2020-06-17 20:59:33 +02:00
Hornwitser
703fda43ad
Fix JSDoc issues
...
Fix missing documentation for parameters and return types, incorect
config and errors in type definitions.
2020-06-17 20:53:18 +02:00
Hornwitser
3dba92a03d
Use strict mode
...
Add strict mode directives to all js files.
2020-06-17 20:53:18 +02:00
Hornwitser
b254e4189d
Use more consistent spacing in objects literals
2020-06-17 20:53:18 +02:00
Hornwitser
29f066a191
Fix missing semicolons
...
Ensure all statements end with a semicolon.
2020-06-17 20:53:18 +02:00
Hornwitser
34aaeee354
Use double quotes
...
Convert existing mix of double quotes and single quotes to only use
double quotes unless the string contains double quotes.
2020-06-17 20:53:18 +02:00
Hornwitser
efd759bec5
Add code linting using ESLint
...
Add ESLint as a dev dependency and configure it to match the preferred
style for the project. The config options set to warn are tentative and
may not be sensible as they haven't been fully investigated yet.
2020-06-17 20:53:18 +02:00
Hornwitser
922c6af632
Merge pull request #299 from Hornwitser/user-management
...
User management and authentication rework
2020-06-17 20:47:52 +02:00
Hornwitser
cf6f2cb70a
Add user and permission system
...
Add users, roles and permissions and rework the authentication to use
separate user and slave tokens for control and slave connections
respectively.
Add commands for listing permissions, roles and users, and creating,
editing and deleting roles and users.
2020-06-15 16:47:15 +02:00
Hornwitser
2acf57d23d
Fix erroneous delete of local variable
...
The delete operator only works on object properties, and causes the code
coverage to fail for the file in question if used on a local variable.
2020-06-15 00:13:25 +02:00
Hornwitser
07cff0ab9a
Fix error during slave authentication failure
...
Treat sending messages over a link that is not connected as a
SessionLost error and handle AuthenticationFailed error in the
startup logic of slave.
2020-06-15 00:13:25 +02:00
Hornwitser
3dfed4d2ad
Remove master.factorio_directory config
...
Remove old config entry for the old locale API that was removed with the
introduction of the new export system in 260f976 .
2020-06-15 00:13:25 +02:00
Hornwitser
c3179f0423
Move ControlConfig to lib/config/definitions.js
...
Move the definition of the control config to lib/config so that the
master code can use it.
2020-06-15 00:13:25 +02:00
Hornwitser
37bff10382
Merge pull request #298 from Hornwitser/config-event
...
Config events
2020-06-11 22:07:23 +02:00
Hornwitser
931ad4816f
Update config of running Factorio instances
...
Monitor the factorio.settings config for changes and apply them to
running instances via the /config set command.
2020-05-31 22:28:51 +02:00
Hornwitser
5b043524b4
Implement setProp in configs
...
Add setProp method for selectively changing one property of an object
field in a config group.
2020-05-31 16:08:21 +02:00
Hornwitser
8c9daff0bb
Add name shortcut for ConfigGroup instances
...
Add .name shortcut to get the groupName class property of config group
instances.
2020-05-31 14:16:06 +02:00
Hornwitser
67ca8dcc4d
Implement config notification event
...
Add fieldChanged event to config objects that is triggered when the
value of a field in a group belonging to it is changed.
2020-05-30 14:27:59 +02:00
Hornwitser
fc3686b865
Invoke plugin hooks via common function
...
Use a common function to iterate through and invoke the given hook in
every plugin, and ignore errors thrown by plugins from these hooks.
2020-05-30 14:27:59 +02:00
Hornwitser
01ea301a8c
Merge pull request #297 from Hornwitser/automate-export
...
Automate export process
2020-05-26 18:13:17 +02:00
Hornwitser
36cf14074e
Automatically upload export to master server
...
Upload the created export data zip file to a new /api/upload-export
endpoint on the master server which unpacks it into the appropriate
directory on the master.
2020-05-26 15:31:42 +02:00
Hornwitser
f3d4cfdcf5
Add reference to Slave in Instance
...
Add a reference to the Slave that's running the given instance in order
for it to be able to access the slave config.
2020-05-26 14:04:25 +02:00
Hornwitser
f8597f500c
Remove license note for angels icons
...
Remove notice about license for the now removed modded angels icons.
2020-05-26 13:17:58 +02:00
Hornwitser
2b20c943bb
Merge pull request #296 from Hornwitser/item-export
...
Implement icon and locale export
Closes #290
2020-05-26 13:16:11 +02:00
Hornwitser
1bddea8cec
Remove Factorio icons
...
Remove no longer used Factorio icons.
2020-05-26 01:12:05 +02:00
Hornwitser
e2255ddb7c
Remove inclusion of 3625 Angels item icons
...
Remove obsolete inclusion of the 3625 Angels item icons added by
09f476e .
2020-05-26 01:12:05 +02:00
Hornwitser
453226f246
Implement locale trenslation of resource names
...
Translate the names of the resources using the exported Factorio locale.
2020-05-26 01:12:05 +02:00
Hornwitser
260f976fa3
Implement export of item icons and locale
...
Add mod and command for exporting the Factorio locale including mods,
and item icons assemled into a sprite sheet including mods.
2020-05-26 01:11:49 +02:00
Hornwitser
d1b851d890
Move clusterio_lib to lua/clusterio_lib
...
Move the library mod to lua/clusterio_lib and restructure build_mod.js
to handle additonal files as a property to info.js instead of being hard
coded.
2020-05-25 20:45:09 +02:00
Hornwitser
2e24d6c8ae
Merge pull request #295 from Hornwitser/fix-windows
...
Fix Windows stop logic
2020-05-25 17:58:54 +02:00
Hornwitser
203f2d2a14
Fix Windows stop logic
...
Handle the Factorio server not exiting when encountering an error on
Windows and fix the hang detection for .stop().
2020-05-21 18:06:20 +02:00
Hornwitser
87d14252fc
Merge pull request #294 from Hornwitser/plugin-track
...
Integrate plugins closer with connections
2020-05-12 14:23:04 +02:00
Hornwitser
3211fbe985
Notify master about instance status update
...
Send updates to the master server when the running status of instances
change and add onInstanceStatusChanged hook to master plugins.
2020-05-11 18:10:11 +02:00
Hornwitser
a8e29fdc56
Separate instance from config in master
...
Separate the instance object and the config that belongs to the instance
object in the instances db held in memory on the master.
2020-05-11 18:07:41 +02:00
Hornwitser
a194508f52
Filter plugin messages forwarded to links
...
Drop events forwarded to a slave or instance that does not have the
plugin the event is defined in. Reject requests for the same reason.
2020-05-11 18:04:03 +02:00
Hornwitser
ca2839594e
Timeout quikly when disconnecting existing slave
...
If a slave that is already connected attempts connecting the existing
connection for that slave is disconnected. The most common scenario for
this is that the existing connection is stale and the slave is
attempting to connect agan. However if the connection is stale then the
disconnection will take 15 minutes to time out and the slave will appear
unresponsive during this time. Fix this problem by setting the timeout
to 15 seconds before disconnecting the existing connection.
2020-05-09 16:36:33 +02:00
Hornwitser
1b427af5f0
Fix client send buffer not being sent on ready
...
Fix WebSocketClientConnector not sending the send buffer queued up
between starting the connection and the master server sending the ready
signal for it.
2020-05-09 16:34:46 +02:00
Hornwitser
04ee3d3f96
Fix WebSocketClientConnector lifecycle events
...
Fix drop being repeatedly emitted while reconnecting and close not being
emitted on connection timeout.
2020-05-09 16:28:07 +02:00
Hornwitser
c87538ca58
Handle connection being closed in slave
...
Listen for the close event and connect again if the connection was
closed from proper disconnect or initiate a shutdown if the connection
was unexpectedly closed. Unexpected closure happens from authentication
failure and if a connection fails to reconnect before the timeout.
2020-05-09 16:24:02 +02:00
Hornwitser
c35b6de70e
Notify on connection events
...
Implement notification to plugins for disconnect request, connect, drop,
and close. This allows plugins to properly handle slaves and the master
server shutting down without sending messages that will get lost.
2020-05-08 23:49:28 +02:00
Hornwitser
b8b8c44083
Fix onExit not being invoked if plugin load fails
...
Fix instance not properly exiting if an error occurs during the loading
of a plugin.
2020-05-08 18:15:17 +02:00
Hornwitser
1beffb1bfd
Fix crash on hartbeat on closing connection
...
Fix heartbeat incorrectly asserting it cannot be sent on a connection in
the closing state.
2020-05-08 18:09:48 +02:00
Hornwitser
b151dd8469
Fix documentation
...
Fix missing module declarations, broken lings, broken formating and
incorrect scopes in the documentation. For modules split over several
files it appears the only viable option is to use the memberof directive
on each documented member and only declare the index file as a module.
2020-05-08 17:28:06 +02:00
Hornwitser
7a9b6592e6
Handle disconnect in link integration test
...
Handle the prepareDisconnect request properly in the TestControl in
test/integration/link.js.
2020-05-07 13:23:11 +02:00
Hornwitser
5c1214ad38
Rename connected and dropped events
...
Rename the connector events connected and dropped to connect and drop
respectively to be consistent with common Node.js names for events like
close.
2020-05-07 12:36:43 +02:00
Hornwitser
1629eaf225
Track plugins loaded by master and slaves
...
Send a mapping of the plugins the master server has loaded to slaves
vice versa. Limit the plugins that may be loaded by instances to only
those that the master server has loaded.
2020-05-06 20:14:40 +02:00
Hornwitser
4060c75142
Merge pull request #293 from Hornwitser/alpha-bugfixes-2
...
Alpha bugfixes 2
2020-05-06 20:13:22 +02:00