Commit Graph

54 Commits

Author SHA1 Message Date
5d1b0517a5 chore(changelog): update unreleased changelog 2025-05-10 15:51:08 +00:00
6ce73c14fa docs(release): update guidelines for handling changelog
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 4s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 8s
Test http-kernel / Run Tests (pull_request) Successful in 14s
- Add instructions to avoid merge conflicts in `CHANGELOG.md`
- Provide steps for using `.gitattributes` to automate conflict resolution
- Clarify recommended workflows for feature branches and merging
2025-05-10 17:50:05 +02:00
0aac2337a0 chore(changelog): update unreleased changelog 2025-05-10 15:42:59 +00:00
2ab6f1b8db feat(workflows): conditionally generate changelog
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 4s
Auto Changelog & Release / release (push) Has been skipped
Test http-kernel / Run Tests (pull_request) Successful in 12s
Auto Changelog & Release / changelog-only (push) Successful in 13s
- Add logic to generate changelog only if the file exists or on the main branch
- Prevent unnecessary changelog generation in other contexts
2025-05-10 17:42:19 +02:00
b69a51247d chore(changelog): update unreleased changelog 2025-05-10 15:28:39 +00:00
2ab74b9859 chore(changelog): update unreleased changelog
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 5s
Auto Changelog & Release / release (push) Has been skipped
Test http-kernel / Run Tests (pull_request) Successful in 14s
Auto Changelog & Release / changelog-only (push) Successful in 9s
2025-05-10 17:28:21 +02:00
d04dfcd63e chore(git): ignore merge conflicts for CHANGELOG.md 2025-05-10 17:27:55 +02:00
32f3fe5f52 chore(changelog): update unreleased changelog 2025-05-10 15:01:16 +00:00
abd2d6e840 fix(workflows): ensure version detection output is always set
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 4s
Auto Changelog & Release / release (push) Has been skipped
Test http-kernel / Run Tests (pull_request) Successful in 13s
Auto Changelog & Release / changelog-only (push) Successful in 10s
- Move VERSION file change detection behind a branch guard (main only)
- Use a fallback in the output step to ensure 'version_changed' is always defined
- Prevent job skipping and output access errors in feature branches
2025-05-10 16:59:53 +02:00
927a9081d4 feat(interfaces): add pipeline executor interface
All checks were successful
Auto Changelog & Release / detect-version-change (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Has been skipped
Auto Changelog & Release / release (push) Has been skipped
Test http-kernel / Run Tests (pull_request) Successful in 13s
- Introduce `IPipelineExecutor` to define pipeline execution
- Add `PipelineExecutorFactory` for instantiating pipeline executors
- Export new types in the interfaces module for external use
2025-05-10 16:50:41 +02:00
8f94cc915c chore(workflows): refine branch handling in release process
All checks were successful
Test http-kernel / Run Tests (pull_request) Successful in 16s
Auto Changelog & Release / detect-version-change (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Has been skipped
Auto Changelog & Release / release (push) Has been skipped
- Adjusts workflow to support pushes from all branches
- Ensures main branch-specific conditions for version detection
- Modifies changelog and release steps for non-main branch handling
2025-05-10 16:34:19 +02:00
3f114bb68d feat(pipeline): add configuration and hooks for pipeline execution
- Introduce `IPipelineExecutorConfig` to enable customizable pipeline behavior
- Add `IPipelineHooks` interface for tracing and monitoring lifecycle events
- Define callback types for pipeline start, step execution, and completion
- Export new types and interfaces for broader integration within the system
2025-05-10 16:21:16 +02:00
0846dbb758 docs(pipeline): add design plan for PipelineExecutor class
All checks were successful
Test http-kernel / Run Tests (pull_request) Successful in 10s
- Introduce a detailed plan for the PipelineExecutor class
- Describe its purpose, interface, hooks, and internal workflow
- Highlight advantages such as decoupling, testability, and extensibility
- Will be removed before merge
2025-05-08 22:05:30 +02:00
b624415320 chore(changelog): update unreleased changelog 2025-05-08 18:19:58 +00:00
a88b4d112f chore(workflows): update changelog file extension to .md and revert b9d25f23fc
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 5s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 5s
2025-05-08 20:19:43 +02:00
4f2b65049f chore: rename changelog and readme files to use .md extension 2025-05-08 20:19:43 +02:00
c9de4669c7 chore(changelog): update unreleased changelog 2025-05-08 18:16:14 +00:00
a1ce30627c docs: add README for HttpKernel project
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 3s
Auto Changelog & Release / changelog-only (push) Successful in 7s
Auto Changelog & Release / release (push) Has been skipped
- Introduce HttpKernel with an overview of its purpose and features
- Provide a quick start guide and API reference for developers
- Include testing instructions, configuration options, and roadmap
- Add license information for clarity and compliance
2025-05-08 20:15:58 +02:00
5118a19aea docs: add MIT license file 2025-05-08 20:15:48 +02:00
0a09c8c324 chore(changelog): update unreleased changelog 2025-05-08 18:09:16 +00:00
b9d25f23fc refactor(workflows): rename changelog file for consistency
All checks were successful
Test http-kernel / Run Tests (pull_request) Successful in 10s
Auto Changelog & Release / detect-version-change (push) Successful in 7s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 12s
- Rename `CHANGELOG.md` to `CHANGELOG` in workflows
- Update related commands and references for consistency
2025-05-08 19:49:24 +02:00
92f09e6e60 Merge pull request 'chore(workflows): update test workflow for http-kernel project' (#1) from fix/test-workflow into main
Some checks failed
Auto Changelog & Release / detect-version-change (push) Successful in 3s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Failing after 10s
Reviewed-on: #1
2025-05-08 19:46:00 +02:00
03115464e0 chore(workflows): update test workflow for http-kernel project
All checks were successful
Test http-kernel / Run Tests (pull_request) Successful in 10s
- Rename workflow and job to align with the http-kernel project
- Improve clarity and maintain consistency in workflow naming
2025-05-08 19:38:49 +02:00
11a2273240 chore(changelog): update unreleased changelog 2025-05-08 17:35:37 +00:00
1233a0b720 chore(workflows): update Deno setup action to v2
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 6s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 10s
- Updates the Deno setup action to the latest major version (v2)
- Ensures compatibility and benefits from improvements in the new version
2025-05-08 19:35:11 +02:00
195619ca99 chore(changelog): update unreleased changelog 2025-05-08 17:33:23 +00:00
9d5db4f414 feat(workflows): add CI for Deno project tests
Some checks are pending
Auto Changelog & Release / release (push) Blocked by required conditions
Auto Changelog & Release / detect-version-change (push) Successful in 5s
Auto Changelog & Release / changelog-only (push) Successful in 18s
- Introduce a GitHub Actions workflow to run tests for the Deno project
- Configure workflow to trigger on pull requests across all branches
- Include steps for repository checkout, Deno setup, and test execution
2025-05-08 19:32:51 +02:00
16c0053964 chore(workflows): remove unused workflow_dispatch trigger
- Eliminates the workflow_dispatch trigger from the release workflow
  as it is no longer required, simplifying the configuration.
2025-05-08 19:32:42 +02:00
04029f87a3 chore(tasks): remove commented-out start and watch scripts
- Cleans up unused task definitions for better maintainability
- Reduces clutter in the task configuration
2025-05-08 19:32:34 +02:00
594eccbc8b chore(changelog): update changelog for v0.1.0 v0.1.0 2025-05-08 17:07:19 +00:00
3afe6bcbc3 chore(version): add initial version file
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 10s
Auto Changelog & Release / changelog-only (push) Has been skipped
Auto Changelog & Release / release (push) Successful in 2m21s
- Introduces a version file to track the project's version
- Sets the initial version to 0.1.0
2025-05-08 19:03:42 +02:00
bbf78cff17 feat(workflows): add automated changelog and release workflow
- Introduces a GitHub Actions workflow for automated changelog generation
  and release creation triggered by version changes or manual dispatch.
- Includes steps for detecting version file changes, generating changelogs
  using git-cliff, and publishing releases to Gitea.
2025-05-08 19:03:30 +02:00
8235680904 refactor(types): unify handler and middleware definitions
- Consolidates `Handler` and `Middleware` types under `Types` module
- Replaces `IHandler` and `IMiddleware` interfaces with typed functions
- Simplifies imports and improves code organization
- Enhances debugging with named handlers and middlewares
2025-05-08 19:03:18 +02:00
56633cd95b feat(vscode): customize activity bar and peacock colors
- Add custom colors for the activity bar to enhance UI aesthetics
- Set Peacock extension color for consistent workspace theming
2025-05-08 19:02:24 +02:00
5c03cdfb03 docs(gitea): add release automation guide and scripts
- Document automated release process with versioning and changelog generation
- Add scripts for retrieving release IDs and uploading assets to releases
- Provide best practices and debugging tips for maintaining consistency
2025-05-08 19:02:14 +02:00
661f83d1fd chore(config): add default git-cliff configuration
- Introduces a default configuration file for git-cliff
- Enables changelog generation with templates and commit parsing
- Configures commit grouping, tag patterns, and remote repository details
2025-05-08 19:01:55 +02:00
7b6eb2b574 feat(workflows): add upload assets template for releases
- Introduces a workflow to automate uploading release assets
- Triggers on published releases and uses custom scripts
- Enhances release management by linking artifacts to releases
2025-05-08 19:01:37 +02:00
f0838567b4 chore(gitignore): add .gitea/COMMIT_GPT.md to ignored files
- Adds .gitea/COMMIT_GPT.md to the .gitignore file to exclude it from version control.
2025-05-08 19:01:27 +02:00
b009b5763d feat(config): add project metadata and test watch task
- Introduce name and description fields for project metadata
- Add a test:watch task for running tests in watch mode
- Improve configuration clarity by adjusting formatting
2025-05-08 19:01:03 +02:00
b0c6901d7d fix(params): enforce non-undefined route parameter values
- Update `Params` type to disallow `undefined` values for clarity.
- Default route parameter values to empty strings if `null` or `undefined`.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 19:40:08 +02:00
6c4420d32f docs(httpkernel): enhance class and interface documentation
- Improve JSDoc comments for `HttpKernel` and `IHttpKernel` to clarify
  purpose, usage, and type parameters.
- Add detailed descriptions for methods, parameters, and generics.
- Refine explanations of middleware pipeline, error handling, and
  contextual typing.
- Enhance readability and consistency in public API documentation.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 16:45:37 +02:00
b7410b44dd refactor(core): enhance HttpKernel pipeline and matcher system with full context and error handling
BREAKING CHANGE: `parseQuery` utility removed; `IRouteMatcher` now includes query parsing; `RouteBuilder.middleware` and `handle` are now strictly typed per builder instance.

- Add `isHandler` and `isMiddleware` runtime type guards for validation in `HttpKernel`.
- Introduce `createEmptyContext` for constructing default context objects.
- Support custom HTTP error handlers (`404`, `500`) via `IHttpKernelConfig.httpErrorHandlers`.
- Default error handlers return meaningful HTTP status text (e.g., "Not Found").
- Replace legacy `parseQuery` logic with integrated query extraction via `createRouteMatcher`.

- Strongly type `RouteBuilder.middleware()` and `.handle()` methods without generic overrides.
- Simplify `HttpKernel.handle()` and `executePipeline()` through precise control flow and validation.
- Remove deprecated `registerRoute.ts` and `HttpKernelConfig.ts` in favor of colocated type exports.

- Add tests for integrated query parsing in `createRouteMatcher`.
- Improve error handling tests: middleware/handler validation, double `next()` call, thrown exceptions.
- Replace `assertRejects` with plain response code checks (via updated error handling).

- Removed `parseQuery.ts` and all related tests — query parsing is now built into route matching.
- `IRouteMatcher` signature changed to return `{ params, query }` instead of only `params`.
- `HttpKernelConfig` now uses `DeepPartial` and includes `httpErrorHandlers`.
- `RouteBuilder`'s generics are simplified for better DX and improved type safety.

This refactor improves clarity, test coverage, and runtime safety of the request lifecycle while reducing boilerplate and eliminating duplicated query handling logic.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 16:45:10 +02:00
9059bdda62 refactor(httpkernel): introduce configuration object for flexibility
- Replace individual constructor arguments with a configuration object.
- Add IHttpKernelConfig interface to standardize configuration structure.
- Refactor route builder and response decorator usage to use config.
- Simplify code and improve extensibility by consolidating parameters.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 13:56:56 +02:00
0990cacb22 chore(settings): add exportall configuration for barrel name and message
Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 13:56:39 +02:00
fd1c7f4170 chore(.gitignore): add git_log_diff.txt to ignore list
Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 12:42:16 +02:00
ba7aa79f56 feat(http): add error handling for invalid HTTP methods
- Introduce `InvalidHttpMethodError` for unrecognized HTTP methods.
- Enhance type safety in `HttpKernel` by using generic contexts.
- Update `ResponseDecorator` to accept context for enriched responses.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 12:35:41 +02:00
a236fa7c97 feat(http): enhance type safety and extend route context
- Refactor HttpKernel and related interfaces to support generic contexts.
- Add typed query parameters, route params, and state to IContext.
- Introduce HttpMethod type for stricter HTTP method validation.
- Update RouteBuilder and middleware to handle generic contexts.
- Improve test cases to verify compatibility with new types.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 12:29:49 +02:00
82a6877485 test(utils): rename and update import paths in test file
- Rename test file for better alignment with its purpose.
- Update relative import paths to reflect the new file location.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 12:29:10 +02:00
94525fce52 test(utils): add unit tests for parseQuery function
- Introduce comprehensive tests for the parseQuery utility.
- Validate handling of single and multi-value query parameters.
- Ensure empty query strings return an empty object.
- Confirm repeated keys are grouped into arrays.

Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 12:28:51 +02:00
cc734fa7b1 Update settings.json to include folderListener configuration for exportall
Signed-off-by: Max P. <Mail@MPassarello.de>
2025-05-07 12:28:09 +02:00