102 Commits
Author SHA1 Message Date
Brooke Kuhlmann 191a515a57 Added log level type
Ensures log levels are limited to a unique set of levels.

Milestone: minor
2026-06-30 11:07:32 -06:00
Brooke Kuhlmann 44db96eb4d Removed browser environment variable setting
No longer needed now that we are using individual Ferrum environment variables.

Milestone: minor
2026-06-24 12:28:28 -06:00
Brooke Kuhlmann c59f6149fc Added file/temp file type
Necessary to account for `File` or `Tempfile` types. `StringIO` is also included to make testing easier since they have, roughly, the same Object API. `Pathname` is always preferred but when dealing with file uploads, attachments, etc. these will be `Tempfile` instances so this new type aids with this.

Milestone: minor
2026-05-18 12:03:46 -06:00
Brooke Kuhlmann 13aeaf1d20 Fixed version type to support mulitple digits
This was an oversight when switching from the Versionaire gem to a simple major, minor, patch version.

Milestone: patch
2026-01-17 15:01:33 -07:00
Brooke Kuhlmann 1ac9b62e2c Updated version type to use simple major, minor, and patch check
Allows this type to be more resuable across different version checks that only need major, minor, and patch information.

Issue: 216
Milestone: patch
2026-01-12 16:47:02 -07:00
Brooke Kuhlmann c842581f98 Updated to Ruby 4.0.0
link:https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released[Details]. For the most part, this is a minor update despite Ruby bumping to a major version. One breaking change is that you no longer can use `CGI` for parsing URLs. Here's the details:

* Removed all `Pathname` requires since it's a core class now. 🎉
* Use `Rack::Utils.parse_query` instead of `CGI.parse`.
* Passing a non-String -- or any object that can't cast to a string/path -- for a `Pathname`, results is a different error message now.
* Includes minor/patch updates to supporting gems as well.

Milestone: minor
2025-12-25 09:14:40 -07:00
Brooke Kuhlmann 01cac609a0 Removed lib container and dependencies
No longer needed as all of these dependencies have been folded into the application. This includes the removal of the Containable and Infusible gems as those were only needed for library purposes.

Milestone: patch
2025-10-27 10:42:45 -06:00
Brooke Kuhlmann 1f7d10d6a9 Refactored sanitizer to aspects namespace
Necessary to reduce the need for the lib container by using the application container instead.

Milestone: patch
2025-10-27 10:42:14 -06:00
Brooke Kuhlmann 49a8674165 Refactored downloader to aspects namespace
Necessary to remove duplication in the lib folder and also remove the lib container entirely.

Milestone: patch
2025-10-27 10:42:14 -06:00
Brooke Kuhlmann 418fc0e5db Updated to RuboCop 1.81.1
Necessary to revert the refactorings made in 3a6e82ddee (Updated to Caliber 0.84.0) because the RuboCop team has addressed community feedback and relaxed the restriction on using `it` in functional pipelines. 🎉

Milestone: patch
2025-09-29 13:13:46 -06:00
Brooke Kuhlmann 3a6e82ddee Updated to Caliber 0.84.0
link:https://alchemists.io/projects/caliber/versions/0.84.0/[Details]. This also picks up a Rouge patch.

One of the interesting quirks of this change is that the RuboCop team changed how `it` works for functional pipelines. I've refactored the code to account for this change but also raised concern with the RuboCop team since this was surprising to introducing in a minor version bump.

Milestone: minor
2025-09-25 08:40:52 -06:00
Brooke Kuhlmann 442816d4de Removed JSON from browser hash type
The `JSON` namespace was unnecessary and is safe to remove.

Milestone: patch
2025-09-09 11:53:36 -06:00
Brooke Kuhlmann 95db7f1d3e Fixed browser setting defaults
Necesssary to provide safe defaults and ensure they show up in the error responses. The defaults are done at the type level rather than the settings level which is why the setting only uses an empty hash as the default.

Support for integer has been added so you can use an integer or float for the `process_timeout` and `timeout` values. This also ensures the defaults are supplied when only partial settings are supplied.

Issue: 225
Milestone: patch
2025-09-08 14:57:09 -06:00
Brooke Kuhlmann 7480ad0d37 Added browser custom type
Necessary to allow folks to supply a limited amount of settings for the Ferrum browser. This will soon be used as an application setting that will be provided to `Terminus::Aspects::Screens::Shoter` when performing screen shots.

Issue: 222
Milestone: minor
2025-09-08 11:35:35 -06:00
Brooke Kuhlmann 1d00a98596 Updated to Cogger 1.5.0
link:https://alchemists.io/projects/cogger/versions/1.5.0/[Details].

Milestone: minor
2025-09-01 14:15:32 -06:00
Brooke Kuhlmann 8f75e0981e Updated library logger to use property format and filters
Necessary, with the filters, to ensure sensitive information isn't leaked in the logs. The property formatter is being used as a sort of temporary solution to log all details in a clean fashion (this will need to be revisited in the future).

Issue: 210
Milestone: minor
2025-08-12 11:28:15 -06:00
Brooke Kuhlmann ec498a5afb Refactored action response refinement to default to 200 status
Necessary to reduce unnecessary typing and setup by defaulting to 200 status (this mimics Hanami's own response status which is 200 if you don't supply a different value). Now, only when the status isn't 200, do you need to supply a code.

Milestone: patch
2025-08-07 14:31:28 -06:00
Brooke Kuhlmann 6f619a81d8 Fixed sanitizer to allow div elements with data attributes
Necessary for use with the link:https://usetrmnl.com/framework[TRMNL Framework].

Issue: 192
Milestone: patch
2025-08-04 10:25:36 -06:00
Brooke Kuhlmann 08f42b3735 Fixed sanitizer so that link and script elements are allowed
Necessary to ensure you can leverage the link:https://usetrmnl.com/framework[TRMNL Framework] when using the Designer and/or Screens API because you'll need to pull in our stylesheet and associated JavaScript code in order for the screen to render properly.

Issue: 192
Milestone: patch
2025-08-02 11:48:23 -06:00
Brooke Kuhlmann 7bf747d44d Refactored firmware header objects within main application
Originally, the idea was that this functionality might be extracted to a gem (could still be possible) but decided to bring this into the main application for improved organization and reference.

Milestone: patch
2025-07-31 12:18:03 -06:00
Brooke Kuhlmann 6385fc5fed Updated downloader to include URI in error message
Necessary to improve the debugging experience.

Milestone: patch
2025-07-31 11:06:55 -06:00
Brooke Kuhlmann e00bb05207 Removed lib screen objects
No longer needed and safe to remove since most of this has been moved into the main app.

Milestone: minor
2025-07-29 13:58:31 -06:00
Brooke Kuhlmann 675394d25f Updated screen creator to use new screen savers
Necessary to leverage the new aspects and also move this object within the aspects namespace as well.

Milestone: minor
2025-07-29 13:58:30 -06:00
Brooke Kuhlmann a8bc908639 Updated preprocessed screen saver as aspect
Necessary to modify the original implementation by ensuring images are attached to screens instead of stored in the public folder.

_This is a breaking change_ that will require the Screens API create action to be updated shortly.

Milestone: minor
2025-07-29 13:58:30 -06:00
Brooke Kuhlmann f5c39ac18a Updated unprocessed screen saver as aspect
Necessary to modify the original implementation by ensuring images are attached to screens instead of stored in the public folder.

_This is a breaking change_ that will require the Screens API create action to be updated shortly.

Milestone: minor
2025-07-29 13:58:30 -06:00