Skip to content

Releases: ArunaBot/ArunaCore

v1.0.0-BETA.5

03 Nov 22:38
ef15091

Choose a tag to compare

  • [FIX] Wrong management of coreKey

    • Fixed an issue where the coreKey was handled incorrectly, causing it
      to be always null, resulting in clients being unable to access
      restricted resources.
  • [FEAT] Split 401 Unauthorized into 401 Unauthorized and 403 Forbidden

    • Now, 401 is used when authentication fails (e.g., invalid secure
      key), while 403 is used when access is denied despite valid
      authentication (e.g., insufficient permissions, invalid key for specific
      target communication, invalid masterkey, etc.).
    • This provides clearer feedback to clients about the nature of access
      issues.
  • [FEAT] Implemented client.request() method in WebSocketClient

    • This method allows sending a message and awaiting a response,
      simplifying request-response interactions.
    • To use it, simply call client.request(message) and await the
      returned promise.
    • To respond to such request on the other side, handle the request
      event and reply using message.reply.
  • [CHORE] Improved code documentation and comments for better clarity
    and maintainability.

v1.0.0-BETA.4

02 Nov 19:03
f1c163b

Choose a tag to compare

  • [BREAKING] Dropped support for all versions below Node.js v20.11.1

    • While the api may still work on older versions, the app itself can't
      run on them anymore due to internal fs changes.
  • [BREAKING] Application register flow changed

    • New websocket connections now register on the upgrade request, not
      after the connection is established.
      • This simplifies the connection process and improves performance.
  • [BREAKING] Removed isRegistered() method from ArunaClient

    • This method became obsolete with the new registration flow.
  • [FEAT] Better docker support

    • Enforce port to 3000 inside the container, regardless of the
      configuration file.
    • This allows easier deployment and avoids port conflicts, allowing the
      user to map the port as needed in the docker itself.

v1.0.0-BETA.3

02 Jun 01:03
92c70db

Choose a tag to compare

  • [FIX] Dead WebSocket connections not being properly handled

    • Now, when a connection is considered dead, all 'pong' event listeners are removed and the promise resolves the correct state.
    • This prevents memory leaks and improves stability.
  • [FIX] Wrong masterkey casing in configuration

    • Fixed an issue where the masterkey property was not being recognized due to incorrect casing.
  • [FIX] Add dependency removed by accident

  • [NEW] Added typing for client-emitted events

    • This improves developer experience and type safety when handling events emitted by clients.

v1.0.0-BETA.2

31 May 16:04
9a1214b

Choose a tag to compare

  • [BREAKING] Removed deprecated methods from WebSocketParser

    • These methods were deprecated in the previous version, so they were removed now.
  • [FIX] Removed deprecated Node flag --loader from start and test scripts

    • This flag was deprecated in Node.js v20.0.0 and replaced by the --import flag.
  • [DOCS] Updated important JSDoc comments

v1.0.0-BETA.1

16 May 14:04
03d2105

Choose a tag to compare

  • [BREAKING] Dropped support for all versions below Node.js v18.8.0

    • These versions are too old and can't be supported anymore.
  • [NEW] Improvements to system environment variables

    • Now ARUNACORE_<PROPERTY> variables can be used to override all properties in the configuration file
      • For real this time.
  • [CHORE] Updated dependencies

v1.0.0-BETA.0

02 Jan 19:59
9cfa28f

Choose a tag to compare

Yes, we are finally in beta! 🎉

This release includes a lot of changes and improvements, so check the changelog to see what's new.

  • [BREAKING] Drop support for all versions below Node.js v16.20.0

    • Our build system was improved and can't build in version 14 or lower anymore
    • Also, our load system uses features from Node.js v16.20.0, so we can't support older versions anymore
  • [BREAKING] Message system was refactored

    • Instead of a crazy irc-inspired message system, we now use simple json objects
    • The send method was changed, and you will need to update your code to use the new one
    • Legacy "command" and "args" properties are now optional, and you probably won't need to use them anymore
    • New parameter "content" was added, this accepts anything and will be sent as the message content
    • The property "type" in message doesn't mean the client type anymore, now it means the message type (update your code to reflect this change)
    • Various other changes were made, so check IMessage interface to see all changes
  • [BREAKING] ArunaCore is now an ES module

    • This doesn't affect the api, so your code probably will work without issues
  • [DEPRECATED] Various methods from WebSocketParser were deprecated

    • They will be removed in some future version, so update your code to use the new methods
  • [CHANGE] We changed the project structure

    • Say goodbye to multiples node_modules folders (we now use a single in the root and another in api only)
    • Now we use a single package.json file in the root of the project (and another in api only)
    • Now we use a single tsconfig.json file in the root of the project (and another in api only)
    • This reduces significantly the project size and build time (and also makes it easier to maintain)
  • [CHANGE] Build system was improved

    • Since we have abandoned the multiple modules structure, we can now use a single build system
    • This includes the api (you don't need to build it separately anymore)
  • [CHANGE] Increase WebSocket payload size limit

    • Now we support payloads up to 512kb
  • [NEW] Add configuration system

    • Now you can configure the system (including server port) editing the bundle/config/config.json file
    • You can also use enviroment ARUNACORE_<PROPERTY> variables to override the configuration file
  • [NEW] Add masterkey to allow access to restricted endpoints and commands

    • You can set the masterkey in the configuration file or in the enviroment variable ARUNACORE_MASTERKEY
    • If a masterkey is not provided, all restricted endpoints and commands will be disabled and will return a 503 error
  • [NEW] Create a connection structure

    • Usefull to store and manipulate connections
  • [FIX] Timeouts not being cleared

    • This also reduces test time
  • [FIX] HTTP server not responding unknown endpoints

    • Now it returns a 404 error (as expected) instead just doing nothing and waiting for a timeout
  • [FIX] HTTP doesn't support body

    • Since the default node http server doesn't support body, we've implemented a custom parser to support it
  • [FIX] HTTP server routes begin case sensitive

    • Now all routes are case insensitive
  • [CHORE] Update dependencies

  • [CHORE] Improve documentation

  • [CHORE] Create a changelog file to keep track of changes

    • Probably includes all changes from previous versions

v1.0.0-ALPHA.3

26 Mar 01:53
2f8ffe0

Choose a tag to compare

v1.0.0-ALPHA.3 Pre-release
Pre-release
API 1.0.0-ALPHA.5, Core 1.0.0-ALPHA.3 (#3)

v1.0.0-ALPHA.2

18 Dec 23:51
44a2f52

Choose a tag to compare

v1.0.0-ALPHA.2 Pre-release
Pre-release
(fix): publish workflow

v1.0.0-ALPHA.1

06 Jul 18:08
81543dd

Choose a tag to compare

v1.0.0-ALPHA.1 Pre-release
Pre-release
(ci): fix publish workflow

v1.0.0-ALPHA.0

05 Jun 22:11
4957cc4

Choose a tag to compare

v1.0.0-ALPHA.0 Pre-release
Pre-release

The first usable release!