SDSM:Languages and Frameworks: Difference between revisions

From SMUSwiki
Jump to navigation Jump to search
(Split SDSM document part Languages and Frameworks off from Index.)
 
(Flesh out lists of SDS Laravel PHP and JS library dependencies to spell out what the latest existing versions of each are and also how any were replaced with other libraries.)
(5 intermediate revisions by the same user not shown)
Line 11: Line 11:
[[#top|RETURN]]
[[#top|RETURN]]


== Introduction ==
== Programming Languages ==


'''SDS''' itself is a web application written mainly in the PHP
'''SDS''' is a web application written in 3 main programming languages:
programming language (https://www.php.net). Some portions are also
written in the JavaScript programming language, though it is intended
that these will be replaced with PHP code, mostly if not entirely.
Some portions are also written in the MySQL DBMS (https://www.mysql.com)
dialect of the SQL programming language, but these are being replaced with
PHP code that uses a DBMS abstraction instead of literal SQL.


'''SDS''' specifically uses PHP major version 8.1, which was first
* PHP (https://www.php.net)
released for general production use on 2020 Nov 26
* JavaScript
(https://www.php.net/ChangeLog-8.php); PHP 8.1 stopped receiving active
* MySQL DBMS (https://www.mysql.com) dialect of SQL
support by its principal maintainers on 2023 Nov 25, and then for
critical security issues it will only be supported by them until 2025
Dec 31 (https://www.php.net/supported-versions.php).
 
'''SDS''' specifically uses MySQL major version 8.0, which was first
released for general production use on 2018 Apr 19
(https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html);
MySQL 8.0 will stop receiving LTS support by its principal maintainers
in 2026 April.
 
'''SDS''' can run on a variety of server environments and operating
systems, same as PHP and MySQL do. However, its canonical (and ''also''
its '''Canonical''') runtime environment is the Ubuntu operating system
(https://ubuntu.com), which '''SMUS''' runs its production and shared
testing deployments in.
 
Those production '''SDS''' deployments specifically use Ubuntu major
version 22.04 LTS, which was first released for general production use
on 2022 Apr 21; it will stop receiving standard support in 2027 and end
of life support in 2032 (https://wiki.ubuntu.com/Releases).
 
'''SMUS''' uses the specific versions of PHP and MySQL that are provided
with the Ubuntu version it uses, so the former are only updated when the
latter is updated. Most notable is that '''SDS''' is constrained to using
PHP 8.1 for as long as it is run on Ubuntu 22.04. While their principal
maintainers may stop supporting those versions sooner, Ubuntu themselves
would continue to provide critical security and bug fixes to MySQL and PHP
bundled with their LTS releases, but not new major versions.


[[#top|RETURN]]
[[#top|RETURN]]


== SDS Laravel PHP Library Dependencies ==
== SDS Laravel PHP Library Dependencies ==
=== Required In Composer Config File ===


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


* barryvdh/laravel-debugbar (^3.7)
* barryvdh/laravel-debugbar (^3.7, of 2022.07.11; latest is 3.13.5, of 2024.04.12)
* directorytree/ldaprecord-laravel (^2.7.3)
* directorytree/ldaprecord-laravel (^2.7.3, of 2023.02.09; latest is 3.3.2, of 2024.04.12)
* etern8ty/beanstream (dev-master)
* etern8ty/beanstream (dev-master, is custom fork)
* fakerphp/faker (^1.23.1)
* fakerphp/faker (^1.23.1, is latest, of 2024.01.02)
* fideloper/proxy (^4.4.2)
* fideloper/proxy (^4.4.2, is latest, of 2022.02.09; Laravel has built-in replacement)
* goldspecdigital/laravel-eloquent-uuid (^8.0.1)
* goldspecdigital/laravel-eloquent-uuid (^8.0.1, of 2020.12.23; latest is 10, of 2023.02.23; Laravel 9.3+ has built-in replacement)
* guzzlehttp/guzzle (^7.8.1)
* guzzlehttp/guzzle (^7.8.1, is latest, of 2023.12.03)
* intervention/image (^2.7.2)
* intervention/image (^2.7.2, of 2022.05.21; replaced by intervention/image-laravel, 1.2, of 2024.03.03)
* juliomotol/laravel-auth-timeout (^3.1.1)
* juliomotol/laravel-auth-timeout (^3.1.1, of 2022.06.03; latest is 4.1, of 2024.04.01)
* lab404/laravel-impersonate (^1.7.5)
* lab404/laravel-impersonate (^1.7.5, is latest, of 2024.03.11)
* laravel/framework (^8.83.27)
* laravel/framework (^8.83.27, of 2022.12.08; latest is 11.10, of 2024.06.04)
* laravel/helpers (^1.7)
* laravel/helpers (^1.7, is latest, of 2023.11.30)
* laravel/tinker (^2.9)
* laravel/tinker (^2.9, is latest, of 2024.01.04)
* laravel/ui (^3.4.6)
* laravel/ui (^3.4.6, of 2022.05.20; latest is 4.5.2, of 2024.05.08)
* mockery/mockery (^1.6.11)
* mockery/mockery (^1.6.12, of 2024.05.16)
* nunomaduro/collision (^5.11)
* nunomaduro/collision (^5.11, of 2022.01.10; latest is 8.1.1, of 2024.03.06)
* phpunit/phpunit (^10.5.20)
* phpunit/phpunit (^10.5.20, of 2024.04.24; latest is 11.2.1, of 2024.06.11)
* spatie/laravel-ignition (^1.6.4)
* spatie/laravel-ignition (^1.6.4, of 2023.01.03; latest is 2.8, of 2024.06.12)
* staudenmeir/eloquent-has-many-deep (^1.14.4)
* staudenmeir/eloquent-has-many-deep (^1.14.4, of 2021.12.07; latest is 1.20.1, of 2024.05.25)
 
[[#top|RETURN]]
 
=== Resolved From Composer Config File ===


When Composer evaluates its config file <code>composer.json</code> of
When Composer evaluates its config file <code>composer.json</code> of
Line 124: Line 84:
* league/mime-type-detection (1.15.0)
* league/mime-type-detection (1.15.0)
* maximebf/debugbar (v1.22.3)
* maximebf/debugbar (v1.22.3)
* mockery/mockery (1.6.11)
* mockery/mockery (1.6.12)
* monolog/monolog (2.9.3)
* monolog/monolog (2.9.3)
* myclabs/deep-copy (1.11.1)
* myclabs/deep-copy (1.11.1)
Line 146: Line 106:
* psr/event-dispatcher (1.0.0)
* psr/event-dispatcher (1.0.0)
* psr/http-client (1.0.3)
* psr/http-client (1.0.3)
* psr/http-factory (1.0.2)
* psr/http-factory (1.1.0)
* psr/http-message (2.0)
* psr/http-message (2.0)
* psr/log (2.0.0)
* psr/log (2.0.0)
Line 170: Line 130:
* sebastian/version (4.0.1)
* sebastian/version (4.0.1)
* spatie/backtrace (1.6.1)
* spatie/backtrace (1.6.1)
* spatie/flare-client-php (1.5.1)
* spatie/flare-client-php (1.6.0)
* spatie/ignition (1.14.1)
* spatie/ignition (1.14.1)
* spatie/laravel-ignition (1.6.4)
* spatie/laravel-ignition (1.6.4)
Line 207: Line 167:
* voku/portable-ascii (1.6.1)
* voku/portable-ascii (1.6.1)
* webmozart/assert (1.11.0)
* webmozart/assert (1.11.0)
[[#top|RETURN]]
=== Directly Used By Name In PHP Source Files ===


The PHP source code files of ''SDS Laravel'' contain direct references
The PHP source code files of ''SDS Laravel'' contain direct references
Line 218: Line 174:
statements but other times those names ''don't'' appear in
statements but other times those names ''don't'' appear in
<code>use</code> statements and in the main body of PHP code instead.
<code>use</code> statements and in the main body of PHP code instead.
This '''SDSM''' document sub-section enumerates the third-party PHP
classes that are directly referenced by name in the ''SDS Laravel'' PHP
source code, which is the strongest indicator that those classes are
actually-used dependencies of it, rather than declared dependencies that
are not actually used.


Directly used by name in about 800 app PHP files:
Directly used by name in about 800 app PHP files:
Line 302: Line 252:


* Fruitcake\Cors\HandleCors
* Fruitcake\Cors\HandleCors
[[#top|RETURN]]
== SDS Laravel JavaScript Library Dependencies ==
The NPM config file <code>package.json</code> of ''SDS Laravel'' explicitly
declares that it requires these 20 JavaScript library dependencies:
* @fortawesome/fontawesome-free (^5.15.4, of 2021.08.04; latest is 6.5.2, of 2024.04.02)
* axios (^0.27.2, of 2022.04.27; latest is 1.7.2, of 2024.05.21)
* bootstrap (^4.6.2, of 2022.07.19; latest is 5.3.3, of 2024.02.20)
* bootstrap-select (^1.13.18, is latest, of 2020.06.26, not explicitly compatible with bootstrap 5)
* cross-env (^7.0.3, is latest, of 2020.12.01; not needed when using laravel-mix 6+)
* font-awesome (^4.7.0, of 2016.10.24; replaced by @fortawesome/fontawesome-free, 6.5.2, of 2024.04.02)
* jquery (^3.7.1, is latest, of 2023.08.28; jquery 4 is in beta as of 2024.02.06)
* jquery-ui (^1.13.3, is latest, of 2024.04.26, in maintenance-only mode; jquery-ui 1.14 is in beta as of 2024.05.15)
* laravel-mix (^5.0.9, of 2020.11.05; latest is 6.0.49, of 2022.06.09)
* lodash (^4.17.21, is latest, of 2021.02.20)
* moment (^2.30.1, is latest, of 2023.12.27)
* popper.js (^1.16.1, is latest, of 2020.01.22; replaced by @popperjs/core, 2.11.8, of 2023.05.26; replaced by @floating-ui/dom, 1.6.5, of 2024.05.05)
* resolve-url-loader (^3.1.5, of 2022.12.02; latest is 5.0.0, of 2022.01.17; added automatically when using laravel-mix)
* sass (^1.77.2, of 2024.05.16; latest is 1.77.5, of 2024.06.11; added automatically when using laravel-mix)
* sass-loader (^8.0.2, of 2020.01.13; latest is 14.2.1, of 2024.04.16; added automatically when using laravel-mix)
* tempusdominus-bootstrap-4 (^5.39.2, is latest, of 2022.04.12; replaced by @eonasdan/tempus-dominus, 6.9.9, of 2024.05.30)
* tempusdominus-core (^5.19.3, is latest, of 2022.04.12; replaced by @eonasdan/tempus-dominus, 6.9.9, of 2024.05.30)
* vue (^2.7.16, of 2023.12.24; latest is 3.4.27, of 2024.05.07)
* vue-bootstrap-datetimepicker (^5.0.1, is latest, of 2018.09.16; replaced by @eonasdan/tempus-dominus, 6.9.9, of 2024.05.30)
* vue-template-compiler (^2.7.16, is latest, of 2023.12.24; added automatically when using laravel-mix)
When NPM evaluates its config file <code>package.json</code> of
''SDS Laravel'', its declared required JavaScript library dependencies are
resolved to approximately 907 or 1205 which are actually installed.
The JavaScript source code files of ''SDS Laravel'' contain direct
references to a variety of third-party JavaScript libraries.
Source file <code>package.json</code> directly invokes these in "scripts":
* cross-env (direct package.json dep used now but not required with laravel-mix 6+)
* laravel-mix (direct package.json dep used for primary build process)
* webpack (indirect dep via laravel-mix via multiple paths)
* webpack-dev-server (indirect dep via laravel-mix)
These libraries in <code>package.json</code> are automatically added to it
if missing when executing <code>laravel-mix</code> for the build process
(by way of <code>npm run prod</code> or <code>npm run dev</code>);
they are not named by source files.
* resolve-url-loader (direct package.json dep)
* sass (direct package.json dep; also indirect via sass-loader)
* sass-loader (direct package.json dep)
* vue-template-compiler (direct package.json dep)
Source file <code>webpack.mix.js</code>
explicitly "require" or "import" these:
* laravel-mix (direct package.json dep)
* (resources/js/app.js)
* (resources/sass/app.scss)
Source file <code>resources/js/bootstrap.js</code>
explicitly "require" or "import" these:
* axios (direct package.json dep)
* bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
* jquery (direct package.json dep; also indirect via multiple paths)
* lodash (direct package.json dep; also indirect via laravel-mix via multiple paths)
* popper.js (direct package.json dep; also indirect via multiple paths)
Source file <code>resources/js/app.js</code>
explicitly "require" or "import" these:
* @fortawesome/fontawesome-free (direct package.json dep)
* bootstrap-select (direct package.json dep)
* jquery (direct package.json dep; also indirect via multiple paths)
* jquery-ui (direct package.json dep)
* tempusdominus-bootstrap-4 (direct package.json dep)
* vue (direct package.json dep; also indirect via vue-bootstrap-datetimepicker)
* (resources/js/bootstrap.js)
Source file <code>resources/sass/app.scss</code>
explicitly "require" or "import" these:
* bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
* bootstrap-select (direct package.json dep)
* font-awesome (direct package.json dep)
* jquery-ui (direct package.json dep)
* <nowiki>https://fonts.googleapis.com/css?family=Nunito</nowiki>
* (variables)
Source file <code>resources/js/components/inputs/DateTime.vue</code>
explicitly "require" or "import" these:
* bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
* pc-bootstrap4-datetimepicker (indirect dep via vue-bootstrap-datetimepicker)
* vue-bootstrap-datetimepicker (direct package.json dep)
These libraries in <code>package.json</code> could be removed from its
dependency list because they are brought in for us by other dependencies;
but in some cases the version numbers brought in differ in that case:
* bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
* jquery (direct package.json dep; also indirect via multiple paths)
* lodash (direct package.json dep; also indirect via laravel-mix via multiple paths)
* moment (direct package.json dep; also indirect via tempusdominus-bootstrap-4)
* popper.js (direct package.json dep; also indirect via multiple paths)
* tempusdominus-core (direct package.json dep; also indirect via tempusdominus-bootstrap-4)
[[#top|RETURN]]
== SDS Gavintech PHP Library Dependencies ==
The Composer config file <code>composer.json</code> 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 <code>composer.json</code> 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)
[[#top|RETURN]]
== SDS Gavintech JavaScript Library Dependencies ==
The NPM config file <code>package.json</code> 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 <code>package.json</code> 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)


[[#top|RETURN]]
[[#top|RETURN]]

Revision as of 17:50, 13 June 2024


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, of 2022.07.11; latest is 3.13.5, of 2024.04.12)
  • directorytree/ldaprecord-laravel (^2.7.3, of 2023.02.09; latest is 3.3.2, of 2024.04.12)
  • etern8ty/beanstream (dev-master, is custom fork)
  • fakerphp/faker (^1.23.1, is latest, of 2024.01.02)
  • fideloper/proxy (^4.4.2, is latest, of 2022.02.09; Laravel has built-in replacement)
  • goldspecdigital/laravel-eloquent-uuid (^8.0.1, of 2020.12.23; latest is 10, of 2023.02.23; Laravel 9.3+ has built-in replacement)
  • guzzlehttp/guzzle (^7.8.1, is latest, of 2023.12.03)
  • intervention/image (^2.7.2, of 2022.05.21; replaced by intervention/image-laravel, 1.2, of 2024.03.03)
  • juliomotol/laravel-auth-timeout (^3.1.1, of 2022.06.03; latest is 4.1, of 2024.04.01)
  • lab404/laravel-impersonate (^1.7.5, is latest, of 2024.03.11)
  • laravel/framework (^8.83.27, of 2022.12.08; latest is 11.10, of 2024.06.04)
  • laravel/helpers (^1.7, is latest, of 2023.11.30)
  • laravel/tinker (^2.9, is latest, of 2024.01.04)
  • laravel/ui (^3.4.6, of 2022.05.20; latest is 4.5.2, of 2024.05.08)
  • mockery/mockery (^1.6.12, of 2024.05.16)
  • nunomaduro/collision (^5.11, of 2022.01.10; latest is 8.1.1, of 2024.03.06)
  • phpunit/phpunit (^10.5.20, of 2024.04.24; latest is 11.2.1, of 2024.06.11)
  • spatie/laravel-ignition (^1.6.4, of 2023.01.03; latest is 2.8, of 2024.06.12)
  • staudenmeir/eloquent-has-many-deep (^1.14.4, of 2021.12.07; latest is 1.20.1, of 2024.05.25)

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, of 2021.08.04; latest is 6.5.2, of 2024.04.02)
  • axios (^0.27.2, of 2022.04.27; latest is 1.7.2, of 2024.05.21)
  • bootstrap (^4.6.2, of 2022.07.19; latest is 5.3.3, of 2024.02.20)
  • bootstrap-select (^1.13.18, is latest, of 2020.06.26, not explicitly compatible with bootstrap 5)
  • cross-env (^7.0.3, is latest, of 2020.12.01; not needed when using laravel-mix 6+)
  • font-awesome (^4.7.0, of 2016.10.24; replaced by @fortawesome/fontawesome-free, 6.5.2, of 2024.04.02)
  • jquery (^3.7.1, is latest, of 2023.08.28; jquery 4 is in beta as of 2024.02.06)
  • jquery-ui (^1.13.3, is latest, of 2024.04.26, in maintenance-only mode; jquery-ui 1.14 is in beta as of 2024.05.15)
  • laravel-mix (^5.0.9, of 2020.11.05; latest is 6.0.49, of 2022.06.09)
  • lodash (^4.17.21, is latest, of 2021.02.20)
  • moment (^2.30.1, is latest, of 2023.12.27)
  • popper.js (^1.16.1, is latest, of 2020.01.22; replaced by @popperjs/core, 2.11.8, of 2023.05.26; replaced by @floating-ui/dom, 1.6.5, of 2024.05.05)
  • resolve-url-loader (^3.1.5, of 2022.12.02; latest is 5.0.0, of 2022.01.17; added automatically when using laravel-mix)
  • sass (^1.77.2, of 2024.05.16; latest is 1.77.5, of 2024.06.11; added automatically when using laravel-mix)
  • sass-loader (^8.0.2, of 2020.01.13; latest is 14.2.1, of 2024.04.16; added automatically when using laravel-mix)
  • tempusdominus-bootstrap-4 (^5.39.2, is latest, of 2022.04.12; replaced by @eonasdan/tempus-dominus, 6.9.9, of 2024.05.30)
  • tempusdominus-core (^5.19.3, is latest, of 2022.04.12; replaced by @eonasdan/tempus-dominus, 6.9.9, of 2024.05.30)
  • vue (^2.7.16, of 2023.12.24; latest is 3.4.27, of 2024.05.07)
  • vue-bootstrap-datetimepicker (^5.0.1, is latest, of 2018.09.16; replaced by @eonasdan/tempus-dominus, 6.9.9, of 2024.05.30)
  • vue-template-compiler (^2.7.16, is latest, of 2023.12.24; added automatically when using laravel-mix)

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.

The JavaScript source code files of SDS Laravel contain direct references to a variety of third-party JavaScript libraries.

Source file package.json directly invokes these in "scripts":

  • cross-env (direct package.json dep used now but not required with laravel-mix 6+)
  • laravel-mix (direct package.json dep used for primary build process)
  • webpack (indirect dep via laravel-mix via multiple paths)
  • webpack-dev-server (indirect dep via laravel-mix)

These libraries in package.json are automatically added to it if missing when executing laravel-mix for the build process (by way of npm run prod or npm run dev); they are not named by source files.

  • resolve-url-loader (direct package.json dep)
  • sass (direct package.json dep; also indirect via sass-loader)
  • sass-loader (direct package.json dep)
  • vue-template-compiler (direct package.json dep)

Source file webpack.mix.js explicitly "require" or "import" these:

  • laravel-mix (direct package.json dep)
  • (resources/js/app.js)
  • (resources/sass/app.scss)

Source file resources/js/bootstrap.js explicitly "require" or "import" these:

  • axios (direct package.json dep)
  • bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
  • jquery (direct package.json dep; also indirect via multiple paths)
  • lodash (direct package.json dep; also indirect via laravel-mix via multiple paths)
  • popper.js (direct package.json dep; also indirect via multiple paths)

Source file resources/js/app.js explicitly "require" or "import" these:

  • @fortawesome/fontawesome-free (direct package.json dep)
  • bootstrap-select (direct package.json dep)
  • jquery (direct package.json dep; also indirect via multiple paths)
  • jquery-ui (direct package.json dep)
  • tempusdominus-bootstrap-4 (direct package.json dep)
  • vue (direct package.json dep; also indirect via vue-bootstrap-datetimepicker)
  • (resources/js/bootstrap.js)

Source file resources/sass/app.scss explicitly "require" or "import" these:

  • bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
  • bootstrap-select (direct package.json dep)
  • font-awesome (direct package.json dep)
  • jquery-ui (direct package.json dep)
  • https://fonts.googleapis.com/css?family=Nunito
  • (variables)

Source file resources/js/components/inputs/DateTime.vue explicitly "require" or "import" these:

  • bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
  • pc-bootstrap4-datetimepicker (indirect dep via vue-bootstrap-datetimepicker)
  • vue-bootstrap-datetimepicker (direct package.json dep)

These libraries in package.json could be removed from its dependency list because they are brought in for us by other dependencies; but in some cases the version numbers brought in differ in that case:

  • bootstrap (direct package.json dep; also indirect via bootstrap-select and others)
  • jquery (direct package.json dep; also indirect via multiple paths)
  • lodash (direct package.json dep; also indirect via laravel-mix via multiple paths)
  • moment (direct package.json dep; also indirect via tempusdominus-bootstrap-4)
  • popper.js (direct package.json dep; also indirect via multiple paths)
  • tempusdominus-core (direct package.json dep; also indirect via tempusdominus-bootstrap-4)

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