From 2fec49e7dfd03603c0483a481ba9fc1727be70cb Mon Sep 17 00:00:00 2001 From: BudsieBuds Date: Sat, 19 Apr 2025 20:20:50 +0200 Subject: [PATCH] Enhance license handling (#4223) - automate license updates - license text rendered in monospace font - removed old bower license generation code --- .gitignore | 2 + LICENSE | 4 +- app/Controllers/Config.php | 106 ++--- app/Views/configs/license_config.php | 3 +- gulpfile.js | 17 +- package-lock.json | 497 +++++++++++++++++++++- package.json | 1 + public/css/ospos.css | 5 + public/license/.gitkeep | 0 public/license/LICENSE | 55 --- public/license/beautifulflaticons.license | 19 - public/license/beautifulflaticons.version | 1 - public/license/bootstrap-5.license | 21 - public/license/bootstrap-5.version | 1 - public/license/bootstrap-icons.license | 21 - public/license/bootstrap-icons.version | 1 - public/license/bootstrap.license | 21 - public/license/bootstrap.version | 1 - public/license/bootswatch.license | 21 - public/license/bootswatch.version | 1 - public/license/composer.LICENSES | 87 ---- 21 files changed, 567 insertions(+), 318 deletions(-) create mode 100644 public/license/.gitkeep delete mode 100644 public/license/LICENSE delete mode 100644 public/license/beautifulflaticons.license delete mode 100644 public/license/beautifulflaticons.version delete mode 100644 public/license/bootstrap-5.license delete mode 100644 public/license/bootstrap-5.version delete mode 100644 public/license/bootstrap-icons.license delete mode 100644 public/license/bootstrap-icons.version delete mode 100644 public/license/bootstrap.license delete mode 100644 public/license/bootstrap.version delete mode 100644 public/license/bootswatch.license delete mode 100644 public/license/bootswatch.version delete mode 100644 public/license/composer.LICENSES diff --git a/.gitignore b/.gitignore index 55b706670..a94f727f8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ vendor public/resources public/images/menubar/* !public/images/menubar/.gitkeep +public/license/* +!public/license/.gitkeep app/Config/email.php npm-debug.log* diff --git a/LICENSE b/LICENSE index 10a3cea9c..9c4def4e2 100644 --- a/LICENSE +++ b/LICENSE @@ -2,10 +2,10 @@ MIT License Copyright (c) 2013-2025 jekkos Copyright (c) 2017-2025 objecttothis -Copyright (c) 2017-2024 Steve Ireland Copyright (c) 2017-2025 odiea -Copyright (c) 2018-2024 WebShells Copyright (c) 2021-2025 BudsieBuds +Copyright (c) 2017-2024 Steve Ireland +Copyright (c) 2018-2024 WebShells Copyright (c) 2015-2023 FrancescoUK (aka daN4cat) Copyright (c) 2015-2022 Aamir Shahzad (aka asakpke), RoshanTech, eSite.pk Copyright (c) 2019-2020 Andriux1990 diff --git a/app/Controllers/Config.php b/app/Controllers/Config.php index e55e5f388..c115c2075 100644 --- a/app/Controllers/Config.php +++ b/app/Controllers/Config.php @@ -75,8 +75,9 @@ class Config extends Secure_Controller private function _licenses(): array //TODO: remove hungarian notation. Super long function. Perhaps we need to refactor out functions? { $i = 0; - $bower = false; $composer = false; + $npmProd = false; + $npmDev = false; $license = []; $license[$i]['title'] = 'Open Source Point Of Sale ' . config('App')->application_version; @@ -106,17 +107,20 @@ class Config extends Secure_Controller } else { $license[$i]['text'] = $license_text_file . ' file is missing'; } - } elseif ($fileinfo->getBasename() == 'bower.LICENSES') { - // set a flag to indicate that the JS Plugin bower.LICENSES file is available and needs to be attached at the end - $bower = true; } elseif ($fileinfo->getBasename() == 'composer.LICENSES') { // set a flag to indicate that the composer.LICENSES file is available and needs to be attached at the end $composer = true; + } elseif ($fileinfo->getBasename() == 'npm-prod.LICENSES') { + // set a flag to indicate that the npm-prod.LICENSES file is available and needs to be attached at the end + $npmProd = true; + } elseif ($fileinfo->getBasename() == 'npm-dev.LICENSES') { + // set a flag to indicate that the npm-dev.LICENSES file is available and needs to be attached at the end + $npmDev = true; } } } - // attach the licenses from the LICENSES file generated by bower + // attach the licenses from the LICENSES file generated by composer if ($composer) { ++$i; $license[$i]['title'] = 'Composer Libraries'; @@ -125,65 +129,63 @@ class Config extends Secure_Controller $file = file_get_contents('license/composer.LICENSES'); $array = json_decode($file, true); - foreach ($array as $key => $val) { - if (is_array($val) && $key == 'dependencies') { - foreach ($val as $key1 => $val1) { - if (is_array($val1)) { - $license[$i]['text'] .= "component: $key1\n"; //TODO: Duplicated Code + if (isset($array['dependencies'])) { + foreach ($array['dependencies'] as $dependency => $details) { + $license[$i]['text'] .= "library: $dependency\n"; - foreach ($val1 as $key2 => $val2) { - if (is_array($val2)) { - $license[$i]['text'] .= "$key2: "; - - foreach ($val2 as $key3 => $val3) { - $license[$i]['text'] .= "$val3 "; - } - - $license[$i]['text'] .= "\n"; - } else { - $license[$i]['text'] .= "$key2: $val2\n"; - } - } - - $license[$i]['text'] .= "\n"; + foreach ($details as $key => $value) { + if (is_array($value)) { + $license[$i]['text'] .= "$key: " . implode(' ', $value) . "\n"; } else { - $license[$i]['text'] .= "$key1: $val1\n"; + $license[$i]['text'] .= "$key: $value\n"; } } + + $license[$i]['text'] .= "\n"; } + $license[$i]['text'] = rtrim($license[$i]['text'], "\n"); } } - // attach the licenses from the LICENSES file generated by bower - if ($bower) { + // attach the licenses from the LICENSES file generated by license-report + if ($npmProd) { ++$i; - $license[$i]['title'] = 'JS Plugins'; + $license[$i]['title'] = 'NPM Production Libraries'; $license[$i]['text'] = ''; - - $file = file_get_contents('license/bower.LICENSES'); + + $file = file_get_contents('license/npm-prod.LICENSES'); $array = json_decode($file, true); - - foreach ($array as $key => $val) { - if (is_array($val)) { - $license[$i]['text'] .= "component: $key\n"; //TODO: Duplicated Code. - - foreach ($val as $key1 => $val1) { - if (is_array($val1)) { - $license[$i]['text'] .= "$key1: "; - - foreach ($val1 as $key2 => $val2) { - $license[$i]['text'] .= "$val2 "; - } - - $license[$i]['text'] .= '\n'; - } else { - $license[$i]['text'] .= "$key1: $val1\n"; - } - } - - $license[$i]['text'] .= '\n'; - } + + foreach ($array as $dependency) { + $license[$i]['text'] .= "library: {$dependency['name']}\n"; + $license[$i]['text'] .= "authors: {$dependency['author']}\n"; + $license[$i]['text'] .= "website: {$dependency['homepage']}\n"; + $license[$i]['text'] .= "version: {$dependency['installedVersion']}\n"; + $license[$i]['text'] .= "license: {$dependency['licenseType']}\n"; + + $license[$i]['text'] .= "\n"; } + $license[$i]['text'] = rtrim($license[$i]['text'], "\n"); + } + + if ($npmDev) { + ++$i; + $license[$i]['title'] = 'NPM Development Libraries'; + $license[$i]['text'] = ''; + + $file = file_get_contents('license/npm-dev.LICENSES'); + $array = json_decode($file, true); + + foreach ($array as $dependency) { + $license[$i]['text'] .= "library: {$dependency['name']}\n"; + $license[$i]['text'] .= "authors: {$dependency['author']}\n"; + $license[$i]['text'] .= "website: {$dependency['homepage']}\n"; + $license[$i]['text'] .= "version: {$dependency['installedVersion']}\n"; + $license[$i]['text'] .= "license: {$dependency['licenseType']}\n"; + + $license[$i]['text'] .= "\n"; + } + $license[$i]['text'] = rtrim($license[$i]['text'], "\n"); } return $license; diff --git a/app/Views/configs/license_config.php b/app/Views/configs/license_config.php index c29be125f..276a3b1f2 100644 --- a/app/Views/configs/license_config.php +++ b/app/Views/configs/license_config.php @@ -17,7 +17,8 @@ 'license', 'id' => 'license_' . $counter++, //TODO: String Interpolation - 'class' => 'form-control', + 'class' => 'form-control font-monospace', + 'rows' => '14', 'readonly' => '', 'value' => $license['text'] ]) ?> diff --git a/gulpfile.js b/gulpfile.js index d35570468..277b4e532 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -37,6 +37,15 @@ gulp.task('compress', function() { return gulp.src(sources, {encoding: false}).pipe(zip('opensourcepos.zip')).pipe(gulp.dest('dist')); }); + +gulp.task('update-licenses', function() { + run('composer licenses --format=json --no-dev > public/license/composer.LICENSES').exec(); + run('npx license-report --only=prod --output=json --fields=name --fields=author --fields=homepage --fields=installedVersion --fields=licenseType > public/license/npm-prod.LICENSES').exec(); + run('npx license-report --only=dev --output=json --fields=name --fields=author --fields=homepage --fields=installedVersion --fields=licenseType > public/license/npm-dev.LICENSES').exec(); + return pipeline(gulp.src('LICENSE'),gulp.dest('public/license')); +}); + + // Copy the bootswatch styles into their own folder so OSPOS can select one from the collection gulp.task('copy-bootswatch', function() { pipeline(gulp.src('./node_modules/bootswatch/cerulean/*.min.css'),gulp.dest('public/resources/bootswatch/cerulean')); @@ -279,12 +288,6 @@ gulp.task('inject-login', function() { }); -gulp.task('update-licenses', function() { - run('composer licenses --format=json --no-dev > public/license/composer.LICENSES').exec(); - return pipeline(gulp.src('LICENSE'),gulp.dest('public/license')); -}); - - gulp.task('build-database', function() { return gulp.src(['./app/Database/tables.sql','./app/Database/constraints.sql']) .pipe(header('-- >> This file is autogenerated from tables.sql and constraints.sql. Do not modify directly << --')) @@ -295,6 +298,7 @@ gulp.task('build-database', function() { // Run all required tasks gulp.task('default', gulp.series('clean', + 'update-licenses', 'copy-bootswatch', 'copy-bootswatch5', 'copy-bootstrap', @@ -305,6 +309,5 @@ gulp.task('default', 'copy-fonts', 'copy-menubar', 'inject-login', - 'update-licenses', 'build-database' )); diff --git a/package-lock.json b/package-lock.json index 9396100b9..80d886572 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,6 +57,7 @@ "gulp-tar": "^4.0.0", "gulp-uglify": "^3.0.2", "gulp-zip": "^6.1.0", + "license-report": "^6.7.2", "npm-check-updates": "^17.1.14", "readable-stream": "^4.4.2", "stream-series": "^0.1.1" @@ -95,6 +96,13 @@ "node": ">=10.13.0" } }, + "node_modules/@kessler/tableify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@kessler/tableify/-/tableify-1.0.2.tgz", + "integrity": "sha512-e4psVV9Fe2eBfS9xK2rzQ9lE5xS4tARm7EJzDb6sVZy3F+EMyHJ67i0NdBVR9BRyQx7YhogMCbB6R1QwXuBxMg==", + "dev": true, + "license": "MIT" + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -112,6 +120,19 @@ "dev": true, "license": "MIT" }, + "node_modules/@sindresorhus/is": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", + "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@swc/helpers": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", @@ -120,12 +141,32 @@ "tslib": "^2.4.0" } }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, "node_modules/@types/expect": { "version": "1.20.4", "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", "dev": true }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "20.12.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", @@ -806,6 +847,35 @@ "node": ">= 0.8" } }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", + "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.4", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.4", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.1", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -1276,6 +1346,53 @@ "node": "*" } }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/deep-equal": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", @@ -1312,6 +1429,26 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -1455,6 +1592,16 @@ "once": "^1.4.0" } }, + "node_modules/eol": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.10.0.tgz", + "integrity": "sha512-+w3ktYrOphcIqC1XKmhQYvM+o2uxgQFiimL7B6JPZJlWVxf7Lno9e/JWLPIgbHo7DoZ+b7jsf/NzrUcNe6ZTZQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ryanve" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -1738,6 +1885,16 @@ "node": ">=0.10.0" } }, + "node_modules/form-data-encoder": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", + "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, "node_modules/frac": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", @@ -1834,6 +1991,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/get-stream": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", @@ -1937,12 +2104,6 @@ "node": ">=0.10.0" } }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -1986,6 +2147,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "14.4.7", + "resolved": "https://registry.npmjs.org/got/-/got-14.4.7.tgz", + "integrity": "sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^7.0.1", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^12.0.1", + "decompress-response": "^6.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^3.0.0", + "type-fest": "^4.26.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2953,6 +3140,27 @@ "node": ">=8.0.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -3000,6 +3208,13 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -3506,6 +3721,13 @@ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/jspdf": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.1.tgz", @@ -3533,6 +3755,16 @@ "jspdf": "^2 || ^3" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/last-run": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", @@ -3593,6 +3825,30 @@ "node": ">=10.13.0" } }, + "node_modules/license-report": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/license-report/-/license-report-6.7.2.tgz", + "integrity": "sha512-DWWy7Hmm266CAtx9T+rPNnBwqLNT/Gddc6nToMERQTrsp/caQjrS8PEOl/ymiER24rk12GDLqJqri73mBQj0dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@kessler/tableify": "^1.0.2", + "debug": "^4.4.0", + "eol": "^0.10.0", + "got": "^14.4.6", + "rc": "^1.2.8", + "semver": "^7.7.1", + "tablemark": "^3.1.0", + "text-table": "^0.2.0", + "visit-values": "^2.0.0" + }, + "bin": { + "license-report": "index.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/liftoff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", @@ -3765,6 +4021,29 @@ "lodash._reinterpolate": "^3.0.0" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -3808,6 +4087,19 @@ "node": ">=8.6" } }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -3838,6 +4130,13 @@ "node": "*" } }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/multipipe": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", @@ -3857,6 +4156,17 @@ "node": ">= 10.13.0" } }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3866,6 +4176,19 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/now-and-later": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", @@ -3987,6 +4310,16 @@ "wrappy": "1" } }, + "node_modules/p-cancelable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", + "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, "node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", @@ -4221,6 +4554,19 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -4230,6 +4576,22 @@ "performance-now": "^2.1.0" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, "node_modules/readable-stream": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", @@ -4363,6 +4725,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", @@ -4388,6 +4757,22 @@ "node": ">= 10.13.0" } }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/restructure": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/restructure/-/restructure-2.0.1.tgz", @@ -4528,6 +4913,19 @@ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/semver-greatest-satisfied-range": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", @@ -4540,6 +4938,18 @@ "node": ">= 10.13.0" } }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -4620,6 +5030,20 @@ "node": ">= 0.10" } }, + "node_modules/split-text-to-chunks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split-text-to-chunks/-/split-text-to-chunks-1.0.0.tgz", + "integrity": "sha512-HLtEwXK/T4l7QZSJ/kOSsZC0o5e2Xg3GzKKFxm0ZexJXw0Bo4CaEl39l7MCSRHk9EOOL5jT8JIDjmhTtcoe6lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^5.0.1", + "minimist": "^1.2.0" + }, + "bin": { + "wordwrap": "cli.js" + } + }, "node_modules/ssf": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", @@ -4802,6 +5226,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4875,6 +5309,20 @@ "xlsx": ">=0.16.0" } }, + "node_modules/tablemark": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tablemark/-/tablemark-3.1.0.tgz", + "integrity": "sha512-IwO6f0SEzp1Z+zqz/7ANUmeEac4gaNlknWyj/S9aSg11wZmWYnLeyI/xXvEOU88BYUIf8y30y0wxB58xIKrVlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sentence-case": "^3.0.4", + "split-text-to-chunks": "^1.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, "node_modules/tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", @@ -4903,6 +5351,13 @@ "utrie": "^1.0.2" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -5009,6 +5464,19 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/type-fest": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.40.0.tgz", + "integrity": "sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -5127,6 +5595,16 @@ "node": ">=6.0" } }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -5367,6 +5845,13 @@ "node": ">=0.10.0" } }, + "node_modules/visit-values": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/visit-values/-/visit-values-2.0.0.tgz", + "integrity": "sha512-vLFU70y3D915d611GnHYeHkEmq6ZZETzTH4P1hM6I9E3lBwH2VeBBEESe/bGCY+gAyK0qqLFn5bNFpui/GKmww==", + "dev": true, + "license": "MIT" + }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", diff --git a/package.json b/package.json index ec903d539..fdabc121a 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "gulp-tar": "^4.0.0", "gulp-uglify": "^3.0.2", "gulp-zip": "^6.1.0", + "license-report": "^6.7.2", "npm-check-updates": "^17.1.14", "readable-stream": "^4.4.2", "stream-series": "^0.1.1" diff --git a/public/css/ospos.css b/public/css/ospos.css index e44524df8..48b049b8b 100644 --- a/public/css/ospos.css +++ b/public/css/ospos.css @@ -197,3 +197,8 @@ label.required padding-right:0; padding-left: 0; } + +/* Recreate font-monospace class from Bootstrap 5 */ +.font-monospace { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} diff --git a/public/license/.gitkeep b/public/license/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/public/license/LICENSE b/public/license/LICENSE deleted file mode 100644 index 10a3cea9c..000000000 --- a/public/license/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -MIT License - -Copyright (c) 2013-2025 jekkos -Copyright (c) 2017-2025 objecttothis -Copyright (c) 2017-2024 Steve Ireland -Copyright (c) 2017-2025 odiea -Copyright (c) 2018-2024 WebShells -Copyright (c) 2021-2025 BudsieBuds -Copyright (c) 2015-2023 FrancescoUK (aka daN4cat) -Copyright (c) 2015-2022 Aamir Shahzad (aka asakpke), RoshanTech, eSite.pk -Copyright (c) 2019-2020 Andriux1990 -Copyright (c) 2018-2019 Erasto Marroquin (aka Erastus) -Copyright (c) 2019 Loyd Jayme (aka loydjayme25) -Copyright (c) 2018 Nathan Sas (aka nathanzky) -Copyright (c) 2018 Emilio Silva (aka emi-silva) -Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal) -Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com -Copyright (c) 2016-2017 Jesus Guerrero Botella (aka i92guboj) -Copyright (c) 2017 Deep Shah (aka deepshah) -Copyright (c) 2017 Joshua Fernandez (aka joshua1234511) -Copyright (c) 2017 asadjaved63 -Copyright (c) 2016 Rinaldy@dbarber (aka rnld26) -Copyright (c) 2015 Toni Haryanto (aka yllumi) -Copyright (c) 2012-2014 pappastech -Copyright (c) 2013 Rob Garrison -Copyright (c) 2013 Parq -Copyright (c) 2013 Ramel -Copyright (c) 2012 Alain - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Additionally, you cannot claim copyright or ownership of the Software. - -The footer signatures with version, hash and URL link to the official website -of the project MUST BE RETAINED, MUST BE VISIBLE IN EVERY PAGE and CANNOT BE -MODIFIED. -Footer signatures are in the format -"© 2010 - current year · opensourcepos.org · version - commit" -or "Open Source Point of Sale". diff --git a/public/license/beautifulflaticons.license b/public/license/beautifulflaticons.license deleted file mode 100644 index e24251bbc..000000000 --- a/public/license/beautifulflaticons.license +++ /dev/null @@ -1,19 +0,0 @@ -Elegant Themes Blog: http://www.elegantthemes.com/blog/freebie-of-the-week/beautiful-flat-icons-for-free - -These icons are completely free and Open Source under the GPL-2.0, -so feel free to use them in your personal and commercial projects alike. - ------------------------------------------------------------------------------ - -GNU General Public License, version 2 (GPL-2.0) - -GNU GENERAL PUBLIC LICENSE -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -For full license statement please visit https://www.gnu.org/licenses/gpl-2.0.html diff --git a/public/license/beautifulflaticons.version b/public/license/beautifulflaticons.version deleted file mode 100644 index ee17867cb..000000000 --- a/public/license/beautifulflaticons.version +++ /dev/null @@ -1 +0,0 @@ -Beautiful Flat Icons \ No newline at end of file diff --git a/public/license/bootstrap-5.license b/public/license/bootstrap-5.license deleted file mode 100644 index 2a703f519..000000000 --- a/public/license/bootstrap-5.license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2024 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/public/license/bootstrap-5.version b/public/license/bootstrap-5.version deleted file mode 100644 index 8063c9557..000000000 --- a/public/license/bootstrap-5.version +++ /dev/null @@ -1 +0,0 @@ -Bootstrap 5.3.3 diff --git a/public/license/bootstrap-icons.license b/public/license/bootstrap-icons.license deleted file mode 100644 index f95243911..000000000 --- a/public/license/bootstrap-icons.license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019-2024 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/public/license/bootstrap-icons.version b/public/license/bootstrap-icons.version deleted file mode 100644 index 9db80dad3..000000000 --- a/public/license/bootstrap-icons.version +++ /dev/null @@ -1 +0,0 @@ -Bootstrap Icons 1.11.3 diff --git a/public/license/bootstrap.license b/public/license/bootstrap.license deleted file mode 100644 index ce3fc9fa8..000000000 --- a/public/license/bootstrap.license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2019 Twitter, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/public/license/bootstrap.version b/public/license/bootstrap.version deleted file mode 100644 index b150a5db7..000000000 --- a/public/license/bootstrap.version +++ /dev/null @@ -1 +0,0 @@ -Bootstrap 3.4.1 diff --git a/public/license/bootswatch.license b/public/license/bootswatch.license deleted file mode 100644 index c470246ff..000000000 --- a/public/license/bootswatch.license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Thomas Park - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/public/license/bootswatch.version b/public/license/bootswatch.version deleted file mode 100644 index ff9abccfa..000000000 --- a/public/license/bootswatch.version +++ /dev/null @@ -1 +0,0 @@ -Bootswatch 3.4.1+1 & 5.3.3 diff --git a/public/license/composer.LICENSES b/public/license/composer.LICENSES deleted file mode 100644 index 67fad678c..000000000 --- a/public/license/composer.LICENSES +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "opensourcepos/opensourcepos", - "version": "dev-master", - "license": [ - "MIT" - ], - "dependencies": { - "codeigniter4/framework": { - "version": "v4.6.0", - "license": [ - "MIT" - ] - }, - "dompdf/dompdf": { - "version": "v2.0.4", - "license": [ - "LGPL-2.1" - ] - }, - "ezyang/htmlpurifier": { - "version": "v4.17.0", - "license": [ - "LGPL-2.1-or-later" - ] - }, - "laminas/laminas-escaper": { - "version": "2.16.0", - "license": [ - "BSD-3-Clause" - ] - }, - "masterminds/html5": { - "version": "2.8.1", - "license": [ - "MIT" - ] - }, - "paragonie/random_compat": { - "version": "v2.0.21", - "license": [ - "MIT" - ] - }, - "phenx/php-font-lib": { - "version": "0.5.6", - "license": [ - "LGPL-2.1-or-later" - ] - }, - "phenx/php-svg-lib": { - "version": "0.5.2", - "license": [ - "LGPL-3.0" - ] - }, - "picqer/php-barcode-generator": { - "version": "v2.4.0", - "license": [ - "LGPL-3.0-or-later" - ] - }, - "sabberworm/php-css-parser": { - "version": "v8.5.1", - "license": [ - "MIT" - ] - }, - "symfony/polyfill-ctype": { - "version": "v1.31.0", - "license": [ - "MIT" - ] - }, - "symfony/polyfill-mbstring": { - "version": "v1.31.0", - "license": [ - "MIT" - ] - }, - "tamtamchik/namecase": { - "version": "3.0.0", - "license": [ - "MIT" - ] - } - } -}