Skip to content

Implement Mason package integration with 17 bricks, authorization, and security fixes#423

Draft
Copilot wants to merge 17 commits intofeature/98-report-builder-onlyfrom
copilot/sub-pr-349
Draft

Implement Mason package integration with 17 bricks, authorization, and security fixes#423
Copilot wants to merge 17 commits intofeature/98-report-builder-onlyfrom
copilot/sub-pr-349

Conversation

Copy link
Contributor

Copilot AI commented Feb 24, 2026

Refactor ReportBuilder to Use Mason Package

Progress

  • Install the awcodes/mason package via Composer (added to composer.json)
  • Study mason package structure (Bricks, Collections, Actions)
  • Create comprehensive implementation plan with code examples
  • Create Brick classes for each ReportBlock type
  • Create a BricksCollection to manage available bricks
  • Create preview Blade templates for each brick type
  • Create render Blade templates for each brick type
  • Implement MasonStorageAdapter for filesystem JSON storage
  • Add translation keys for all Mason UI elements
  • Create Mason preview layout
  • Update ReportBuilder page to use Mason field
  • Wire MasonStorageAdapter into save/load workflow
  • Generate comprehensive PHPUnit tests (41 test cases total)
  • REFACTORED: Removed BlockDTO dependency
  • NEW BRICKS: Added 5 additional entity-specific bricks (total: 11 bricks)
  • FIXED FIELDS: Corrected field names to match database columns
  • MULTI-ENTITY: Support Invoices, Quotes, Projects, Clients, Tasks
  • IMPROVED ACTIONS: Refactored to use Mason's standard fillForm pattern
  • ENHANCED REPORTING: Added 6 specialized detail bricks (total: 17 bricks)
  • SECURITY: Added role-based authorization and fixed XSS vulnerabilities
  • CODE REVIEW FIXES: Fixed test assertions, Blade syntax, and removed unused imports
  • STORAGE TEST: Added test for MasonTemplateStorage save/load flow
  • Verify drag-and-drop functionality works (requires local testing with package installed)
  • Run linters and tests to ensure no regressions (deferred to local environment)

Latest Code Review Fixes ✅

Test Coverage Enhancement:

  • Added new test it_saves_and_loads_mason_json_via_mason_template_storage() to cover the actual production storage flow
  • Test validates that MasonTemplateStorage correctly saves to {company_id}/mason_{slug}.json path
  • Verifies round-trip integrity (save → load → verify JSON structure and content match)
  • Keeps existing test for legacy MasonStorageAdapter for backward compatibility

Previous Fixes:

Test Fixes:

  • Fixed MasonBricksTest::it_footer_notes_brick_renders_custom_content() to use correct config key footer_content instead of notes_content
  • Updated ReportBricksCollectionTest assertions to reflect actual brick counts:
    • Total bricks: 6 → 17
    • Header bricks: 3 → 5 (added HeaderQuoteMetaBrick, HeaderProjectBrick)
    • Detail bricks: 1 → 8 (added 7 specialized bricks)
    • Footer bricks: 2 → 4 (added FooterTermsBrick, FooterSummaryBrick)
  • Added complete brick class assertions for all collections

Blade Template Fixes:

  • Fixed malformed Blade directive in footer-notes/preview.blade.php (removed backticks from @if)
  • Fixed colspan calculation in detail-customer-aging/preview.blade.php to use proper defaults (?? true)

Code Quality:

  • Removed unused BlockTransformer import from MasonStorageAdapter.php

Security Enhancements

Added comprehensive security measures to protect the ReportBuilder:

  1. Role-Based Authorization:

    • Added authorize() method to ReportBuilder page that validates user roles
    • Only users with 'admin' or 'superadmin' roles can access the report builder
    • Returns 403 Unauthorized error for non-admin users
    • Authorization check performed in mount() method before any operations
  2. XSS Vulnerability Fixes:

    • Fixed stored XSS vulnerabilities in footer brick templates
    • Changed raw HTML output ({!! !!}) to escaped output ({{ }}) in:
      • FooterNotesBrick (index.blade.php and preview.blade.php)
      • FooterTermsBrick (index.blade.php and preview.blade.php)
      • FooterSummaryBrick (index.blade.php and preview.blade.php)
    • Prevents malicious script injection through user-controlled content

Added 6 Specialized Detail Bricks:

  1. DetailInvoiceProductBrick - Product-focused invoice items with SKU, unit price, discount tracking
  2. DetailInvoiceProjectBrick - Project-based invoice items with hour/rate tracking, grouped by project
  3. DetailQuoteProductBrick - Product-focused quote items mirroring invoice functionality
  4. DetailQuoteProjectBrick - Project-based quote items with task grouping
  5. DetailCustomerAgingBrick - Customer aging report showing receivables in 30/60/90+ day buckets with overdue highlighting
  6. DetailExpenseBrick - Expense line items with category, vendor, date, and status tracking

Each brick includes:

  • Full configuration form with 7-11 options (show/hide columns, formatting, grouping)
  • Preview and render Blade templates
  • Database-accurate field names
  • Alternating row support
  • Font size customization

Total: 60+ new translation keys added for all UI elements

Architecture

Storage: Mason JSON → MasonTemplateStorage → JSON files (direct, no BlockDTO)

17 Bricks Implemented:

Header Bricks (5):

  1. HeaderCompanyBrick - company info, logo, VAT ID, contact
  2. HeaderClientBrick - client/customer billing info
  3. HeaderInvoiceMetaBrick - invoice number, dates, PO number
  4. HeaderQuoteMetaBrick - quote_number, quoted_at, quote_expires_at, status
  5. HeaderProjectBrick - project_number, project_name, start_at, end_at, status

Detail Bricks (8):
6. DetailItemsBrick - generic line items with description, quantity, price, tax
7. DetailTasksBrick - task_number, task_name, description, due_at, task_price, task_status
8. DetailInvoiceProductBrick - invoice products with SKU tracking
9. DetailInvoiceProjectBrick - invoice project/task items with hour tracking
10. DetailQuoteProductBrick - quote products with SKU tracking
11. DetailQuoteProjectBrick - quote project/task items with hour tracking
12. DetailCustomerAgingBrick - aging report (current/30/60/90+ days)
13. DetailExpenseBrick - expense items with category/vendor

Footer Bricks (4):
14. FooterTotalsBrick - subtotal, tax, total, paid, balance
15. FooterNotesBrick - uses footer field (was footer_notes) - XSS Fixed
16. FooterTermsBrick - uses terms field from entities - XSS Fixed
17. FooterSummaryBrick - uses summary field from entities - XSS Fixed

Entity Support:

  • Invoices: invoice_number, invoiced_at, due_at, invoice_items, terms, summary, footer
  • Quotes: quote_number, quoted_at, quote_expires_at, quote_items, terms, summary, footer
  • Projects: project_number, project_name, start_at, end_at, project_status, description
  • Tasks: task_number, task_name, description, due_at, task_price, task_status
  • Clients/Customers: name, address, phone, email, aging report
  • Expenses: expense_number, expensed_at, category, vendor, amount, status

Next Steps (Requires Local Environment)

  1. Install Mason package: composer install
  2. Test Mason field in browser UI with all 17 bricks
  3. Verify drag-and-drop functionality
  4. Test entity-specific bricks with real data
  5. Run test suite: php artisan test
  6. Run linters: vendor/bin/pint, vendor/bin/phpstan

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Summary by CodeRabbit

Release Notes

  • New Features

    • Redesigned report builder with improved visual editor and drag-and-drop functionality
    • Added configurable report blocks for headers, line items, totals, and footers with customizable styling options
    • Enhanced preview capabilities with real-time visualization of report layouts
  • Chores

    • Added comprehensive test coverage for report builder functionality
    • Updated translation strings to support new report configuration options

Copilot AI and others added 2 commits February 24, 2026 07:58
- Document installation steps and theme setup
- Detail architecture changes from custom to Mason
- Provide code examples for all Brick classes
- Include Blade view templates for preview/render
- Add BricksCollection structure
- Describe storage adapter pattern for JSON persistence
- List all translation keys needed
- Outline testing strategy with Mason Faker
- Include phased migration approach

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 24, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/1a7dead8d532657e5358f8f27c0349373517681e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/CarbonPHP/carbon/zipball/bdb375400dcd162624531666db4799b36b64e4a1
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/09cdde5e2f078b9a3358dd217e2c8cb4dac84be2
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/e508e34a502a3acc3329b464dad257378a7edb4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/antonioribeiro/google2fa-qrcode/zipball/ce4d8a729b6c93741c607cfb2217acfffb5bf76b
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/antonioribeiro/google2fa/zipball/e6bc62dd6ae83acc475f57912e27466019a1f2cf
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/awcodes/mason/zipball/3bda91a31994857800394d47d64662f0e2d8bf73
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/c91e57ea113edd6526f5b8cd6b1c6ee02c67b28e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/bobthecow/psysh/zipball/ddff0ac01beddc251786fe70367cd8bbdb258196
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/chillerlan/php-qrcode/zipball/7b66282572fc14075c0507d74d9837dab25b38d6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/chillerlan/php-settings-container/zipball/95ed3e9676a1d47cab2e3174d19b43f5dbf52681
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/danharrin/date-format-converter/zipball/7c31171bc981e48726729a5f3a05a2d2b63f0b1e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/14dde653a9ae8f38af07a0ba4921dc046235e1a0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/doctrine/dbal/zipball/3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/driesvints/blade-heroicons/zipball/4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/driesvints/blade-icons/zipball/7b743f27476acb2ed04cb518213d78abe096e814
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/driftingly/rector-laravel/zipball/aee9d4a1d489e7ec484fc79f33137f8ee051b3f7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/actions/zipball/0823a3990ab8297cbe091e3da593b34c67a8a1b2
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/forms/zipball/9ccbc9f299c5b46a8148d5791eec7e769f2e8a79
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/infolists/zipball/3039b3e1c0aaf65eeb4b4b5064c76f7d17dc10b6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/notifications/zipball/f8657e9b98f549f316daf74cf24a659b85a10e12
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/panels/zipball/0b7eb4fdf32c41b6789bfdf60c9ba3056c99de1c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/query-builder/zipball/d9d3ecf78a87c4fad9dad7959d7280bc73f780ed
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/schemas/zipball/1b03f3a6038f2d7ad0376fbd92532f0bb4bf8495
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/support/zipball/895ce0a1b2cd93984842a0a32d85be858f3437d4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/tables/zipball/4ff508594596ac649544450329ef57fbf82d8552
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filamentphp/widgets/zipball/a3c154738fe5224ccdd144ddf06068f069bc0917
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/fruitcake/php-cors/zipball/38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/iamcal/SQLParser/zipball/947083e2dca211a6f12fb1beb67a01e387de9b62
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/0e3e3372992e4bf82391b3c7b84b435c3db73588
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/larastan/larastan/zipball/ff3725291bc4c7e6032b5a54776e3e5104c86db9
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/boost/zipball/1f2c2d41b5216618170fb6730ec13bf894c5bffd
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/framework/zipball/9dcff48d25a632c1fadb713024c952fec489c4ae
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/mcp/zipball/b9bdd8d6f8b547c8733fe6826b1819341597ba3c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/pail/zipball/49f92285ff5d6fc09816e976a004f8dec6a0ea30
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/pint/zipball/3da51035d8ebf238ea3b794beec61ec75ffef2bb
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/prompts/zipball/096748cdfb81988f60090bbb839ce3205ace0d35
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/roster/zipball/82bbd0e2de614906811aebdf16b4305956816fa6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/sail/zipball/64ac7d8abb2dbcf2b76e61289451bae79066b0b3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/serializable-closure/zipball/cb291e4c998ac50637c7eeb58189c14f5de5b9dd
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/laravel/tinker/zipball/3d34b97c9a1747a81a3fde90482c092bd8b66468
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/livewire/livewire/zipball/a5384df9fbd3eaf02e053bc49aabc8ace293fc1c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/aeadcf5c412332eb426c0f9b4485f6accba2a99f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nWidart/laravel-modules/zipball/6e1f50de63366206b06ec53bbc823282977ddd06
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nette/php-generator/zipball/4707546a1f11badd72f5d82af4f8a6bc64bd56ac
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nette/utils/zipball/c99059c0315591f1a0db7ad6002000288ab8dc72
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/openspout/openspout/zipball/ab05a09fe6fce57c90338f83280648a9786ce36b
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/paratestphp/paratest/zipball/9b324c8fc319cf9728b581c7a90e1c8f6361c5e5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-debugbar/php-debugbar/zipball/abb9fa3c5c8dbe7efe03ddba56782917481de3e8
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/rectorphp/rector/zipball/f7166355dcf47482f27be59169b0825995f51c7d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/scrivo/highlight.php/zipball/850f4b44697a2552e892ffe71490ba2733c2fc6e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/phpunit/zipball/75dfe79a2aa30085b7132bb84377c24062193f33
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/spatie/invade/zipball/b920f6411d21df4e8610a138e2e87ae4957d7f63
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/spatie/laravel-package-tools/zipball/f09a799850b1ed765103a4f0b4355006360c49a5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/spatie/laravel-permission/zipball/76adb1fc8d07c16a0721c35c4cc330b7a12598d7
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/spatie/shiki-php/zipball/a2e78a9ff8a1290b25d550be8fbf8285c13175c5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/console/zipball/732a9ca6cd9dfd940c639062d5edbde2f6727fb6
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/error-handler/zipball/48be2b0653594eea32dcef130cca1c811dcf25c2
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/event-dispatcher/zipball/9dddcddff1ef974ad87b3708e4b442dc38b2261d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/finder/zipball/fffe05569336549b20a1be64250b40516d6e8d06
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/html-sanitizer/zipball/5b0bbcc3600030b535dd0b17a0e8c56243f96d7f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/http-foundation/zipball/a70c745d4cea48dbd609f4075e5f5cbce453bd52
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/http-kernel/zipball/885211d4bed3f857b8c964011923528a55702aa5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/mailer/zipball/e472d35e230108231ccb7f51eb6b2100cac02ee4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/mime/zipball/bdb02729471be5d047a3ac4a69068748f1a6be7a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/process/zipball/2f8e1a6cdf590ca63715da4d3a7a3327404a523f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/routing/zipball/5d3fd7adf8896c2fdb54e2f0f35b1bcbd9e45090
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/string/zipball/d50e862cb0a0e0886f73ca1f31b865efbb795003
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/translation/zipball/7ef27c65d78886f7599fdd5c93d12c9243ecf44d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/uid/zipball/2498e9f81b7baa206f44de583f2f48350b90142c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/var-dumper/zipball/7e99bebcb3f90d8721890f2963463280848cba92
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/csv/zipball/6582ace29ae09ba5b07049d40ea13eb19c8b5073
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/flysystem-local/zipball/ab4f9d0d672f601b102936aa728801dd1a11968d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/flysystem/zipball/5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/uri-components/zipball/005f8693ce8c1f16f80e88a05cbf08da04c1c374
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/uri-interfaces/zipball/62ccc1a0435e1c54e10ee6022df28d6c04c2946c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/thephpleague/uri/zipball/8d587cddee53490f9b82bf203d3a9aa7ea4f9807
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/f0292ccf0ec75843d65027214426b6b163b48b41
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/ueberdosis/tiptap-php/zipball/458194ad0f8b0cf616fecdf451a84f9a6c1f3056
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)
  • https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/a03d426c8e9fb2c9c569d9deeb31a083292788bc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/iW4IRB /usr/bin/composer require awcodes/mason --no-interaction (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/f3hgeh /usr/bin/composer install --no-interaction a88a64b5^{commit} t/ -- } git conf�� github.accesstok/home/REDACTED/.cache/composer/vcs/https---github.com-filp-whoops.git/ git p/bin/git che/composer/vcsgit git mann/code-unit.g--git-dir git (http block)
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/lfqegS /usr/bin/composer require awcodes/mason:^3.0 --no-interaction en git t git bran�� nfig/composer/vegithub.accesstoken git } en sh /usr/local/sbin/--noprofile git (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Refactor ReportBuilder to utilize 'mason' package per review feedback Add Mason package integration plan for ReportBuilder refactor Feb 24, 2026
Copy link
Collaborator

@nielsdrost7 nielsdrost7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot
Prevent the need to run CLI commands like composer and running tests
Refactor ReportBuilder from custom Alpine.js drag-drop to awcodes/mason package per review feedback on #349. Mason provides battle-tested Filament-native drag-drop with better UX and maintainability.

Changes

  • Package Dependency: Added awcodes/mason:^3.0 to composer.json
  • Implementation Plan: Created MASON_REFACTOR_PLAN.md with complete technical specification

Architecture

Current: Custom BlockDTO + Alpine.js + manual drag-drop → JSON filesystem storage

Proposed: Mason Brick classes + Filament field → MasonStorageAdapter → JSON filesystem storage (unchanged)

Key Components

  • 10 Brick Classes: One per ReportBlockType (HeaderCompany, DetailItems, FooterTotals, etc.)
  • BricksCollection: Organizes bricks by band (header/detail/footer/custom)
  • MasonStorageAdapter: Converts Mason JSON ↔ Block structure, preserves filesystem storage
  • Blade Templates: Preview (editor) + render (PDF) views per brick

Example Brick

class HeaderCompanyBrick extends Brick
{
    public static function getId(): string { return 'header_company'; }
    
    public static function toHtml(array $config, array $data): ?string
    {
        return view('mason.bricks.header-company.index', [
            'config' => $config, // UI settings (show_logo, font_size, etc.)
            'data' => $data,     // Runtime data (company name, address, etc.)
        ])->render();
    }
    
    public static function configureBrickAction(Action $action): Action
    {
        return $action
            ->slideOver()
            ->schema([/* form fields */])
            ->action(fn($args, $data, $component) => /* insert brick */);
    }
}

Storage Strategy

Mason stores editor state as JSON. Adapter pattern maintains existing filesystem storage:

Mason Editor State → MasonStorageAdapter::masonToBlocks() → BlockDTO[] → ReportTemplateFileRepository → JSON files

Database remains unused for block storage.

Implementation Phases

  1. Setup: Install package, configure theme/assets, create preview layout
  2. Bricks: Implement 10 brick classes + views (start with HeaderCompany)
  3. Integration: Wire MasonStorageAdapter, update ReportBuilder page
  4. Testing: Update tests to use Mason's Faker helper
  5. Cleanup: Remove custom drag-drop code

continue

- Create 6 Mason Brick classes (HeaderCompany, HeaderClient, HeaderInvoiceMeta, DetailItems, FooterTotals, FooterNotes)
- Create ReportBricksCollection to organize bricks by section
- Add preview and render Blade templates for all bricks
- Implement MasonStorageAdapter to convert between Mason JSON and BlockDTO
- Create mason-preview layout for WYSIWYG editing experience
- Add 60+ translation keys for Mason UI elements
- Maintain filesystem JSON storage (no database changes)

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 24, 2026

@copilot
Prevent the need to run CLI commands like composer and running tests
Refactor ReportBuilder from custom Alpine.js drag-drop to awcodes/mason package per review feedback on #349. Mason pr...

I've implemented the Mason refactor without running CLI commands. Created all the code directly (commit c322383):

✅ Implemented:

  • 6 Mason Brick classes with full configuration forms
  • 12 Blade templates (preview + render for each brick)
  • ReportBricksCollection for organizing bricks
  • MasonStorageAdapter to maintain JSON filesystem storage
  • Mason preview layout with A4 styling
  • 60+ translation keys

Code Structure:

app/Mason/
├── Bricks/
│   ├── HeaderCompanyBrick.php
│   ├── HeaderClientBrick.php
│   ├── HeaderInvoiceMetaBrick.php
│   ├── DetailItemsBrick.php
│   ├── FooterTotalsBrick.php
│   └── FooterNotesBrick.php
└── Collections/
    └── ReportBricksCollection.php

resources/views/mason/bricks/
├── header-company/{preview,index}.blade.php
├── header-client/{preview,index}.blade.php
├── header-invoice-meta/{preview,index}.blade.php
├── detail-items/{preview,index}.blade.php
├── footer-totals/{preview,index}.blade.php
└── footer-notes/{preview,index}.blade.php

Each brick has configurable settings (show/hide fields, font sizes, alignment) via slideOver forms. The MasonStorageAdapter converts between Mason's JSON format and the existing BlockDTO structure to maintain filesystem storage.

Next: Update ReportBuilder page to use Mason field (requires package installation for testing)

Copilot AI changed the title Add Mason package integration plan for ReportBuilder refactor Implement Mason package integration for ReportBuilder refactor Feb 24, 2026
Copy link
Collaborator

@nielsdrost7 nielsdrost7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot
Remaining Work
Update ReportBuilder.php page to use Mason field instead of custom drag-drop
Wire MasonStorageAdapter into save/load workflow
Test drag-and-drop functionality in local environment
Update existing tests to use Mason's Faker helper

Update ReportBuilder Page to use Mason field.
do not install the package, just guess.

Generate phpunit tests
do not run the phpunit tests, just gamble that they work correctly

- Update ReportBuilder.php to support Mason field with MasonStorageAdapter
- Add masonContent property and loadMasonContent() method
- Implement saveMasonContent() for Mason-based saves with legacy fallback
- Add getMasonEditorSchema() for Filament Mason field configuration
- Fix syntax error in FooterTotalsBrick (wrong operator)
- Create MasonStorageAdapterTest with 10 test cases for conversion logic
- Create MasonBricksTest with 16 tests for all 6 brick classes
- Create ReportBricksCollectionTest with 7 tests for collection methods
- Create ReportBuilderMasonIntegrationTest with 8 integration tests
- All tests validate roundtrip conversion, config preservation, and multi-brick handling

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 24, 2026

@copilot
Remaining Work
Update ReportBuilder.php page to use Mason field instead of custom drag-drop
...

Completed all requested work (commit 94bbec6):

✅ ReportBuilder Mason Integration:

  • Updated ReportBuilder.php with Mason field support
  • Added masonContent property and loadMasonContent() method
  • Implemented saveMasonContent() with legacy fallback for backward compatibility
  • Added getMasonEditorSchema() for Filament Mason field configuration
  • Dual-mode operation: Mason (new) + Alpine.js (legacy)

✅ MasonStorageAdapter Workflow:

Save: Mason JSON → masonToBlocks() → BlockDTO[] → persistBlocks() → JSON files
Load: JSON files → loadBlocks() → BlockDTO[] → blocksToMason() → Mason JSON

✅ 41 PHPUnit Tests Generated (not run):

  • MasonStorageAdapterTest: 10 tests for JSON↔BlockDTO conversion
  • MasonBricksTest: 16 tests for all 6 brick classes
  • ReportBricksCollectionTest: 7 tests for collection methods
  • ReportBuilderMasonIntegrationTest: 8 integration tests

Tests cover:

  • Roundtrip conversions preserve data
  • Config persistence through storage
  • Multi-brick handling
  • Data source assignment
  • Invalid input handling

Fixed: Syntax error in FooterTotalsBrick.php (line 62: => to ??)

Architecture:

  • Mason field integrated via getMasonEditorSchema()
  • save() method detects format (Mason JSON vs legacy bands)
  • Zero database changes - maintains filesystem JSON storage
  • Full backward compatibility maintained

Ready for local testing with composer install to validate drag-and-drop UI.

Copy link
Collaborator

@nielsdrost7 nielsdrost7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot refactor away from the need for a BlockDTO. That probably also means that no transformation is needed, so maybe no storage adapter, not sure.
Come up with 5 more possible bricks to place on the report canvas and place them in the appropriate collection of course.
Make sure the bricks have correct field names.
Go through all the Migrations in the Modules in this application and correct the field names feom some of the names that are used at the moment (footer_notes). Stick to the fields that are available.
Besides Invoices, we're also going to report on Quotes, Projects, Clients (Customers), Tasks

- Create HeaderProjectBrick with project_number, project_name, dates, status fields
- Create HeaderQuoteMetaBrick with quote_number, quoted_at, expires_at fields
- Create DetailTasksBrick with task list table (number, name, description, price, status)
- Create FooterTermsBrick for terms field from entities
- Create FooterSummaryBrick for summary field from entities
- Update FooterNotesBrick to use 'footer' field instead of 'footer_notes'
- Create 10 Blade templates (preview + render) for new bricks
- Update ReportBricksCollection to include all 11 bricks
- Add 60+ translation keys for new bricks
- Create MasonTemplateStorage service - stores Mason JSON directly (no BlockDTO)
- Simplify ReportBuilder - removed BlockDTO/MasonStorageAdapter dependencies
- Storage now: Mason JSON → filesystem (no transformation)

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 24, 2026

@copilot refactor away from the need for a BlockDTO. That probably also means that no transformation is needed, so maybe no storage adapter, not sure.
Come up with 5 more possible bricks to place on ...

Completed all requested changes (commit 1022f7e):

✅ Refactored Away BlockDTO:

  • Removed all BlockDTO dependencies from ReportBuilder
  • Created MasonTemplateStorage service for direct JSON storage
  • No transformation needed - Mason JSON → filesystem
  • Simplified architecture: removed MasonStorageAdapter complexity

✅ Added 5 New Bricks (total: 11 bricks):

  1. HeaderProjectBrick - project_number, project_name, start_at, end_at, project_status
  2. HeaderQuoteMetaBrick - quote_number, quoted_at, quote_expires_at, quote_status
  3. DetailTasksBrick - task_number, task_name, description, due_at, task_price, task_status
  4. FooterTermsBrick - uses terms field
  5. FooterSummaryBrick - uses summary field

✅ Fixed Field Names (database-accurate):

  • FooterNotesBrick: footer_notesfooter (matches Invoice.footer, Quote.footer)
  • FooterTermsBrick: uses terms field (Invoice.terms, Quote.terms)
  • FooterSummaryBrick: uses summary field (Invoice.summary, Quote.summary)
  • All new bricks use actual database column names from models

✅ Multi-Entity Support:

  • Invoices: invoice_number, invoiced_at, invoice_items, terms, summary, footer
  • Quotes: quote_number, quoted_at, quote_expires_at, quote_items
  • Projects: project_number, project_name, start_at, end_at, project_status
  • Tasks: task_number, task_name, description, due_at, task_price, task_status
  • Clients: Supported in HeaderClientBrick

Created:

  • 5 new brick classes with full configuration forms
  • 10 new Blade templates (preview + render)
  • 60+ translation keys (project_header, quote_metadata, tasks_table, etc.)
  • MasonTemplateStorage service (replaces adapter pattern)
  • Updated ReportBricksCollection with all 11 bricks

Architecture Change:

  • Before: Mason → Adapter → BlockDTO → Service → JSON
  • After: Mason → MasonTemplateStorage → JSON (direct, no transformation)

Copilot AI changed the title Implement Mason package integration for ReportBuilder refactor Implement Mason package integration with 11 bricks and simplified storage Feb 24, 2026
Copy link
Collaborator

@nielsdrost7 nielsdrost7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot
see if you can make full use of:

    public static function configureBrickAction(Action $action): Action
    {
        return $action
            ->label('Support center')
            ->icon('heroicon-o-lifebuoy')
            ->action(function (array $arguments, array $data, Mason $component) {
                $brick = $component->getBrick($arguments['id']);

                if (blank($brick)) {
                    return;
                }

                $brickContent = [
                    'type'  => 'masonBrick',
                    'attrs' => [
                        'config'  => $data,
                        'id'      => $arguments['id'],
                        'label'   => $brick::getPreviewLabel($data),
                        'preview' => base64_encode($brick::toPreviewHtml($data)),
                    ],
                ];

                $component->runCommands(
                    [
                        EditorCommand::make(
                            'insertContentAt',
                            arguments: [
                                $arguments['dragPosition'],
                                $brickContent,
                            ],
                        ),
                    ],
                );
            });
    }

class BrickAction
{
    public const NAME = 'handleBrick';

    public static function make(): Action
    {
        return Action::make(static::NAME)
            ->bootUsing(function (Action $action, array $arguments, Mason $component): ?Action {
                $brick = $component->getBrick($arguments['id']);

                if (blank($brick)) {
                    return null;
                }

                return $brick::configureBrickAction($action);
            })
            ->fillForm(fn (array $arguments): ?array => $arguments['config'] ?? null)
            ->modalHeading(function (array $arguments, Mason $component) {
                $brick = $component->getBrick($arguments['id']);

                if (blank($brick)) {
                    return null;
                }

                return $brick::getLabel();
            })
            ->modalWidth(Width::Large)
            ->modalSubmitActionLabel(fn (array $arguments): ?string => match ($arguments['mode']) {
                'insert' => __('mason::mason.actions.brick.modal.actions.insert.label'),
                'edit' => __('mason::mason.actions.brick.modal.actions.save.label'),
                default => null,
            })
            ->action(function (array $arguments, array $data, Mason $component): void {
                $brick = $component->getBrick($arguments['id']);

                if (blank($brick)) {
                    return;
                }

                $brickContent = [
                    'type' => 'masonBrick',
                    'attrs' => [
                        'config' => $data,
                        'id' => $arguments['id'],
                        'label' => $brick::getLabel(),
                        'preview' => base64_encode($brick::toHtml($data)),
                    ],
                ];

                $mode = $arguments['mode'] ?? 'insert';
                $state = $component->getState() ?? [];

                if (! is_array($state)) {
                    $state = [];
                }

                // Insert at the dragged position
                if (filled($arguments['dragPosition'] ?? null)) {
                    $position = (int) $arguments['dragPosition'];
                    $component->executeCommands([
                        BrickCommand::insertBrick($brickContent, $position),
                    ]);

                    return;
                }

                // Edit existing block
                if ($mode === 'edit' && isset($arguments['blockIndex'])) {
                    $index = (int) $arguments['blockIndex'];
                    $component->executeCommands([
                        BrickCommand::updateBrick($index, $brickContent),
                    ]);

                    return;
                }

                // Insert at the end (default for insert mode)
                $position = count($state);
                $component->executeCommands([
                    BrickCommand::insertBrick($brickContent, $position),
                ]);
            });
    }
}

readonly class BrickCommand implements Arrayable
{
    public function __construct(
        public string $name,
        public array $arguments = [],
    ) {}

    public static function make(string $name, array $arguments = []): static
    {
        return app(static::class, ['name' => $name, 'arguments' => $arguments]);
    }

    public static function insertBrick(array $brick, int $position): static
    {
        return static::make('insertBrick', [
            'brick' => $brick,
            'position' => $position,
        ]);
    }

    public static function updateBrick(int $index, array $brick): static
    {
        return static::make('updateBrick', [
            'index' => $index,
            'brick' => $brick,
        ]);
    }

    public static function deleteBrick(int $index): static
    {
        return static::make('deleteBrick', [
            'index' => $index,
        ]);
    }

    public static function moveBrick(int $from, int $to): static
    {
        return static::make('moveBrick', [
            'from' => $from,
            'to' => $to,
        ]);
    }

    /**
     * @return array{name: string, arguments: array}
     */
    public function toArray(): array
    {
        return [
            'name' => $this->name,
            'arguments' => $this->arguments,
        ];
    }
class Section extends Brick
{
    public static function getId(): string
    {
        return 'section';
    }

    public static function getIcon(): string | Heroicon | Htmlable | null
    {
        return new HtmlString('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 20h.01M4 20h.01M8 20h.01M12 20h.01M16 20h.01M20 4h.01M4 4h.01M8 4h.01M12 4h.01M16 4v.01M4 9a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z"/></svg>');
    }

    /**
     * @throws Throwable
     */
    public static function toHtml(array $config, ?array $data = null): ?string
    {
        return view('mason::bricks.section.index', [
            'background_color' => $config['background_color'] ?? 'white',
            'image_position' => $config['image_position'] ?? null,
            'image_alignment' => $config['image_alignment'] ?? null,
            'image_rounded' => $config['image_rounded'] ?? false,
            'image_shadow' => $config['image_shadow'] ?? false,
            'text' => $config['text'] ?? null,
            'image' => $config['image'] ?? null,
        ])->render();
    }

    public static function configureBrickAction(Action $action): Action
    {
        return $action
            ->slideOver()
            ->schema([
                Radio::make('background_color')
                    ->options([
                        'white' => 'White',
                        'gray' => 'Gray',
                        'primary' => 'Primary',
                    ])
                    ->inline()
                    ->inlineLabel(false),
                FileUpload::make('image'),
                RichEditor::make('text'),
                FilamentSection::make('Variants')
                    ->schema([
                        Grid::make()->schema([
                            ToggleButtons::make('image_position')
                                ->options([
                                    'start' => 'Start',
                                    'end' => 'End',
                                ])
                                ->grouped(),
                            ToggleButtons::make('image_alignment')
                                ->options([
                                    'top' => 'Top',
                                    'middle' => 'Middle',
                                    'bottom' => 'Bottom',
                                ])
                                ->grouped(),
                            ToggleButtons::make('image_rounded')
                                ->options([
                                    false => 'No',
                                    true => 'Yes',
                                ])
                                ->grouped(),
                            ToggleButtons::make('image_shadow')
                                ->options([
                                    false => 'No',
                                    true => 'Yes',
                                ])
                                ->grouped(),
                        ]),
                    ]),
            ]);
    }
}

if you cannot find usage for it in the current bricks, make up some new bricks. Make sure you have phpunit tests.
The idea is that after a brick gets placed of moved some sort of "saveAction" kicks in after which the .json gets written to the filesystem, the brick gets stored, etcetera. It's a drag/drop system where lots of bricks gets to placed on reports canvas either side-by-side in various configurations (Section?) Or just 1 entire width (detail bricks for Invoices and Quotes and other reports). Dragging/Dropping saves and pressing some sort of edit button shows slideover panel with options for font face, font size etcetera. After being done with all bricks the users shouldn't need to invent their own bricks even though they can by duplicating an existing (system) brick and editing it.

All driven by phpunit tests

- Update all 11 brick classes to use simplified fillForm pattern
- Change from manual config extraction to: fillForm(fn ($args) => $args['config'] ?? null)
- Makes full use of Mason's BrickAction pattern as shown in documentation
- Cleaner, more maintainable code that follows Mason best practices
- Reduces code duplication across all brick configuration actions

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 25, 2026

@copilot

->fillForm(fn (array $arguments): array => [

...

The brick configuration is saved as JSON directly to the filesystem, not in a database table.

How it works:

  1. When brick is dropped/configured: The Mason editor creates a JSON structure where each brick stores its config in the attrs.config property:
{
  "type": "masonBrick",
  "attrs": {
    "id": "header_company",
    "config": {
      "show_vat_id": true,
      "show_phone": true,
      "font_size": 10,
      "text_align": "left"
    }
  }
}
  1. Save flow: ReportBuilder::save()MasonTemplateStorage::save() → Writes entire Mason JSON to filesystem at storage/app/report_templates/{company_id}/mason_{slug}.json

  2. Load flow: MasonTemplateStorage::load() reads the JSON file, and Mason extracts each brick's config from attrs.config to populate the form via fillForm(fn ($args) => $args['config'] ?? null)

No database involvement - the entire template (all bricks + their individual configs) is stored as a single JSON file per report template. Each brick's settings (checkboxes, dropdowns, etc.) are nested in the JSON structure.

This is why we refactored away from BlockDTO - Mason handles the entire storage format natively, and we just persist it as-is to the filesystem.

@nielsdrost7
Copy link
Collaborator

@coderabbitai full review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 25, 2026

✅ Actions performed

Full review triggered.

@coderabbitai

This comment was marked as outdated.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

Note

Due to the large number of review comments, Critical severity comments were prioritized as inline comments.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php (2)

289-413: ⚠️ Potential issue | 🔴 Critical

Dead block-based methods reference a removed property — runtime crash.

The property $blocks was replaced by $masonContent (line 29), but these methods still reference $this->blocks:

  • updateBlockPosition (line 292)
  • addBlock (line 333)
  • cloneBlock (line 360, 366, 388)
  • deleteBlock (line 395, 399)
  • updateBlockConfig (line 405, 409)

Additionally, these methods use undefined classes (GridSnapperService, GridPositionDTO, BlockDTO, BlockTransformer, ReportTemplateService) that are not imported. These are remnants of the pre-Mason block system and should be removed entirely.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php`
around lines 289 - 413, Remove the obsolete block-based handlers that reference
the removed $blocks property and legacy Mason classes: delete the methods
updateBlockPosition, addBlock, cloneBlock, deleteBlock, and updateBlockConfig
(including their #[On(...)] attributes) from ReportBuilder.php, and also remove
any imports/usages of GridSnapperService, GridPositionDTO, BlockDTO,
BlockTransformer, and ReportTemplateService so no dead/undefined symbols remain;
ensure any event wiring for those handlers is cleaned up so the class only uses
$masonContent and current Mason APIs.

54-286: 🛠️ Refactor suggestion | 🟠 Major

Excessive debug logging with inline FQCNs — clean up before merge.

There are ~20 inline \Illuminate\Support\Facades\Log::debug(...) calls throughout configureBlockAction(). This is problematic for two reasons:

  1. Inline FQCN: The Log facade should be imported at the top of the file per coding guidelines.
  2. Volume: This level of debug logging (including full data payloads at lines 128–140, 204–216) will be noisy in production logs and may inadvertently log sensitive block configuration data.

If these are temporary debugging aids, they should be removed before merge. If persistent logging is needed, use a proper import and reduce to key checkpoints only.

As per coding guidelines, "Always use full namespace imports instead of aliased imports like use Log".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php`
around lines 54 - 286, The configureBlockAction() handler contains many inline
\Illuminate\Support\Facades\Log::debug(...) calls (in fillForm, mountUsing,
action) which violate the import guideline and produce excessive noisy logs;
import the Log facade at the top (use Illuminate\Support\Facades\Log) and remove
or drastically reduce debug calls inside ReportBuilder::configureBlockAction(),
keeping only a few high-level info/warning logs (e.g., block lookup
success/failure and final block update) and avoid logging full payloads (fields,
data, blockRecord) — replace heavy payload logs with small summaries (counts,
ids, booleans) or remove entirely; update calls in the fillForm(), mountUsing(),
and action() closures to use the imported Log symbol instead of inline FQCNs.
♻️ Duplicate comments (11)
resources/views/mason/bricks/detail-quote-project/preview.blade.php (1)

1-54: Same issues as detail-invoice-project/preview.blade.php.

This file is byte-for-byte identical to detail-invoice-project/preview.blade.php. The translation key mismatch (ip.task_description vs ip.description) and the shared-partial refactor opportunity flagged there both apply here equally.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/detail-quote-project/preview.blade.php` around
lines 1 - 54, This template is a byte-for-byte duplicate of the invoice project
preview and repeats the wrong translation key and duplicated markup; change the
translation call trans('ip.task_description') to trans('ip.description') to
match the header, and refactor the repeated table into a shared partial (used by
both detail-quote-project and detail-invoice-project previews) that accepts the
config array (keys: show_project_name, show_task_name, show_description,
show_hours, show_rate, show_total, alternating_rows, font_size) so both
templates render the same table without duplication.
app/Mason/Bricks/FooterSummaryBrick.php (1)

74-96: Same argument-validation gap as previously flagged.

Lines 75 and 95 directly index action arguments (id, dragPosition) without presence checks, matching the already reported issue.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/FooterSummaryBrick.php` around lines 74 - 96, The action
callback in FooterSummaryBrick.php uses $arguments['id'] and
$arguments['dragPosition'] without presence checks; update the anonymous
function passed to ->action(...) to validate these keys before using them (e.g.,
use isset/array_key_exists and type-checks), return early or handle the error if
missing, and only call $component->getBrick($arguments['id']) and
EditorCommand::make(...) when the validated values exist; reference the
anonymous action, getBrick, and the EditorCommand invocation to locate and fix
the checks.
app/Mason/Bricks/DetailInvoiceProjectBrick.php (1)

88-110: Same action-argument safety issue as other bricks.

Lines 89 and 109 assume id and dragPosition are always present in $arguments, matching the already reported runtime-safety gap.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailInvoiceProjectBrick.php` around lines 88 - 110, The
action closure in DetailInvoiceProjectBrick.php assumes $arguments['id'] and
$arguments['dragPosition'] exist which can cause runtime errors; update the
closure (the anonymous function passed to ->action) to first validate that
$arguments contains both 'id' and 'dragPosition' (and return early or throw a
controlled exception) before calling $component->getBrick($arguments['id']) or
passing $arguments['dragPosition'] into
\Awcodes\Mason\Actions\EditorCommand::make('insertContentAt', ...). Ensure the
checks are applied around the code that builds $brickContent and the call to
$component->runCommands so getBrick, $brick::toPreviewHtml, and
EditorCommand::make only run when those keys are present.
app/Mason/Bricks/DetailQuoteProjectBrick.php (1)

88-110: Same unguarded action-argument access pattern.

Lines 89 and 109 use $arguments[...] keys directly without existence checks, identical to the previously flagged issue.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailQuoteProjectBrick.php` around lines 88 - 110, The
closure passed to ->action accesses $arguments['id'] and
$arguments['dragPosition'] without checks; update the action closure (the
anonymous function that calls $component->getBrick(...) and
EditorCommand::make('insertContentAt', ...)) to validate those keys first (e.g.
use isset/array_key_exists or null-coalescing and early return) before using
them — ensure you return early if 'id' is missing or invalid and likewise guard
'dragPosition' before calling insertContentAt so neither undefined index is ever
accessed.
resources/views/mason/bricks/footer-summary/preview.blade.php (1)

4-5: Same raw-HTML rendering concern as the footer terms view.

This follows the same {!! !!} pattern and should use the same sanitization policy already flagged.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/footer-summary/preview.blade.php` around lines 4
- 5, Replace the raw unescaped rendering of $config['summary_content'] (the {!!
$config['summary_content'] !!} expression) with a sanitized or escaped output;
either use the same sanitization helper used in the footer terms view (e.g.,
cleanHtml / sanitizeHtml helper) and render the cleaned string with {!!
cleanHtml($config['summary_content']) !!}, or escape fully with {{
$config['summary_content'] }} if HTML is not required. Ensure you reference and
reuse the existing sanitization policy/helper so $config['summary_content'] is
cleaned before rendering.
resources/views/mason/bricks/footer-summary/index.blade.php (1)

2-5: Same raw-HTML rendering concern as other footer brick templates.

This should follow the same sanitization approach already flagged for {!! !!} content.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/footer-summary/index.blade.php` around lines 2 -
5, The template currently outputs raw HTML for {!! $config['summary_content']
!!} and {!! $data['summary'] !!}; change these to use sanitized or escaped
output by replacing the raw Blade unescaped echoes with either the Blade escaped
echo ({{ ... }}) or by passing the values through the project’s HTML sanitizer
helper (the same sanitizer used by other footer brick templates) before
rendering, so the template renders sanitized HTML instead of raw unescaped
content.
app/Mason/Bricks/DetailTasksBrick.php (1)

1-119: LGTM aside from cross-cutting concerns.

Correct and consistent with the other bricks. The inline FQCN and duplicated action callback issues flagged on DetailInvoiceProductBrick.php apply here as well.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailTasksBrick.php` around lines 1 - 119, The closure
passed to configureBrickAction(...) contains inline FQCNs (\Awcodes\Mason\Mason
and \Awcodes\Mason\Actions\EditorCommand) and duplicates the same action
callback pattern used in other bricks; replace those inline FQCNs with
top-of-file use statements and extract the anonymous action callback into a
named method to avoid duplication. Specifically, add use Awcodes\Mason\Mason;
and use Awcodes\Mason\Actions\EditorCommand; to the imports, and move the
closure body (the code that resolves $brick, builds $brickContent, and calls
$component->runCommands(...)) into a private static method (e.g., private static
function handleConfigureAction(array $arguments, array $data, Mason $component):
void) and call that method from ->action(...) to keep configureBrickAction
concise and consistent with other bricks.
app/Mason/Bricks/FooterTermsBrick.php (1)

1-102: LGTM aside from cross-cutting concerns.

Implementation is correct and consistent with other footer bricks. The inline FQCN and duplicated action callback issues flagged on DetailInvoiceProductBrick.php apply here as well.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/FooterTermsBrick.php` around lines 1 - 102, The
configureBrickAction method currently uses inline FQCNs (\Awcodes\Mason\Mason
and \Awcodes\Mason\Actions\EditorCommand) and an inline closure that duplicates
callback logic elsewhere; fix by importing Awcodes\Mason\Mason and
Awcodes\Mason\Actions\EditorCommand with use statements at the top and replace
the inline backslashed class names in configureBrickAction, and extract the
closure body into a reusable private static method (e.g., private static
function handleConfigureAction(array $arguments, array $data, Mason $component))
then pass that method as the action callable (e.g., ->action([self::class,
'handleConfigureAction'])) so configureBrickAction stays concise and avoids
duplicated callbacks while still calling $component->getBrick(...) and
EditorCommand::make(...).
app/Mason/Bricks/DetailCustomerAgingBrick.php (1)

98-124: Duplicated action callback and inline FQCNs — same as other bricks.

Cross-cutting concerns flagged on DetailInvoiceProductBrick.php apply here.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailCustomerAgingBrick.php` around lines 98 - 124, This
action callback in DetailCustomerAgingBrick (the closure passed to ->action)
duplicates logic found in other bricks (e.g., DetailInvoiceProductBrick):
extract the shared logic into a single private method (e.g.,
handleInsertContentAction(array $arguments, array $data, \Awcodes\Mason\Mason
$component) or into a reusable trait like
MasonBrickActions::insertContentAction) and have ->action refer to that
method/trait instead of repeating the closure; also remove inline FQCNs by
importing Awcodes\Mason\Actions\EditorCommand and Awcodes\Mason\Mason at the top
and use the imported class names (EditorCommand::make, Mason) to keep the file
consistent with the other bricks and eliminate duplication.
app/Mason/Bricks/FooterTotalsBrick.php (1)

1-119: LGTM aside from cross-cutting concerns.

Implementation is correct and consistent. The inline FQCN and duplicated action callback issues flagged on DetailInvoiceProductBrick.php apply here as well.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/FooterTotalsBrick.php` around lines 1 - 119, The
configureBrickAction method currently uses inline FQCNs (\Awcodes\Mason\Mason
and \Awcodes\Mason\Actions\EditorCommand::make) and an inlined closure
duplicated across bricks; fix by adding top-level use statements for
Awcodes\Mason\Mason and Awcodes\Mason\Actions\EditorCommand, replace the inline
FQCNs in configureBrickAction with those imported class names, and extract the
closure passed to ->action(...) into a private static method (e.g. private
static function configureActionHandler(array $arguments, array $data, Mason
$component)) that contains the getBrick, getPreviewLabel, toPreviewHtml and
runCommands logic; then pass that method as the callable to
->action([self::class, 'configureActionHandler']) so other bricks can reuse the
handler or you can move it into a shared trait for deduplication.
app/Mason/Bricks/HeaderClientBrick.php (1)

1-110: LGTM aside from cross-cutting concerns.

The brick implementation is correct and consistent. The inline FQCN and duplicated action callback issues flagged on DetailInvoiceProductBrick.php apply here as well.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/HeaderClientBrick.php` around lines 1 - 110, The
configureBrickAction method uses inline FQCNs (\Awcodes\Mason\Mason and
\Awcodes\Mason\Actions\EditorCommand::make) and an identical inline action
closure duplicated across bricks; extract the closure into a reusable private
static method (e.g., private static function handleConfigureAction(array
$arguments, array $data, Mason $component): void) and update
configureBrickAction to pass that method as the action callable, and add
top-level use statements for Mason and EditorCommand to replace the inline FQCNs
and EditorCommand::make usages; ensure the extracted method performs the same
logic (fetching $brick via $component->getBrick, building $brickContent and
calling $component->runCommands) and that configureBrickAction calls
->action([self::class, 'handleConfigureAction']).
🟠 Major comments (15)
resources/views/mason/bricks/footer-terms/preview.blade.php-4-8 (1)

4-8: ⚠️ Potential issue | 🟠 Major

Unescaped {!! !!} output of user-supplied config field is an XSS risk.

$config['terms_content'] is rendered raw. If this value originates from a rich-text editor field in the brick's configureBrickAction, the content must be sanitized before storage and before re-rendering — especially since the same $config array will be used in the production index.blade.php render path (not just this preview).

Recommended mitigations (pick one):

  1. Run the value through an HTML sanitizer (e.g., mews/purifier or strip_tags with an explicit allowlist) in the FooterTermsBrick class before persisting.
  2. If the field is plain text only, use {{ nl2br(e($config['terms_content'])) }} here instead of {!! !!}.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/footer-terms/preview.blade.php` around lines 4 -
8, The preview blade renders raw user content with {!! $config['terms_content']
!!}, creating an XSS risk; modify the FooterTermsBrick (e.g., in
configureBrickAction or the persistence logic) to sanitize the terms_content
with a trusted HTML sanitizer (like mews/purifier or strip_tags with an explicit
allowlist) before saving the $config array, and also update preview.blade.php
and index.blade.php to use escaped output (e.g., {{
nl2br(e($config['terms_content'])) }}) when the field is plain-text-only or to
render the already-sanitized HTML safely; ensure references to
$config['terms_content'], FooterTermsBrick, configureBrickAction,
preview.blade.php and index.blade.php are updated accordingly.
resources/views/mason/bricks/detail-quote-project/index.blade.php-31-40 (1)

31-40: ⚠️ Potential issue | 🟠 Major

Use dynamic colspan for project group headers.

Line 39 hardcodes colspan="6", but columns are user-configurable. When columns are hidden, the table becomes structurally invalid and renders incorrectly.

🛠️ Proposed fix
         <tbody>
             `@php`
                 $currentProject = null;
                 $items = $data['project_items'] ?? [];
+                $visibleColumnCount = collect([
+                    $config['show_project_name'] ?? true,
+                    $config['show_task_name'] ?? true,
+                    $config['show_description'] ?? true,
+                    $config['show_hours'] ?? true,
+                    $config['show_rate'] ?? true,
+                    $config['show_total'] ?? true,
+                ])->filter()->count();
             `@endphp`
             `@foreach`($items as $index => $item)
                 `@if`(($config['group_by_project'] ?? true) && $currentProject !== ($item['project_name'] ?? ''))
                     `@php` $currentProject = $item['project_name'] ?? ''; `@endphp`
                     <tr style="background-color: `#e5e7eb`; font-weight: bold;">
-                        <td colspan="6">{{ $currentProject }}</td>
+                        <td colspan="{{ max($visibleColumnCount, 1) }}">{{ $currentProject }}</td>
                     </tr>
                 `@endif`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/detail-quote-project/index.blade.php` around
lines 31 - 40, The project header row uses a hardcoded colspan="6" (see the <td
colspan="6"> inside the block that checks $config['group_by_project'] and
$currentProject), which breaks layout when columns are user-configurable; fix by
computing a dynamic $colspan before rendering the header using the actual
columns array (e.g. $columns or $data['columns'] or the visible columns
collection), e.g. set `@php` $colspan = max(1, count($columns ?? $data['columns']
?? [])); `@endphp` and replace the literal colspan="6" with colspan="{{ $colspan
}}" so the <tr> for $currentProject spans the correct number of table columns.
Modules/Core/Services/MasonStorageAdapter.php-96-107 (1)

96-107: 🛠️ Refactor suggestion | 🟠 Major

Use BlockTransformer instead of manual DTO assembly in this service.

This mapping is being built manually inside a Service. Centralizing it through the transformer avoids drift and keeps DTO construction rules consistent.

As per coding guidelines, "**/Services/*.php: Services must not build DTOs manually; they must use Transformers directly".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Modules/Core/Services/MasonStorageAdapter.php` around lines 96 - 107, Replace
the manual BlockDTO assembly in MasonStorageAdapter with the centralized
BlockTransformer: inject or obtain the BlockTransformer in MasonStorageAdapter,
build a plain array/attributes object containing id, type, position, config,
label, is_cloneable, is_cloned, cloned_from and data_source (using
getDataSourceForType($type)), then call the transformer (e.g.
$this->blockTransformer->transform(...) or ->fromArray(...)) to produce the
BlockDTO instead of new BlockDTO() + setters; remove the manual setId/... chain
and ensure the constructor or service factory is updated to accept the
BlockTransformer dependency.
Modules/Core/Services/MasonTemplateStorage.php-17-21 (1)

17-21: ⚠️ Potential issue | 🟠 Major

Validate Mason payloads before writing to storage.

save() currently accepts any string and persists it. Invalid/non-Mason JSON can be stored and later break editor load/render paths.

💡 Proposed fix
     public function save(ReportTemplate $template, string $masonJson): void
     {
+        $decoded = json_decode($masonJson, true);
+        if (
+            json_last_error() !== JSON_ERROR_NONE ||
+            !is_array($decoded) ||
+            ($decoded['type'] ?? null) !== 'doc' ||
+            !is_array($decoded['content'] ?? null)
+        ) {
+            throw new \InvalidArgumentException('Invalid Mason document payload.');
+        }
+
         $path = $this->getTemplatePath($template);
         Storage::disk('report_templates')->put($path, $masonJson);
     }

As per coding guidelines, "Validate inputs at the start of methods and abort/throw exceptions early".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Modules/Core/Services/MasonTemplateStorage.php` around lines 17 - 21, The
save() method in MasonTemplateStorage currently writes any string to disk; add
input validation at the start of save(ReportTemplate $template, string
$masonJson): decode the JSON (json_decode) and verify it is valid JSON and
conforms to the expected Mason structure (e.g., required top-level keys/types
for a Mason template); if decoding fails or the structure is invalid throw an
exception (InvalidArgumentException or a domain-specific exception) before
calling getTemplatePath() and Storage::disk('report_templates')->put(...), so
only validated Mason payloads are persisted.
resources/views/mason/bricks/detail-invoice-project/index.blade.php-31-40 (1)

31-40: ⚠️ Potential issue | 🟠 Major

Compute group-header colspan dynamically.

The group row uses a fixed colspan="6", which breaks table alignment when any show_* column is disabled.

💡 Proposed fix
             `@php`
                 $currentProject = null;
                 $items = $data['project_items'] ?? [];
+                $visibleColumns = count(array_filter([
+                    $config['show_project_name'] ?? true,
+                    $config['show_task_name'] ?? true,
+                    $config['show_description'] ?? true,
+                    $config['show_hours'] ?? true,
+                    $config['show_rate'] ?? true,
+                    $config['show_total'] ?? true,
+                ]));
             `@endphp`
             `@foreach`($items as $index => $item)
                 `@if`(($config['group_by_project'] ?? true) && $currentProject !== ($item['project_name'] ?? ''))
                     `@php` $currentProject = $item['project_name'] ?? ''; `@endphp`
                     <tr style="background-color: `#e5e7eb`; font-weight: bold;">
-                        <td colspan="6">{{ $currentProject }}</td>
+                        <td colspan="{{ max($visibleColumns, 1) }}">{{ $currentProject }}</td>
                     </tr>
                 `@endif`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/detail-invoice-project/index.blade.php` around
lines 31 - 40, The group-header row uses a hardcoded colspan=6 which misaligns
when some columns are hidden; compute a dynamic $colspan before rendering the
row by counting enabled columns from the config (e.g.
$config['show_description'], $config['show_unit'], $config['show_quantity'],
$config['show_unit_price'], $config['show_total'] and any always-visible
columns) and then render the row with <td colspan="{{ $colspan }}">{{
$currentProject }}</td>; update the block around currentProject (and any related
header/footer rows) to use this computed $colspan so the table stays aligned
when toggling columns.
Modules/Core/Services/MasonStorageAdapter.php-32-35 (1)

32-35: ⚠️ Potential issue | 🟠 Major

Guard malformed content nodes before offset access.

$item['type'] assumes every node is an array. A malformed entry (e.g., string/null) will throw and abort conversion.

💡 Proposed fix
         foreach ($masonData['content'] as $item) {
+            if (!is_array($item)) {
+                continue;
+            }
+
             if (($item['type'] ?? null) === 'masonBrick') {
                 $attrs = $item['attrs'] ?? [];
                 $block = $this->createBlockFromMasonBrick($attrs);

As per coding guidelines, "Validate inputs at the start of methods and abort/throw exceptions early".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Modules/Core/Services/MasonStorageAdapter.php` around lines 32 - 35, The loop
iterating $masonData['content'] accesses $item['type'] directly which will break
if $item is not an array; update the loop in MasonStorageAdapter (the foreach
that calls createBlockFromMasonBrick) to validate each $item is an array before
offset access—either skip non-array entries or throw/return an early exception
per guidelines—and only then read ['type'] and ['attrs'] and call
createBlockFromMasonBrick($attrs); ensure the validation is done at the top of
the loop to guard malformed nodes.
resources/views/mason/bricks/header-company/index.blade.php-9-12 (1)

9-12: ⚠️ Potential issue | 🟠 Major

Validate/allowlist logo_path before using it as image source.

The template currently trusts logo_path directly for src. Restrict to known-safe storage/CDN paths (or validated URLs) before rendering to avoid untrusted resource loading.

🔒 Example guard
+@php
+    $logoPath = $data['company']['logo_path'] ?? null;
+    $safeLogoPath = is_string($logoPath)
+        && (str_starts_with($logoPath, '/storage/') || str_starts_with($logoPath, 'https://cdn.example.com/'));
+@endphp
-            `@if`(($config['show_logo'] ?? true) && isset($data['company']['logo_path']))
+            `@if`(($config['show_logo'] ?? true) && $safeLogoPath)
                 <td width="100" valign="top">
-                    <img src="{{ $data['company']['logo_path'] }}" alt="{{ trans('ip.logo') }}" style="max-width: 100px; max-height: 80px;">
+                    <img src="{{ $logoPath }}" alt="{{ trans('ip.logo') }}" style="max-width: 100px; max-height: 80px;">
                 </td>
             `@endif`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/header-company/index.blade.php` around lines 9 -
12, The template is using $data['company']['logo_path'] directly in the IMG src;
update the view to validate/allowlist the path before rendering by performing a
safe-check (e.g., call a helper like
isValidLogoPath($data['company']['logo_path']) or use Str::startsWith/
filter_var to allow only approved storage/CDN prefixes or valid HTTPS URLs) and
only render the <img> when that check passes; ensure the check references the
same symbol ($data['company']['logo_path']) and return a sanitized/absolute URL
(or fallback to a local placeholder) if validation fails.
resources/views/mason/bricks/footer-totals/index.blade.php-6-35 (1)

6-35: ⚠️ Potential issue | 🟠 Major

Totals alignment setting is overridden by hardcoded cell alignment.

Line 6 allows configurable alignment, but Lines 10-35 lock output to right-aligned cells, so text_align changes don’t take effect.

🎯 Suggested fix
+@php($align = $config['text_align'] ?? 'right')
 <div class="totals-section" style="font-size: {{ $config['font_size'] ?? 10 }}pt; text-align: {{ $config['text_align'] ?? 'right' }};">
     <table width="40%" align="right" cellpadding="4" cellspacing="0">
         `@if`($config['show_subtotal'] ?? true)
             <tr>
-                <td align="right"><strong>{{ trans('ip.subtotal') }}:</strong></td>
-                <td align="right" width="30%">{{ $data['totals']['subtotal'] ?? '0.00' }}</td>
+                <td align="{{ $align }}"><strong>{{ trans('ip.subtotal') }}:</strong></td>
+                <td align="{{ $align }}" width="30%">{{ $data['totals']['subtotal'] ?? '0.00' }}</td>
             </tr>
         `@endif`

Apply the same replacement pattern to all total rows.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/footer-totals/index.blade.php` around lines 6 -
35, The template hardcodes cell alignment (align="right" and style="text-align:
right") so $config['text_align'] is ignored; update all <table> and <td>
alignment attributes in this Blade view (the totals-section block using $config
and $data['totals']) to use the configurable value ($config['text_align'] ??
'right') instead of literal "right"—apply the change to subtotal, tax, total
(both td elements and the tr style that includes font-size), paid and balance
rows so every cell and the table align attribute follow $config['text_align'].
resources/views/mason/bricks/header-invoice-meta/index.blade.php-6-30 (1)

6-30: ⚠️ Potential issue | 🟠 Major

text_align setting is currently ineffective for cell content.

Line 6 sets text-align from config, but Lines 10-29 force every cell to align="right", overriding user configuration.

🎯 Suggested fix
+@php($align = $config['text_align'] ?? 'right')
 <div class="invoice-metadata" style="font-size: {{ $config['font_size'] ?? 10 }}pt; text-align: {{ $config['text_align'] ?? 'right' }};">
     <table width="100%" cellpadding="3" cellspacing="0">
         `@if`($config['show_invoice_number'] ?? true)
             <tr>
-                <td align="right"><strong>{{ trans('ip.invoice_number') }}:</strong></td>
-                <td align="right">{{ $data['invoice']['number'] ?? '' }}</td>
+                <td align="{{ $align }}"><strong>{{ trans('ip.invoice_number') }}:</strong></td>
+                <td align="{{ $align }}">{{ $data['invoice']['number'] ?? '' }}</td>
             </tr>
         `@endif`

Apply the same replacement pattern to the remaining rows.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/header-invoice-meta/index.blade.php` around
lines 6 - 30, The template sets text-align on the wrapping div
(invoice-metadata) but each table cell uses hardcoded align="right", overriding
$config['text_align']; update every td align attribute in the invoice metadata
rows (the invoice_number, invoice_date, due_date, po_number rows) to use the
configured value instead of the literal "right" (e.g. replace align="right" with
align="{{ $config['text_align'] ?? 'right' }}" so the $config['text_align']
setting is honored for all cells).
resources/views/mason/bricks/detail-customer-aging/preview.blade.php-73-73 (1)

73-73: ⚠️ Potential issue | 🟠 Major

Footer colspan calculation is incorrect for partial column visibility.

Line 73 only yields 3 or 1. When exactly two leading columns are enabled, totals row becomes misaligned.

📐 Suggested fix
+        `@php`
+            $labelColspan = (int) ($config['show_invoice_number'] ?? true)
+                + (int) ($config['show_invoice_date'] ?? true)
+                + (int) ($config['show_due_date'] ?? true);
+        `@endphp`
         <tfoot class="bg-gray-200 font-bold">
             <tr>
-                <td colspan="{{ $config['show_invoice_number'] && $config['show_invoice_date'] && $config['show_due_date'] ? '3' : '1' }}" class="p-2">{{ trans('ip.total') }}</td>
+                <td colspan="{{ max($labelColspan, 1) }}" class="p-2">{{ trans('ip.total') }}</td>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/detail-customer-aging/preview.blade.php` at line
73, The colspan logic for the totals cell only toggles between '3' and '1',
which misaligns when exactly two of the leading columns are shown; update the
template to compute the colspan as the sum of the three visibility flags
($config['show_invoice_number'], $config['show_invoice_date'],
$config['show_due_date']) and fall back to 1 if the sum is 0, then use that
computed value in the colspan attribute for the totals <td> so the totals row
aligns with any combination of visible columns.
Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php-27-33 (1)

27-33: ⚠️ Potential issue | 🟠 Major

Avoid creating a second company in setUp() without syncing tenant context.

Line 27 replaces the company prepared by AbstractAdminPanelTestCase::setUp(), but the parent already seeds session tenant state for its own company. This can introduce tenant-context drift in feature tests.

Suggested fix
-        $this->company = Company::factory()->create();
         $this->service = app(ReportTemplateService::class);
         $this->adapter = app(MasonStorageAdapter::class);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php` around
lines 27 - 33, The test overrides the tenant company by recreating
$this->company in ReportBuilderMasonIntegrationTest::setUp(), which breaks the
parent AbstractAdminPanelTestCase session/tenant context; instead remove the new
Company::factory()->create() call and reuse the parent-seeded $this->company
(or, if a new company is required, update the tenant/session context after
creating it). Locate the setUp() method in ReportBuilderMasonIntegrationTest and
either delete the line assigning $this->company = Company::factory()->create()
or add logic to sync the tenant/session (same mechanism used by
AbstractAdminPanelTestCase::setUp()) before creating ReportTemplate via
ReportTemplate::factory()->create([ 'company_id' => $this->company->id, ... ])
so tests run under the correct tenant.
app/Mason/Bricks/HeaderCompanyBrick.php-93-115 (1)

93-115: ⚠️ Potential issue | 🟠 Major

Validate required action arguments before array access.

$arguments['id'] and $arguments['dragPosition'] are accessed directly. Missing keys will trigger runtime notices/errors.

Suggested fix
             ->action(function (array $arguments, array $data, \Awcodes\Mason\Mason $component) {
-                $brick = $component->getBrick($arguments['id']);
+                $brickId = $arguments['id'] ?? null;
+                $dragPosition = $arguments['dragPosition'] ?? null;
+
+                if (blank($brickId) || $dragPosition === null) {
+                    return;
+                }
+
+                $brick = $component->getBrick($brickId);

                 if (blank($brick)) {
                     return;
                 }

                 $brickContent = [
                     'type' => 'masonBrick',
                     'attrs' => [
                         'config' => $data,
-                        'id' => $arguments['id'],
+                        'id' => $brickId,
                         'label' => $brick::getPreviewLabel($data),
                         'preview' => base64_encode($brick::toPreviewHtml($data)),
                     ],
                 ];

                 $component->runCommands([
                     \Awcodes\Mason\Actions\EditorCommand::make(
                         'insertContentAt',
                         arguments: [
-                            $arguments['dragPosition'],
+                            $dragPosition,
                             $brickContent,
                         ],
                     ),
                 ]);
             });
As per coding guidelines `Validate inputs at the start of methods and abort/throw exceptions early`.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/HeaderCompanyBrick.php` around lines 93 - 115, The action
closure uses $arguments['id'] and $arguments['dragPosition'] without validation;
update the closure (the anonymous function passed to ->action in
HeaderCompanyBrick) to validate those required keys at the start (e.g.,
isset/array_key_exists or an early guard) and abort/return/throw a clear
exception if missing, before calling $component->getBrick(...) or
$component->runCommands(...); ensure subsequent code (calls to getBrick,
building $brickContent, and EditorCommand::make) only runs when both 'id' and
'dragPosition' are present and valid.
app/Mason/Bricks/HeaderQuoteMetaBrick.php-85-111 (1)

85-111: 🛠️ Refactor suggestion | 🟠 Major

Extract the duplicated action closure into a shared trait or base class.

The ->action(function (...) { ... }) closure (lines 85–111) is identical across all 17 brick classes in this PR. This is ~20 lines × 17 bricks = ~340 lines of pure duplication. Extract it into a reusable method on a shared trait or an intermediate base class.

♻️ Example: Introduce a trait to DRY up the action closure

Create a trait, e.g., app/Mason/Bricks/Concerns/InsertsBrickContent.php:

<?php

namespace App\Mason\Bricks\Concerns;

trait InsertsBrickContent
{
    protected static function insertBrickAction(): \Closure
    {
        return function (array $arguments, array $data, \Awcodes\Mason\Mason $component) {
            $brick = $component->getBrick($arguments['id']);

            if (blank($brick)) {
                return;
            }

            $brickContent = [
                'type' => 'masonBrick',
                'attrs' => [
                    'config' => $data,
                    'id' => $arguments['id'],
                    'label' => $brick::getPreviewLabel($data),
                    'preview' => base64_encode($brick::toPreviewHtml($data)),
                ],
            ];

            $component->runCommands([
                \Awcodes\Mason\Actions\EditorCommand::make(
                    'insertContentAt',
                    arguments: [
                        $arguments['dragPosition'],
                        $brickContent,
                    ],
                ),
            ]);
        };
    }
}

Then in each brick:

-            ->action(function (array $arguments, array $data, \Awcodes\Mason\Mason $component) {
-                $brick = $component->getBrick($arguments['id']);
-
-                if (blank($brick)) {
-                    return;
-                }
-
-                $brickContent = [
-                    'type' => 'masonBrick',
-                    'attrs' => [
-                        'config' => $data,
-                        'id' => $arguments['id'],
-                        'label' => $brick::getPreviewLabel($data),
-                        'preview' => base64_encode($brick::toPreviewHtml($data)),
-                    ],
-                ];
-
-                $component->runCommands([
-                    \Awcodes\Mason\Actions\EditorCommand::make(
-                        'insertContentAt',
-                        arguments: [
-                            $arguments['dragPosition'],
-                            $brickContent,
-                        ],
-                    ),
-                ]);
-            });
+            ->action(static::insertBrickAction());

As per coding guidelines, "Extract duplicate code into private/protected methods following Single Responsibility Principle".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/HeaderQuoteMetaBrick.php` around lines 85 - 111, The action
closure used in HeaderQuoteMetaBrick (the ->action(function (array $arguments,
array $data, \Awcodes\Mason\Mason $component) { ... })) is duplicated across
many bricks; extract it to a reusable trait (e.g., InsertsBrickContent) that
exposes a protected static method insertBrickAction(): \Closure which contains
the existing logic that uses $component->getBrick(...), builds $brickContent,
and calls $component->runCommands(...) with
\Awcodes\Mason\Actions\EditorCommand::make('insertContentAt', arguments: [...]).
Replace the inline closure in HeaderQuoteMetaBrick::... and the other bricks
with ->action(self::insertBrickAction()) (or static::insertBrickAction()) and
import/use the trait in each brick class. Ensure the trait method is
static/accessible and returns the same Closure signature to preserve behavior.
app/Mason/Bricks/DetailInvoiceProductBrick.php-1-116 (1)

1-116: 🛠️ Refactor suggestion | 🟠 Major

Massive duplication of configureBrickAction callback across all brick classes.

The action closure (lines 88–114) is copy-pasted identically in every single brick (17 total). Only the form schema and labels differ per brick. This violates DRY/SRP and makes future changes to the insertion logic error-prone.

Consider extracting the shared action callback into a trait or a base method on a shared abstract brick class:

♻️ Suggested approach — extract shared action logic
// e.g., in a trait or abstract base class
protected static function buildInsertAction(array $arguments, array $data, \Awcodes\Mason\Mason $component): void
{
    $brick = $component->getBrick($arguments['id']);

    if (blank($brick)) {
        return;
    }

    $brickContent = [
        'type' => 'masonBrick',
        'attrs' => [
            'config' => $data,
            'id' => $arguments['id'],
            'label' => $brick::getPreviewLabel($data),
            'preview' => base64_encode($brick::toPreviewHtml($data)),
        ],
    ];

    $component->runCommands([
        \Awcodes\Mason\Actions\EditorCommand::make(
            'insertContentAt',
            arguments: [
                $arguments['dragPosition'],
                $brickContent,
            ],
        ),
    ]);
}

Each brick would then just do:

->action(fn (array $arguments, array $data, \Awcodes\Mason\Mason $component) =>
    static::buildInsertAction($arguments, $data, $component)
)

As per coding guidelines, "Extract duplicate code into private/protected methods following Single Responsibility Principle".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailInvoiceProductBrick.php` around lines 1 - 116, The
configureBrickAction closure (inside ConfigureBrickAction) is duplicated across
bricks; extract the shared insertion logic into a protected static helper (e.g.,
buildInsertAction) in a shared trait or abstract base class and have
configureBrickAction call that helper instead of inlining the closure; the
helper should accept (array $arguments, array $data, \Awcodes\Mason\Mason
$component), perform the getBrick($arguments['id']) check, build the
$brickContent using $brick::getPreviewLabel($data) and
base64_encode($brick::toPreviewHtml($data)), then call $component->runCommands
with \Awcodes\Mason\Actions\EditorCommand::make('insertContentAt', arguments:
[$arguments['dragPosition'], $brickContent]); update all brick classes
(including DetailInvoiceProductBrick::configureBrickAction) to delegate to this
new method.
Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php-415-424 (1)

415-424: ⚠️ Potential issue | 🟠 Major

save() silently discards non-string content.

If $content is not a string (e.g., array from a Livewire form submission), the method does nothing — no error, no notification. Consider validating input and throwing or logging.

♻️ Proposed fix — prefer early return with type hint
-    public function save($content): void
+    public function save(string $content): void
     {
-        // Mason-based save: Store JSON directly
-        if (is_string($content)) {
-            $storage = app(MasonTemplateStorage::class);
-            $storage->save($this->record, $content);
-            
-            $this->masonContent = $content;
-            $this->dispatch('blocks-saved');
-        }
+        $storage = app(MasonTemplateStorage::class);
+        $storage->save($this->record, $content);
+
+        $this->masonContent = $content;
+        $this->dispatch('blocks-saved');
     }

As per coding guidelines, "Validate inputs at the start of methods and abort/throw exceptions early" and "Prefer early returns for readability".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php`
around lines 415 - 424, The save() method currently ignores non-string $content;
add an explicit input check at the top of ReportBuilder::save to validate that
$content is a string and fail fast: if not is_string($content) throw new
\InvalidArgumentException(sprintf('ReportBuilder::save expects string $content,
%s given', gettype($content))); this ensures callers get a clear error instead
of silent discard; keep the existing MasonTemplateStorage usage
(app(MasonTemplateStorage::class)), assignment to $this->masonContent and
$this->dispatch('blocks-saved') only after the check passes.
🟡 Minor comments (10)
resources/views/mason/bricks/header-company/preview.blade.php-14-14 (1)

14-14: ⚠️ Potential issue | 🟡 Minor

font_weight config value is interpolated directly into an inline style — potential CSS injection.

font-weight: {{ $config['font_weight'] ?? 'bold' }} inserts an unsanitized value into an inline style attribute. An admin (or a compromised session) could inject arbitrary CSS (e.g., bold; background-image: url(...)) through the brick configuration form. The same pattern likely exists in font_size and text_align across all preview/index views.

Validate or allowlist these values in the Brick class (e.g., in configureBrickAction validation) before they reach the template, rather than trusting raw config values here.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/header-company/preview.blade.php` at line 14,
The template is directly interpolating config values (font_weight, font_size,
text_align) into an inline style, enabling CSS injection; update the Brick
configuration validation (e.g., in configureBrickAction on the Brick class) to
allowlist acceptable values for text_align (e.g., left, right, center, justify),
font_weight (e.g., normal, bold, bolder, lighter, 100–900) and enforce font_size
as a positive number (or integer) and normalize it to a safe unit (e.g., append
"pt"); ensure the controller rejects or sanitizes any values not in the
allowlist and pass only validated/normalized values to the preview view so the
template can safely interpolate them with defaults.
resources/views/mason/bricks/detail-invoice-project/preview.blade.php-39-39 (1)

39-39: ⚠️ Potential issue | 🟡 Minor

Translation key mismatch between header and body for the description column.

The <th> for description uses trans('ip.description') (Line 16) while the <td> body uses trans('ip.task_description') (Line 39). These render different strings, causing the column header and sample body to display inconsistent labels. The same mismatch exists in detail-quote-project/preview.blade.php.

🐛 Proposed fix
-                        <td class="p-2">{{ trans('ip.task_description') }}</td>
+                        <td class="p-2">{{ trans('ip.description') }}</td>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/detail-invoice-project/preview.blade.php` at
line 39, The description column header uses trans('ip.description') while the
body cell uses trans('ip.task_description'), causing inconsistent labels; update
the body cell(s) to use trans('ip.description') (i.e., replace
trans('ip.task_description') with trans('ip.description') in the <td> for
description in the invoice preview template and the equivalent quote preview
template) so header and sample body render the same translation key.
resources/views/mason/bricks/header-invoice-meta/preview.blade.php-11-11 (1)

11-11: ⚠️ Potential issue | 🟡 Minor

Hardcoded year 2024 in the sample invoice number is stale.

INV-2024-001 will look incorrect to admins previewing templates (current year is 2026). Use date('Y') to keep it current.

🐛 Proposed fix
-                    <td class="text-gray-700">INV-2024-001</td>
+                    <td class="text-gray-700">INV-{{ date('Y') }}-001</td>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/header-invoice-meta/preview.blade.php` at line
11, Replace the hardcoded sample invoice string 'INV-2024-001' with a dynamic
construction that uses PHP's date('Y') so the preview always shows the current
year; locate the 'INV-2024-001' literal in the Blade preview cell and output
'INV-' + date('Y') + '-001' using Blade's echo syntax ({{ }}) or PHP tags so the
rendered preview updates automatically each year.
app/Mason/Bricks/DetailItemsBrick.php-82-104 (1)

82-104: ⚠️ Potential issue | 🟡 Minor

Guard required action arguments before array access.

Lines 83 and 103 read id/dragPosition without verifying presence. A malformed action payload will break the insertion flow with undefined index errors.

🛠️ Proposed fix
             ->action(function (array $arguments, array $data, \Awcodes\Mason\Mason $component) {
+                if (! isset($arguments['id'], $arguments['dragPosition'])) {
+                    return;
+                }
+
                 $brick = $component->getBrick($arguments['id']);
As per coding guidelines, "Validate inputs at the start of methods and abort/throw exceptions early".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailItemsBrick.php` around lines 82 - 104, The action
closure passed to ->action uses $arguments['id'] and $arguments['dragPosition']
without checking they exist, which can cause undefined index errors; update the
closure (the anonymous function handling the action in DetailItemsBrick) to
validate/guard the $arguments array at the start—ensure 'id' and 'dragPosition'
keys are present and valid (abort early, return, or throw a clear exception)
before calling $component->getBrick(...), building $brickContent, or invoking
EditorCommand::make; this preserves current behavior on valid input while safely
handling malformed payloads.
resources/lang/en/ip.php-1151-1216 (1)

1151-1216: ⚠️ Potential issue | 🟡 Minor

Missing current translation key for aging column label.

detail-customer-aging/preview.blade.php uses trans('ip.current'), but this key is not defined in the new Mason translation block.

📝 Suggested fix
     'days_30'                              => '1-30 Days',
     'days_60'                              => '31-60 Days',
     'days_90'                              => '61-90 Days',
     'over_90'                              => 'Over 90 Days',
+    'current'                              => 'Current',
     'total_due'                            => 'Total Due',
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/lang/en/ip.php` around lines 1151 - 1216, The translation block is
missing the 'current' key referenced by trans('ip.current') in
detail-customer-aging/preview.blade.php; add a new translation entry like
'current' => 'Current' (or the appropriate label) into the Mason/new-brick
translations section (near 'customer_aging_details', 'days_30', etc.) so
trans('ip.current') resolves correctly.
Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php-190-232 (1)

190-232: ⚠️ Potential issue | 🟡 Minor

it_maintains_block_order_through_persistence currently validates count, not order.

The test name says order is preserved, but assertions only check element count.

Suggested assertion upgrade
         /* Assert */
         $this->assertCount(3, $decoded['content']);
+        $this->assertSame('first_block', $decoded['content'][0]['attrs']['id']);
+        $this->assertSame('second_block', $decoded['content'][1]['attrs']['id']);
+        $this->assertSame('third_block', $decoded['content'][2]['attrs']['id']);
As per coding guidelines `Tests must be meaningful; avoid simple "ok" checks and validate actual behavior and data`.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php` around
lines 190 - 232, The test it_maintains_block_order_through_persistence only
asserts count but must assert order: after calling
$this->adapter->masonToBlocks(...), $this->service->persistBlocks(...),
$this->service->loadBlocks(...) and $this->adapter->blocksToMason(...), inspect
$decoded['content'] and add assertions that the sequence of masonry block attrs
(e.g. ids 'first_block','second_block','third_block' or labels
'First','Second','Third') appears in that exact order (use assertions like
assertSame/assertEquals on the ordered list of ids/labels) to validate order
preservation through persist/load.
resources/views/mason/bricks/detail-customer-aging/index.blade.php-75-75 (1)

75-75: ⚠️ Potential issue | 🟡 Minor

Guard colspan against zero.

Line 75 can evaluate to 0 when invoice/date/due-date columns are all hidden, producing invalid table markup.

Suggested fix
+                `@php`
+                    $leadingColumnCount = max(
+                        1,
+                        (int) ($config['show_invoice_number'] ?? true)
+                        + (int) ($config['show_invoice_date'] ?? true)
+                        + (int) ($config['show_due_date'] ?? true)
+                    );
+                `@endphp`
-                <td colspan="{{ ($config['show_invoice_number'] ?? true) + ($config['show_invoice_date'] ?? true) + ($config['show_due_date'] ?? true) }}">{{ trans('ip.total') }}</td>
+                <td colspan="{{ $leadingColumnCount }}">{{ trans('ip.total') }}</td>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/views/mason/bricks/detail-customer-aging/index.blade.php` at line
75, The colspan expression can evaluate to 0 when all config flags
($config['show_invoice_number'], $config['show_invoice_date'],
$config['show_due_date']) are false, producing invalid table markup; change the
colspan calculation in the blade view (the td with colspan currently computed
from those three $config[...] flags) to ensure a minimum of 1 (for example wrap
the sum with a max(1, ... ) or coerce to at least 1) so the generated colspan is
never zero.
Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php-16-16 (1)

16-16: ⚠️ Potential issue | 🟡 Minor

Remove the unnecessary property declaration from line 16.

The $company property is already declared in the parent class AbstractAdminPanelTestCase. Redeclaring it in the child class is redundant and violates the guideline to match parent class property types exactly. Delete line 16 and rely on the inherited property instead.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php` at line 16,
Remove the redundant protected Company $company property declaration from the
ReportBuilderMasonIntegrationTest class; the property is already defined in the
parent AbstractAdminPanelTestCase, so delete the declaration to avoid
duplicate/redeclared properties and rely on the inherited $company property
instead.
MASON_REFACTOR_PLAN.md-1-642 (1)

1-642: ⚠️ Potential issue | 🟡 Minor

Remove or archive this stale planning document.

This file's status reads "READY FOR IMPLEMENTATION" but the implementation is complete. The example code diverges significantly from the actual implementation:

  • Uses Heroicon::OutlinedBuildingOffice vs the actual HtmlString SVG approach
  • References nonexistent bricks (CustomTextBrick, CustomImageBrick, FooterQrCodeBrick, DetailItemTaxBrick)
  • Lists 10 bricks vs the actual 17
  • The fillForm pattern and MasonStorageAdapter/BlockDTO examples don't match the final design

Keeping this committed will mislead future contributors. Consider removing it from the repo (or moving it to a wiki/ADR if you want to preserve the decision history).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@MASON_REFACTOR_PLAN.md` around lines 1 - 642, The MASON_REFACTOR_PLAN.md file
is stale and conflicts with the implemented code (references like
HeaderCompanyBrick, MasonStorageAdapter, CustomTextBrick, FooterQrCodeBrick,
DetailItemTaxBrick and the Heroicon usage are outdated); remove or archive this
planning document to avoid misleading contributors by either deleting the file
from the repo or moving it to an archive/ADR/wiki page, and update any
references (README or docs) that point to MASON_REFACTOR_PLAN.md so they point
to the archived location or are removed; commit the change with a clear message
like "chore: archive stale Mason refactor plan" and, if archiving, ensure the
archived copy notes the implemented differences (actual bricks and SVG
HtmlString approach vs examples).
app/Mason/Bricks/DetailCustomerAgingBrick.php-8-8 (1)

8-8: ⚠️ Potential issue | 🟡 Minor

Unused import: Select is imported but never used.

This brick's schema only uses Checkbox and TextInput. The Select import should be removed.

🧹 Proposed fix
 use Filament\Forms\Components\Checkbox;
-use Filament\Forms\Components\Select;
 use Filament\Forms\Components\TextInput;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/Mason/Bricks/DetailCustomerAgingBrick.php` at line 8, Remove the unused
import of Select from the top of DetailCustomerAgingBrick.php; the brick's form
schema only references Checkbox and TextInput (used in the class/method that
builds the schema), so delete the line "use Filament\Forms\Components\Select;"
to eliminate the unused import.

nielsdrost7 and others added 2 commits February 25, 2026 07:38
…portBuilder.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copilot AI changed the title Implement Mason package integration with 17 bricks and simplified storage Implement Mason package integration with 17 bricks, authorization, and security fixes Feb 25, 2026
@nielsdrost7 nielsdrost7 requested a review from Copilot February 25, 2026 08:35
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the ReportBuilder UI to integrate the awcodes/mason block editor, introducing a suite of Mason bricks (with preview/render Blade templates), new translation keys, and filesystem-backed storage for Mason JSON templates.

Changes:

  • Added awcodes/mason dependency and introduced 17 Mason brick classes plus a centralized ReportBricksCollection.
  • Added Mason brick preview/render Blade templates and a dedicated Mason preview layout.
  • Added Mason template storage service and PHPUnit tests around collections/bricks/storage conversion.

Reviewed changes

Copilot reviewed 63 out of 64 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
resources/views/mason/bricks/header-quote-meta/preview.blade.php Adds Mason preview template for quote metadata header brick.
resources/views/mason/bricks/header-quote-meta/index.blade.php Adds render template for quote metadata header brick.
resources/views/mason/bricks/header-project/preview.blade.php Adds Mason preview template for project header brick.
resources/views/mason/bricks/header-project/index.blade.php Adds render template for project header brick.
resources/views/mason/bricks/header-invoice-meta/preview.blade.php Adds Mason preview template for invoice metadata header brick.
resources/views/mason/bricks/header-invoice-meta/index.blade.php Adds render template for invoice metadata header brick.
resources/views/mason/bricks/header-company/preview.blade.php Adds Mason preview template for company header brick.
resources/views/mason/bricks/header-company/index.blade.php Adds render template for company header brick.
resources/views/mason/bricks/header-client/preview.blade.php Adds Mason preview template for client header brick.
resources/views/mason/bricks/header-client/index.blade.php Adds render template for client header brick.
resources/views/mason/bricks/footer-totals/preview.blade.php Adds Mason preview template for totals footer brick.
resources/views/mason/bricks/footer-totals/index.blade.php Adds render template for totals footer brick.
resources/views/mason/bricks/footer-terms/preview.blade.php Adds Mason preview template for terms footer brick.
resources/views/mason/bricks/footer-terms/index.blade.php Adds render template for terms footer brick.
resources/views/mason/bricks/footer-summary/preview.blade.php Adds Mason preview template for summary footer brick.
resources/views/mason/bricks/footer-summary/index.blade.php Adds render template for summary footer brick.
resources/views/mason/bricks/footer-notes/preview.blade.php Adds Mason preview template for footer notes brick.
resources/views/mason/bricks/footer-notes/index.blade.php Adds render template for footer notes brick.
resources/views/mason/bricks/detail-tasks/preview.blade.php Adds Mason preview template for tasks detail brick.
resources/views/mason/bricks/detail-tasks/index.blade.php Adds render template for tasks detail brick.
resources/views/mason/bricks/detail-quote-project/preview.blade.php Adds Mason preview template for quote-project detail brick.
resources/views/mason/bricks/detail-quote-project/index.blade.php Adds render template for quote-project detail brick.
resources/views/mason/bricks/detail-quote-product/preview.blade.php Adds Mason preview template for quote-product detail brick.
resources/views/mason/bricks/detail-quote-product/index.blade.php Adds render template for quote-product detail brick.
resources/views/mason/bricks/detail-items/preview.blade.php Adds Mason preview template for generic line items detail brick.
resources/views/mason/bricks/detail-items/index.blade.php Adds render template for generic line items detail brick.
resources/views/mason/bricks/detail-invoice-project/preview.blade.php Adds Mason preview template for invoice-project detail brick.
resources/views/mason/bricks/detail-invoice-project/index.blade.php Adds render template for invoice-project detail brick.
resources/views/mason/bricks/detail-invoice-product/preview.blade.php Adds Mason preview template for invoice-product detail brick.
resources/views/mason/bricks/detail-invoice-product/index.blade.php Adds render template for invoice-product detail brick.
resources/views/mason/bricks/detail-expense/preview.blade.php Adds Mason preview template for expense detail brick.
resources/views/mason/bricks/detail-expense/index.blade.php Adds render template for expense detail brick.
resources/views/mason/bricks/detail-customer-aging/preview.blade.php Adds Mason preview template for customer aging detail brick.
resources/views/mason/bricks/detail-customer-aging/index.blade.php Adds render template for customer aging detail brick.
resources/views/layouts/mason-preview.blade.php Adds a dedicated Mason iframe preview layout.
resources/lang/en/ip.php Adds Mason-related translation keys for bricks and configuration UI.
composer.lock Locks awcodes/mason and its transitive dependencies.
composer.json Adds awcodes/mason dependency requirement.
app/Mason/Collections/ReportBricksCollection.php Registers all available Mason bricks in one collection.
app/Mason/Bricks/HeaderQuoteMetaBrick.php Adds quote metadata header brick definition and config action.
app/Mason/Bricks/HeaderProjectBrick.php Adds project header brick definition and config action.
app/Mason/Bricks/HeaderInvoiceMetaBrick.php Adds invoice metadata header brick definition and config action.
app/Mason/Bricks/HeaderCompanyBrick.php Adds company header brick definition and config action.
app/Mason/Bricks/HeaderClientBrick.php Adds client header brick definition and config action.
app/Mason/Bricks/FooterTotalsBrick.php Adds totals footer brick definition and config action.
app/Mason/Bricks/FooterTermsBrick.php Adds terms footer brick definition and config action.
app/Mason/Bricks/FooterSummaryBrick.php Adds summary footer brick definition and config action.
app/Mason/Bricks/FooterNotesBrick.php Adds footer notes brick definition and config action.
app/Mason/Bricks/DetailTasksBrick.php Adds tasks detail brick definition and config action.
app/Mason/Bricks/DetailQuoteProjectBrick.php Adds quote-project detail brick definition and config action.
app/Mason/Bricks/DetailQuoteProductBrick.php Adds quote-product detail brick definition and config action.
app/Mason/Bricks/DetailItemsBrick.php Adds generic items detail brick definition and config action.
app/Mason/Bricks/DetailInvoiceProjectBrick.php Adds invoice-project detail brick definition and config action.
app/Mason/Bricks/DetailInvoiceProductBrick.php Adds invoice-product detail brick definition and config action.
app/Mason/Bricks/DetailExpenseBrick.php Adds expense detail brick definition and config action.
app/Mason/Bricks/DetailCustomerAgingBrick.php Adds customer aging detail brick definition and config action.
Modules/Core/Tests/Unit/ReportBricksCollectionTest.php Adds unit tests for the brick collection registry.
Modules/Core/Tests/Unit/MasonStorageAdapterTest.php Adds unit tests for Mason JSON ↔ BlockDTO conversion adapter.
Modules/Core/Tests/Unit/MasonBricksTest.php Adds unit tests for brick IDs and basic HTML rendering.
Modules/Core/Tests/Feature/ReportBuilderMasonIntegrationTest.php Adds feature tests around persistence/roundtrip conversion.
Modules/Core/Services/MasonTemplateStorage.php Adds direct Mason JSON filesystem storage service.
Modules/Core/Services/MasonStorageAdapter.php Adds adapter between Mason JSON and legacy BlockDTO structure.
Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php Switches ReportBuilder toward Mason-based content + authorization.
MASON_REFACTOR_PLAN.md Adds documentation/plan for Mason refactor and architecture.
Comments suppressed due to low confidence (1)

Modules/Core/Filament/Admin/Resources/ReportTemplates/Pages/ReportBuilder.php:33

  • The $blocks state was removed (replaced with $masonContent), but this class still references $this->blocks and BlockTransformer/GridSnapperService/GridPositionDTO in multiple methods further down. That will either create deprecated dynamic properties or fail due to missing imports/classes. The old block-based methods need to be removed/refactored to operate on Mason JSON state, or the previous $blocks state and required imports need to be restored.
    public ReportTemplate $record;

    public string $masonContent = '';

    public string $selectedBlockId = '';

    public string $currentBlockSlug = '';

nielsdrost7 and others added 2 commits February 25, 2026 09:55
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
nielsdrost7 and others added 2 commits February 25, 2026 10:26
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
@nielsdrost7
Copy link
Collaborator

@copilot apply changes based on the comments in this thread

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 25, 2026

@copilot apply changes based on the comments in this thread

Added test for MasonTemplateStorage save/load flow in commit 25c2e69. The new test it_saves_and_loads_mason_json_via_mason_template_storage() validates the production storage path ({company_id}/mason_{slug}.json) and verifies round-trip integrity of Mason JSON through the save/load cycle. The existing test for the legacy adapter is kept for backward compatibility.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants