From ccbf620fa15aabd579fad779dcf317a77b8a75f9 Mon Sep 17 00:00:00 2001
From: Tim van Dijen <tvdijen@gmail.com>
Date: Sat, 28 May 2022 22:00:08 +0200
Subject: [PATCH] Move src/ to resources/

---
 .php_cs.dist                                     |  2 +-
 TESTING.md                                       |  4 ++--
 bin/get-translatable-strings                     |  8 ++++----
 bin/importPdoMetadata.php                        |  2 +-
 bin/initMDSPdo.php                               |  2 +-
 bin/memcacheSync.php                             |  2 +-
 bin/pwgen.php                                    |  2 +-
 composer.json                                    | 16 ++++++++--------
 composer.lock                                    |  2 +-
 modules/cron/bin/cron.php                        |  2 +-
 phpcs.xml                                        |  8 ++++----
 phpunit.xml                                      |  2 +-
 psalm.xml                                        | 10 +++++-----
 {src => resources}/css/default-rtl.css           |  0
 {src => resources}/css/default.scss              |  0
 {src => resources}/js/bundle/clipboard.js        |  0
 {src => resources}/js/bundle/expander.js         |  0
 {src => resources}/js/bundle/highlight.js        |  0
 {src => resources}/js/bundle/language.js         |  0
 {src => resources}/js/bundle/main.js             |  0
 {src => resources}/js/bundle/ready.js            |  0
 {src => resources}/js/logout/logout.js           |  0
 {src => resources}/js/logout/main.js             |  0
 {src => resources}/js/post/main.js               |  0
 {src => resources}/js/post/post.js               |  0
 {src => resources}/js/style.js                   |  0
 .../SimpleSAML/Auth/AuthenticationFactory.php    |  0
 {lib => src}/SimpleSAML/Auth/ProcessingChain.php |  0
 .../SimpleSAML/Auth/ProcessingFilter.php         |  0
 {lib => src}/SimpleSAML/Auth/Simple.php          |  0
 {lib => src}/SimpleSAML/Auth/Source.php          |  0
 {lib => src}/SimpleSAML/Auth/SourceFactory.php   |  0
 {lib => src}/SimpleSAML/Auth/State.php           |  0
 .../SimpleSAML/Command/RouterDebugCommand.php    |  0
 {lib => src}/SimpleSAML/Compat/Logger.php        |  0
 {lib => src}/SimpleSAML/Compat/SspContainer.php  |  0
 {lib => src}/SimpleSAML/Configuration.php        |  4 ++--
 {lib => src}/SimpleSAML/Console/Application.php  |  0
 {lib => src}/SimpleSAML/Database.php             |  0
 {lib => src}/SimpleSAML/Error/AuthSource.php     |  0
 {lib => src}/SimpleSAML/Error/BadRequest.php     |  0
 {lib => src}/SimpleSAML/Error/BadUserInput.php   |  0
 .../SimpleSAML/Error/CannotSetCookie.php         |  0
 .../SimpleSAML/Error/ConfigurationError.php      |  0
 .../Error/CriticalConfigurationError.php         |  0
 {lib => src}/SimpleSAML/Error/Error.php          |  0
 {lib => src}/SimpleSAML/Error/ErrorCodes.php     |  0
 {lib => src}/SimpleSAML/Error/Exception.php      |  0
 .../SimpleSAML/Error/InvalidCredential.php       |  0
 .../SimpleSAML/Error/MetadataNotFound.php        |  0
 {lib => src}/SimpleSAML/Error/NoState.php        |  0
 {lib => src}/SimpleSAML/Error/NotFound.php       |  0
 .../SimpleSAML/Error/UnserializableException.php |  0
 {lib => src}/SimpleSAML/Error/User.php           |  0
 {lib => src}/SimpleSAML/Error/UserAborted.php    |  0
 {lib => src}/SimpleSAML/Error/UserNotFound.php   |  0
 .../SimpleSAML/HTTP/RunnableResponse.php         |  0
 {lib => src}/SimpleSAML/IdP.php                  |  0
 .../SimpleSAML/IdP/IFrameLogoutHandler.php       |  0
 .../SimpleSAML/IdP/LogoutHandlerInterface.php    |  0
 .../SimpleSAML/IdP/TraditionalLogoutHandler.php  |  0
 {lib => src}/SimpleSAML/Kernel.php               |  2 +-
 {lib => src}/SimpleSAML/Locale/Language.php      |  0
 {lib => src}/SimpleSAML/Locale/Localization.php  |  0
 {lib => src}/SimpleSAML/Locale/Translate.php     |  0
 .../SimpleSAML/Locale/TwigTranslator.php         |  0
 {lib => src}/SimpleSAML/Logger.php               |  0
 .../SimpleSAML/Logger/ErrorLogLoggingHandler.php |  0
 .../SimpleSAML/Logger/FileLoggingHandler.php     |  0
 .../Logger/LoggingHandlerInterface.php           |  0
 .../Logger/StandardErrorLoggingHandler.php       |  0
 .../SimpleSAML/Logger/SyslogLoggingHandler.php   |  0
 {lib => src}/SimpleSAML/Memcache.php             |  0
 .../Metadata/MetaDataStorageHandler.php          |  0
 .../Metadata/MetaDataStorageHandlerFlatFile.php  |  0
 .../Metadata/MetaDataStorageHandlerPdo.php       |  0
 .../Metadata/MetaDataStorageHandlerSerialize.php |  0
 .../Metadata/MetaDataStorageHandlerXML.php       |  0
 .../Metadata/MetaDataStorageSource.php           |  0
 {lib => src}/SimpleSAML/Metadata/SAMLBuilder.php |  0
 {lib => src}/SimpleSAML/Metadata/SAMLParser.php  |  0
 {lib => src}/SimpleSAML/Metadata/Signer.php      |  0
 {lib => src}/SimpleSAML/Metadata/Sources/MDQ.php |  0
 {lib => src}/SimpleSAML/Module.php               |  0
 {lib => src}/SimpleSAML/Session.php              |  0
 {lib => src}/SimpleSAML/SessionHandler.php       |  0
 {lib => src}/SimpleSAML/SessionHandlerCookie.php |  0
 {lib => src}/SimpleSAML/SessionHandlerPHP.php    |  0
 {lib => src}/SimpleSAML/SessionHandlerStore.php  |  0
 {lib => src}/SimpleSAML/Stats.php                |  0
 {lib => src}/SimpleSAML/Stats/Output.php         |  0
 {lib => src}/SimpleSAML/Store/MemcacheStore.php  |  0
 {lib => src}/SimpleSAML/Store/RedisStore.php     |  0
 {lib => src}/SimpleSAML/Store/SQLStore.php       |  0
 {lib => src}/SimpleSAML/Store/StoreFactory.php   |  0
 {lib => src}/SimpleSAML/Store/StoreInterface.php |  0
 {lib => src}/SimpleSAML/Utils/Arrays.php         |  0
 {lib => src}/SimpleSAML/Utils/Attributes.php     |  0
 {lib => src}/SimpleSAML/Utils/Auth.php           |  0
 {lib => src}/SimpleSAML/Utils/ClearableState.php |  0
 {lib => src}/SimpleSAML/Utils/Config.php         |  0
 .../SimpleSAML/Utils/Config/Metadata.php         |  0
 {lib => src}/SimpleSAML/Utils/Crypto.php         |  0
 {lib => src}/SimpleSAML/Utils/EMail.php          |  0
 {lib => src}/SimpleSAML/Utils/HTTP.php           |  0
 {lib => src}/SimpleSAML/Utils/Net.php            |  0
 {lib => src}/SimpleSAML/Utils/Random.php         |  0
 {lib => src}/SimpleSAML/Utils/System.php         |  0
 {lib => src}/SimpleSAML/Utils/Time.php           |  0
 {lib => src}/SimpleSAML/Utils/Translate.php      |  0
 {lib => src}/SimpleSAML/Utils/XML.php            |  0
 {lib => src}/SimpleSAML/XHTML/IdPDisco.php       |  0
 {lib => src}/SimpleSAML/XHTML/Template.php       |  0
 .../XHTML/TemplateControllerInterface.php        |  0
 {lib => src}/SimpleSAML/XHTML/TemplateLoader.php |  0
 {lib => src}/SimpleSAML/XML/Errors.php           |  0
 {lib => src}/SimpleSAML/XML/Parser.php           |  0
 {lib => src}/SimpleSAML/XML/Signer.php           |  0
 {lib => src}/SimpleSAML/XML/Validator.php        |  0
 {lib => src}/_autoload.php                       |  0
 webpack.config.js                                |  8 ++++----
 www/_include.php                                 |  2 +-
 122 files changed, 39 insertions(+), 39 deletions(-)
 rename {src => resources}/css/default-rtl.css (100%)
 rename {src => resources}/css/default.scss (100%)
 rename {src => resources}/js/bundle/clipboard.js (100%)
 rename {src => resources}/js/bundle/expander.js (100%)
 rename {src => resources}/js/bundle/highlight.js (100%)
 rename {src => resources}/js/bundle/language.js (100%)
 rename {src => resources}/js/bundle/main.js (100%)
 rename {src => resources}/js/bundle/ready.js (100%)
 rename {src => resources}/js/logout/logout.js (100%)
 rename {src => resources}/js/logout/main.js (100%)
 rename {src => resources}/js/post/main.js (100%)
 rename {src => resources}/js/post/post.js (100%)
 rename {src => resources}/js/style.js (100%)
 rename {lib => src}/SimpleSAML/Auth/AuthenticationFactory.php (100%)
 rename {lib => src}/SimpleSAML/Auth/ProcessingChain.php (100%)
 rename {lib => src}/SimpleSAML/Auth/ProcessingFilter.php (100%)
 rename {lib => src}/SimpleSAML/Auth/Simple.php (100%)
 rename {lib => src}/SimpleSAML/Auth/Source.php (100%)
 rename {lib => src}/SimpleSAML/Auth/SourceFactory.php (100%)
 rename {lib => src}/SimpleSAML/Auth/State.php (100%)
 rename {lib => src}/SimpleSAML/Command/RouterDebugCommand.php (100%)
 rename {lib => src}/SimpleSAML/Compat/Logger.php (100%)
 rename {lib => src}/SimpleSAML/Compat/SspContainer.php (100%)
 rename {lib => src}/SimpleSAML/Configuration.php (99%)
 rename {lib => src}/SimpleSAML/Console/Application.php (100%)
 rename {lib => src}/SimpleSAML/Database.php (100%)
 rename {lib => src}/SimpleSAML/Error/AuthSource.php (100%)
 rename {lib => src}/SimpleSAML/Error/BadRequest.php (100%)
 rename {lib => src}/SimpleSAML/Error/BadUserInput.php (100%)
 rename {lib => src}/SimpleSAML/Error/CannotSetCookie.php (100%)
 rename {lib => src}/SimpleSAML/Error/ConfigurationError.php (100%)
 rename {lib => src}/SimpleSAML/Error/CriticalConfigurationError.php (100%)
 rename {lib => src}/SimpleSAML/Error/Error.php (100%)
 rename {lib => src}/SimpleSAML/Error/ErrorCodes.php (100%)
 rename {lib => src}/SimpleSAML/Error/Exception.php (100%)
 rename {lib => src}/SimpleSAML/Error/InvalidCredential.php (100%)
 rename {lib => src}/SimpleSAML/Error/MetadataNotFound.php (100%)
 rename {lib => src}/SimpleSAML/Error/NoState.php (100%)
 rename {lib => src}/SimpleSAML/Error/NotFound.php (100%)
 rename {lib => src}/SimpleSAML/Error/UnserializableException.php (100%)
 rename {lib => src}/SimpleSAML/Error/User.php (100%)
 rename {lib => src}/SimpleSAML/Error/UserAborted.php (100%)
 rename {lib => src}/SimpleSAML/Error/UserNotFound.php (100%)
 rename {lib => src}/SimpleSAML/HTTP/RunnableResponse.php (100%)
 rename {lib => src}/SimpleSAML/IdP.php (100%)
 rename {lib => src}/SimpleSAML/IdP/IFrameLogoutHandler.php (100%)
 rename {lib => src}/SimpleSAML/IdP/LogoutHandlerInterface.php (100%)
 rename {lib => src}/SimpleSAML/IdP/TraditionalLogoutHandler.php (100%)
 rename {lib => src}/SimpleSAML/Kernel.php (99%)
 rename {lib => src}/SimpleSAML/Locale/Language.php (100%)
 rename {lib => src}/SimpleSAML/Locale/Localization.php (100%)
 rename {lib => src}/SimpleSAML/Locale/Translate.php (100%)
 rename {lib => src}/SimpleSAML/Locale/TwigTranslator.php (100%)
 rename {lib => src}/SimpleSAML/Logger.php (100%)
 rename {lib => src}/SimpleSAML/Logger/ErrorLogLoggingHandler.php (100%)
 rename {lib => src}/SimpleSAML/Logger/FileLoggingHandler.php (100%)
 rename {lib => src}/SimpleSAML/Logger/LoggingHandlerInterface.php (100%)
 rename {lib => src}/SimpleSAML/Logger/StandardErrorLoggingHandler.php (100%)
 rename {lib => src}/SimpleSAML/Logger/SyslogLoggingHandler.php (100%)
 rename {lib => src}/SimpleSAML/Memcache.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/MetaDataStorageHandler.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/MetaDataStorageSource.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/SAMLBuilder.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/SAMLParser.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/Signer.php (100%)
 rename {lib => src}/SimpleSAML/Metadata/Sources/MDQ.php (100%)
 rename {lib => src}/SimpleSAML/Module.php (100%)
 rename {lib => src}/SimpleSAML/Session.php (100%)
 rename {lib => src}/SimpleSAML/SessionHandler.php (100%)
 rename {lib => src}/SimpleSAML/SessionHandlerCookie.php (100%)
 rename {lib => src}/SimpleSAML/SessionHandlerPHP.php (100%)
 rename {lib => src}/SimpleSAML/SessionHandlerStore.php (100%)
 rename {lib => src}/SimpleSAML/Stats.php (100%)
 rename {lib => src}/SimpleSAML/Stats/Output.php (100%)
 rename {lib => src}/SimpleSAML/Store/MemcacheStore.php (100%)
 rename {lib => src}/SimpleSAML/Store/RedisStore.php (100%)
 rename {lib => src}/SimpleSAML/Store/SQLStore.php (100%)
 rename {lib => src}/SimpleSAML/Store/StoreFactory.php (100%)
 rename {lib => src}/SimpleSAML/Store/StoreInterface.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Arrays.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Attributes.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Auth.php (100%)
 rename {lib => src}/SimpleSAML/Utils/ClearableState.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Config.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Config/Metadata.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Crypto.php (100%)
 rename {lib => src}/SimpleSAML/Utils/EMail.php (100%)
 rename {lib => src}/SimpleSAML/Utils/HTTP.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Net.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Random.php (100%)
 rename {lib => src}/SimpleSAML/Utils/System.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Time.php (100%)
 rename {lib => src}/SimpleSAML/Utils/Translate.php (100%)
 rename {lib => src}/SimpleSAML/Utils/XML.php (100%)
 rename {lib => src}/SimpleSAML/XHTML/IdPDisco.php (100%)
 rename {lib => src}/SimpleSAML/XHTML/Template.php (100%)
 rename {lib => src}/SimpleSAML/XHTML/TemplateControllerInterface.php (100%)
 rename {lib => src}/SimpleSAML/XHTML/TemplateLoader.php (100%)
 rename {lib => src}/SimpleSAML/XML/Errors.php (100%)
 rename {lib => src}/SimpleSAML/XML/Parser.php (100%)
 rename {lib => src}/SimpleSAML/XML/Signer.php (100%)
 rename {lib => src}/SimpleSAML/XML/Validator.php (100%)
 rename {lib => src}/_autoload.php (100%)

diff --git a/.php_cs.dist b/.php_cs.dist
index b2f3d6e4d..feb3f1ad2 100644
--- a/.php_cs.dist
+++ b/.php_cs.dist
@@ -3,8 +3,8 @@
 $finder = PhpCsFixer\Finder::create()
     ->exclude(__DIR__ . '/www/resources')
     ->in([
-        __DIR__ . '/lib',
         __DIR__ . '/modules',
+        __DIR__ . '/src',
         __DIR__ . '/templates',
         __DIR__ . '/tests',
         __DIR__ . '/www',
diff --git a/TESTING.md b/TESTING.md
index 8b24c2fe9..aa9db30be 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -18,9 +18,9 @@ classes, and `SimpleSAML\Test\Module\modulename` for classes located in
 modules.
 
 For example, if you want to test the `SimpleSAML\Utils\HTTP` class
-located in `lib/SimpleSAML/Utils/HTTP.php`, the tests must be in a class
+located in `src/SimpleSAML/Utils/HTTP.php`, the tests must be in a class
 named `HTTPTest` implemented in
-`tests/lib/SimpleSAML/Utils/HTTPTest.php`, with the following namespace
+`tests/src/SimpleSAML/Utils/HTTPTest.php`, with the following namespace
 definition:
 
 ```php
diff --git a/bin/get-translatable-strings b/bin/get-translatable-strings
index f48a82931..5a312c0ac 100755
--- a/bin/get-translatable-strings
+++ b/bin/get-translatable-strings
@@ -10,7 +10,7 @@
  * - The main product and the standard modules, when invoked with '--main'.
  *
  * It will search all Twig templates for occurences of the trans()
- * function, and all PHP code under lib/ for the noop() function.
+ * function, and all PHP code under src/ for the noop() function.
  */
 declare(strict_types=1);
 
@@ -22,7 +22,7 @@ use Symfony\Component\Filesystem\Filesystem;
 $baseDir = dirname(dirname(__FILE__));
 
 // Add library autoloader
-require_once($baseDir . '/lib/_autoload.php');
+require_once($baseDir . '/src/_autoload.php');
 
 if($argc != 2) {
     echo "Usage: $argv[0] (<module>|--main)\n";
@@ -52,9 +52,9 @@ foreach($modules as $module) {
     $domain = $module ?: 'messages';
 
     $moduleDir = $baseDir . ($module === '' ? '' : '/modules/' . $module);
-    $moduleLibDir = $moduleDir . '/lib/';
+    $moduleSrcDir = $moduleDir . '/src/';
     $outputDir = $moduleDir . $outputSuffix;
-    print `find $tempDir $moduleLibDir -name \*.php | xargs xgettext --default-domain=$domain -p $outputDir --from-code=UTF-8 -j --omit-header --no-location -ktrans -knoop -L PHP`;
+    print `find $tempDir $moduleSrcDir -name \*.php | xargs xgettext --default-domain=$domain -p $outputDir --from-code=UTF-8 -j --omit-header --no-location -ktrans -knoop -L PHP`;
 }
 
 $filesystem->remove($tempDirBase);
diff --git a/bin/importPdoMetadata.php b/bin/importPdoMetadata.php
index cbe270391..271152a73 100755
--- a/bin/importPdoMetadata.php
+++ b/bin/importPdoMetadata.php
@@ -3,7 +3,7 @@
 
 $baseDir = dirname(dirname(__FILE__));
 
-require_once $baseDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . '_autoload.php';
+require_once $baseDir . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . '_autoload.php';
 require_once \SimpleSAML\Utils\Config::getConfigDir() . DIRECTORY_SEPARATOR . 'config.php';
 
 # Iterate through configured metadata sources and ensure
diff --git a/bin/initMDSPdo.php b/bin/initMDSPdo.php
index ca6029200..79af70f12 100755
--- a/bin/initMDSPdo.php
+++ b/bin/initMDSPdo.php
@@ -5,7 +5,7 @@
 $baseDir = dirname(dirname(__FILE__));
 
 // Add library autoloader and configuration
-require_once $baseDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . '_autoload.php';
+require_once $baseDir . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . '_autoload.php';
 require_once \SimpleSAML\Utils\Config::getConfigDir() . DIRECTORY_SEPARATOR . 'config.php';
 
 echo "Initializing Metadata Database..." . PHP_EOL;
diff --git a/bin/memcacheSync.php b/bin/memcacheSync.php
index cc60d614d..85bdbacfc 100755
--- a/bin/memcacheSync.php
+++ b/bin/memcacheSync.php
@@ -21,7 +21,7 @@ if (!class_exists('Memcache') && !class_exists('Memcached')) {
 $baseDir = dirname(dirname(__FILE__));
 
 // Add library autoloader
-require_once($baseDir . '/lib/_autoload.php');
+require_once($baseDir . '/src/_autoload.php');
 
 // Initialize the configuration
 $configdir = SimpleSAML\Utils\Config::getConfigDir();
diff --git a/bin/pwgen.php b/bin/pwgen.php
index 0af9b1ca4..5980566bf 100755
--- a/bin/pwgen.php
+++ b/bin/pwgen.php
@@ -10,7 +10,7 @@
 $baseDir = dirname(dirname(__FILE__));
 
 // Add library autoloader
-require_once($baseDir . '/lib/_autoload.php');
+require_once($baseDir . '/src/_autoload.php');
 
 
 echo "Enter password: ";
diff --git a/composer.json b/composer.json
index 4ba8beb5f..549c703b0 100644
--- a/composer.json
+++ b/composer.json
@@ -21,7 +21,7 @@
     ],
     "autoload": {
         "psr-4": {
-            "SimpleSAML\\": "lib/SimpleSAML",
+            "SimpleSAML\\": "src/SimpleSAML",
             "SimpleSAML\\Module\\admin\\": "modules/admin/lib",
             "SimpleSAML\\Module\\core\\": "modules/core/lib",
             "SimpleSAML\\Module\\cron\\": "modules/cron/lib",
@@ -32,13 +32,13 @@
     },
     "autoload-dev": {
         "psr-4": {
-            "SimpleSAML\\Test\\": ["tests", "tests/lib/SimpleSAML"],
-            "SimpleSAML\\Test\\Module\\admin\\": ["tests/lib/SimpleSAML/modules/admin/lib"],
-            "SimpleSAML\\Test\\Module\\core\\": ["tests/lib/SimpleSAML/modules/core/lib"],
-            "SimpleSAML\\Test\\Module\\cron\\": ["tests/lib/SimpleSAML/modules/cron/lib"],
-            "SimpleSAML\\Test\\Module\\exampleauth\\": ["tests/lib/SimpleSAML/modules/exampleauth/lib"],
-            "SimpleSAML\\Test\\Module\\multiauth\\": ["tests/lib/SimpleSAML/modules/multiauth/lib"],
-            "SimpleSAML\\Test\\Module\\saml\\": ["tests/lib/SimpleSAML/modules/saml/lib"]
+            "SimpleSAML\\Test\\": ["tests", "tests/src/SimpleSAML"],
+            "SimpleSAML\\Test\\Module\\admin\\": ["tests//modules/admin/lib"],
+            "SimpleSAML\\Test\\Module\\core\\": ["tests/modules/core/lib"],
+            "SimpleSAML\\Test\\Module\\cron\\": ["tests/modules/cron/lib"],
+            "SimpleSAML\\Test\\Module\\exampleauth\\": ["tests/modules/exampleauth/lib"],
+            "SimpleSAML\\Test\\Module\\multiauth\\": ["tests/modules/multiauth/lib"],
+            "SimpleSAML\\Test\\Module\\saml\\": ["tests/modules/saml/lib"]
         }
     },
     "require": {
diff --git a/composer.lock b/composer.lock
index e3ed206ef..25d264d81 100644
--- a/composer.lock
+++ b/composer.lock
@@ -7370,5 +7370,5 @@
         "ext-curl": "*",
         "ext-pdo_sqlite": "*"
     },
-    "plugin-api-version": "2.2.0"
+    "plugin-api-version": "2.3.0"
 }
diff --git a/modules/cron/bin/cron.php b/modules/cron/bin/cron.php
index cb85cbe76..8d4b8f41a 100755
--- a/modules/cron/bin/cron.php
+++ b/modules/cron/bin/cron.php
@@ -11,7 +11,7 @@
 $baseDir = dirname(dirname(dirname(dirname(__FILE__))));
 
 // Add library autoloader.
-require_once($baseDir . '/lib/_autoload.php');
+require_once($baseDir . '/src/_autoload.php');
 
 if (!SimpleSAML\Module::isModuleEnabled('cron')) {
     echo "You need to enable the cron module before this script can be used.\n";
diff --git a/phpcs.xml b/phpcs.xml
index 012ba6be0..93a1bfbd5 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -8,9 +8,9 @@
 
     <file>bin</file>
     <file>config-templates</file>
-    <file>lib</file>
     <file>metadata-templates</file>
     <file>modules</file>
+    <file>resources</file>
     <file>src</file>
     <file>tests</file>
     <file>www</file>
@@ -30,15 +30,15 @@
         </properties>
 
         <!-- Exclude files with long lines that we cannot immediately fix -->
-        <exclude-pattern>tests/lib/SimpleSAML/Metadata/MetaDataStorageSourceTest.php</exclude-pattern>
-        <exclude-pattern>tests/lib/SimpleSAML/Metadata/SAMLParserTest.php</exclude-pattern>
+        <exclude-pattern>tests/src/SimpleSAML/Metadata/MetaDataStorageSourceTest.php</exclude-pattern>
+        <exclude-pattern>tests/src/SimpleSAML/Metadata/SAMLParserTest.php</exclude-pattern>
         <exclude-pattern>tests/modules/saml/lib/Controller/ServiceProviderTest.php</exclude-pattern>
     </rule>
 
     <!-- Ignore files with side effects that we cannot fix -->
     <rule ref="PSR1.Files.SideEffects">
         <exclude-pattern>bin/*</exclude-pattern>
-        <exclude-pattern>lib/_autoload_modules.php</exclude-pattern>
+        <exclude-pattern>src/_autoload_modules.php</exclude-pattern>
         <exclude-pattern>tests/_autoload_modules.php</exclude-pattern>
         <exclude-pattern>www/_include.php</exclude-pattern>
     </rule>
diff --git a/phpunit.xml b/phpunit.xml
index e43310ecb..002bf1fe6 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -2,13 +2,13 @@
 <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="./tests/bootstrap.php" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
   <coverage processUncoveredFiles="true">
     <include>
-      <directory suffix=".php">./lib</directory>
       <directory suffix=".php">./modules/admin/lib</directory>
       <directory suffix=".php">./modules/core/lib</directory>
       <directory suffix=".php">./modules/cron/lib</directory>
       <directory suffix=".php">./modules/exampleauth/lib</directory>
       <directory suffix=".php">./modules/multiauth/lib</directory>
       <directory suffix=".php">./modules/saml/lib</directory>
+      <directory suffix=".php">./src</directory>
     </include>
     <exclude>
       <directory>./tests</directory>
diff --git a/psalm.xml b/psalm.xml
index c03a78417..73c42a273 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -9,9 +9,9 @@
 >
     <projectFiles>
         <directory name="config-templates" />
-        <directory name="lib/SimpleSAML" />
         <directory name="metadata-templates" />
         <directory name="modules" />
+        <directory name="src/SimpleSAML" />
         <directory name="tests" />
         <directory name="www" />
 
@@ -48,12 +48,12 @@
         <UnresolvableInclude>
             <errorLevel type="suppress">
                 <file name="bin/*.php" />
-                <file name="lib/SimpleSAML/Configuration.php" />
-                <file name="lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php" />
-                <file name="lib/SimpleSAML/Module.php" />
-                <file name="lib/SimpleSAML/XHTML/Template.php" />
                 <file name="modules/core/lib/Auth/Process/AttributeMap.php" />
                 <file name="modules/*/bin/*.php" />
+                <file name="src/SimpleSAML/Configuration.php" />
+                <file name="src/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php" />
+                <file name="src/SimpleSAML/Module.php" />
+                <file name="src/SimpleSAML/XHTML/Template.php" />
                 <file name="tests/bootstrap.php" />
                 <file name="tests/routers/configLoader.php" />
             </errorLevel>
diff --git a/src/css/default-rtl.css b/resources/css/default-rtl.css
similarity index 100%
rename from src/css/default-rtl.css
rename to resources/css/default-rtl.css
diff --git a/src/css/default.scss b/resources/css/default.scss
similarity index 100%
rename from src/css/default.scss
rename to resources/css/default.scss
diff --git a/src/js/bundle/clipboard.js b/resources/js/bundle/clipboard.js
similarity index 100%
rename from src/js/bundle/clipboard.js
rename to resources/js/bundle/clipboard.js
diff --git a/src/js/bundle/expander.js b/resources/js/bundle/expander.js
similarity index 100%
rename from src/js/bundle/expander.js
rename to resources/js/bundle/expander.js
diff --git a/src/js/bundle/highlight.js b/resources/js/bundle/highlight.js
similarity index 100%
rename from src/js/bundle/highlight.js
rename to resources/js/bundle/highlight.js
diff --git a/src/js/bundle/language.js b/resources/js/bundle/language.js
similarity index 100%
rename from src/js/bundle/language.js
rename to resources/js/bundle/language.js
diff --git a/src/js/bundle/main.js b/resources/js/bundle/main.js
similarity index 100%
rename from src/js/bundle/main.js
rename to resources/js/bundle/main.js
diff --git a/src/js/bundle/ready.js b/resources/js/bundle/ready.js
similarity index 100%
rename from src/js/bundle/ready.js
rename to resources/js/bundle/ready.js
diff --git a/src/js/logout/logout.js b/resources/js/logout/logout.js
similarity index 100%
rename from src/js/logout/logout.js
rename to resources/js/logout/logout.js
diff --git a/src/js/logout/main.js b/resources/js/logout/main.js
similarity index 100%
rename from src/js/logout/main.js
rename to resources/js/logout/main.js
diff --git a/src/js/post/main.js b/resources/js/post/main.js
similarity index 100%
rename from src/js/post/main.js
rename to resources/js/post/main.js
diff --git a/src/js/post/post.js b/resources/js/post/post.js
similarity index 100%
rename from src/js/post/post.js
rename to resources/js/post/post.js
diff --git a/src/js/style.js b/resources/js/style.js
similarity index 100%
rename from src/js/style.js
rename to resources/js/style.js
diff --git a/lib/SimpleSAML/Auth/AuthenticationFactory.php b/src/SimpleSAML/Auth/AuthenticationFactory.php
similarity index 100%
rename from lib/SimpleSAML/Auth/AuthenticationFactory.php
rename to src/SimpleSAML/Auth/AuthenticationFactory.php
diff --git a/lib/SimpleSAML/Auth/ProcessingChain.php b/src/SimpleSAML/Auth/ProcessingChain.php
similarity index 100%
rename from lib/SimpleSAML/Auth/ProcessingChain.php
rename to src/SimpleSAML/Auth/ProcessingChain.php
diff --git a/lib/SimpleSAML/Auth/ProcessingFilter.php b/src/SimpleSAML/Auth/ProcessingFilter.php
similarity index 100%
rename from lib/SimpleSAML/Auth/ProcessingFilter.php
rename to src/SimpleSAML/Auth/ProcessingFilter.php
diff --git a/lib/SimpleSAML/Auth/Simple.php b/src/SimpleSAML/Auth/Simple.php
similarity index 100%
rename from lib/SimpleSAML/Auth/Simple.php
rename to src/SimpleSAML/Auth/Simple.php
diff --git a/lib/SimpleSAML/Auth/Source.php b/src/SimpleSAML/Auth/Source.php
similarity index 100%
rename from lib/SimpleSAML/Auth/Source.php
rename to src/SimpleSAML/Auth/Source.php
diff --git a/lib/SimpleSAML/Auth/SourceFactory.php b/src/SimpleSAML/Auth/SourceFactory.php
similarity index 100%
rename from lib/SimpleSAML/Auth/SourceFactory.php
rename to src/SimpleSAML/Auth/SourceFactory.php
diff --git a/lib/SimpleSAML/Auth/State.php b/src/SimpleSAML/Auth/State.php
similarity index 100%
rename from lib/SimpleSAML/Auth/State.php
rename to src/SimpleSAML/Auth/State.php
diff --git a/lib/SimpleSAML/Command/RouterDebugCommand.php b/src/SimpleSAML/Command/RouterDebugCommand.php
similarity index 100%
rename from lib/SimpleSAML/Command/RouterDebugCommand.php
rename to src/SimpleSAML/Command/RouterDebugCommand.php
diff --git a/lib/SimpleSAML/Compat/Logger.php b/src/SimpleSAML/Compat/Logger.php
similarity index 100%
rename from lib/SimpleSAML/Compat/Logger.php
rename to src/SimpleSAML/Compat/Logger.php
diff --git a/lib/SimpleSAML/Compat/SspContainer.php b/src/SimpleSAML/Compat/SspContainer.php
similarity index 100%
rename from lib/SimpleSAML/Compat/SspContainer.php
rename to src/SimpleSAML/Compat/SspContainer.php
diff --git a/lib/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php
similarity index 99%
rename from lib/SimpleSAML/Configuration.php
rename to src/SimpleSAML/Configuration.php
index 73fe33ee6..5284fadbe 100644
--- a/lib/SimpleSAML/Configuration.php
+++ b/src/SimpleSAML/Configuration.php
@@ -561,7 +561,7 @@ class Configuration implements Utils\ClearableState
             return $dir;
         }
 
-        // the directory wasn't set in the configuration file, path is <base directory>/lib/SimpleSAML/Configuration.php
+        // the directory wasn't set in the configuration file, path is <base directory>/src/SimpleSAML/Configuration.php
         $dir = __FILE__;
         Assert::same(basename($dir), 'Configuration.php');
 
@@ -569,7 +569,7 @@ class Configuration implements Utils\ClearableState
         Assert::same(basename($dir), 'SimpleSAML');
 
         $dir = dirname($dir);
-        Assert::same(basename($dir), 'lib');
+        Assert::same(basename($dir), 'src');
 
         $dir = dirname($dir);
 
diff --git a/lib/SimpleSAML/Console/Application.php b/src/SimpleSAML/Console/Application.php
similarity index 100%
rename from lib/SimpleSAML/Console/Application.php
rename to src/SimpleSAML/Console/Application.php
diff --git a/lib/SimpleSAML/Database.php b/src/SimpleSAML/Database.php
similarity index 100%
rename from lib/SimpleSAML/Database.php
rename to src/SimpleSAML/Database.php
diff --git a/lib/SimpleSAML/Error/AuthSource.php b/src/SimpleSAML/Error/AuthSource.php
similarity index 100%
rename from lib/SimpleSAML/Error/AuthSource.php
rename to src/SimpleSAML/Error/AuthSource.php
diff --git a/lib/SimpleSAML/Error/BadRequest.php b/src/SimpleSAML/Error/BadRequest.php
similarity index 100%
rename from lib/SimpleSAML/Error/BadRequest.php
rename to src/SimpleSAML/Error/BadRequest.php
diff --git a/lib/SimpleSAML/Error/BadUserInput.php b/src/SimpleSAML/Error/BadUserInput.php
similarity index 100%
rename from lib/SimpleSAML/Error/BadUserInput.php
rename to src/SimpleSAML/Error/BadUserInput.php
diff --git a/lib/SimpleSAML/Error/CannotSetCookie.php b/src/SimpleSAML/Error/CannotSetCookie.php
similarity index 100%
rename from lib/SimpleSAML/Error/CannotSetCookie.php
rename to src/SimpleSAML/Error/CannotSetCookie.php
diff --git a/lib/SimpleSAML/Error/ConfigurationError.php b/src/SimpleSAML/Error/ConfigurationError.php
similarity index 100%
rename from lib/SimpleSAML/Error/ConfigurationError.php
rename to src/SimpleSAML/Error/ConfigurationError.php
diff --git a/lib/SimpleSAML/Error/CriticalConfigurationError.php b/src/SimpleSAML/Error/CriticalConfigurationError.php
similarity index 100%
rename from lib/SimpleSAML/Error/CriticalConfigurationError.php
rename to src/SimpleSAML/Error/CriticalConfigurationError.php
diff --git a/lib/SimpleSAML/Error/Error.php b/src/SimpleSAML/Error/Error.php
similarity index 100%
rename from lib/SimpleSAML/Error/Error.php
rename to src/SimpleSAML/Error/Error.php
diff --git a/lib/SimpleSAML/Error/ErrorCodes.php b/src/SimpleSAML/Error/ErrorCodes.php
similarity index 100%
rename from lib/SimpleSAML/Error/ErrorCodes.php
rename to src/SimpleSAML/Error/ErrorCodes.php
diff --git a/lib/SimpleSAML/Error/Exception.php b/src/SimpleSAML/Error/Exception.php
similarity index 100%
rename from lib/SimpleSAML/Error/Exception.php
rename to src/SimpleSAML/Error/Exception.php
diff --git a/lib/SimpleSAML/Error/InvalidCredential.php b/src/SimpleSAML/Error/InvalidCredential.php
similarity index 100%
rename from lib/SimpleSAML/Error/InvalidCredential.php
rename to src/SimpleSAML/Error/InvalidCredential.php
diff --git a/lib/SimpleSAML/Error/MetadataNotFound.php b/src/SimpleSAML/Error/MetadataNotFound.php
similarity index 100%
rename from lib/SimpleSAML/Error/MetadataNotFound.php
rename to src/SimpleSAML/Error/MetadataNotFound.php
diff --git a/lib/SimpleSAML/Error/NoState.php b/src/SimpleSAML/Error/NoState.php
similarity index 100%
rename from lib/SimpleSAML/Error/NoState.php
rename to src/SimpleSAML/Error/NoState.php
diff --git a/lib/SimpleSAML/Error/NotFound.php b/src/SimpleSAML/Error/NotFound.php
similarity index 100%
rename from lib/SimpleSAML/Error/NotFound.php
rename to src/SimpleSAML/Error/NotFound.php
diff --git a/lib/SimpleSAML/Error/UnserializableException.php b/src/SimpleSAML/Error/UnserializableException.php
similarity index 100%
rename from lib/SimpleSAML/Error/UnserializableException.php
rename to src/SimpleSAML/Error/UnserializableException.php
diff --git a/lib/SimpleSAML/Error/User.php b/src/SimpleSAML/Error/User.php
similarity index 100%
rename from lib/SimpleSAML/Error/User.php
rename to src/SimpleSAML/Error/User.php
diff --git a/lib/SimpleSAML/Error/UserAborted.php b/src/SimpleSAML/Error/UserAborted.php
similarity index 100%
rename from lib/SimpleSAML/Error/UserAborted.php
rename to src/SimpleSAML/Error/UserAborted.php
diff --git a/lib/SimpleSAML/Error/UserNotFound.php b/src/SimpleSAML/Error/UserNotFound.php
similarity index 100%
rename from lib/SimpleSAML/Error/UserNotFound.php
rename to src/SimpleSAML/Error/UserNotFound.php
diff --git a/lib/SimpleSAML/HTTP/RunnableResponse.php b/src/SimpleSAML/HTTP/RunnableResponse.php
similarity index 100%
rename from lib/SimpleSAML/HTTP/RunnableResponse.php
rename to src/SimpleSAML/HTTP/RunnableResponse.php
diff --git a/lib/SimpleSAML/IdP.php b/src/SimpleSAML/IdP.php
similarity index 100%
rename from lib/SimpleSAML/IdP.php
rename to src/SimpleSAML/IdP.php
diff --git a/lib/SimpleSAML/IdP/IFrameLogoutHandler.php b/src/SimpleSAML/IdP/IFrameLogoutHandler.php
similarity index 100%
rename from lib/SimpleSAML/IdP/IFrameLogoutHandler.php
rename to src/SimpleSAML/IdP/IFrameLogoutHandler.php
diff --git a/lib/SimpleSAML/IdP/LogoutHandlerInterface.php b/src/SimpleSAML/IdP/LogoutHandlerInterface.php
similarity index 100%
rename from lib/SimpleSAML/IdP/LogoutHandlerInterface.php
rename to src/SimpleSAML/IdP/LogoutHandlerInterface.php
diff --git a/lib/SimpleSAML/IdP/TraditionalLogoutHandler.php b/src/SimpleSAML/IdP/TraditionalLogoutHandler.php
similarity index 100%
rename from lib/SimpleSAML/IdP/TraditionalLogoutHandler.php
rename to src/SimpleSAML/IdP/TraditionalLogoutHandler.php
diff --git a/lib/SimpleSAML/Kernel.php b/src/SimpleSAML/Kernel.php
similarity index 99%
rename from lib/SimpleSAML/Kernel.php
rename to src/SimpleSAML/Kernel.php
index 01b45b288..3473a0fa6 100644
--- a/lib/SimpleSAML/Kernel.php
+++ b/src/SimpleSAML/Kernel.php
@@ -150,7 +150,7 @@ class Kernel extends BaseKernel
             $definition->setAutowired(true);
             $definition->setPublic(true);
 
-            $controllerDir = Module::getModuleDir($this->module) . '/lib/Controller';
+            $controllerDir = Module::getModuleDir($this->module) . '/src/Controller';
 
             if (!is_dir($controllerDir)) {
                 return;
diff --git a/lib/SimpleSAML/Locale/Language.php b/src/SimpleSAML/Locale/Language.php
similarity index 100%
rename from lib/SimpleSAML/Locale/Language.php
rename to src/SimpleSAML/Locale/Language.php
diff --git a/lib/SimpleSAML/Locale/Localization.php b/src/SimpleSAML/Locale/Localization.php
similarity index 100%
rename from lib/SimpleSAML/Locale/Localization.php
rename to src/SimpleSAML/Locale/Localization.php
diff --git a/lib/SimpleSAML/Locale/Translate.php b/src/SimpleSAML/Locale/Translate.php
similarity index 100%
rename from lib/SimpleSAML/Locale/Translate.php
rename to src/SimpleSAML/Locale/Translate.php
diff --git a/lib/SimpleSAML/Locale/TwigTranslator.php b/src/SimpleSAML/Locale/TwigTranslator.php
similarity index 100%
rename from lib/SimpleSAML/Locale/TwigTranslator.php
rename to src/SimpleSAML/Locale/TwigTranslator.php
diff --git a/lib/SimpleSAML/Logger.php b/src/SimpleSAML/Logger.php
similarity index 100%
rename from lib/SimpleSAML/Logger.php
rename to src/SimpleSAML/Logger.php
diff --git a/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php b/src/SimpleSAML/Logger/ErrorLogLoggingHandler.php
similarity index 100%
rename from lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php
rename to src/SimpleSAML/Logger/ErrorLogLoggingHandler.php
diff --git a/lib/SimpleSAML/Logger/FileLoggingHandler.php b/src/SimpleSAML/Logger/FileLoggingHandler.php
similarity index 100%
rename from lib/SimpleSAML/Logger/FileLoggingHandler.php
rename to src/SimpleSAML/Logger/FileLoggingHandler.php
diff --git a/lib/SimpleSAML/Logger/LoggingHandlerInterface.php b/src/SimpleSAML/Logger/LoggingHandlerInterface.php
similarity index 100%
rename from lib/SimpleSAML/Logger/LoggingHandlerInterface.php
rename to src/SimpleSAML/Logger/LoggingHandlerInterface.php
diff --git a/lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php b/src/SimpleSAML/Logger/StandardErrorLoggingHandler.php
similarity index 100%
rename from lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php
rename to src/SimpleSAML/Logger/StandardErrorLoggingHandler.php
diff --git a/lib/SimpleSAML/Logger/SyslogLoggingHandler.php b/src/SimpleSAML/Logger/SyslogLoggingHandler.php
similarity index 100%
rename from lib/SimpleSAML/Logger/SyslogLoggingHandler.php
rename to src/SimpleSAML/Logger/SyslogLoggingHandler.php
diff --git a/lib/SimpleSAML/Memcache.php b/src/SimpleSAML/Memcache.php
similarity index 100%
rename from lib/SimpleSAML/Memcache.php
rename to src/SimpleSAML/Memcache.php
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php b/src/SimpleSAML/Metadata/MetaDataStorageHandler.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/MetaDataStorageHandler.php
rename to src/SimpleSAML/Metadata/MetaDataStorageHandler.php
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php b/src/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php
rename to src/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php b/src/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php
rename to src/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php b/src/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php
rename to src/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php b/src/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php
rename to src/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageSource.php b/src/SimpleSAML/Metadata/MetaDataStorageSource.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/MetaDataStorageSource.php
rename to src/SimpleSAML/Metadata/MetaDataStorageSource.php
diff --git a/lib/SimpleSAML/Metadata/SAMLBuilder.php b/src/SimpleSAML/Metadata/SAMLBuilder.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/SAMLBuilder.php
rename to src/SimpleSAML/Metadata/SAMLBuilder.php
diff --git a/lib/SimpleSAML/Metadata/SAMLParser.php b/src/SimpleSAML/Metadata/SAMLParser.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/SAMLParser.php
rename to src/SimpleSAML/Metadata/SAMLParser.php
diff --git a/lib/SimpleSAML/Metadata/Signer.php b/src/SimpleSAML/Metadata/Signer.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/Signer.php
rename to src/SimpleSAML/Metadata/Signer.php
diff --git a/lib/SimpleSAML/Metadata/Sources/MDQ.php b/src/SimpleSAML/Metadata/Sources/MDQ.php
similarity index 100%
rename from lib/SimpleSAML/Metadata/Sources/MDQ.php
rename to src/SimpleSAML/Metadata/Sources/MDQ.php
diff --git a/lib/SimpleSAML/Module.php b/src/SimpleSAML/Module.php
similarity index 100%
rename from lib/SimpleSAML/Module.php
rename to src/SimpleSAML/Module.php
diff --git a/lib/SimpleSAML/Session.php b/src/SimpleSAML/Session.php
similarity index 100%
rename from lib/SimpleSAML/Session.php
rename to src/SimpleSAML/Session.php
diff --git a/lib/SimpleSAML/SessionHandler.php b/src/SimpleSAML/SessionHandler.php
similarity index 100%
rename from lib/SimpleSAML/SessionHandler.php
rename to src/SimpleSAML/SessionHandler.php
diff --git a/lib/SimpleSAML/SessionHandlerCookie.php b/src/SimpleSAML/SessionHandlerCookie.php
similarity index 100%
rename from lib/SimpleSAML/SessionHandlerCookie.php
rename to src/SimpleSAML/SessionHandlerCookie.php
diff --git a/lib/SimpleSAML/SessionHandlerPHP.php b/src/SimpleSAML/SessionHandlerPHP.php
similarity index 100%
rename from lib/SimpleSAML/SessionHandlerPHP.php
rename to src/SimpleSAML/SessionHandlerPHP.php
diff --git a/lib/SimpleSAML/SessionHandlerStore.php b/src/SimpleSAML/SessionHandlerStore.php
similarity index 100%
rename from lib/SimpleSAML/SessionHandlerStore.php
rename to src/SimpleSAML/SessionHandlerStore.php
diff --git a/lib/SimpleSAML/Stats.php b/src/SimpleSAML/Stats.php
similarity index 100%
rename from lib/SimpleSAML/Stats.php
rename to src/SimpleSAML/Stats.php
diff --git a/lib/SimpleSAML/Stats/Output.php b/src/SimpleSAML/Stats/Output.php
similarity index 100%
rename from lib/SimpleSAML/Stats/Output.php
rename to src/SimpleSAML/Stats/Output.php
diff --git a/lib/SimpleSAML/Store/MemcacheStore.php b/src/SimpleSAML/Store/MemcacheStore.php
similarity index 100%
rename from lib/SimpleSAML/Store/MemcacheStore.php
rename to src/SimpleSAML/Store/MemcacheStore.php
diff --git a/lib/SimpleSAML/Store/RedisStore.php b/src/SimpleSAML/Store/RedisStore.php
similarity index 100%
rename from lib/SimpleSAML/Store/RedisStore.php
rename to src/SimpleSAML/Store/RedisStore.php
diff --git a/lib/SimpleSAML/Store/SQLStore.php b/src/SimpleSAML/Store/SQLStore.php
similarity index 100%
rename from lib/SimpleSAML/Store/SQLStore.php
rename to src/SimpleSAML/Store/SQLStore.php
diff --git a/lib/SimpleSAML/Store/StoreFactory.php b/src/SimpleSAML/Store/StoreFactory.php
similarity index 100%
rename from lib/SimpleSAML/Store/StoreFactory.php
rename to src/SimpleSAML/Store/StoreFactory.php
diff --git a/lib/SimpleSAML/Store/StoreInterface.php b/src/SimpleSAML/Store/StoreInterface.php
similarity index 100%
rename from lib/SimpleSAML/Store/StoreInterface.php
rename to src/SimpleSAML/Store/StoreInterface.php
diff --git a/lib/SimpleSAML/Utils/Arrays.php b/src/SimpleSAML/Utils/Arrays.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Arrays.php
rename to src/SimpleSAML/Utils/Arrays.php
diff --git a/lib/SimpleSAML/Utils/Attributes.php b/src/SimpleSAML/Utils/Attributes.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Attributes.php
rename to src/SimpleSAML/Utils/Attributes.php
diff --git a/lib/SimpleSAML/Utils/Auth.php b/src/SimpleSAML/Utils/Auth.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Auth.php
rename to src/SimpleSAML/Utils/Auth.php
diff --git a/lib/SimpleSAML/Utils/ClearableState.php b/src/SimpleSAML/Utils/ClearableState.php
similarity index 100%
rename from lib/SimpleSAML/Utils/ClearableState.php
rename to src/SimpleSAML/Utils/ClearableState.php
diff --git a/lib/SimpleSAML/Utils/Config.php b/src/SimpleSAML/Utils/Config.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Config.php
rename to src/SimpleSAML/Utils/Config.php
diff --git a/lib/SimpleSAML/Utils/Config/Metadata.php b/src/SimpleSAML/Utils/Config/Metadata.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Config/Metadata.php
rename to src/SimpleSAML/Utils/Config/Metadata.php
diff --git a/lib/SimpleSAML/Utils/Crypto.php b/src/SimpleSAML/Utils/Crypto.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Crypto.php
rename to src/SimpleSAML/Utils/Crypto.php
diff --git a/lib/SimpleSAML/Utils/EMail.php b/src/SimpleSAML/Utils/EMail.php
similarity index 100%
rename from lib/SimpleSAML/Utils/EMail.php
rename to src/SimpleSAML/Utils/EMail.php
diff --git a/lib/SimpleSAML/Utils/HTTP.php b/src/SimpleSAML/Utils/HTTP.php
similarity index 100%
rename from lib/SimpleSAML/Utils/HTTP.php
rename to src/SimpleSAML/Utils/HTTP.php
diff --git a/lib/SimpleSAML/Utils/Net.php b/src/SimpleSAML/Utils/Net.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Net.php
rename to src/SimpleSAML/Utils/Net.php
diff --git a/lib/SimpleSAML/Utils/Random.php b/src/SimpleSAML/Utils/Random.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Random.php
rename to src/SimpleSAML/Utils/Random.php
diff --git a/lib/SimpleSAML/Utils/System.php b/src/SimpleSAML/Utils/System.php
similarity index 100%
rename from lib/SimpleSAML/Utils/System.php
rename to src/SimpleSAML/Utils/System.php
diff --git a/lib/SimpleSAML/Utils/Time.php b/src/SimpleSAML/Utils/Time.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Time.php
rename to src/SimpleSAML/Utils/Time.php
diff --git a/lib/SimpleSAML/Utils/Translate.php b/src/SimpleSAML/Utils/Translate.php
similarity index 100%
rename from lib/SimpleSAML/Utils/Translate.php
rename to src/SimpleSAML/Utils/Translate.php
diff --git a/lib/SimpleSAML/Utils/XML.php b/src/SimpleSAML/Utils/XML.php
similarity index 100%
rename from lib/SimpleSAML/Utils/XML.php
rename to src/SimpleSAML/Utils/XML.php
diff --git a/lib/SimpleSAML/XHTML/IdPDisco.php b/src/SimpleSAML/XHTML/IdPDisco.php
similarity index 100%
rename from lib/SimpleSAML/XHTML/IdPDisco.php
rename to src/SimpleSAML/XHTML/IdPDisco.php
diff --git a/lib/SimpleSAML/XHTML/Template.php b/src/SimpleSAML/XHTML/Template.php
similarity index 100%
rename from lib/SimpleSAML/XHTML/Template.php
rename to src/SimpleSAML/XHTML/Template.php
diff --git a/lib/SimpleSAML/XHTML/TemplateControllerInterface.php b/src/SimpleSAML/XHTML/TemplateControllerInterface.php
similarity index 100%
rename from lib/SimpleSAML/XHTML/TemplateControllerInterface.php
rename to src/SimpleSAML/XHTML/TemplateControllerInterface.php
diff --git a/lib/SimpleSAML/XHTML/TemplateLoader.php b/src/SimpleSAML/XHTML/TemplateLoader.php
similarity index 100%
rename from lib/SimpleSAML/XHTML/TemplateLoader.php
rename to src/SimpleSAML/XHTML/TemplateLoader.php
diff --git a/lib/SimpleSAML/XML/Errors.php b/src/SimpleSAML/XML/Errors.php
similarity index 100%
rename from lib/SimpleSAML/XML/Errors.php
rename to src/SimpleSAML/XML/Errors.php
diff --git a/lib/SimpleSAML/XML/Parser.php b/src/SimpleSAML/XML/Parser.php
similarity index 100%
rename from lib/SimpleSAML/XML/Parser.php
rename to src/SimpleSAML/XML/Parser.php
diff --git a/lib/SimpleSAML/XML/Signer.php b/src/SimpleSAML/XML/Signer.php
similarity index 100%
rename from lib/SimpleSAML/XML/Signer.php
rename to src/SimpleSAML/XML/Signer.php
diff --git a/lib/SimpleSAML/XML/Validator.php b/src/SimpleSAML/XML/Validator.php
similarity index 100%
rename from lib/SimpleSAML/XML/Validator.php
rename to src/SimpleSAML/XML/Validator.php
diff --git a/lib/_autoload.php b/src/_autoload.php
similarity index 100%
rename from lib/_autoload.php
rename to src/_autoload.php
diff --git a/webpack.config.js b/webpack.config.js
index 4acbfa79b..b607edb4c 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -17,10 +17,10 @@ module.exports = environment => {
     const secondaryBackground = env.hasOwnProperty('secondaryBackground') ? env.secondaryBackground : '#e8410c';
     return {
         entry: {
-            bundle: './src/js/bundle/main',
-            logout: './src/js/logout/main',
-            post: './src/js/post/main',
-            stylesheet: './src/js/style'
+            bundle: './resources/js/bundle/main',
+            logout: './resources/js/logout/main',
+            post: './resources/js/post/main',
+            stylesheet: './resources/js/style'
         },
         output: {
             path: path.resolve(buildDir),
diff --git a/www/_include.php b/www/_include.php
index 893f1fbf3..3cbffa24a 100644
--- a/www/_include.php
+++ b/www/_include.php
@@ -1,7 +1,7 @@
 <?php
 
 // initialize the autoloader
-require_once(dirname(dirname(__FILE__)) . '/lib/_autoload.php');
+require_once(dirname(dirname(__FILE__)) . '/src/_autoload.php');
 
 use SAML2\Compat\ContainerSingleton;
 use SimpleSAML\Compat\SspContainer;
-- 
GitLab