silverstripe / silverstripe-assets

Silverstripe Assets component
BSD 3-Clause "New" or "Revised" License
9 stars 65 forks source link

FileLinkTracking causes `SilverStripe\ORM\DataObject is not a subclass of DataObject` Error #540

Open mlewis-everley opened 1 year ago

mlewis-everley commented 1 year ago

I am getting a really odd issue on a new site I am building. When trying to upload a file or edit a file in the assets panel (or via an UploadField) I get the following error:

ERROR [Emergency]: Uncaught InvalidArgumentException: SilverStripe\ORM\DataObject is not a subclass of DataObject
IN GET /hbg-store/admin/assets/schema/fileEditForm/46
Line 155 in /var/www/html/hbg-store/vendor/silverstripe/framework/src/ORM/DataObjectSchema.php

I am using a recipe I have used before without issue, using a selection of modules I use on a lot of projects. Looking at the stack trace (below) and stepping through the debugger seems to indicate that RecursivePublisher is pushing through a DataObject into a ManyManyThroughList (in relation to FileLinkTracking).

This appears to be happening when trying to check file tracking for the Content field on a CatalogeCategory (https://github.com/silvercommerce/catalogue-admin/blob/1.4/src/Model/CatalogueCategory.php#L90).

The only way I can get rid of the error is remove the FileLinkTracking.owns via _config.php, but I suspect this might cause issues elsewhere in the system?

ERROR [Emergency]: Uncaught InvalidArgumentException: SilverStripe\ORM\DataObject is not a subclass of DataObject
IN GET /hbg-store/admin/assets/schema/fileEditForm/46
Line 155 in /var/www/html/hbg-store/vendor/silverstripe/framework/src/ORM/DataObjectSchema.php

Source
======
  146:     {
  147:         $current = $class;
  148:         while ($next = get_parent_class($current ?? '')) {
  149:             if ($next === DataObject::class) {
  150:                 // Only use ClassInfo::class_name() to format the class if we've not used
       get_parent_class()
  151:                 return ($current === $class) ? ClassInfo::class_name($current) : $current;
  152:             }
  153:             $current = $next;
  154:         }
* 155:         throw new InvalidArgumentException("$class is not a subclass of DataObject");
  156:     }
  157: 
  158:     /**
  159:      * Get the base table
  160:      *
  161:      * @param string|object $class

Trace
=====
SilverStripe\ORM\DataObjectSchema->baseDataClass(SilverStripe\ORM\DataObject)
DataQuery.php:168

SilverStripe\ORM\DataQuery->initialiseQuery()
DataQuery.php:79

SilverStripe\ORM\DataQuery->__construct(SilverStripe\ORM\DataObject)
DataList.php:61

SilverStripe\ORM\DataList->__construct(SilverStripe\ORM\DataObject)
ManyManyThroughList.php:43

SilverStripe\ORM\ManyManyThroughList->__construct(SilverStripe\ORM\DataObject, SilverStripe\Assets\Shortcodes\FileLink, Parent, LinkedID, Array, SilverStripe\Assets\File, SilverCommerce\CatalogueAdmin\Model\CatalogueCategory)
InjectionCreator.php:35

SilverStripe\Core\Injector\InjectionCreator->create(SilverStripe\ORM\ManyManyThroughList, Array)
Injector.php:633

SilverStripe\Core\Injector\Injector->instantiate(Array, SilverStripe\ORM\ManyManyThroughList, prototype)
Injector.php:1045

SilverStripe\Core\Injector\Injector->getNamedService(SilverStripe\ORM\ManyManyThroughList, , Array)
Injector.php:998

SilverStripe\Core\Injector\Injector->get(SilverStripe\ORM\ManyManyThroughList, , Array)
Injector.php:1168

SilverStripe\Core\Injector\Injector->createWithArgs(SilverStripe\ORM\ManyManyThroughList, Array)
Injector.php:1156

SilverStripe\Core\Injector\Injector->create(SilverStripe\ORM\ManyManyThroughList, SilverStripe\ORM\DataObject, SilverStripe\Assets\Shortcodes\FileLink, Parent, LinkedID, Array, SilverStripe\Assets\File, SilverCommerce\CatalogueAdmin\Model\CatalogueCategory)
DataObject.php:2179

SilverStripe\ORM\DataObject->inferReciprocalComponent(SilverCommerce\CatalogueAdmin\Model\CatalogueCategory, FileTracking)
RecursivePublishable.php:238

SilverStripe\Versioned\RecursivePublishable->findOwnersRecursive(, SilverStripe\ORM\ArrayList, Array)
RecursivePublishable.php:208

SilverStripe\Versioned\RecursivePublishable->findOwners()

call_user_func_array(Array, Array)
Extensible.php:144

SilverStripe\View\ViewableData->SilverStripe\Core\{closure}(SilverStripe\Assets\Image, Array)
CustomMethods.php:61

SilverStripe\View\ViewableData->__call(findOwners, Array)
FileFormFactory.php:395

SilverStripe\AssetAdmin\Forms\FileFormFactory->getUnpublishAction(SilverStripe\Assets\Image)
FileFormFactory.php:456

SilverStripe\AssetAdmin\Forms\FileFormFactory->SilverStripe\AssetAdmin\Forms\{closure}(Array, SilverStripe\Assets\Image, , , , , )

call_user_func_array(Closure, Array)
Extensible.php:456

SilverStripe\AssetAdmin\Forms\AssetFormFactory->extend(updatePopoverActions, Array, SilverStripe\Assets\Image, , , , , )
Extensible.php:424

SilverStripe\AssetAdmin\Forms\AssetFormFactory->invokeWithExtensions(updatePopoverActions, Array, SilverStripe\Assets\Image)
AssetFormFactory.php:284

SilverStripe\AssetAdmin\Forms\AssetFormFactory->getPopoverActions(SilverStripe\Assets\Image)
FileFormFactory.php:461

SilverStripe\AssetAdmin\Forms\FileFormFactory->getPopoverActions(SilverStripe\Assets\Image)
AssetFormFactory.php:259

SilverStripe\AssetAdmin\Forms\AssetFormFactory->getPopoverMenu(SilverStripe\Assets\Image)
FileFormFactory.php:308

SilverStripe\AssetAdmin\Forms\FileFormFactory->getFormActions(SilverStripe\AssetAdmin\Controller\AssetAdmin, fileEditForm, Array)
AssetFormFactory.php:78

SilverStripe\AssetAdmin\Forms\AssetFormFactory->getForm(SilverStripe\AssetAdmin\Controller\AssetAdmin, fileEditForm, Array)
ImageFormFactory.php:178

SilverStripe\AssetAdmin\Forms\ImageFormFactory->getForm(SilverStripe\AssetAdmin\Controller\AssetAdmin, fileEditForm, Array)
AssetAdmin.php:769

SilverStripe\AssetAdmin\Controller\AssetAdmin->getAbstractFileForm(46, fileEditForm)
AssetAdmin.php:637

SilverStripe\AssetAdmin\Controller\AssetAdmin->getFileEditForm(46)
LeftAndMain.php:418

SilverStripe\Admin\LeftAndMain->schema(SilverStripe\Control\HTTPRequest)
AssetAdmin.php:903

SilverStripe\AssetAdmin\Controller\AssetAdmin->schema(SilverStripe\Control\HTTPRequest)
RequestHandler.php:323

SilverStripe\Control\RequestHandler->handleAction(SilverStripe\Control\HTTPRequest, schema)
Controller.php:286

SilverStripe\Control\Controller->handleAction(SilverStripe\Control\HTTPRequest, schema)
RequestHandler.php:202

SilverStripe\Control\RequestHandler->handleRequest(SilverStripe\Control\HTTPRequest)
Controller.php:212

SilverStripe\Control\Controller->handleRequest(SilverStripe\Control\HTTPRequest)
LeftAndMain.php:814

SilverStripe\Admin\LeftAndMain->handleRequest(SilverStripe\Control\HTTPRequest)
AdminRootController.php:123

SilverStripe\Admin\AdminRootController->handleRequest(SilverStripe\Control\HTTPRequest)
Director.php:360

SilverStripe\Control\Director->SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)
VersionedHTTPMiddleware.php:41

SilverStripe\Versioned\VersionedHTTPMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
LoginSessionMiddleware.php:53

SilverStripe\SessionManager\Middleware\LoginSessionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ConfirmationMiddleware.php:254

SilverStripe\Control\Middleware\ConfirmationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ConfirmationMiddleware.php:254

SilverStripe\Control\Middleware\ConfirmationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
PasswordExpirationMiddleware.php:84

SilverStripe\Security\PasswordExpirationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
BasicAuthMiddleware.php:68

SilverStripe\Security\BasicAuthMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
AuthenticationMiddleware.php:61

SilverStripe\Security\AuthenticationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ExecMetricMiddleware.php:20

SilverStripe\Control\Middleware\ExecMetricMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
SearchableMiddleware.php:60

ilateral\SilverStripe\Searchable\Middleware\SearchableMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
NotificationMiddleware.php:28

ilateral\SilverStripe\Notifier\Middleware\NotificationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
CanonicalURLMiddleware.php:190

SilverStripe\Control\Middleware\CanonicalURLMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
HTTPCacheControlMiddleware.php:42

SilverStripe\Control\Middleware\HTTPCacheControlMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ChangeDetectionMiddleware.php:28

SilverStripe\Control\Middleware\ChangeDetectionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
FlushMiddleware.php:27

SilverStripe\Control\Middleware\FlushMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
RequestProcessor.php:67

SilverStripe\Control\RequestProcessor->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
SessionMiddleware.php:20

SilverStripe\Control\Middleware\SessionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
AllowedHostsMiddleware.php:60

SilverStripe\Control\Middleware\AllowedHostsMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
TrustedProxyMiddleware.php:176

SilverStripe\Control\Middleware\TrustedProxyMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62

SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
HTTPMiddlewareAware.php:65

SilverStripe\Control\Director->callMiddleware(SilverStripe\Control\HTTPRequest, Closure)
Director.php:369

SilverStripe\Control\Director->handleRequest(SilverStripe\Control\HTTPRequest)
HTTPApplication.php:117

SilverStripe\Control\HTTPApplication::SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)

call_user_func(Closure, SilverStripe\Control\HTTPRequest)
HTTPApplication.php:136

SilverStripe\Control\HTTPApplication->SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)
HTTPMiddlewareAware.php:65

SilverStripe\Control\HTTPApplication->callMiddleware(SilverStripe\Control\HTTPRequest, Closure)
HTTPApplication.php:137

SilverStripe\Control\HTTPApplication->execute(SilverStripe\Control\HTTPRequest, Closure, )
HTTPApplication.php:116

SilverStripe\Control\HTTPApplication->handle(SilverStripe\Control\HTTPRequest)
index.php:24
mlewis-everley commented 11 months ago

Just had this issue pop up again on another site. Looks like the same thing

Again I added the following to _config.php

use SilverStripe\Assets\Shortcodes\FileLinkTracking;

Config::modify()->set(
    FileLinkTracking::class,
    'owns',
    []
);

I still cannot track down any more info about what is causing this issue, but I have the following dependencies installed...

axllent/silverstripe-scaled-uploads                 2.3.5                  
bramus/ansi-php                                     3.1                    
bramus/monolog-colored-line-formatter               2.0.3                  
bummzack/sortablefile                               2.2.0                  
clue/stream-filter                                  v1.6.0                 
colymba/gridfield-bulk-editing-tools                dev-master 793a547     
composer/ca-bundle                                  1.3.6                  
composer/installers                                 v1.12.0                
composer/semver                                     3.3.2                  
deployer/deployer                                   v6.6.0                 
deployer/phar-update                                v2.2.0                 
doctrine/deprecations                               v1.1.1                 
doctrine/lexer                                      2.1.0                  
dompdf/dompdf                                       v0.8.6                 
dynamic/silverstripe-link-migrator                  1.0.0-beta1            
egulias/email-validator                             3.2.6                  
embed/embed                                         v4.4.8                 
fractas/cookiepolicy                                2.1.4                  
giggsey/libphonenumber-for-php                      8.13.17                
giggsey/locale                                      2.4                    
gorriecoe/silverstripe-link                         1.4.1                  
gorriecoe/silverstripe-linkfield                    1.1.0                  
guzzlehttp/guzzle                                   7.7.0                  
guzzlehttp/promises                                 2.0.0                  
guzzlehttp/psr7                                     2.5.0                  
heyday/silverstripe-gridfieldversionedorderablerows dev-ss4-upgrade e410b64
heyday/silverstripe-responsive-images               2.0.5                  
hubertusanton/silverstripe-seo                      4.1.2                  
i-lateral/sc-recipe                                 1.1.x-dev b8c6cd9      
i-lateral/silverstripe-carousel                     2.2.0                  
i-lateral/silverstripe-childhubpage                 2.0.4                  
i-lateral/silverstripe-custommenus                  2.1.6                  
i-lateral/silverstripe-dashboard                    1.0.0                  
i-lateral/silverstripe-deferedimages                1.1.4                  
i-lateral/silverstripe-deferedimages-theme          1.0.2                  
i-lateral/silverstripe-featuredimage                1.0.1                  
i-lateral/silverstripe-gallery                      2.2.7                  
i-lateral/silverstripe-gridfield-addons             2.0.6                  
i-lateral/silverstripe-modeladminplus               1.2.5                  
i-lateral/silverstripe-searchable                   3.0.3                  
i-lateral/silverstripe-socialnav                    2.0.2                  
i-lateral/silverstripe-systemmessages               3.1.0                  
i-lateral/silverstripe-testimonials                 4.0.9                  
i-lateral/silverstripe-users                        2.2.2                  
i-lateral/ss4-recipe                                1.x-dev 6bb1c69        
ilateral/silverstripe-bootstrap-4                   1.4.0                  
ilateral/silverstripe-call-to-actions               1.0.1                  
ilateral/silverstripe-fancy-top-nav                 1.5.0                  
ilateral/silverstripe-modern                        1.5.0                  
ilateral/silverstripe-sideswipe-theme               1.0.1                  
intervention/image                                  2.7.2                  
jonom/focuspoint                                    3.1.3                  
jonom/silverstripe-betternavigator                  5.4.1                  
kinglozzer/metatitle                                2.0.5                  
league/csv                                          9.8.0                  
league/flysystem                                    1.1.10                 
league/mime-type-detection                          1.11.0                 
m1/env                                              2.2.0                  
marcj/topsort                                       2.0.0                  
ml/iri                                              1.1.4                  
ml/json-ld                                          1.2.1                  
moneyphp/money                                      v3.3.3                 
monolog/monolog                                     1.27.1                 
nathancox/hasoneautocompletefield                   2.11.0                 
nikic/php-parser                                    v4.16.0                
omnipay/common                                      v3.2.1                 
omnipay/dummy                                       v3.0.0                 
omnipay/manual                                      v3.0.0                 
omnipay/stripe                                      v3.2.0                 
oscarotero/html-parser                              v0.1.7                 
phenx/php-font-lib                                  0.5.4                  
phenx/php-svg-lib                                   0.3.4                  
php-http/discovery                                  1.19.1                 
php-http/guzzle7-adapter                            1.0.0                  
php-http/httplug                                    2.4.0                  
php-http/message                                    1.16.0                 
php-http/message-factory                            1.1.0                  
php-http/promise                                    1.1.0                  
pimple/pimple                                       v3.5.0                 
psr/cache                                           1.0.1                  
psr/container                                       1.1.2                  
psr/event-dispatcher                                1.0.0                  
psr/http-client                                     1.0.2                  
psr/http-factory                                    1.0.2                  
psr/http-message                                    1.1                    
psr/log                                             1.1.4                  
psr/simple-cache                                    1.0.1                  
ralouphie/getallheaders                             3.0.3                  
sabberworm/php-css-parser                           8.4.0                  
sheadawson/silverstripe-linkable                    2.1.1                  
silvercommerce/catalogue-admin                      1.3.9                  
silvercommerce/catalogue-frontend                   1.0.5                  
silvercommerce/checkout                             1.1.5                  
silvercommerce/checkout-agree-to-terms              1.0.0                  
silvercommerce/checkout-special-instructions        1.0.1                  
silvercommerce/contact-admin                        1.3.3                  
silvercommerce/customisable-products                1.1.5                  
silvercommerce/dashboard                            1.0.0                  
silvercommerce/discounts                            2.0.5                  
silvercommerce/downloadable-products                1.0.x-dev ebbabc6      
silvercommerce/geozones                             1.1.1                  
silvercommerce/orders-admin                         1.4.4                  
silvercommerce/postage                              1.2.3                  
silvercommerce/quantityfield                        1.0.1                  
silvercommerce/reports                              1.1.4                  
silvercommerce/settings                             1.0.5                  
silvercommerce/shoppingcart                         1.2.1                  
silvercommerce/silvercommerce-recipe                1.3.x-dev 9697206      
silvercommerce/silvercommerce-theme                 1.2.2                  
silvercommerce/stock                                1.0.2                  
silvercommerce/subsites                             1.0.1                  
silvercommerce/tax-admin                            1.4.0                  
silvercommerce/versionhistoryfield                  1.0.2                  
silvershop/silverstripe-hasonefield                 3.1.0                  
silverstripe/admin                                  1.13.5                 
silverstripe/asset-admin                            1.13.3                 
silverstripe/assets                                 1.13.3                 
silverstripe/blog                                   3.12.2                 
silverstripe/campaign-admin                         1.13.1                 
silverstripe/cms                                    4.13.2                 
silverstripe/config                                 1.6.0                  
silverstripe/errorpage                              1.13.1                 
silverstripe/event-dispatcher                       0.1.3                  
silverstripe/framework                              4.13.13                
silverstripe/graphql                                4.3.1                  
silverstripe/login-forms                            4.9.0                  
silverstripe/lumberjack                             2.3.2                  
silverstripe/mimevalidator                          2.5.0                  
silverstripe/recipe-cms                             4.13.0                 
silverstripe/recipe-core                            4.13.0                 
silverstripe/recipe-form-building                   1.13.0                 
silverstripe/recipe-plugin                          1.7.0                  
silverstripe/redirectedurls                         2.2.0                  
silverstripe/reports                                4.13.1                 
silverstripe/segment-field                          2.8.0                  
silverstripe/session-manager                        1.5.1                  
silverstripe/silverstripe-omnipay                   3.2.1                  
silverstripe/siteconfig                             4.13.1                 
silverstripe/spamprotection                         3.4.1                  
silverstripe/subsites                               2.8.2                  
silverstripe/tagfield                               2.11.1                 
silverstripe/userforms                              5.15.3                 
silverstripe/vendor-plugin                          1.7.0                  
silverstripe/versioned                              1.13.2                 
silverstripe/versioned-admin                        1.13.1                 
silverstripe/widgets                                2.4.0                  
sminnee/callbacklist                                0.1.1                  
sminnee/tagmanager                                  dev-master 80aaede     
swiftmailer/swiftmailer                             v6.3.0                 
symbiote/silverstripe-gridfieldextensions           3.6.3                  
symfony/cache                                       v4.4.48                
symfony/cache-contracts                             v2.5.2                 
symfony/config                                      v4.4.44                
symfony/console                                     v4.2.12                
symfony/contracts                                   v1.1.0                 
symfony/deprecation-contracts                       v2.5.2                 
symfony/event-dispatcher                            v5.4.22                
symfony/event-dispatcher-contracts                  v2.5.2                 
symfony/filesystem                                  v5.4.25                
symfony/finder                                      v4.4.44                
symfony/http-foundation                             v5.4.25                
symfony/polyfill-ctype                              v1.27.0                
symfony/polyfill-iconv                              v1.27.0                
symfony/polyfill-intl-idn                           v1.27.0                
symfony/polyfill-intl-normalizer                    v1.27.0                
symfony/polyfill-mbstring                           v1.27.0                
symfony/polyfill-php72                              v1.27.0                
symfony/polyfill-php73                              v1.27.0                
symfony/polyfill-php80                              v1.27.0                
symfony/polyfill-php81                              v1.27.0                
symfony/process                                     v4.4.44                
symfony/service-contracts                           v2.5.2                 
symfony/translation                                 v4.4.47                
symfony/translation-contracts                       v2.5.2                 
symfony/var-exporter                                v5.4.21                
symfony/yaml                                        v4.4.45                
tractorcow/silverstripe-autocomplete                4.0.0                  
tractorcow/silverstripe-robots                      4.0.2                  
ua-parser/uap-php                                   v3.9.14                
unclecheese/display-logic                           2.0.6                  
undefinedoffset/silverstripe-nocaptcha              2.4.0                  
webonyx/graphql-php                                 v14.11.10              
wildbit/swiftmailer-postmark                        3.4.0                  
wilr/silverstripe-googlesitemaps                    2.2.1