Introduces a new LumeniteDB module that provides a Lua API for interacting with SQLite databases.
This includes:
- Opening/creating databases
- Defining models and columns with primary key and default value support
- Creating tables
- Adding and committing session data for inserting/updating rows
- Selecting data from tables
- Support for transactions, last insert id, and delete operations
- Query building API with filter, order, limit and count capabilities
- Logging SQL queries for debugging.
Moves Lumenite to a new, modern C++ server implementation,
removing the old implementation and integrating it.
The new server implementation provides a more robust and
efficient foundation for handling HTTP requests, improving
performance and scalability.
Additionally, the old CURL dependency is removed and replaced
with simpler and more efficient methods using the built-in
http_get from LumenitePackageManager for package management.
The yaml-cpp library is added for extended parsing abilities.
Introduces a plugin loading mechanism that searches for
dynamic libraries in plugin directories and registers them
as Lumenite modules.
Adds dependency checking on Windows to help identify
missing DLLs required by plugins.
Includes vendor path for module loading
This enhances the engine's modularity and extensibility,
allowing for easier addition of new features through plugins.
Adds comprehensive color-coded error logging for better debugging.
Initializes the template engine during script loading for immediate availability.
Fixes template rendering errors by ensuring safe rendering from strings and handling potential exceptions.
Adds HttpRequest output stream operator for easier debugging.
Allows registering multiple Lua functions to be executed before and after each request.
Adds an `on_error` handler that allows Lua scripts to define functions to handle specific HTTP error codes.
This change uses vectors to store references to before/after request handlers, allowing for more flexible request processing.
Also, the `before_request` and `after_request` hooks now can optionally return a table to override the response status, body or headers.
Updates the download progress display in Lumenite Package Manager to be more robust.
It addresses issues with the progress bar and ensures that the output is properly
formatted and cleared, especially when downloading multiple files.
Also makes changes to the registry URL.
Adds a package manager to the editor for installing, removing, and updating plugins.
This commit introduces:
- A new `LumenitePackageManager` class for managing plugins.
- Commands for getting, removing, updating, and listing plugins.
- Functionality for fetching a plugin registry, downloading files, and managing installed plugins via YAML.
- Basic platform-dependent HTTP GET and file download implementations using WinInet on Windows.
- Adds an image for the package manager to the readme.
Addresses issue where plugins had to manually be installed.
Implements a package manager for Lumenite, allowing users to install, remove, and update plugins.
The package manager fetches plugin metadata from a remote registry, downloads the plugin binaries, and manages installed plugins via a local metadata file.
It provides commands for:
- Listing available packages
- Installing packages from the registry
- Uninstalling packages
- Updating packages to the latest version
Also:
- Enables HTTPS support by default
- Adds yaml-cpp as a dependency
- Adds wininet as a dependency on Windows