# Git history cleanup

Commit: ed652d2e2763cb186a41132db7a2ce697422b461
Date: 2025-09-03 15:28:42 +0200
Author: PascalHavelange

Commit Message

# Git history cleanup

- Cumulative dependency updates
- Action for self-hosted runner deployment
- Fixes to Node.js' Context* pages and tests
- Refactored Github Copilot instruction files

# Details:

commit ce9059e3952d0e9725ad2aa3cc680901944fa18c
Author: Pascal HAVELANGE <havelangep@hotmail.com>
Date:   Wed Sep 3 13:22:11 2025 +0200

    update to copilot instructions

commit 354e143dd358b2c04f8e8347562f535d034c5647
Author: Pascal HAVELANGE <havelangep@hotmail.com>
Date:   Wed Sep 3 13:20:02 2025 +0200

    fix(ci): ensure clean checkout in deploy-mwnf-svr workflow

commit 08ad8ddd76b80682641888741ae8b79e061b2876
Author: PascalHavelange <havelangep@gmail.com>
Date:   Wed Sep 3 13:11:09 2025 +0200

    Squash: Group GitHub Actions and Dependabot commits (#291)

    * Chore(deps): Bump intervention/image from 3.11.3 to 3.11.4 (#241)

    Bumps [intervention/image](https://github.com/Intervention/image) from 3.11.3 to 3.11.4.
    - [Release notes](https://github.com/Intervention/image/releases)
    - [Commits](https://github.com/Intervention/image/compare/3.11.3...3.11.4)

    ---
    updated-dependencies:
    - dependency-name: intervention/image
      dependency-version: 3.11.4
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps-dev): Bump @vitejs/plugin-vue from 6.0.0 to 6.0.1 (#245)

    Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 6.0.0 to 6.0.1.
    - [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
    - [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.1/packages/plugin-vue)

    ---
    updated-dependencies:
    - dependency-name: "@vitejs/plugin-vue"
      dependency-version: 6.0.1
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps-dev): Bump @types/form-data from 2.2.1 to 2.5.2 (#246)

    Bumps [@types/form-data](https://github.com/DefinitelyTyped/DefinitelyTyped) from 2.2.1 to 2.5.2.
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

    ---
    updated-dependencies:
    - dependency-name: "@types/form-data"
      dependency-version: 2.5.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps): Bump actions/checkout from 4 to 5 (#248)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/actions/checkout/compare/v4...v5)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-version: '5'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps-dev): Bump eslint-plugin-vue from 10.3.0 to 10.4.0 (#247)

    Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.3.0 to 10.4.0.
    - [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
    - [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.3.0...v10.4.0)

    ---
    updated-dependencies:
    - dependency-name: eslint-plugin-vue
      dependency-version: 10.4.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps): Bump dedoc/scramble from 0.12.26 to 0.12.31 (#253)

    Bumps [dedoc/scramble](https://github.com/dedoc/scramble) from 0.12.26 to 0.12.31.
    - [Release notes](https://github.com/dedoc/scramble/releases)
    - [Commits](https://github.com/dedoc/scramble/compare/v0.12.26...v0.12.31)

    ---
    updated-dependencies:
    - dependency-name: dedoc/scramble
      dependency-version: 0.12.31
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps): Bump actions/upload-pages-artifact from 3 to 4 (#252)

    Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
    - [Release notes](https://github.com/actions/upload-pages-artifact/releases)
    - [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-pages-artifact
      dependency-version: '4'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps-dev): Bump typescript from 5.8.3 to 5.9.2 (#243)

    Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3 to 5.9.2.
    - [Release notes](https://github.com/microsoft/TypeScript/releases)
    - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
    - [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)

    ---
    updated-dependencies:
    - dependency-name: typescript
      dependency-version: 5.9.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

    Clean dependency and style update (September 2025) (#256)

    * Revert "Chore(deps-dev): Bump typescript from 5.8.3 to 5.9.2 (#243)"

    This reverts commit 9b6b613c49011b8669d279446bf12059e3ab2c03.

    * Revert "Chore(deps): Bump actions/upload-pages-artifact from 3 to 4 (#252)"

    This reverts commit 15b6ce68b19f2e43880286697d78acc670a37381.

    * Revert "Chore(deps): Bump dedoc/scramble from 0.12.26 to 0.12.31 (#253)"

    This reverts commit 76642855bb1be7dbddf761e8b8be7160da493eb4.

    * Revert "Chore(deps-dev): Bump eslint-plugin-vue from 10.3.0 to 10.4.0 (#247)"

    This reverts commit 001c9c145e7ff1a5b73d7678e971b90d34737b54.

    * Revert "Chore(deps): Bump actions/checkout from 4 to 5 (#248)"

    This reverts commit 007f797270b618d84646ede5f0e600df4420313b.

    * Revert "Chore(deps-dev): Bump @types/form-data from 2.2.1 to 2.5.2 (#246)"

    This reverts commit c66104b0be34741d6cfa411bb2fa9f3be4e324d6.

    * Revert "Chore(deps-dev): Bump @vitejs/plugin-vue from 6.0.0 to 6.0.1 (#245)"

    This reverts commit 2b09b43a652b9d426189c3560e1e9b56768ff40c.

    * Revert "Chore(deps): Bump intervention/image from 3.11.3 to 3.11.4 (#241)"

    This reverts commit 21b272127cd34b74dc79f136ea16498eb3b7bcee.

    * chore(deps): update dependencies September 2025

    Updates PHP and JavaScript dependencies to their latest compatible versions:

    PHP Packages:
    - intervention/image: 3.11.3 → 3.11.4
    - dedoc/scramble: 0.12.26 → 0.12.31
    - laravel/sail: 1.44.0 → 1.45.0
    - Multiple Symfony components updated as dependencies

    JavaScript Packages:
    - TypeScript ecosystem:
      - @types/node: 24.1.0 → 24.3.0
      - @typescript-eslint/eslint-plugin: 8.38.0 → 8.41.0
      - @typescript-eslint/parser: 8.38.0 → 8.41.0
    - Linting tools:
      - eslint: 9.31.0 → 9.34.0
      - eslint-plugin-prettier: 5.5.3 → 5.5.4
      - eslint-plugin-vue: 10.3.0 → 10.4.0
      - stylelint: 16.22.0 → 16.23.1
    - Build tools:
      - vite: 7.0.4 → 7.1.3
      - laravel-vite-plugin: 2.0.0 → 2.0.1
      - @vueuse/core: 13.5.0 → 13.8.0

    All updates have been tested:
    - PHP tests pass successfully
    - JavaScript builds without errors
    - Linting checks pass
    - No security vulnerabilities found

    (cherry picked from commit a3d0540c32b7291da796dd9d6332efa83b107196)

    * chore(deps): update PHP testing packages

    Updates PHP testing-related packages to their latest patch versions:

    - pestphp/pest: 3.8.2 → 3.8.4
    - brianium/paratest: 7.8.3 → 7.8.4
    - fidry/cpu-core-counter: 1.2.0 → 1.3.0
    - filp/whoops: 2.18.3 → 2.18.4
    - phpunit/php-code-coverage: 11.0.10 → 11.0.11
    - phpunit/phpunit: 11.5.15 → 11.5.33
    - sebastian/comparator: 6.3.1 → 6.3.2
    - sebastian/recursion-context: 6.0.2 → 6.0.3
    - sebastian/type: 5.1.2 → 5.1.3
    - phpdocumentor/reflection-docblock: 5.6.2 → 5.6.3

    All tests pass successfully after updates.

    (cherry picked from commit df7cdbe01fcce1a5b07477f1c3a9f22e522cb571)

    * chore(deps): update @vue/tsconfig to 0.8.1

    Updates @vue/tsconfig to version 0.8.1 and fixes TypeScript errors due to stricter type checking:

    - Fixed potential undefined value in auth store token extraction
    - Fixed potential undefined launch_date in ProjectDetail view

    All type checks and tests pass successfully.

    (cherry picked from commit 6c7934b80bc43c9cd2c1d9776ee4ab9a8d11a316)

    * chore(deps): update TypeScript to 5.9.2

    Updates TypeScript to version 5.9.2 and improves configuration:
    - Updates TypeScript to 5.9.2
    - Updates tsconfig.json to target ES2022
    - Updates lib to include ES2022 features
    - Verifies type safety across the codebase
    - All type checks and tests pass successfully

    (cherry picked from commit 8618fca581928b3161be26b1c221569d901de183)

    * Removed left over temp file

    (cherry picked from commit 958d66c79a35c8b5b3c16624939c74ecd0f1ba3a)

    * chore(deps): update stylelint-config-standard to 39.0.0

    Updates stylelint-config-standard to version 39.0.0 and improves configuration:
    - Updates stylelint-config-standard to 39.0.0
    - Adds proper support for Tailwind CSS directives
    - Configures rules for modern CSS practices
    - Disables unnecessary quote requirements for imports and font families
    - All CSS files pass linting and build successfully

    (cherry picked from commit c8ee310850b0a10df4bdd495a7ff624107f1d2f1)

    * refactor(css): improve CSS organization

    Improves the CSS architecture by:
    - Creating a shared styles file for common styles
    - Removing duplicate Tailwind directives
    - Using proper import order
    - Separating application-specific styles
    - Following CSS best practices with proper layering

    This refactoring:
    1. Creates resources/css/shared.css for shared styles
    2. Updates app.css to import shared styles directly
    3. Updates style.css to import shared styles directly
    4. Removes the circular dependency between CSS files
    5. Improves maintainability and reduces CSS bundle size

    (cherry picked from commit 58f5ff24df35fd74c21fadf6990f98cb13899d99)

    * # Update to Tailwind CSS v4

    - Updated Tailwind CSS from v3 to v4.1.12
    - Updated @tailwindcss/postcss plugin
    - Updated PostCSS configuration for Tailwind v4
    - Migrated CSS imports from `@tailwind` directives to `@import "tailwindcss"`
    - Fixed build process to work with new Tailwind v4 syntax

    - tailwindcss: ^3.4.16 → ^4.1.12
    - @tailwindcss/postcss: new dependency for v4

    - package.json & package-lock.json: Updated dependencies
    - postcss.config.js: Updated for Tailwind v4
    - tailwind.config.js: Updated configuration format
    - resources/css/app.css: Changed to `@import "tailwindcss"`
    - resources/js/style.css: Changed to `@import "tailwindcss"`

    - ✅ npm run build passes
    - ✅ CSS compilation works correctly
    - ✅ Tailwind utilities function properly

    (cherry picked from commit 420c41e7d58743602675cfadd628f4d51159a35e)

    * # Fix login button visibility after Tailwind v4 update

    - Login button was invisible (white on white) due to missing primary colors
    - Tailwind CSS v4 doesn't include 'primary' colors by default

    - Added primary color definitions using @theme directive in shared.css
    - Defined primary color scale (50-950) based on Tailwind's sky color palette
    - Used proper OKLCH color format as required by Tailwind v4

    - resources/css/shared.css: Added @theme block with --color-primary-* definitions

    - ✅ npm run build passes
    - ✅ Primary color utilities (bg-primary-600, hover:bg-primary-700, etc.) now generated
    - ✅ Login button should now be visible with proper styling

    (cherry picked from commit 24ba83c4e0bc93f2f7ff0cf3a8fd4b13f40b41f8)

    * # Update npm dependency: autoprefixer to 10.4.21

    - Updated autoprefixer from 10.4.19 to 10.4.21
    - Ran npm audit: 0 vulnerabilities found
    - All npm dependencies are now up to date

    (cherry picked from commit 11f7905df06870dacd74059d93847ea3b0328f58)

    ---------

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Update dependabot.yml to group PRs by dependency type (#262)

    This commit updates `.github/dependabot.yml` to enable grouping of Dependabot pull requests for Composer, npm, and GitHub Actions dependencies. The new configuration introduces the following improvements:

    - **Composer**: Adds `groups` for `laravel-dev-dependencies` and `laravel-prod-dependencies`, grouping PRs by development and production dependencies.
    - **npm**: Adds `groups` for `node-dev-dependencies` and `node-prod-dependencies`, grouping PRs by development and production dependencies.
    - **GitHub Actions**: Adds a `github-actions-dependencies` group to combine all workflow dependency updates into a single PR.

    **Benefits:**
    - Reduces PR noise by consolidating related updates.
    - Makes it easier to review and merge dependency updates in logical batches.
    - Aligns with best practices for dependency management in multi-ecosystem projects.

    No other changes were made. See the updated `.github/dependabot.yml` for details.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Enable auto-approval and auto-merge for Dependabot minor updates (#263)

    This commit updates `.github/workflows/dependabot-auto-merge.yml` to streamline the handling of Dependabot pull requests for dependency updates. The new workflow now:

    - **Automatically approves** all Dependabot PRs that are not major version updates (i.e., minor and patch updates).
    - **Enables auto-merge** for these PRs, reducing manual intervention for safe dependency updates.
    - Uses the `gh pr review --approve` command for approval and auto-merge steps, ensuring compatibility and reliability.
    - Refactors job and step names for clarity and maintainability.

    **Benefits:**
    - Reduces maintenance overhead by automating safe dependency updates.
    - Ensures that only non-breaking (minor/patch) updates are auto-approved and merged.
    - Aligns with best practices for secure and efficient dependency management in CI/CD pipelines.

    No other workflow changes are included. See the updated `.github/workflows/dependabot-auto-merge.yml` for details.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Chore(deps): Bump actions/upload-pages-artifact from 3 to 4 (#258)

    Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
    - [Release notes](https://github.com/actions/upload-pages-artifact/releases)
    - [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-pages-artifact
      dependency-version: '4'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps): Bump actions/checkout from 4 to 5 (#257)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/actions/checkout/compare/v4...v5)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-version: '5'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Chore(deps): Bump @vueuse/core from 13.8.0 to 13.9.0 (#259)

    Bumps [@vueuse/core](https://github.com/vueuse/vueuse/tree/HEAD/packages/core) from 13.8.0 to 13.9.0.
    - [Release notes](https://github.com/vueuse/vueuse/releases)
    - [Commits](https://github.com/vueuse/vueuse/commits/v13.9.0/packages/core)

    ---
    updated-dependencies:
    - dependency-name: "@vueuse/core"
      dependency-version: 13.9.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    Update Copilot instructions to align with project specifics and tighten CI checks (#264)

    - Clarify lint/test guidance: prefer vendor Pint; artisan/test standard.
    - Fix DB environment wording; reduce duplication.
    - Correct identifiers: Language uses ISO 639-3; remove non-existent HasSeeder.
    - Enforce Form Request validation; add Sanctum auth in tests.
    - State no soft deletes; add UUID model flags (=false, ='string').
    - Improve WSL/Jekyll instruction with exact bash -lc example.
    - Standardize PR preflight order; refer to ci-lint:test.
    - Raise npm audit threshold to --audit-level high to reduce noise.

    No code behavior changes; documentation/script clarity only.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Chore(deps-dev): Bump vite from 7.1.3 to 7.1.4 (#260)

    Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.3 to 7.1.4.
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v7.1.4/packages/vite)

    ---
    updated-dependencies:
    - dependency-name: vite
      dependency-version: 7.1.4
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

    Chore(deps-dev): Bump @types/form-data from 2.2.1 to 2.5.2 (#261)

    Bumps [@types/form-data](https://github.com/DefinitelyTyped/DefinitelyTyped) from 2.2.1 to 2.5.2.
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

    ---
    updated-dependencies:
    - dependency-name: "@types/form-data"
      dependency-version: 2.5.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

    Add deploy-mwnf-svr GitHub Action workflow (#265)

    - Introduced `.github/workflows/deploy-mwnf-svr.yml` to enable deployment on a self-hosted runner in the `mwnf-svr` environment.
    - This workflow is designed for Windows-based self-hosted runners and supports deployment automation for the mwnf-svr environment.
    - Ensures compliance with repository CI/CD and deployment standards.
    - No changes to application code or configuration files.
    - This addition does not affect existing workflows or environments.

    ---

    **Why:**
    - Enables automated deployment to the mwnf-svr environment using GitHub Actions.
    - Supports infrastructure-as-code and repeatable deployment processes.
    - Aligns with best practices for environment-specific deployment automation.

    **Impact:**
    - New workflow available for mwnf-svr deployments.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix deploy-mwnf-svr workflow: Use correct shell for GitHub Actions (#266)

    * ## Add deploy-mwnf-svr GitHub Action workflow

    - Introduced `.github/workflows/deploy-mwnf-svr.yml` to enable deployment on a self-hosted runner in the `mwnf-svr` environment.
    - This workflow is designed for Windows-based self-hosted runners and supports deployment automation for the mwnf-svr environment.
    - Ensures compliance with repository CI/CD and deployment standards.
    - No changes to application code or configuration files.
    - This addition does not affect existing workflows or environments.

    ---

    **Why:**
    - Enables automated deployment to the mwnf-svr environment using GitHub Actions.
    - Supports infrastructure-as-code and repeatable deployment processes.
    - Aligns with best practices for environment-specific deployment automation.

    **Impact:**
    - New workflow available for mwnf-svr deployments.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    * ## Fix deploy-mwnf-svr workflow: Use correct shell for GitHub Actions

    - Updated `.github/workflows/deploy-mwnf-svr.yml` to use the correct shell for script execution.
    - Replaced `pwsh` with the appropriate shell, as `pwsh` is not recognized by GitHub Actions runners.
    - Ensures compatibility and successful execution of deployment steps on self-hosted and GitHub-hosted runners.
    - No changes to application code or configuration files.
    - This update only affects the deployment workflow for the `mwnf-svr` environment.

    ---

    **Why:**
    - Fixes workflow execution errors due to unrecognized shell.
    - Aligns with GitHub Actions best practices for cross-platform compatibility.

    **Impact:**
    - Deployment workflow for `mwnf-svr` now runs reliably on supported runners.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    ---------

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix PowerShell environment variable reference in deploy-mwnf-svr workflow (#267)

    - Updated `.github/workflows/deploy-mwnf-svr.yml` to use `${env:$_}` for required environment variable check.
    - Ensures compatibility and error-free deployment automation on Windows self-hosted runners.
    - No changes to application code or configuration files.
    - This update only affects the deployment workflow for the `mwnf-svr` environment.

    ---

    **Why:**
    - Fixes workflow execution errors due to incorrect PowerShell environment variable reference.
    - Aligns with PowerShell and GitHub Actions best practices.

    **Impact:**
    - Deployment workflow for `mwnf-svr` is now robust and reliable.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix: MWNF-SVR env detection and don't override env vars (#268)

    Fix: keep MWNF-SVR Environment variables and use .NET env detection in PowerShell step

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    fix: resolve GitHub Actions environment variable access issues (#270)

    - Fix environment variable access in MWNF-SVR deployment workflow
    - Replace system environment variable checks with proper GitHub vars/secrets mapping
    - Add job-level environment variable mapping for all required paths
    - Update npm commands to use configured NPM_PATH environment variable
    - Add database secrets (MARIADB_DATABASE, MARIADB_USER, MARIADB_SECRET) to environment
    - Improve variable validation step to display all configured values

    The workflow now properly accesses environment variables and secrets
    configured in the GitHub MWNF-SVR environment instead of trying to
    access system environment variables that don't exist in the runner.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    fix: use .env.example template and configurable Apache service user in deployment workflow (#271)

    - .env file is now generated from .env.example with variable substitution
    - File permissions set for configurable Apache service user (defaults to SYSTEM)
    - Improves maintainability and compatibility for Apache on Windows
    - No hardcoded .env content in pipeline
    - All configuration comes from GitHub environment variables and secrets

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    fix: latest update to MWNF-SVR deployment workflow (#272)

    - Updated deployment workflow with latest changes
    - All configuration and improvements as per recent edits
    - Ready for admin merge

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    fix: remove dev-level commands from MWNF-SVR deployment workflow (#273)

    - Removed all commands that require dev dependencies (e.g., phpunit, artisan test)
    - Pipeline now only uses production dependencies
    - Ready for admin merge

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    CI/CD pipeline and template config update (#274)

    - Added `.env.local.example` for local development and CI/CD reference (force-added, not gitignored)
    - Updated `.env.example` for production/CI needs
    - Added `TestMailInfrastructure` artisan command for email infrastructure testing
    - Registered new command in `Console\Kernel`
    - Updated `deploy-mwnf-svr.yml` workflow for latest pipeline changes

    ---
    **Admin merge requested due to infrastructure changes.**

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    User creation command & migration fixes (#275)

    - Added new artisan command to create users with random secure passwords
    - Fixed migration files for foreign key constraints, table existence, and rollback issues
    - Ensured migrations run in correct order and are robust for production/CI/CD

    ---
    **Admin auto-merge requested due to infrastructure and schema changes.**

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Vite build output directory for Laravel (#276)

    - Set `outDir: 'public/build'` in `vite.config.js` to ensure manifest and assets are generated in the correct location for Laravel production.
    - Resolves issue with manifest paths referencing CI workspace instead of project-relative paths.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Use robocopy for promoting staging to production (#277)

    - Replaced Move-Item with robocopy in the deployment workflow for the staging-to-production promotion step.
    - This ensures robust directory copy and overwrite behavior, avoiding issues when the target directory already exists.
    - No changes to environment variable handling or other deployment steps.

    ---
    Auto-merge requested as admin for this PR.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Robocopy deployment step (#278)

    - Updated the deployment workflow to use Robocopy with /COPY:DAT instead of /COPYALL, resolving auditing rights error on Windows.
    - Ensures compatibility with standard Windows permissions for production deployments.

    ---

    Admin will merge this PR directly for this deployment.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Robocopy deployment and Laravel pipeline (#279)

    - Updated `.github/workflows/deploy-mwnf-svr.yml` to treat Robocopy exit codes 0, 1, and 2 as success, preventing false errors in CI/CD.
    - Updated `.github/workflows/laravel.yml` to use `.env.local.example` for environment setup and validation, improving pipeline reliability.

    These changes ensure robust deployment and validation for Windows-based Laravel environments.

    Admin will merge this PR directly for this deployment.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    fix: vite manifest uses project-relative paths for deployment (#280)

    fix: ensure vite manifest uses project-relative paths for deployment compatibility

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    fix: linting issues and vite manifest relative paths (#281)

    fix: linting issues and ensure vite manifest uses project-relative paths\n\n- Fixed linting issues in PHP and CSS/JS files\n- Updated vite.config.js to ensure manifest uses project-relative paths for deployment compatibility

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Vite manifest output directory for Laravel compatibility (#282)

    Fixing vite config.js

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Vite manifest paths in CI environment (#283)

    Fix absolute paths appearing in Vite manifest.json during GitHub Actions builds by explicitly setting root and base configuration options.

    - Added explicit `root: './'` to ensure consistent working directory resolution
    - Added `base: './'` to force relative paths for assets
    - This prevents the CI environment from generating absolute paths like `../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css`
    - Local build continues to work correctly with relative paths like `resources/css/app.css`

    - ✅ Local build generates correct relative paths
    - ✅ Tests pass
    - ⏳ CI environment testing pending

    Fixes issue where manifest.json contained absolute paths in GitHub Actions environment while working correctly locally.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Improve deployment robustness with consistent robocopy usage (#284)

    Replace Move-Item with robocopy for moving current production to old directory, ensuring consistent and robust file operations throughout the deployment process.

    - Created local PowerShell function `Invoke-RobocopyMirror` to eliminate code duplication
    - Both "move production to old" and "copy staging to production" operations now use robocopy
    - Proper exit code handling for all robocopy operations (exit codes 0-2 are success)
    - Consistent logging with timestamped log files for troubleshooting
    - More robust handling of large directories and locked files

    - **Consistency**: All file operations use the same robust mechanism
    - **Reliability**: robocopy handles locked files and permissions better than Move-Item
    - **Maintainability**: Single function reduces code duplication
    - **Troubleshooting**: Comprehensive logging for all operations
    - **Performance**: More efficient for large directory operations

    - Deployment workflow logic verified
    - Error handling maintains proper exit codes
    - Log files generated with descriptive names

    This change ensures the deployment process is more reliable and consistent across all file operations.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Vite manifest paths in CI with custom normalization plugin (#285)

    Add a custom Vite plugin to normalize manifest.json paths, ensuring consistent relative paths regardless of build environment.

    In GitHub Actions CI environment, the manifest.json was generating absolute paths:
    ```json
    {
      "../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css": {
        "file": "assets/app-YzGMk8if.css",
        "src": "../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css"
      }
    }
    ```

    Implemented a custom Vite plugin `normalize-manifest-paths` that:
    - Hooks into the `generateBundle` phase
    - Processes the manifest.json after generation
    - Normalizes all paths using regex to strip absolute path prefixes
    - Ensures consistent `resources/` relative paths for both keys and `src` values

    Manifest now consistently shows relative paths in all environments:
    ```json
    {
      "resources/css/app.css": {
        "file": "assets/app-YzGMk8if.css",
        "src": "resources/css/app.css"
      }
    }
    ```

    - ✅ Local build generates correct relative paths
    - ✅ Build completes successfully
    - ⏳ CI environment testing via this PR

    This fix ensures Laravel's asset helper functions work correctly regardless of build environment.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix Vite manifest path normalization in CI/CD pipeline (#286)

    The Vite manifest.json file was generating absolute paths in the GitHub Actions pipeline instead of relative paths, causing issues with asset loading. The paths included the full runner directory structure like:
    ```
    ../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css
    ```

    Enhanced the normalize-manifest-paths plugin in vite.config.js to:
    - Use `lastIndexOf()` to find the last occurrence of 'resources/' in paths
    - Handle both Unix forward slashes and Windows backslashes
    - Extract everything from 'resources/' onwards using `substring()`
    - Normalize both manifest keys and src properties
    - Convert Windows backslashes to forward slashes for consistency

    Manifest paths are now properly normalized to:
    - `resources/css/app.css`
    - `resources/js/app.ts`

    This ensures consistent asset loading across local development and CI/CD environments.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Refactor Vite manifest normalization plugin (#287)

    - **Simplified normalization logic**: Replaced verbose imperative code with a clean `normalizePath` function that handles both Windows and Unix paths using `Math.max()`
    - **Functional programming approach**: Used `Object.fromEntries()` and `map()` instead of manual loops for cleaner code
    - **Reduced complexity**: Condensed ~50 lines of code down to ~25 lines while maintaining identical functionality
    - **Better readability**: The plugin logic is now much easier to understand and maintain

    The refactored plugin:
    - Uses a single `normalizePath` function that finds the last occurrence of either `resources/` or `resources\`
    - Normalizes backslashes to forward slashes for consistent paths
    - Efficiently detects changes to avoid unnecessary file writes
    - Maintains the same behavior for both local development (already normalized paths) and CI environments (absolute paths)

    - Verified the plugin still executes correctly during builds
    - Tested path normalization logic with various absolute path formats
    - Confirmed the refactored code produces identical results to the original implementation

    This refactoring improves code maintainability without changing functionality, making the manifest normalization plugin easier to understand and modify in the future.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Fix robocopy deployment reliability (#288)

    The deployment pipeline was experiencing frequent failures due to robocopy operations with custom retry parameters. The custom retry count and sleep time settings were causing the pipeline to fail "often" in the CI/CD environment.

    **Updated robocopy command parameters:**
    - **Removed custom retry settings**: Removed `/R:2 /W:2` parameters that were causing reliability issues
    - **Added output suppression**: Added `/NFL /NDL` flags to reduce verbose output and improve log readability
    - **Improved logging**: Maintained comprehensive logging while reducing noise from file-level operations

    **Before:**
    ```powershell
    robocopy "$Source" "$Destination" /MIR /COPY:DAT /NP /R:2 /W:2 /LOG:"$logFile"
    ```

    **After:**
    ```powershell
    robocopy "$Source" "$Destination" /MIR /COPY:DAT /NP /NFL /NDL /LOG:"$logFile"
    ```

    **Parameter changes:**
    - `/R:2` (retry 2 times) → **Removed** (uses robocopy defaults)
    - `/W:2` (wait 2 seconds) → **Removed** (uses robocopy defaults)
    - `/NFL` → **Added** (No File List - reduces output verbosity)
    - `/NDL` → **Added** (No Directory List - reduces output verbosity)

    ✅ **Improved reliability**: Using robocopy default retry behavior instead of custom settings
    ✅ **Cleaner logs**: Reduced verbose output while maintaining error reporting
    ✅ **Better CI/CD performance**: Less likely to encounter transient failures
    ✅ **Maintained functionality**: All mirror, copy, and logging features preserved

    This change addresses the pipeline reliability issues while maintaining the same deployment functionality.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    Chore(deps-dev): Bump the node-dev-dependencies group with 2 updates (#289)

    Bumps the node-dev-dependencies group with 2 updates: [@types/form-data](https://github.com/DefinitelyTyped/DefinitelyTyped) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).

    Updates `@types/form-data` from 2.2.1 to 2.5.2
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

    Updates `vite` from 7.1.3 to 7.1.4
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v7.1.4/packages/vite)

    ---
    updated-dependencies:
    - dependency-name: "@types/form-data"
      dependency-version: 2.5.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
      dependency-group: node-dev-dependencies
    - dependency-name: vite
      dependency-version: 7.1.4
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: node-dev-dependencies
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

    * fix: Update Context Vue tests to use GUID format instead of numeric IDs (#290)

    * Fix Context Vue tests: Convert from Language-style numeric IDs to Project-style GUIDs

    - Replace all numeric/3-character IDs with GUID format in Context test files
    - Fix spy expectation failures by replacing with result-based testing
    - Add missing PencilIcon mocks in integration tests
    - Update route paths from /contexts/1 to /contexts/{guid} format
    - Resolve ID format inconsistencies between Language and Context components
    - All Context tests now pass (102/102) with proper GUID ID handling

    Affected files:
    - ContextDetail.test.ts: Basic unit tests with GUID IDs
    - ContextDetailIntegration.test.ts: Component integration tests
    - ContextDetailLogic.test.ts: Business logic with proper ID formats
    - ContextIntegration.test.ts: End-to-end integration testing
    - ContextsLogic.test.ts: List component business logic
    - ContextDetailResource.integration.test.ts: Resource workflow tests

    * fix: Update Context Vue tests to use GUID format instead of numeric IDs

    - Update Context tests to follow Project pattern with GUID IDs
    - Standardize ID formats across test utilities (test-utils.ts)
    - Add missing HeroIcons mocks (CheckIcon, XMarkIcon)
    - Replace ALL numeric IDs in test logic across multiple files
    - Implement Context "set default" functionality with GUID format
    - Ensure consistency between Context and Project test patterns
    - Maintain 3-character lowercase codes for Language/Country entities

    Resolves inconsistent ID format usage in Vue test files.
    All 1,335 tests now pass with proper GUID format throughout.

    ---------

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit f31ff1af9c2166f4796c86f2218150bf99c38600
Author: PascalHavelange <havelangep@gmail.com>
Date:   Wed Sep 3 12:48:40 2025 +0200

    fix: Update Context Vue tests to use GUID format instead of numeric IDs (#290)

    * Fix Context Vue tests: Convert from Language-style numeric IDs to Project-style GUIDs

    - Replace all numeric/3-character IDs with GUID format in Context test files
    - Fix spy expectation failures by replacing with result-based testing
    - Add missing PencilIcon mocks in integration tests
    - Update route paths from /contexts/1 to /contexts/{guid} format
    - Resolve ID format inconsistencies between Language and Context components
    - All Context tests now pass (102/102) with proper GUID ID handling

    Affected files:
    - ContextDetail.test.ts: Basic unit tests with GUID IDs
    - ContextDetailIntegration.test.ts: Component integration tests
    - ContextDetailLogic.test.ts: Business logic with proper ID formats
    - ContextIntegration.test.ts: End-to-end integration testing
    - ContextsLogic.test.ts: List component business logic
    - ContextDetailResource.integration.test.ts: Resource workflow tests

    * fix: Update Context Vue tests to use GUID format instead of numeric IDs

    - Update Context tests to follow Project pattern with GUID IDs
    - Standardize ID formats across test utilities (test-utils.ts)
    - Add missing HeroIcons mocks (CheckIcon, XMarkIcon)
    - Replace ALL numeric IDs in test logic across multiple files
    - Implement Context "set default" functionality with GUID format
    - Ensure consistency between Context and Project test patterns
    - Maintain 3-character lowercase codes for Language/Country entities

    Resolves inconsistent ID format usage in Vue test files.
    All 1,335 tests now pass with proper GUID format throughout.

    ---------

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit c46725d6159a52fdfcb942e903d4e8b65810775d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Sep 3 04:58:51 2025 +0000

    Chore(deps-dev): Bump the node-dev-dependencies group with 2 updates (#289)

    Bumps the node-dev-dependencies group with 2 updates: [@types/form-data](https://github.com/DefinitelyTyped/DefinitelyTyped) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).

    Updates `@types/form-data` from 2.2.1 to 2.5.2
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

    Updates `vite` from 7.1.3 to 7.1.4
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v7.1.4/packages/vite)

    ---
    updated-dependencies:
    - dependency-name: "@types/form-data"
      dependency-version: 2.5.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
      dependency-group: node-dev-dependencies
    - dependency-name: vite
      dependency-version: 7.1.4
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: node-dev-dependencies
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

commit deb158ed043d425d185c0f64adec69568de28aa5
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 23:10:20 2025 +0200

    Fix robocopy deployment reliability (#288)

    # Fix robocopy deployment reliability issues

    ## Problem

    The deployment pipeline was experiencing frequent failures due to robocopy operations with custom retry parameters. The custom retry count and sleep time settings were causing the pipeline to fail "often" in the CI/CD environment.

    ## Changes Made

    **Updated robocopy command parameters:**
    - **Removed custom retry settings**: Removed `/R:2 /W:2` parameters that were causing reliability issues
    - **Added output suppression**: Added `/NFL /NDL` flags to reduce verbose output and improve log readability
    - **Improved logging**: Maintained comprehensive logging while reducing noise from file-level operations

    ## Technical Details

    **Before:**
    ```powershell
    robocopy "$Source" "$Destination" /MIR /COPY:DAT /NP /R:2 /W:2 /LOG:"$logFile"
    ```

    **After:**
    ```powershell
    robocopy "$Source" "$Destination" /MIR /COPY:DAT /NP /NFL /NDL /LOG:"$logFile"
    ```

    **Parameter changes:**
    - `/R:2` (retry 2 times) → **Removed** (uses robocopy defaults)
    - `/W:2` (wait 2 seconds) → **Removed** (uses robocopy defaults)
    - `/NFL` → **Added** (No File List - reduces output verbosity)
    - `/NDL` → **Added** (No Directory List - reduces output verbosity)

    ## Benefits

    ✅ **Improved reliability**: Using robocopy default retry behavior instead of custom settings
    ✅ **Cleaner logs**: Reduced verbose output while maintaining error reporting
    ✅ **Better CI/CD performance**: Less likely to encounter transient failures
    ✅ **Maintained functionality**: All mirror, copy, and logging features preserved

    This change addresses the pipeline reliability issues while maintaining the same deployment functionality.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 1db1def86da75f8745c0cdb4cb404fe67e1de884
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 23:01:59 2025 +0200

    Refactor Vite manifest normalization plugin (#287)

    # Refactor Vite manifest normalization plugin for better maintainability

    ## Changes Made

    - **Simplified normalization logic**: Replaced verbose imperative code with a clean `normalizePath` function that handles both Windows and Unix paths using `Math.max()`
    - **Functional programming approach**: Used `Object.fromEntries()` and `map()` instead of manual loops for cleaner code
    - **Reduced complexity**: Condensed ~50 lines of code down to ~25 lines while maintaining identical functionality
    - **Better readability**: The plugin logic is now much easier to understand and maintain

    ## Technical Details

    The refactored plugin:
    - Uses a single `normalizePath` function that finds the last occurrence of either `resources/` or `resources\`
    - Normalizes backslashes to forward slashes for consistent paths
    - Efficiently detects changes to avoid unnecessary file writes
    - Maintains the same behavior for both local development (already normalized paths) and CI environments (absolute paths)

    ## Testing

    - Verified the plugin still executes correctly during builds
    - Tested path normalization logic with various absolute path formats
    - Confirmed the refactored code produces identical results to the original implementation

    This refactoring improves code maintainability without changing functionality, making the manifest normalization plugin easier to understand and modify in the future.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 0aadd089837ae77549d909231f49af2302025238
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 22:41:03 2025 +0200

    Fix Vite manifest path normalization in CI/CD pipeline (#286)

    # Fix Vite manifest path normalization in CI/CD pipeline

    ## Problem
    The Vite manifest.json file was generating absolute paths in the GitHub Actions pipeline instead of relative paths, causing issues with asset loading. The paths included the full runner directory structure like:
    ```
    ../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css
    ```

    ## Solution
    Enhanced the normalize-manifest-paths plugin in vite.config.js to:
    - Use `lastIndexOf()` to find the last occurrence of 'resources/' in paths
    - Handle both Unix forward slashes and Windows backslashes
    - Extract everything from 'resources/' onwards using `substring()`
    - Normalize both manifest keys and src properties
    - Convert Windows backslashes to forward slashes for consistency

    ## Result
    Manifest paths are now properly normalized to:
    - `resources/css/app.css`
    - `resources/js/app.ts`

    This ensures consistent asset loading across local development and CI/CD environments.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit cf95ff130a9fa4959b64d74f1d0232548c199767
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 22:18:50 2025 +0200

    Fix Vite manifest paths in CI with custom normalization plugin (#285)

    # Fix Vite manifest paths in CI with custom normalization plugin

    ## Summary
    Add a custom Vite plugin to normalize manifest.json paths, ensuring consistent relative paths regardless of build environment.

    ## Problem
    In GitHub Actions CI environment, the manifest.json was generating absolute paths:
    ```json
    {
      "../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css": {
        "file": "assets/app-YzGMk8if.css",
        "src": "../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css"
      }
    }
    ```

    ## Solution
    Implemented a custom Vite plugin `normalize-manifest-paths` that:
    - Hooks into the `generateBundle` phase
    - Processes the manifest.json after generation
    - Normalizes all paths using regex to strip absolute path prefixes
    - Ensures consistent `resources/` relative paths for both keys and `src` values

    ## Result
    Manifest now consistently shows relative paths in all environments:
    ```json
    {
      "resources/css/app.css": {
        "file": "assets/app-YzGMk8if.css",
        "src": "resources/css/app.css"
      }
    }
    ```

    ## Testing
    - ✅ Local build generates correct relative paths
    - ✅ Build completes successfully
    - ⏳ CI environment testing via this PR

    This fix ensures Laravel's asset helper functions work correctly regardless of build environment.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 4438a7e3a9d26e11cf4c41af140590f5b5ba35c2
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 22:07:34 2025 +0200

    Improve deployment robustness with consistent robocopy usage (#284)

    # Improve deployment robustness with consistent robocopy usage

    ## Summary
    Replace Move-Item with robocopy for moving current production to old directory, ensuring consistent and robust file operations throughout the deployment process.

    ## Details
    - Created local PowerShell function `Invoke-RobocopyMirror` to eliminate code duplication
    - Both "move production to old" and "copy staging to production" operations now use robocopy
    - Proper exit code handling for all robocopy operations (exit codes 0-2 are success)
    - Consistent logging with timestamped log files for troubleshooting
    - More robust handling of large directories and locked files

    ## Benefits
    - **Consistency**: All file operations use the same robust mechanism
    - **Reliability**: robocopy handles locked files and permissions better than Move-Item
    - **Maintainability**: Single function reduces code duplication
    - **Troubleshooting**: Comprehensive logging for all operations
    - **Performance**: More efficient for large directory operations

    ## Testing
    - Deployment workflow logic verified
    - Error handling maintains proper exit codes
    - Log files generated with descriptive names

    This change ensures the deployment process is more reliable and consistent across all file operations.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 37510d5aee34f7738c6dfd0000f823342d4c6817
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 21:51:06 2025 +0200

    Fix Vite manifest paths in CI environment (#283)

    # Fix Vite manifest paths in CI environment

    ## Summary
    Fix absolute paths appearing in Vite manifest.json during GitHub Actions builds by explicitly setting root and base configuration options.

    ## Details
    - Added explicit `root: './'` to ensure consistent working directory resolution
    - Added `base: './'` to force relative paths for assets
    - This prevents the CI environment from generating absolute paths like `../../../../actions-runner-win-x64-2.328.0/_work/inventory-app/inventory-app/resources/css/app.css`
    - Local build continues to work correctly with relative paths like `resources/css/app.css`

    ## Testing
    - ✅ Local build generates correct relative paths
    - ✅ Tests pass
    - ⏳ CI environment testing pending

    Fixes issue where manifest.json contained absolute paths in GitHub Actions environment while working correctly locally.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 3b7cbee8f6b03339f735f94a30cdd6688468f632
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 20:39:18 2025 +0200

    Fix Vite manifest output directory for Laravel compatibility (#282)

    Fixing vite config.js

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit c14007e55293edbbdf528e2aff5e7a1c2476753a
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 19:36:29 2025 +0200

    fix: linting issues and vite manifest relative paths (#281)

    fix: linting issues and ensure vite manifest uses project-relative paths\n\n- Fixed linting issues in PHP and CSS/JS files\n- Updated vite.config.js to ensure manifest uses project-relative paths for deployment compatibility

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 2ee273b7a34bd4ad63ee2251cf999705fe7ab191
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 19:30:00 2025 +0200

    fix: vite manifest uses project-relative paths for deployment (#280)

    fix: ensure vite manifest uses project-relative paths for deployment compatibility

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 3eb82b8f6b5f6ddc78d15db4522cfe1f76eb7dd9
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 19:23:56 2025 +0200

    Fix Robocopy deployment and Laravel pipeline (#279)

    ## Fix Robocopy deployment step

    # Deployment workflow: handle Robocopy exit codes (0, 1, 2 = success)
    # Laravel pipeline: use .env.local.example for validation

    - Updated `.github/workflows/deploy-mwnf-svr.yml` to treat Robocopy exit codes 0, 1, and 2 as success, preventing false errors in CI/CD.
    - Updated `.github/workflows/laravel.yml` to use `.env.local.example` for environment setup and validation, improving pipeline reliability.

    These changes ensure robust deployment and validation for Windows-based Laravel environments.

    Admin will merge this PR directly for this deployment.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 2606b9f9247dc5d4b0fb8906ee76d45691b22107
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 19:14:16 2025 +0200

    Fix Robocopy deployment step (#278)

    ## Fix Robocopy deployment step

    - Updated the deployment workflow to use Robocopy with /COPY:DAT instead of /COPYALL, resolving auditing rights error on Windows.
    - Ensures compatibility with standard Windows permissions for production deployments.

    ---

    Admin will merge this PR directly for this deployment.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit a940936d69105387b16d702c67b1a03528cc5217
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 19:05:03 2025 +0200

    Use robocopy for promoting staging to production (#277)

    ## Use robocopy for promoting staging to production

    - Replaced Move-Item with robocopy in the deployment workflow for the staging-to-production promotion step.
    - This ensures robust directory copy and overwrite behavior, avoiding issues when the target directory already exists.
    - No changes to environment variable handling or other deployment steps.

    ---
    Auto-merge requested as admin for this PR.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit c33da81ab336b6a2a186fe6f634e9b121a6b2211
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 16:33:39 2025 +0200

    Fix Vite build output directory for Laravel (#276)

    ## Fix Vite build output directory for Laravel

    - Set `outDir: 'public/build'` in `vite.config.js` to ensure manifest and assets are generated in the correct location for Laravel production.
    - Resolves issue with manifest paths referencing CI workspace instead of project-relative paths.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit bceff51f53147488e7fa5852e4b028b363a0b130
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 16:13:08 2025 +0200

    User creation command & migration fixes (#275)

    ## User creation command & migration fixes

    - Added new artisan command to create users with random secure passwords
    - Fixed migration files for foreign key constraints, table existence, and rollback issues
    - Ensured migrations run in correct order and are robust for production/CI/CD

    ---
    **Admin auto-merge requested due to infrastructure and schema changes.**

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit bb646540eaaad4cb937a5219cbf53f93959084f1
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 15:28:33 2025 +0200

    CI/CD pipeline and template config update (#274)

    ## CI/CD pipeline and template config update

    - Added `.env.local.example` for local development and CI/CD reference (force-added, not gitignored)
    - Updated `.env.example` for production/CI needs
    - Added `TestMailInfrastructure` artisan command for email infrastructure testing
    - Registered new command in `Console\Kernel`
    - Updated `deploy-mwnf-svr.yml` workflow for latest pipeline changes

    ---
    **Admin merge requested due to infrastructure changes.**

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 43292532052b4ad0ee06b2668921fb5a5c00c68c
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 14:34:51 2025 +0200

    fix: remove dev-level commands from MWNF-SVR deployment workflow (#273)

    - Removed all commands that require dev dependencies (e.g., phpunit, artisan test)
    - Pipeline now only uses production dependencies
    - Ready for admin merge

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 10d98150c3bd7decd14fe74ef70e87276895ee67
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 13:58:27 2025 +0200

    fix: latest update to MWNF-SVR deployment workflow (#272)

    - Updated deployment workflow with latest changes
    - All configuration and improvements as per recent edits
    - Ready for admin merge

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 8ebc0796d6bc05d3331f789a8276472960f6bfc7
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 13:52:38 2025 +0200

    fix: use .env.example template and configurable Apache service user in deployment workflow (#271)

    - .env file is now generated from .env.example with variable substitution
    - File permissions set for configurable Apache service user (defaults to SYSTEM)
    - Improves maintainability and compatibility for Apache on Windows
    - No hardcoded .env content in pipeline
    - All configuration comes from GitHub environment variables and secrets

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 26988d483f61515d898159d8d53b3e1c3878f874
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 12:55:28 2025 +0200

    fix: resolve GitHub Actions environment variable access issues (#270)

    - Fix environment variable access in MWNF-SVR deployment workflow
    - Replace system environment variable checks with proper GitHub vars/secrets mapping
    - Add job-level environment variable mapping for all required paths
    - Update npm commands to use configured NPM_PATH environment variable
    - Add database secrets (MARIADB_DATABASE, MARIADB_USER, MARIADB_SECRET) to environment
    - Improve variable validation step to display all configured values

    The workflow now properly accesses environment variables and secrets
    configured in the GitHub MWNF-SVR environment instead of trying to
    access system environment variables that don't exist in the runner.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit f06e6d9b9907ce78b37cfd83b6e783525980004c
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 12:36:14 2025 +0200

    Fix: MWNF-SVR env detection and don't override env vars (#268)

    Fix: keep MWNF-SVR Environment variables and use .NET env detection in PowerShell step

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit c1911abbb57b4ed4a135fa22924626dc5a8bb452
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 12:15:10 2025 +0200

    Fix PowerShell environment variable reference in deploy-mwnf-svr workflow (#267)

    ## Fix PowerShell environment variable reference in deploy-mwnf-svr workflow

    - Updated `.github/workflows/deploy-mwnf-svr.yml` to use `${env:$_}` for required environment variable check.
    - Ensures compatibility and error-free deployment automation on Windows self-hosted runners.
    - No changes to application code or configuration files.
    - This update only affects the deployment workflow for the `mwnf-svr` environment.

    ---

    **Why:**
    - Fixes workflow execution errors due to incorrect PowerShell environment variable reference.
    - Aligns with PowerShell and GitHub Actions best practices.

    **Impact:**
    - Deployment workflow for `mwnf-svr` is now robust and reliable.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit e5ae2b32747ee67847ef945264a2b0fb710ac145
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 12:07:32 2025 +0200

    Fix deploy-mwnf-svr workflow: Use correct shell for GitHub Actions (#266)

    * ## Add deploy-mwnf-svr GitHub Action workflow

    - Introduced `.github/workflows/deploy-mwnf-svr.yml` to enable deployment on a self-hosted runner in the `mwnf-svr` environment.
    - This workflow is designed for Windows-based self-hosted runners and supports deployment automation for the mwnf-svr environment.
    - Ensures compliance with repository CI/CD and deployment standards.
    - No changes to application code or configuration files.
    - This addition does not affect existing workflows or environments.

    ---

    **Why:**
    - Enables automated deployment to the mwnf-svr environment using GitHub Actions.
    - Supports infrastructure-as-code and repeatable deployment processes.
    - Aligns with best practices for environment-specific deployment automation.

    **Impact:**
    - New workflow available for mwnf-svr deployments.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    * ## Fix deploy-mwnf-svr workflow: Use correct shell for GitHub Actions

    - Updated `.github/workflows/deploy-mwnf-svr.yml` to use the correct shell for script execution.
    - Replaced `pwsh` with the appropriate shell, as `pwsh` is not recognized by GitHub Actions runners.
    - Ensures compatibility and successful execution of deployment steps on self-hosted and GitHub-hosted runners.
    - No changes to application code or configuration files.
    - This update only affects the deployment workflow for the `mwnf-svr` environment.

    ---

    **Why:**
    - Fixes workflow execution errors due to unrecognized shell.
    - Aligns with GitHub Actions best practices for cross-platform compatibility.

    **Impact:**
    - Deployment workflow for `mwnf-svr` now runs reliably on supported runners.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    ---------

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit c69bb9cab1b1ff7dbda1de9f3c26748572b326c3
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 11:52:19 2025 +0200

    Add deploy-mwnf-svr GitHub Action workflow (#265)

    ## Add deploy-mwnf-svr GitHub Action workflow

    - Introduced `.github/workflows/deploy-mwnf-svr.yml` to enable deployment on a self-hosted runner in the `mwnf-svr` environment.
    - This workflow is designed for Windows-based self-hosted runners and supports deployment automation for the mwnf-svr environment.
    - Ensures compliance with repository CI/CD and deployment standards.
    - No changes to application code or configuration files.
    - This addition does not affect existing workflows or environments.

    ---

    **Why:**
    - Enables automated deployment to the mwnf-svr environment using GitHub Actions.
    - Supports infrastructure-as-code and repeatable deployment processes.
    - Aligns with best practices for environment-specific deployment automation.

    **Impact:**
    - New workflow available for mwnf-svr deployments.
    - No impact on production or other environments.
    - No breaking changes.

    ---

    Closes # (if applicable)

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 59fbe4a4d9a7d4ab80516d6416513f323e97ce41
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 2 06:38:06 2025 +0000

    Chore(deps-dev): Bump @types/form-data from 2.2.1 to 2.5.2 (#261)

    Bumps [@types/form-data](https://github.com/DefinitelyTyped/DefinitelyTyped) from 2.2.1 to 2.5.2.
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

    ---
    updated-dependencies:
    - dependency-name: "@types/form-data"
      dependency-version: 2.5.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

commit 596ddb8fa0606882f7bdeec3a6f5977bd1e0cbc2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 2 08:36:40 2025 +0200

    Chore(deps-dev): Bump vite from 7.1.3 to 7.1.4 (#260)

    Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.3 to 7.1.4.
    - [Release notes](https://github.com/vitejs/vite/releases)
    - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite/commits/v7.1.4/packages/vite)

    ---
    updated-dependencies:
    - dependency-name: vite
      dependency-version: 7.1.4
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

commit 6a921518a044cce6a20ae03061b4d81e430b0cb3
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 08:29:40 2025 +0200

    Update Copilot instructions to align with project specifics and tighten CI checks (#264)

    - Clarify lint/test guidance: prefer vendor Pint; artisan/test standard.
    - Fix DB environment wording; reduce duplication.
    - Correct identifiers: Language uses ISO 639-3; remove non-existent HasSeeder.
    - Enforce Form Request validation; add Sanctum auth in tests.
    - State no soft deletes; add UUID model flags (=false, ='string').
    - Improve WSL/Jekyll instruction with exact bash -lc example.
    - Standardize PR preflight order; refer to ci-lint:test.
    - Raise npm audit threshold to --audit-level high to reduce noise.

    No code behavior changes; documentation/script clarity only.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 38923459f9bf218d24b1a06887629e1374478ec1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 2 07:24:01 2025 +0200

    Chore(deps): Bump @vueuse/core from 13.8.0 to 13.9.0 (#259)

    Bumps [@vueuse/core](https://github.com/vueuse/vueuse/tree/HEAD/packages/core) from 13.8.0 to 13.9.0.
    - [Release notes](https://github.com/vueuse/vueuse/releases)
    - [Commits](https://github.com/vueuse/vueuse/commits/v13.9.0/packages/core)

    ---
    updated-dependencies:
    - dependency-name: "@vueuse/core"
      dependency-version: 13.9.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d35c6dc7c401058ece5fd26b878f5e5383ce65a2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 2 07:22:59 2025 +0200

    Chore(deps): Bump actions/checkout from 4 to 5 (#257)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/actions/checkout/compare/v4...v5)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-version: '5'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit e57ef228c587a483de83adf3bad9bac1e7c818df
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 2 07:22:48 2025 +0200

    Chore(deps): Bump actions/upload-pages-artifact from 3 to 4 (#258)

    Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
    - [Release notes](https://github.com/actions/upload-pages-artifact/releases)
    - [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-pages-artifact
      dependency-version: '4'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 53f693619aadcc00b77f35974d1e09cb14fce395
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 07:20:26 2025 +0200

    Enable auto-approval and auto-merge for Dependabot minor updates (#263)

    # Enable auto-approval and auto-merge for Dependabot minor updates

    This commit updates `.github/workflows/dependabot-auto-merge.yml` to streamline the handling of Dependabot pull requests for dependency updates. The new workflow now:

    - **Automatically approves** all Dependabot PRs that are not major version updates (i.e., minor and patch updates).
    - **Enables auto-merge** for these PRs, reducing manual intervention for safe dependency updates.
    - Uses the `gh pr review --approve` command for approval and auto-merge steps, ensuring compatibility and reliability.
    - Refactors job and step names for clarity and maintainability.

    **Benefits:**
    - Reduces maintenance overhead by automating safe dependency updates.
    - Ensures that only non-breaking (minor/patch) updates are auto-approved and merged.
    - Aligns with best practices for secure and efficient dependency management in CI/CD pipelines.

    No other workflow changes are included. See the updated `.github/workflows/dependabot-auto-merge.yml` for details.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 560c2f0b531baaf17f61343c1bde22970f664a0e
Author: PascalHavelange <havelangep@gmail.com>
Date:   Tue Sep 2 07:04:02 2025 +0200

    Update dependabot.yml to group PRs by dependency type (#262)

    # Update dependabot.yml to group PRs by dependency type

    This commit updates `.github/dependabot.yml` to enable grouping of Dependabot pull requests for Composer, npm, and GitHub Actions dependencies. The new configuration introduces the following improvements:

    - **Composer**: Adds `groups` for `laravel-dev-dependencies` and `laravel-prod-dependencies`, grouping PRs by development and production dependencies.
    - **npm**: Adds `groups` for `node-dev-dependencies` and `node-prod-dependencies`, grouping PRs by development and production dependencies.
    - **GitHub Actions**: Adds a `github-actions-dependencies` group to combine all workflow dependency updates into a single PR.

    **Benefits:**
    - Reduces PR noise by consolidating related updates.
    - Makes it easier to review and merge dependency updates in logical batches.
    - Aligns with best practices for dependency management in multi-ecosystem projects.

    No other changes were made. See the updated `.github/dependabot.yml` for details.

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit f225dbc311323ed7b3f45f7044e5b4530eb9eff0
Author: PascalHavelange <havelangep@gmail.com>
Date:   Mon Sep 1 09:50:33 2025 +0200

    Clean dependency and style update (September 2025) (#256)

    * Revert "Chore(deps-dev): Bump typescript from 5.8.3 to 5.9.2 (#243)"

    This reverts commit 9b6b613c49011b8669d279446bf12059e3ab2c03.

    * Revert "Chore(deps): Bump actions/upload-pages-artifact from 3 to 4 (#252)"

    This reverts commit 15b6ce68b19f2e43880286697d78acc670a37381.

    * Revert "Chore(deps): Bump dedoc/scramble from 0.12.26 to 0.12.31 (#253)"

    This reverts commit 76642855bb1be7dbddf761e8b8be7160da493eb4.

    * Revert "Chore(deps-dev): Bump eslint-plugin-vue from 10.3.0 to 10.4.0 (#247)"

    This reverts commit 001c9c145e7ff1a5b73d7678e971b90d34737b54.

    * Revert "Chore(deps): Bump actions/checkout from 4 to 5 (#248)"

    This reverts commit 007f797270b618d84646ede5f0e600df4420313b.

    * Revert "Chore(deps-dev): Bump @types/form-data from 2.2.1 to 2.5.2 (#246)"

    This reverts commit c66104b0be34741d6cfa411bb2fa9f3be4e324d6.

    * Revert "Chore(deps-dev): Bump @vitejs/plugin-vue from 6.0.0 to 6.0.1 (#245)"

    This reverts commit 2b09b43a652b9d426189c3560e1e9b56768ff40c.

    * Revert "Chore(deps): Bump intervention/image from 3.11.3 to 3.11.4 (#241)"

    This reverts commit 21b272127cd34b74dc79f136ea16498eb3b7bcee.

    * chore(deps): update dependencies September 2025

    Updates PHP and JavaScript dependencies to their latest compatible versions:

    PHP Packages:
    - intervention/image: 3.11.3 → 3.11.4
    - dedoc/scramble: 0.12.26 → 0.12.31
    - laravel/sail: 1.44.0 → 1.45.0
    - Multiple Symfony components updated as dependencies

    JavaScript Packages:
    - TypeScript ecosystem:
      - @types/node: 24.1.0 → 24.3.0
      - @typescript-eslint/eslint-plugin: 8.38.0 → 8.41.0
      - @typescript-eslint/parser: 8.38.0 → 8.41.0
    - Linting tools:
      - eslint: 9.31.0 → 9.34.0
      - eslint-plugin-prettier: 5.5.3 → 5.5.4
      - eslint-plugin-vue: 10.3.0 → 10.4.0
      - stylelint: 16.22.0 → 16.23.1
    - Build tools:
      - vite: 7.0.4 → 7.1.3
      - laravel-vite-plugin: 2.0.0 → 2.0.1
      - @vueuse/core: 13.5.0 → 13.8.0

    All updates have been tested:
    - PHP tests pass successfully
    - JavaScript builds without errors
    - Linting checks pass
    - No security vulnerabilities found

    (cherry picked from commit a3d0540c32b7291da796dd9d6332efa83b107196)

    * chore(deps): update PHP testing packages

    Updates PHP testing-related packages to their latest patch versions:

    - pestphp/pest: 3.8.2 → 3.8.4
    - brianium/paratest: 7.8.3 → 7.8.4
    - fidry/cpu-core-counter: 1.2.0 → 1.3.0
    - filp/whoops: 2.18.3 → 2.18.4
    - phpunit/php-code-coverage: 11.0.10 → 11.0.11
    - phpunit/phpunit: 11.5.15 → 11.5.33
    - sebastian/comparator: 6.3.1 → 6.3.2
    - sebastian/recursion-context: 6.0.2 → 6.0.3
    - sebastian/type: 5.1.2 → 5.1.3
    - phpdocumentor/reflection-docblock: 5.6.2 → 5.6.3

    All tests pass successfully after updates.

    (cherry picked from commit df7cdbe01fcce1a5b07477f1c3a9f22e522cb571)

    * chore(deps): update @vue/tsconfig to 0.8.1

    Updates @vue/tsconfig to version 0.8.1 and fixes TypeScript errors due to stricter type checking:

    - Fixed potential undefined value in auth store token extraction
    - Fixed potential undefined launch_date in ProjectDetail view

    All type checks and tests pass successfully.

    (cherry picked from commit 6c7934b80bc43c9cd2c1d9776ee4ab9a8d11a316)

    * chore(deps): update TypeScript to 5.9.2

    Updates TypeScript to version 5.9.2 and improves configuration:
    - Updates TypeScript to 5.9.2
    - Updates tsconfig.json to target ES2022
    - Updates lib to include ES2022 features
    - Verifies type safety across the codebase
    - All type checks and tests pass successfully

    (cherry picked from commit 8618fca581928b3161be26b1c221569d901de183)

    * Removed left over temp file

    (cherry picked from commit 958d66c79a35c8b5b3c16624939c74ecd0f1ba3a)

    * chore(deps): update stylelint-config-standard to 39.0.0

    Updates stylelint-config-standard to version 39.0.0 and improves configuration:
    - Updates stylelint-config-standard to 39.0.0
    - Adds proper support for Tailwind CSS directives
    - Configures rules for modern CSS practices
    - Disables unnecessary quote requirements for imports and font families
    - All CSS files pass linting and build successfully

    (cherry picked from commit c8ee310850b0a10df4bdd495a7ff624107f1d2f1)

    * refactor(css): improve CSS organization

    Improves the CSS architecture by:
    - Creating a shared styles file for common styles
    - Removing duplicate Tailwind directives
    - Using proper import order
    - Separating application-specific styles
    - Following CSS best practices with proper layering

    This refactoring:
    1. Creates resources/css/shared.css for shared styles
    2. Updates app.css to import shared styles directly
    3. Updates style.css to import shared styles directly
    4. Removes the circular dependency between CSS files
    5. Improves maintainability and reduces CSS bundle size

    (cherry picked from commit 58f5ff24df35fd74c21fadf6990f98cb13899d99)

    * # Update to Tailwind CSS v4

    ## Changes Made:
    - Updated Tailwind CSS from v3 to v4.1.12
    - Updated @tailwindcss/postcss plugin
    - Updated PostCSS configuration for Tailwind v4
    - Migrated CSS imports from `@tailwind` directives to `@import "tailwindcss"`
    - Fixed build process to work with new Tailwind v4 syntax

    ## Dependencies Updated:
    - tailwindcss: ^3.4.16 → ^4.1.12
    - @tailwindcss/postcss: new dependency for v4

    ## Files Modified:
    - package.json & package-lock.json: Updated dependencies
    - postcss.config.js: Updated for Tailwind v4
    - tailwind.config.js: Updated configuration format
    - resources/css/app.css: Changed to `@import "tailwindcss"`
    - resources/js/style.css: Changed to `@import "tailwindcss"`

    ## Testing:
    - ✅ npm run build passes
    - ✅ CSS compilation works correctly
    - ✅ Tailwind utilities function properly

    (cherry picked from commit 420c41e7d58743602675cfadd628f4d51159a35e)

    * # Fix login button visibility after Tailwind v4 update

    ## Issue Fixed:
    - Login button was invisible (white on white) due to missing primary colors
    - Tailwind CSS v4 doesn't include 'primary' colors by default

    ## Solution:
    - Added primary color definitions using @theme directive in shared.css
    - Defined primary color scale (50-950) based on Tailwind's sky color palette
    - Used proper OKLCH color format as required by Tailwind v4

    ## Changes:
    - resources/css/shared.css: Added @theme block with --color-primary-* definitions

    ## Testing:
    - ✅ npm run build passes
    - ✅ Primary color utilities (bg-primary-600, hover:bg-primary-700, etc.) now generated
    - ✅ Login button should now be visible with proper styling

    (cherry picked from commit 24ba83c4e0bc93f2f7ff0cf3a8fd4b13f40b41f8)

    * # Update npm dependency: autoprefixer to 10.4.21

    - Updated autoprefixer from 10.4.19 to 10.4.21
    - Ran npm audit: 0 vulnerabilities found
    - All npm dependencies are now up to date

    (cherry picked from commit 11f7905df06870dacd74059d93847ea3b0328f58)

    ---------

    Co-authored-by: Pascal HAVELANGE <havelangep@hotmail.com>

commit 9b6b613c49011b8669d279446bf12059e3ab2c03
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 20:18:13 2025 +0000

    Chore(deps-dev): Bump typescript from 5.8.3 to 5.9.2 (#243)

    Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3 to 5.9.2.
    - [Release notes](https://github.com/microsoft/TypeScript/releases)
    - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
    - [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)

    ---
    updated-dependencies:
    - dependency-name: typescript
      dependency-version: 5.9.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: PascalHavelange <havelangep@gmail.com>

commit 15b6ce68b19f2e43880286697d78acc670a37381
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 10:29:48 2025 +0200

    Chore(deps): Bump actions/upload-pages-artifact from 3 to 4 (#252)

    Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
    - [Release notes](https://github.com/actions/upload-pages-artifact/releases)
    - [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

    ---
    updated-dependencies:
    - dependency-name: actions/upload-pages-artifact
      dependency-version: '4'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 76642855bb1be7dbddf761e8b8be7160da493eb4
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 10:29:19 2025 +0200

    Chore(deps): Bump dedoc/scramble from 0.12.26 to 0.12.31 (#253)

    Bumps [dedoc/scramble](https://github.com/dedoc/scramble) from 0.12.26 to 0.12.31.
    - [Release notes](https://github.com/dedoc/scramble/releases)
    - [Commits](https://github.com/dedoc/scramble/compare/v0.12.26...v0.12.31)

    ---
    updated-dependencies:
    - dependency-name: dedoc/scramble
      dependency-version: 0.12.31
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 001c9c145e7ff1a5b73d7678e971b90d34737b54
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 10:28:26 2025 +0200

    Chore(deps-dev): Bump eslint-plugin-vue from 10.3.0 to 10.4.0 (#247)

    Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.3.0 to 10.4.0.
    - [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
    - [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.3.0...v10.4.0)

    ---
    updated-dependencies:
    - dependency-name: eslint-plugin-vue
      dependency-version: 10.4.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 007f797270b618d84646ede5f0e600df4420313b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 10:28:13 2025 +0200

    Chore(deps): Bump actions/checkout from 4 to 5 (#248)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/actions/checkout/compare/v4...v5)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-version: '5'
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit c66104b0be34741d6cfa411bb2fa9f3be4e324d6
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 10:27:17 2025 +0200

    Chore(deps-dev): Bump @types/form-data from 2.2.1 to 2.5.2 (#246)

    Bumps [@types/form-data](https://github.com/DefinitelyTyped/DefinitelyTyped) from 2.2.1 to 2.5.2.
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

    ---
    updated-dependencies:
    - dependency-name: "@types/form-data"
      dependency-version: 2.5.2
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 2b09b43a652b9d426189c3560e1e9b56768ff40c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Aug 26 10:26:52 2025 +0200

    Chore(deps-dev): Bump @vitejs/plugin-vue from 6.0.0 to 6.0.1 (#245)

    Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 6.0.0 to 6.0.1.
    - [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
    - [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
    - [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.1/packages/plugin-vue)

    ---
    updated-dependencies:
    - dependency-name: "@vitejs/plugin-vue"
      dependency-version: 6.0.1
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Files Changed

No files changed in this commit.


This documentation was automatically generated from Git commit data.