SDSM:Languages and Frameworks

From SMUSwiki
Revision as of 12:55, 28 May 2024 by Darren.duncan (talk | contribs) (Update SDS Laravel JS deps to reflect what NPM actually installs.)
Jump to navigation Jump to search


This document consists of multiple parts; for a directory to all of the parts, see SDSM:Index.

Description

This part of the SDS Modernization (SDSM) document provides information about programming languages and frameworks used by SDS.

RETURN

Programming Languages

SDS is a web application written in 3 main programming languages:

RETURN

SDS Laravel PHP Library Dependencies

The Composer config file composer.json of SDS Laravel explicitly declares that it requires these 19 PHP library dependencies:

  • barryvdh/laravel-debugbar (^3.7)
  • directorytree/ldaprecord-laravel (^2.7.3)
  • etern8ty/beanstream (dev-master)
  • fakerphp/faker (^1.23.1)
  • fideloper/proxy (^4.4.2)
  • goldspecdigital/laravel-eloquent-uuid (^8.0.1)
  • guzzlehttp/guzzle (^7.8.1)
  • intervention/image (^2.7.2)
  • juliomotol/laravel-auth-timeout (^3.1.1)
  • lab404/laravel-impersonate (^1.7.5)
  • laravel/framework (^8.83.27)
  • laravel/helpers (^1.7)
  • laravel/tinker (^2.9)
  • laravel/ui (^3.4.6)
  • mockery/mockery (^1.6.12)
  • nunomaduro/collision (^5.11)
  • phpunit/phpunit (^10.5.20)
  • spatie/laravel-ignition (^1.6.4)
  • staudenmeir/eloquent-has-many-deep (^1.14.4)

When Composer evaluates its config file composer.json of SDS Laravel, its declared required PHP library dependencies are resolved to these 117, which are actually installed:

  • barryvdh/laravel-debugbar (v3.7.0)
  • brick/math (0.12.1)
  • carbonphp/carbon-doctrine-types (3.2.0)
  • dflydev/dot-access-data (v3.0.2)
  • directorytree/ldaprecord (v2.20.5)
  • directorytree/ldaprecord-laravel (v2.7.3)
  • doctrine/inflector (2.0.10)
  • doctrine/lexer (1.2.3)
  • dragonmantank/cron-expression (v3.3.3)
  • egulias/email-validator (2.1.25)
  • etern8ty/beanstream (dev-master 297b986)
  • facade/ignition-contracts (1.0.2)
  • fakerphp/faker (v1.23.1)
  • fideloper/proxy (4.4.2)
  • filp/whoops (2.15.4)
  • goldspecdigital/laravel-eloquent-uuid (v8.0.1)
  • graham-campbell/result-type (v1.1.2)
  • guzzlehttp/guzzle (7.8.1)
  • guzzlehttp/promises (2.0.2)
  • guzzlehttp/psr7 (2.6.2)
  • hamcrest/hamcrest-php (v2.0.1)
  • intervention/image (2.7.2)
  • juliomotol/laravel-auth-timeout (v3.1.1)
  • lab404/laravel-impersonate (1.7.5)
  • laravel/framework (v8.83.27)
  • laravel/helpers (v1.7.0)
  • laravel/serializable-closure (v1.3.3)
  • laravel/tinker (v2.9.0)
  • laravel/ui (v3.4.6)
  • league/commonmark (2.4.2)
  • league/config (v1.2.0)
  • league/flysystem (1.1.10)
  • league/mime-type-detection (1.15.0)
  • maximebf/debugbar (v1.22.3)
  • mockery/mockery (1.6.12)
  • monolog/monolog (2.9.3)
  • myclabs/deep-copy (1.11.1)
  • nesbot/carbon (2.72.3)
  • nette/schema (v1.3.0)
  • nette/utils (v4.0.4)
  • nikic/php-parser (v5.0.2)
  • nunomaduro/collision (v5.11.0)
  • opis/closure (3.6.3)
  • phar-io/manifest (2.0.4)
  • phar-io/version (3.2.1)
  • phpoption/phpoption (1.9.2)
  • phpunit/php-code-coverage (10.1.14)
  • phpunit/php-file-iterator (4.1.0)
  • phpunit/php-invoker (4.0.0)
  • phpunit/php-text-template (3.0.1)
  • phpunit/php-timer (6.0.0)
  • phpunit/phpunit (10.5.20)
  • psr/clock (1.0.0)
  • psr/container (1.1.2)
  • psr/event-dispatcher (1.0.0)
  • psr/http-client (1.0.3)
  • psr/http-factory (1.1.0)
  • psr/http-message (2.0)
  • psr/log (2.0.0)
  • psr/simple-cache (1.0.1)
  • psy/psysh (v0.12.3)
  • ralouphie/getallheaders (3.0.3)
  • ramsey/collection (2.0.0)
  • ramsey/uuid (4.7.6)
  • sebastian/cli-parser (2.0.1)
  • sebastian/code-unit (2.0.0)
  • sebastian/code-unit-reverse-lookup (3.0.0)
  • sebastian/comparator (5.0.1)
  • sebastian/complexity (3.2.0)
  • sebastian/diff (5.1.1)
  • sebastian/environment (6.1.0)
  • sebastian/exporter (5.1.2)
  • sebastian/global-state (6.0.2)
  • sebastian/lines-of-code (2.0.2)
  • sebastian/object-enumerator (5.0.0)
  • sebastian/object-reflector (3.0.0)
  • sebastian/recursion-context (5.0.0)
  • sebastian/type (4.0.0)
  • sebastian/version (4.0.1)
  • spatie/backtrace (1.6.1)
  • spatie/flare-client-php (1.6.0)
  • spatie/ignition (1.14.1)
  • spatie/laravel-ignition (1.6.4)
  • staudenmeir/eloquent-has-many-deep (v1.14.4)
  • swiftmailer/swiftmailer (v6.3.0)
  • symfony/console (v5.4.39)
  • symfony/css-selector (v6.4.7)
  • symfony/deprecation-contracts (v3.5.0)
  • symfony/error-handler (v5.4.39)
  • symfony/event-dispatcher (v6.4.7)
  • symfony/event-dispatcher-contracts (v3.5.0)
  • symfony/finder (v5.4.39)
  • symfony/http-foundation (v5.4.39)
  • symfony/http-kernel (v5.4.39)
  • symfony/mime (v5.4.39)
  • symfony/polyfill-ctype (v1.29.0)
  • symfony/polyfill-iconv (v1.29.0)
  • symfony/polyfill-intl-grapheme (v1.29.0)
  • symfony/polyfill-intl-idn (v1.29.0)
  • symfony/polyfill-intl-normalizer (v1.29.0)
  • symfony/polyfill-mbstring (v1.29.0)
  • symfony/polyfill-php72 (v1.29.0)
  • symfony/polyfill-php73 (v1.29.0)
  • symfony/polyfill-php80 (v1.29.0)
  • symfony/process (v5.4.39)
  • symfony/routing (v5.4.39)
  • symfony/service-contracts (v3.5.0)
  • symfony/string (v6.4.7)
  • symfony/translation (v6.4.7)
  • symfony/translation-contracts (v3.5.0)
  • symfony/var-dumper (v5.4.39)
  • theseer/tokenizer (1.2.3)
  • tightenco/collect (v9.52.7)
  • tijsverkoyen/css-to-inline-styles (v2.2.7)
  • vlucas/phpdotenv (v5.6.0)
  • voku/portable-ascii (1.6.1)
  • webmozart/assert (1.11.0)

The PHP source code files of SDS Laravel contain direct references to a variety of third-party PHP classes, most instances of which are parts of the Laravel framework, and some that aren't. Often their fully-qualified names only appear on the form of use statements but other times those names don't appear in use statements and in the main body of PHP code instead.

Directly used by name in about 800 app PHP files:

  • Illuminate\*
  • Auth aka Illuminate\Support\Facades\Auth
  • DB aka Illuminate\Support\Facades\DB
  • Mail aka Illuminate\Support\Facades\Mail
  • Redirect aka Illuminate\Support\Facades\Redirect
  • URL aka Illuminate\Support\Facades\URL

Directly used by name in app/Models/File.php and app/Http/Controllers/Admin/Migration/ImportPhotosController.php only:

  • Image aka Intervention\Image\ImageServiceProvider

Directly used by name in about 70 app PHP classes:

  • Carbon\Carbon
  • Carbon\Exceptions\InvalidFormatException

Directly used by name in 10 app PHP classes:

  • LdapRecord\*

Directly used by name in 9 app PHP model classes:

  • GoldSpecDigital\LaravelEloquentUUID\Database\Eloquent\Uuid

Directly used by name in 5 app PHP classes related to Blackbaud or Bambora:

  • GuzzleHttp\Client
  • GuzzleHttp\Exception\ClientException
  • GuzzleHttp\Exception\GuzzleException

Directly used by name in app/Models/Finance/Bambora.php or app/Http/Controllers/Api/UserProfileController.php only:

  • Beanstream\ApiException
  • Beanstream\Exception
  • Beanstream\Gateway

Directly used by name in 11 php files mostly database/factories/*.php:

  • Faker\Generator

Directly used by name in app/Models/User.php only:

  • Lab404\Impersonate\*

Directly used by name in app/Providers/AppServiceProvider.php only:

  • Dotenv\Dotenv

Directly used by name in app/Models/Pivot/FormCampaignPerson.php only:

  • Staudenmeir\EloquentHasManyDeep\HasRelationships

Directly used by name in app/Http/Middleware/TrustProxies.php only:

  • Fideloper\Proxy\TrustProxies

Directly used by name in app/Http/Middleware/AuthTimeoutMiddleware.php and app/Http/Kernel.php only:

  • JulioMotol\AuthTimeout\Middleware\AuthTimeoutMiddleware

Directly used by name in app/Exceptions/Handler.php only:

  • Symfony\Component\HttpFoundation\Response

Directly used by name in config/logging.php only:

  • Monolog\Handler\*

Directly used by name in tests/Unit/ExampleTest.php only:

  • PHPUnit\Framework\TestCase

Directly referenced by name COMMENTED-OUT in app/Http/Kernel.php only:

  • Fruitcake\Cors\HandleCors

RETURN

SDS Laravel JavaScript Library Dependencies

The NPM config file package.json of SDS Laravel explicitly declares that it requires these 20 JavaScript library dependencies:

  • @fortawesome/fontawesome-free (^5.15.4)
  • axios (^0.27.2)
  • bootstrap (^4.6.2)
  • bootstrap-select (^1.13.18)
  • cross-env (^7.0.3)
  • font-awesome (^4.7.0)
  • jquery (^3.7.1)
  • jquery-ui (^1.13.3)
  • laravel-mix (^5.0.9)
  • lodash (^4.17.21)
  • moment (^2.30.1)
  • popper.js (^1.16.1)
  • resolve-url-loader (^3.1.5)
  • sass (^1.77.2)
  • sass-loader (^8.0.2)
  • tempusdominus-bootstrap-4 (^5.39.2)
  • tempusdominus-core (^5.19.3)
  • vue (^2.7.16)
  • vue-bootstrap-datetimepicker (^5.0.1)
  • vue-template-compiler (^2.7.16)

When NPM evaluates its config file package.json of SDS Laravel, its declared required JavaScript library dependencies are resolved to approximately 907 or 1205 which are actually installed.

RETURN

SDS Gavintech PHP Library Dependencies

The Composer config file composer.json of SDS Gavintech explicitly declares that it requires these 2 PHP library dependencies:

  • facade/flare-client-php (^1.10)
  • spatie/ignition (^1.4)

When Composer evaluates its config file composer.json of SDS Gavintech, its declared required PHP library dependencies are resolved to these 34, which are actually installed:

  • carbonphp/carbon-doctrine-types (3.2.0)
  • doctrine/inflector (2.0.10)
  • facade/flare-client-php (1.10.0)
  • facade/ignition-contracts (1.0.2)
  • illuminate/collections (v8.83.27)
  • illuminate/contracts (v8.83.27)
  • illuminate/macroable (v8.83.27)
  • illuminate/pipeline (v8.83.27)
  • illuminate/support (v8.83.27)
  • nesbot/carbon (2.72.3)
  • psr/clock (1.0.0)
  • psr/container (1.1.2)
  • psr/simple-cache (1.0.1)
  • spatie/backtrace (1.6.1)
  • spatie/flare-client-php (1.6.0)
  • spatie/ignition (1.14.1)
  • symfony/console (v6.4.7)
  • symfony/deprecation-contracts (v3.5.0)
  • symfony/http-foundation (v5.4.39)
  • symfony/mime (v5.4.39)
  • symfony/polyfill-ctype (v1.29.0)
  • symfony/polyfill-intl-grapheme (v1.29.0)
  • symfony/polyfill-intl-idn (v1.29.0)
  • symfony/polyfill-intl-normalizer (v1.29.0)
  • symfony/polyfill-mbstring (v1.29.0)
  • symfony/polyfill-php72 (v1.29.0)
  • symfony/polyfill-php80 (v1.29.0)
  • symfony/process (v6.4.7)
  • symfony/service-contracts (v3.5.0)
  • symfony/string (v6.4.7)
  • symfony/translation (v6.4.7)
  • symfony/translation-contracts (v3.5.0)
  • symfony/var-dumper (v5.4.39)
  • voku/portable-ascii (1.6.1)

RETURN

SDS Gavintech JavaScript Library Dependencies

The NPM config file package.json of SDS Gavintech explicitly declares that it requires these 48 JavaScript library dependencies:

  • @babel/core (^7.10.2)
  • @babel/polyfill (^7.10.1)
  • @babel/preset-env (^7.10.2)
  • @babel/runtime (^7.10.2)
  • @formkit/pro (^0.119.2)
  • @formkit/themes (^1.4.0)
  • @formkit/vue (^1.4.0)
  • @vue/cli (^5.0.8)
  • @vue/compiler-sfc (^3.2.47)
  • @vuepic/vue-datepicker (^5.4.0)
  • axios (^1.3.4)
  • babel-loader (^9.1.2)
  • bootstrap (^4.5.0)
  • bootstrap-select (^1.13.17)
  • bootstrap-vue (^2.15.0)
  • chart.js (4.2.1)
  • chartjs-adapter-moment (^1.0.1)
  • coffeescript (^2.5.1)
  • core-js (^3.29.1)
  • cross-env (^7.0.2)
  • dotenv-safe (^8.2.0)
  • fs (0.0.1-security)
  • jquery (^3.5.1)
  • laravel-mix (^6.0.49)
  • lodash (^4.17.15)
  • moment (^2.26.0)
  • node-sass (^8.0.0)
  • pc-bootstrap4-datetimepicker (^4.17.51)
  • pinia (^2.1.6)
  • popper.js (^1.16.1)
  • primeflex (^3.3.0)
  • primeicons (^6.0.1)
  • primevue (^3.27.0)
  • qs (^6.9.4)
  • resolve-url-loader (^5.0.0)
  • sass (^1.26.8)
  • sass-loader (^13.2.1)
  • tempusdominus-bootstrap-4 (^5.1.2)
  • tempusdominus-core (^5.0.3)
  • vee-validate (^4.8.3)
  • vue (^3.2.47)
  • vue-chartjs (^5.2.0)
  • vue-loader (^17.0.1)
  • vue-numeric (^2.3.0)
  • vue-pagination-3 (^2.0.0-beta01)
  • vue-template-compiler (^2.6.11)
  • webpack (^5.80.0)
  • webpack-cli (^5.0.1)

When NPM evaluates its config file package.json of SDS Gavintech, its declared required JavaScript library dependencies are resolved to approximately 1559 which are actually installed.

That includes these versions of the explicitly declared 48:

  • @babel/core (^7.24.6)
  • @babel/polyfill (^7.12.1)
  • @babel/preset-env (^7.24.6)
  • @babel/runtime (^7.24.6)
  • @formkit/pro (^0.119.14)
  • @formkit/themes (^1.6.3)
  • @formkit/vue (^1.6.3)
  • @vue/cli (^5.0.8)
  • @vue/compiler-sfc (^3.4.27)
  • @vuepic/vue-datepicker (^5.4.0)
  • axios (^1.7.2)
  • babel-loader (^9.1.3)
  • bootstrap (^4.6.2)
  • bootstrap-select (^1.13.18)
  • bootstrap-vue (^2.23.1)
  • chart.js (^4.2.1)
  • chartjs-adapter-moment (^1.0.1)
  • coffeescript (^2.7.0)
  • core-js (^3.37.1)
  • cross-env (^7.0.3)
  • dotenv-safe (^8.2.0)
  • fs (^0.0.1-security)
  • jquery (^3.7.1)
  • laravel-mix (^6.0.49)
  • lodash (^4.17.21)
  • moment (^2.30.1)
  • node-sass (^8.0.0)
  • pc-bootstrap4-datetimepicker (^4.17.51)
  • pinia (^2.1.7)
  • popper.js (^1.16.1)
  • primeflex (^3.3.1)
  • primeicons (^6.0.1)
  • primevue (^3.52.0)
  • qs (^6.12.1)
  • resolve-url-loader (^5.0.0)
  • sass (^1.77.2)
  • sass-loader (^13.3.3)
  • tempusdominus-bootstrap-4 (^5.39.2)
  • tempusdominus-core (^5.19.3)
  • vee-validate (^4.12.8)
  • vue (^3.4.27)
  • vue-chartjs (^5.3.1)
  • vue-loader (^17.4.2)
  • vue-numeric (^2.5.1)
  • vue-pagination-3 (^2.0.0-beta01)
  • vue-template-compiler (^2.7.16)
  • webpack (^5.91.0)
  • webpack-cli (^5.1.4)

RETURN